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

通过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 <M5Stack.h>
#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引脚可以连接各种驱动器和传感器等,因此您还可以尝试连接其他传感器。

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

吉田 显一(Yoshiken)

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

http://blog.ktrips.net

相关文章

  1. arduino-h02_14

    用Arduino制作的太阳能电池板供电数字养殖箱【后篇】

  2. 用Spresense扩大电子制作的广度!【第5篇】

  3. 用Spresense扩大电子制作的广度!【第4篇】

  4. 用Spresense扩大电子制作的广度!【第3篇】

  5. spresense_2

    用Spresense扩大电子制作的广度!【第2篇】

  6. title_image

    用Spresense扩大电子制作的广度!【第1篇】

  7. learning-electronics-03-00

    超越LED闪烁!更多了解电子制作“N讲”【第3篇】

  8. learning-electronics-02-08

    超越LED闪烁!更多了解电子制作“N讲”【第2篇】

  9. learning-electronics-01-09

    超越LED闪烁!更多了解电子制作“N讲”【第1篇】

TECH INFO

  • Sugiken老师的电机驱动器课堂
  • 重点必看
  • 技术分享
  • Arduino入门指南

基础知识

  • Si功率元器件
  • IGBT功率元器件
  • 热设计
  • 电路仿真
  • 开关噪声-EMC
  • AC/DC
  • DC/DC
  • 电机
  • 传递函数

工程技巧


Sugiken老师的电机驱动器课堂

PICK UP

PAGE TOP