电机驱动器能够通过 I2C 接口使用 PID 算法控制电机,精确控制电机从未如此简单。

项目描述
这是一款智能电机驱动器(又称 SAMI),设计用于运行微型齿轮电机,该电路板的目标是通过相应的转速反馈对该电机实施 PID 控制。板子上包含了所有必需的组件,因此可以自行工作运行。

 


供电和命令发送都是通过 I2C 接口。

主机控制器和电机驱动器之间通过 I2C 进行通信,发送包括电机速度、转向在内的命令。SAMI 自动实现 PID 控制。SAMI 上的电路板执行具体的电机控制算法,从而减轻了主机控制器的负荷。您还可以通过 I2C 读取电机的状态并对它进行配置。

 


SAMI 能够驱动电机,使轴上负载走完所需的距离或达到一定的角度,然后在达到目标值时自动停止。这是机器人技术的理想选择,简化了执行精确运动控制所需的许多艰苦工作。而且,可以把多个模块连接到同一条 I2C 总线上,注意,这里的多个模块是指很多电机!

 


对于任何人来说,制作先进的机器人从来没有这么简单过!现在,只需要把 SAMI 这个模块和你的电机连接到一起即可。

项目细节
这是一款设计用来控制微型齿轮电机的智能电机驱动器(也称为 SAMI),这块电路板的目标是使用霍尔效应传感器检测到的转速反馈,轻松地在 SAMI 上实现 PID 控制。SAMI 有自己的微控制器和 H 桥,能够自己完成电机控制和驱动操作。

 


主机上的微控制器(或者任何支持 I2C 端口的系统)通过 I2C 和智能电机驱动器进行通信,发送包括电机速度、转向在内的命令。SAMI 自动实现 PID 控制算法,保持速度,并在电机的动态运行中增加或减少功率以控制转矩和速度。

 


此外,该控制器能够驱动电机轴上负载走完所需的距离或角度,然后在达到目标值时自动停止。因此,如果用来驱动一个轮子,你必须同时制定轮子的直径和变速比等参数。

 


为了感应电机的转速,我使用了磁编码器盘,它沿着磁盘表面极化。因此霍尔效应传感器可以检测磁盘磁场的变化并将信号发送到微控制器上。微控制器使用定时器和中断计算电机转速,微控制器利用转速作为反馈,运行 PID 控制算法,并处理和主机的通信。

这款智能电机驱动器的主要设计思想是用在机器人中,通过使用它来控制机器人的轮子,无论表面是否光滑,电池电量是否充足还是机器人负荷重量发生了变化,都可以进行精确的运动控制。

此外,它还可以防止因为突然加速或者制动造成齿轮脱载,并避免电流冲击,这样可以保证您宝贵的电机的安全。

 


提供了一个 Arduino 库,帮助你方便地使用该智能电机驱动器。你可以快速、方便地把它插入到大量电机上使用。

 


特征
安装在微型直流电机的背面,安装方便;

可以轻松控制电机的速度和转向;

达到既定距离或角度时自动停止;

支持多种控制模式,包括带有或者不带自动停止功能的简单 PWM 控制或 PID 控制;可添加安全的方向转变功能;

通过 I2C 进行通信,可以通过软件更改地址;

可同时控制很多电机,最多支持在同一条 I2C 总线上挂载 128 个模块;

可以通过软件启动或禁用 I2C 的内部上拉电阻;

可以把配置保存在 EEPROM 中;

读取电机的实际转速,并检查是否发生了故障;

完全可配置;

易于使用的高精度电机控制;

尺寸小;

提供可用的 Arduino 库。

技术规格

电机电压可达 11v;

最大电机连续电流峰值高达 1.7A 和 1.8A;

逻辑电压范围为 3-5v;(稍后的版本经测试后可支持到 1.8v 范围)

默认 I2C 地址为 0x24;

过流保护和过热保护;

要复位默认的 I2C 地址,请在上电时将 MCLR 焊盘连接到地上;

标准 1mm 5 针 JST 连接器。

 



优点

独立进行电机控制;

可实现更平稳、更精确的动作控制;

 


具有电机保护功能;

解决方案方便易用;

内置电机速度反馈;

高响应速度的 PID 控制算法,保持电机速度恒定;

避免出现可能损坏电源或电池的瞬态电流峰值;

如果事先指定,可自动停在所需的距离或角度上;

与 IMU 等其他传感器结合使用时,可实现性能强大的机器人导航解决方案;

开源设计。


安装
要将 SAMI 安装到电机上,只需要把它和电机的驱动线、反馈线焊接在一起,并如下视频所示放置编码器。

重要提示:您的电机轴上必须留出足够的位置,以便放置编码器!

 


管脚
通过 JST 连接器和 SAMI 进行通信;
ICSP 管脚用于更新固件;
MCLR 管脚用于复位模块的默认 I2C 地址。

 


PCB 布局
PCB 厚 0.8mm,尺寸为 10 mm x 20 mm,双层板。

这是一个还在开发阶段的项目,也是一个开源项目,如果您有任何能够改进它的想法,随时欢迎修改。你还可以自行调整硬件和软件设计,以支持更大功率的电机,你还可以增加第二个编码器,甚至可以用它来运行步进电机。

 

本文源自 Hackaday.io,原文可打开链接查看:https://hackaday.io/project/158429-smart-motor-driver-for-robotics

 

与非网编译内容,未经许可 ,不得转载!

 

有人说硬件技术将很快达到极限,而在我们看来,硬件创新,尤其是中国硬件工程师的创新,还远未走到尽头,而只是刚刚开始。作为致力于为全球硬件开发者提供技术共享服务的平台,与非网母公司 SupplyFrame 旗下最大的全球硬件开发者社区 Hackaday.com 已连续五年举办全球硬件开发者大赛 Hackadayprize,有超过 3000 多个硬件团队在这个赛事中互动交流、切磋技艺。


这个《硬件改变世界》系列,我们挑选在前几届 Hackadayprize 大赛中获奖的优秀作品加以展示,硬件技术可以多有意思,硬件开发者可以多有创意,从这些作品中你可以看到。

2019 年 3 月,Hackadayprize 中国区赛事将隆重开启,我们很期待看到国内的硬件开发者大开脑洞、大展技艺。你准备好了没,与来自全球的硬件开发者同台 PK?