最简单DIY蓝牙PS2遥控器控制蓝牙智能小车

news/2024/11/30 9:54:27/

51单片机物联网智能小车系列文章目录


第一篇:最简单DIY的51蓝牙遥控小车设计方案
第二篇:最简单DIY串口蓝牙硬件实现方案
第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车


文章目录

  • 51单片机物联网智能小车系列文章目录
  • 前言
  • 一、最简单DIY蓝牙PS2遥控器控制蓝牙智能小车是什么?
  • 二、制作步骤
    • 1.搭建ESP32开发环境
    • 2.修改代码
    • 3.根据软件和硬件完成硬件连接
  • 三、仿真与调试
    • 1. 准备好硬件,小车上电和遥控器上电。
    • 2. 操控小车
  • 总结


前言

    daodanjishui物联网核心原创技术之最简单DIY蓝牙PS2遥控器控制蓝牙智能小车。
    市面上有各种开源智能小车控制遥杆,但是有复杂的有简单的,如果想快速入门DIY物联网智能小车蓝牙PS2遥杆控制器,这个方案会给你一个快捷高效的方案。


一、最简单DIY蓝牙PS2遥控器控制蓝牙智能小车是什么?

    在第一篇完成了蓝牙遥控智能小车的设计,在第二篇实现了51单片机智能小车的串口蓝牙控制,不过那时候是用电脑串口调试助手来发送遥控指令通过ESP32的蓝牙控制小车的。原因是入门不需要太复杂,那现在需要做一个带有遥杆蓝牙遥控器来代替电脑串口调试助手,所以我就用到了ESP32单片机和遥杆模块,因为这个单片机具有蓝牙功能。
    虽然市面上也有不少开源的智能小车遥杆遥控器方案,还有自己小时候也玩过不少无线遥控的航模,但是全部由自己软件硬件全部独立设计的方案到几年前才正式实现,现在用文字的形式记录下来,对自己童年时代深刻地回忆和对未来技术的展望。“闭门造遥杆遥控器”虽然有点痛苦,但是当你看到自己亲手做的小车在地上通过自制的蓝牙遥杆遥控器遥控动起来的时候,你会发现一切的付出都是值得的!小车的全家福如下图所示:
在这里插入图片描述

51单片机最小系统板如下:
在这里插入图片描述
自制带遥杆的蓝牙遥控器如下所示:
在这里插入图片描述
该遥杆模块在某宝商城可以几块钱买到。

优酷视频入口:https://v.youku.com/v_show/id_XNDg5ODc5NDM3Mg==.html?spm=a2hcb.playlsit.page.59

直接观看视频

最简单DIY蓝牙遥控器:ESP32控制蓝牙智能小车

二、制作步骤

1.搭建ESP32开发环境

1.1购买ESP32单片机,ESP32DEVKITV1开发板,价格更低十几块在某宝就能买到,这次下载程序可以直接使用手机数据线跟ESP32连接,跟ESP32-CAM单片机不一样,CAM还需要接一个USB转TTL模块才能下载程序
单片机的外貌如下:
在这里插入图片描述
原理图如下:
在这里插入图片描述
在这里插入图片描述

1.2搭建Arduino开发环境,不会搭建开发环境的买家可以到:https://www.cirmall.com/circuit/19141 自行按照说明搭建。

2.修改代码

    这个Arduino ESP32单片机的蓝牙代码也是相当精简,虽然是自己原创写的,但是也是经过严格的推敲和验证。很多读者不会编写蓝牙通信代码的话建议好好看看我这个代码了!代码截图如下:
在这里插入图片描述
    截图的第一个箭头表示的是我智能小车使用的串口蓝牙模块的蓝牙热点名称和密码(串口蓝牙一上电就会生成这个热点的,一般是买回来就写死的,读者可以根据自己购买的串口蓝牙模块去调整源码的账号和密码,这是成功的关键)
    在第二篇代码的基础上加入下面的代码,完成小车动作指令的发送。(还有些代码没有放上去,目的是想读者去下载我完整的工程,尊重个人劳动成果。)

 int x,y,z;  x=analogRead(PIN_X);  y=analogRead(PIN_Y);  z=analogRead(PIN_Z);  Serial.print("X=");  Serial.print(x);   Serial.print("\tY=");     Serial.print(y);  Serial.print("\tZ=");     Serial.println(z);  // delay(1000);  //这里加入蓝牙指令发送逻辑if(x==0){//左转SerialBT.print("LLL\r\n");}else if(x==4095){//右转SerialBT.print("RRR\r\n");}else if(y==0){//前进        SerialBT.print("FFF\r\n");}else if(y==4095){//后退        SerialBT.print("BBB\r\n");}else SerialBT.print("SSS\r\n");//停止

    程序说明:用的是arduino写的工程,读者可以慢慢斟酌,如果为了成功,可以购买跟我一样型号的串口蓝牙模块。

