12234浏览
查看: 12234|回复: 12

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

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

15秒循迹视频:

3分钟循迹观察中:

分享ARDUINO循迹代码:
  1. //20160319 ir循迹智能小车
  2. //我淘的模块是这样子:走黑线,反馈0或1;偏离黑线则一般反馈1000---1015
  3. int speedPin_M1 = 5;     //M1 Speed Control
  4. int speedPin_M2 = 6;     //M2 Speed Control
  5. int directionPin_M1 = 4;     //M1 Direction Control
  6. int directionPin_M2 = 7;     //M2 Direction Control
  7. int irPin_Left = A2;
  8. int irPin_MidLeft = A3;
  9. int irPin_MidRight = A4;
  10. int irPin_Right = A5;
  11. int  irValue_Left = 0;
  12. int  irValue_MidLeft = 0;
  13. int  irValue_MidRight = 0;
  14. int  irValue_Right = 0;
  15. int TestedPin_LED = 12;
  16. ////////////////////////////////////////////////////
  17. void setup() {
  18.   pinMode(irPin_Left,INPUT);  
  19.   pinMode(irPin_MidLeft,INPUT);  
  20.   pinMode(irPin_MidRight,INPUT);
  21.   pinMode(irPin_Right,INPUT);
  22.   
  23.   pinMode(TestedPin_LED,OUTPUT);
  24.   for(int i=0;i<3;i++)
  25.   {
  26.     digitalWrite(TestedPin_LED,HIGH);
  27.     delay(200);
  28.     digitalWrite(TestedPin_LED,LOW);
  29.     delay(200);
  30.   }  
  31. //  Serial.begin(9600);
  32. }
  33. /////////////////////////////////////////////////////////////////
  34. /////////////////////////////////////////////////////////////////
  35. void loop(){
  36.   irValue_Left = analogRead(irPin_Left );
  37.   irValue_MidLeft = analogRead(irPin_MidLeft );
  38.   irValue_MidRight = analogRead(irPin_MidRight );
  39.   irValue_Right = analogRead(irPin_Right );
  40. //   carAdvance(100,100); //Start
  41.   
  42.   if(irValue_Left>=800 && irValue_Right>=800 && (irValue_MidLeft<=100||irValue_MidRight<=100))
  43.   {//
  44.     carAdvance(100,100); //on line
  45.     delay(5);
  46.   }
  47.   if((irValue_Left<=10||irValue_MidLeft<=10) && irValue_Right>=800 )
  48.   {
  49.     carTurnLeft(0,100); //veering off right
  50.     delay(5);
  51.   }
  52.   
  53.   if(irValue_Left>=800 && (irValue_Right<=10||irValue_MidRight<=10))
  54.   {
  55.     carTurnRight(100,0); //veering off left
  56.     delay(5);
  57.   }
  58.   
  59.   if(irValue_Left>=800 && irValue_MidLeft>=800 && irValue_MidRight>=800 && irValue_Right>=800)
  60.   {
  61.     carTurnLeft(70,70);  // If line is lost try to reacquire
  62.     delay(10);
  63.   }
  64.   
  65.   if(irValue_Left<=100 && irValue_MidLeft<=100 && irValue_MidRight<=100 && irValue_Right<=100)
  66.   {
  67.     carTurnRight(70,70);  //如果走到T形路或急转弯处,四个传感器同时全部检测到黑线,则右转
  68.     delay(10);
  69.   }
  70. }
  71. /////////////////////////////////////////////////////////////////
  72. /////////////////////////////////////////////////////////////////
  73. void carStop(){                 //  Motor Stop
  74.   digitalWrite(speedPin_M2,0);
  75.   digitalWrite(directionPin_M1,LOW);   
  76.   digitalWrite(speedPin_M1,0);   
  77.   digitalWrite(directionPin_M2,LOW);   
  78. }   
  79. void carAdvance(int leftSpeed,int rightSpeed){         //Move forward
  80.   analogWrite (speedPin_M2,leftSpeed);              //PWM Speed Control
  81.   digitalWrite(directionPin_M1,HIGH);   
  82.   analogWrite (speedPin_M1,rightSpeed);   
  83.   digitalWrite(directionPin_M2,HIGH);
  84. }
  85. void carBack(int leftSpeed,int rightSpeed){       //Move backward
  86.   analogWrite (speedPin_M2,leftSpeed);
  87.   digitalWrite(directionPin_M1,LOW);   
  88.   analogWrite (speedPin_M1,rightSpeed);   
  89.   digitalWrite(directionPin_M2,LOW);
  90. }
  91. void carTurnRight(int leftSpeed,int rightSpeed){           //Turn Right   
  92.   analogWrite (speedPin_M2,leftSpeed);
  93.   digitalWrite(directionPin_M1,LOW);   
  94.   analogWrite (speedPin_M1,rightSpeed);   
  95.   digitalWrite(directionPin_M2,HIGH);
  96. }
  97. void carTurnLeft(int leftSpeed,int rightSpeed){          //Turn Left
  98.   analogWrite (speedPin_M2,leftSpeed);
  99.   digitalWrite(directionPin_M1,HIGH);   
  100.   analogWrite (speedPin_M1,rightSpeed);   
  101.   digitalWrite(directionPin_M2,LOW);
  102. }
  103. //////////////////////////////////////////////////////////////////
复制代码

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


嗯嗯,添加传感器,可玩性高高的~
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

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

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

mail