利用51单片机制作廉价盒仔机器人

2016-02-16 297544人围观 ,发现 13 个不明物体 极客

一、盒仔机器人

BOXZ,昵称盒仔,是一款开源的互动娱乐平台!百度一下,有很多盒仔的制作教程,基本都是用arduino制作完成的。假期没事,带着宝宝们用51制作了一个廉价的BOXZ。先上张图:

IMG_20160131_140856.jpg

IMG_20160131_140901.jpg

从图上不难看出,为了宝宝们易于接受,我把盒仔的手机摇控改成了用线控的方法,做了一个简易的摇控器。

二、材料准备

360截图20160207120948157.jpg

以上原器件,某宝网上都有。另外,制作中需要用到壁纸刀、电钻、钢尺、胶水等工具。

三、外壳及皮肤制作

1、外壳的制作

(1)下载模板

下载地址:https://yunpan.cn/crIvLu9R8xVyI  访问密码 9fe1

从上面的下载地址下载模板,打印出来,然后将硬纸板切割成图上的样子,怎么切割我就不用说了吧,呵呵。

IMG_20160130_093519.jpg


(2)组装

a8ec8a13632762d09e7e5221a0ec08fa503dc6e8.png

第一步,用到的是P003,2块电机支撑板,用于连接和固定TT减速箱电机(以下简称电机)。在开始安装电机之前,大家可以先把P003实验性的插入P001,从而定义好一个方向,我们的电机都是在支撑板内侧安装的。然后就可以用紧固件分别把电机固定在P003的内侧了。如图每块P003与TT减速箱通过两个M2x30MM的螺丝固定,两边装上轮子。

8cb1cb1349540923032495e09258d109b2de49db.png

IMG_20160131_095642.jpg

第二步,安装电路板,以及p041、P020、P030以及p050。

IMG_20160131_103555.jpg

以上外壳的安装过程,如果大家没看明白,可以百度一下盒仔机器人,外壳都是一样的。

2、皮肤的制作

下载地址:https://yunpan.cn/crIvwPNjKMrgG  访问密码 825a

网上有很多皮肤,这里提供了马里奥的皮肤下载,我制作中选用了白色的模板,让宝宝们怎么涂上颜色。

IMG_20160131_140858.jpg

四、电路原理图

QQ图片20160202122638.png

按照上面的原理图,进行电路焊接,OUTA、OUTB、OUTC、OUTD分别接电机,实物如下图:

IMG_20160130_135926.jpg

这里要特别注意的是,电路中用到的万能板的大小一定要剪裁到刚好可以放到两轮之间的大小,具体要先做好组装中的第一步,然后实际量一下尺寸,这样做出来比较美观。L298N和电池可以直接放在电路板上面,因为上方的空间比较大。

五、程序原代码

    #include<stc12c2052ad.h>
    #define uint unsigned int
    sbit A1=P1^0;// 输出1
    sbit A2=P1^1;// 输出2
    sbit B1=P1^2;//输出3
    sbit B2=P1^3;//输出4
    sbit find1=P3^2;//go
    sbit find2=P3^3;//back
    sbit find3=P3^4;//left
    sbit find4=P3^5;//right
    void delay_1ms(uint x)
    {
        uint y,z;
        for(y=0;y<x;y++)
        for(z=0;z<850;z++) ;
    }
    void go()
    {
        A1=0;
        A2=1;
        B1=0;
        B2=1;
    }
    void back()
    {
        A1=1;
        A2=0;
        B1=1;
        B2=0;
    }
    void left()
    {
        A1=1;
        A2=0;
        B1=0;
        B2=1;
    }
    void right()
    {
        A1=0;
        A2=1;
        B1=1;
        B2=0;
    }
    void find()
    {
        P3=0xff;
        if(find1==0)
            go();
        if(find2==0)
            back();
        if(find3==0)
            left();
        if(find4==0)
            right();
        if(find1==1&&find2==1&&find3==1&&find4==1)
            P1=0x00;
    }
    void main()
    {
        while(1)
        {
            find();
        }
    }

c51的代码如何烧写,这里就不讲了,不会的同学可以自己网上查一下,很简单。

完整代码包下载:https://yunpan.cn/crI8w94cIWTZ3  访问密码 3754

*投稿作者:xiaowuyi,转自须注明来自FreeBuf黑客与极客(FreeBuf.COM) 

相关推荐

这些评论亮了

  • altium 回复
    原理图是用Altium Designer画的吧?
    )9( 亮了
  • 大章帝国很很猥琐不死皇帝老夫子 回复
    线控小车?
    )8( 亮了
  • Kyrios 回复
    诚意不够,至少搞个无线电的啊
    )8( 亮了
  • xiaowuyi (3级) http://www.cnblogs.com/xiaowuy... 回复
    @ Kyrios 只是为了方便 小朋友玩,所以用了线控,成本也低,把电源开关放在了线控上
    )8( 亮了
  • 李皇谛-谛造传奇KHOL 回复
    Arduino又一成功力作
    )8( 亮了
发表评论

已有 13 条评论

取消
Loading...

特别推荐

文章目录

    文章目录

      推荐关注

      官方公众号

      聚焦企业安全

      活动预告

      填写个人信息

      姓名
      电话
      邮箱
      公司
      行业
      职位
      css.php