蓝牙控制汽车使用ESP32
188app 188 ESP32

蓝牙控制汽车使用ESP32和Android手机

在这个项目中,我们正在使用ESP32开发模块制作蓝牙控制汽车。这是我们选择ESP32而不是Arduino等其他板的原因。

以下是我们选择它的原因。ESP32现在因其内置等功能而变得更加著名蓝牙而且无线网络模块。此外,它有一个更强大的CPU更多的内存而且这比Arduino或任何其他基于物联网项目的开发板都有很大的优势,这些项目需要活跃的互联网连接或蓝牙等功能。因此,我们选择ESP32为我们的项目。

ESP32开发模块

组件要求:

制造蓝牙控制机器人汽车所需的组件。

  • 减速直流电动机
  • L293D电机驱动器或N298 MOSFET驱动器
  • 用于房屋组件的躺椅
  • ESP32开发模块(开发板)
  • 跳线
  • 安装Blynk App的安卓智能手机
  • 微型电路试验板
  • 电池组(锂离子x 3)

蓝牙控制汽车电路图:

使用esp32的电话控制汽车

从上面的电路图中,您可以看到2个电机与L293D驱动器IC接口(有关更多详细信息,您也可以参考我们的博客IC L293D).该IC由ESP32 Dev Module控制。IC 7805是一个稳压IC,为ESP32提供恒定的5V电压。

需要一个12V电源来驱动IC和电机。LM7805稳压器给ESP32模块恒定5V。

蓝牙控制RC车工作情况:

当我们为ESP32供电时,蓝牙模块开始工作,并在启动安装在其上的Dabble应用程序时连接到智能手机。在那个应用程序中,有一个手柄。通过使用手柄,你可以控制蓝牙汽车。你可以在三种不同的模式下移动你的车。了解更多涉猎。

操纵杆模式:

在这种模式下,你可以用一个容易控制的操纵杆来控制汽车。

按钮模式:

在此模式下,有四个按钮(即。前进,后退,左,右)使用主题,你可以控制你的汽车,但你必须使用更多的按钮。

加速度计模式:

在这种模式下,你可以通过移动和倾斜智能手机来控制你的汽车。这是非常简单和有趣的。

家庭自动化系统使用ESP32

基于ESP32的蓝牙控制汽车代码:

让我们通过代码来了解一下汽车的工作原理:

//这里我们已经定义了电机A的引脚
int motor1Pin1 = 27;
int motor1Pin2 = 26;
int enable1Pin = 14;

//这里我们已经定义了电机B的引脚
int motor2Pin1 = 32;
int motor2Pin2 = 33;
int enable2Pin = 25;

//定义自定义设置,你需要在你的程序中安装dabble库

#定义CUSTOM_SETTINGS
#定义INCLUDE_GAMEPAD_MODULE
# include < DabbleESP32.h >

