很多設(shè)備調(diào)試,程序編寫都是自己一個人一行一行一根線一根線調(diào)試出來的欲间, 從中體會到了很多酸甜苦辣继阻。其中調(diào)試小車讓其識別拐彎與平時的輕度彎曲的直線之間的區(qū)別是最讓人痛苦的,不過小車最后還是跑出了全專業(yè)最快的10秒/圈
的速度烘绽。
PS:此文中的小車的
循跡程序
,尋光程序
俐填,Android遙控程序
安接,重力感應程序
,循跡與尋光自由切換程序
已全部上傳至網(wǎng)上英融。
最終效果
小車最終外觀
處理器用的是STM32F4
后面兩個輪子為驅(qū)動輪盏檐,前面一個輪子為從動輪
循跡
GIF演示
這只是初期程序的效果,考核的時候已經(jīng)不會在直線上扭來扭去了驶悟。但其實有的人的車不調(diào)也能到達差不多的效果胡野,但無奈我的兩個馬達轉(zhuǎn)速差別太大,調(diào)節(jié)也無法完全走直線痕鳍。所以必須用程序做到將其完全可控硫豆。
并且程序在檢測到需要轉(zhuǎn)彎時兩個輪子是一前一后地轉(zhuǎn)動,能夠以最大限度的提供動力使車身轉(zhuǎn)向并且還在直線上笼呆,當檢測到轉(zhuǎn)過的角度到達時車會立即繼續(xù)向前開動熊响。
最終程序源代碼:https://github.com/hongfeiyucode/find_way_car
尋光
這架在上面的是就是尋光傳感器,最后考核很是蛋疼诗赌,很多人寫的程序直接就是轉(zhuǎn)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
最后的程序大致界面吵冒,基本是重新改寫了一遍。后期還加了重力感應這一功能西剥。
操作說明:
- 打開程序
- 點擊主界面的
打開藍牙
- 拖出側(cè)面的側(cè)邊欄
- 點擊
查找藍牙設(shè)備
- 匹配小車的藍牙
- 連接成功后已經(jīng)開始進入重力感應遙控模式了
-
右下角的按鈕
可以切換重力感應與鍵盤操作模式 - 兩種模式各有各的特點痹栖,找到自己的喜歡的就好
重力感應模式
重力感應遙控說明:
- 將手機樹立起來時小車是停止狀態(tài)
- 想象手機是一個遙桿
- 往前傾(手機上端遠離自己)是向前,往后是后退
- 左右傾斜分別是向左轉(zhuǎn)向右轉(zhuǎn)
覺得好的就表示一下唄 _(:з」∠)_
PS:別忘了star或者fork一下我的程序哦