說起人工智能機器人界的網(wǎng)紅,那就不得不提到——“機器狗”。此前,著名機器人公司波士頓動力制造的“Spot”機器狗、國內(nèi)知名科技企業(yè)蔚藍(lán)科技自主設(shè)計研發(fā)的“阿爾法”機器狗、小米仿生四足機器人“CyberDog”都曾火爆全網(wǎng)。
機器狗的開發(fā)需要硬件、軟件及運動行為三者達(dá)到協(xié)調(diào),并不是一件容易的事,而在傳智教育舉辦的《仿生機器狗訓(xùn)練營》中,特等獎獲得者劉瀟翔脫穎而出,他從0-1打造了一個基于OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)系統(tǒng)的機器狗,并將在本文中帶來一些開發(fā)過程中的心得體會分享。
個人介紹
大家好,我是劉瀟翔,現(xiàn)就讀于南方科技大學(xué)(Southern University of Science and Technology)研一,修讀的專業(yè)是智能制造與機器人。
開發(fā)項目簡介
在這次訓(xùn)練營中,我從機械結(jié)構(gòu)、電控硬件、控制算法、上位機等四個方面設(shè)計并制作了一款基于傳智教育Hi3861 IoT WiFi模組主控,擁有十二自由度的桌面級四足機器狗—Puppy。

已經(jīng)合倉的代碼鏈接:https://gitee.com/openharmony-sig/contest/tree/master/2022_itcast_LCEDA_OpenHarmony_camp/Harmony%20Puppy
OpenHarmony學(xué)習(xí)過程
我第一次接觸到嵌入式開發(fā),還是在傳智教育舉辦的物聯(lián)網(wǎng)實戰(zhàn)——智能開關(guān)訓(xùn)練營中。在此之前我對OpenHarmony系統(tǒng)了解不是很多,以為僅是運行在移動端與PC端的系統(tǒng),但我還是對其充滿好奇,畢竟這是為了打破技術(shù)封鎖自主研發(fā)的系統(tǒng)。所以我也想了解OpenHarmony嵌入式開發(fā),與常見的單片機STM32、ESP32、ATmega328P這些MCU的開發(fā)有什么區(qū)別。
傳智教育旗下的Hi3861 IoT WiFi模組主芯片為海思Hi3861V100,擁有完整的WiFi功能,支持采用Micropython或C語言開發(fā)。由于OpenHarmony的生態(tài)相比其他一些主流單片機,還比較單薄,所以輔助開發(fā)的相關(guān)資料搜集起來相對費力些。我總結(jié)了一下個人的學(xué)習(xí)流程,大致如下:
學(xué)習(xí)流程:
(1)搜尋并下載不熟悉芯片的硬件數(shù)據(jù)手冊;
(2)參考在Gitee上開源的有關(guān)嵌入式的項目代碼及文檔;
(3)參考OpenHarmony開發(fā)者社區(qū)交流帖;
(4)通過各種搜索引擎(百度、搜狗、Microsoft Bing等)查找相關(guān)文章;
(5)去Bilibili搜索相關(guān)內(nèi)容,碰碰運氣;
(6)QQ群,碰碰運氣;
(7)以上如果均未得到有效解決方案,根據(jù)已有資料,自己研究解決。
接觸OpenHarmony最大的驚喜和具體的收獲
要數(shù)接觸OpenHarmony最大的驚喜,我認(rèn)為應(yīng)該是在官方提供的如何采用C語言開發(fā)的教學(xué)中提供了一種通過SSH實現(xiàn)在WIN10系統(tǒng)內(nèi)編輯,在虛擬機Ubuntu系統(tǒng)里編譯的方法,這個方法對我提供了不小的幫助。
其他驚喜與收獲:
(1)傳智教育Hi3861 IoT WiFi物聯(lián)網(wǎng)模組的封裝十分精致小巧,該Hi3861模組支持FreeRTOS系統(tǒng),且支持用Micropython、C語言開發(fā);
(2)初步了解OpenHarmony嵌入式開發(fā)的基本流程,并實現(xiàn)了個人需求的相應(yīng)效果。
對于OpenHarmony系統(tǒng)的建議
(1)用來燒錄程序的Hiburn軟件無法保存偏好設(shè)置,UI設(shè)計及操作界面也有些不夠清晰。比如,每次打開都要手動把燒錄程序波特率115200調(diào)到921600;
(2)用來開發(fā)傳智教育Hi3861物聯(lián)網(wǎng)模組的一些基本工具庫需要完善。比如,IIC通信、SPI通信、OLED屏幕、TFT屏幕、MPU6050傳感器等常用模塊的驅(qū)動;
(3)傳智教育Hi3861模組在Linux環(huán)境下編譯調(diào)試時,不方便找到報錯信息。
項目技術(shù)過程分享
(1)機械結(jié)構(gòu)部分采用SolidWorks 2020設(shè)計,通過FDM式3D打印制造。其主要設(shè)計內(nèi)容包括軀體與單腿。單腿機構(gòu)采用平面四連桿構(gòu)成并聯(lián)腿,擁有3自由度,設(shè)計思路是盡量減輕腿部重量,并且使三個電機安裝的位置緊湊集中。軀體采用模塊分立結(jié)構(gòu)設(shè)計,方便維護更換及升級;
(2)電控硬件部分采用立創(chuàng)EDA專業(yè)版設(shè)計。關(guān)于12路舵機驅(qū)動主要由PCA9685PW管理,Hi3861物聯(lián)網(wǎng)模組主控,供電部分采用了一個DC-DC BUCK型降路壓電路,支持最大電流6A,保證電機及控制電路供電充足;
(3)軟件部分采用Clion作為編輯器,linux環(huán)境下編譯。在實現(xiàn)主單腿正逆解、足端擺線軌跡規(guī)劃的基礎(chǔ)上,實現(xiàn)了四足機器狗的Trot小跑步態(tài)運動,姿態(tài)逆解控制等;
(4)機器人的遠(yuǎn)程控制App基于Android開發(fā),與四足機器狗之間采用了UDP協(xié)議實現(xiàn)無線通信。
項目過程中遇到的困難&解決辦法
困難:
Hi3861模組焊接完成后,按EN復(fù)位,串口輸出為亂碼。
檢測結(jié)果:
(1)拆除WS2812B燈珠后,串口即能輸出正常信息;
(2)拔下MPU6050模塊后,串口即能輸出正常信息。
解決方案:
(1)拆去連接IO2引腳的WS2812B燈珠;
(2)拔下連接IO7、IO8引腳的MPU6050模塊。
疑似原因:
Hi3861模組燒錄時,特定引腳不能外接設(shè)備。
當(dāng)我一開始發(fā)現(xiàn)輸出亂碼,慣性上會首先思考MCU的焊接是否良好、串口通訊的電路是否正常、芯片供電是否正常、EN按鍵是否正常等問題。后來能順利解決問題也是在檢查上面所有問題后歪打正著,意外拆掉那顆WS2812燈珠后才發(fā)現(xiàn)復(fù)位正常了。

