手機(jī)藍(lán)牙遙控循跡尋光重力感應(yīng)全功能STM32小車


很多設(shè)備調(diào)試,程序編寫都是自己一個人一行一行一根線一根線調(diào)試出來的, 從中體會到了很多酸甜苦辣。其中調(diào)試小車讓其識別拐彎與平時的輕度彎曲的直線之間的區(qū)別是最讓人痛苦的,不過小車最后還是跑出了全專業(yè)最快的10秒/圈的速度。

PS:此文中的小車的循跡程序,尋光程序Android遙控程序,重力感應(yīng)程序,循跡與尋光自由切換程序 已全部上傳至網(wǎng)上。

最終效果

小車最終外觀

小車正面照

處理器用的是STM32F4

小車后面照

后面兩個輪子為驅(qū)動輪,前面一個輪子為從動輪


循跡

循跡示意圖

GIF演示

這只是初期程序的效果,考核的時候已經(jīng)不會在直線上扭來扭去了。但其實有的人的車不調(diào)也能到達(dá)差不多的效果,但無奈我的兩個馬達(dá)轉(zhuǎn)速差別太大,調(diào)節(jié)也無法完全走直線。所以必須用程序做到將其完全可控。

并且程序在檢測到需要轉(zhuǎn)彎時兩個輪子是一前一后地轉(zhuǎn)動,能夠以最大限度的提供動力使車身轉(zhuǎn)向并且還在直線上,當(dāng)檢測到轉(zhuǎn)過的角度到達(dá)時車會立即繼續(xù)向前開動。

最終程序源代碼:https://github.com/hongfeiyucode/find_way_car

尋光

尋光傳感器

這架在上面的是就是尋光傳感器,最后考核很是蛋疼,很多人寫的程序直接就是轉(zhuǎn)180度然后car_forward() 檢測到光直接停下,這種當(dāng)然是最快的,但是因為前面說過的我這小車無法直行最后跑的不是很快。

但是程序的邏輯還是很具有參考價值的:
https://github.com/hongfeiyucode/find_light_car

循跡與尋光自由切換

這個主要是利用芯片上的一個按鈕將其進(jìn)行程序之間的切換。程序檢測一個值,檢測這個鍵是否按下,還有什么時候彈起,來達(dá)到兩個程序之間切換的功能。

這樣相當(dāng)于一個程序完成了兩個程序的功能!

也另外寫了一個程序,程序還是很簡潔明了的:
https://github.com/hongfeiyucode/car_find_way_and_light

Android遙控程序

這個是工程量比較大的一個項目,程序都是自己寫的,這里把源代碼也開源了:https://github.com/hongfeiyucode/Car_remote_control

最后的程序大致界面,基本是重新改寫了一遍。后期還加了重力感應(yīng)這一功能。

側(cè)邊欄

簡化側(cè)邊欄

操作說明:

  • 打開程序
  • 點(diǎn)擊主界面的打開藍(lán)牙
  • 拖出側(cè)面的側(cè)邊欄
  • 點(diǎn)擊查找藍(lán)牙設(shè)備
  • 匹配小車的藍(lán)牙
  • 連接成功后已經(jīng)開始進(jìn)入重力感應(yīng)遙控模式了
  • 右下角的按鈕可以切換重力感應(yīng)與鍵盤操作模式
  • 兩種模式各有各的特點(diǎn),找到自己的喜歡的就好
鍵盤操作時

重力感應(yīng)模式

重力感應(yīng)模式

重力感應(yīng)GIF演示

重力感應(yīng)遙控說明:

  • 將手機(jī)樹立起來時小車是停止?fàn)顟B(tài)
  • 想象手機(jī)是一個遙桿
  • 往前傾(手機(jī)上端遠(yuǎn)離自己)是向前,往后是后退
  • 左右傾斜分別是向左轉(zhuǎn)向右轉(zhuǎn)

覺得好的就表示一下唄 _(:з」∠)_
PS:別忘了star或者fork一下我的程序哦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容