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

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
(以“ ==產(chǎn)品概述== 新版樹(shù)莓派電機(jī)驅(qū)動(dòng)板采用的電路和接口設(shè)計(jì),版型符合樹(shù)莓派2代的設(shè)計(jì),與...”為內(nèi)容創(chuàng)建頁(yè)面)
 
?測(cè)試代碼
第39行: 第39行:
 
===插接方法===
 
===插接方法===
 
[[文件:rb01c07303.png|500px|有框|居中|與樹(shù)莓派控制器的完美配合]]
 
[[文件:rb01c07303.png|500px|有框|居中|與樹(shù)莓派控制器的完美配合]]
?
===測(cè)試代碼===
+
===基本測(cè)試代碼===
 
<pre style='color:blue'>
 
<pre style='color:blue'>
?
import RPi.GPIO as GPIO
 
 
import time
 
import time
?
GPIO.setmode(GPIO.BCM)
+
import botbook_gpio as gpio
?
GPIO.setup(7,GPIO.OUT) #LED1
+
?
GPIO.setup(8,GPIO.OUT) #LED2
+
?
GPIO.setup(27,GPIO.OUT) #OC2
+
?
GPIO.setup(22,GPIO.OUT) #OC1
+
?
GPIO.setup(10,GPIO.OUT) #EN1
+
?
GPIO.setup(17,GPIO.OUT) #EN2
+
?
GPIO.setup(25,GPIO.OUT) #MOTOR A
+
?
GPIO.setup(4,GPIO.OUT) #MOTOR B
+
?
GPIO.setup(11,GPIO.OUT) #SW1
+
?
GPIO.setup(9,GPIO.OUT) #SW2
+
?
GPIO.setup(25,GPIO.OUT) #MOTOR A
+
?
GPIO.setup(23,GPIO.OUT,initial=GPIO.LOW) #URFOUT
+
?
GPIO.setup(18,GPIO.IN) #URFIN
+
  
?
GPIO.output(8,GPIO.LOW) #LED2熄滅
+
shinengA = 10 # <1>
?
GPIO.output(7,GPIO.LOW) #LED1熄滅
+
fangxiangA = 25
?
GPIO.output(22,GPIO.HIGH) #OC1輸出低電平
+
shinengB = 17 # <1>
?
GPIO.output(27,GPIO.HIGH) #OC2輸出低電平
+
fangxiangB = 4
?
GPIO.output(25,GPIO.LOW) #MOTOR A順時(shí)針
+
?
GPIO.output(4,GPIO.LOW) #MOTOR B順時(shí)針
+
gpio.mode(shinengA, "out")
?
GPIO.output(10,GPIO.LOW) #MOTOR A停止
+
gpio.mode(shinengB, "out")
?
GPIO.output(17,GPIO.LOW) #MOTOR B停止
+
gpio.mode(fangxiangA, "out")
?
def checkdist()
+
gpio.mode(fangxiangB, "out")
?
    GPIO.output(23,GPIO.HIGH) #超聲波模塊輸入引腳置高10us以上
+
?
    time.sleep(0.000015) #置高15us
+
def qianjin()
?
    GPIO.output(23,GPIO.LOW) #置低
+
gpio.write(shinengA, gpio.HIGH)
?
    while not GPIO(18): #等待超聲波模塊輸出高電平
+
gpio.write(fangxiangA, gpio.HIGH)
?
        pass
+
gpio.write(shinengB, gpio.HIGH)
?
    t1 = time.time() #記錄時(shí)間點(diǎn)
+
gpio.write(fangxiangB, gpio.HIGH)
?
    while GPIO.input(18): #等待超聲波模塊輸出高電平
+
print "qianjin"
?
        pass
+
time.sleep(1)
?
    t2 = time.time() #記錄時(shí)間點(diǎn)
+
?
    return(t2-t1)*340/2 #計(jì)算時(shí)間差,算出對(duì)應(yīng)距離并返回
+
def houtui()
?
try:
+
gpio.write(shinengA, gpio.HIGH)
?
    while Ture:
+
gpio.write(fangxiangA, gpio.LOW)
?
        if GPIO.input(11): #當(dāng)SW1開(kāi)關(guān)斷開(kāi)
+
gpio.write(shinengB, gpio.HIGH)
?
              GPIO.output(10,GPIO.HIGH) #電機(jī)使能
+
gpio.write(fangxiangB, gpio.LOW)
?
              GPIO.output(17,GPIO.HIGH) #電機(jī)使能
+
print "houtui"
?
              GPIO.output(7,GPIO.HIGH) #LED1熄滅
+
time.sleep(1)
?
        else:
+
?
              GPIO.output(10,GPIO.LOW) #電機(jī)停止
+
def zuozhuan()
?
              GPIO.output(17,GPIO.LOW) #電機(jī)停止
+
gpio.write(shinengA, gpio.HIGH)
?
              GPIO.output(7,GPIO.LOW) #LED1點(diǎn)亮
+
gpio.write(fangxiangA, gpio.LOW)
?
        if GPIO.input(9): #當(dāng)SW2開(kāi)關(guān)斷開(kāi)
+
gpio.write(shinengB, gpio.HIGH)
?
              GPIO.output(25,GPIO.HIGH) #電機(jī)正轉(zhuǎn)
