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

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