1 前言
在2018年我本科在萬宇杰老師的帶領下和小伙伴們一起立了校級重點科研立項——《DIY電動滑板》,非常懷戀那時候的干勁,閑暇時分傍晚和枚金江一起玩滑板飛馳綠道,白天和劉姣一起畫工程圖,晚上和葉俊吉萬金華他們做舞蹈機器人,時光就是這樣一點點緩緩流淌過。
不知不覺中雙元班的同窗們都各自高飛,而我還在艱難的求學中(2025年10月被OE、11月CEP拒稿)。恰巧也讓我有了新的想法,之前的滑板是用Arduino Uno加拓展板設計的硬件,現在運輸小船做實驗就由我的滑板小小的身體承受著,每次都要走公里才能到達海邊。滑板載著小船漫步過海濱小路,載著我跑過鄉村小路,載著打印機溜過校園大道彎兒,值得高興的是我的滑板已經累計有200公里左右,也沒有出現什么故障,嘻嘻。
接著這樣的機會嘗試用本次《2025 RT-Thread 嵌入式大賽》中的Vision board來移植原來的Arduino Uno方案,以此來紀念我的青春創作,保留原先Uno拓展板的電氣與硬件。這次比賽首先是繪制類似Arduino Uno原先的端口封裝與Vision board之間的拓展板,其次移植藍牙控制程序和改進主動剎車功能。

2 設計方案
本設計采用長板滑板版面,選用直流無刷電機,購買繪制特殊規格長板滑板的皮帶輪及電機架,以航模電池3S5200MAH電池供電。配以專用直流無刷電機電調。主控電路與遙控電路均以Vision Board為核心,使用藍牙數據通訊協議進行無線數據透傳,采用PWM脈沖寬度調制方式,采用TOF激光距離傳感器進行緊急制動判斷。以下為個模塊設計簡介。
2.1 機械結構模塊
機械模塊主要解決傳動系統搭建及電機的安裝。車架架設計為高64MM,長248MM7.25英寸的支架。傳動系統采用同步輪傳動,使用皮帶連接。齒輪比是大輪36齒,小輪12齒,用5M*270,11帶寬齒的齒輪帶連接,傳動比為3:1,如圖電機支架同步輪及配件。

2.2 電機模塊
電機的KV值,決定著電機的轉速增加量,KV值越大轉速越快。電動滑板在啟動時,由于靜摩擦的原因,啟動的階段阻力非常大,之后阻力會突然變小。所以,電動滑板在啟動之后常常有頓挫感。電機的選擇對滑板的安全性的提升顯得尤為重要。根據滑板的啟動的特性,應選用KV值越小的電機。
2.2.1 電機選擇
本設計電機選用N5065外轉子無刷電機270KV,其各項參數指標如圖左邊為無刷電機N5065,右邊為C5065

首先從電機型號上來說n5065表示電機尺寸為:直徑50mm,長度65mm。前面的n和c表示系列號,其中n系列做工和工作效率高于c系,N電機比C電機功率大,發熱小,扭力大。N電機比C電機的磁鐵長度和定子長度稍微長一些,n系尾部為平面,c系尾部為錐形。詳細參數如下: 可以看到,n5065的功率要比c5065大,一個是1820W,一個是1665W。電壓比c5065高,重量也比c5065重50g。(注:這里只說了KV值400得,你也可以選擇270的) 根據公式:轉速=KV值X電壓; n5065電機轉速=KV (400)x22(v)=8800rpm ; c5065電機轉速=KV (400) x20(v)=8000rpm ;
2.2.2 電機控制
單片機的控制信號,可以輕松輸出0或1,如果需要控制電機信號就需要PWM脈沖寬度調制,也可參考SG90舵機控制。在本設計中使用KV值為270KV的N5065無刷電機,無刷電機和有刷電機有相似之處,也有轉子和定子,只不過和有刷電機的結構相反;有刷電機的轉子是線圈繞組,和動力輸出軸相連,定子是永磁磁鋼;無刷電機的轉子是永磁磁鋼,連同外殼一起和輸出軸相連,定子是繞組線圈,去掉了有刷電機用來交替變換電磁場的換向電刷,故稱之為無刷電機。依靠改變輸入到無刷電機定子線圈上的電流波交變頻率和波形,在繞組線圈周圍形成一個繞電機幾何軸心旋轉的磁場,這個磁場驅動轉子上的永磁磁鋼轉動,電機就轉起來了,電機的性能和磁鋼數量、磁鋼磁通強度、電機輸入電壓大小等因素有關,更與無刷電機的控制性能有很大關系,因為輸入的是直流電,電流需要電子調速器將其變成3相交流電,還需要從遙控器接收機那里接收控制信號,控制電機的轉速,以滿足模型使用需要。相比于傳統直流有刷電機相比,無刷電機能量密度高,力矩大,重量輕,性能好等優點。增強了電機的可靠性,但是無刷電機的驅動比有刷電機要復雜得多,需要通過專門的電子驅動器才能正常工作,為降低開發難度的目的,該部分采用了車模用的無刷電機調速器,該調速器可根據輸入的PWM信號占空比的大小來控制無刷電機的轉速。
2.3 主控板及其遙控模塊
本設計選用Vision board作為控制芯片,手機app收發作為上位機遙控。app使用參考

