基于STM32與PCA9685制作四足機器人

前言:本文為手把手教學基于STM32的四足機器人項目——JDY-31藍牙控制,特別地,本次項目采用的是STM32作為MCU四足機器人的支架為3D打印件SG90舵機驅動機器人實現姿態運動。借助PCA9685舵機驅動板實現12路PWM波控制,更多的舵機可以實現機器人更多運動姿態。本文將以STM32作為核心控制板搭配JDY-31藍牙模塊制作一個遠程可控的藍牙四足機器人,采用三角法去解析機器人的步態運動,實現較高自由度的平穩運動。(文末代碼與資料開源!

實驗硬件:STM32F103C8T6;PCA9685舵機驅動板;SG90舵機;JDY-31藍牙模塊;0.96寸OLED;四足機器人3D打印件

硬件實物圖:

一、機器人介紹

1.1 機器人簡介

機器人Robot是一種能夠半自主或全自主工作的智能機器。機器人能夠通過編程和自動控制來執行諸如作業或移動等任務。機器人具有感知、決策、執行等基本特征,可以輔助甚至替代人類完成危險、繁重、復雜的工作,提高工作效率與質量,服務人類生活,擴大或延伸人的活動及能力范圍。

近些年來,隨著深度學習以及芯片計算能力的快速發展,全球出現了各式各樣的優秀機器人。例如,波士頓動力(Boston Dynamics)AtlasSpot,國內小米公司鐵蛋1號等。這些機器人都或多或少代表了人類目前頂尖的機器人制造技術,當然隨著科學技術的進一步發展,相信不久之后科幻電影中的高性能、高智商和高自由度的機器人將出現在世人眼中。

1.2 機器人項目概述

機器人的制作無論在工程應用還是學術研究方面都存在著許多高深知識點,其涉及到運動控制算法機械結構設計數據通訊諸多方面。每一個環節的設計與研發都對最終的機器人成品有著決定性作用,一個優秀的產品肯定是需要精雕細琢的!

當然,本項目的四足機器人借鑒了國外眾多優秀開源的四足機器人機械結構,項目主體框架采用PLA材質的3D打印件,具有很高的性價比與機械硬度。12路SG90舵機的設計帶給機器人更多的運動姿態,更穩定的步態。項目中四足機器人的控制則采用JDY-31藍牙模塊與手機上位機藍牙助手APP進行通訊,方便開發簡單易上手。總之,本項目設計的四足機器人基礎框架具有很高的上限值,感興趣的讀者朋友可以嘗試復現后再優化。


二、PCA9685舵機驅動板

PCA9685驅動板是一款基于IIC總線通信12位精度16通道PWM波輸出的芯片,該芯片最初由NXP(恩智浦)出時主要面向LED開關調光,16路12位PWM信號發生器,可用于控制舵機、LED、電機等設備。利用IIC通信讀寫關鍵寄存器內的數據來控制多路PWM信號發送,節省主機引腳資源。靈活使用PCA9685驅動板,就可以真正實現舵機自由(理論上最高可以控制64路舵機)。


PCA9685驅動板厲害之處在于成功通過IIC通訊去解決了MCU的PWM波引腳較少的窘境,通過對PCA9685對應的寄存器寫入相關的數據進行配置PCA9685的時鐘初始化后,再對現有的16路引腳對應的寄存器寫入需要的寄存器數值實現16路PWM的控制輸出。詳情的資料可以參考恩智浦公司提供的技術文檔


特別注意:PCA9685模塊有2個電源引腳,其中綠色接線柱處為16路舵機的電源供應引腳,切忌此處接入的移動電源電壓不得超過舵機額定電壓。(考慮到多路舵機同時工作,建議使用大電流電源)

三、JDY-31藍牙模塊

JDY-31藍牙模塊基于藍牙3.0 SPP設計,這樣可以支持 Windows、Linux、android數據透傳,工作頻段 2.4GHZ,調制方式GFSK,最大發射功率8db最大發射距離30米,支持用戶通過AT命令修改設備名、波特率等指令,方便快捷使用靈活。

其通常使用時接入串口引腳(UART)即可,成功與藍牙模塊建立通信后會發送CONNECTED。簡單的說,JDY-31藍牙模塊本質上就是一個藍牙轉串口的設備,使用的時候直接當串口通訊進行使用即可。

而上位機作者則選用現成開源的藍牙調試器APP,直接創建一個針對本項目機器人的控制上位機工程。利用該APP極大的縮短了上位機開發的時間與工作量,也可以快速檢驗出機器人的運動控制是否滿足要求(需要藍牙調試APP的可以私信作者提供)。

嵌入式物聯網的學習之路非常漫長,不少人因為學習路線不對或者學習內容不夠專業而錯失高薪offer。不過別擔心,我為大家整理了一份150多G的學習資源,基本上涵蓋了嵌入式物聯網學習的所有內容。點擊下方鏈接,0元領取學習資源,讓你的學習之路更加順暢!記得點贊、關注、收藏、轉發哦!

點擊這里找小助理0元領取:掃碼進群領資料

the end

評論(0)