“SKU:RB-01C073A 树莓派电机驱动板”的版本间的差异

来自ALSROBOT WiKi
跳转至: 导航搜索
接口示意图
接口示意图
第16行: 第16行:
 
==使用方法==
 
==使用方法==
 
===接口示意图===
 
===接口示意图===
[[文件:rb01c07302.png|700px|有框|居左|树莓派驱动板接口定义]]
+
[[文件:rb01c07302.png|700px|有框|居中|树莓派驱动板接口定义]]
[[文件:RaspberryDrive.png|700px|有框|居右|树莓派驱动板接口定义]] <br/>
+
[[文件:RaspberryDrive.png|700px|有框|居中|树莓派驱动板接口定义]] <br/>
  
 
===控制引脚说明===
 
===控制引脚说明===

2016年8月16日 (二) 17:11的版本

Rb01c07301.png

目录

产品概述

新版树莓派电机驱动板采用的电路和接口设计,版型符合树莓派2代的设计,与树莓派完美结合。供电电源采用LM2596开关稳压电源,具有更高效率,更大输出电流,更低的发热量等特点。电机驱动板新品采用L293D,更小的封装尺寸,更合理的电路设计。对外接口方面,采用了奥松新一代防插反接口,和奥松的系列传感器模块匹配,更可以直接安装URF02超声波传感器和蓝牙模块,制作树莓派小车更加方便、简洁。如果您想制作树莓派小车,无需东奔西走,奥松机器人配套全都有!

规格参数

1.电机驱动输出接口:双路双向直流电机驱动
2.电源输出接口:7~12V DC
3.OC输出接口:两路集电极开路输出(25mA,5V电平)
4.板载指示灯:两个可编程控制LED发光二极管
5.开关量接口:两路开关量输入/输出(3.3V电平)
6.UART接口:3.3V电平6Pin串行接口,可直接连接蓝牙模块
7.I2C接口:5V电平I2C接口,可驳接各类I2C接口模块
8.超声波模块接口:可直接连接URF02超声波模块
9.树莓派接口:支持树莓派、树莓派B+、树莓派2等
10.外形尺寸:56*40mm

使用方法

接口示意图

树莓派驱动板接口定义
树莓派驱动板接口定义

控制引脚说明

1.电源输入端接入7—12V直流电源,电机驱动板会给树莓派提供5V电源,所以树莓派插接电机驱动板后,只需给驱动板进行供电而树莓派无需额外的电源。
2.板载LED1、LED2,对外接口OC1、OC2分别是树莓派的GPIO7、8、21、23经过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口使能GPIO17输出高电平,A口方向GPIO25输出高电平,A口电机顺时针旋转;
  • A口使能GPIO17输出高电平,A口方向GPIO25输出低电平,A口电机逆时针旋转;
  • A口使能GPIO17输出低电平,A口电机停止转动;
  • B口使能GPIO10输出高电平,B口方向GPIO4输出高电平,B口电机顺时针旋转;
  • B口使能GPIO10输出高电平,B口方向GPIO4输出低电平,B口电机逆时针旋转;
  • B口使能GPIO10输出低电平,B口电机停止转动;

4.SW1、SW2接口经过限流电阻后直接连接在树莓派的GPIO 11、9.在SW1、GND之间和SWD、GND之间,分别连接一个碰撞开关,GPIO11、9设置为输入,默认电平为高电平(内部有上拉电阻),当开关闭合时,GPIO的电平会被拉低。
5.I2C接口直接连接到树莓派的I2C引脚(GPIO2 |SDA,GPIO 3|SCL),可以扩展I2C模块。
6.UART接口直接连接到树莓派的UART引脚(GPIO 14|TX,GPIO 15|RX),可以扩展UART模块。
7.URF(超声波接口)的OUTPUT经过分压直接连接到GPIO18,INPUT直接连接到GPIO23,树莓派的GPIO 23至高10us以上,然后置低,等待GPIO 18接收到高电平信号时,高电平结束时停止,计算高电平时间,所测量的距离 = 高电平时间*声速/2。

插接方法

与树莓派控制器的完美配合

基本测试代码

需要将下载的示例程序复制到树莓派的 pi 目录下,可以使用 putty 登录到 Raspberry Pi 控制器,输入命令"cd RB-01C073A Raspberry Pi Motor Driver"进入程序目录,然后输入"sudo python dianji1.py"命令来执行程序。

  • 使用 Putty 登录到 Raspberry Pi 方法可以参考:Raspberry Pi 基础教程汇总
  • 注意程序中我们使用了一个库文件"botbook_gpio",库文件可以直接从上面的例子程序下载中获取到,如果不使用库文件或者库文件和程序文件不是在同一个目录下,会造成程序执行失败。
import time
import botbook_gpio as gpio

shinengA = 10	
fangxiangA = 25
shinengB = 17	
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)
	youzhuan()
	time.sleep(1)
	tingzhi()
	time.sleep(0.5)
	
if __name__ == "__main__":
	main()

代码功能

代码使用树莓派执行后,小车实现前后左右的运动。

超声波测试例程

需要将下载的示例程序复制到树莓派的 pi 目录下,可以使用 putty 登录到 Raspberry Pi 控制器,输入命令"cd RB-01C073A Raspberry Pi Motor Driver URF02"进入程序目录,然后输入"sudo python URF02.py"命令来执行程序。

  • 使用 Putty 登录到 Raspberry Pi 方法可以参考:Raspberry Pi 基础教程汇总
  • 注意程序中我们使用了一个库文件"botbook_gpio",库文件可以直接从上面的例子程序下载中获取到,如果不使用库文件或者库文件和程序文件不是在同一个目录下,会造成程序执行失败。
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()

程序效果

程序执行后,在 Putty 的登录窗口会持续显示出当前超声波检测的前方障碍物距离,单位"cm",如果要退出程序,可以使用“Ctrl + C”组合键。

产品相关推荐

Erweima.png

产品购买地址

树莓派电机驱动板

周边产品推荐

URF02超声波传感器
无线蓝牙模块
树莓派二代控制器

相关问题解答

新买的树莓派2,HDMI无信号,ACT灯常亮
Raspberry Pi 常见问题的解决方法

相关学习资料

玩转树莓派系列视频教程(一)
玩转树莓派系列视频教程(二)
玩转树莓派系列视频教程(三)
玩转树莓派系列视频教程(四)
玩转树莓派系列视频教程(五)
树莓派新手教程三---使用raspi-config工具配置树莓派
树莓派新手教程二---如何安装和启动你的树莓派!
奥松机器人技术论坛树莓派控制器版块