基于鴻蒙系統(tǒng)+Hi3861的WiFi小車
首先,我們得有一套WiFi小車套件,其實(shí)也是Hi3861加上電機(jī)、循跡模塊、超聲波等模塊。
小車安裝完大概是這樣:
電機(jī)驅(qū)動
我們這里先只做最簡單的,驅(qū)動小車的電機(jī),讓小車跑起來。
電機(jī)的驅(qū)動板如下圖,目前電機(jī)驅(qū)動芯片用的是L9110S芯片。
典型的應(yīng)用電路如下圖:
我們可以看到,如果要控制電機(jī),我們芯片至少需要2路PWM信號,一路用于控制正轉(zhuǎn),一路用于控制反轉(zhuǎn)。
然后我們小車有兩個輪子,需要兩個電機(jī),所以我們需要4路PWM信號。
查閱小車資料,可以知道,目前Hi3861芯片用來控制電機(jī)的4路PWM分別是:
知道了PWM通道和對應(yīng)的GPIO口,我們就可以開始編程了。
首先PWM初始化部分:
voidpwm_init(void){GpioInit();//引腳復(fù)用IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0,WIFI_IOT_IO_FUNC_GPIO_0_PWM3_OUT);IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1,WIFI_IOT_IO_FUNC_GPIO_1_PWM4_OUT);IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9,WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT);IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10,WIFI_IOT_IO_FUNC_GPIO_10_PWM1_OUT);//初始化pwmPwmInit(WIFI_IOT_PWM_PORT_PWM3);PwmInit(WIFI_IOT_PWM_PORT_PWM4);PwmInit(WIFI_IOT_PWM_PORT_PWM0);PwmInit(WIFI_IOT_PWM_PORT_PWM1);}控制小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止的函數(shù):voidpwm_stop(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);}//前進(jìn)voidpwm_forward(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//啟動A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM3,750,1500);PwmStart(WIFI_IOT_PWM_PORT_PWM0,750,1500);}//后退voidpwm_backward(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//啟動A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM4,750,1500);PwmStart(WIFI_IOT_PWM_PORT_PWM1,750,1500);}//左轉(zhuǎn)voidpwm_left(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//啟動A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM3,750,1500);}//右轉(zhuǎn)voidpwm_right(void){//先停止PWMPwmStop(WIFI_IOT_PWM_PORT_PWM3);PwmStop(WIFI_IOT_PWM_PORT_PWM4);PwmStop(WIFI_IOT_PWM_PORT_PWM0);PwmStop(WIFI_IOT_PWM_PORT_PWM1);//啟動A路PWMPwmStart(WIFI_IOT_PWM_PORT_PWM0,750,1500);}
最后,要使用PWM功能。
我們需要修改vendorhisihi3861hi3861uildconfigusr_config.mk文件,把PWM功能打開,增加一行CONFIG_PWM_SUPPORT=y。
如圖:
WiFi控制部分
我們在小車上面簡單編寫一個UDP程序,監(jiān)聽50001端口號。
這里使用的通信格式是json,小車收到UDP數(shù)據(jù)后,解析json,并根據(jù)命令執(zhí)行相應(yīng)的操作,例如前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等。
代碼如下:
電腦端,使用C#編寫一個測試程序,可以手動輸入小車的IP地址,也可以不輸入IP地址,這樣,電腦端程序會發(fā)送廣播包給小車,也可以起到控制的功能。
小車的源碼,C#控制端的代碼均開源,大家可以自由修改,發(fā)揮自己的想象,創(chuàng)造出更厲害炫酷的DIY產(chǎn)品。
責(zé)任編輯人:CC
-
wifi小車
+關(guān)注
關(guān)注
0文章
2瀏覽量
1762 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2641瀏覽量
67837 -
Hi3861
+關(guān)注
關(guān)注
1文章
63瀏覽量
7001
發(fā)布評論請先 登錄
盤點(diǎn)那些硬件+項(xiàng)目學(xué)習(xí)套件:Hi3861鴻蒙開發(fā)板及入門常見問題解答
【HarmonyOS HiSpark Wi-Fi IoT套件】基于鴻蒙系統(tǒng) + Hi3861 的wifi小車,可以通過電腦、手機(jī)控制
怎樣去設(shè)計一種基于鴻蒙系統(tǒng)+Hi3861的WiFi小車
鴻蒙芯片Hi3861啟動流程介紹
HI3861 鴻蒙開發(fā)環(huán)境怎么搭建
HarmonyOS Hi3861 WiFi操作 熱點(diǎn)鏈接

評論