-
主控MCU:Hi3861模組
-
關(guān)節(jié)位控電機(jī):9g舵機(jī) ---> MG90S;
-
舵機(jī)驅(qū)動(dòng)管理:PCA9685PW;
-
IMU傳感器:MPU6050;
-
機(jī)械結(jié)構(gòu)部分采用SolidWorks 2020設(shè)計(jì),通過(guò)FDM式3D打印制造。其主要設(shè)計(jì)內(nèi)容包括軀體與單腿。單腿機(jī)構(gòu)采用平面四連桿構(gòu)成并聯(lián)腿,擁有3自由度,設(shè)計(jì)思路是盡量減輕腿部重量,并且使三個(gè)電機(jī)安裝的位置緊湊集中。軀體采用模塊分立結(jié)構(gòu)設(shè)計(jì),方便維護(hù)更換及升級(jí);
-
電控硬件部分采用立創(chuàng)EDA專業(yè)版設(shè)計(jì)。關(guān)于12路舵機(jī)驅(qū)動(dòng)主要由PCA9685PW管理,Hi3861物聯(lián)網(wǎng)模組主控,供電部分采用了一個(gè)DC-DC BUCK型降路壓電路,支持最大電流6A,保證電機(jī)及控制電路供電充足;
-
軟件部分采用Clion作為編輯器,linux環(huán)境下編譯。在實(shí)現(xiàn)主單腿正逆解、足端擺線軌跡規(guī)劃的基礎(chǔ)上,實(shí)現(xiàn)了四足機(jī)器狗的Trot小跑步態(tài)運(yùn)動(dòng),姿態(tài)逆解控制等;
-
機(jī)器人的遠(yuǎn)程控制App基于Android開發(fā),與四足機(jī)器狗之間采用了UDP協(xié)議實(shí)現(xiàn)無(wú)線通信。
為了能夠使機(jī)器人在三維空間中能夠自由運(yùn)動(dòng),首先,確定了機(jī)器人整體設(shè)計(jì)有12個(gè)自由度。
腿部結(jié)構(gòu):
考慮到機(jī)器人后續(xù)的運(yùn)動(dòng)性能和續(xù)航,該機(jī)器人腿部結(jié)構(gòu)的設(shè)計(jì)思路是,盡量減輕了腿部重量與保證單腿上三個(gè)電機(jī)的安裝位置緊湊。故大腿小腿的的結(jié)構(gòu)采用了并聯(lián)腿結(jié)構(gòu)。該并聯(lián)腿的機(jī)構(gòu)原理屬于借鑒參考了其他開源項(xiàng)目,并不是完全創(chuàng)新。
軀體結(jié)構(gòu):
在設(shè)計(jì)機(jī)器人軀體是,依照的是模塊化思路,將整個(gè)軀體分解為由頂層板、底層板、左側(cè)板、右側(cè)板、前側(cè)板、后側(cè)板六部分拼接而成,然后再依次在各板塊上進(jìn)行安裝接口與外形設(shè)計(jì)。
接口安排:
四條單腿的電機(jī)安裝接口分別在左側(cè)板與右側(cè)板上,而控制板的接口在頂層板上,移動(dòng)電源設(shè)計(jì)放置在機(jī)器人腹內(nèi),四足機(jī)器人頂層板的前后側(cè)部分挖空方便理線,頂層板尾部設(shè)計(jì)有天線接口,底層板前側(cè)設(shè)計(jì)了一處舵機(jī)接口。接口的方式幾乎均為鏤空,另一好處可以節(jié)省材料。
結(jié)構(gòu)制造:
由于本人制造手段目前限制于僅FDM式3D打印機(jī),故結(jié)構(gòu)設(shè)計(jì)過(guò)程中盡量避免的平行與底面的懸空結(jié)構(gòu),故該機(jī)器人的各零部件在打印時(shí)幾乎不需要支撐結(jié)構(gòu),即方便后處理步驟與節(jié)省材料。
電控硬件設(shè)計(jì)思路主控MCU:
這個(gè)不用多說(shuō),已固定為Hi3861模組。其外圍電路數(shù)據(jù)手冊(cè)即教學(xué)視頻都有,非常簡(jiǎn)單。僅需要注意模組天線部分背部不要布線或挖空。
串口通訊:
采用了CH340系列引腳最少的CH340N,配合Type-C接口。個(gè)人目前比較喜歡Type-C,雖然不太好焊,但對(duì)我來(lái)講沒什么問題。
舵機(jī)驅(qū)動(dòng):
由于舵機(jī)數(shù)量多達(dá)12個(gè)及以上,采用PCA9685PW屬常規(guī)操作了。目前也就發(fā)現(xiàn)一款LU9685,其沒找到?jīng)]太好的替代芯片。
供電電路:
以一顆舵機(jī)額定運(yùn)行需要5V,200mA來(lái)算,加上MCU模組及其他芯片需500mA左右來(lái)算,正常運(yùn)作將近需要2.9A.故LDO無(wú)法滿足,需DC-DC BUCK型降壓電路將2S鋰電池降壓到5V輸出。MP2236支持寬電壓輸入,最高電壓18V,最大電流6A。
控制算法設(shè)計(jì)思路整體思路:
四足機(jī)器人基本的運(yùn)動(dòng)控制幾乎都是在實(shí)現(xiàn)單腿正逆解的基礎(chǔ)上實(shí)現(xiàn)的。
單腿正逆解:
了解到有DH建模法、幾何法等方法可以實(shí)現(xiàn),個(gè)人此次采用的是幾何法實(shí)現(xiàn)。(因?yàn)镈H建模時(shí)因?yàn)閍rcsin出現(xiàn)了很多計(jì)算上的BUG)
姿態(tài)逆解:
姿態(tài)逆解即在單腿逆解基礎(chǔ)上,通過(guò)單腿把整個(gè)軀體當(dāng)做并聯(lián)機(jī)構(gòu)來(lái)控制,其實(shí)也就設(shè)計(jì)單腿和軀體的坐標(biāo)系變換,理解相對(duì)運(yùn)動(dòng)即可。
步態(tài)規(guī)劃:
步態(tài)規(guī)劃要控制的一個(gè)是足端軌跡,一個(gè)是單個(gè)步態(tài)周期中各腿的運(yùn)動(dòng)。首先可理解的是各腿的運(yùn)動(dòng)軌跡,可均采用一種規(guī)劃,本項(xiàng)目中采用的是擺線來(lái)規(guī)劃。隨后主要控制的便是一個(gè)步態(tài)周期,各單腿的抬起落下,即擺動(dòng)相與支撐相。本項(xiàng)目中僅演示了Trot步態(tài),即對(duì)角小跑步態(tài)。對(duì)于足端軌跡是實(shí)時(shí)解算的,對(duì)角兩腿向前擺動(dòng)時(shí),另外對(duì)角兩腿同步向后支撐,即控制的機(jī)器狗的整體移動(dòng)。包括后續(xù)的轉(zhuǎn)彎,左右平移皆是一個(gè)原理。
上位機(jī)設(shè)計(jì)思路整體思路:
上位機(jī)設(shè)計(jì)在移動(dòng)端,即Andorid開發(fā)實(shí)現(xiàn)。 采用的是UDP通信,機(jī)器人與手機(jī)連入同一個(gè)WiFi即可控制。 實(shí)現(xiàn)通信僅需要對(duì)齊IPV4地址與端口號(hào)即可。 App里主要需要實(shí)現(xiàn)WiFi通信、UI布局設(shè)計(jì)、指令設(shè)計(jì)即可。 此次主要挑戰(zhàn)了一下在界面設(shè)計(jì)與交互上的美化,運(yùn)用了圓環(huán)動(dòng)畫按鈕,其他交互設(shè)計(jì)上也想著盡量簡(jiǎn)潔而美觀,控件主要也就涉及了Button、EditText等。 此App目前還不太完善,后面會(huì)繼續(xù)完善開發(fā)其他功能。遇到問題&解決辦法示例遇到問題:
Hi3861模組焊接完成后,按EN復(fù)位,串口輸出為亂碼。檢測(cè)過(guò)程:
-
拆除WS2812B燈珠后,串口即能輸出正常信息;
-
拔下MPU6050模塊后,串口即能輸出正常信息。
疑似原因:
Hi3861模組燒錄時(shí),特定引腳不能外接設(shè)備。
當(dāng)我一開始發(fā)現(xiàn)輸出亂碼,慣性上會(huì)首先思考MCU的焊接是否良好、串口通訊的電路是否正常、芯片供電是否正常、EN按鍵是否正常等問題。后來(lái)能順利解決問題也是在檢查上面所有問題后歪打正著,意外拆掉那顆WS2812燈珠后才發(fā)現(xiàn)復(fù)位正常了。
解決方案:
-
拆去連接IO2引腳的WS2812B燈珠;
-
拔下連接IO7、IO8引腳的MPU6050模塊。
開發(fā)過(guò)程中卡殼,先檢查硬件問題,再檢查軟件問題:
硬件問題一般比軟件問題更麻煩一些,畢竟可能遇到需要重買材料,重新制板等時(shí)間成本較大的修補(bǔ)措施。
硬件問題檢查: 一般采用控制變量法把所有的嫌疑因素逐個(gè)排除。比如,先考慮各器件的焊接是否正常(可采用萬(wàn)用表蜂鳴檔檢測(cè))。如果有MCU的電路先檢查MCU及其外圍電路,是否能夠燒錄程序。因?yàn)橹罂赏ㄟ^(guò)寫各種Demo小程序來(lái)快速測(cè)試其他硬件資源是否正常。
檢查MCU及其外圍電路是否正常,可以先觀察焊接上是否有虛焊,連錫等情況。如果均無(wú)問題可接著測(cè)供電電壓是否正常。同時(shí)需注意,用電端燒毀一般是電壓?jiǎn)栴},供電端燒毀一般是電流過(guò)大。
軟件問題調(diào)試: 如果有報(bào)錯(cuò)信息,就去閱讀報(bào)錯(cuò)信息來(lái)調(diào)試代碼。如果語(yǔ)法錯(cuò)誤就比較容易解決。如果遇到比如LED驅(qū)動(dòng)不亮,先檢查封裝或LED焊反沒,檢查原理圖上LED是引腳電平拉高還是拉低點(diǎn)亮。如果遇到采用IIC通訊的OLED屏幕無(wú)法點(diǎn)亮,先寫簡(jiǎn)單的程序測(cè)通,比如先使屏幕點(diǎn)亮,再試著點(diǎn)亮一個(gè)點(diǎn),再點(diǎn)亮一條線,畫出一個(gè)方塊,寫下一個(gè)字符。各種功能齊全后在組合調(diào)試出自己想要的效果。
而且單片機(jī)開發(fā)調(diào)試時(shí)不應(yīng)該光敲代碼,中間需要穿插燒錄到單片機(jī)看是否能夠?qū)崿F(xiàn)效果。問題多的話盡量分階段解決,而不是匯總到最后一起解決,不然很可能會(huì)出現(xiàn)找不到哪里出錯(cuò)的。
優(yōu)質(zhì)的問題獲得優(yōu)質(zhì)的回答:
提問者要多思考,如何闡述清楚自己的問題,考慮是否方便回答者能簡(jiǎn)潔地回答自己的問題,比如對(duì)方只用回答是還是不是。
比如自己的代碼編譯報(bào)錯(cuò),如果問為什么自己的代碼跑不起來(lái),為什么自己的LED燈不亮了,這無(wú)疑很難獲得自己想要的答案。因?yàn)殚_發(fā)的時(shí)候碰到的Bug會(huì)有千萬(wàn)種,但是正確的跑通道路卻只有一條。如果代碼報(bào)錯(cuò),自己首先要去檢查所報(bào)錯(cuò)的代碼段,細(xì)化大概在哪一行出現(xiàn)了問題,個(gè)人先去通過(guò)搜索、調(diào)試等手段嘗試能否解決。
雖然有時(shí)太具體的問題也不太好回答,比如有人問自己想用Hi3861模組開發(fā)一款能夠監(jiān)測(cè)室內(nèi)溫濕度并實(shí)現(xiàn)澆水的智能澆花器。這類問題涉及的內(nèi)容就比較多,也不好獲得自己想要的回答。調(diào)整一下的話,比如可以在問題最后加上,哪款溫濕度傳感器比較推薦,澆水用哪款電機(jī)比較合適等之類細(xì)化一些的問題。
做項(xiàng)目,要一邊開發(fā)一邊學(xué)習(xí):
想做一個(gè)項(xiàng)目,不像之前我們所接觸的教育那樣,先把一個(gè)領(lǐng)域全方面熟悉摸透后再去做。畢竟想摸清某個(gè)領(lǐng)域都是很不容易的。要明確知道自己的需求,自己想要實(shí)現(xiàn)什么,大概可以怎么樣去實(shí)現(xiàn),然后再去學(xué)習(xí)。需要用什么去學(xué)什么,需要用多少就學(xué)多少,除非自己對(duì)某方面非常感興趣。這樣才有可能快速地去完成自己的需求和實(shí)現(xiàn)想法。
做項(xiàng)目也是多做才可以更熟練,入門的話可以先跟著資料齊全,文檔清晰的優(yōu)秀開源作品復(fù)刻。做了幾個(gè)后,隨后就會(huì)慢慢摸索出自己如果想要實(shí)現(xiàn)新項(xiàng)目的開展思路。
寫在最后我們最近正帶著大家玩嗨OpenHarmony。如果你有好玩的東東,歡迎投稿,讓我們一起嗨起來(lái)!有點(diǎn)子,有想法,有Demo,立刻聯(lián)系我們:合作郵箱:zzliang@atomsource.org
![]() |
![4a1b24ca-5922-11ed-a3b6-dac502259ad0.png](https://file1.elecfans.com//web2/M00/97/67/wKgaomTnLAKAabkTAAQg3w5vDL4148.png)
![4ac3d534-5922-11ed-a3b6-dac502259ad0.png](https://file1.elecfans.com//web2/M00/97/67/wKgaomTnLAKAXzq8AAPARPYvRao076.png)
![4b682f80-5922-11ed-a3b6-dac502259ad0.png](https://file1.elecfans.com//web2/M00/97/67/wKgaomTnLAKAaKy5AAY5QEfgqIk428.png)
![4c9be126-5922-11ed-a3b6-dac502259ad0.png](https://file1.elecfans.com//web2/M00/97/67/wKgaomTnLAOAIEK_AAFY0l8hkEc576.png)
原文標(biāo)題:玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信公眾號(hào):開源技術(shù)服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
四足機(jī)器人
+關(guān)注
關(guān)注
1文章
92瀏覽量
15269 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3747瀏覽量
16581
原文標(biāo)題:玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信號(hào):開源技術(shù)服務(wù)中心,微信公眾號(hào):共熵服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web2/M00/94/51/wKgaomTkc_SAHmaiAAE7Fm1R6pc484.jpg)
OpenHarmony應(yīng)用開發(fā)入門與基礎(chǔ)課程_第四章-獲取網(wǎng)絡(luò)數(shù)據(jù) _OpenHarmony網(wǎng)絡(luò)能力
四足仿生機(jī)器人
每周精選 | 履帶四足復(fù)合機(jī)器人開源分享,OpenHarmony開源開發(fā)者成長(zhǎng)計(jì)劃
劉瀟翔:基于OpenHarmony的仿生四足狗開發(fā)分享
openharmony開發(fā)企業(yè)有哪些
openharmony開源社區(qū) OpenHarmony開發(fā)樣例上新了
OpenHarmony開發(fā)體系內(nèi)容介紹
玩嗨OpenHarmony:基于OpenHarmony的機(jī)械狗進(jìn)階版——聽話的狗子
玩嗨OpenHarmony:基于OpenHarmony的道路維護(hù)方案
玩嗨OpenHarmony:基于OpenHarmony的智能保險(xiǎn)柜
玩嗨OpenHarmony:基于OpenHarmony的貪吃蛇小游戲
玩嗨OpenHarmony:基于OpenHarmony的ArkUI翻頁(yè)時(shí)鐘
基于OpenHarmony的仿生四足狗開發(fā)分享
openharmony開發(fā)應(yīng)用
基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony
![基于ArkTS語(yǔ)言的<b class='flag-5'>OpenHarmony</b> APP應(yīng)用<b class='flag-5'>開發(fā)</b>:Hello<b class='flag-5'>Openharmony</b>](https://file.elecfans.com/web2/M00/26/21/pYYBAGG5jjSALfrEAAAwAa9Oig8799.png)
評(píng)論