SKU:RB-01C073A 樹莓派電機驅動板

來自ALSROBOT WiKi
2022年7月14日 (四) 16:54Zhangxin討論 | 貢獻的版本

(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉至: 導航、 搜索
Rb01c07301.png

目錄

產品概述

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

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

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

使用方法

接口示意圖

樹莓派驅動板接口定義
樹莓派驅動板GPIO接口

控制引腳說明

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

  • A 口使能 GPIO10 輸出高電平,A 口方向 GPIO25 輸出高電平,A口電機順時針旋轉;
  • A 口使能 GPIO10 輸出高電平,A 口方向 GPIO25 輸出低電平,A口電機逆時針旋轉;
  • A 口使能 GPIO10 輸出低電平,A 口電機停止轉動;
  • B 口使能 GPIO17 輸出高電平,B 口方向 GPIO4 輸出高電平,B口電機順時針旋轉;
  • B 口使能 GPIO17 輸出高電平,B 口方向 GPIO4 輸出低電平,B口電機逆時針旋轉;
  • B 口使能 GPIO17 輸出低電平,B 口電機停止轉動;

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

插接方法

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

基本測試代碼

  • 需要在樹莓派中新建一個 python 程序文件,然后將代碼復制到文件中,保存,但是一定要注意保存的目錄是需要記住的。
  • 使用 Putty 登錄到 Raspberry Pi 方法可以參考:Raspberry Pi 基礎教程匯總
#!/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()

代碼功能

此代碼主要為了功能測試,在代碼上傳后 LED2 亮起,如果 OC2 外接一個 LED ,也會亮起,電機不會轉動。
按下 SW1 外接的按鍵或者 SW2 外接的按鍵,LED2 熄滅,如果 OC2 外接一個 LED ,也會熄滅。LED1 亮起,如果 OC1 外接一個 LED ,也會亮起。

超聲波測試例程

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

  • 使用 Putty 登錄到 Raspberry Pi 方法可以參考:Raspberry Pi 基礎教程匯總
  • 注意程序中我們使用了一個庫文件"botbook_gpio",庫文件可以直接從上面的例子程序下載中獲取到,如果不使用庫文件或者庫文件和程序文件不是在同一個目錄下,會造成程序執(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 的登錄窗口會持續(xù)顯示出當前超聲波檢測的前方障礙物距離,單位"cm",如果要退出程序,可以使用“Ctrl + C”組合鍵。


產品相關推薦

Erweima.png

產品資料

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

產品購買地址

樹莓派電機驅動板

周邊產品推薦

URF02超聲波傳感器
無線藍牙模塊
樹莓派二代控制器

相關問題解答

新買的樹莓派2,HDMI無信號,ACT燈常亮
Raspberry Pi 常見問題的解決方法

相關學習資料

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