电机的驱动与编码器读取-IIC

1.1 开篇说明

请先阅读《常用电机介绍以及用法》,了解清楚自己现使用的电机参数、接线方式、供电电压。以免造成烧坏主板或者电机的后果。

I2C与串口通讯不能共用,只能选择其中一个。

硬件接线:

电机四路电机驱动板(Motor)
M2M-
V3V3
AH1A
BH1B
GGND
M1M+
四路电机驱动板Jetson NANO B01(物理引脚)
SDA3
SCL5
GND6
5V4

 

1.2 使用说明

使用文件传输软件,例如WinSCP,软件需要自行搜索下载。将py文件通过软件传输到主板的根目录下,然后打开终端,运行指令:

如果终端弹出缺少smbus模块的报错:

就先使用下面的指令来安装此模块后,再次尝试运行:

 

1.3 代码解释

如果是需要驱动电机并观察数据,只修改程序开头的这两个数字就可以了,代码的其余部分不需要做任何更改。

 

这里用于存储本店在售电机的参数,通过修改上方的MOTOR_TYPE参数,就可以实现一键配置。正常情况下使用本店的电机不要修改此处的代码。如果使用的是自己的电机,或者说某项数据需要根据自己的需求来修改,那么可以查看文档《4路电机驱动板控制指令》来了解每一项指令的具体含义。

主程序循环会将四个电机的速度从0开始慢慢加到1000,如果电机类型选择的是4,即无编码器的电机,那就是直接控制电机的pwm。同时读取驱动板发送上来的数据,并一边将数据打印出来。

 

从驱动板获取数据后,对它进行移位处理,需要移位才能获取正确数据。

 

1.4 实验现象

接线正确后,将程序放置于根目录,然后运行指令sudo python3 ~/IIC.py,可以看见电机会逐渐变快,然后又停下,重复如此。同时在终端里能看见打印的电机数值在不断的变化。