Funpack2-3-----基于ESP32-E的蓝牙遥控小车
用FireBeetle ESP32-E开发板作为控制单元,通过蓝牙连接的方式实现车辆前进后退转向等功能。
标签
嵌入式系统
Funpack活动
ESP32-E
好喝的娃哈哈
更新2023-01-04
济南大学
551

Funpack项目报告

一,活动介绍:

FsQH9MOYLO4l3SMCbDmYTMvLY2_E
本次Funpack第二季第三期活动推出了dfrobot的FireBeetle ESP32-E这款板卡,它深度支持Arduino开发,体积小巧并且拥有丰富的硬件资源,受人喜爱.

特性:

· 拥有更丰富的软硬件资源

· 体积小巧,仅25.4 × 60 mm

· ESP32双核低功耗主控,WiFi+BT4.0二合一

· GDI显示接口,可以单线连接显示屏

· 板载充电电路以及PH2.0锂电池接口

FpbRJ57rAEiGJP4iGYPOyCDZXFxV

二,任务介绍:

本次活动任务可供选择多,我选择的是任务三,基于FireBeetle ESP32-E通过板载蓝牙控制遥控小车.选择这个任务是因为之前做过关于遥控小车的项目,实现起来较为快速.

Fi63eCFiI2Wd9KTy58um8hy8Y7an

  • 驱动:   AT8549
  • 遥控:蓝牙连接
  • 主控:FireBeetle ESP32-E

三,项目框图

Fox936eVNcOwZ4_bLMT5CXrgH6le

四,实现过程:

首先是电机驱动代码:

首先附上芯片驱动逻辑,EN引脚默认拉高,01不同组合达到4种效果,由于一个芯片控制两个电机,可以达到前进,后退,左转,右转的效果,但是由于EN引脚默认拉高,没有停止的功能,所以接线上有一定的讲究,电机线交叉连接,如图所示。

FqQQenZhNMWL7GSIFcgxK2hwe60J

Fo8Gy6tlAab84ndEwu1sGq8-tnWr

void UP() {
  digitalWrite(M1A, HIGH);
  digitalWrite(M1B, LOW);
  digitalWrite(M2A, HIGH);
  digitalWrite(M2B, LOW);
}

void DOWN() {
  digitalWrite(M1A, LOW);
  digitalWrite(M1B, HIGH);
  digitalWrite(M2A, LOW);
  digitalWrite(M2B, HIGH);
}
void LEFT() {
  digitalWrite(M1A, LOW);
  digitalWrite(M1B, HIGH);
  digitalWrite(M2A, HIGH);
  digitalWrite(M2B, LOW);
}
void RIGHT() {
  digitalWrite(M1A, HIGH);
  digitalWrite(M1B, LOW);
  digitalWrite(M2A, LOW);
  digitalWrite(M2B, HIGH);
}
void STOP() {
  digitalWrite(M1A, LOW);
  digitalWrite(M1B, LOW);
  digitalWrite(M2A, LOW);
  digitalWrite(M2B, LOW);
}

其次是蓝牙遥控代码:

蓝牙遥控代码中主要用到了两个api,SerialBT.available()用于判断蓝牙串口是否有数据,SerialBT.read()用于读取数据,并赋值给flag。

  if (SerialBT.available()) {
    flag = SerialBT.read();
  }

  switch (flag) {
    case 1:
      UP();
//      Serial.println("1");
      break;
    case 2:
      DOWN();
      //Serial.println("2");
      break;
    case 3:
      LEFT();
      //Serial.println("3");
      break;
    case 4:
      RIGHT();
      //Serial.println("4");
      delay(20);
      break;
    case 5:
      STOP();
      break;
  }
  delay(20);
  flag = 0;

五,图片展示:

FlDAv-Ynjrv2HZDq5OykiGpFEVBBFqQQenZhNMWL7GSIFcgxK2hwe60J

FjuaNBLVzzDfkJVxW7wPZVjPyVhRFj4lnSYt-vZnWioUsnkreN-H6teZ

图片水印是使用转换软件所导致的,并不是找的网图

六,活动感想:

这次活动中代码并没有什么难度,主要的难点在于电机的驱动芯片,由于设计的时候没有考虑EN引脚,默认直接拉高,导致后续无法停车,好在也有解决办法,相当于让两个电机的两级分别为HIGH和LOW,达到停车的效果,最后感谢硬禾学堂举办的这次活动,祝硬禾学堂越办越红火。

附件下载
ESP32.ino
团队介绍
个人
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号