线跟随机器人
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
|
关于这个项目
让我们使用 Arduino 和 IR 传感器制作一个完全自主的机器人。它可以沿着白色表面上的黑线。观看视频了解更多!
使用的组件:
- 一块纸板/亚克力板
- Arduino Uno
- 红外传感器
- BO 电机
- 轮子
- 脚轮
- L293d 集成电路
- 印刷电路板
- 软线
- 电池
将所有组件固定在亚克力板上并制作如图所示的底盘。
图> 图> 图> 图> 图>现在按照下面的电路图进行所有连接。
你可以像这样在点状pcb上制作这个电路。
或者可以使用这种看起来很专业的PCB。
图> 图> 图> 图>您可以从这里为这个 Shield 订购 PCB https://www.pcbway.com/project/shareproject/How_to_Make_Arduino_Based_Edge_Avoiding_Robot.html
或现成的盾牌联系我们:https://www.facebook.com/STRONiXTechnologies
现在是时候为这个机器人编程了。将此程序上传到 arduino 并完成。
//Shubham Shinganapure 于 05-08-2019 编写的程序
//
//用于使用 2IR 传感器的线跟踪机器人
int lm1=8; //左电机输出1
int lm2=9; //左电机输出2
int rm1=10; //右马达输出1
int rm2=11; //右马达输出2
int sl=13; //sensor 1 input (left)
int sr=12; //sensor 2 input (right)
int SlV=0;
int SrV=0;
int led=A0;
void setup()
{
pinMode(lm1,OUTPUT);
pinMode(lm2,OUTPUT);
pinMode(rm1,OUTPUT);
pinMode(rm2,OUTPUT);
pinMode(led, OUTPUT);
pinMode(sl,INPUT);
pinMode(sr,INPUT);
sTOP();
}
void loop()
{
SlV=digitalRead(sl);
SrV=digitalRead(sr);
if(SrV==LOW &&SlV==LOW)
{
ForWard( );
}
if(SrV==HIGH &&SlV==LOW)
{
Left();
}
if(SrV==LOW &&SlV==HIGH)
{
Right();
}
if(SrV==HIGH &&SlV==HIGH)
{
sTOP();
}
}
void ForWard()
{
digitalWrite(lm1,HIGH);
digitalWrite(lm2,LOW);
digitalWrite(rm1,HIGH);
digitalWrite(rm2,LOW);
}
void BackWard()
{
digitalWrite(lm1,LOW);
digitalWrite(lm2,HIGH);
digitalWrite(rm1,LOW);
digitalWrite(rm2,HIGH);
}
void Left()
{
数字书写e(lm1,LOW);
digitalWrite(lm2,HIGH);
digitalWrite(rm1,HIGH);
digitalWrite(rm2,LOW);
}
void Right()
{
digitalWrite(lm1,HIGH);
digitalWrite(lm2,LOW);
digitalWrite(rm1,LOW);
digitalWrite(rm2,HIGH) );
}
void sTOP()
{
digitalWrite(lm1,LOW);
digitalWrite(lm2,LOW);
digitalWrite(rm1, LOW);
digitalWrite(rm2,LOW);
}
更多内容请订阅我的 YouTube 频道:
代码
- 线跟随机器人
线跟随机器人Arduino
//由 Shubham Shinganapure 于 05-08-2019 编写的程序////用于使用 2IR 传感器的线跟踪机器人 int lm1=8; //左电机输出 1int lm2=9; //左电机输出2int rm1=10; //右电机输出1int rm2=11; //右电机输出 2int sl=13; //sensor 1 input (left)int sr=12; //sensor 2 input (right)int SlV=0;int SrV=0;int led=A0;void setup(){ pinMode(lm1,OUTPUT); pinMode(lm2,输出); pinMode(rm1,输出); pinMode(rm2,输出); pinMode(led,输出); pinMode(sl,INPUT); pinMode(sr,INPUT);sTOP();}void loop(){ SlV=digitalRead(sl); SrV=digitalRead(sr); if(SrV==LOW &&SlV==LOW) { ForWard(); } if(SrV==HIGH &&SlV==LOW) { Left(); } if(SrV==LOW &&SlV==HIGH) { Right(); } if(SrV==HIGH &&SlV==HIGH) { 停止(); }}void ForWard() { digitalWrite(lm1,HIGH);数字写入(lm2,低);数字写入(rm1,高);数字写入(rm2,低); } void BackWard() { digitalWrite(lm1,LOW);数字写入(lm2,高);数字写入(rm1,低);数字写入(rm2,高); } void Left() { digitalWrite(lm1,LOW);数字写入(lm2,高);数字写入(rm1,高);数字写入(rm2,低); } void Right() { digitalWrite(lm1,HIGH);数字写入(lm2,低);数字写入(rm1,低);数字写入(rm2,高); }无效停止(){数字写入(lm1,低);数字写入(lm2,低);数字写入(rm1,低);数字写入(rm2,低); }
示意图
制造工艺