RPi Motor Driver Board

RPi Motor Driver Board
RPi Motor Driver Board
{{{name2}}}
{{{name3}}}
基本信息
分类: 树莓派扩展板
功能: Raspberry Pi电机驱动板
{{{userDefinedInfo1}}}: {{{userdefinedvalue1}}}
{{{userDefinedInfo2}}}: {{{userdefinedvalue2}}}
{{{userDefinedInfo3}}}: {{{userdefinedvalue3}}}
{{{userDefinedInfo4}}}: {{{userdefinedvalue4}}}
{{{userDefinedInfo5}}}: {{{userdefinedvalue5}}}
{{{userDefinedInfo6}}}: {{{userdefinedvalue6}}}
品牌: Waveshare
板载接口
RPi
相关产品
♦ {{{Product1}}}
♦ {{{Product2}}}
♦ {{{Product3}}}
♦ {{{Product4}}}
套餐模块

目录

接口定义

接口 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 协议编码说明

RPi-Motor-Driver-Board-Manual-5.png

Data格式:依次发送 Address, ~(Address), Command, ~(Command)

Address:地址码,~(Address):地址码按位取反,Command:命令,~(Command):命令按位取反。地址码、命令都是8位,所以一个完整信号共32位。

本示例程序基于Python函数库,该库已经预装在最新版本的Raspbian系统中。如果你的树莓派运行程序出错的话,那么需要手动安装Python函数库,如果依然无法执行程序,那么请尝试使用chmod +x filename 命令给程序赋予可执行权限。

进入 Linux 终端,在终端执行以下命令。

cd ~/RPi-Motor-Driver-Board-Demo-Code/python
sudo python motor.py

预期结果:按下红外遥控器的数字键控制小车。2,8,4,6,5分别代表前进,后退,左转,右转,停止。按-或+可调节速度。(注:不同的红外遥控器可能按键编码不一样,如果不一样需相应修改程序)

通过网页遥控小车

本实验通过webiopi实现远程遥控,通过mjpg-streamer软件实时显示摄像头拍摄图片。部分浏览器可能不能正常显示,建议使用谷歌浏览器或火狐浏览器。

第一步,安装webiopi

cd ~/RPi-Motor-Driver-Board-Demo-Code/WebIOPi-0.7.1-raspi2
sudo ./setup.sh

验证是否安装成功:执行webiopi –h,如果出现以下界面,说明库安装成功。

RPi-Motor-Driver-Board-Manual-1.png

终端执行:

pi@raspberrypi ~ $ sudo webiopi -d -c /etc/webiopi/config

然后在电脑端或者手机端打开网页浏览器,在地址栏内输入树莓派ip地址,端口号8000。例如:http://192.168.1.16:8000(根据实际情况填入)。在登录网站时,需要输入账号和密码,默认的账号和密码分别是:webiopi和raspberry。如果进入WebIOPi Main Menu页面,说明环境配置成功了:

RPi-Motor-Driver-Board-Manual-2.png

终端按下 Ctrl + C 可以结束进程。

第二步,安装mjpg-streamer

这部分为小车增加摄像头功能,需树莓派接上摄像头。如不需要则这部分可跳过。

a) 使用摄像头前必须运行raspi-config命令启用摄像头:

sudo raspi-config

选择Enable Camera。

b) 如果是使用CSI接口的摄像头,那么系统找不到/dev/video0的设备节点。需要在/etc/modules文件中添加一行bcm2835-v4l2:

sudo nano /etc/modules

加上:

bcm2835-v4l2

c) 那么系统启动之后,系统会加载这个文件中的模块名。重启系统后会在/dev下面发现video0设备节点。(bcm2835-v4l2中的l为L的小写,不是1)

d) 安装依赖库:

pi@raspberrypi:~ $ sudo apt-get install libv4l-dev libjpeg8-dev
pi@raspberrypi:~ $ sudo apt-get install subversion

e) 编译程序:

cd ~/RPi-Motor-Driver-Board-Demo-Code/mjpg-streamer/
make USE_LIBV4L2=true clear all

如果提示:make: *** No rule to make target 'clear'. Stop. 请忽略这个警告。

f) 若编译报错,请尝试修改mjpg-streamer/plugins/input_uvc/input_uvc.c文件, 将V4L2_PIX_FMT_MJPEG 改成 V4L2_PIX_FMT_YUYV

g) 开启mjpg-streamer:

sudo ./start.sh

然后在浏览器地址栏内输入树莓派ip地址,端口号8080,注意这里的端口号是8080,和之前的端口号(8000)是不同的。页面会显示关于M-JPEG streamer的信息。点击Stream会实时显示摄像头拍摄的内容。

RPi-Motor-Driver-Board-Manual-3.png

虽然终端按下 Ctrl + C 可以结束进程,但是请不要结束这个进程,因为后面还需要用到。

第三步,运行软件

请不要结束上一步的进程,而是重新开启一个终端。

进入magpi-cambot目录,这个目录同时也是小车控制源码所在的目录。

cd ~/RPi-Motor-Driver-Board-Demo-Code/magpi-cambot

修改index.html文件:

sudo nano index.html

根据树莓派的实际ip,修改这个html标签:

<img width="320" height="240" src="http://192.168.1.16:8080/?action=stream">

其中,src后面的地址填入树莓派的ip地址(这里是192.168.1.16),端口号指定为8080(stream的端口)。

启动树莓派摄像头小车程序:

cd ~/RPi-Motor-Driver-Board-Demo-Code/magpi-cambot
sudo webiopi -d -c config

然后在浏览器地址栏内输入树莓派ip地址,端口号8000(注意这里的端口号不是8080)。

网页上会显示摄像头捕获的画面,点击图标可以控制小车转向。

RPi-Motor-Driver-Board-Manual-4.png

如果没有出现这个页面,建议使用Chrome或者Firefox浏览器。此外还要确保树莓派的当前目录为: ~/RPi-Motor-Driver-Board-Demo-Code/magpi-cambot 这个目录下有一个index.html文件,然后再执行:

sudo webiopi -d -c config
这样客户端的浏览器才能进入index.html,否则会进入WebIOPi Main Menu页面。

文档

程序

开发资料

树莓派系列教程
教程名2
  • 列表2
教程名3
  • 列表3
教程名4
  • 列表4
教程名5
  • 列表5
教程名6
  • 列表6


批量下载教程——请戳Download-icon.png

Mail.png 创客、技术牛、腹愁者,使命召唤


身为创客的你,基于我们的产品,做了些屌炸天的东西出来,居然没人知道?
人世间最得意的事,就是写教程,做笔记;拍视频,赚外快... ...



QQ:2853908288
EMAIL:2853908288@qq.com
电话:0755-83040712

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证。
Phone-wiki.png
手机百科