2.3.1 主控芯片選擇
Vision Board搭載全球首顆480 MHz Arm Cortex-M85芯片,擁有Helium和TrustZone技術的加持。SDK包里集成了OpenMV機器視覺例程,配合MicroPython 解釋器,使其可以流暢地開發機器視覺應用。Vision Board搭載了全球首款基于 ARM Cortex-M85 架構的瑞薩電子RA8 MCU,6.39 CoreMark/MHz,可以快速而高效地運行機器視覺算法,實現圖像處理、等功能。雖然在這個電動滑板大材小用,但是給代碼框架和使用安全上提高了不少。

參考資料見:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/%E7%91%9E%E8%90%A8VisionBoard%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97
2.3.2 無線通信模塊的選取
本設計的無線通信模塊選擇經典HC-05主從機一體藍牙模塊,該模塊能耗低,穩定性強,具有很好的抗干擾能力。選用藍牙模塊以后,可以實現雙向通訊,加入顯示模塊及其他傳感器模塊后,遙控器可顯示電池電量,行駛速度,行駛里程和載重等。為之后功能的增加和改進,提供了便利,同時大量搭載藍牙的設備可以用于控制滑板,例如開發手機APP控制端,將手機作為遙控端使用。

本設計的遙控器和主控板上,分別有一塊Vision board和一個HC-05藍牙模塊。藍牙模塊設置了自動配對之后,上電之后它們就進入“傳輸”狀態,這時,使用函數串口8編寫讀取解析程序,便可實現遙控器與主控板之間的數據傳輸。
2.3.3 自動緊急剎車控制
防追尾系統對于駕駛員來說是一大必要輔助駕駛利器。此次設計的防追尾系統主要利用超聲波在空氣中的傳播速度和關系進行測量。超聲波具有指向性強、能量消耗慢且在介質中傳播距離較遠特點。其實說到超聲波,我們就會想到蝙蝠,是的,它的工作原理就是模仿蝙蝠的。先發出一個聲音,然后在接收返回的聲音,通過發出和返回的時間差來可以計算出距離,就這么簡單。所以我們就要有一個機制,發出多長的光信號,回收采集的理論上應該是發出的同時就要采樣收集了。
原先的方案是超聲波測距,之前實測發現會頻繁誤觸,而且采樣時間非常長(兩次連續判斷1.5m障礙物大約需要0.5s,如果車速在2m/s,會明顯剎車來不及,主要是反應時間有點長,發生碰撞危險),這次采用I2c距離TOF傳感器,看看效果應該要好一點點。

3 實驗步驟
3.1 實驗材料
主控板:Vision board開發板,sensor shield拓展板,USB數據線
傳感器:TOF傳感器,光照傳感器
執行器:N5056無刷電機,LED燈,一路高電平觸發繼電器,有源蜂鳴器
通訊:藍牙HC05
輔助硬件:滑板,同步帶結構,盒子,泡沫,熱熔膠,公母線若干
軟件:一臺安裝RT-Thread開發環境的電腦
3.2 根據原理圖搭建電路圖
實驗原理圖:

藍牙RX接uart8的TX,藍牙TX接uart8的RX
有源蜂鳴器引腳2
繼電器引腳4,然后單獨接led燈與外接電源串聯
ESC定義無刷電機引腳9,電調提供電源
TOF測距SDA接A4,SCL接A5
光照檢測接A0
3.4 PCB及三維圖

整體元器件非常少,就2202.54排母下面連接Vision board,然后6/2*8/10排母在上方連接Arduino Uno拓展板。
下面是硬件細節圖
拓展板焊接效果

控制器電源電調都安裝在防水盒中

控制盒整體外觀

3.5 源碼分享
配置串口2

參考:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/%E7%91%9E%E8%90%A8VisionBoard%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97?id=%e4%b8%80%e3%80%81ra8d1-vision-board%e4%b8%8a%e7%9a%84uart%e5%ae%9e%e8%b7%b5%ef%bc%88%e5%88%98%e5%bb%ba%e5%8d%8eou%ef%bc%89
配置PWM12

參考:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/%E7%91%9E%E8%90%A8VisionBoard%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97?id=%e4%b9%9d%e3%80%81ra8d1-vision-board%e4%b8%8a%e7%9a%84pwm%e5%ae%9e%e8%b7%b5%ef%bc%88%e4%b8%81%e6%8c%af%e5%af%8c%ef%bc%89
配置軟件I2C



