多图详细教你怎样做一部Arduino小车

电子制作

250人已加入

描述

  相信每个男生心里都有一个机器人的梦想,但自个花钱去买个机器人总是太奢侈,作为一个工程师,我们可以学以致用,利用自己的专门技术去DIY一个机器人可就不亦乐乎,以下就给大家介绍一下怎样去制造一个简单的Arduino小车。以下就是这小车的整体图

电子制作

  1、材料和工具:

  360度连续旋转舵机两个

  铝合金型材若干

  万向轮*1

  arduino核心板*1 ST188

  103电位器

  ST188光电传感器*2

  LM339N电压比较器*1

  103电位器*4

  IN4007二极管*1

  发光二极管*5

  L7805CV*3

  47uf电解电容6

  107钽电容*1

  1K电阻*5

  10K电阻*4

  微动开关*2

  11.1V锂电池*1(航模用,不用担心功率不足)

  各种杜邦线、插头若干(用起来方便到爆)

  部分元件如下图:

电子制作

  工具就不多介绍,见下图

电子制作

  2 、结构制作部分

  铝合金材料

电子制作

  加工好的全部的铝合金组件(全部手工)

电子制作

  机械结构组装好后就基本成型了,黑色的是绝缘电工胶带,便于安放各种电路板。

  这个轮子是在街上买的万向轮然后把轮子单独拆了下来,轮子厚20mm,直径50mm。

电子制作

  轮子通过舵机的摆臂固定上,这样很方便的连接舵机。

  万向轮装上去,万向轮高35mm,后面俩轮子装到舵机上底板正好离地35mm,万向轮装上去正好合适,很幸运。

电子制作
电子制作
电子制作

  顺便说下,上图中前面那个杆是用来安装光电传感器的,由于没法直接打上孔往上装,必须解决跟万向轮凸起的那个冲突,我就画上一个弧线然后用锉磨了出来,磨出来还很满意。

电子制作

  下图中的构件是装中间两个光电传感器的(这两个光电传感器视功能可选)

电子制作

  3 、电路制作部分:

  下图是我从网上买的光电传感器及其基于LM339N的电压比较器比较器

电子制作

  但是用买来的光电传感器各种测试不理想,而且还得用导线跟Arduino连接,所以我就有了自己DIY的年头,我专门花一周时间学习了Altium designer 9,所以参考别人的光电传感器电压比较强模块我画了原理图也大致用PCB规划了一下走线,然后用万能板焊接,这个过程之后还是相当有成就感的。

电子制作


       光电传感器模块
        Header2方便接跳线帽,可以选择是加电就返回信号,还是对发光二极管控制才返回信号,我用的加电就返回信号。

  下图是模块的走线规划。

电子制作
电子制作
电子制作

  光电传感器由发射二极管和接收管组成,A、K是红外发射二极管的正负极,C、E是接收管的正负极。如图:

电子制作

          只要A极接高电平、K极接低电平,红外发射管就能发出红外线。可以在传感器加上外围电路来检测接收管的信号,进而确定是否接受到反射回来的红外线,如上图图右下方的器件工作示意图。

电子制作

  所谓电压比较的原理就是给任一输入端一个参考电压(通过转动电位器来改变参考电压的值),我的原理图中给IN-输入参考电压,当IN+的电压高于IN-时,OUT为低电平,反之亦然,IN+仅需与IN-相差mV就能在OUT端得到比较结果。

  在做Arduino扩展板的时候一定要对各端口的使用有个大致的规划,其实我觉得Arduino核心板的设计是不太理想的,见下图:

电子制作

  大家都知道,万能板相邻两孔的间距是标准的100mil也就是2.54mm,图中b= 5.08mm,图中2.54《a《5.08,这就很尴尬,导致我之前焊的万能板如果要同时用0-7和8-13口的时候,板子需要很费劲的插上去,并且插上去万能板就弯曲了,如下图:

电子制作

  所以我为了避免那样的情况再次发生,我板子里的端口只用了0-7和A0-A5(A口也可以做数字输入输出,端口为14-19),还有VIN-RESET。

电子制作

  电压比较器原理图

  注:扩展板上加一个复位开关是非常方便调试的。

电子制作

  原理图和PCB文件点这里打包下载

  下图是用万能板焊好的电路,这个电路焊完非常有成就感,对于万能板来说应该密度还挺高的。 怎么样,本人的焊接技术还行吧!

电子制作
电子制作

  考虑到给舵机供电的原因,我决定给每个舵机独立用7805供电,还好L7805CV的电流最大有1A,完全能满足舵机的需求,这个板我称作基础动力电源扩展板,预留了超声波接口和一个多余的舵机口,所以这个板用来实现超声波壁障也是没问题的。

电子制作
电子制作

  都焊过前面那个板子了,焊这个板子当然是小菜一碟了。

电子制作
电子制作
电子制作
电子制作

  插上调试,我的两个用万能板焊的板子没有任何问题,在佩服自己的同时也再次自信一下吧!

  将电路装到小车上,开始调试……

电子制作

  4 、程序部分

  (时间仓促,未精调,只是实现功能)供大家参考:

  先定义各接口

  int lled = 7;

  int rled = 4;

  int lmotor = 19;

  int rmotor = 18;

  int rdate = 0;

  int ldate = 0;

  int ledpin = 14;

  int l = 0;

  int r = 0;

  int a = 0;

  int b = 0;

  int c = 0;

  int e = 0;

  void setup()

  {

  pinMode(lled,INPUT);

  pinMode(rled,INPUT);

  pinMode(lmotor,OUTPUT);

  pinMode(rmotor,OUTPUT);

  pinMode(ledpin,OUTPUT);

  }

  void run()

  {

  for(int i = 0;i 《 a;i ++)

  {

  digitalWrite(lmotor,HIGH);

  delayMicroseconds(ldate);

  digitalWrite(lmotor,LOW);

  digitalWrite(rmotor,HIGH);

  delayMicroseconds(rdate);

  digitalWrite(rmotor,LOW);

  delay(18);

  }

  }

  void loop()

  {

  l = digitalRead(lled);

  r = digitalRead(rled);

  if ((l == HIGH) || (r == HIGH))

  digitalWrite(ledpin,HIGH);

  else

  digitalWrite(ledpin,LOW);

  if((l == HIGH)&&(r == HIGH))

  {

  while((l == HIGH)&&(r == HIGH))

  {

  l = digitalRead(lled);

  r = digitalRead(rled);

  }

  }

  else if(l == HIGH) //左边儿检测到黑线,左转

  {

  ldate = 1480;

  rdate = 1630;

  a = 10;

  }

  else if(r == HIGH) //右边儿检测到黑线,右转

  {

  ldate = 1350;

  rdate = 1500;

  a = 10;

  }

  else

  {

  ldate = 1300;

  rdate = 1730;

  a = 1;

  }

  run();

  }

  上图若干:

电子制作

电子制作

  这个小车不算完,因为有太多的功能可供大家玩,比如我就装上了超声波和红外传感器,是不是挺萌的!

电子制作

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
Shawls 2018-06-22
0 回复 举报
没有文档吗? 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分