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

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
?測(cè)試代碼
?基本測(cè)試代碼
第40行: 第40行:
 
[[文件:rb01c07303.png|500px|有框|居中|與樹莓派控制器的完美配合]]
 
[[文件:rb01c07303.png|500px|有框|居中|與樹莓派控制器的完美配合]]
 
===基本測(cè)試代碼===
 
===基本測(cè)試代碼===
 +
* [https://www.jianguoyun.com/p/DYvwt5IQ59D4BRiO0hc 示例程序下載]
 +
需要將下載的示例程序復(fù)制到樹莓派的 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ǔ)教程匯總]
 +
* 注意程序中我們使用了一個(gè)庫(kù)文件"botbook_gpio",庫(kù)文件可以直接從上面的例子程序下載中獲取到,如果不使用庫(kù)文件或者庫(kù)文件和程序文件不是在同一個(gè)目錄下,會(huì)造成程序執(zhí)行失敗。
 +
 
<pre style='color:blue'>
 
<pre style='color:blue'>
 
import time
 
import time
第114行: 第119行:
 
main()             
 
main()             
 
</pre>
 
</pre>
 +
===代碼功能===
 +
代碼使用樹莓派執(zhí)行后,小車實(shí)現(xiàn)前后左右的運(yùn)動(dòng)。
 +
 +
===超聲波測(cè)試?yán)?==
 +
* [https://www.jianguoyun.com/p/DUaOT54Q59D4BRiT0hc 示例程序下載]
 +
需要將下載的示例程序復(fù)制到樹莓派的 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ǔ)教程匯總]
 +
* 注意程序中我們使用了一個(gè)庫(kù)文件"botbook_gpio",庫(kù)文件可以直接從上面的例子程序下載中獲取到,如果不使用庫(kù)文件或者庫(kù)文件和程序文件不是在同一個(gè)目錄下,會(huì)造成程序執(zhí)行失敗。
 +
 +
<pre style='color:blue'>
 +
import time
 +
import botbook_gpio as gpio
 +
 +
def readDistanceCm():
 +
triggerPin = 23 # <1>
 +
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() # <2>
 +
print "Distance is %.2f cm" % d
 +
time.sleep(0.5)
 +
 +
if __name__ == "__main__":
 +
main()
 +
 +
</pre>
 +
 +
===程序效果===
 +
程序執(zhí)行后,在 Putty 的登錄窗口會(huì)持續(xù)顯示出當(dāng)前超聲波檢測(cè)的前方障礙物距離,單位"cm",如果要退出程序,可以使用“Ctrl + C”組合鍵。
  
 
==產(chǎn)品相關(guān)推薦==
 
==產(chǎn)品相關(guān)推薦==

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

Rb01c07301.png

目錄

產(chǎn)品概述

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

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

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

使用方法

接口示意圖

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

控制引腳說(shuō)明

1.電源輸入端接入7—12V直流電源,電機(jī)驅(qū)動(dòng)板會(huì)給樹莓派提供5V電源,所以樹莓派插接電機(jī)驅(qū)動(dòng)板后,只需給驅(qū)動(dòng)板進(jìn)行供電而樹莓派無(wú)需額外的電源。
2.板載LED1、LED2,對(duì)外接口OC1、OC2分別是樹莓派的GPIO7、8、21、23經(jīng)過(guò)74HC14D反相器的輸出端,OC1、OC2分別連接一個(gè)LED模塊,使用樹莓派的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,使用樹莓派控制引腳可以進(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ò)限流電阻后直接連接在樹莓派的GPIO 11、9.在SW1、GND之間和SWD、GND之間,分別連接一個(gè)碰撞開關(guān),GPIO11、9設(shè)置為輸入,默認(rèn)電平為高電平(內(nèi)部有上拉電阻),當(dāng)開關(guān)閉合時(shí),GPIO的電平會(huì)被拉低。
5.I2C接口直接連接到樹莓派的I2C引腳(GPIO2 |SDA,GPIO 3|SCL),可以擴(kuò)展I2C模塊。
6.UART接口直接連接到樹莓派的UART引腳(GPIO 14|TX,GPIO 15|RX),可以擴(kuò)展UART模塊。
7.URF(超聲波接口)的OUTPUT經(jīng)過(guò)分壓直接連接到GPIO18,INPUT直接連接到GPIO23,樹莓派的GPIO 23至高10us以上,然后置低,等待GPIO 18接收到高電平信號(hào)時(shí),高電平結(jié)束時(shí)停止,計(jì)算高電平時(shí)間,所測(cè)量的距離 = 高電平時(shí)間*聲速/2。

插接方法

與樹莓派控制器的完美配合

基本測(cè)試代碼

需要將下載的示例程序復(fù)制到樹莓派的 pi 目錄下,可以使用 putty 登錄到 Raspberry Pi 控制器,輸入命令"cd RB-01C073A Raspberry Pi Motor Driver"進(jìn)入程序目錄,然后輸入"sudo python dianji1.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

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()            

代碼功能

代碼使用樹莓派執(zhí)行后,小車實(shí)現(xiàn)前后左右的運(yùn)動(dòng)。

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

需要將下載的示例程序復(fù)制到樹莓派的 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	# <1>
	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()	# <2>
		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)品購(gòu)買地址

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

周邊產(chǎn)品推薦

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

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

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

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

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