幻生幻灭 发表于 2011-11-8 08:02:58

自制Arduino小车

本帖最后由 幻生幻灭 于 2014-12-18 16:31 编辑

2014.12.18
时隔三年,我们一直在努力,感受分享Arduino所带来的快乐!
最新机器人作品出炉

http://www.geek-workshop.com/thread-11653-1-1.html

==========
实验版本


成品版本[未完成]



后续将添加蓝牙和传感器,以下是Arduino 2009的I/O定义




希望对大家的设计能有所帮助{:soso_e128:}



human2010 发表于 2013-10-20 23:56:04

采用Ladyada的库文件
主页:http://learn.adafruit.com/adafruit-motor-shield/overview
下载页:https://github.com/adafruit/Adafruit-Motor-Shield-library

实现了1.05版的四轮驱动小车!感谢楼主!感谢Ladyada!

幻生幻灭 发表于 2011-11-8 08:03:42

今天把程序整理了下,发上来// IdealDIY Motor shield library
// copyright IdealDIY LLC, 2010
// this code is public domain, enjoy!
// 2011 Edited by Leo Zhu

#include <AFMotor.h>
AF_DCMotor motorL(3);
AF_DCMotor motorR(4);

void setup() {
Serial.begin(9600);         // set up Serial library at 9600 bps
Serial.println("Motor Go!");

// turn on motor
motorL.run(RELEASE);
motorR.run(RELEASE);
}

void loop() {
char words;//keyboardInput
if(Serial.available()>0)
{
    words=Serial.read();
    //forward
    if(words=='w')
    {
      Serial.println("forward");

      motorL.setSpeed(255);
      motorR.setSpeed(255);
      motorL.run(FORWARD);
      motorR.run(FORWARD);

      delay(50);
      Serial.println("stop");

      motorL.run(RELEASE);
      motorR.run(RELEASE);
    }
//backward
    else if(words=='s'){

      Serial.println("backward");
      motorL.setSpeed(255);
      motorR.setSpeed(255);
      motorL.run(BACKWARD);
      motorR.run(BACKWARD);

      delay(50);
      Serial.println("stop");
      motorL.run(RELEASE);
      motorR.run(RELEASE);
    }
    //turn left
    else if(words=='a'){

      Serial.println("left");
      motorL.setSpeed(255);
      motorR.setSpeed(255);
      motorL.run(BACKWARD);
      motorR.run(FORWARD);

      delay(50);
      Serial.println("stop");
      motorL.run(RELEASE);
      motorR.run(RELEASE);
    }
    //turn right
    else if(words=='d'){

      Serial.println("right");
      motorL.setSpeed(255);
      motorR.setSpeed(255);
      motorL.run(FORWARD);
      motorR.run(BACKWARD);

      delay(50);
      Serial.println("stop");
      motorL.run(RELEASE);
      motorR.run(RELEASE);
    }
    //Stop
    else{
      Serial.println("stop");
      motorL.run(RELEASE);
      motorR.run(RELEASE);
    }
}
}










我把鼠标硬件,Arduino库和程序放这了
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=457

弘毅 发表于 2011-11-8 11:38:34

附件是视频~做的不错。。。偶的小车啥时候能做出来呢@@

三水 发表于 2011-11-8 12:16:40

偶的小车现在只有照片了@@

幻生幻灭 发表于 2011-11-8 17:26:57

本帖最后由 幻生幻灭 于 2011-11-8 17:29 编辑

视频那个小车由于是硬纸板,机械误差相当大。本来都是直行的,跑起来却是转弯哈

celia 发表于 2011-12-15 22:50:42

{:soso_e177:}

灰太狼大王 发表于 2011-12-15 23:33:36

实验版本那车,赞一个{:soso_e179:}

donarduino 发表于 2011-12-16 12:10:29

会不会是导向轮不好控制,所以会转弯?

幻生幻灭 发表于 2011-12-27 11:59:06

donarduino 发表于 2011-12-16 12:10 static/image/common/back.gif
会不会是导向轮不好控制,所以会转弯?

导向轮的机械特性的确很难控制,只能算是个降低机械结构制作难度的一个低成本方案哈

目前正在考虑是否能实现位置移动的闭环控制

幻生幻灭 发表于 2011-12-30 21:18:02

最近抽空继续搞蓝牙通讯,实验链接已经成功,正准备组装:)

プ汏坏疍 发表于 2012-1-5 11:49:59

好贴子,标记学习了。:lol

ojiancheo 发表于 2012-1-20 19:35:55

顶一个 支持了

鼓破天 发表于 2012-3-13 05:12:01

请问楼主控制输入的"WSAD"是不是在serial monitor里面输入?如是是的话每次输入都要敲回车键,挺麻烦的.能避免敲回车键直接控制不???

幻生幻灭 发表于 2012-3-13 20:38:45

鼓破天 发表于 2012-3-13 05:12 static/image/common/back.gif
请问楼主控制输入的"WSAD"是不是在serial monitor里面输入?如是是的话每次输入都要敲回车键,挺麻烦的.能避免 ...


如图,点实时发送即可

Randy 发表于 2012-3-20 11:29:30

我准备组装了,零件已到手!
页: [1] 2 3
查看完整版本: 自制Arduino小车