王吉賢撿垃圾系列:開始折騰玩具車進行AI改裝 -2
47 觀看·2024年5月23日
hello 大家好 我是季賢
咱們接着回來折騰這小車
這其實具體的活兒還不少
這塊兩個麪包板啊
是它遙控器的一個簡單的模型
到時候一塊板是裝到車上的
當然不是裝這個
是我得給它藏到電路板上
所以原理呢
現在是跑通了
一個呢
就作爲發射器
就是那個控制器這塊
對
然後今天呢
咱們先簡單說說這個霍爾傳感器啊
還是上回那事兒
我現在呢
已經把這個
這是上次視頻裏邊我用到的這個霍爾傳感器的模塊
這個傳感器呢
你們可以看到已經被我給拆下來了
焊盤處理的很乾淨
這個這上面還剩下一個數字比較器
就是這個這種電路邏輯吧
在這種Arduino模塊裏邊是比較常見的
就是它真正的傳感器呢
就是頭上這一部分
我這正好還有一些個煙霧傳感器啊
這個也準備做一個東西上
那下回再說吧
你可以看到這個長得像個鐵奶頭的
這個鐵奶頭的這個就是真正的這個傳感器
這顆呢
是MQ-6啊
這個是對可燃物是吧
MQ-6對易燃物特別敏感的
我這還有一個是MQ-2的
都是煙感的傳感器
這個是普通的煙霧
MQ-2的
它的傳感器也就是這個鐵奶頭的一部分
然後你會發現
哎
這八條腿的這個東西啊
還有這個藍色的電位器
這怎麼看起來那麼眼熟啊
對看放大一點
哎
這是什麼概念呢
就是這倆模塊是一樣的
這是個數字比較器
所以正經這個傳感器呢
都是輸出的是模擬信號
然後呢
它用這個電位器控制什麼呢
不是控制它的靈敏度
是控制這個數字比較器的靈敏度
所以它會在信號強度到達一定強度的時候
然後呢
在這輸出一個高電平就變成數字信號了
所以咱們要是用模塊呢
看你的用途對吧
一般的如果不是作爲開關用的
咱們就直接用它的這個Aout模擬輸出
這個也一樣
當然這個玩意兒吧
這個玩意兒放在小汽車上
這太大了是吧
這不好看
我也不想搞成那個樣子
所以把它拆下來
哎
就這根線啊
這仔細觀瞧
在這線頭上有一個芝麻粒那麼大的玩意兒
這就是真正那個霍爾的傳感器
然後呢
我這這玩意兒買了一大包
哎
買了一大包
然後我又發現這個這個霍爾傳感器有講究
你看我手裏有兩條線
對吧
我這長得都一樣啊
我做了個小記號
這我特意打了個白色油漆
呃
它是什麼呢
這個是49E這個信號啊
這是一個模擬的霍爾傳感器
就我直接從這個紅色板上拆下來的
而這個呢
是我上次單獨買了一批
這個呢
是一個開關電路型的
它的型號是3144
哎
區別就在於它是有磁場的時候輸出低電平
對輸出低電平
然後所以它平時呢
需要一個上拉電阻
就是在這上拉着它
讓它沒信號輸出高電平
有信號低電平
沒有中間狀態
而這個呢
是可以輸出中間狀態的
那麼它倆的用法呢
就非常不一樣了
哎
正好在這小車上呢
我們都會用得到
所以我這準備了兩個小磁鐵啊
細心的看一邊我刷了白漆
一邊刷了紅漆
我大概量了一下這個磁場的這個靈敏範圍
差不多就這麼大
然後呢
我在這個屏幕這兒
這顯示的是它一個波形啊
你甭管它上上下下
它實際上上下的直域就並不寬了
都是1800左右
是吧
好
那麼我現在呢
把這個傳感器
還是像上次那個試驗一樣
置於這個磁場的中央的位置
然後向左向右移動
這就相當於模擬我這個方向機的這個左擺和右擺
那麼我們可以看到
當我貼近邊上的時候
哎
很明顯
這已經很線性的一個曲線
靠一個方向
好
這個我用的是雙面膠
所以正好我比較好粘它
我們看這個這個傳感器這個玩意兒
它不是兩面嗎
得給它立着放
立着呢
我先放到傳感器
貼到這兩個磁場的大概齊的中間的位置
然後呢
我們看這個讀數
這樣光照是OK的
平時的方向機呢
會停在大約的這個磁場中心的位置
那麼它的讀數呢
就應該穩定到大約1800左右
穩到這條線
那麼我把它接近磁場的一級
現在讀數是600左右
另一級讀數可以到3000
所以呢
它會給我一個很線性的這麼一個反應空間
對吧
那待會呢
我會想辦法把這玩意兒拆掉
把它粘到這個小喫的這個上面
差不多這個距離也就夠用
這個方向機和它的這個方向臂上
然後這塊呢
還想跟大家分享一下
你看這個爲什麼我不用杜邦線來連這塊啊
因爲這個霍爾傳感器呢
它這個性質的
它總是和這個電機和磁場離得很近
而電機呢
甭管大小
它在啓動的時候都會有這個電磁干擾
所以如果我用這個杜邦線呢
基本上就屬於裸奔狀態
就這個線對吧
它沒有任何屏蔽
那麼我們要屏蔽它呢
就用什麼呀
用屏蔽線來
如果說只有杜邦線呢
我還得自個兒做這個屏蔽線來
就是我邊上得繞圈銅箔
然後這兩根線呢
它這個應該是三根線的
正極
負極和信號線對吧
三根線呢
我還得把這個銅箔呢
和這個負極連在一起
所以在這塊呢
我推薦使用這種東西
這個線是一個音頻線
AV線
對AV線AV線呢
紅的和白的這兩根線呢
是有這個包皮的
有包皮的
然後呢
剩下的線纜呢
會裸露到這個銅的這個屏蔽層上
所以這銅的屏蔽層反正也要和負極連接
那就直接拿這個銅的這個屏蔽層
搓成一個搓成一個頭啊
然後做好絕緣
拿它當負極怎麼用
那這樣呢
一根明明兩心的這個AV線呢
就完美的可以去做這種
傳感器的這個信號線
因爲比如說我要做電壓的傳感
或者就一般我要讀數的話
溫度啊
電壓呀
或者是這種磁場啊
我都需要一根信號線來讀數
然後呢
一個正極線和一個地線來給它供電
這就特別完美
所以這就是你看到的這樣的一個做好的傳感器
然後真正到時候到機器上的
我肯定不是用這鍍鋼頭了
我會把它焊到電路板上
好
這個就是關於這個傳感器在這
那麼下一步呢
我要幹幾個事
一個是想着把這個玩意兒粘到車上
這又得做手工了
給這開個口怎麼樣
給它固定住
然後呢
再測一下這個方向在搖臂的時候
傳感器屬於敏感範圍內
另一個呢
下一步還會繼續要調通這個無線的這個模塊
好時間關係呢
無線模塊呢
我準備再放一個視頻再聊
那麼接下來做手工
我們來到我的另一個房間
這個玩意兒呢
我已經打開了
它打開以後裏邊是這個樣子的
這是一個電機啊
做工的
然後呢
它通過這個齒輪來控制這個東西的轉向
看到這個電機上呢
它這個電機接的就比較對啊
因爲它會反正兩方向轉
所以如果接電容的話
應該接這種無極性的這個陶瓷電容
它這個片的結構呢
大概我看看就是這樣子
這樣子
它會扣上去
然後它伸出這塊這個蓋板
其實就是由於這個固定孔
這個固定孔呢
等於給這個轉向的這個柱提供了一個軸
所以這塊
我其實我覺得我應該能夠切下去
給它切下去
留一個這個柱給它來控制它
留一個柱來控制方向
那麼這樣呢
我就可以在這個白色的這個片上放兩個磁鐵
對吧
然後中間的這個霍爾傳感器呢
就是貼到這個中間的柱這個這個上面
然後就開始開整吧
好
剛花的時間
這個手工呢
我就已經做好了
您可以看見在這我放了個小磁鐵
在它的裏邊還有一個
其實我不用在它中間整個都給它打開
只要這樣的
你看在轉向的時候
這邊的磁鐵可以貼近
我到時候會把那個傳感器插在這個位置
這有一點點這個間隙夠放傳感器的
在這樣打方向的時候
裏邊的磁鐵也可以足夠的能夠貼過來
看這樣就是一個小的磁場
來感應這個磁場就知道方向了
至於靈敏度怎麼樣呢
我們去試機看一下
那麼我們可以看啊
現在我在輕輕的動這個小車的時候
我這樣放廣角
我可以看到非常線性的這個數據變化
這是方向往左側打滿
然後方向回正
方向往右側打滿
看到電腦上的圖表
這樣就可以實現一個非常完美的閉環控制
然後呢
如果方向在正中的時候
大概其實這是正中的時候
然後呢
我的讀數基本上就會穩定在一千八左右
非常穩
哎呀
很開心呢
然後這塊還有另外一個霍爾傳感器
這是一個開關型的
它會產生一個脈衝
我會把它裝到這個後輪這塊
後輪呢
我也會在這塊輪轂上粘上幾個磁鐵
根據它這個輪轂好像是幾個弧的
我會在這等比粘上幾個磁鐵
這樣呢
比如說我粘了三個磁鐵
那也就是三個脈衝等於輪子轉了一圈
而輪子的直徑呢
我是知道的
這樣呢
我來統計它的脈衝次數
我就可以大概計算它的里程很精準
以及輪上轉速
這樣我就可以做很怎麼說呢
就可以做很細膩的這種控制
非常非常開心啊
哎呀
自己做自己做玩具
自己玩
往左往右
回正
哎
這是回正
打滿好再往那邊打滿
哦
非常漂亮的曲線
好
現在折騰這個後輪
這個後輪我已經拆出來了
可以看到有三個這個幅面
那麼我就可以把這個小磁鐵給三個分別固定在大概這個位置上
這樣呢
它轉動的時候呢
這個霍爾傳感器就能夠檢測到一個一個的脈衝信號
先加三個
看下效果怎麼樣
這是這個小車的後輪子
那麼現在傳感器和磁鐵的關係呢
我已經大概的粘了一下
用了三個磁鐵
你可以看到比如這樣
它就會感受到它有一個磁鐵路過就會產生一個脈衝
所以呢
它轉一圈就會有三次脈衝
這個輪子的直徑是58毫米
所以它轉一圈呢
大概是18.2釐米
那麼這樣呢
就把它的計數器除以三
就知道它每一個脈衝走的輪子轉的長度
那麼我拿電池
待會咱們到電腦上試一下
看這效果怎麼樣
這塊的電路呢
我簡單的搭了一下這個程序
就是剛纔按我說的參數
我把它的計數器和它的里程顯示出來
這塊是程序的部分
那麼現在呢
我就接了一個電池啊
這個是4.2伏的電池
然後我們可以開機測試
一隻手不好操作呀
輪子開始轉
這就是它一共跑的里程錶
等於方纔呢
按照這個車速呢
就跑了1.8米
如果我手動的去轉它
它其實也是能夠觸發這計數器的
我們看一下我手動的去轉它
這樣我統計的精度呢
就是三分之一的這個輪子轉數
你可以看到就是輪子轉數變
底下里程一會也會跟着變
我在這重置一下這個程序
這樣呢
因爲我那counter是整數型
這個我要除它
要給它轉按成伏點在這
做成伏點呢
然後我重啓一下這個程序
這樣呢
它處理的就應該更精準了一些
我現在演示我轉這個車輪轉一圈
6.08釐米
不是轉一圈
是轉了三分之一圈
這又是三分之一圈
再轉三分之一圈
等於這樣呢
它就每轉一整圈
它才更新這個里程
這樣的話轉一點點就可以更新這個里程
我現在換了一個電壓更低
但是並聯的四節18650的一個電池組就在這
這樣的話
它能夠提供更大的啓動電流
雖然電壓低一點
我們現在試一下這個效果
好可以看到跑的是非常快的
再說一下這個程序啊
因爲這個有可能會電機跑的比較快
因爲它每轉一圈要計數三次了
所以這個程序並不是寫到這個loop循環裏面的
這個程序用的是它的硬件中斷
它的關鍵代碼在這
就是首先我這個後輪的引腳用的是二號引腳
在這個板子上
不是每個引腳都支持硬件中斷的
就是Arduino系列或者和它兼容的那種代碼機
只有二號和三號引腳支持硬件中斷
那什麼概念呢
就是我註冊一下這個這個中斷地址啊
如果它falling的時候
也就是說它默認是高電瓶
當它從高電瓶掉到低電瓶的時候
它會觸發一下
就相當於我們做那個UI的時候
一個按鈕的按鍵通知一樣
它會廣播一個引問的過來
但是這個更底層
那麼在這中斷裏邊呢
你不能不能幹很重的活
所以中斷的這個程序就幹了一個事
就把技術器加1
所以這是我的這個技術器
那麼這樣的話呢
我的顯示邏輯是和它異步的
就是我可以每隔一百毫秒顯示一下更新
但是我的中斷技術器是怎麼說呢
和CPU是和它的小CPU是實時同步的
那麼這樣呢
就不會因爲我在顯示的時候
由於比較緩慢
因爲在這個小單板機上
你要是想驅動個屏幕
它不是實時的
這是有很大延時的
特別是能到毫秒級的延時
所以呢
你如果把這個顯示和這個技術都放到一個loop循環裏
那麼這樣呢
你就不會得到特精準的這個技術
而現在用它的硬件中斷功能的就是
只要它這一檢測到電瓶有變化
它就馬上快速的觸發執行一個小程序
這小程序只把技術器加了個1
所以幾乎就是一個微秒級別的一個操作
好
那整個的這個回饋系統吧
就這就算做完了
然後回頭把這個小車再裝上
變成一整車
下一步就是調它的這個兩塊的無線通訊
這個放另外一視頻吧
