說起人工智能機器人界的網紅,那就不得不提到——“機器狗”。此前,著名機器人公司波士頓動力制造的“Spot”機器狗、國內知名科技企業(yè)蔚藍科技自主設計研發(fā)的“阿爾法”機器狗、小米仿生四足機器人“CyberDog”都曾火爆全網。
機器狗的開發(fā)需要硬件、軟件及運動行為三者達到協(xié)調,并不是一件容易的事,而在傳智教育舉辦的《仿生機器狗訓練營》中,特等獎獲得者劉瀟翔脫穎而出,他從0-1打造了一個基于OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)系統(tǒng)的機器狗,并將在本文中帶來一些開發(fā)過程中的心得體會分享。
個人介紹
大家好,我是劉瀟翔,現(xiàn)就讀于南方科技大學(Southern University of Science and Technology)研一,修讀的專業(yè)是智能制造與機器人。
開發(fā)項目簡介
在這次訓練營中,我從機械結構、電控硬件、控制算法、上位機等四個方面設計并制作了一款基于傳智教育Hi3861 IoT WiFi模組主控,擁有十二自由度的桌面級四足機器狗—Puppy。
已經合倉的代碼鏈接:https://gitee.com/openharmony-sig/contest/tree/master/2022_itcast_LCEDA_OpenHarmony_camp/Harmony%20Puppy
OpenHarmony學習過程
我第一次接觸到嵌入式開發(fā),還是在傳智教育舉辦的物聯(lián)網實戰(zhàn)——智能開關訓練營中。在此之前我對OpenHarmony系統(tǒng)了解不是很多,以為僅是運行在移動端與PC端的系統(tǒng),但我還是對其充滿好奇,畢竟這是為了打破技術封鎖自主研發(fā)的系統(tǒng)。所以我也想了解OpenHarmony嵌入式開發(fā),與常見的單片機STM32、ESP32、ATmega328P這些MCU的開發(fā)有什么區(qū)別。
傳智教育旗下的Hi3861 IoT WiFi模組主芯片為海思Hi3861V100,擁有完整的WiFi功能,支持采用Micropython或C語言開發(fā)。由于OpenHarmony的生態(tài)相比其他一些主流單片機,還比較單薄,所以輔助開發(fā)的相關資料搜集起來相對費力些。我總結了一下個人的學習流程,大致如下:
學習流程:
(1)搜尋并下載不熟悉芯片的硬件數據手冊;
(2)參考在Gitee上開源的有關嵌入式的項目代碼及文檔;
(3)參考OpenHarmony開發(fā)者社區(qū)交流帖;
(4)通過各種搜索引擎(百度、搜狗、Microsoft Bing等)查找相關文章;
(5)去Bilibili搜索相關內容,碰碰運氣;
(6)QQ群,碰碰運氣;
(7)以上如果均未得到有效解決方案,根據已有資料,自己研究解決。
接觸OpenHarmony最大的驚喜和具體的收獲
要數接觸OpenHarmony最大的驚喜,我認為應該是在官方提供的如何采用C語言開發(fā)的教學中提供了一種通過SSH實現(xiàn)在WIN10系統(tǒng)內編輯,在虛擬機Ubuntu系統(tǒng)里編譯的方法,這個方法對我提供了不小的幫助。
其他驚喜與收獲:
(1)傳智教育Hi3861 IoT WiFi物聯(lián)網模組的封裝十分精致小巧,該Hi3861模組支持FreeRTOS系統(tǒng),且支持用Micropython、C語言開發(fā);
(2)初步了解OpenHarmony嵌入式開發(fā)的基本流程,并實現(xiàn)了個人需求的相應效果。
對于OpenHarmony系統(tǒng)的建議
(1)用來燒錄程序的Hiburn軟件無法保存偏好設置,UI設計及操作界面也有些不夠清晰。比如,每次打開都要手動把燒錄程序波特率115200調到921600;
(2)用來開發(fā)傳智教育Hi3861物聯(lián)網模組的一些基本工具庫需要完善。比如,IIC通信、SPI通信、OLED屏幕、TFT屏幕、MPU6050傳感器等常用模塊的驅動;
(3)傳智教育Hi3861模組在Linux環(huán)境下編譯調試時,不方便找到報錯信息。
項目技術過程分享
(1)機械結構部分采用SolidWorks 2020設計,通過FDM式3D打印制造。其主要設計內容包括軀體與單腿。單腿機構采用平面四連桿構成并聯(lián)腿,擁有3自由度,設計思路是盡量減輕腿部重量,并且使三個電機安裝的位置緊湊集中。軀體采用模塊分立結構設計,方便維護更換及升級;
(2)電控硬件部分采用立創(chuàng)EDA專業(yè)版設計。關于12路舵機驅動主要由PCA9685PW管理,Hi3861物聯(lián)網模組主控,供電部分采用了一個DC-DC BUCK型降路壓電路,支持最大電流6A,保證電機及控制電路供電充足;
(3)軟件部分采用Clion作為編輯器,linux環(huán)境下編譯。在實現(xiàn)主單腿正逆解、足端擺線軌跡規(guī)劃的基礎上,實現(xiàn)了四足機器狗的Trot小跑步態(tài)運動,姿態(tài)逆解控制等;
(4)機器人的遠程控制App基于Android開發(fā),與四足機器狗之間采用了UDP協(xié)議實現(xiàn)無線通信。
項目過程中遇到的困難&解決辦法
困難:
Hi3861模組焊接完成后,按EN復位,串口輸出為亂碼。
檢測結果:
(1)拆除WS2812B燈珠后,串口即能輸出正常信息;
(2)拔下MPU6050模塊后,串口即能輸出正常信息。
解決方案:
(1)拆去連接IO2引腳的WS2812B燈珠;
(2)拔下連接IO7、IO8引腳的MPU6050模塊。
疑似原因:
Hi3861模組燒錄時,特定引腳不能外接設備。
當我一開始發(fā)現(xiàn)輸出亂碼,慣性上會首先思考MCU的焊接是否良好、串口通訊的電路是否正常、芯片供電是否正常、EN按鍵是否正常等問題。后來能順利解決問題也是在檢查上面所有問題后歪打正著,意外拆掉那顆WS2812燈珠后才發(fā)現(xiàn)復位正常了。
項目開發(fā)過程最重要或最值得分享的心得
(1)開發(fā)過程中卡殼,先檢查硬件問題,再檢查軟件問題。
硬件問題一般比軟件問題更麻煩一些,畢竟可能遇到需要重買材料、重新制板等時間成本較大的修補措施。
硬件問題檢查:一般采用控制變量法把所有的嫌疑因素逐個排除。比如,先考慮各器件的焊接是否正常(可采用萬用表蜂鳴檔檢測)。如果有MCU的電路先檢查MCU及其外圍電路,是否能夠燒錄程序。之后可通過寫各種Demo小程序來快速測試其他硬件資源是否正常。
檢查MCU及其外圍電路是否正常,可以先觀察焊接上是否有虛焊,連錫等情況。如果均無問題可接著測供電電壓是否正常。同時需注意,用電端燒毀一般是電壓問題,供電端燒毀一般是電流過大。
軟件問題調試:如果有報錯信息,就去閱讀報錯信息來調試代碼。如果是語法錯誤就比較容易解決。如果遇到比如LED驅動不亮,先檢查封裝或LED焊反沒,檢查原理圖上LED是引腳電平拉高還是拉低點亮。如果遇到采用IIC通訊的OLED屏幕無法點亮,先寫簡單的程序從大到小逐步測通,比如先使屏幕點亮,再試著點亮一個點,再點亮一條線,畫出一個方塊,寫下一個字符。各種功能齊全后再組合調試出自己想要的效果。
而且單片機開發(fā)調試時不應該光敲代碼,中間需要穿插燒錄到單片機看是否能夠實現(xiàn)效果。問題多的話盡量分階段解決,而不是匯總到最后一起解決,不然很可能會出現(xiàn)找不到哪里出錯的。
(2)優(yōu)質的問題獲得優(yōu)質的回答。
提問者要多思考,如何闡述清楚自己的問題,考慮是否方便回答者能簡潔地回答自己的問題,比如對方只用回答是還是不是。
比如自己的代碼編譯報錯,如果問為什么自己的代碼跑不起來,為什么自己的LED燈不亮了,這無疑很難獲得自己想要的答案。因為開發(fā)的時候碰到的Bug會有千萬種,但是正確的跑通道路卻只有一條。如果代碼報錯,自己首先要去檢查所報錯的代碼段,細化大概在哪一行出現(xiàn)了問題,個人先去通過搜索、調試等手段嘗試能否解決。
雖然有時太具體的問題也不太好回答,比如有人問自己想用Hi3861模組開發(fā)一款能夠監(jiān)測室內溫濕度并實現(xiàn)澆水的智能澆花器。這類問題涉及的內容就比較多,也不好獲得自己想要的回答。調整一下的話,比如可以在問題最后加上,哪款溫濕度傳感器比較推薦,澆水用哪款電機比較合適等之類細化一些的問題。
(3)做項目,要一邊開發(fā)一邊學習。
想做一個項目,不像之前我們所接觸的教育那樣,先把一個領域全方面熟悉摸透后再去做。畢竟想摸清某個領域都是很不容易的。要明確知道自己的需求,自己想要實現(xiàn)什么,大概可以怎么樣去實現(xiàn),然后再去學習。需要用什么去學什么,需要用多少就學多少,除非自己對某方面非常感興趣。這樣才有可能快速地去完成自己的需求和實現(xiàn)想法。
做項目也是多做才可以更熟練,入門的話可以先跟著資料齊全,文檔清晰的優(yōu)秀開源作品復刻。做了幾個后,隨后就會慢慢摸索出自己如果想要實現(xiàn)新項目的開展思路。
接下來的開發(fā)計劃
(1)完善曾經的項目
由于我對自己之前的一些作品感覺還有很多不滿意、可以完善的地方,因此我計劃去優(yōu)化完善曾經一些老項目,包括結構設計、硬件設計、軟件設計、項目文檔等;
(2)開發(fā)一款電機調試器
畢竟我以后的工作很大概率會和機器人相關,預想的功能包括串口調試、CAN調試、舵機調試、總線舵機調試、直流電機調試、功率測量、屏幕顯示、PC端上位機交互等。
機器人的發(fā)展前景是一片廣闊無垠的星辰大海,OpenHarmony也是一樣,期待劉同學能夠在這兩個領域同時不斷深耕,并把它們靈活結合起來,創(chuàng)作出更多具有生活意義的作品,切實地影響改善人們的日常生活。
更多熱點文章閱讀
- 最新爆料!RK3588 適配 OpenHarmony 的新進展
- 首個OpenHarmony 5G手機適配進展
- 移植speexdsp到OpenHarmony標準系統(tǒng)③
- 移植speexdsp到OpenHarmony標準系統(tǒng)④
-
九聯(lián)科技Unionpi Tiger開發(fā)板體驗:使用串口調試土壤溫濕度傳感器
提示:本文由電子發(fā)燒友社區(qū)發(fā)布,轉載請注明以上來源。如需社區(qū)合作及入群交流,請?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。
原文標題:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
-
電子發(fā)燒友
+關注
關注
33文章
552瀏覽量
33027 -
開源社區(qū)
+關注
關注
0文章
94瀏覽量
464
原文標題:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論