【導(dǎo)讀】想做一個(gè)遙控小車(chē)嗎?用樹(shù)莓派與L298N來(lái)怎么做呢?小編來(lái)教你,下文將描述使用樹(shù)莓派和L298N制作一個(gè)簡(jiǎn)單的遙控小車(chē),遙控器使用簡(jiǎn)單的WEB來(lái)實(shí)現(xiàn)。發(fā)燒友們趕緊看多來(lái)吧!
本文主要描述使用樹(shù)莓派和L298N制作一個(gè)簡(jiǎn)單的遙控小車(chē),遙控器使用簡(jiǎn)單的WEB來(lái)實(shí)現(xiàn)。
準(zhǔn)備工作
樹(shù)莓派,(本文使用的是Raspberry PI 2 B型,即2B)
8G以上TF卡 樹(shù)莓派上可用和不可用的SD卡列表
四驅(qū)小車(chē)底(含電機(jī),注:本文中的小車(chē)底盤(pán)佩戴的是高扭矩直流電機(jī))
母對(duì)母、公對(duì)母、公對(duì)公(可不用)杜邦線
L298N雙HD橋電機(jī)驅(qū)動(dòng)板
無(wú)線網(wǎng)卡(最好支持AP的)
充電
電池組(7V以上的,鎳氫或者18650充電電池皆可)
系統(tǒng)安裝沒(méi)什么說(shuō)的,系統(tǒng)燒到SD就可以了,我使用的Raspbian,這貨是基于Debian的,配置命令習(xí)慣幾乎和ubuntu/debian一樣,接上網(wǎng)線開(kāi)機(jī)進(jìn)入系統(tǒng)配置。
換上中科大的源,再apt-get update一次;
為root用戶設(shè)置密碼;
配置無(wú)線網(wǎng)卡有兩中方案,編輯/etc/network/interface,網(wǎng)上教程蠻多的:
自動(dòng)連接到路由器,家里有無(wú)線路由器,小車(chē)在WIFI覆蓋的地方;
樹(shù)莓派上搭建WIFI熱點(diǎn),信號(hào)更好,可以在小區(qū)里面開(kāi),順便勾搭妹子,哦哦哦,不對(duì),應(yīng)該是淘氣小孩。唯一需要注意的是網(wǎng)卡芯片。
[page]
底盤(pán)組裝
拼裝沒(méi)啥難度,亞克力板上的牛皮紙沾得簡(jiǎn)直是喪心病狂,馬蛋,廢了好一會(huì)兒功夫才撕干凈(⊙﹏⊙)b;
馬達(dá)那貨就比較坑了,沒(méi)有帶線是裸機(jī)的,手中也恰巧沒(méi)有電烙鐵,當(dāng)時(shí)我就懵逼啦。好吧,手中還有多余的公對(duì)公杜邦線,拔掉其中一頭的接頭,打火機(jī)燒一下(小時(shí)候?qū)W會(huì)的神技),拔掉一部分把銅線擰緊。最后銅線穿過(guò)馬達(dá)接口的小洞里面,再擰緊。哎丫,沒(méi)有膠帶,最后用透明膠湊合湊合,綁緊。 repeat 4次。
線路連接
+12V接口
+5V~+35V, 如需要板內(nèi)取電,則供電范圍Vs:+7V~+35V
電機(jī)
OUT1、OUT2 為電機(jī)A輸出;OUT3、OUT4為電機(jī)B輸出
IO接口
ENA和ENA分別為A、B電機(jī)的使能端,一開(kāi)始ENA和ENB各自的上下兩個(gè)針腳是用跳線帽連接起來(lái)的,拔掉就可以接線了。 IN1-IN4 為IO控制輸入。
弄明白L298N之后,連接就方便多了,
OUT1 OUT2 連接小車(chē)左側(cè)前后兩個(gè)電機(jī)(并聯(lián)),之前電機(jī)接出來(lái)的杜邦線公頭直接往接口里面塞(好羞羞),擰緊螺絲;同理,OUT3 OUT4 連接小車(chē)右側(cè)前后兩個(gè)電機(jī);
[page]
便宜的鎳氫電池組電源正負(fù)極分別連接12V、GND,電池組的接頭是JST母頭,比較好連接;
5V和GND連接到樹(shù)莓派上的5V和GND用于供電。
ENA、ENB、IN1-IN4連接到樹(shù)莓派I/O端口上。
接好之后是這樣子:
攝像頭模塊
攝像頭是好幾年前臺(tái)式機(jī)用的攝像頭,分辨率是奇葩的470x640,而不是480x640,mjpg-streamer下,畫(huà)面是花的,等到畫(huà)面調(diào)正常之后,畫(huà)面卻如放幻燈片一樣。我勒個(gè)去!攝像頭連接到裝了openwrt的wndr3800路由器上流暢的沒(méi)朋友,在樹(shù)莓派上調(diào)來(lái)調(diào)去卻怎么也不行,認(rèn)命了,放棄放棄,沒(méi)有攝像頭也能當(dāng)遙控車(chē)開(kāi)。下面是演示展示:
[page]
小車(chē)遙控器
終于到了編程部分,為了簡(jiǎn)單,使用python的RPI.GPIO模塊來(lái)操作I/O,不過(guò)我發(fā)現(xiàn)功能蠻少的,沒(méi)找到調(diào)速的API,文檔在這里,代碼如下,輪子的參數(shù)視接的I/O口而定。
最后用Flask模塊實(shí)現(xiàn)Web,這需要在樹(shù)莓派裝Flask模塊,在安裝的時(shí)候發(fā)現(xiàn)樹(shù)莓派的python環(huán)境是不完整的。代碼僅供參考。