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