專案背景:
前段時間筆者接觸到了一個關于救援小車的專案,這個小車還需要適應比較復雜的地形,因此淘寶里類似于樹莓派智能小車的產品(大都是亞克力板拼接或底座太低)不太適合,因此筆者買了一個能夠水陸兩棲的遙控汽車,希望能夠把它從遙控小車改裝成能受樹莓派控制的小車,
關于小車:
筆者調研了市面上一大部分小車,終于選擇了如下圖所示的這一款水陸兩棲小車,

小車到了之后經過了一番拆卸,,,

拆卸之后肯定是不能在水里開了,但是這個車的架構還是非常有型的,并且還是有所識訓的:
a.該車供電電壓為9.6v,配有8節電池,每次充滿電需大概4個小時,
b.車中心有一個被刮去名稱的暫存器模塊,用來實作遙控器的近距離控制,
c.該車配有3個直流電機,其中兩個一起接入中心的模塊,用來控制小車四個輪胎的前后方向,以達到四驅的目的,另一個直流電機控制兩個前輪的左右方向,
根據上面的資訊,若要用樹莓派控制小車,需將小車中心的暫存器模塊用電烙鐵取下來,用一個電機模塊,供電電壓能夠在9.6v左右,連接小車3個直流電機的同時,能夠受樹莓派的邏輯電壓控制,
關于驅動模塊:
經過大量教程的搜集與市場調研,找到了這樣一款驅動模塊L298N直流電機驅動模塊:

該模塊供電范圍在7-35v,邏輯電壓在5-7v,且驅動電流在2A,非常適合樹莓派對其進行控制,
模塊連接:
該模塊與小車直流電機、樹莓派的連接如下圖所示:

圖中樹莓派引腳如下圖所示,上面的IN1-IN4分別連接樹莓派的GPIO.1 GPIO.0 GPIO.2 GPIO.3:

連接后的實物如下圖所示(圖中的一些傳感器請先無視):

注意:用電烙鐵將原本的正負線取下后可能會殘留一部分焊錫無法取出,這樣不好插進電機模塊的固定位置,因此筆者將正負線用杜邦線一頭再次焊接好,并將焊接的地方用黑膠布粘牢,另一頭減掉直接,用漏出來里面的銅絲接入驅動模塊,調整好后用熱熔膠將其徹底固定,防止漏電,
經過前期的作業,終于將小車與樹莓派連接好了,不過這里筆者給樹莓派本身也配了一個5v2a的電池模塊,因此這里還是有兩個電池的,若只需要一個電池供電,還得準備一個DC-DC可調節降壓模塊,一邊用杜邦線連接電源的正負極,中間電壓調成5v,由于該電源電流不會超過3A,因此另一邊可以用杜邦線引出,接到樹莓派2號(+)與6號(-)引腳(注意:一定保證連接引腳正確,這邊供電不具有保險措施),
代碼撰寫:
接下來是對小車驅動的代碼編程了,筆者這里先主要介紹如何能夠讓小車簡單跑起來,對于直流電機的旋轉放書需要參照如下圖所示的表格:

首先將需要庫進行安裝
sudo apt-get install python-pip
sudo pip install RPi.GPIO
接下來對小車連接的各個GPIO口進行初始化
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
IN1 = 11
IN2 = 12
IN3 = 13
IN4 = 15
GPIO.setup(IN1,GPIO.OUT)
GPIO.setup(IN2,GPIO.OUT)
GPIO.setup(IN3,GPIO.OUT)
GPIO.setup(IN4,GPIO.OUT)
然后是對小車向前1秒的撰寫
GPIO.output(IN1,False)
GPIO.output(IN2,False)
GPIO.output(IN3,GPIO.HIGH)
GPIO.output(IN4,GPIO.LOW)
time.sleep(1)
GPIO.cleanup()
到這里我們就可以實作小車的向前移動了,接下來可以測驗一下其他的方向移動,
向后:
GPIO.output(IN1,False)
GPIO.output(IN2,False)
GPIO.output(IN3,GPIO.LOW)
GPIO.output(IN4,GPIO.HIGH)
向左:
GPIO.output(IN1,GPIO.HIGH)
GPIO.output(IN2,GPIO.LOW)
GPIO.output(IN3,False)
GPIO.output(IN4,False)
向右:
GPIO.output(IN1,GPIO.LOW)
GPIO.output(IN2,GPIO.HIGH)
GPIO.output(IN3,False)
GPIO.output(IN4,False)
左上:
GPIO.output(IN1,GPIO.LOW)
GPIO.output(IN2,GPIO.HIGH)
GPIO.output(IN3,GPIO.HIGH)
GPIO.output(IN4,GPIO.LOW)
右上:
GPIO.output(IN1,GPIO.HIGH)
GPIO.output(IN2,GPIO.LOW)
GPIO.output(IN3,GPIO.HIGH)
GPIO.output(IN4,GPIO.LOW)
左下:
GPIO.output(IN1,GPIO.HIGH)
GPIO.output(IN2,GPIO.LOW)
GPIO.output(IN3,GPIO.LOW)
GPIO.output(IN4,GPIO.HIGH)
右下:
GPIO.output(IN1,GPIO.LOW)
GPIO.output(IN2,GPIO.HIGH)
GPIO.output(IN3,GPIO.LOW)
GPIO.output(IN4,GPIO.HIGH)
總結:
現在小車便可以簡單跑起來了,但這樣還是遠遠不夠的,我們希望得是能夠用按鍵來控制小車,后面會給大家講解如何實作,感謝各位觀看,如有不足,歡迎在評論內留言與討論,如果覺得寫得好的,可以給我點贊+收藏+關注哦,再次感謝各位!

參考:
【公開課】樹莓派教程
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256432.html
標籤:其他
