查看: 6832|回复: 12

[项目] 由Turtle 3PA三轮小车机器人改装成循迹小车

[复制链接]
去年的今天我终于收到等了几个月的 ROB0118 Turtle 3PA三轮小车机器人套件。儿子一个小时搞定了安装,我两三天调试成功Arduino避障代码,着实兴奋了好长时间,让我的机器人的梦越来美!忍不住想发个“小乌龟机器人”美照:

Turtle 3PA三轮小车正面

Turtle 3PA三轮小车正面

Turtle 3PA三轮小车背面

Turtle 3PA三轮小车背面

15秒避障视频:

15秒循迹视频:

3分钟循迹观察中:

分享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;
int  irValue_Left = 0;
int  irValue_MidLeft = 0;
int  irValue_MidRight = 0;
int  irValue_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);
}

//////////////////////////////////////////////////////////////////

hnyzcj  超级版主

发表于 2016-4-16 15:40:53

shafa
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2016-4-16 15:41:42

好多六个核桃
回复 支持 反对

使用道具 举报

dsweiliang  版主

发表于 2016-4-17 17:56:25

赞一个
回复 支持 反对

使用道具 举报

Ash  管理员

发表于 2016-4-19 10:40:46

赞一个 小乌龟萌萌哒
回复 支持 反对

使用道具 举报

dsweiliang  版主

发表于 2016-4-20 08:26:39

回复 支持 反对

使用道具 举报

凌风清羽  版主

发表于 2016-4-20 11:10:08

我也有一个,刚好可以玩起来,哈哈‘
回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2016-4-20 20:34:36

好多六个核桃萌萌哒
回复 支持 反对

使用道具 举报

爱吃柠檬的兔子  初级技匠

发表于 2016-4-21 17:17:20

有没有详细的制作过程啊,好可爱的机器人,也想做一个
回复 支持 反对

使用道具 举报

安卓机器人  初级技神
 楼主|

发表于 2016-4-21 18:56:12

爱吃柠檬的兔子 发表于 2016-4-21 17:17
有没有详细的制作过程啊,好可爱的机器人,也想做一个

DF商城有详细说明
回复 支持 反对

使用道具 举报

wht  学徒 来自手机

发表于 2016-6-8 18:39:00

好赞\(≧▽≦)/
回复 支持 反对

使用道具 举报

面包板  初级技匠

发表于 2017-3-29 22:53:02

拓展性还是有的
回复 支持 反对

使用道具 举报

安卓机器人  初级技神
 楼主|

发表于 2017-3-31 08:04:10


嗯嗯,添加传感器,可玩性高高的~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail