本項目基于DShanMCU-R128s2-DevKit開發,用意是提供一個綜合的示例進行學習參考。
本項目基于ZakKemble的開源項目-NWatch,GitHub倉庫地址:https://github.com/ZakKemble/NWatch
與原作者的NWatch不一樣的是,將其移植到DShanMCU-R128s2-DevKit開發板新窗口打開上,同時相比于原作者添加了一些功能,比如恢復出廠設置功能,后續有時間會慢慢增加更多的功能。
#運行效果
#硬件準備
DShanMCU-R128s2-DevKit開發板
EC11旋轉編碼器模塊
紅外接收模塊+紅外遙控器
無源蜂鳴器模塊
DHT11溫濕度模塊
#源碼獲取
倉庫源碼:
Gitee:https://gitee.com/weidongshan/100ask_r128_demos/tree/master/nwatch
GitHub:https://github.com/100askTeam/100ask_r128_demos/tree/master/nwatch
#固件獲取
如果你不想自己編譯或者不需要二次開發,那么可以從這里獲取固件,燒寫固件到DShanMCU-R128s2-DevKit后開機會自動啟動NWatch任務,如果沒有自動啟動在串口終端輸入命令然后按回車即可:nwatch_100ask 3。模塊接線請閱讀模塊接線小節。
Releases獲取:
Gitee:https://gitee.com/weidongshan/100ask_r128_demos/releases/tag/v0.0.1
GitHub:https://github.com/100askTeam/100ask_r128_demos/releases/tag/v0.0.1
#二次開發
#修改 sys_config.fex
打開R128-S2-SDK/board/r128s2/pro/configs/sys_config.fex,進行如下的修改:
IIC引腳配置:
[twi1] twi1_sck = port:PB00<3><1>twi1_sda = port:PB01<3><1>
PWM配置:
[pwm6] pwm_used = 1 pwm_positive = port:PA26<4><0><2>
#添加100ask_r128_demos
從git倉庫獲取源碼:
Gitee:https://gitee.com/weidongshan/100ask_r128_demos/tree/master/nwatch
GitHub:https://github.com/100askTeam/100ask_r128_demos/tree/master/nwatch
clone倉庫或者下載倉庫壓縮包到本地,并將倉庫目錄放在sdk的這個目錄下面:
R128-S2-SDK/lichee/rtos-components/thirdparty/100ask_r128_demos
一定要確保文件夾名稱是100ask_r128_demos
打開文件R128-S2-SDK/lichee/rtos-components/thirdparty/Makefile進行編輯,在文件的最后面或最前一行加入下面的內容:
obj-$(CONFIG_COMPONENTS_100ASK_R128_DEMOS) += 100ask_r128_demos/
打開文件R128-S2-SDK/lichee/rtos-components/thirdparty/Kconfig進行編輯,在文件的最后或最前一行加入下面的內容:
source components/common/thirdparty/100ask_r128_demos/Kconfig
#配置menuconfig
執行mrtos_menuconfig進入到下面所示的位置進行配置:
選擇載入 r128s2_module_c906 方案,并進入 menuconfig:
$ source envsetup.sh $ lunch_rtos 1 $ mrtos_menuconfig
打開IIC:
System components ---> Drivers Options ---> soc related device drivers ---> TWI Devices ---> -*- enable twi driver [ ] enable twi hal APIs test command
打開PWM:
System components ---> Drivers Options ---> soc related device drivers ---> PWM devices ---> [*] enable pwm driver [ ] enable pwm hal APIs test command
打開GPIO及其中斷:
System components ---> Drivers Options ---> soc related device drivers ---> GPIO devices ---> [*] enable GPIO driver [ ] enable gpio hal APIs test command [ ] enable gpio chip aw9523 [*] enable amp gpio irq
配置 100ask_r128_demos:
System components ---> thirdparty components ---> USE 100ask_r128_demos ---> --- USE 100ask_r128_demos [*] USE USE_100ASK_MODULE_DRIVER ---> [*] USE USE_100ASK_MODULE_DRIVER_IIC_OLED ---> [ ] USE USE_100ASK_MODULE_DRIVER_SPI_LCD ---- [*] USE USE_100ASK_MODULE_DRIVER_PASSIVE_BUZZER ---> [*] USE USE_100ASK_MODULE_DRIVER_ROTARY_ENCODER ---- [*] USE USE_100ASK_MODULE_DRIVER_IR_RECEIVER ---> [*] USE USE_100ASK_MODULE_DRIVER_SPI_FLASH ---> [*] USE USE_100ASK_MODULE_DRIVER_DHT11 ---- [ ] 100ask lvgl desktop [*] NWatch demo ......
#開機啟動
如果省略這一步,那么在開機之后,在串口終端輸入命令然后按回車運行 NWatch 任務:nwatch_100ask 3
如果需要開機自啟動 NWatch 任務,按照如下步驟操作:
打開R128-S2-SDK/lichee/rtos/projects/r128s2/pro_c906/src/main.c,文件
在main函數中如下位置添加如下代碼:
void cpu0_app_entry(void *param) { ...... #ifdef CONFIG_NWATCH_100ASK int argc = 2; char *argv[] = { "nwatch_100ask", "3", }; nwatch_100ask_main(argc, argv); #endif vTaskDelete(NULL); }
最后,編譯、打包:mrtos && pack
編譯出來的鏡像存放位置:R128-S2-SDK/out/r128s2/pro/rtos_freertos_r128s2_pro_uart0_16Mnor.img
通過燒寫工具將其燒寫到開發板上,下一步,對各個模塊進行接線。
#模塊接線
IIC OLED模塊接線:
SCK ------- PB00 SDA ------- PB01
EC11旋轉編碼器接線:
S1 ------- PA24 S2 ------- PA25 KEY ------- PA29
蜂鳴器模塊接線:
BEEP DATA PIN ------- PA26
紅外接收模塊接線:
IR DATA PIN ------- PA10
DHT11模塊:
DHT11 DATA PIN ------- PA6
審核編輯:湯梓紅
-
開源
+關注
關注
3文章
3309瀏覽量
42473 -
開發板
+關注
關注
25文章
5032瀏覽量
97375 -
智能手表
+關注
關注
36文章
3281瀏覽量
113974 -
GitHub
+關注
關注
3文章
469瀏覽量
16428
原文標題:NWatch(DIY智能手表)
文章出處:【微信號:baiwenkeji,微信公眾號:百問科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論