項目開發(fā)過程最重要或最值得分享的心得
(1)開發(fā)過程中卡殼,先檢查硬件問題,再檢查軟件問題。
硬件問題一般比軟件問題更麻煩一些,畢竟可能遇到需要重買材料、重新制板等時間成本較大的修補措施。
硬件問題檢查:一般采用控制變量法把所有的嫌疑因素逐個排除。比如,先考慮各器件的焊接是否正常(可采用萬用表蜂鳴檔檢測)。如果有MCU的電路先檢查MCU及其外圍電路,是否能夠燒錄程序。之后可通過寫各種Demo小程序來快速測試其他硬件資源是否正常。
檢查MCU及其外圍電路是否正常,可以先觀察焊接上是否有虛焊,連錫等情況。如果均無問題可接著測供電電壓是否正常。同時需注意,用電端燒毀一般是電壓問題,供電端燒毀一般是電流過大。
軟件問題調(diào)試:如果有報錯信息,就去閱讀報錯信息來調(diào)試代碼。如果是語法錯誤就比較容易解決。如果遇到比如LED驅(qū)動不亮,先檢查封裝或LED焊反沒,檢查原理圖上LED是引腳電平拉高還是拉低點亮。如果遇到采用IIC通訊的OLED屏幕無法點亮,先寫簡單的程序從大到小逐步測通,比如先使屏幕點亮,再試著點亮一個點,再點亮一條線,畫出一個方塊,寫下一個字符。各種功能齊全后再組合調(diào)試出自己想要的效果。
而且單片機開發(fā)調(diào)試時不應(yīng)該光敲代碼,中間需要穿插燒錄到單片機看是否能夠?qū)崿F(xiàn)效果。問題多的話盡量分階段解決,而不是匯總到最后一起解決,不然很可能會出現(xiàn)找不到哪里出錯的。
(2)優(yōu)質(zhì)的問題獲得優(yōu)質(zhì)的回答。
提問者要多思考,如何闡述清楚自己的問題,考慮是否方便回答者能簡潔地回答自己的問題,比如對方只用回答是還是不是。
比如自己的代碼編譯報錯,如果問為什么自己的代碼跑不起來,為什么自己的LED燈不亮了,這無疑很難獲得自己想要的答案。因為開發(fā)的時候碰到的Bug會有千萬種,但是正確的跑通道路卻只有一條。如果代碼報錯,自己首先要去檢查所報錯的代碼段,細(xì)化大概在哪一行出現(xiàn)了問題,個人先去通過搜索、調(diào)試等手段嘗試能否解決。
雖然有時太具體的問題也不太好回答,比如有人問自己想用Hi3861模組開發(fā)一款能夠監(jiān)測室內(nèi)溫濕度并實現(xiàn)澆水的智能澆花器。這類問題涉及的內(nèi)容就比較多,也不好獲得自己想要的回答。調(diào)整一下的話,比如可以在問題最后加上,哪款溫濕度傳感器比較推薦,澆水用哪款電機比較合適等之類細(xì)化一些的問題。
(3)做項目,要一邊開發(fā)一邊學(xué)習(xí)。
想做一個項目,不像之前我們所接觸的教育那樣,先把一個領(lǐng)域全方面熟悉摸透后再去做。畢竟想摸清某個領(lǐng)域都是很不容易的。要明確知道自己的需求,自己想要實現(xiàn)什么,大概可以怎么樣去實現(xiàn),然后再去學(xué)習(xí)。需要用什么去學(xué)什么,需要用多少就學(xué)多少,除非自己對某方面非常感興趣。這樣才有可能快速地去完成自己的需求和實現(xiàn)想法。
做項目也是多做才可以更熟練,入門的話可以先跟著資料齊全,文檔清晰的優(yōu)秀開源作品復(fù)刻。做了幾個后,隨后就會慢慢摸索出自己如果想要實現(xiàn)新項目的開展思路。
接下來的開發(fā)計劃
(1)完善曾經(jīng)的項目
由于我對自己之前的一些作品感覺還有很多不滿意、可以完善的地方,因此我計劃去優(yōu)化完善曾經(jīng)一些老項目,包括結(jié)構(gòu)設(shè)計、硬件設(shè)計、軟件設(shè)計、項目文檔等;
(2)開發(fā)一款電機調(diào)試器
畢竟我以后的工作很大概率會和機器人相關(guān),預(yù)想的功能包括串口調(diào)試、CAN調(diào)試、舵機調(diào)試、總線舵機調(diào)試、直流電機調(diào)試、功率測量、屏幕顯示、PC端上位機交互等。
機器人的發(fā)展前景是一片廣闊無垠的星辰大海,OpenHarmony也是一樣,期待劉同學(xué)能夠在這兩個領(lǐng)域同時不斷深耕,并把它們靈活結(jié)合起來,創(chuàng)作出更多具有生活意義的作品,切實地影響改善人們的日常生活。
更多熱點文章閱讀
- 最新爆料!RK3588 適配 OpenHarmony 的新進展
- 首個OpenHarmony 5G手機適配進展
- 移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)③
- 移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)④
-
九聯(lián)科技Unionpi Tiger開發(fā)板體驗:使用串口調(diào)試土壤溫濕度傳感器
提示:本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請注明以上來源。如需社區(qū)合作及入群交流,請?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。
原文標(biāo)題:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
電子發(fā)燒友
+關(guān)注
關(guān)注
33文章
559瀏覽量
33365 -
開源社區(qū)
+關(guān)注
關(guān)注
0文章
95瀏覽量
582
原文標(biāo)題:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
10米/秒比肩博爾特!公司成立不到一年,開發(fā)出全球跑得最快的機器狗!

鴻蒙北向開發(fā)OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置

鴻蒙北向開發(fā)OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置

四足機器人的結(jié)構(gòu)、控制及運動控制

四足巡檢機器人特點和作用是什么

OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發(fā)板演示

OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發(fā)板演示

第三屆OpenHarmony技術(shù)大會 “OpenHarmony開發(fā)者激勵計劃”授牌儀式圓滿舉行

【CW32開發(fā)】初探四足機器人

基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

OpenHarmony 明星開發(fā)板和應(yīng)用招募啟動,等你來!
基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony
鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)板
OpenHarmony開發(fā)者大會2024:鴻心聚力 智引未來

評論