论坛» 综合技术» 电源与模拟

用Arduino兼容设备(M5Stack)和传感器制作迷你遥控车!(第二部分)

工程师
2023-02-17 20:29 1楼
通过M5Stack使用电机驱动器

第1部分:用小型Arduino兼容设备(M5Stack)享受电子制作的乐趣

大家好,我是吉田!

本系列连载将为您介绍使用小型Arduino兼容设备M5Stack制作遥控车的过程。在第二部分中,我们将连接M5Stack和电机驱动器,以使直流电机运转。由于使用一个名为“Grove”的标准引脚,而使看似复杂的电机驱动器设置变得非常简单。

arduino-m5stack-remote-control-car-02-01

使用M5Stack系列制作遥控车

本部分的流程
  1. 电机驱动器的设置

  2. M5Stack与电机的连接

  3. 运行M5Stack的程序

  4. 总结

本部分所需部件M5Stack Core

搭载了ESP32、显示器、传感器等的Arduino兼容设备

arduino-m5stack-remote-control-car-02

Grove I2C电机驱动器

使用“I2C”通信方式与Grove引脚连接即可使用的电机驱动器

arduino-m5stack-remote-control-car-07_01

9V电池和电池盒

arduino-m5stack-remote-control-car-02-02

小型电机、车轮等

arduino-m5stack-remote-control-car-08

1. 电机驱动器的设置

在制作迷你遥控车时,需要一个称为“电机驱动器”的IC器件来负责驱动直流电机并控制转速等工作。电机驱动器与Arduino之间的连接以及编程稍微有点复杂,但是M5Stack带有Grove引脚,通过使用可以与Grove相连接的电机驱动器,即可轻松进行电机控制。

这次我们将使用带有Grove引脚的、I2C控制方式的这款电机驱动器。

arduino-m5stack-remote-control-car-07_01

需要进入开发这款电机驱动器的SEEED公司的产品页面,并获取库文件。请单击下面页面中的Grove I2C Motor Driver,将其下载到您的计算机上。

https://wiki.seeedstudio.com/Grove-I2C_Motor_Driver_V1.3/

arduino-m5stack-remote-control-car-02-03

从菜单上的Sketch > Include library > Add .ZIP Library中选择前面提到的文件并应用。

arduino-m5stack-remote-control-car-02-04

现在已安装好了库和示例草图。在草图示例菜单中有一个名为“dcmotor_test”的示例,选择它并将其写入M5Stack。

arduino-m5stack-remote-control-car-02-05

需要连接电脑、M5Stack 和电机驱动器之后进行写入。当出现如画面中的消息时,表明电机驱动器的草图已经成功写入。

arduino-m5stack-remote-control-car-02-06

2. M5Stack与电机的连接

将直流电机连接到M5Stack和电机驱动器。对于驱动部分,我们使用车轮已经与非常小的电机连接好的齿轮电机。将这个齿轮电机固定到电池盒上,很容易就实现了一体化的迷你遥控车。

arduino-m5stack-remote-control-car-02-07
电机和车轮设置

arduino-m5stack-remote-control-car-02-08
将电机和电池盒固定(用螺丝拧紧)

将电机出来的2对线缆、电池盒出来的1对线缆分别与电机驱动器连接。

arduino-m5stack-remote-control-car-02-09
连接电机侧的引脚

arduino-m5stack-remote-control-car-02-10
连接电源侧的引脚

现在,电机驱动器、车轮和电池盒是这样的:

arduino-m5stack-remote-control-car-02-11

在M5Stack侧也要安装小车轮。使用Grove线缆连接电机驱动器和M5Stack。

arduino-m5stack-remote-control-car-02-12

整体如下:

arduino-m5stack-remote-control-car-02-13

3. 运行M5Stack的程序

最后,我们需要创建程序来运行M5Stack。M5Stack有一个显示器,所以我们让遥控车行驶过程中在屏幕上显示相应的内容。示例程序M5_Motor.ino如下:

#include "Grove_I2C_Motor_Driver.h" #include  #define I2C_ADDRESS 0x0f void setup() { Serial.begin(9600); Motor.begin(I2C_ADDRESS); M5.begin(); M5.Lcd.setTextSize(4); M5.lcd.print("GO M5!"); } void loop() { // Set speed of MOTOR1, Clockwise, speed: -100~100 Motor.speed(MOTOR1, 100); // Set speed of MOTOR2, Anticlockwise Motor.speed(MOTOR2, -100); M5.lcd.clear(); M5.Lcd.setCursor(10,0); M5.lcd.print("GO M5!"); M5.Lcd.setCursor(10,60); M5.lcd.print("Forward!"); delay(2000); // Change speed and direction of MOTOR1 Motor.speed(MOTOR1, -100); // Change speed and direction of MOTOR2 Motor.speed(MOTOR2, 100); M5.Lcd.setCursor(10,60); M5.lcd.print("Backward!"); delay(2000); // Stop MOTOR1 and MOTOR2 Motor.stop(MOTOR1); Motor.stop(MOTOR2); M5.lcd.clear(); M5.Lcd.setCursor(10,60); M5.lcd.print("Stop!"); delay(2000); }

程序准备好后,将其导入 M5Stack。打开电源后,车轮应该开始转动了。

arduino-m5stack-remote-control-car-02-14

向前转动时显示“Forward”,向后转动时显示“Backword”。

arduino-m5stack-remote-control-car-02-15

arduino-m5stack-remote-control-car-02-16

4. 总结

这次我们用两个小型齿轮电机实现了前后左右行驶。虽然需要用电机驱动器来控制Arduino和直流电机,不过我想您已经了解到了,只需将其与Grove引脚连接即可轻松开始使用。

M5Stack的Grove引脚可以连接各种驱动器和传感器等,因此您还可以尝试连接其他传感器。

在下一部分中,我们将通过安装距离传感器等器件,来实现避让墙壁、避免从桌子上掉下来等目标。自动驾驶即将实现,敬请期待!

本系列连载一览

第1部分:用小型Arduino兼容设备(M5Stack)享受电子制作的乐趣
第2部分:通过M5Stack使用电机驱动器(本章)
第3部分:通过M5Stack使用传感器实现自动驾驶和自动避让功能
剧终篇:实现M5Stack与智能手机联动控制


吉田 显一(Yoshiken)

在普通公司工作的上班族,非常喜欢创作的周末创客,出版了电子书MESHBOOK,平时也写写博客。

http://blog.ktrips.net


专家
2023-02-18 09:51 2楼

感谢分享

高工
2023-02-18 12:36 3楼

谢谢分享

高工
2023-02-18 12:42 4楼

谢谢分享

高工
2023-02-18 12:54 5楼

谢谢分享

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]