經(jīng)常翻車的朋友們都知道,能在翻車后快速擺正車身的車才是好車。
就像動畫《四驅(qū)兄弟》中展現(xiàn)的那樣,在比賽中需要跟著賽車一起跑圈,而且賽車如果被撞翻還需要重新用手扶正,所浪費的時間非常影響比賽結(jié)果。
如果小豪和小烈可以擁有一款能通過發(fā)揮R128的WiFi&藍(lán)牙特性的平衡小車,從而能通過WiFi或藍(lán)牙連接的方式進(jìn)行控制,既可以自平衡和轉(zhuǎn)向,又可以遠(yuǎn)程操控,那冠軍豈不是手到擒來。
它,就是可以自平衡的賽車機(jī)器人——B_ROBOT_100ASK
項目簡介
本項目基于jjrobots的開源項目B-ROBOT EVO2進(jìn)行復(fù)刻,與原開源項目不一樣的地方是,作者將原本適配的的Arduino控制板移植為DShanMCU-R128s2-DevKit開發(fā)板,與此同時還添加了一些功能,比如自平衡功能、WiFi&藍(lán)牙控制、App控制以及語音控制功能,讓平衡小車的操控樂趣更上一層樓。
B_ROBOT_100ASK
自平衡演示
硬件設(shè)計
本項目中的自平衡賽車機(jī)器人的硬件設(shè)計結(jié)構(gòu)非常簡單,硬件部分主要由R128開發(fā)板和幾個驅(qū)動模塊組成。
硬件設(shè)計模塊
供電模塊
自平衡機(jī)器人采用鋰電池供電的方式,并利用mini360航模電池降壓模塊來將較進(jìn)行電壓的轉(zhuǎn)化工作,以滿足小車設(shè)備對電壓方面的需求
電機(jī)驅(qū)動模塊
自平衡機(jī)器人選用兩個NEMA17步進(jìn)電機(jī),并選用DDRV8825步進(jìn)電機(jī)驅(qū)動模塊來負(fù)責(zé)與電機(jī)之間的控制信息傳輸。
DDRV8825步進(jìn)電機(jī)驅(qū)動模塊的體積小,驅(qū)動能力強(qiáng),它只需要一個PWM波就能控制步進(jìn)電機(jī),同時基本上三個引腳就能完全控制步進(jìn)電機(jī)。
通過該模塊可以使小車快速反應(yīng)R128下達(dá)的運動信息,驅(qū)動小車本身的輪子進(jìn)行運動。
平衡模塊
MPU6050是一種6軸運動跟蹤傳感器,它包含3軸陀螺儀、3軸加速度計、運動處理器和溫度傳感器。它可以通過I2C總線接口與微控制器進(jìn)行通信,并且可以通過輔助I2C總線與其他傳感器設(shè)備通信。
MPU6050的主要作用是幫助機(jī)器人實現(xiàn)姿態(tài)感知和運動控制,提高機(jī)器人的自主性和靈活性。
遙控手柄UI控制(LVGL)
作者本人還利用R128開發(fā)板來移植了一個酷炫的LVGL遙控手柄UI,通過手柄上的菜單欄UI可以選擇不同的機(jī)器人基礎(chǔ)參數(shù)設(shè)置和進(jìn)行機(jī)器人操控。
手柄UI菜單欄滑動
在自平衡機(jī)器人啟動后,可以通過面包板上的兩個手柄去遙控機(jī)器人的前進(jìn)后退和轉(zhuǎn)彎,并且在屏幕上還會實時返回機(jī)器人的傾斜角度、速度、電量等狀態(tài)。
實現(xiàn)App控制
在機(jī)器人競速中,必須要在準(zhǔn)確性和速度之間找到平衡。為了更好的反饋給自平衡機(jī)器人設(shè)置不同參數(shù)下的運動狀態(tài),作者針對自平衡機(jī)器人進(jìn)行了控制App的適配。
App控制自平衡小車界面
App可以實時顯示電池狀態(tài)和機(jī)器人的傾斜角度,操作者只需要通過App中的幾個可視化按鈕和滑動欄來實時修改其PID,以實現(xiàn)對機(jī)器人速度和狀態(tài)的遠(yuǎn)程控制。
自平衡機(jī)器人的一般行為由一組參數(shù)定義:
// NORMAL MODE PARAMETERS #define MAX_THROTTLE 550 MAXIMUM VELOCITY #define MAX_STEERING 140 MAXIMUM SPINNING VELOCITY #define MAX_TARGET_ANGLE 14 MAXIMUM ANGLE REACHED WHEN MOVING // PRO MODE = MORE AGGRESSIVE (MAXIMUM SETTINGS) #define MAX_THROTTLE_PRO 860 MAXIMUM VELOCITY. PRO MODE #define MAX_STEERING_PRO 280 MAXIMUM SPINNING VELOCITY. PRO MODE #define MAX_TARGET_ANGLE_PRO 32 MAXIMUM ANGLE REACHED WHEN MOVING. PRO MODE #define KP 0.32 // 0.14 #define KD 0.050 // 0.028 #define KP_THROTTLE 0.075 //0.075 #define KI_THROTTLE 0.1 // 0.1 #define KP_POSITION 0.06 //0.055 #define KD_POSITION 0.45 //0.5 //#define KI_POSITION 0.02
比如:
高MAX_THROTTLE_PRO值會使機(jī)器人更快,但如果不能順利恢復(fù)垂直位置,穩(wěn)定性會降低。
高MAX_STEERING_PRO值會讓機(jī)器人旋轉(zhuǎn)得更快,但轉(zhuǎn)彎時更難精確控制。
高MAX_TARGET_ANGLE_PRO值將使機(jī)器人減小其相對于地板的角度,但這會使恢復(fù)和轉(zhuǎn)彎變得更加困難。
UDP網(wǎng)絡(luò)通信控制
這個功能的實現(xiàn)比較簡單,利用R128本身自帶的WiFi&藍(lán)牙特性,來實現(xiàn)兩塊R128開發(fā)板(機(jī)器人自身攜帶&手上的操控端)的UDP網(wǎng)絡(luò)通信控制。
UDP網(wǎng)絡(luò)通信控制演示
源碼獲取
基于R128-S2設(shè)計的全套開發(fā)板已上線淘寶百問網(wǎng)韋東山老師個人店進(jìn)行售賣,包含黑色的DshanMCU-R128s2-R16N16模組和全套的DshanMCU-R128s2-DEVKIT。
審核編輯:湯梓紅
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
28103瀏覽量
205847 -
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5751瀏覽量
169591 -
WIFI
+關(guān)注
關(guān)注
81文章
5280瀏覽量
203084 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
4896瀏覽量
97058
原文標(biāo)題:用R128復(fù)刻自平衡賽車機(jī)器人,還實現(xiàn)了三種不同的操控方式
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論