RPi Motor Driver Board
来自丢石头百科
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
接口定义
接口 | wiringPi | BCM |
---|---|---|
M1 | P28 | 20 |
M2 | P29 | 21 |
PWMA | P25 | 26 |
M3 | P22 | 6 |
M4 | P23 | 13 |
PWMB | P26 | 12 |
其中M1和M2接小车右电机,M3和M4接小车左电机。 PWMA和PWMB为输出使能管脚,高电平有效,可以让M1、M2、M3和M4输出PWM脉冲实现小车调速。
控制原理
M1 | M2 | M3 | M4 | 描述 |
---|---|---|---|---|
1 | 0 | 1 | 0 | 左右电机正转,小车前进 |
0 | 1 | 0 | 1 | 左右电机反转,小车后退 |
0 | 0 | 1 | 0 | 右电机停止,左电机正转,小车右转 |
1 | 0 | 0 | 0 | 左电机停止,右电机正转,小车左转 |
0 | 0 | 0 | 0 | 左右电机停止,小车停止 |
示例程序
我们提供了两个示例程序,一个通过红外控制小车,另外一个通过网页控制并可以通过树莓派摄像头实时监控。(注:本产品不包含小车电机底盘,以及摄像头,需要的用户要另外购买) 从这里下载示例程序。需要解压并放在Raspbian系统的/home/pi目录下。(可以通过 U 盘把它们复制到树莓派中)。
通过红外遥控小车
本实验通过红外遥控器实现远程遥控。红外遥控器输出的脉冲信号遵循标准的NEC编码协议。红外接收器接收到信号之后,会把脉冲输出到主控(BCM)芯片的18管脚。树莓派读取18管脚的脉冲信号之后进行解码,然后控制对应的电机。详情请参见程序源代码。
红外 NEC 协议编码说明
Data格式:依次发送 Address, ~(Address), Command, ~(Command)
Address:地址码,~(Address):地址码按位取反,Command:命令,~(Command):命令按位取反。地址码、命令都是8位,所以一个完整信号共32位。
本示例程序基于Python函数库,该库已经预装在最新版本的Raspbian系统中。如果你的树莓派运行程序出错的话,那么需要手动安装Python函数库,如果依然无法执行程序,那么请尝试使用chmod +x filename 命令给程序赋予可执行权限。
进入 Linux 终端,在终端执行以下命令。
sudo apt-get install p7zip wget http://wiki.diustou.com/w/upload/9/96/RPi-Motor-Driver-Board-Demo-Code.tar.gz tar xzvf RPi-Motor-Driver-Board-Demo-Code.tar.gz sudo chmod 777 -R RPi-Motor-Driver-Board-Demo-Code cd ~/RPi-Motor-Driver-Board-Demo-Code/python sudo python motor.py预期结果:按下红外遥控器的数字键控制小车。2,8,4,6,5分别代表前进,后退,左转,右转,停止。按-或+可调节速度。(注:不同的红外遥控器可能按键编码不一样,如果不一样需相应修改程序)
文档
程序
开发资料
- 树莓派系列教程:人生若只如初见
- 树莓派系列教程:烧写镜像
- 树莓派系列教程:远程登录树莓派(SSH登陆/远程桌面登陆/串口登陆)
- 树莓派系列教程:更换软件源
- 树莓派系列教程:访问树莓派
- 树莓派系列教程:配置WiFi
- 树莓派系列教程:系统配置(raspi-config)
- 树莓派系列教程:中文输入法
- 树莓派系列教程:摄像头
- 树莓派系列教程:Linux常用命令以及vi/vim编辑器
- 树莓派系列教程:文件共享(samba)
- 树莓派系列教程:wiringPi、bcm2835、python库安装
- 树莓派系列教程:如何点亮一个LED灯(上)
- 树莓派系列教程:如何点亮一个LED灯(下)
- 树莓派系列教程:按键
- 树莓派系列教程:I2C
- 树莓派系列教程:I2C编程
- 树莓派系列教程:I2C总线控制BMP180
- 树莓派系列教程:Serial串口
- 树莓派系列教程:红外遥控
- 树莓派系列教程:RTC
- 树莓派系列教程:PCF8591 AD/DA
- 树莓派系列教程:SPI
- 树莓派系列教程:物联网之MQTT
- Alphabot树莓派教程:变身路由器
- Alphabot树莓派教程:刷LEDE(OpenWRT)系统变身路由器
- 树莓派引脚对照表
- SIM868 ppp拨号上网