參考:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/%E7%91%9E%E8%90%A8VisionBoard%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97?id=%e5%8d%81%e4%b8%89%e3%80%81ra8d1-vision-board%e4%b8%8a%e7%9a%84iic%e5%ae%9e%e8%b7%b5%ef%bc%88%e6%ac%a7%e5%b0%8f%e9%be%99%ef%bc%89
配置ADC

參考:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/%E7%91%9E%E8%90%A8VisionBoard%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97?id=%e5%85%ad%e3%80%81ra8d1-vision-board%e4%b8%8a%e7%9a%84adc%e5%ae%9e%e8%b7%b5%ef%bc%88%e4%be%af%e6%b3%bd%e5%8d%8e%ef%bc%89
rt-thread設備驅動勾選

下面是程序控制源碼
/*? Copyright (c) 2024, YourName? 項目:基于 RT-Thread 的電機 ESC 控制(移植自 Arduino)? 功能:通過串口接收指令控制電機轉速、LED、蜂鳴器,集成VL53L0X主動剎車和光線檢測自動夜燈? 已移除:超聲波、光敏電阻、自動急停? 新增:所有速度檔位切換必須平滑加減速(逐步 ±1,每次延時 50ms)? 修復:ESC電調上電初始化問題? 新增:VL53L0X激光測距主動剎車功能? 新增:光線檢測自動夜燈功能*/#include
需要修改rt_config.h中adc0為1:#define BSP_USING_ADC1

這是一個基于RT-Thread的智能電機控制系統,通過串口指令控制無刷電機轉速,集成了VL53L0X激光測距主動剎車和光線檢測自動夜燈功能,具備多線程安全保護和智能決策能力。

流程說明:
多線程并行:三個獨立線程分別處理用戶指令、障礙物監測和光線檢測
安全保護:距離監測線程具有較高優先級,確保及時剎車
智能決策:基于連續檢測和閾值判斷,避免誤觸發
模式切換:支持手動/自動模式靈活切換
平滑控制:電機速度變化采用漸進式調節,提升系統穩定性
4 動手操作
a.首先進行光照檢測,如光線較弱則自動打開前燈;
b.連接好藍牙,發送“start”字符串開始遙控,發送“one”,“two”,“three”,“four”即可實現穩步增速,發送“increase”、“dicrease”即可實現精準調速,發送“turn on”、“turn off”即可打開前燈led繼電器,發送“buzeer on”、“buzeer off”即可觸發有源蜂鳴器聲響,app不完全配置

c.發送stop即可實現關閉所有增益,發送“reset”即可實現復位跳出循環,再次發送發送“start”字符串又開始遙控。超聲波測距檢測前方物體距離小于100cm及時關閉所有增益,起到自動緊急剎車保護,程序中執行動作時有蜂鳴器響應反饋;還有心跳包程序,可判斷是否藍牙斷開(若斷開及時關閉所有增益,起到失控保護),滑板演示。
這是一個功能完善、安全機制到位的嵌入式智能控制系統,移植了原先Arduino Uno項目,替換更好地TOF距離傳感器,體現了Vision Board多傳感器融合與實時控制的良好實踐。
建議:
希望RT-Thread與華秋國內廠商多多合作定期舉辦嵌入式開發活動,讓更加優質的國產嵌入式生態做大做強;
期待RT-Thread平臺推出更多有質量有意義持續性的創客活動!希望RT不僅開展線上活動,后期可以嘗試線下活動,多多與開發者,企業,高校互動,共同探索內需外患。
非常感謝RT-Thread舉行活動,大家都為這個國內嵌入式生態出一份力,只要努力認真做了都會有所收獲,期盼這些作品在將來某一天為構建美好未來貢獻一份微博之力!
我后期會持續更新我測評的一系列國內開發板測評,并且會積極參加有質量的玄鐵杯活動,每天都一點點結合實際需求聯動豐富生活,從而實現對外部世界進行充分的感知,盡最大努力認識這個有機與無機的環境,科學地合理地進行創作和發揮效益,然后為人類社會發展貢獻一點微薄之力。
再次非常感謝RT-Thread的相關組織者支持等等,期待這一次的成績喲!
-
board
+關注
關注
0文章
39瀏覽量
20370 -
Vision
+關注
關注
1文章
205瀏覽量
19421 -
電動滑板
+關注
關注
0文章
24瀏覽量
7151 -
RT-Thread
+關注
關注
32文章
1613瀏覽量
44819
發布評論請先 登錄
使用RT-Thread studio編譯Vision-Board例程后報錯的原因?
RT-Thread編程指南
RT-Thread全球技術大會:RT-Thread開源重塑軟件發展新生態
RT-Thread全球技術大會:RT-Thread Smart更好的兼容Linux生態
RT-Thread全球技術大會:Kconfig在RT-Thread中的工作機制
機器視覺RT-Thread Vision Board主要特點
瑞薩與RT-Thread推出基于RT-Thread&OpenMV的RA8人機交互方案
基于 RT-Thread 的 Vision Board 智能電動滑板設計 | 技術集結
評論