“Motor Driver HAT”的版本间的差异
Waveshare-eng11(讨论 | 贡献) (→文档) |
|||
(未显示7个用户的38个中间版本) | |||
第1行: | 第1行: | ||
+ | <div class="wiki-pages blue-color"> | ||
+ | <div class="tabberlive newwsnav" id="wsnavbar"> | ||
+ | <ul class="tabbernav"> | ||
+ | <li class="nav-link">[[#myintro|说明]]</li> | ||
+ | <li class="nav-link">[[#myresources|资料]]</li> | ||
+ | <li class="nav-link">[[#myfaq|FAQ]]</li> | ||
+ | <li class="nav-link">[[#mysupport|售后]]</li> | ||
+ | </ul> | ||
+ | </div> | ||
<div class="tabber"> | <div class="tabber"> | ||
− | |||
− | |||
{{扩展板|colorscheme=blue | {{扩展板|colorscheme=blue | ||
|name = Motor Driver HAT | |name = Motor Driver HAT | ||
− | |img = [[File:Motor-Driver-HAT-intro.jpg|360px |alt=Motor Driver HAT|link= | + | |img = [[File:Motor-Driver-HAT-intro.jpg|360px |alt=Motor Driver HAT|link=https://{{SERVERNAME}}/shop/Motor-Driver-HAT.htm | Motor Driver HAT]] |
|category1=树莓派 | |category1=树莓派 | ||
|brand=Waveshare | |brand=Waveshare | ||
第11行: | 第18行: | ||
|interface2 = I2C | |interface2 = I2C | ||
}} | }} | ||
+ | |||
+ | <div class="tabbertab" title="说明" id="myintro"> | ||
+ | |||
+ | <h1>说明</h1> | ||
+ | |||
+ | '''提供树莓派与Jetson nano控制程序 | ||
+ | =硬件说明= | ||
+ | ==特点== | ||
+ | *基于树莓派接口设计,适用于Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+ | ||
+ | *I2C接口控制,通过改变5个地址跳线可以同时接多达32个模块 | ||
+ | *板载PCA9685芯片,可输出12位硬件PWM控制电机转速 | ||
+ | *板载TB6612FNG双H桥电机驱动芯片,工作高效,不易发热 | ||
+ | *板载5V稳压芯片,输出可达3A电流,可通过VIN端子接入电池供电 | ||
+ | *预留I2C控制接口,方便接入其他主控板 | ||
+ | ==实物== | ||
+ | [[file:motor_Driver_hat_1.png|800px]]<br /> | ||
+ | {|border=1; style="width:700px;" align="center" | ||
+ | |-style="background:#0000ff; color:white;" align="center" | ||
+ | |标号||描述 | ||
+ | |-align="center" | ||
+ | |5V||5V电源 | ||
+ | |-align="center" | ||
+ | |3V3||3.3V电源 | ||
+ | |-align="center" | ||
+ | |GND||电源地 | ||
+ | |-align="center" | ||
+ | |SDA||I2C数据线 | ||
+ | |-align="center" | ||
+ | |SCL||I2C时钟线 | ||
+ | |-align="center" | ||
+ | |VIN||电机驱动电压(6-12V) | ||
+ | |-align="center" | ||
+ | |A1||电机A正极 | ||
+ | |-align="center" | ||
+ | |A2||电机A负极 | ||
+ | |-align="center" | ||
+ | |B1||电机B正极 | ||
+ | |-align="center" | ||
+ | |B2||电机B负极 | ||
+ | |} | ||
+ | |||
+ | ==资源介绍== | ||
+ | ===电源=== | ||
+ | [[file:motor_Driver_hat_power.png|900px]]<br /> | ||
+ | 输入端采用MP1584稳压芯片,该芯片支持4.5V到28V的宽电压输入,输出电流达3A。虽然芯片支持最高28V的输入,但是由于给电机的工作电压也由VIN_USER供给,实际上输入电压最好保持在6-12V.<br /> | ||
+ | MP1584稳压芯片输出5V,这个5V用于给树莓派供电,然后5V再通过RT9193-33转成3.3V电平,该电平给PWM、电机驱动这两部分提供逻辑电压<br /> | ||
+ | |||
+ | ===PWM=== | ||
+ | 由于树莓派硬件PWM只有一个引脚GPIO.1,而且,虽然wiringPi库与python都有软件PWM,但是会占用部分CPU资源,因此本模块采用PCA9685芯片,该芯片使用I2C控制,可输出16路12位分辨率的PWM,可控制输出频率40HZ-1000HZ。<br /> | ||
+ | 操作简单,只需要给芯片控制对应寄存器的值,即可一直输出PWM信号。<br /> | ||
+ | [[file:motor_Driver_hat_PCA9685.png|900px]]<br /> | ||
+ | 根据上面的原理图,我们可以看出LED0-LED5为控制电机驱动芯片管脚。<br /> | ||
+ | A0-A4是控制PCA9685的从设备地址;<br /> | ||
+ | 查看[https://{{SERVERNAME}}/w/upload/6/68/PCA96_datasheet.pdf 数据手册page6 – page8]可知:<br /> | ||
+ | [[file:motor_Driver_hat_i2caddr.png|900px]]<br /> | ||
+ | I2C从设备地址有7位,加上1位读写位,最高位固定为1,A5-A0可以通过硬件引脚配置。<br /> | ||
+ | 在此模块中,默认A5接至地,可通过焊接或移除A0-A4电阻,来控制设备地址,焊接电阻为位1,不焊接为位0,I2C设备地址设置范围为:0x40到0x5F<br /> | ||
+ | [[file:motor_Driver_hat_i2caddr2.png|900px]]<br /> | ||
+ | |||
+ | ===电机驱动=== | ||
+ | [[file:motor_Driver_hat_TB6612FNG.png|900px]]<br /> | ||
+ | TB6612FNG是一款双H桥电机驱动芯片,工作高效,不易发热。<br /> | ||
+ | VIN_USER为输入电压,理论上该电压越大电机的转速也越快,建议输入控制在6-12V。<br /> | ||
+ | 其中PWMA与PWMB为控制两个电机的转速,AIN1与AIN2、BIN1与BIN2分别控制两个电机的旋转方向。<br /> | ||
+ | A1与A2、B1与B2分别接两个电机的正负极。<br /> | ||
+ | |||
+ | =树莓派= | ||
+ | {{RPI_open_i2c}} | ||
+ | ==安装库== | ||
+ | *安装BCM2835, 打开树莓派终端,并运行以下指令 | ||
+ | <pre> | ||
+ | wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.70.tar.gz | ||
+ | tar zxvf bcm2835-1.70.tar.gz | ||
+ | cd bcm2835-1.70/ | ||
+ | sudo ./configure | ||
+ | sudo make && sudo make check && sudo make install | ||
+ | # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/ | ||
+ | </pre> | ||
+ | |||
+ | *安装wiringPi | ||
+ | <pre> | ||
+ | sudo apt-get install wiringpi | ||
+ | #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级: | ||
+ | wget https://project-downloads.drogon.net/wiringpi-latest.deb | ||
+ | sudo dpkg -i wiringpi-latest.deb | ||
+ | gpio -v | ||
+ | # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错 | ||
+ | </pre> | ||
+ | <!--{{RPI_C_lib}}--> | ||
+ | *安装python2 | ||
+ | <pre> | ||
+ | sudo apt-get updata | ||
+ | sudo apt-get install python-pip | ||
+ | sudo pip install RPi.GPIO | ||
+ | sudo apt-get install python-smbus | ||
+ | </pre> | ||
+ | *安装python3 | ||
+ | <pre> | ||
+ | sudo apt-get update | ||
+ | sudo apt-get install python3-pip | ||
+ | sudo pip3 install RPi.GPIO | ||
+ | sudo apt-get install python3-serial | ||
+ | </pre> | ||
+ | |||
+ | ==下载示例程序,并解压到指定目录== | ||
+ | <pre> | ||
+ | sudo apt-get install p7zip | ||
+ | wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z | ||
+ | 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code | ||
+ | sudo chmod 777 -R Motor_Driver_HAT_Code | ||
+ | cd Motor_Driver_HAT_Code/Raspberry\ Pi/ | ||
+ | </pre> | ||
+ | |||
+ | ==运行测试例程== | ||
+ | *c | ||
+ | <pre> | ||
+ | cd c/ | ||
+ | make clean | ||
+ | make | ||
+ | sudo ./main | ||
+ | </pre> | ||
+ | |||
+ | *python | ||
+ | <pre> | ||
+ | cd python/ | ||
+ | sudo python3 main.py | ||
+ | </pre> | ||
+ | =旭日X3派= | ||
+ | === 安装库文件 === | ||
+ | <pre> | ||
+ | sudo apt update | ||
+ | sudo pip3 install python3-smbus | ||
+ | </pre> | ||
+ | ===下载示例程序,并解压到指定目录=== | ||
+ | <pre> | ||
+ | sudo apt-get install p7zip | ||
+ | wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z | ||
+ | 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code | ||
+ | sudo chmod 777 -R Motor_Driver_HAT_Code | ||
+ | cd Motor_Driver_HAT_Code/Sunrise_X3/python/ | ||
+ | </pre> | ||
+ | ===运行demo=== | ||
+ | <pre> | ||
+ | sudo python3 main.py | ||
+ | </pre> | ||
+ | |||
+ | =VisionFive2= | ||
+ | === 安装库文件 === | ||
+ | apt-get install pip | ||
+ | pip install VisionFive.gpio | ||
+ | apt-get install python3-smbus | ||
+ | ===下载示例程序,并解压到指定目录=== | ||
+ | apt-get install p7zip-full | ||
+ | wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z | ||
+ | 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code | ||
+ | cd Motor_Driver_HAT_Code/VisionFive2/python/ | ||
+ | ===运行demo=== | ||
+ | python3 main.py | ||
+ | |||
+ | |||
+ | =Jetson Nano= | ||
+ | ==安装库== | ||
+ | {{JetsonNano python lib}} | ||
+ | |||
+ | ==下载示例程序,并解压到指定目录== | ||
+ | <pre> | ||
+ | sudo apt-get install p7zip | ||
+ | wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z | ||
+ | 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code | ||
+ | sudo chmod 777 -R Motor_Driver_HAT_Code | ||
+ | cd Motor_Driver_HAT_Code/Jetson\ Nano/ | ||
+ | </pre> | ||
+ | |||
+ | ==运行测试例程== | ||
+ | *python2 | ||
+ | <pre> | ||
+ | cd python2/ | ||
+ | sudo python main.py | ||
+ | </pre> | ||
+ | |||
+ | *python3 | ||
+ | <pre> | ||
+ | cd python3/ | ||
+ | sudo python3 main.py | ||
+ | </pre> | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <div class="tabbertab" title="资料" id="myresources"> | ||
+ | |||
+ | <h1>资料</h1> | ||
+ | |||
===文档=== | ===文档=== | ||
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/a/ab/Motor_Driver_HAT_Schematic.pdf 原理图] |
− | |||
===程序=== | ===程序=== | ||
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/9/9a/Motor_Driver_HAT_Code.7z 示例程序] |
===数据手册=== | ===数据手册=== | ||
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/6/68/PCA96_datasheet.pdf PCA9685] |
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/d/d3/MP1584.pdf MP1584] |
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/f/f6/RT9193.pdf RT9193] |
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/3/36/TB6612FNG_datasheet_zh_cn.pdf TB6612FNG-CN] |
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/6/62/TB6612FNG_datasheet_en.pdf TB6612FNG-EN] |
− | < | + | |
+ | |||
+ | |||
+ | </div> | ||
+ | <div class="tabbertab" title="FAQ" id="myfaq"> | ||
+ | |||
+ | <h1>FAQ</h1> | ||
+ | <br /></div> | ||
+ | <div class="tabbertab" title="售后" id="mysupport"> | ||
+ | |||
+ | <h1>技术支持</h1> | ||
+ | <br />{{Service18}}</div> | ||
</div> | </div> | ||
− | |||
− |
2023年3月9日 (四) 17:50的最新版本
| ||||||||||||||||
| ||||||||||||||||
说明
提供树莓派与Jetson nano控制程序
硬件说明
特点
- 基于树莓派接口设计,适用于Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+
- I2C接口控制,通过改变5个地址跳线可以同时接多达32个模块
- 板载PCA9685芯片,可输出12位硬件PWM控制电机转速
- 板载TB6612FNG双H桥电机驱动芯片,工作高效,不易发热
- 板载5V稳压芯片,输出可达3A电流,可通过VIN端子接入电池供电
- 预留I2C控制接口,方便接入其他主控板
实物
标号 | 描述 |
5V | 5V电源 |
3V3 | 3.3V电源 |
GND | 电源地 |
SDA | I2C数据线 |
SCL | I2C时钟线 |
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接口
- 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
sudo reboot
安装库
- 安装BCM2835, 打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.70.tar.gz tar zxvf bcm2835-1.70.tar.gz cd bcm2835-1.70/ sudo ./configure sudo make && sudo make check && sudo make install # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
- 安装wiringPi
sudo apt-get install wiringpi #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级: wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
- 安装python2
sudo apt-get updata sudo apt-get install python-pip sudo pip install RPi.GPIO sudo apt-get install python-smbus
- 安装python3
sudo apt-get update sudo apt-get install python3-pip sudo pip3 install RPi.GPIO sudo apt-get install python3-serial
下载示例程序,并解压到指定目录
sudo apt-get install p7zip wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code sudo chmod 777 -R Motor_Driver_HAT_Code cd Motor_Driver_HAT_Code/Raspberry\ Pi/
运行测试例程
- c
cd c/ make clean make sudo ./main
- python
cd python/ sudo python3 main.py
旭日X3派
安装库文件
sudo apt update sudo pip3 install python3-smbus
下载示例程序,并解压到指定目录
sudo apt-get install p7zip wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code sudo chmod 777 -R Motor_Driver_HAT_Code cd Motor_Driver_HAT_Code/Sunrise_X3/python/
运行demo
sudo python3 main.py
VisionFive2
安装库文件
apt-get install pip pip install VisionFive.gpio apt-get install python3-smbus
下载示例程序,并解压到指定目录
apt-get install p7zip-full wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code cd Motor_Driver_HAT_Code/VisionFive2/python/
运行demo
python3 main.py
Jetson Nano
安装库
安装函数库
- 打开终端界面,输入以下指令安装相应的函数库
sudo apt-get update sudo apt-get install python3-pip sudo pip3 install Jetson.GPIO sudo groupadd -f -r gpio sudo usermod -a -G gpio your_user_name sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && sudo udevadm trigger
【注意】your_user_name 是你使用的用户名,比如说 waveshare
- 安装I2C
sudo apt-get install python-smbus
- 安装图像处理库:
sudo apt-get install python3-pil sudo apt-get install python3-numpy
下载示例程序,并解压到指定目录
sudo apt-get install p7zip wget http://www.waveshare.net/w/upload/9/9a/Motor_Driver_HAT_Code.7z 7zr x Motor_Driver_HAT_Code.7z -r -o./Motor_Driver_HAT_Code sudo chmod 777 -R Motor_Driver_HAT_Code cd Motor_Driver_HAT_Code/Jetson\ Nano/
运行测试例程
- python2
cd python2/ sudo python main.py
- python3
cd python3/ sudo python3 main.py