您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關怎么用樹莓派來制作簡單的遙控小車的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
樹莓派,(本文使用的是Raspberry PI 2 B型,即2B)
8G以上TF卡 樹莓派上可用和不可用的SD卡列表
四驅小車底(含電機,注:本文中的小車底盤佩戴的是高扭矩直流電機)
母對母、公對母、公對公(可不用)杜邦線
L298N雙HD橋電機驅動板
無線網卡(最好支持AP的)
充電電池組(7V以上的,鎳氫或者18650充電電池皆可)
系統安裝沒什么說的,系統燒到SD就可以了,我使用的Raspbian,這貨是基于Debian的,配置命令習慣幾乎和ubuntu/debian一樣,接上網線開機進入系統配置。
換上中科大的源,再apt-get update一次;
為root用戶設置密碼;
配置無線網卡有兩中方案,編輯/etc/network/interface,網上教程蠻多的:
自動連接到路由器,家里有無線路由器,小車在WIFI覆蓋的地方;
樹莓派上搭建WIFI熱點,信號更好,可以在小區里面開,順便勾搭妹子,哦哦哦,不對,應該是淘氣小孩。唯一需要注意的是網卡芯片。
拼裝沒啥難度,亞克力板上的牛皮紙沾得簡直是喪心病狂,馬蛋,廢了好一會兒功夫才撕干凈(⊙﹏⊙)b;
馬達那貨就比較坑了,沒有帶線是裸機的,手中也恰巧沒有電烙鐵,當時我就懵逼啦。好吧,手中還有多余的公對公杜邦線,拔掉其中一頭的接頭,打火機燒一下(小時候學會的神技),拔掉一部分把銅線擰緊。最后銅線穿過馬達接口的小洞里面,再擰緊。哎丫,沒有膠帶,最后用透明膠湊合湊合,綁緊。repeat 4次。
之前一直沒玩過硬件,畢竟我只是一個網工出身的程序猿,第一次拿到L298N研究了好久才明白,還是上圖上圖。
+12V接口 +5V~+35V, 如需要板內取電,則供電范圍Vs:+7V~+35V
電機 OUT1、OUT2 為電機A輸出;OUT3、OUT4為電機B輸出
IO接口 ENA和ENA分別為A、B電機的使能端,一開始ENA和ENB各自的上下兩個針腳是用跳線帽連接起來的,拔掉就可以接線了。 IN1-IN4 為IO控制輸入。
弄明白L298N之后,連接就方便多了,
OUT1 OUT2 連接小車左側前后兩個電機(并聯),之前電機接出來的杜邦線公頭直接往接口里面塞(好羞羞),擰緊螺絲;同理,OUT3 OUT4 連接小車右側前后兩個電機;
便宜的鎳氫電池組電源正負極分別連接12V、GND,電池組的接頭是JST母頭,比較好連接;
5V和GND連接到樹莓派上的5V和GND用于供電。
ENA、ENB、IN1-IN4連接到樹莓派I/O端口上。
接好之后是這樣子:
攝像頭是好幾年前臺式機用的攝像頭,分辨率是奇葩的470x640,而不是480x640,mjpg-streamer下,畫面是花的,等到畫面調正常之后,畫面卻如放幻燈片一樣。我勒個去!攝像頭連接到裝了openwrt的wndr3800路由器上流暢的沒朋友,在樹莓派上調來調去卻怎么也不行,認命了,放棄放棄,沒有攝像頭也能當遙控車開。
終于到了編程部分,為了簡單,使用python的RPI.GPIO模塊來操作I/O,不過我發現功能蠻少的,沒找到調速的API,文檔在這里,代碼如下,輪子的參數視接的I/O口而定。
<!-- lang: python --> import RPi.GPIO as gpio class Wheel(object): def __init__(self, in_pin1, in_pin2, enable_pin1, enable_pin2): ''' :param in_pin1 in_pin2: IN1 IN2 or IN3 IN4 :param enable_pin1 enable_pin2: ENA or ENB ''' self.pin1 = in_pin1 self.pin2 = in_pin2 # setup I/O OUT gpio.setup(in_pin1, gpio.OUT) gpio.setup(in_pin2, gpio.OUT) gpio.setup(enable_pin1, gpio.OUT) gpio.setup(enable_pin2, gpio.OUT) # enable gpio.output(enable_pin1, True) gpio.output(enable_pin2, True) def forward(self): gpio.output(self.pin1, True) gpio.output(self.pin2, False) def backward(self): gpio.output(self.pin1, False) gpio.output(self.pin2, True) def stop(self): gpio.output(self.pin1, False) gpio.output(self.pin2, False) class Car(object): def __init__(self): gpio.setmode(gpio.BOARD) self.left_wheel = Wheel(13, 15, 7, 11) self.right_wheel = Wheel(16, 18, 22, 29) def forward(self): self.left_wheel.forward() self.right_wheel.forward() def backward(self): self.left_wheel.backward() self.right_wheel.backward() def left(self): self.left_wheel.stop() self.right_wheel.forward() def right(self): self.left_wheel.forward() self.right_wheel.stop() def stop(self): self.left_wheel.stop() self.right_wheel.stop() def shutdown(self): self.stop() gpio.cleanup()
感謝各位的閱讀!關于“怎么用樹莓派來制作簡單的遙控小車”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。