热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

arduino遥控玩具车

找了很多单片机和蓝牙模块的资料,根据自己已完成的经验简单说明下,希望帮助有理想又能坚持的人做出自己想要玩具。 孩子捡到一个Q7遥控车,用5节5号电池带差速,质量还不错。可没遥控器怎么办,总不能再去捡个

在这里插入图片描述

找了很多单片机和蓝牙模块的资料,根据自己已完成的经验简单说明下,希望帮助有理想又能坚持的人做出自己想要玩具。
孩子捡到一个Q7遥控车,用5节5号电池带差速,质量还不错。可没遥控器怎么办,总不能再去捡个吧,我有那么好的运气吗?还是自己想办法吧。
早年曾买过一套51单片机的资料,带很多零散硬件,于是想用单片机加蓝牙模块连手机,找资料买硬件搭环境,终于成功运行了!30s。。。必死机,换了一套成品单片机最小环境依旧。分离电源也尝试了。我觉得可能是电机运行对单片机有影响吧。算了,上第三套方案。

材料:
遥控玩具车,
Arduino nano,
L298n红板,
HC06模块,
手机端用蓝牙串口助手。如果你想高大上一些就用App Inventor 2 WxBit 汉化增强版在线搭个程序吧,后面有详细步骤。嗯,就这些了。
开工了!放鞭炮!!!!!!!!!!!!!!!
这个玩具车电压是7.5v的,符合系统供电要求,如果低于5v还要改电源。它有2个电机,后驱+前转向,就是普通5v电机,不是舵机,其实没区别。首先当然是拆开它把它自带的遥控模块扔掉啦。
然后,电池仓正极接L298n 12v输入,
L298n 5v输出到nano和HC06,
L298n动力输出接2个电机,方向无所谓,代码里能调整,
L298n逻辑输出接nano,注意下后电机,在D3、D5、D6、D9、D10、D11中选2个接上,因为它们支持PWM,没错,这台车能调速哦!所以L298n上的神马使能就不用了;
HC06的TX和RX交叉连接nano的RX和TX,注意,刷写程序时要断开它们,因为nano的串口和usb是共用的,会导致冲突上传失败;
大灯和倒车灯正极分别串个220Ω电阻接Arduino(当然如果车灯是5v就不用电阻了或者你的玩具没车灯就省掉这一步);
以上除了电机,负极汇在一起接L298n地。
硬件搭建完了,复制粘贴下面代码吧:

//后电机
const int MA01 = 5 ;
const int MA02 = 6 ;
//前电机
const int MB01 = 3 ;
const int MB02 = 4 ;
//定义马达引脚名称

const int Spotlight = 12 ;//大灯
const int Taillight = 13 ;//倒车灯
//定义车灯引脚名称

boolean TaillightState;

void setup() {
Serial.begin(9600);
//定义通讯频率

pinMode(MA01, OUTPUT);
pinMode(MA02, OUTPUT);
pinMode(MB01, OUTPUT);
pinMode(MB02, OUTPUT);
//定义马达引脚模式

pinMode(Spotlight, OUTPUT);
digitalWrite(Spotlight, LOW);
pinMode(Taillight, OUTPUT);
digitalWrite(Taillight, LOW);

}

void loop() {
while (Serial.available())
//循环检测蓝牙输入信息
{
char C = Serial.read();
switch ©
{
//进入循环体,检测蓝牙指令。
//定义前进信号
case’A’:
Serial.println(“go on”);
analogWrite(MA01, 150);//初始半速,最大255,可根据马达体质调整
break;
case’E’:
Serial.println(“go on-stop”);
digitalWrite(MA01, LOW);
break;
//前进
//定义后退信号
case’B’:
Serial.println(“go back”);
analogWrite(MA02, 150);
digitalWrite(Taillight, HIGH);
TaillightState = true ;
break;
case’F’:
Serial.println(“go back-stop”);
digitalWrite(MA02, LOW);
digitalWrite(Taillight, LOW);
TaillightState = false;
break;
//后退
//定义转左信号
case’C’:
Serial.println(“go left”);
digitalWrite(MB02, HIGH);
break;
case’G’:
Serial.println(“go left-stop”);
digitalWrite(MB02, LOW);
break;
//转左
//定义转右信号
case’D’:
Serial.println(“go right”);
digitalWrite(MB01, HIGH);
break;
case’H’:
Serial.println(“go right-stop”);
digitalWrite(MB01, LOW);
break;
//转右
case’T’:
Serial.println(“go tubor”);
analogWrite(MA01, 250);
break;
case’X’:
Serial.println(“go tubor-shop”);
digitalWrite(MA01, LOW);
break;
//定义开关车头大灯
case’L’:
if (digitalRead (Spotlight) == HIGH)
{
Serial.println(“Colse Spotlight”);
digitalWrite(Spotlight, LOW);
}
else if (digitalRead (Spotlight) == LOW)
{
Serial.println(“Open Spotlight”);
digitalWrite(Spotlight, HIGH);
}
break;
//开关车头大灯
default:
break;
}//switch
}//while
}

动下脑筋差不多就能理解代码的意思,需要说明的是,每个信号都有2个按键定义,分别是按下和松开的状态。
现在拿出手机打开蓝牙串口助手,按照代码里设定的自定义按键试试吧。
现在你已经拥有一台能用手机控制的智障玩具车了,其实还可以添加其他有趣的模块比如超声波红外循迹。。。让它更智能。

下面是我自己搭的app,适合装13,其实是为孩子玩方便,麻烦一点点也值得!
在这里插入图片描述
超级兔子是我很喜欢的软件,就用它全速前进啦。
打开这个网址https://app.wxbit.com/,新建个项目,按下图添加组件,图标布局啥的自己弄吧。
在这里插入图片描述
切到逻辑设计照下图搭。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成apk开始炫耀吧!!!

总觉得用Arduino做这么个东东太委屈它了。第二套方案是啥呢?其实是我最先想到的,应该是第一套方案吧。CC2541是集51单片机和低功耗蓝牙为一体的小东东,真的很小,我觉得更适合这种玩具应用,可软件方面感觉复杂些,至少我还要好好的学习一阵,资料也不多,很希望有朋友能带带我。拜托了!


版权声明:本文为gaoyang_570原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/gaoyang_570/article/details/109124630
推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
author-avatar
邓尕恒_789
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有