由Turtle 3PA三轮小车机器人改装成循迹小车
去年的今天我终于收到等了几个月的 ROB0118 Turtle 3PA三轮小车机器人套件。儿子一个小时搞定了安装,我两三天调试成功ARDUINO避障代码,着实兴奋了好长时间,让我的机器人的梦越来美!忍不住想发个“小乌龟机器人”美照:15秒避障视频:
https://v.youku.com/v_show/id_XMTUzNjcxMjA5Ng==.html
15秒循迹视频:
https://v.youku.com/v_show/id_XMTUzNjcxNjU0OA==.html
3分钟循迹观察中:
https://v.youku.com/v_show/id_XMTUzNjcyNDIyMA==.html
分享ARDUINO循迹代码://20160319 ir循迹智能小车
//我淘的模块是这样子:走黑线,反馈0或1;偏离黑线则一般反馈1000---1015
int speedPin_M1 = 5; //M1 Speed Control
int speedPin_M2 = 6; //M2 Speed Control
int directionPin_M1 = 4; //M1 Direction Control
int directionPin_M2 = 7; //M2 Direction Control
int irPin_Left = A2;
int irPin_MidLeft = A3;
int irPin_MidRight = A4;
int irPin_Right = A5;
intirValue_Left = 0;
intirValue_MidLeft = 0;
intirValue_MidRight = 0;
intirValue_Right = 0;
int TestedPin_LED = 12;
////////////////////////////////////////////////////
void setup() {
pinMode(irPin_Left,INPUT);
pinMode(irPin_MidLeft,INPUT);
pinMode(irPin_MidRight,INPUT);
pinMode(irPin_Right,INPUT);
pinMode(TestedPin_LED,OUTPUT);
for(int i=0;i<3;i++)
{
digitalWrite(TestedPin_LED,HIGH);
delay(200);
digitalWrite(TestedPin_LED,LOW);
delay(200);
}
//Serial.begin(9600);
}
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
void loop(){
irValue_Left = analogRead(irPin_Left );
irValue_MidLeft = analogRead(irPin_MidLeft );
irValue_MidRight = analogRead(irPin_MidRight );
irValue_Right = analogRead(irPin_Right );
// carAdvance(100,100); //Start
if(irValue_Left>=800 && irValue_Right>=800 && (irValue_MidLeft<=100||irValue_MidRight<=100))
{//
carAdvance(100,100); //on line
delay(5);
}
if((irValue_Left<=10||irValue_MidLeft<=10) && irValue_Right>=800 )
{
carTurnLeft(0,100); //veering off right
delay(5);
}
if(irValue_Left>=800 && (irValue_Right<=10||irValue_MidRight<=10))
{
carTurnRight(100,0); //veering off left
delay(5);
}
if(irValue_Left>=800 && irValue_MidLeft>=800 && irValue_MidRight>=800 && irValue_Right>=800)
{
carTurnLeft(70,70);// If line is lost try to reacquire
delay(10);
}
if(irValue_Left<=100 && irValue_MidLeft<=100 && irValue_MidRight<=100 && irValue_Right<=100)
{
carTurnRight(70,70);//如果走到T形路或急转弯处,四个传感器同时全部检测到黑线,则右转
delay(10);
}
}
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
void carStop(){ //Motor Stop
digitalWrite(speedPin_M2,0);
digitalWrite(directionPin_M1,LOW);
digitalWrite(speedPin_M1,0);
digitalWrite(directionPin_M2,LOW);
}
void carAdvance(int leftSpeed,int rightSpeed){ //Move forward
analogWrite (speedPin_M2,leftSpeed); //PWM Speed Control
digitalWrite(directionPin_M1,HIGH);
analogWrite (speedPin_M1,rightSpeed);
digitalWrite(directionPin_M2,HIGH);
}
void carBack(int leftSpeed,int rightSpeed){ //Move backward
analogWrite (speedPin_M2,leftSpeed);
digitalWrite(directionPin_M1,LOW);
analogWrite (speedPin_M1,rightSpeed);
digitalWrite(directionPin_M2,LOW);
}
void carTurnRight(int leftSpeed,int rightSpeed){ //Turn Right
analogWrite (speedPin_M2,leftSpeed);
digitalWrite(directionPin_M1,LOW);
analogWrite (speedPin_M1,rightSpeed);
digitalWrite(directionPin_M2,HIGH);
}
void carTurnLeft(int leftSpeed,int rightSpeed){ //Turn Left
analogWrite (speedPin_M2,leftSpeed);
digitalWrite(directionPin_M1,HIGH);
analogWrite (speedPin_M1,rightSpeed);
digitalWrite(directionPin_M2,LOW);
}
////////////////////////////////////////////////////////////////// shafa 好多六个核桃 赞一个 赞一个 小乌龟萌萌哒 赞 我也有一个,刚好可以玩起来,哈哈‘ 好多六个核桃萌萌哒 有没有详细的制作过程啊,好可爱的机器人,也想做一个 爱吃柠檬的兔子 发表于 2016-4-21 17:17
有没有详细的制作过程啊,好可爱的机器人,也想做一个
DF商城有详细说明 好赞\(≧▽≦)/ 拓展性还是有的 面包板 发表于 2017-3-29 22:53
拓展性还是有的
嗯嗯,添加传感器,可玩性高高的~
页:
[1]