避障机械车
来自Labplus盛思维基百科
概述
本作品可实现机械车自动避障行走功能。使用时先根据制作说明将作品组装完整,然后接通电源,打开主控板开 关即可开始工作。本作品用超声波传感器作为输入装置,两路电机作为输出装置,当超声波传感器检测到前方有 障碍时,改变两路马达转速,实现转向,自动避开前方障碍,结构精细,外形优美。DIY动手组装,锻炼动手能 力,了解智能创意电子套件的使用,激发创新思维,增加学习乐趣。
使用教程
组装说明
电子模块清单
| 模块名称 | 数量 |
|---|---|
| UNO板 | x1 |
| 电机拓展板 | x1 |
| 超声波模块 | x1 |
| 舵机 | x2 |
电子模块连接说明
| 模块 | 引脚 | 说明 |
|---|---|---|
| 舵机(左) | D4 | |
| 舵机(右) | D5 | |
| 超声波模块 | TrigPin -> 2 EchoPin ->3 |
Arduino程序/图形化程序
| 避障机械车程序包 |
#include <Servo.h>
Servo myservo;//创建伺服器对象
Servo myservo2;//创建伺服器对象
// 设定SR04连接的Arduino引脚
const int TrigPin = 2;
const int EchoPin = 3;
float distance;
void setup()
{ // 初始化串口通信及连接SR04的引脚
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
pinMode(EchoPin, INPUT);
Serial.println("Ultrasonic sensor:");
}
void loop()
{
// 产生一个10us的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 检测脉冲宽度,并计算出距离
distance = pulseIn(EchoPin, HIGH) / 58.00;
Serial.print(distance);
Serial.print("cm");
Serial.println();
delay(100);
if (distance > 10){
myservo.attach(4);
myservo2.attach(5);
myservo.write(0);
myservo2.write(180);
}
else
{
myservo.attach(4);
myservo2.attach(5);
myservo.write(180);
myservo2.write(180);
}
}
FAQ
版本历史记录
| Version | Date | 新增/删除/修复 |
|---|---|---|