+
gpio.write(fangxiangB, gpio.HIGH)
?
              GPIO.output(4,GPIO.HIGH) #電機(jī)正轉(zhuǎn)
+
print "zuozhuan"
?
              GPIO.output(8,GPIO.HIGH) #LED2熄滅
+
time.sleep(1)
?
        else:
+
 
?
              GPIO.output(25,GPIO.LOW) #點(diǎn)擊反轉(zhuǎn)
+
def youzhuan()
?
              GPIO.output(4,GPIO.LOW) #點(diǎn)擊反轉(zhuǎn)
+
gpio.write(shinengA, gpio.HIGH)
?
              GPIO.output(8,GPIO.LOW) #LED2點(diǎn)亮
+
gpio.write(fangxiangA, gpio.HIGH)
?
        print"Distance:%0.2fm"%checkdist() #獲取超聲波傳感器距離并打印顯示
+
gpio.write(shinengB, gpio.HIGH)
?
        time.sleep(0.01) #延時(shí)0.01秒
+
gpio.write(fangxiangB, gpio.LOW)
?
except KeyboardInterrupt:
+
print "youzhuan"
?
    GPIO.cleanup() #釋放GPIO            
+
time.sleep(1)
 +
 
 +
def tingzhi()
 +
gpio.write(shinengA, gpio.LOW)
 +
gpio.write(fangxiangA, gpio.LOW)
 +
gpio.write(shinengB, gpio.LOW)
 +
gpio.write(fangxiangB, gpio.HIGH)
 +
print "tingzhi"
 +
time.sleep(1)
 +
def main:
 +
qianjin()
 +
time.sleep(1)
 +
tingzhi()
 +
time.sleep(0.5)
 +
houtui()
 +
time.sleep(1)
 +
tingzhi()
 +
time.sleep(0.5)
 +
zuozhuan()
 +
time.sleep(1)
 +
tingzhi()
 +
time.sleep(0.5)
 +
youzhaun()
 +
time.sleep(1)
 +
tingzhi()
 +
time.sleep(0.5)
 +
 +
if __name__ == "__main__":
 +
main()             
 
</pre>
 
</pre>
 +
 
==產(chǎn)品相關(guān)推薦==
 
==產(chǎn)品相關(guān)推薦==
 
[[文件:erweima.png|230px|無(wú)框|右]]
 
[[文件:erweima.png|230px|無(wú)框|右]]

2016年7月12日 (二) 17:00的版本

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)板接口定義

控制引腳說(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、21、23經(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口使能GPIO17輸出高電平,A口方向GPIO25輸出高電平,A口電機(jī)順時(shí)針旋轉(zhuǎn);
  • A口使能GPIO17輸出高電平,A口方向GPIO25輸出低電平,A口電機(jī)逆時(shí)針旋轉(zhuǎn);
  • A口使能GPIO17輸出低電平,A口電機(jī)停止轉(zhuǎn)動(dòng);
  • B口使能GPIO10輸出高電平,B口方向GPIO4輸出高電平,B口電機(jī)順時(shí)針旋轉(zhuǎn);
  • B口使能GPIO10輸出高電平,B口方向GPIO4輸出低電平,B口電機(jī)逆時(shí)針旋轉(zhuǎn);
  • B口使能GPIO10輸出低電平,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,GPIO 3|SCL),可以擴(kuò)展I2C模塊。
6.UART接口直接連接到樹(shù)莓派的UART引腳(GPIO 14|TX,GPIO 15|RX),可以擴(kuò)展UART模塊。
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。

插接方法

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

基本測(cè)試代碼

import time
import botbook_gpio as gpio

shinengA = 10	# <1>
fangxiangA = 25
shinengB = 17	# <1>
fangxiangB = 4
		
gpio.mode(shinengA, "out")
gpio.mode(shinengB, "out")
gpio.mode(fangxiangA, "out")
gpio.mode(fangxiangB, "out")
	
def qianjin()	
	gpio.write(shinengA, gpio.HIGH)
	gpio.write(fangxiangA, gpio.HIGH)
	gpio.write(shinengB, gpio.HIGH)
	gpio.write(fangxiangB, gpio.HIGH)
	print "qianjin" 
	time.sleep(1)
	
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()
	gpio.write(shinengA, gpio.HIGH)
	gpio.write(fangxiangA, gpio.HIGH)
	gpio.write(shinengB, gpio.HIGH)
	gpio.write(fangxiangB, gpio.LOW)
	print "youzhuan"
	time.sleep(1)	

def tingzhi()
	gpio.write(shinengA, gpio.LOW)
	gpio.write(fangxiangA, gpio.LOW)
	gpio.write(shinengB, gpio.LOW)
	gpio.write(fangxiangB, gpio.HIGH)
	print "tingzhi"
	time.sleep(1)
def main:
	qianjin()
	time.sleep(1)
	tingzhi()
	time.sleep(0.5)
	houtui()
	time.sleep(1)
	tingzhi()
	time.sleep(0.5)
	zuozhuan()
	time.sleep(1)
	tingzhi()
	time.sleep(0.5)
	youzhaun()
	time.sleep(1)
	tingzhi()
	time.sleep(0.5)
	
if __name__ == "__main__":
	main()            

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

Erweima.png

產(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ù)莓派控制器版塊