arduino遥控玩具车

news/2024/10/21 6:20:58/

在这里插入图片描述

找了很多单片机和蓝牙模块的资料,根据自己已完成的经验简单说明下,希望帮助有理想又能坚持的人做出自己想要玩具。
孩子捡到一个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单片机和低功耗蓝牙为一体的小东东,真的很小,我觉得更适合这种玩具应用,可软件方面感觉复杂些,至少我还要好好的学习一阵,资料也不多,很希望有朋友能带带我。拜托了!


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

相关文章

1328买玩具

#include <stdio.h> // FnLock int mcount(int money) {int a,b,c,d,e,f;abcdef0;int count0;// 能用一百用一百 while(money/100!0){a;money-100;}// 能用五十用50 while(money/50!0){b;money-50;}while(money/10!0){c;money-10;}while(money/5!0){d;money-5;}while(…

电子签名?玩具罢了!(web前端)

需要的前置知识&#xff1a;简单的canvas绘制线路过程 let canvas document.getElementById(id); //id为canvas标签元素的id&#xff0c;或通过其它方法获取标签 let ctx canvas.getContext(2d); //规定为2d绘制图片&#xff0c;即确定为2d画笔 ctx.strokeStyle "whit…

亚马逊上儿童玩具需要提供的认证介绍

儿童玩具上架亚马逊美国站&#xff0c;需要提供CPC认证&#xff0c;儿童玩具上架亚马逊欧洲站&#xff0c;需要提供欧盟CE认证EN71测试报告。儿童玩具主要的出口市场是美国和欧洲&#xff0c; 越来越多的国外用户喜欢在网上购买儿童玩具&#xff0c;儿童玩具出口和上架亚马逊各…

玩具订购热线

前天在网上查公证处的地址&#xff0c;在浏览器里输入关键字&#xff0c;然后找到很多相关信息&#xff0c;以及地图。整个操作过程&#xff0c;儿子一直在旁边看着&#xff0c;也没说话。 昨天在吃晚饭的时候&#xff0c;儿子一个人在玩电脑&#xff08;在幼儿园吃过晚饭了&a…

通过GWO算法对8个发电机进行了最佳调度编码(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 通过GWO&#xff08;Grey Wolf Optimization&#xff09;算法对8个发电机进行最佳调度编码是一种优化问题的解决方法。GWO算法灵…

div 边框颜色设置

box-shadow: 0px 0px 10px #00cdfe inset;

html如何给div加边框

<div style"border: 1px solid red;">