很多設備調試,程序編寫都是自己一個人一行一行一根線一根線調試出來的, 從中體會到了很多酸甜苦辣。其中調試小車讓其識別拐彎與平時的輕度彎曲的直線之間的區別是最讓人痛苦的,不過小車最后還是跑出了全專業最快的10秒/圈
的速度。
PS:此文中的小車的
循跡程序
,尋光程序
,Android遙控程序
,重力感應程序
,循跡與尋光自由切換程序
已全部上傳至網上。
最終效果
小車最終外觀
處理器用的是STM32F4
后面兩個輪子為驅動輪,前面一個輪子為從動輪
循跡
GIF演示
這只是初期程序的效果,考核的時候已經不會在直線上扭來扭去了。但其實有的人的車不調也能到達差不多的效果,但無奈我的兩個馬達轉速差別太大,調節也無法完全走直線。所以必須用程序做到將其完全可控。
并且程序在檢測到需要轉彎時兩個輪子是一前一后地轉動,能夠以最大限度的提供動力使車身轉向并且還在直線上,當檢測到轉過的角度到達時車會立即繼續向前開動。
最終程序源代碼:https://github.com/hongfeiyucode/find_way_car
尋光
這架在上面的是就是尋光傳感器,最后考核很是蛋疼,很多人寫的程序直接就是轉180度然后car_forward()
檢測到光直接停下,這種當然是最快的,但是因為前面說過的我這小車無法直行最后跑的不是很快。
但是程序的邏輯還是很具有參考價值的:
https://github.com/hongfeiyucode/find_light_car
循跡與尋光自由切換
這個主要是利用芯片上的一個按鈕將其進行程序之間的切換。程序檢測一個值,檢測這個鍵是否按下,還有什么時候彈起,來達到兩個程序之間切換的功能。
這樣相當于一個程序完成了兩個程序的功能!
也另外寫了一個程序,程序還是很簡潔明了的:
https://github.com/hongfeiyucode/car_find_way_and_light
Android遙控程序
這個是工程量比較大的一個項目,程序都是自己寫的,這里把源代碼也開源了:https://github.com/hongfeiyucode/Car_remote_control
最后的程序大致界面,基本是重新改寫了一遍。后期還加了重力感應這一功能。
操作說明:
- 打開程序
- 點擊主界面的
打開藍牙
- 拖出側面的側邊欄
- 點擊
查找藍牙設備
- 匹配小車的藍牙
- 連接成功后已經開始進入重力感應遙控模式了
-
右下角的按鈕
可以切換重力感應與鍵盤操作模式 - 兩種模式各有各的特點,找到自己的喜歡的就好
重力感應模式
重力感應遙控說明:
- 將手機樹立起來時小車是停止狀態
- 想象手機是一個遙桿
- 往前傾(手機上端遠離自己)是向前,往后是后退
- 左右傾斜分別是向左轉向右轉
覺得好的就表示一下唄 _(:з」∠)_
PS:別忘了star或者fork一下我的程序哦