蓝牙控制的避障机器人
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 2 | |||
![]() |
| × | 1 |
应用和在线服务
![]() |
| |||
|
关于这个项目
该项目使用手机通过蓝牙与机器人进行通信。我一直想建造一个机器人并通过手机控制它。在时隔12年多之后,我承担了建造机器人的任务并操作它。这也是我在 Arduino 项目中心的第一个项目。电子和机器人技术是我最喜欢的爱好之一,因此在 Covid19 导致的封锁期间,我承担了建造机器人的任务。

机器人感应从手机传输的蓝牙信号。它使用HC-05蓝牙模块感应手机发出的指令信号并控制机器人。我使用 ArduinoBlueControl 应用程序来控制机器人。



机器人的心脏是 Arduino Nano。它通过串行通讯接收来自HC-05模块的信号,并通过L298N电机驱动模块控制电机向前、向后、向左和向右运动。

应注意将 HC-05 模块的 TX 和 RX 引脚与 Arduino Nano 连接。为此使用逻辑电平转换器。
机器人使用 HC SR-04 超声波传感器模块来检测其路径中的障碍物。机器人在前进过程中感应到障碍物停止。RGB LED用于显示机器人的状态。

机器人组装在一个由两个齿轮驱动电机组成的 2 轮底座中。该电路组装在带有电源(3.3v 和 5v)的面包板上。由于电机需要更高的电流,Arduino Nano 无法直接驱动电机。因此,L298N 电机驱动模块用于驱动电机。来自Arduino Nano的PWM信号用于通过L298N电机驱动模块的ENA和ENB引脚控制电机的速度。


这是机器人运行的简短视频:
希望你喜欢我的蓝牙控制避障机器人。该机器人可以修改和扩展用于家庭自动化、车间避障车等以及更多用途。
代码
- 蓝牙控制机器人_Arduino 代码。
蓝牙控制机器人_Arduino代码。C/C++
/* 蓝牙控制的避障机器人:Alok Talukdar 准备日期:09.05.2020*/#include// 使用 Arduino 上的任何引脚进行串行通信。// 定义 L298 电机的数字引脚control module.#define IN1 5 // 用于右侧电机#define IN2 4 // 用于右侧电机#define IN3 3 // 用于左侧电机#define IN4 2 // 用于左侧电机#define ENA 9 // 启用 A 进行 PWM 控制of right motor#define ENB 10 // Enable B for PWM control of left motor//定义RGB LED控制的数字引脚#define redLED 8#define greenLED A0#define blueLED 11//设置HC-SR04超声波传感器模块const int 触发引脚 =6; // TRIG 引脚连接到 Arduino Nanoconst 的引脚 D6 int echoPin =7; // ECHO 引脚连接到 Arduino Nanoint i,j,k =0 的引脚 D7;浮动持续时间,距离; //距离测量变量//设置HC05蓝牙模块SoftwareSerial mySerial(12,13); // (12 --> RX , 13 --> TX) 字符串数据; // 蓝牙控制变量int btVal;void setup() { // 把你的设置代码放在这里,运行一次:pinMode(trigPin,OUTPUT); // 配置引脚 D6 以发射超声波脉冲 pinMode(echoPin,INPUT); // 配置引脚 D7 以接收超声波脉冲 mySerial.begin(9600); // 以波特率 9600 pinMode(IN1,OUTPUT) 配置软件串行; // 将 IN1 - IN4 配置为 OUTPUT 以控制电机 pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); pinMode(ENA,输出); pinMode(ENB,输出); pinMode(红色LED,输出); pinMode(蓝色LED,输出); pinMode(绿色LED,输出);数字写入(IN1,低); // 配置 IN1 - IN4 的状态为 LOW digitalWrite(IN2,LOW);数字写入(IN3,低);数字写入(IN4,低);模拟写入(红色LED,255); // 关闭 LED。 RGB LED 为共阳极型。数字写入(蓝色LED,高); digitalWrite(greenLED,HIGH);}void loop(){ // 把你的主要代码放在这里,重复运行: while (mySerial.available()) { data =mySerial.readStringUntil('\n'); btVal =(data.toInt()); switch (btVal) { case 1:forward();数字写入(绿色LED,低);模拟写入(红色LED,255);数字写入(蓝色LED,高);分布();休息;情况 2:反向();数字写入(绿色LED,高);模拟写入(红色LED,255);数字写入(蓝色LED,低);休息;情况 3:左();休息;情况 4:对();休息;案例5:stoprobot();数字写入(绿色LED,高);模拟写入(红色LED,0);数字写入(蓝色LED,高);休息;默认值:digitalWrite(greenLED,HIGH);模拟写入(红色LED,255);数字写入(蓝色LED,高);休息; } if (mySerial.available() <0) { //Serial.println("无蓝牙数据"); }} // 电机控制函数声明 void forward() { for(i=0;i<=100;i++) { analogWrite(ENA,i);模拟写入(ENB,我);数字写入(IN1,高);数字写入(IN2,低);数字写入(IN3,低);数字写入(IN4,高); } } void reverse() { for(j=0;j<=100;j++) { analogWrite(ENA,j);模拟写入(ENB,j);数字写入(IN1,低);数字写入(IN2,高);数字写入(IN3,高);数字写入(IN4,低); } } void left() {analogWrite(ENA,127);模拟写入(ENB,0);数字写入(IN1,高);数字写入(IN2,低);数字写入(IN3,高);数字写入(IN4,高); } void right() { analogWrite(ENA,0);模拟写入(ENB,127);数字写入(IN1,高);数字写入(IN2,高);数字写入(IN3,低);数字写入(IN4,高); } void stoprobot() {analogWrite(ENA,0);模拟写入(ENB,0);数字写入(IN1,低);数字写入(IN2,低);数字写入(IN3,低);数字写入(IN4,低); } void dist() { digitalWrite(trigPin,LOW); // 通过 HC-SR04 的 TRIG 引脚发送一个脉冲 delayMicroseconds(2);数字写入(触发引脚,高);延迟微秒(10);数字写入(trigPin,低);持续时间 =pulseIn(echoPin,HIGH); // 读取脉冲的持续时间距离 =(duration*0.0343)/2; // 以厘米为单位测量距离。声速为 340 m/s 或 0.0343 cm/us if(distance<20) // 如果距离 <20 cms , 停止机器人 { stoprobot();数字写入(绿色LED,高);模拟写入(红色LED,0);数字写入(蓝色LED,高); } 延迟(1000); }
示意图
机器人电路图。
制造工艺
- 具有基于视觉的避障功能的移动机器人
- 通过蓝牙控制的树莓派机器人
- 使用 Arduino 和 Raspberry Pi 构建您的 Internet 控制的视频流机器人
- 使用 Raspberry Pi 的手势控制机器人
- 由 ANDROID 智能手机控制的 RASPBERRY PI WIFI 机器人
- Windows 10 IoT Core:语音控制机器人
- 使用 Raspberry Pi 的 Wifi 控制机器人
- ROObockey:遥控、辅助瞄准的街头曲棍球机器人
- 使用人工智能避障
- 语音控制机器人
- 通过以太网控制的机械臂
- MobBob:由 Android 智能手机控制的 DIY Arduino 机器人