上周發布了新的開源硬件——小安派-Eyes-DU,DU板子亮點是什么?小安來解釋下。
小安派-Eyes-DU支持USB OTG 功能,可以通過右側的USB口外接SD卡或者攝像頭等外設,來方便釋放強大性能。


既然是開源硬件,那必然講究一個DIY,今天小安親自用小安派-Eyes-DU來制作一個PWM循環呼吸燈,來看看詳細教程。
01工程搭建
1.工程文件搭建
這里我建的文件夾名稱是AiPi_Eyes_DU,剛建立的工程是沒有工程文件的,我們需要進入芯片的SDK拉取examples中的demo文件來進行二次開發。本示例使用PWM來作為演示,所以我們需要拉取PWM的demo文件。

依次打開如下文件夾aithinker_Ai-M6X_SDK——>examples——>peripherals——>pwm_v2——>pwm_basic
復制pwm_basic下的所有文件,可以按住ctrl依次點擊所有文件,復制并粘貼到我們剛剛建立的文件夾當中。


2.工程編譯環境搭建
將工程文件復制過來只是第一步,還需要修改編譯和燒錄的工作路徑。
(1)修改CmakeLists.txt
將project后面括號中的參數改成我們工程文件夾的名字

(2)修改flash_prog_cfg.ini
添加如下信息,注意[FW]中的編譯名稱,與工程文件夾一致


(3)修改Makefile
這一步最為關鍵,需要設置正確的編譯路徑到SDK,這里的路徑要根據當前文件位置設置,在后期工程文件復雜的情況下,要確保能最終鏈接到芯片的SDK

至此,工程文件夾和編譯環境就已經搭建完成了,我們的功能初始化和功能都在main文件中實現。
02PWM呼吸燈功能實現
1.查看原理圖和規格書
AiPi_Eyes_DU的原理圖可以在嘉立創開源工程中查看:AiPi-Eyes-DU - 嘉立創EDA開源硬件平臺
看到RGB三色燈分別由IO15、IO12和IO14控制。

在M61芯片的模組規格書中可以看到這三個IO口都支持PWM0
安信可官網Ai-M61-32S模組規格書:ai-m61-32s_v1.1.0.pdf

2.初始化PWM和GPIO
首先在頭文件中添加bflb_gpio.h頭文件

創建兩個句柄為pwm和gpio,方便后續初始化函數的傳參。
定義pwm_v2類型的結構體。

3.改變占空比,調節RBG燈亮度
先認識一個函數,該函數可以調節占空比,第一個參數為任務句柄,這里是"pwm",第二個參數為輸出的通道,第三個參數為減數,設為0,方便后續調節百分比,第四個參數為被減數。該函數的作用是(被減數-減數)/計數值 * 100。如減數設置為0,被減數設置為500,計數值設置為1000,得到的占空比為(500-0)/1000 * 100%,為50%的占空比。

了解該函數后,可以在while里做邏輯處理實現呼吸燈效果。
這里附上完整的main.c代碼。(可在下方更多資料中,點擊原文鏈接復制)
03編譯和燒錄


審核編輯 黃宇
-
PWM
+關注
關注
116文章
5315瀏覽量
217315 -
開源硬件
+關注
關注
8文章
216瀏覽量
30408 -
開發板
+關注
關注
25文章
5389瀏覽量
100836 -
SDK
+關注
關注
3文章
1057瀏覽量
47331 -
呼吸燈
+關注
關注
10文章
112瀏覽量
43035
發布評論請先 登錄
相關推薦
零基礎開發小安派-Eyes-S1外設篇——GPIO 輸入輸出

零基礎開發小安派-Eyes-S1外設篇——GPIO中斷編程

零基礎開發小安派-Eyes-S1外設篇——I2S

零基礎開發小安派-Eyes-S1 外設篇——DAC

零基礎開發小安派-Eyes-S1【入門篇】——初識小安派-Eyes-S1

零基礎開發小安派-Eyes-S1 外設篇 ——I2C

零基礎開發小安派-Eyes-S1【外設篇】——FLASH

零基礎開發小安派-Eyes-S1——初識LVGL并搭建最小工程
零基礎開發小安派-Eyes-S1【進階篇】——初識 LVGL 并搭建最小工程

零基礎開發小安派-Eyes-S1 進階篇 ——通過屏幕輸入連接 Wi-Fi

評論