RPi Motor Driver Board 教程

接口定义

接口wiringPiBCM
M1P2820
M2P2921
PWMAP2526
M3P226
M4P2313
PWMBP2612

其中M1和M2接小车右电机,M3和M4接小车左电机。 PWMA和PWMB为输出使能管脚,高电平有效,可以让M1、M2、M3和M4输出PWM脉冲实现小车调速。

控制原理

M1M2M3M4描述
1010左右电机正转,小车前进
0101左右电机反转,小车后退
0010右电机停止,左电机正转,小车右转
1000左电机停止,右电机正转,小车左转
0000左右电机停止,小车停止

示例程序

我们提供了两个示例程序,一个通过红外控制小车,另外一个通过网页控制并可以通过树莓派摄像头实时监控。(注:本产品不包含小车电机底盘,以及摄像头,需要的用户要另外购买) 从这里下载示例程序。需要解压并放在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 终端,在终端执行以下命令。

  1. sudo apt-get install p7zip
  2. wget http://{{SERVERNAME}}/w/upload/9/96/RPi-Motor-Driver-Board-Demo-Code.tar.gz
  3. tar xzvf RPi-Motor-Driver-Board-Demo-Code.tar.gz
  4. sudo chmod 777 -R RPi-Motor-Driver-Board-Demo-Code
  5. cd ~/RPi-Motor-Driver-Board-Demo-Code/python
  6. sudo python motor.py

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

TAG: 树莓派5 1.47寸LCD AXS5106L触摸JD9853显示屏172x320适用于Arduino/树莓派/Pico/ESP32 ESP32-S3开发板3.16寸LCD显示屏 SD卡槽 320×820 RGB LED ST7701 QMI8658六轴加速度陀螺仪 教程 激光雷8m测距 ESP32-S3 1.69寸圆角LCD显示屏陀螺仪QMI8658传感器适用于Arduino ESP32-S3 2.1寸LCD ESP32-S3开发板1.3寸LCD显示屏SD卡槽QMI8658 6轴LVGL兼容Arduino 5G转千兆以太网 树莓派5 PCIE转M.2 NVME双SSD固态硬盘2CH-M.2-HAT+扩展板Pi5 UGV Beast越野【履带】AI机器人小车OpenCV云台适用于Jetson Orin 树莓派5.5寸2K显示屏MIPI转兼容HDMI口电容触摸屏1440×2560电脑副屏教程 磁编码器舵机 RISC-V 1.83寸LCD触摸显示屏240×280 NV3030B Arduino 树莓派 ESP32 Pico STM32 SC总线舵机驱动板 ESP32 0.85寸LCD RoArm-M2-S Python HTTP请求通信 ESP32 S3 ESP32-S3 ETH Cam以太网开发板PoE SD摄像头兼容树莓派Pico尺寸