提供树莓派与Jetson nano控制程序
标号 | 描述 |
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只有一个引脚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分别接两个电机的正负极。
在终端执行:
- sudo raspi-config
- 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
- sudo reboot
- wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
- tar zxvf bcm2835-1.60.tar.gz
- cd bcm2835-1.60/
- sudo ./configure && sudo make && sudo make check && sudo make install
- # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
- 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版本,如果没有出现说明安装出错
- sudo apt-get updata
- sudo apt-get install python-pip
- sudo pip install RPi.GPIO
- sudo apt-get install python-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/Raspberry\ Pi/
- cd bcm2835/
- make clean
- make
- sudo ./motor
- cd wiringpi/
- make clean
- make
- sudo ./motor
- cd python/
- sudo python main.py
- 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
- 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/
- cd python2/
- sudo python main.py
- cd python3/
- sudo python3 main.py