风筝
发表于: 2019-9-5 14:40:13 | 显示全部楼层

在本篇文章中,我们将主要介绍如何使用ESP8266、电机驱动器和一些电池制作一款硬币大小的机器小车,并且能够通过物联网控制。


ESP8266是一款低成本的Wifi芯片,具有完整的TCP / IP堆栈和微控制器功能,由上海的制造商Espressif System生产。


我们使用的电机驱动器是一个名为MX1508的微型电机驱动器,它是L298N电机驱动器模块的较小替代品。为了控制机器人,我们使用的是Blynk移动应用平台。


所需的组件

●    ESP12E模块

●    ESP8266模块

●    1个150 mAh电池组

●    MX1508电机驱动器

●    Android Blynk应用程序(Playstore

●    Arduino IDE

Required Hardware.png

什么是Blynk?

Blynk是一个基于iOS和Android的平台,可让您通过互联网与Arduino和Raspberry Pi交流。它是一个数字仪表板,您只需拖放小部件即可为移动应用程序项目构建图形界面。


请注意,虽然Blynk可以免费入门,但您可能需要支付额外的精力来构建更复杂的应用程序。当然,您无需额外购买即可运行本文的应用程序。


配置Blynk应用程序

首先注册Blynk。然后点击New Project,为项目命名,device选择“nodeMCU”以及连接类型选择“Wi-Fi”。点击“Create”。

nodeMCU.png

点击Create后,Blynk将向您发送一封电子邮件,其中包含您要使用的项目身份验证令牌代码。创建项目后,点击“+”添加几个按钮。

Tapping.png

添加按钮后,按照下面的屏幕截图所示进行配置。


为第一个按钮选择引脚Virtual> V0,并将按钮命名为“Forward”。

Forward.png


将第二个按钮命名为“Backward”并选择引脚Virtual> V4。如果要添加左右控件,可以重复这些步骤,但是现在,我们只添加了向前和向后控件进行测试。

Backward.png


上传源代码

对于初学者,请按照使用Arduino IDE编程ESP / NODEMCU中的步骤为该项目设置Arduino IDE。如果您只使用独立芯片组,我建议您使用ESP8266开发板上传源代码。


注意:在上传程序之前,请更改SSID、密码和身份验证代码以使您的程序适合源代码。更改源代码后,点击上传按钮。

code.png


连接ESP8266机器小车

上传源代码后,连接所有组件,如下图所示。 从车上取下太阳能板,用电池组装eSP8266和MX1508电机驱动模块。


我们只使用单个电机,因此机器人只能前进和后退。 您可以稍后再添加一个电机来制作差动驱动器。

diagram.png

346.png

接线后,打开您的Blynk应用程序。 选择Blynk项目,然后点击“Play”。 该项目将开始。 由于Blynk是物联网平台,因此可以使用移动应用程序通过互联网控制这款小型车。


以下是本文使用的完整代码:

  1. #define BLYNK_PRINT Serial

  2. #include <ESP8266WiFi.h>
  3. #include <BlynkSimpleEsp8266.h>

  4. // You should get Auth Token in the Blynk App.
  5. // Go to the Project Settings (nut icon).
  6. char auth[] = "--your authenticate code--";

  7. // Your WiFi credentials.
  8. // Set password to "" for open networks.
  9. char ssid[] = "your wifi";
  10. char pass[] = "your wifi password";

  11. // These are used to set the direction of the bridge driver.
  12. #define ENB D3      //ENB
  13. #define MOTORB_1 D4 //IN3
  14. #define MOTORB_2 D5 //IN4



  15. // SETUP
  16. void setup()
  17. {

  18.   pinMode(ENB, OUTPUT);
  19.   pinMode(MOTORB_1, OUTPUT);
  20.   pinMode(MOTORB_2, OUTPUT);

  21. // digitalWrite(ENA,LOW);
  22.   digitalWrite(ENB,LOW);
  23.   
  24.   // Start serial communication
  25.   Serial.begin(9600);

  26.   // Connect Blynk
  27.   Blynk.begin(auth, ssid, pass);
  28. }


  29. // FORWARD
  30. BLYNK_WRITE(V0) {
  31.   int button = param.asInt(); // read button
  32.   if (button == 1) {
  33.     Serial.println("Moving forward");

  34.     digitalWrite(ENB,HIGH);

  35.     digitalWrite(MOTORB_1,LOW);
  36.     digitalWrite(MOTORB_2,HIGH);
  37.   }
  38.   else {
  39.     Serial.println("Stop");

  40.     digitalWrite(ENB,LOW);

  41.     digitalWrite(MOTORB_1,LOW);
  42.     digitalWrite(MOTORB_2,LOW);
  43.   }
  44. }
  45. // BACKWARD
  46. BLYNK_WRITE(V3) {
  47.   int button = param.asInt(); // read button
  48.   if (button == 1) {
  49.     Serial.println("Moving backward");

  50.     digitalWrite(ENB,HIGH);

  51.     digitalWrite(MOTORB_1,HIGH);
  52.     digitalWrite(MOTORB_2,LOW);
  53.   }
  54.   else {
  55.     Serial.println("Stop");

  56.     digitalWrite(ENB,LOW);

  57.     digitalWrite(MOTORB_1,LOW);
  58.     digitalWrite(MOTORB_2,LOW);
  59.   }
  60. }

  61. // MAIN CODE
  62. void loop()
  63. {
  64.   Blynk.run();
  65. }
复制代码

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-24 08:44 , Processed in 0.053292 second(s), 10 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表