教练-运动员 ARDUINO 机器人和蓝牙模块配置
有一个教练机器人和几个女运动员相互连接到下面。
您可以在其中连接任意数量的机器人。唯一需要的一个条件是,它连接到前一个的每个机器人,它都没有与最后一个分离,超过将它们连接在一起的蓝牙信号的范围。另一方面,信号可以穿过墙壁和门。即,可以连接例如其中的1000个机器人,由第一个通过从属蓝牙模块HC-06控制。也可以按建筑物的楼层和房间分布。我买了 3 台 Arduino 机器人 Smart BAT CAR
对于这个项目,我使用了一个 HC-06 模块和几个 BLE(蓝牙低功耗)类型的 HM-10 模块。这些最后消耗的比第一个少。要将您的手机正确连接到 HM-10 模块,您必须使用 5.0 以上的 Android 操作系统。但是因为我有一个安卓 4.4.2 的移动三星 S4 Mini,所以我很方便地将 HC-06 用作主机器人的从模块,将 HM-10 用作其他机器人的从模块。HC-06 它是经典的蓝牙,不是 BLE。
那么,我与教练机器人一起使用:
处于从属模式的 HC-06。它配备了BAT CAR机器人。
一个 HM-10 蓝牙 BLE 4.0,处于主模式,用于连接以下女运动员机器人的从机。
在两个女运动员机器人中,我使用以下模块:
HM-10 slave,用于连接前一个机器人。
HM-10 主连接到以下女运动员。
其他收购:
Vigos 的 Electronson 实体店中的跨接电缆
DFPlayer Mini MP3,因为它能够播放音乐:
32G micro SD 卡,用于存储歌曲和语音命令,以及可能与项目相关的所有文件。没有必要这么多千兆字节:
3W 扬声器,用于连接 MP3 播放器:
一个原型盾牌。这不是绝对必要的。需要的是一个miniprotoboard 。protoshiesld 与 SCL 和 SDA 引脚重叠,因此,为了避免它,它需要切割一个锥角。
USB 转 TTL 系列电缆,用于对蓝牙模块进行编程。HC-06 和 HM-10 可以直接插拔。有必要交叉设备各自的RX 和 TX进行连接。
HC-06 模块的设置:
AT+NAME<名称>
例如:AT+NAMEHC-06leader
AT+BAUD<号码>
例如:AT+BAUD8
8=>115200
设置大师 HM-10 :
AT 9600 不带线调整(默认)
AT+名字?
AT+NAMEMaestro1
AT+BAUD4 => 115200
AT+MODE2(发送、接收)
AT+ROLE1(中央,主控)
最后一条命令重置模块。再次打开115200的串口监视器,无需线路调整。
AT+IBEA0(没有 ibeacon)。默认。
AT+TYPE0(无 PIN)。默认。
设置从机 HM-10:
AT 9600 不带线调整(默认)
AT+地址?用于获取 MAC
AT+BAUD4
AT+MODE2(发送、接收)
AT+ROLE0(从机)(有复位)
AT+IBEA0(无 ibeacon)(默认)
AT+TYPE0(默认)
AT+IMME1(用于通过 AT+CON 请求连接到主控)
AT+IMME0(如果是第一次连接,需要立即连接)
通过AT指令设置蓝牙模块,安装到机器人上。在每个机器人上使用两个模块,除了最后一个。将 protoshield 放在主(教练)机器人上。将MP3 迷你播放器连接到 Arduino,如下图所示:
在 Yahboom 的 Arduino BAT CARS 附带的代码中添加新功能。就像古希腊人已经知道的基于数学的螺旋()和圆() :
void circle ()
{
int slow;
// right motor back off
digitalWrite(Right_motor_back, LOW);
analogWrite(Right_motor_go, control); // PWM--Pulse Width Modulation(0~255) control speed
// left motor go ahead
digitalWrite(Left_motor_back, LOW);
slow = (int)(control * 2 / 3);//without decimals
analogWrite(Left_motor_go, slow); // PWM--Pulse Width Modulation(0~255) control speed
//speed of left wheel is two thirds of right wheel
}
void spiral(){
int rightWheel = 200;
analogWrite(Right_motor_go, rightWheel); //I already do not use digitialWrite HIGH
for (int leftWheel = 50; leftWheel <= 150; leftWheel += 5)
{
analogWrite(Left_motor_go, leftWheel);
delay(250);
}
}
或者阅读皇家马德里的旋律,这要归功于蜂鸣器和不同的延迟:
void madrid()
{
//2 spaced sounds
digitalWrite(BUZZER, LOW);
delay(75);
digitalWrite(BUZZER, HIGH);
delay(400);
digitalWrite(BUZZER, LOW);
delay(75);
digitalWrite(BUZZER, HIGH);
delay(400);
//3 sounds
digitalWrite(BUZZER, LOW);
delay(50);
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
delay(50);
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
delay(75);
digitalWrite(BUZZER, HIGH);
delay(400);
//another 4 sounds
digitalWrite(BUZZER, LOW);
delay(50);
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
delay(50);
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
delay(50);
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
delay(75);
digitalWrite(BUZZER, HIGH);
delay(400);
//2 sounds
digitalWrite(BUZZER, LOW);
delay(50);
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
delay(75);
digitalWrite(BUZZER, HIGH);
delay(200);
}
此外,根据 MP3 播放器模块 的库规定的条件,根据需要将歌曲添加到 SD 存储卡上记录的命令。还将这个库的新命令合并到主要的 Arduino 程序中。
最后在 App Inventor 上创建一个应用来管理教练机器人。只有我们必须配置按钮来发送命令。由Arduino主程序的serialEvent()函数读取的。我们已经可以做到这三个机器人同时进行相同的训练。
我只使用表情符号完成了该应用程序,因此任何语言的任何人都可以理解:
如果您喜欢我们的帖子,请考虑捐款,以便我们继续。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !