“SKU:RB-01C073A 樹(shù)莓派電機(jī)驅(qū)動(dòng)板”的版本間的差異

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
?超聲波測(cè)試?yán)?/span>
?產(chǎn)品相關(guān)推薦
 
(未顯示2個(gè)用戶的17個(gè)中間版本)
第4行: 第4行:
 
==規(guī)格參數(shù)==
 
==規(guī)格參數(shù)==
 
1.電機(jī)驅(qū)動(dòng)輸出接口:雙路雙向直流電機(jī)驅(qū)動(dòng)<br/>
 
1.電機(jī)驅(qū)動(dòng)輸出接口:雙路雙向直流電機(jī)驅(qū)動(dòng)<br/>
?
2.電源輸出接口:7~12V DC<br/>
+
2.電源輸入接口:7~12V DC<br/>
 
3.OC輸出接口:兩路集電極開(kāi)路輸出(25mA,5V電平)<br/>
 
3.OC輸出接口:兩路集電極開(kāi)路輸出(25mA,5V電平)<br/>
 
4.板載指示燈:兩個(gè)可編程控制LED發(fā)光二極管<br/>
 
4.板載指示燈:兩個(gè)可編程控制LED發(fā)光二極管<br/>
第17行: 第17行:
 
===接口示意圖===
 
===接口示意圖===
 
[[文件:rb01c07302.png|700px|有框|居中|樹(shù)莓派驅(qū)動(dòng)板接口定義]]
 
[[文件:rb01c07302.png|700px|有框|居中|樹(shù)莓派驅(qū)動(dòng)板接口定義]]
 +
[[文件:RaspberryDrive.png|700px|縮略圖|居中|樹(shù)莓派驅(qū)動(dòng)板GPIO接口]]<br/>
 +
 
===控制引腳說(shuō)明===
 
===控制引腳說(shuō)明===
 
<big>1.電源輸入端接入7—12V直流電源,電機(jī)驅(qū)動(dòng)板會(huì)給樹(shù)莓派提供5V電源,所以樹(shù)莓派插接電機(jī)驅(qū)動(dòng)板后,只需給驅(qū)動(dòng)板進(jìn)行供電而樹(shù)莓派無(wú)需額外的電源。<br/>
 
<big>1.電源輸入端接入7—12V直流電源,電機(jī)驅(qū)動(dòng)板會(huì)給樹(shù)莓派提供5V電源,所以樹(shù)莓派插接電機(jī)驅(qū)動(dòng)板后,只需給驅(qū)動(dòng)板進(jìn)行供電而樹(shù)莓派無(wú)需額外的電源。<br/>
?
2.板載LED1、LED2,對(duì)外接口OC1、OC2分別是樹(shù)莓派的GPIO7、8、21、23經(jīng)過(guò)74HC14D反相器的輸出端,OC1、OC2分別連接一個(gè)LED模塊,使用樹(shù)莓派的IO輸出高低電平信號(hào),通過(guò)74HC14D驅(qū)動(dòng)LED點(diǎn)亮與熄滅。<br/>
+
2.板載 LED1、LED2,對(duì)外接口 OC1、OC2 分別是樹(shù)莓派的 GPIO7、8、22、27 經(jīng)過(guò) 74HC14D 反相器的輸出端,OC1、OC2 分別連接一個(gè) LED 模塊,使用樹(shù)莓派的 IO 輸出高低電平信號(hào),通過(guò)74HC14D 驅(qū)動(dòng) LED 點(diǎn)亮與熄滅。<br/>
?
GPIO7輸出高電平,LED1點(diǎn)亮,輸出低電平,LED1熄滅;<br/>
+
GPIO7 輸出高電平,LED1 點(diǎn)亮,輸出低電平,LED1 熄滅;<br/>
?
GPIO8輸出高電平,LED2點(diǎn)亮,輸出低電平,LED2熄滅;<br/>
+
GPIO8 輸出高電平,LED2 點(diǎn)亮,輸出低電平,LED2 熄滅;<br/>
?
GPIO22輸出高電平,OC1外接LED點(diǎn)亮,輸出低電平,OC1外接LED熄滅;<br/>
+
GPIO22 輸出高電平,OC1 外接 LED 點(diǎn)亮,輸出低電平,OC1 外接 LED 熄滅;<br/>
?
GPIO27輸出高電平,OC2外接LED點(diǎn)亮,輸出低電平,OC2外接LED熄滅;<br/>
+
GPIO27 輸出高電平,OC2 外接 LED 點(diǎn)亮,輸出低電平,OC2 外接 LED 熄滅;<br/>
?
3.電機(jī)A口的使能接GPIO10,方向控制接GPIO25,電機(jī)B口的使能接GPIO17,方向控制接GPIO4,使用樹(shù)莓派控制引腳可以進(jìn)行控制電機(jī)的啟動(dòng)停止和調(diào)速,通過(guò)方向引腳控制電機(jī)轉(zhuǎn)向。<br/>
+
3.電機(jī)A口的使能接 GPIO10,方向控制接 GPIO25,電機(jī)B口的使能接 GPIO17,方向控制接 GPIO4,使用樹(shù)莓派控制引腳可以進(jìn)行控制電機(jī)的啟動(dòng)停止和調(diào)速,通過(guò)方向引腳控制電機(jī)轉(zhuǎn)向。<br/>
?
* A口使能GPIO17輸出高電平,A口方向GPIO25輸出高電平,A口電機(jī)順時(shí)針旋轉(zhuǎn);<br/>
+
* A 口使能 GPIO10 輸出高電平,A 口方向 GPIO25 輸出高電平,A口電機(jī)順時(shí)針旋轉(zhuǎn);<br/>
?
* A口使能GPIO17輸出高電平,A口方向GPIO25輸出低電平,A口電機(jī)逆時(shí)針旋轉(zhuǎn);<br/>
+
* A 口使能 GPIO10 輸出高電平,A 口方向 GPIO25 輸出低電平,A口電機(jī)逆時(shí)針旋轉(zhuǎn);<br/>
?
* A口使能GPIO17輸出低電平,A口電機(jī)停止轉(zhuǎn)動(dòng);<br/>
+
* A 口使能 GPIO10 輸出低電平,A 口電機(jī)停止轉(zhuǎn)動(dòng);<br/>
?
* B口使能GPIO10輸出高電平,B口方向GPIO4輸出高電平,B口電機(jī)順時(shí)針旋轉(zhuǎn);<br/>
+
* B 口使能 GPIO17 輸出高電平,B 口方向 GPIO4 輸出高電平,B口電機(jī)順時(shí)針旋轉(zhuǎn);<br/>
?
* B口使能GPIO10輸出高電平,B口方向GPIO4輸出低電平,B口電機(jī)逆時(shí)針旋轉(zhuǎn);<br/>
+
* B 口使能 GPIO17 輸出高電平,B 口方向 GPIO4 輸出低電平,B口電機(jī)逆時(shí)針旋轉(zhuǎn);<br/>
?
* B口使能GPIO10輸出低電平,B口電機(jī)停止轉(zhuǎn)動(dòng);<br/>
+
* B 口使能 GPIO17 輸出低電平,B 口電機(jī)停止轉(zhuǎn)動(dòng);<br/>
?
4.SW1、SW2接口經(jīng)過(guò)限流電阻后直接連接在樹(shù)莓派的GPIO 11、9.在SW1、GND之間和SWD、GND之間,分別連接一個(gè)碰撞開(kāi)關(guān),GPIO11、9設(shè)置為輸入,默認(rèn)電平為高電平(內(nèi)部有上拉電阻),當(dāng)開(kāi)關(guān)閉合時(shí),GPIO的電平會(huì)被拉低。<br/>
+
4.SW1、SW2 接口經(jīng)過(guò)限流電阻后直接連接在樹(shù)莓派的 GPIO 11、9.在 SW1、GND 之間和 SWD、GND 之間,分別連接一個(gè)碰撞開(kāi)關(guān),GPIO11、9 設(shè)置為輸入,默認(rèn)電平為高電平(內(nèi)部有上拉電阻),當(dāng)開(kāi)關(guān)閉合時(shí),GPIO 的電平會(huì)被拉低。<br/>
?
5.I2C接口直接連接到樹(shù)莓派的I2C引腳(GPIO2 |SDA,GPIO 3|SCL),可以擴(kuò)展I2C模塊。<br/>
+
5.I2C 接口直接連接到樹(shù)莓派的I2C引腳(GPIO2 | SDA,GPIO3 | SCL),可以擴(kuò)展I2C模塊。<br/>
?
6.UART接口直接連接到樹(shù)莓派的UART引腳(GPIO 14|TX,GPIO 15|RX),可以擴(kuò)展UART模塊。<br/>
+
6.UART 接口直接連接到樹(shù)莓派的UART引腳(GPIO14 | TX,GPIO15 | RX),可以擴(kuò)展UART模塊。<br/>
?
7.URF(超聲波接口)的OUTPUT經(jīng)過(guò)分壓直接連接到GPIO18,INPUT直接連接到GPIO23,樹(shù)莓派的GPIO 23至高10us以上,然后置低,等待GPIO 18接收到高電平信號(hào)時(shí),高電平結(jié)束時(shí)停止,計(jì)算高電平時(shí)間,所測(cè)量的距離 = 高電平時(shí)間*聲速/2。<br/>
+
7.URF02(超聲波接口)的OUTPUT經(jīng)過(guò)分壓直接連接到 GPIO18,INPUT 直接連接到 GPIO23,樹(shù)莓派的 GPIO23 至高10us以上,然后置低,等待 GPIO18 接收到高電平信號(hào)時(shí),高電平結(jié)束時(shí)停止,計(jì)算高電平時(shí)間,所測(cè)量的距離 = 高電平時(shí)間*聲速/2。<br/>
 
</big>
 
</big>
  
第40行: 第42行:
 
[[文件:rb01c07303.png|500px|有框|居中|與樹(shù)莓派控制器的完美配合]]
 
[[文件:rb01c07303.png|500px|有框|居中|與樹(shù)莓派控制器的完美配合]]
 
===基本測(cè)試代碼===
 
===基本測(cè)試代碼===
?
* [https://www.jianguoyun.com/p/DYvwt5IQ59D4BRiO0hc 示例程序下載]
+
* 需要在樹(shù)莓派中新建一個(gè) python 程序文件,然后將代碼復(fù)制到文件中,保存,但是一定要注意保存的目錄是需要記住的。
?
需要將下載的示例程序復(fù)制到樹(shù)莓派的 pi 目錄下,可以使用 putty 登錄到 Raspberry Pi 控制器,輸入命令"cd RB-01C073A Raspberry Pi Motor Driver"進(jìn)入程序目錄,然后輸入"sudo python dianji1.py"命令來(lái)執(zhí)行程序。
+
 
* 使用 Putty 登錄到 Raspberry Pi 方法可以參考:[http://www.makerspace.cn/forum.php?mod=viewthread&tid=5681&extra=page%3D1 Raspberry Pi 基礎(chǔ)教程匯總]
 
* 使用 Putty 登錄到 Raspberry Pi 方法可以參考:[http://www.makerspace.cn/forum.php?mod=viewthread&tid=5681&extra=page%3D1 Raspberry Pi 基礎(chǔ)教程匯總]
?
* 注意程序中我們使用了一個(gè)庫(kù)文件"botbook_gpio",庫(kù)文件可以直接從上面的例子程序下載中獲取到,如果不使用庫(kù)文件或者庫(kù)文件和程序文件不是在同一個(gè)目錄下,會(huì)造成程序執(zhí)行失敗。
 
  
 
<pre style='color:blue'>
 
<pre style='color:blue'>
 +
#!/usr/bin/env python
 +
# encoding: utf-8
 +
 +
import RPi.GPIO
 
import time
 
import time
?
import botbook_gpio as gpio
 
  
?
shinengA = 10 # <1>
+
SW1, SW2=11,9
?
fangxiangA = 25
+
OC1, OC2=22,27
?
shinengB = 17 # <1>
+
LED1, LED2=7,8
?
fangxiangB = 4
+
EA = 10
?
+
EB = 17
?
gpio.mode(shinengA, "out")
+
directionA = 25
?
gpio.mode(shinengB, "out")
+
directionB = 4
?
gpio.mode(fangxiangA, "out")
+
 
?
gpio.mode(fangxiangB, "out")
+
RPi.GPIO.setmode(RPi.GPIO.BCM)
?
+
 
?
def qianjin()
+
RPi.GPIO.setup(OC1, RPi.GPIO.OUT)
?
gpio.write(shinengA, gpio.HIGH)
+
RPi.GPIO.setup(OC2, RPi.GPIO.OUT)
?
gpio.write(fangxiangA, gpio.HIGH)
+
RPi.GPIO.setup(EA, RPi.GPIO.OUT)
?
gpio.write(shinengB, gpio.HIGH)
+
RPi.GPIO.setup(EB, RPi.GPIO.OUT)
?
gpio.write(fangxiangB, gpio.HIGH)
+
RPi.GPIO.setup(directionA, RPi.GPIO.OUT)
?
print "qianjin"
+
RPi.GPIO.setup(directionB, RPi.GPIO.OUT)
?
time.sleep(1)
+
RPi.GPIO.setup(LED1, RPi.GPIO.OUT)
?
+
RPi.GPIO.setup(LED2, RPi.GPIO.OUT)
?
def houtui()
+
?
gpio.write(shinengA, gpio.HIGH)
+
?
gpio.write(fangxiangA, gpio.LOW)
+
?
gpio.write(shinengB, gpio.HIGH)
+
?
gpio.write(fangxiangB, gpio.LOW)
+
?
print "houtui"
+
?
time.sleep(1)
+
?
+
?
def zuozhuan()
+
?
gpio.write(shinengA, gpio.HIGH)
+
?
gpio.write(fangxiangA, gpio.LOW)
+
?
gpio.write(shinengB, gpio.HIGH)
+
?
gpio.write(fangxiangB, gpio.HIGH)
+
?
print "zuozhuan"
+
?
time.sleep(1)
+
  
?
def youzhuan()
+
RPi.GPIO.setup(SW1, RPi.GPIO.IN)
?
gpio.write(shinengA, gpio.HIGH)
+
RPi.GPIO.setup(SW2, RPi.GPIO.IN)
?
gpio.write(fangxiangA, gpio.HIGH)
+
?
gpio.write(shinengB, gpio.HIGH)
+
?
gpio.write(fangxiangB, gpio.LOW)
+
?
print "youzhuan"
+
?
time.sleep(1)
+
  
?
def tingzhi()
+
try:
?
gpio.write(shinengA, gpio.LOW)
+
while True:
?
gpio.write(fangxiangA, gpio.LOW)
+
time.sleep(0.01)
?
gpio.write(shinengB, gpio.LOW)
+
if (RPi.GPIO.input(SW2) == 1 or RPi.GPIO.input(SW1) == 1):
?
gpio.write(fangxiangB, gpio.HIGH)
+
RPi.GPIO.output(OC2, False)
?
print "tingzhi"
+
RPi.GPIO.output(LED2,True)
?
time.sleep(1)
+
RPi.GPIO.output(OC1, True)
?
def main:
+
RPi.GPIO.output(LED1,False)
?
qianjin()
+
?
time.sleep(1)
+
RPi.GPIO.output(EA, True)
?
tingzhi()
+
RPi.GPIO.output(EB, True)
?
time.sleep(0.5)
+
RPi.GPIO.output(directionB, False)
?
houtui()
+
RPi.GPIO.output(directionA, False)
?
time.sleep(1)
+
time.sleep(1)
?
tingzhi()
+
RPi.GPIO.output(directionB, True)
?
time.sleep(0.5)
+
RPi.GPIO.output(directionA, True)
?
zuozhuan()
+
time.sleep(1)
?
time.sleep(1)
+
?
tingzhi()
+
else:
?
time.sleep(0.5)
+
RPi.GPIO.output(OC2, True)
?
youzhaun()
+
RPi.GPIO.output(LED2,False)
?
time.sleep(1)
+
RPi.GPIO.output(OC1, False)
?
tingzhi()
+
RPi.GPIO.output(LED1,True)
?
time.sleep(0.5)
+
 +
RPi.GPIO.output(EA, False)
 +
RPi.GPIO.output(EB, False)
 +
 +
except KeyboardInterrupt:
 +
pass
 
 
?
if __name__ == "__main__":
+
RPi.GPIO.cleanup()
?
main()          
+
 
</pre>
 
</pre>
  
 
===代碼功能===
 
===代碼功能===
?
代碼使用樹(shù)莓派執(zhí)行后,小車(chē)實(shí)現(xiàn)前后左右的運(yùn)動(dòng)。
+
此代碼主要為了功能測(cè)試,在代碼上傳后 LED2 亮起,如果 OC2 外接一個(gè) LED ,也會(huì)亮起,電機(jī)不會(huì)轉(zhuǎn)動(dòng)。<br/>
 +
按下 SW1 外接的按鍵或者 SW2 外接的按鍵,LED2 熄滅,如果 OC2 外接一個(gè) LED ,也會(huì)熄滅。LED1 亮起,如果 OC1 外接一個(gè) LED ,也會(huì)亮起。
  
 
===超聲波測(cè)試?yán)?==
 
===超聲波測(cè)試?yán)?==
?
* [https://www.jianguoyun.com/p/DUaOT54Q59D4BRiT0hc 示例程序下載]
+
* 程序鏈接:https://pan.baidu.com/s/1bHs4vo23CNdl0NVBpCUODQ 提取碼:6o0d
 +
 
 
需要將下載的示例程序復(fù)制到樹(shù)莓派的 pi 目錄下,可以使用 putty 登錄到 Raspberry Pi 控制器,輸入命令"cd RB-01C073A Raspberry Pi Motor Driver URF02"進(jìn)入程序目錄,然后輸入"sudo python URF02.py"命令來(lái)執(zhí)行程序。
 
需要將下載的示例程序復(fù)制到樹(shù)莓派的 pi 目錄下,可以使用 putty 登錄到 Raspberry Pi 控制器,輸入命令"cd RB-01C073A Raspberry Pi Motor Driver URF02"進(jìn)入程序目錄,然后輸入"sudo python URF02.py"命令來(lái)執(zhí)行程序。
 
* 使用 Putty 登錄到 Raspberry Pi 方法可以參考:[http://www.makerspace.cn/forum.php?mod=viewthread&tid=5681&extra=page%3D1 Raspberry Pi 基礎(chǔ)教程匯總]
 
* 使用 Putty 登錄到 Raspberry Pi 方法可以參考:[http://www.makerspace.cn/forum.php?mod=viewthread&tid=5681&extra=page%3D1 Raspberry Pi 基礎(chǔ)教程匯總]
第134行: 第123行:
  
 
def readDistanceCm():
 
def readDistanceCm():
?
triggerPin = 23 # <1>
+
triggerPin = 23
 
echoPin = 18
 
echoPin = 18
  
第159行: 第148行:
 
def main():
 
def main():
 
while True:
 
while True:
?
d = readDistanceCm() # <2>
+
d = readDistanceCm()
 
print "Distance is %.2f cm" % d
 
print "Distance is %.2f cm" % d
 
time.sleep(0.5)
 
time.sleep(0.5)
第170行: 第159行:
 
===程序效果===
 
===程序效果===
 
程序執(zhí)行后,在 Putty 的登錄窗口會(huì)持續(xù)顯示出當(dāng)前超聲波檢測(cè)的前方障礙物距離,單位"cm",如果要退出程序,可以使用“Ctrl + C”組合鍵。
 
程序執(zhí)行后,在 Putty 的登錄窗口會(huì)持續(xù)顯示出當(dāng)前超聲波檢測(cè)的前方障礙物距離,單位"cm",如果要退出程序,可以使用“Ctrl + C”組合鍵。
 +
  
 
==產(chǎn)品相關(guān)推薦==
 
==產(chǎn)品相關(guān)推薦==
 
[[文件:erweima.png|230px|無(wú)框|右]]
 
[[文件:erweima.png|230px|無(wú)框|右]]
 +
=== 產(chǎn)品資料 ===
 +
下載鏈接 :https://pan.baidu.com/s/1ijljRpy9TpDyGWcDmrg8ww?pwd=shop
 +
提取碼:shop
 
===產(chǎn)品購(gòu)買(mǎi)地址===
 
===產(chǎn)品購(gòu)買(mǎi)地址===
 
[https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.15.ybN45R&id=37571891821 樹(shù)莓派電機(jī)驅(qū)動(dòng)板]<br/>
 
[https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.15.ybN45R&id=37571891821 樹(shù)莓派電機(jī)驅(qū)動(dòng)板]<br/>

2022年7月14日 (四) 16:54的最后版本

Rb01c07301.png

目錄

產(chǎn)品概述

新版樹(shù)莓派電機(jī)驅(qū)動(dòng)板采用的電路和接口設(shè)計(jì),版型符合樹(shù)莓派2代的設(shè)計(jì),與樹(shù)莓派完美結(jié)合。供電電源采用LM2596開(kāi)關(guān)穩(wěn)壓電源,具有更高效率,更大輸出電流,更低的發(fā)熱量等特點(diǎn)。電機(jī)驅(qū)動(dòng)板新品采用L293D,更小的封裝尺寸,更合理的電路設(shè)計(jì)。對(duì)外接口方面,采用了奧松新一代防插反接口,和奧松的系列傳感器模塊匹配,更可以直接安裝URF02超聲波傳感器和藍(lán)牙模塊,制作樹(shù)莓派小車(chē)更加方便、簡(jiǎn)潔。如果您想制作樹(shù)莓派小車(chē),無(wú)需東奔西走,奧松機(jī)器人配套全都有!

規(guī)格參數(shù)

1.電機(jī)驅(qū)動(dòng)輸出接口:雙路雙向直流電機(jī)驅(qū)動(dòng)
2.電源輸入接口:7~12V DC
3.OC輸出接口:兩路集電極開(kāi)路輸出(25mA,5V電平)
4.板載指示燈:兩個(gè)可編程控制LED發(fā)光二極管
5.開(kāi)關(guān)量接口:兩路開(kāi)關(guān)量輸入/輸出(3.3V電平)
6.UART接口:3.3V電平6Pin串行接口,可直接連接藍(lán)牙模塊
7.I2C接口:5V電平I2C接口,可駁接各類(lèi)I2C接口模塊
8.超聲波模塊接口:可直接連接URF02超聲波模塊
9.樹(shù)莓派接口:支持樹(shù)莓派、樹(shù)莓派B+、樹(shù)莓派2等
10.外形尺寸:56*40mm

使用方法

接口示意圖

樹(shù)莓派驅(qū)動(dòng)板接口定義
樹(shù)莓派驅(qū)動(dòng)板GPIO接口

控制引腳說(shuō)明

1.電源輸入端接入7—12V直流電源,電機(jī)驅(qū)動(dòng)板會(huì)給樹(shù)莓派提供5V電源,所以樹(shù)莓派插接電機(jī)驅(qū)動(dòng)板后,只需給驅(qū)動(dòng)板進(jìn)行供電而樹(shù)莓派無(wú)需額外的電源。
2.板載 LED1、LED2,對(duì)外接口 OC1、OC2 分別是樹(shù)莓派的 GPIO7、8、22、27 經(jīng)過(guò) 74HC14D 反相器的輸出端,OC1、OC2 分別連接一個(gè) LED 模塊,使用樹(shù)莓派的 IO 輸出高低電平信號(hào),通過(guò)74HC14D 驅(qū)動(dòng) LED 點(diǎn)亮與熄滅。
GPIO7 輸出高電平,LED1 點(diǎn)亮,輸出低電平,LED1 熄滅;
GPIO8 輸出高電平,LED2 點(diǎn)亮,輸出低電平,LED2 熄滅;
GPIO22 輸出高電平,OC1 外接 LED 點(diǎn)亮,輸出低電平,OC1 外接 LED 熄滅;
GPIO27 輸出高電平,OC2 外接 LED 點(diǎn)亮,輸出低電平,OC2 外接 LED 熄滅;
3.電機(jī)A口的使能接 GPIO10,方向控制接 GPIO25,電機(jī)B口的使能接 GPIO17,方向控制接 GPIO4,使用樹(shù)莓派控制引腳可以進(jìn)行控制電機(jī)的啟動(dòng)停止和調(diào)速,通過(guò)方向引腳控制電機(jī)轉(zhuǎn)向。

  • A 口使能 GPIO10 輸出高電平,A 口方向 GPIO25 輸出高電平,A口電機(jī)順時(shí)針旋轉(zhuǎn);
  • A 口使能 GPIO10 輸出高電平,A 口方向 GPIO25 輸出低電平,A口電機(jī)逆時(shí)針旋轉(zhuǎn);
  • A 口使能 GPIO10 輸出低電平,A 口電機(jī)停止轉(zhuǎn)動(dòng);
  • B 口使能 GPIO17 輸出高電平,B 口方向 GPIO4 輸出高電平,B口電機(jī)順時(shí)針旋轉(zhuǎn);
  • B 口使能 GPIO17 輸出高電平,B 口方向 GPIO4 輸出低電平,B口電機(jī)逆時(shí)針旋轉(zhuǎn);
  • B 口使能 GPIO17 輸出低電平,B 口電機(jī)停止轉(zhuǎn)動(dòng);

4.SW1、SW2 接口經(jīng)過(guò)限流電阻后直接連接在樹(shù)莓派的 GPIO 11、9.在 SW1、GND 之間和 SWD、GND 之間,分別連接一個(gè)碰撞開(kāi)關(guān),GPIO11、9 設(shè)置為輸入,默認(rèn)電平為高電平(內(nèi)部有上拉電阻),當(dāng)開(kāi)關(guān)閉合時(shí),GPIO 的電平會(huì)被拉低。
5.I2C 接口直接連接到樹(shù)莓派的I2C引腳(GPIO2 | SDA,GPIO3 | SCL),可以擴(kuò)展I2C模塊。
6.UART 接口直接連接到樹(shù)莓派的UART引腳(GPIO14 | TX,GPIO15 | RX),可以擴(kuò)展UART模塊。
7.URF02(超聲波接口)的OUTPUT經(jīng)過(guò)分壓直接連接到 GPIO18,INPUT 直接連接到 GPIO23,樹(shù)莓派的 GPIO23 至高10us以上,然后置低,等待 GPIO18 接收到高電平信號(hào)時(shí),高電平結(jié)束時(shí)停止,計(jì)算高電平時(shí)間,所測(cè)量的距離 = 高電平時(shí)間*聲速/2。

插接方法

與樹(shù)莓派控制器的完美配合

基本測(cè)試代碼

  • 需要在樹(shù)莓派中新建一個(gè) python 程序文件,然后將代碼復(fù)制到文件中,保存,但是一定要注意保存的目錄是需要記住的。
  • 使用 Putty 登錄到 Raspberry Pi 方法可以參考:Raspberry Pi 基礎(chǔ)教程匯總
#!/usr/bin/env python
# encoding: utf-8

import RPi.GPIO
import time

SW1, SW2=11,9
OC1, OC2=22,27
LED1, LED2=7,8
EA = 10
EB = 17
directionA = 25
directionB = 4

RPi.GPIO.setmode(RPi.GPIO.BCM)

RPi.GPIO.setup(OC1, RPi.GPIO.OUT)
RPi.GPIO.setup(OC2, RPi.GPIO.OUT)
RPi.GPIO.setup(EA, RPi.GPIO.OUT)
RPi.GPIO.setup(EB, RPi.GPIO.OUT)
RPi.GPIO.setup(directionA, RPi.GPIO.OUT)
RPi.GPIO.setup(directionB, RPi.GPIO.OUT)
RPi.GPIO.setup(LED1, RPi.GPIO.OUT)
RPi.GPIO.setup(LED2, RPi.GPIO.OUT)

RPi.GPIO.setup(SW1, RPi.GPIO.IN)
RPi.GPIO.setup(SW2, RPi.GPIO.IN)

try:
	while True:
		time.sleep(0.01)	
		if (RPi.GPIO.input(SW2) == 1 or RPi.GPIO.input(SW1) == 1):
			RPi.GPIO.output(OC2, False)
			RPi.GPIO.output(LED2,True)
			RPi.GPIO.output(OC1, True)
			RPi.GPIO.output(LED1,False)
			
			RPi.GPIO.output(EA, True)
			RPi.GPIO.output(EB, True)
			RPi.GPIO.output(directionB, False)
			RPi.GPIO.output(directionA, False)
			time.sleep(1)
			RPi.GPIO.output(directionB, True)
			RPi.GPIO.output(directionA, True)
			time.sleep(1)
			
		else:
			RPi.GPIO.output(OC2, True)
			RPi.GPIO.output(LED2,False)
			RPi.GPIO.output(OC1, False)
			RPi.GPIO.output(LED1,True)
			
			RPi.GPIO.output(EA, False)
			RPi.GPIO.output(EB, False)
			
except KeyboardInterrupt:
	pass
	
RPi.GPIO.cleanup()

代碼功能

此代碼主要為了功能測(cè)試,在代碼上傳后 LED2 亮起,如果 OC2 外接一個(gè) LED ,也會(huì)亮起,電機(jī)不會(huì)轉(zhuǎn)動(dòng)。
按下 SW1 外接的按鍵或者 SW2 外接的按鍵,LED2 熄滅,如果 OC2 外接一個(gè) LED ,也會(huì)熄滅。LED1 亮起,如果 OC1 外接一個(gè) LED ,也會(huì)亮起。

超聲波測(cè)試?yán)?/span>

需要將下載的示例程序復(fù)制到樹(shù)莓派的 pi 目錄下,可以使用 putty 登錄到 Raspberry Pi 控制器,輸入命令"cd RB-01C073A Raspberry Pi Motor Driver URF02"進(jìn)入程序目錄,然后輸入"sudo python URF02.py"命令來(lái)執(zhí)行程序。

  • 使用 Putty 登錄到 Raspberry Pi 方法可以參考:Raspberry Pi 基礎(chǔ)教程匯總
  • 注意程序中我們使用了一個(gè)庫(kù)文件"botbook_gpio",庫(kù)文件可以直接從上面的例子程序下載中獲取到,如果不使用庫(kù)文件或者庫(kù)文件和程序文件不是在同一個(gè)目錄下,會(huì)造成程序執(zhí)行失敗。
import time
import botbook_gpio as gpio

def readDistanceCm():
	triggerPin = 23	
	echoPin = 18

	v=(331.5+0.6*20) # m/s

	gpio.mode(triggerPin, "out")

	gpio.mode(echoPin, "in")
	gpio.interruptMode(echoPin, "both")

	gpio.write(triggerPin, gpio.LOW)
	time.sleep(0.5)

	gpio.write(triggerPin, gpio.HIGH)
	time.sleep(1/1000.0/1000.0)
	gpio.write(triggerPin, gpio.LOW)

	t = gpio.pulseInHigh(echoPin) # s

	d = t*v
	d = d/2
	return d*100	# cm

def main():
	while True:
		d = readDistanceCm()
		print "Distance is %.2f cm" % d
		time.sleep(0.5)

if __name__ == "__main__":
	main()

程序效果

程序執(zhí)行后,在 Putty 的登錄窗口會(huì)持續(xù)顯示出當(dāng)前超聲波檢測(cè)的前方障礙物距離,單位"cm",如果要退出程序,可以使用“Ctrl + C”組合鍵。


產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品資料

下載鏈接 :https://pan.baidu.com/s/1ijljRpy9TpDyGWcDmrg8ww?pwd=shop 提取碼:shop

產(chǎn)品購(gòu)買(mǎi)地址

樹(shù)莓派電機(jī)驅(qū)動(dòng)板

周邊產(chǎn)品推薦

URF02超聲波傳感器
無(wú)線藍(lán)牙模塊
樹(shù)莓派二代控制器

相關(guān)問(wèn)題解答

新買(mǎi)的樹(shù)莓派2,HDMI無(wú)信號(hào),ACT燈常亮
Raspberry Pi 常見(jiàn)問(wèn)題的解決方法

相關(guān)學(xué)習(xí)資料

玩轉(zhuǎn)樹(shù)莓派系列視頻教程(一)
玩轉(zhuǎn)樹(shù)莓派系列視頻教程(二)
玩轉(zhuǎn)樹(shù)莓派系列視頻教程(三)
玩轉(zhuǎn)樹(shù)莓派系列視頻教程(四)
玩轉(zhuǎn)樹(shù)莓派系列視頻教程(五)
樹(shù)莓派新手教程三---使用raspi-config工具配置樹(shù)莓派
樹(shù)莓派新手教程二---如何安裝和啟動(dòng)你的樹(shù)莓派!
奧松機(jī)器人技術(shù)論壇樹(shù)莓派控制器版塊