上周發(fā)布了新的開源硬件——小安派-Eyes-DU,DU板子亮點是什么?小安來解釋下。
小安派-Eyes-DU支持USB OTG 功能,可以通過右側(cè)的USB口外接SD卡或者攝像頭等外設(shè),來方便釋放強(qiáng)大性能。
![wKgaomTZ2aWAKflWAAY6hyDX4v8309.png](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2aWAKflWAAY6hyDX4v8309.png)
![wKgZomTZ2aWAIEsiAAHBlTW9UMI055.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2aWAIEsiAAHBlTW9UMI055.png)
既然是開源硬件,那必然講究一個DIY,今天小安親自用小安派-Eyes-DU來制作一個PWM循環(huán)呼吸燈,來看看詳細(xì)教程。
01工程搭建
1.工程文件搭建
這里我建的文件夾名稱是AiPi_Eyes_DU,剛建立的工程是沒有工程文件的,我們需要進(jìn)入芯片的SDK拉取examples中的demo文件來進(jìn)行二次開發(fā)。本示例使用PWM來作為演示,所以我們需要拉取PWM的demo文件。
![wKgZomTZ2aaAEiGLAAAy6oqPZ4g740.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2aaAEiGLAAAy6oqPZ4g740.png)
依次打開如下文件夾aithinker_Ai-M6X_SDK——>examples——>peripherals——>pwm_v2——>pwm_basic
復(fù)制pwm_basic下的所有文件,可以按住ctrl依次點擊所有文件,復(fù)制并粘貼到我們剛剛建立的文件夾當(dāng)中。
![wKgaomTZ2aaAU0utAAAQVgqFr7c227.png](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2aaAU0utAAAQVgqFr7c227.png)
![wKgZomTZ2aaAWnGjAAASeCOGdh0372.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2aaAWnGjAAASeCOGdh0372.png)
2.工程編譯環(huán)境搭建
將工程文件復(fù)制過來只是第一步,還需要修改編譯和燒錄的工作路徑。
(1)修改CmakeLists.txt
將project后面括號中的參數(shù)改成我們工程文件夾的名字
![wKgaomTZ2aaAAa2OAAA4sSd13cA729.png](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2aaAAa2OAAA4sSd13cA729.png)
(2)修改flash_prog_cfg.ini
添加如下信息,注意[FW]中的編譯名稱,與工程文件夾一致
![wKgZomTZ2aeAMA_tAAAg9QqCLAI787.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2aeAMA_tAAAg9QqCLAI787.png)
![wKgaomTZ2aeABLnCAAAmJvxwLV8445.png](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2aeABLnCAAAmJvxwLV8445.png)
(3)修改Makefile
這一步最為關(guān)鍵,需要設(shè)置正確的編譯路徑到SDK,這里的路徑要根據(jù)當(dāng)前文件位置設(shè)置,在后期工程文件復(fù)雜的情況下,要確保能最終鏈接到芯片的SDK
![wKgZomTZ2aeAAkxHAAArBysSS88081.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2aeAAkxHAAArBysSS88081.png)
至此,工程文件夾和編譯環(huán)境就已經(jīng)搭建完成了,我們的功能初始化和功能都在main文件中實現(xiàn)。
02PWM呼吸燈功能實現(xiàn)
1.查看原理圖和規(guī)格書
AiPi_Eyes_DU的原理圖可以在嘉立創(chuàng)開源工程中查看:AiPi-Eyes-DU - 嘉立創(chuàng)EDA開源硬件平臺
看到RGB三色燈分別由IO15、IO12和IO14控制。
![wKgaomTZ2aeAA-5OAAAtaIEZlK0051.png](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2aeAA-5OAAAtaIEZlK0051.png)
在M61芯片的模組規(guī)格書中可以看到這三個IO口都支持PWM0
安信可官網(wǎng)Ai-M61-32S模組規(guī)格書:ai-m61-32s_v1.1.0.pdf
![wKgZomTZ2aiANMO1AAA-rO2Entg116.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2aiANMO1AAA-rO2Entg116.png)
2.初始化PWM和GPIO
首先在頭文件中添加bflb_gpio.h頭文件
![wKgaomTZ2aiASX0ZAAALZIEZ9Ls533.png](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2aiASX0ZAAALZIEZ9Ls533.png)
創(chuàng)建兩個句柄為pwm和gpio,方便后續(xù)初始化函數(shù)的傳參。
定義pwm_v2類型的結(jié)構(gòu)體。
![wKgZomTZ2aiAD3byAABihILKOJg865.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2aiAD3byAABihILKOJg865.png)
3.改變占空比,調(diào)節(jié)RBG燈亮度
先認(rèn)識一個函數(shù),該函數(shù)可以調(diào)節(jié)占空比,第一個參數(shù)為任務(wù)句柄,這里是"pwm",第二個參數(shù)為輸出的通道,第三個參數(shù)為減數(shù),設(shè)為0,方便后續(xù)調(diào)節(jié)百分比,第四個參數(shù)為被減數(shù)。該函數(shù)的作用是(被減數(shù)-減數(shù))/計數(shù)值 * 100。如減數(shù)設(shè)置為0,被減數(shù)設(shè)置為500,計數(shù)值設(shè)置為1000,得到的占空比為(500-0)/1000 * 100%,為50%的占空比。
![wKgaomTZ2amAG7IRAAAQnOTyZXs227.png](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2amAG7IRAAAQnOTyZXs227.png)
了解該函數(shù)后,可以在while里做邏輯處理實現(xiàn)呼吸燈效果。
這里附上完整的main.c代碼。(可在下方更多資料中,點擊原文鏈接復(fù)制)
03編譯和燒錄
![wKgZomTZ2amADm0DAAAjkO6-uTM677.png](https://file1.elecfans.com//web2/M00/90/6D/wKgZomTZ2amADm0DAAAjkO6-uTM677.png)
![wKgaomTZ2amAX_K1AA0v-iLAzHQ907.gif](https://file1.elecfans.com//web2/M00/90/72/wKgaomTZ2amAX_K1AA0v-iLAzHQ907.gif)
審核編輯 黃宇
-
PWM
+關(guān)注
關(guān)注
114文章
5198瀏覽量
214876 -
開源硬件
+關(guān)注
關(guān)注
8文章
212瀏覽量
29976 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5121瀏覽量
98191 -
SDK
+關(guān)注
關(guān)注
3文章
1045瀏覽量
46267 -
呼吸燈
+關(guān)注
關(guān)注
10文章
111瀏覽量
42808
發(fā)布評論請先 登錄
相關(guān)推薦
零基礎(chǔ)開發(fā)小安派-Eyes-S1外設(shè)篇——GPIO 輸入輸出
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1外設(shè)篇——GPIO 輸入輸出](https://file1.elecfans.com//web2/M00/0B/1B/wKgaomcbMaOAXRzEAACRGM3g1mU839.jpg)
零基礎(chǔ)開發(fā)小安派-Eyes-S1外設(shè)篇——GPIO中斷編程
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1外設(shè)篇——GPIO中斷編程](https://file1.elecfans.com//web1/M00/F3/E2/wKgZoWcghwuAHTB6AAB12Pu7oeU039.jpg)
零基礎(chǔ)開發(fā)小安派-Eyes-S1外設(shè)篇——I2S
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1外設(shè)篇——I2S](https://file1.elecfans.com//web3/M00/02/46/wKgZO2dcBjCAGEAkAAA8xj7khw009.webp)
零基礎(chǔ)開發(fā)小安派-Eyes-S1 外設(shè)篇——DAC
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1 外設(shè)篇——DAC](https://file1.elecfans.com//web3/M00/03/FA/wKgZPGduFxGAF2vbAAAmHgnYQCc658.jpg)
零基礎(chǔ)開發(fā)安信可小安派-Eyes-S1【入門篇】——初識小安派-Eyes-S1
零基礎(chǔ)開發(fā)小安派-Eyes-S1【入門篇】——初識小安派-Eyes-S1
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1【入門篇】——初識<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1](https://file1.elecfans.com//web2/M00/A5/04/wKgaomUH_yiAWNUuAAAV6-UOrAE574.png)
零基礎(chǔ)開發(fā)小安派-Eyes-S1【外設(shè)篇】——PWM
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1【外設(shè)篇】——<b class='flag-5'>PWM</b>](https://file1.elecfans.com//web1/M00/F4/64/wKgZoWcq2yeAHsRMAAC0LA8cL7M904.jpg)
零基礎(chǔ)開發(fā)小安派-Eyes-S1 外設(shè)篇 ——I2C
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1 外設(shè)篇 ——I2C](https://file1.elecfans.com//web3/M00/00/2A/wKgZO2dG2qSAcdmuAAA7_hcCOyM118.jpg)
零基礎(chǔ)開發(fā)小安派-Eyes-S1【外設(shè)篇】——FLASH
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1【外設(shè)篇】——FLASH](https://file1.elecfans.com//web3/M00/01/2D/wKgZO2dRSK2AJjzUAACvSBXB5k0411.jpg)
零基礎(chǔ)開發(fā)小安派-Eyes-S1——初識LVGL并搭建最小工程
零基礎(chǔ)開發(fā)小安派-Eyes-S1【進(jìn)階篇】——初識 LVGL 并搭建最小工程
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1【進(jìn)階篇】——初識 LVGL 并搭建最小工程](https://file1.elecfans.com//web3/M00/05/05/wKgZO2d7kMSAJAFJAACo0k1Ogbo923.jpg)
零基礎(chǔ)開發(fā)小安派-Eyes-S1 進(jìn)階篇 ——通過屏幕輸入連接 Wi-Fi
![<b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes</b>-S1 進(jìn)階篇 ——通過屏幕輸入連接 Wi-Fi](https://file1.elecfans.com//web3/M00/06/27/wKgZPGeIZTuAcudRAACkoCE6ppE932.jpg)
評論