树莓派电机驱动板Motor Driver HAT使用教程

提供树莓派与Jetson nano控制程序

硬件说明

特点

  • 基于树莓派接口设计,适用于Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+
  • I2C接口控制,通过改变5个地址跳线可以同时接多达32个模块
  • 板载PCA9685芯片,可输出12位硬件PWM控制电机转速
  • 板载TB6612FNG双H桥电机驱动芯片,工作高效,不易发热
  • 板载5V稳压芯片,输出可达3A电流,可通过VIN端子接入电池供电
  • 预留I2C控制接口,方便接入其他主控板

实物



标号描述
5V5V电源
3V33.3V电源
GND电源地
SDAI2C数据线
SCLI2C时钟线
VIN电机驱动电压(6-12V)
A1电机A正极
A2电机A负极
B1电机B正极
B2电机B负极

资源介绍

电源



输入端采用MP1584稳压芯片,该芯片支持4.5V到28V的宽电压输入,输出电流达3A。虽然芯片支持最高28V的输入,但是由于给电机的工作电压也由VIN_USER供给,实际上输入电压最好保持在6-12V.
MP1584稳压芯片输出5V,这个5V用于给树莓派供电,然后5V再通过RT9193-33转成3.3V电平,该电平给PWM、电机驱动这两部分提供逻辑电压

PWM

由于树莓派硬件PWM只有一个引脚GPIO.1,而且,虽然wiringPi库与python都有软件PWM,但是会占用部分CPU资源,因此本模块采用PCA9685芯片,该芯片使用I2C控制,可输出16路12位分辨率的PWM,可控制输出频率40HZ-1000HZ。
操作简单,只需要给芯片控制对应寄存器的值,即可一直输出PWM信号。



根据上面的原理图,我们可以看出LED0-LED5为控制电机驱动芯片管脚。
A0-A4是控制PCA9685的从设备地址;
查看数据手册page6 – page8可知:



I2C从设备地址有7位,加上1位读写位,最高位固定为1,A5-A0可以通过硬件引脚配置。
在此模块中,默认A5接至地,可通过焊接或移除A0-A4电阻,来控制设备地址,焊接电阻为位1,不焊接为位0,I2C设备地址设置范围为:0x40到0x5F



电机驱动



TB6612FNG是一款双H桥电机驱动芯片,工作高效,不易发热。
VIN_USER为输入电压,理论上该电压越大电机的转速也越快,建议输入控制在6-12V。
其中PWMA与PWMB为控制两个电机的转速,AIN1与AIN2、BIN1与BIN2分别控制两个电机的旋转方向。
A1与A2、B1与B2分别接两个电机的正负极。

树莓派

打开I2C接口

在终端执行:

  1. sudo raspi-config
  2. 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动



然后重启树莓派:

  1. sudo reboot

安装库

  • 安装BCM2835, 打开树莓派终端,并运行以下指令
  1. wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
  2. tar zxvf bcm2835-1.60.tar.gz
  3. cd bcm2835-1.60/
  4. sudo ./configure && sudo make && sudo make check && sudo make install
  5. # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
  • 安装wiringPi
  1. sudo apt-get install wiringpi
  2. #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
  3. wget https://project-downloads.drogon.net/wiringpi-latest.deb
  4. sudo dpkg -i wiringpi-latest.deb
  5. gpio -v
  6. # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
  • python
  1. sudo apt-get updata
  2. sudo apt-get install python-pip
  3. sudo pip install RPi.GPIO
  4. sudo apt-get install python-smbus

下载示例程序,并解压到指定目录

  1. sudo apt-get install p7zip
  2. wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z
  3. 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code
  4. sudo chmod 777 -R Motor_Driver_HAT_Code
  5. cd Motor_Driver_HAT_Code/Raspberry\ Pi/

运行测试例程

  • BCM2835
  1. cd bcm2835/
  2. make clean
  3. make
  4. sudo ./motor
  • wiringPi
  1. cd wiringpi/
  2. make clean
  3. make
  4. sudo ./motor
  • python
  1. cd python/
  2. sudo python main.py

Jetson Nano

安装库

安装函数库

  • 打开终端界面,输入以下指令安装相应的函数库
  1. sudo apt-get update
  2. sudo apt-get install python3-pip
  3. sudo pip3 install Jetson.GPIO
  4. sudo groupadd -f -r gpio
  5. sudo usermod -a -G gpio your_user_name
  6. sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/
  7. sudo udevadm control --reload-rules && sudo udevadm trigger

【注意】your_user_name 是你使用的用户名,比如说 waveshare

  • 安装I2C
  1. sudo apt-get install python-smbus
  • 安装图像处理库:
  1. sudo apt-get install python3-pil
  2. sudo apt-get install python3-numpy

下载示例程序,并解压到指定目录

  1. sudo apt-get install p7zip
  2. wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z
  3. 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code
  4. sudo chmod 777 -R Motor_Driver_HAT_Code
  5. cd Motor_Driver_HAT_Code/Jetson\ Nano/

运行测试例程

  • python2
  1. cd python2/
  2. sudo python main.py
  • python3
  1. cd python3/
  2. sudo python3 main.py
TAG: 树莓派RP2040 ST7789 ESP32 2寸LCD电容触摸显示屏ST7789适用于Arduino/树莓派/Pico 三连屏扩展板 2寸LCD主屏IPS屏 0.96寸蓝色OLED双副屏 适用于树莓派 树莓派机器人驱动板 DeepsSeek人工智能语音聊天机器人 EPS32 S3 树莓派PICO下载器 ESP32直驱伺服轮毂电机WIFI驱动板DDSM ESP DDSM400支持树莓派 树莓派12.3寸 Type C LCD显示屏HDMI触摸1920x720迷你PC电脑副屏教程 摄像头 电纸标签 电脑MK10机械键盘 AI小智 屏幕自定义键盘 语音0.85寸LCD显示2.01副屏 Deepseek ESP32-S3工业级8路继电器WiFi蓝牙网口ETH物联网RS485 RJ45 POE 树莓派5 PCIE转M.2 NVME SSD固态硬盘扩展板适用于Argon NEO 5外壳(不含) NVIDIA Jetson Orin Nano/NX PoE供电RJ45以太网迷你扩展板 Arducam 64MP Camera X873 树莓派4 USB转M.2 NVME SSD NAS固态存储扩展 支持硬盘启动 1.5寸LCD显示屏 ESP32 C3 WiFi 蓝牙开发板GPIO布局兼容树莓派PICO适用于Arduino IDE ESP-NOW ESP32谷歌恐龙小游戏代码