您好,登錄后才能下訂單哦!
驅動樹莓派gpio的中間層庫函數有wiringPi,BCM2835,以及PRi.GPIO,這里我選擇使用Python語言開發的PRi.GPIO。
1、安裝RPi.GPIO
(1)先安裝python-dev,輸入以下指令。
sudo apt-get install python-dev
(2)安裝RPi.GPIO
wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz #解壓: tar -zxvf RPi.GPIO-0.5.11.tar.gz #進入解壓之后的目錄 : cd RPi.GPIO-0.5.3a #啟動安裝 : sudo python setup.py install
2、編寫驅動電機的程序
(1)樹莓派與XY-160D驅動板連接方法
# 樹莓派供電: # 5V電源正極接到樹莓派4號5V電源引腳,負極接到樹莓派39號GND引腳 # 樹莓派綠色ATC燈閃爍則SD卡正在運行,紅色PWR燈常亮則供電正常 # 更多指示燈狀態請參照:樹莓派LED指示燈狀態的解釋 # # 驅動板電源端供電: # 14.8V電源接驅動板電源端正極,電源負極接驅動板電源端負極 # # 驅動板信號端供電: # 樹莓派1號引腳3.3V接到驅動板信號端+5V引腳,14號引腳GND接到驅動板信號端GND引腳 # 驅動板供電正常則DS1指示燈亮起
(2)代碼
使用一段簡單的電機驅動代碼進行測試,新建motor_drive.py文件,添加如下代碼并保存:
#!/usr/bin/python2 #coding=utf-8 import RPi.GPIO as GPIO import time # 初始化設置引腳輸出 IN1 = 12 #11號引腳對應GPIO0,12號引腳對應GPIO1 IN2 = 11 #11號與12號引腳分別接到驅動板IN2,IN1引腳,控制其中一側電機 IN3 = 13 #13號引腳對應GPIO2,15號引腳對應GPIO3 IN4 = 15 #13號與15號引腳分別接到驅動板IN3,IN4引腳,控制另一側電機 def init(): GPIO.setmode(GPIO.BOARD) #設置GPIO編碼為物理引腳BOARD編碼 GPIO.setup(IN1, GPIO.OUT) GPIO.setup(IN2, GPIO.OUT) GPIO.setup(IN3, GPIO.OUT) GPIO.setup(IN4, GPIO.OUT) # 所有引腳置低電平,用于復位、停止運行的功能 def reset(): GPIO.output(IN1, GPIO.LOW) GPIO.output(IN2, GPIO.LOW) GPIO.output(IN3, GPIO.LOW) GPIO.output(IN4, GPIO.LOW) def forward(): GPIO.output(IN1, GPIO.HIGH) GPIO.output(IN2, GPIO.LOW) GPIO.output(IN3, GPIO.HIGH) GPIO.output(IN4, GPIO.LOW) def back(): GPIO.output(IN1, GPIO.LOW) GPIO.output(IN2, GPIO.HIGH) GPIO.output(IN3, GPIO.LOW) GPIO.output(IN4, GPIO.HIGH) def stop(): reset() if __name__ == "__main__": init() reset() try: while True: forward() time.sleep(5) stop() time.sleep(1) back() time.sleep(1) stop() time.sleep(1) except KeyboardInterrupt: print("except") stop() GPIO.cleanup()
執行程序,按Ctrl + c結束程序
sudo python motor_drive.py
注:
(1)#!/usr/bin/env python,定義python解析腳本的絕對路徑。
(2)# -*- coding: utf-8 -*- ,python文件為utf-8格式,否則無法寫入中文注釋。
(3)GPIO.setmode(GPIO.BOARD),采用board編號方式。
(4)python程序使用try except語言,當按下Ctrl+C結束程序是會觸發異常,程序執行gpio.cleanup()語句清楚GPIO管腳狀態。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。