避障机械车
来自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 | 新增/删除/修复 |
---|---|---|