最近復活了躺在月餅盒子裏吃灰已久的樹莓派,買了個L298N電機驅動器、買了個車架子,準備搞個小車玩玩;
經過樹莓派讓小車輪子轉起來也比較簡單簡要概述起來分爲下面二步:編碼
1. 樹莓派發送數據給電機驅動器
2. 電機驅動器驅動電機轉動從而帶動輪子轉動3d
讓小車動起來就是這麼簡單,方法步驟有了,下面就看看具體如何讓樹莓派發數據給電機驅動器,如何讓電機驅動器帶動輪子轉動,在具體介紹以前先看看L298N電機驅動器的實物圖;code
樹莓派想要將數據發送到電機驅動器,它必需要先與驅動器創建鏈接,而驅動器這種又不支持USB鏈接;樹莓派提供了GPIO(通用輸入輸出)引腳用於鏈接第三方設備,GPIO是一種低功耗的接口。電機驅動器自己也是經過GPIO來接收數據的。
blog
從上圖能夠看到一共有40個引腳,而且標註了每一個引腳的做用,每一個引腳還有具體的編號1-40,但從上面也能夠看出並非40個都是GPIO引腳,引腳分爲下面幾類:接口
圖中能夠看到每一個引腳(Pin)都有一個編號從1到40,這個是物理編號,每一個GPIO後面也跟着一個數字這是它的BCM編號。每一個GPIO有一個物理編號一個邏輯編號(BCM編號);
其實一般樹莓派有三種編碼方式:BOARD編碼、BCM編碼、wiringPi 編碼;BOARD編碼也就是上面所說的物理編號,wiringPi編碼這裏就不是了其實也就是它定義的一排數字;get
圖中物理編號40的GPIO引腳對應的邏輯編號爲21。io
L298N電機驅動器總共有這麼10類接口,這裏非專業的簡單介紹各個接口的用途,上圖對接口進行了編號。class
編號一、9接口用於控制左右兩邊電機(電機輸出)
編號2 接口 12V輸入
編號3 接口接地(負極)
編號4 5V輸入,如10 接上跳帽可以使4變爲5V輸出口
編號7 左邊電機輸入(靠近9的兩個引腳)
編號6 右邊電機輸入(靠近1的兩個引腳)
編號8 左邊電機使能
編號5 右邊電機使能import
簡單瞭解了樹莓派與電機驅動器的接口後,就能夠將樹莓派與驅動器進行接線鏈接起來了;方法
上面能夠看到驅動器左邊電機兩個輸入引腳,右邊電機兩個輸入引腳,上面也介紹了樹莓派經過GPIO與其餘外設通訊,因此要讓輪子動起來須要:
左邊電機輸入兩個引腳(編號7)鏈接樹莓派兩個GPIO引腳
右邊電機輸入兩個引腳(編號6)鏈接樹莓派兩個GPIO引腳
經過上面與樹莓派鏈接後,驅動器收到了信號,但還須要將信號輸出給電機纔可以讓輪子轉動起來;
左邊電機輸出(編號9)鏈接電機
右邊電機輸出(編號1)鏈接電機
不區分正負極,但須要注意要保持如一個輸出接兩個電機要保證兩個電機與驅動器接線位置是一直的,否則就會致使一個電機正向轉動、另外一個反向轉動;
樹莓派、驅動器、電機的傳輸線接好還須要接的是驅動器、樹莓派的電源線;
樹莓派USB接口供電
驅動器外接電源正極接12V口(編號2),負極接節點線口(編號3)
驅動器接電線(編號3)與樹莓派接地引腳鏈接
import RPi.GPIO as gpio import time #gpio編碼模式 物理模式 gpio.setmode(gpio.BOARD) #引腳35,37 設爲輸出 gpio.setup(35, gpio.OUT) gpio.setup(37, gpio.OUT) #高電平 gpio.output(35, True) #低電平 gpio.output(37, False) time.sleep(10) gpio.cleanup() # 清理引腳
執行上面代碼能夠看到輪子動起來了;
參考資料:
https://www.raspberrypi.org/documentation/usage/gpio/
文章首發地址:Solinx