此車是在基礎(chǔ)的平衡功能之上加了許多玩法如藍(lán)牙控制,語音控制,避障控制,跟隨控制;集成在一起最終體現(xiàn)出有4種模式:藍(lán)牙模式,語音模式,避障模式和跟隨模式。

一、想法起源
在各大視頻平臺(tái)經(jīng)常刷到雙輪的平衡車覺得特別有意思,想著我自己也得做一個(gè)屬于我的平衡車,但我所想的平衡車不能與他人一樣只有平衡功能還想再加上一些更有意思的功能;于是還是繼續(xù)網(wǎng)上沖浪多看看有哪些有意思的功能適合加在我這個(gè)平衡車上,于是在看到許多小車視頻后最終確定就加上藍(lán)牙控制,語音控制,避障控制,跟隨控制就行了吧;隨即分別實(shí)現(xiàn)上述功能后,在集合到一起,接下來就是不斷調(diào)試,經(jīng)常燒,燒了換,換了燒,最終不斷改進(jìn)終于是成功了,至此現(xiàn)記錄下那段難忘的時(shí)光。
Ⅰ、語音控制:1.多玩法平衡車語音模式演示_嗶哩嗶哩_bilibili
Ⅱ、藍(lán)牙控制:2.多玩法平衡車藍(lán)牙模式演示_嗶哩嗶哩_bilibili
Ⅲ、避障控制:3.多玩法平衡車避障模式演示_嗶哩嗶哩_bilibili
Ⅳ、跟隨控制:4.多玩法平衡車跟隨模式演示_嗶哩嗶哩_bilibili (跟隨聲源)
二、思路路線
每做一個(gè)東西都應(yīng)該熟悉做這個(gè)東西時(shí)應(yīng)該怎么去做,分哪些步驟,有哪些需要注意的;明確這些步驟后才能合理的分配自己的精力去完善每一步。
對(duì)此項(xiàng)目我的思路具體分為六步:
Ⅰ、模塊移植
1.CW32F030的MCU運(yùn)用:熟練運(yùn)用CW32F030C8T6的GPIO,USART,IIC,TIM(后面用的最多)等外設(shè),及其所有的函數(shù)API,是后面所有步驟的基礎(chǔ);可以在B站”CW32生態(tài)社區(qū)“官號(hào)進(jìn)行學(xué)習(xí)。
2.OLED屏幕驅(qū)動(dòng):此屏幕驅(qū)動(dòng)芯片為SSD1306,顯存大小為128*64bit,0.96寸OLED像素個(gè)數(shù)就是128*64個(gè),對(duì)應(yīng)的就是每一個(gè)位對(duì)應(yīng)每一個(gè)像素點(diǎn);想要在OLED上顯示什么數(shù)據(jù),使用發(fā)送命令函數(shù)對(duì)一些相應(yīng)的寄存器進(jìn)行設(shè)置后,再使用發(fā)送數(shù)據(jù)函數(shù)就對(duì)顯存進(jìn)行操作就行。
3.MPU6050陀螺儀驅(qū)動(dòng):此傳感器需要使用IIC讀取數(shù)據(jù)的函數(shù),與OLED類似,都需要使用發(fā)送命令函數(shù)對(duì)一些相應(yīng)的寄存器進(jìn)行設(shè)置,使能陀螺儀后再調(diào)用數(shù)據(jù)讀取函數(shù)就可以讀取陀螺儀的原數(shù)據(jù)(包括三軸的加速度與角速度);想要用在平衡車上需要再對(duì)此原數(shù)據(jù)進(jìn)行姿態(tài)解算才能得到三軸對(duì)地的角度,數(shù)據(jù)處理方法包括“一階互補(bǔ)過濾+卡爾曼濾波”,“驅(qū)動(dòng)MPU內(nèi)部的DMP模塊直接獲取對(duì)地角度”此數(shù)據(jù)才是我們最終要用的。
4.超聲波模塊驅(qū)動(dòng):HC-SR04模塊是非常常見的超聲波測距模塊,使用GPIO外設(shè)和中斷就行,通過IO引腳給個(gè)高電平信號(hào)發(fā)射超聲波同時(shí)開啟中斷,定時(shí)器,接收到了之后進(jìn)入中斷獲取計(jì)時(shí)數(shù),配合聲速是大概340m/s就能計(jì)算出距離,憑此寫入軟件邏輯中。
5.蜂鳴器模塊驅(qū)動(dòng):每款蜂鳴器的驅(qū)動(dòng)都是由一定頻率的信號(hào)放大輸出到蜂鳴器的正極的,信號(hào)的占空比決定了聲音的響度;常見的一款蜂鳴器頻率是2700HZ,只需要使用定時(shí)器外設(shè),設(shè)置好預(yù)分頻系數(shù)與重裝載值就行,根據(jù)使能與失能或調(diào)節(jié)占空比控制響度嵌入到軟件邏輯中。
6.紅外傳感器使用:紅外傳感器就兩個(gè)值1和0,初始化IO口,適時(shí)讀取值就行。
Ⅱ、功能模塊學(xué)習(xí)
1.語音模塊選型及其編程方法:使用的語音模塊是ASRPRO,存儲(chǔ)達(dá)4M,自定義詞條可達(dá)300個(gè);編程環(huán)境是天問block,支持圖形化編程;后面詳解。
2.藍(lán)牙模塊使用及其適配軟件:使用的藍(lán)牙模塊是BT04-E,支持BLE,SPP;傳輸穩(wěn)定,距離遠(yuǎn),且官方有適配的軟件,特別是其中的智能小車組件。
3.思考避障模塊在程序中的邏輯嵌入:前面已經(jīng)驅(qū)動(dòng)過了這里就是完善下測距的邏輯,與紅外的配合。
4.麥克風(fēng)陣列的驅(qū)動(dòng)與使用:使用的是6+1麥克風(fēng)陣列,通訊協(xié)議是IIS(音頻專用),驅(qū)動(dòng)的主控是Maix bit使用的是MicroPython函數(shù)庫;后面詳解。
Ⅲ、硬件設(shè)計(jì)
1.繪制功能模塊的外圍電路:在實(shí)現(xiàn)上述所有功能后,對(duì)每個(gè)功能需要用到什么類型的引腳,每個(gè)引腳需要復(fù)用成什么功能掌握的應(yīng)該都非常清楚了,于是自然而然地在繪制完最小系統(tǒng)后,將每個(gè)模塊的基本電路畫出來后,使用短接符將它們之間的共同引腳連接在一起,或直接使用相同名字,這樣網(wǎng)絡(luò)標(biāo)識(shí)符相同在PCB中也是連接在一起的;
2.需要注意的是:在繪制模塊的外圍電路時(shí),要注意保持通訊的電平都是一致的3.3V,有些模塊既可以5V供電也可以3.3V供電,而且模塊自帶的電路沒有5V轉(zhuǎn)3.3V就有可能燒毀MCU,所以切記一定統(tǒng)一使用3.3V供電。
Ⅳ、程序聯(lián)調(diào)
1.統(tǒng)一框架:設(shè)立一個(gè)思路層層將上述的功能模塊并列的寫入到程序框架中,通過什么模塊開啟和關(guān)閉每一種功能。
Ⅴ、完善機(jī)械結(jié)構(gòu)
1.將項(xiàng)目做的更完善些:重新拆開優(yōu)化結(jié)構(gòu)使兩輪子軸心一致,高度盡可能小降低重心,定制個(gè)亞克力外殼,將外露的導(dǎo)線理順更加的美觀。
Ⅵ、調(diào)整參數(shù)與PID
1.調(diào)PID:在上一步通過完善機(jī)械結(jié)構(gòu)確定好重心后,就可以調(diào)整PID參數(shù)使平衡車達(dá)到理想的平衡效果。
2.調(diào)速度等參數(shù):調(diào)整平衡車在各個(gè)模式下的前進(jìn)速度,后退速度,轉(zhuǎn)彎角度等。
審核編輯 黃宇
-
CW32
+關(guān)注
關(guān)注
1文章
324瀏覽量
1958
發(fā)布評(píng)論請(qǐng)先 登錄
基于CW32的藍(lán)牙無刷遙控車案列
請(qǐng)問CW32系列微控制器是否有擴(kuò)展模塊或外設(shè)板卡可供選擇?
CW32單片機(jī)如何讓生活更便捷
CW32時(shí)鐘運(yùn)行中失效檢測的流程是什么?CW32時(shí)鐘運(yùn)行中失效檢測注意事項(xiàng)有哪些呢?
CW32 MCU用什么IDE開發(fā)?
CW32 MCU有哪些系列?
ASM1042A3S車規(guī)級(jí)CANFD芯片在兩輪車和平衡車控制器方案中的技術(shù)應(yīng)用
申克 511RBTU 平衡機(jī):新能源汽車電機(jī)轉(zhuǎn)子生產(chǎn)的 “平衡大師”
CW32多玩法平衡車——基于傳統(tǒng)的平衡車之上擴(kuò)展而來
評(píng)論