3.根据软件和硬件完成硬件连接

遥控模块与ESP32的连线如下图所示:
在这里插入图片描述
遥杆模块 ESP32
GND---------- GND
+5V ---------- VIN
URX---------- GPIO2
URY---------- GPIO4
SW----------- GPIO15

三、仿真与调试

1. 准备好硬件,小车上电和遥控器上电。

硬件连线都比较简单。

2. 操控小车

看视频演示即可

遥杆向前推是发送FFF\r\n,小车前进。
遥杆向后推是发送BBB\r\n,小车后退
遥杆向左推是发送LLL\r\n,小车左转
遥杆向右推是发送RRR\r\n,小车右转


总结

    ESP32这款单片机的优势就是集成了蓝牙和wifi功能,可以同时使用,假如用其他单片机来控制的话,还需要另外加上蓝牙模块,非常不方便,所以现在就是体验这个强大芯片的好时机到来。
    不过加上舵机和机械手和操控摇杆或者是手机控制app,就变得高端了,但是功能还是很齐全和强大的,代码也写得通俗易懂,不拖泥带水。下一期我将会推出使用手机APP控制智能小车,支持重力传感器和按钮控制,敬请期待。

代码工程下载链接:https://www.cirmall.com/circuit/20421/
点我直接跳转


http://www.ppmy.cn/news/140978.html

相关文章

室内也能用 那些适合在跑步机上使用的可穿戴设备

来源:腾讯数码 冬天来了,很多人都不喜欢到寒冷的户外去跑步,尤其是晚上,想要夜跑更是一种严峻的挑战。 当你开始为智能手表或蓝牙耳机不适合为自己找借口、或者对寒冷的冬天心有余悸的话,完全可以选择在室内温暖的健身…

蓝牙遥控机械臂小车实现移动和搬运的功能

1. 功能描述 本实验所实现的功能为:用手机APP遥控轮式机械臂小车样机实现移动和搬运。 通过手机APP遥控轮式机械臂小车样机完成将工作区外的工件搬运至工作区的任务,来模拟机器人的搬运过程。首先手机遥控机器人找到未存放在工作区内的工件,然…

红外遥控Arduino智能小车

智能小车将会关于遥控、寻迹、避障的Arduino小车系列,有需要可以进入我的个人头像查看。 在智能小车项目中,我们通过控制直流电机的正反转、刹车和转速来控制小车的行动。 【iMake】Arduino入门自学,电子学会机器人等级考试三四级&#xff0…

【开发心得】一招减少msdtc时间3分钟,但还有未解之谜

最近解决了一个诡异的问题,MSDTC默认超时造成事务被取消,业务被迫中断,好在没有一直跟MSDTC耗着,而是通过其他方式解决了,但最后还是留下了两个未解之谜。对用到MSDTC处理SQL事务的朋友应该有借鉴作用,欢迎…

CH579蓝牙智能遥控器方案

概述 随着蓝牙技术的演进,蓝牙遥控器逐渐成为主流,相比于普通红外遥控器,蓝牙遥控有很明显的优点:无死角遥控、传输距离更长、语音控制、功耗低、续航时间长等。CH579是一款32位Cortex-M0内核微控制器,片上集成BLE通讯…

Ros2中常用的一些指令记录

ros2 pkg prefix rviz2 返回rviz2所在的安装路径(即install后的地址前缀) devhumble:~/workspace$ ros2 pkg prefix rviz2 /opt/ros/humblecheck_urdf 解析检测urdf文件结构 devhumble:~/workspace/gp50_description/urdf$ check_urdf gp50.urdf robot name is: …

自定义ViewGroup实现流式布局

目录 1、View的绘制流程 2、自定义ViewGroup构造函数的作用 3、onMeasure 方法 3.1、View的度量方式 3.2、onMeasure方法参数的介绍 3.3、自定义ViewGroup onMeasure 方法的实现 4、onLayout方法 5、onDraw方法 6、自定义View的生命周期 7、自定义流式布局的实现 扩展&#xff…

JDBC连接mysql数据库

1、 JDBC JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问 1、连接数据库 2、发送操作数据库语句sql语句 3、处理返回结果 2、使用JDBC连接数据库步骤 加载相关依赖 1、下载依赖包mysql-connector-java.jar包 2、创建一个lib包&#xff…