基于STM32與PCA9685制作四足機(jī)器人
前言:本文為手把手教學(xué)基于STM32的四足機(jī)器人項(xiàng)目——JDY-31藍(lán)牙控制,特別地,本次項(xiàng)目采用的是STM32作為MCU。四足機(jī)器人的支架為3D打印件,SG90舵機(jī)驅(qū)動機(jī)器人實(shí)現(xiàn)姿態(tài)運(yùn)動。借助PCA9685舵機(jī)驅(qū)動板實(shí)現(xiàn)12路PWM波控制,更多的舵機(jī)可以實(shí)現(xiàn)機(jī)器人更多運(yùn)動姿態(tài)。本文將以STM32作為核心控制板搭配JDY-31藍(lán)牙模塊制作一個遠(yuǎn)程可控的藍(lán)牙四足機(jī)器人,采用三角法去解析機(jī)器人的步態(tài)運(yùn)動,實(shí)現(xiàn)較高自由度的平穩(wěn)運(yùn)動。(文末代碼與資料開源!)
實(shí)驗(yàn)硬件:STM32F103C8T6;PCA9685舵機(jī)驅(qū)動板;SG90舵機(jī);JDY-31藍(lán)牙模塊;0.96寸OLED;四足機(jī)器人3D打印件
硬件實(shí)物圖:
一、機(jī)器人介紹
1.1 機(jī)器人簡介
機(jī)器人(Robot)是一種能夠半自主或全自主工作的智能機(jī)器。機(jī)器人能夠通過編程和自動控制來執(zhí)行諸如作業(yè)或移動等任務(wù)。機(jī)器人具有感知、決策、執(zhí)行等基本特征,可以輔助甚至替代人類完成危險、繁重、復(fù)雜的工作,提高工作效率與質(zhì)量,服務(wù)人類生活,擴(kuò)大或延伸人的活動及能力范圍。
近些年來,隨著深度學(xué)習(xí)以及芯片計(jì)算能力的快速發(fā)展,全球出現(xiàn)了各式各樣的優(yōu)秀機(jī)器人。例如,波士頓動力(Boston Dynamics)的Atlas與Spot,國內(nèi)小米公司的鐵蛋1號等。這些機(jī)器人都或多或少代表了人類目前頂尖的機(jī)器人制造技術(shù),當(dāng)然隨著科學(xué)技術(shù)的進(jìn)一步發(fā)展,相信不久之后科幻電影中的高性能、高智商和高自由度的機(jī)器人將出現(xiàn)在世人眼中。
1.2 機(jī)器人項(xiàng)目概述
機(jī)器人的制作無論在工程應(yīng)用還是學(xué)術(shù)研究方面都存在著許多高深知識點(diǎn),其涉及到運(yùn)動控制算法,機(jī)械結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)通訊等諸多方面。每一個環(huán)節(jié)的設(shè)計(jì)與研發(fā)都對最終的機(jī)器人成品有著決定性作用,一個優(yōu)秀的產(chǎn)品肯定是需要精雕細(xì)琢的!
當(dāng)然,本項(xiàng)目的四足機(jī)器人借鑒了國外眾多優(yōu)秀開源的四足機(jī)器人機(jī)械結(jié)構(gòu),項(xiàng)目主體框架采用PLA材質(zhì)的3D打印件,具有很高的性價比與機(jī)械硬度。12路SG90舵機(jī)的設(shè)計(jì)帶給機(jī)器人更多的運(yùn)動姿態(tài),更穩(wěn)定的步態(tài)。項(xiàng)目中四足機(jī)器人的控制則采用JDY-31藍(lán)牙模塊與手機(jī)上位機(jī)藍(lán)牙助手APP進(jìn)行通訊,方便開發(fā)簡單易上手。總之,本項(xiàng)目設(shè)計(jì)的四足機(jī)器人基礎(chǔ)框架具有很高的上限值,感興趣的讀者朋友可以嘗試復(fù)現(xiàn)后再優(yōu)化。
二、PCA9685舵機(jī)驅(qū)動板
PCA9685驅(qū)動板是一款基于IIC總線通信的12位精度16通道PWM波輸出的芯片,該芯片最初由NXP(恩智浦)推出時主要面向LED開關(guān)調(diào)光,16路12位PWM信號發(fā)生器,可用于控制舵機(jī)、LED、電機(jī)等設(shè)備。利用IIC通信讀寫關(guān)鍵寄存器內(nèi)的數(shù)據(jù)來控制多路PWM信號發(fā)送,節(jié)省主機(jī)引腳資源。靈活使用PCA9685驅(qū)動板,就可以真正實(shí)現(xiàn)舵機(jī)自由(理論上最高可以控制64路舵機(jī))。
PCA9685驅(qū)動板厲害之處在于成功通過IIC通訊去解決了MCU的PWM波引腳較少的窘境,通過對PCA9685對應(yīng)的寄存器寫入相關(guān)的數(shù)據(jù)進(jìn)行配置PCA9685的時鐘初始化后,再對現(xiàn)有的16路引腳對應(yīng)的寄存器寫入需要的寄存器數(shù)值實(shí)現(xiàn)16路PWM的控制輸出。詳情的資料可以參考恩智浦公司提供的技術(shù)文檔
特別注意:PCA9685模塊有2個電源引腳,其中綠色接線柱處為16路舵機(jī)的電源供應(yīng)引腳,切忌此處接入的移動電源電壓不得超過舵機(jī)額定電壓。(考慮到多路舵機(jī)同時工作,建議使用大電流電源)
三、JDY-31藍(lán)牙模塊
JDY-31藍(lán)牙模塊基于藍(lán)牙3.0 SPP設(shè)計(jì),這樣可以支持 Windows、Linux、android數(shù)據(jù)透傳,工作頻段 2.4GHZ,調(diào)制方式GFSK,最大發(fā)射功率8db,最大發(fā)射距離30米,支持用戶通過AT命令修改設(shè)備名、波特率等指令,方便快捷使用靈活。
其通常使用時接入串口引腳(UART)即可,成功與藍(lán)牙模塊建立通信后會發(fā)送CONNECTED。簡單的說,JDY-31藍(lán)牙模塊本質(zhì)上就是一個藍(lán)牙轉(zhuǎn)串口的設(shè)備,使用的時候直接當(dāng)串口通訊進(jìn)行使用即可。
而上位機(jī)作者則選用現(xiàn)成開源的藍(lán)牙調(diào)試器APP,直接創(chuàng)建一個針對本項(xiàng)目機(jī)器人的控制上位機(jī)工程。利用該APP極大的縮短了上位機(jī)開發(fā)的時間與工作量,也可以快速檢驗(yàn)出機(jī)器人的運(yùn)動控制是否滿足要求(需要藍(lán)牙調(diào)試APP的可以私信作者提供)。
嵌入式物聯(lián)網(wǎng)的學(xué)習(xí)之路非常漫長,不少人因?yàn)閷W(xué)習(xí)路線不對或者學(xué)習(xí)內(nèi)容不夠?qū)I(yè)而錯失高薪offer。不過別擔(dān)心,我為大家整理了一份150多G的學(xué)習(xí)資源,基本上涵蓋了嵌入式物聯(lián)網(wǎng)學(xué)習(xí)的所有內(nèi)容。點(diǎn)擊下方鏈接,0元領(lǐng)取學(xué)習(xí)資源,讓你的學(xué)習(xí)之路更加順暢!記得點(diǎn)贊、關(guān)注、收藏、轉(zhuǎn)發(fā)哦!
點(diǎn)擊這里找小助理0元領(lǐng)取:掃碼進(jìn)群領(lǐng)資料
- 贊