基于鴻蒙系統+Hi3861的WiFi小車
首先,我們得有一套WiFi小車套件,其實也是Hi3861加上電機、循跡模塊、超聲波等模塊。
小車安裝完大概是這樣:
電機驅動
我們這里先只做最簡單的,驅動小車的電機,讓小車跑起來。
電機的驅動板如下圖,目前電機驅動芯片用的是L9110S芯片。
典型的應用電路如下圖:
我們可以看到,如果要控制電機,我們芯片至少需要2路PWM信號,一路用于控制正轉,一路用于控制反轉。
然后我們小車有兩個輪子,需要兩個電機,所以我們需要4路PWM信號。
查閱小車資料,可以知道,目前Hi3861芯片用來控制電機的4路PWM分別是:
知道了PWM通道和對應的GPIO口,我們就可以開始編程了。
首先PWM初始化部分:
voidpwm_init(void){GpioInit();//引腳復用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);}控制小車前進、后退、左轉、右轉、停止的函數: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);}//前進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);}//左轉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);}//右轉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程序,監聽50001端口號。
這里使用的通信格式是json,小車收到UDP數據后,解析json,并根據命令執行相應的操作,例如前進、后退、左轉、右轉等。
代碼如下:
電腦端,使用C#編寫一個測試程序,可以手動輸入小車的IP地址,也可以不輸入IP地址,這樣,電腦端程序會發送廣播包給小車,也可以起到控制的功能。
小車的源碼,C#控制端的代碼均開源,大家可以自由修改,發揮自己的想象,創造出更厲害炫酷的DIY產品。
責任編輯人:CC
-
wifi小車
+關注
關注
0文章
2瀏覽量
1708 -
鴻蒙系統
+關注
關注
183文章
2634瀏覽量
66305 -
Hi3861
+關注
關注
1文章
59瀏覽量
6491
發布評論請先 登錄
相關推薦
評論