无效设置(){
Dabble.begin(“MyEsp32”);

//*设置motor1的引脚为输出:
pinMode (motor1Pin1、输出);
pinMode (motor1Pin2、输出);
pinMode (enable1Pin、输出);

//设置motor2的引脚为输出:
pinMode (motor2Pin1、输出);
pinMode (motor2Pin2、输出);
pinMode (enable2Pin、输出);

digitalWrite (enable1Pin、高);
digitalWrite (enable2Pin、高);

无效循环(){

Dabble.processInput ();

//它将检查哪个按钮被按下或没有?根据按下的按钮,微控制器的输出引脚将被设置为高或低。我们使用else if语句。


boolean a = GamePad.isUpPressed();
boolean b = GamePad.isDownPressed();
boolean c = GamePad.isLeftPressed();
boolean d = GamePad.isRightPressed();
boolean e = GamePad.isTrianglePressed();
布尔f = GamePad.isCirclePressed();
boolean g = gamepad . iscrosspress ();
boolean h = GamePad.isSquarePressed();
// boolean i = GamePad.isStartPressed();
// boolean j = GamePad.isSelectPressed();

/ /前进

If (a || e){
digitalWrite (motor1Pin1、低);
digitalWrite (motor1Pin2、高);
digitalWrite (motor2Pin1、高);
digitalWrite (motor2Pin2、低);

// Go Left条件
Else if(d || f){
digitalWrite (motor1Pin1、低);
digitalWrite (motor1Pin2、高);
digitalWrite (motor2Pin1、低);
digitalWrite (motor2Pin2、低);

//*权限条件
Else if(c || h){
digitalWrite (motor1Pin1、低);
digitalWrite (motor1Pin2、低);
digitalWrite (motor2Pin1、高);
digitalWrite (motor2Pin2、低);

//返回条件

Else if(b || g){
digitalWrite (motor1Pin1、高);
digitalWrite (motor1Pin2、低);
digitalWrite (motor2Pin1、低);
digitalWrite (motor2Pin2、高);

/ /停止条件
其他{
digitalWrite (motor1Pin1、低);
digitalWrite (motor1Pin2、低);
digitalWrite (motor2Pin1、低);
digitalWrite (motor2Pin2、低);

蓝牙控制汽车使用ESP32

这是我们的Android智能手机使用Dabble App使用ESP32的蓝牙控制汽车的工作方式。

对于摇杆模式,你只需要在你的ESP32开发模块上上传以下代码,它将为你工作,我们正在制作另一个博客,你可以在其中找到代码的详细解释

//手柄模式代码

#define l1 27 //左电机1
#define l2 26 //左电机
#定义r1 33 //右电机1
#定义r2 32 //右电机2
#定义e1 14 //左电机左使能引脚
#define e2 25 //右电机使能引脚

Int lm = 0;//左电机转速
Int rm = 0;//右电机转速

#定义CUSTOM_SETTINGS
#定义INCLUDE_GAMEPAD_MODULE
# include < DabbleESP32.h >

Const int freq = 30000;
const int pwmChannel = 0;
const int pwmChannel2 = 1;
Const int分辨率= 8;
int dutyCycle = 200;

无效设置(){

Dabble.begin(“BAJRANGIBHAIJAN”);

pinMode (l1、输出);
pinMode (l2、输出);
pinMode (r1、输出);
pinMode (r2、输出);
pinMode (e1、输出);
pinMode (e2、输出);

ledcSetup(pwmChannel,频率,分辨率);
ledcAttachPin (e1, pwmChannel);
ledcAttachPin (e2、pwmChannel2);

无效循环(){
Dabble.processInput ();

ledcWrite (pwmChannel lm);
ledcWrite (pwmChannel2 rm);

float xval = GamePad.getXaxisData();
float yval = GamePad.getYaxisData();

(yval < 0){
digitalWrite (l1,高);
digitalWrite (l2,低);
digitalWrite (r1、高);
digitalWrite (r2、低);
Lm = map(yval, 0, - 7,0, 200);
Rm = map(yval, 0, - 7,0, 200);

Else if(yval > 0) {
digitalWrite (l1,低);
digitalWrite (l2,高);
digitalWrite (r1、低);
digitalWrite (r2、高);

Lm = map(yval, 0,7,0,200);
Rm = map(yval, 0,7,0,200);

其他{
Lm = 0;
Rm = 0;

如果(xval < 0) {
int xMapped = map(xval, 0, - 7,0, 200);
lm = lm - xMapped;
rm = rm + xMapped;
If (lm < 0) {
Lm = 0;

If (rm > 200) {
Rm = 200;

If (xval > 0) {
int xMapped = map(xval, 0,7,0, 200);

lm = lm + xMapped;
rm = rm - xMapped;

If (lm > 200) {
Lm = 200;

If (rm < 0) {
Rm = 0;

现在,通过上传这段代码,你就可以用Dabble App上的手柄的所有三种模式(即数字模式、操纵杆模式和加速度计模式)来控制你的汽车。

回复“蓝牙控制汽车使用ESP32和Android手机

  1. 你好,亲爱的。
    我正在尝试使用草图,但它在编译中返回错误…我相信由于尝试复制和粘贴…它一定是无序的…但错误与映射有关;你能查一下吗?如果您能将文件通过邮件转发给我,我将非常感激。

    致以最亲切的问候。

留下回复

你的电邮地址将不会公布。必填字段已标记

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据