发新帖本帖赏金 20.00元(功能说明)我要提问
返回列表
打印

【智能小车】+探索者号

[复制链接]
2303|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwz010|  楼主 | 2015-12-1 11:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zwz010 于 2015-12-1 11:43 编辑

好久就想做一个智能小车了,这次恰好在21看到这样的项目,终于下定了决心。
首先到推荐的店铺买了配件,等了好几天,昨天快递总算到货了,赶紧去取回来。
打开外包装和包装袋后的散件:
嗯,检查一下发现了一个问题,没有主控和蓝牙模块。看样子还得再买,先不管这个,先装一下试试吧。
天晚了,明天再继续吧。
图文混排很成问题啊,怎么也搞不好,只好把文字全写在前面了。
把电机固定到底盘上,固定好装上车轮发现电机固定反了,小车底盘后面比前面矮了一截。没办法,拆了重装吧,装好后发现按照店主给的图示装起来有些重心不稳,让直流电机在后车轮的前面情况应该会好一些;拆,悲剧了,一个车轮怎么都取不下来了。用平口螺丝刀撬了撬,动了。用力往下一拔,坏了,把车轮连同驱动电机上的车轮卡子一块拔出来了。
不知道驱动电机还能不能用,先不管,继续装,装好以后感觉还像那么回事。
可没有主控和蓝牙什么也干不了,先把我的旧开发板拿过来做主控吧;就是太大了,把顶层全部盖住了,另外我没有打孔器,固定也是个问题。嗯,可以捆在顶层板上,还好这块板子自带电机驱动,只需要把电池盒和变压模块固定住就好了。把顶板卸掉,正好还有条长螺丝没用到,把电池盒卡到前面的两个铜柱和中间偏后的孔之间,正好卡紧。后面还有点空闲地方,把变压模块固定上。
把顶板盖上,然后把开发板放到上面,底下全部被盖住了,超声模块用排线连上放在前面。除了蓝牙模块,其他部分就算起了。看起来还得买蓝牙模块啊,主控就用一个最小系统吧。
变压模块负责给电机和主控及其他模块供电。

IMG_20151130_165513.jpg (2.18 MB )

散件

散件

IMG_20151130_171651.jpg (1.91 MB )

装上万向轮

装上万向轮

IMG_20151201_080937.jpg (1.8 MB )

装电机1

装电机1

IMG_20151201_082537.jpg (2.44 MB )

装电机2

装电机2

IMG_20151201_085223.jpg (2.45 MB )

装车轮

装车轮

IMG_20151201_091347.jpg (2.06 MB )

重心不稳

重心不稳

IMG_20151201_103219.jpg (2.01 MB )

电车盒和变压模块

电车盒和变压模块

IMG_20151201_103524.jpg (2.61 MB )

先用原来的开发板试下

先用原来的开发板试下

IMG_20151201_103915(1).jpg (1.94 MB )

超声

超声

打赏榜单

21ic小喇叭 打赏了 10.00 元 2015-12-02

相关帖子

沙发
21ic小喇叭| | 2015-12-1 11:46 | 只看该作者
大家一起搞起来

使用特权

评论回复
板凳
北极星405| | 2015-12-1 12:15 | 只看该作者
顶一下~加油啊~刚开始总是买不齐配件……

使用特权

评论回复
地板
zwz010|  楼主 | 2015-12-1 17:41 | 只看该作者
是啊,正在买蓝牙和最小板呢

使用特权

评论回复
5
zwz010|  楼主 | 2015-12-3 09:29 | 只看该作者
本帖最后由 zwz010 于 2015-12-3 10:02 编辑

先用直流电机试下程序,然后在小车电机,使用中断产生pwm信号。OK,没问题,换上小车的减速电机,可以了,不过需要考虑下两个电机的配合。

代码图

IMG_20151203_092800.jpg (2.49 MB )

电机试验

电机试验

电机.png (32.23 KB )

电机.png

使用特权

评论回复
6
zwz010|  楼主 | 2015-12-13 16:57 | 只看该作者
本帖最后由 zwz010 于 2015-12-13 16:59 编辑

网购的其他部件到了后一直比较忙,今天总算有点时间,搞一下,首先把电池和变压模块接好,加一个船型开关。

变压.jpg (75.86 KB )

变压.jpg

使用特权

评论回复
7
zwz010|  楼主 | 2015-12-13 17:04 | 只看该作者
然后把l298n与最小系统接上,根据找到的l298n说明要求单片机与l298n共地(那个推荐商家的说明书特别差,跟没有差不多),我没有另外的电源所以是共电源,就不用考虑共地了。

l298n.jpg (99.3 KB )

l298n.jpg

使用特权

评论回复
8
zwz010|  楼主 | 2015-12-13 17:08 | 只看该作者
本帖最后由 zwz010 于 2015-12-13 17:17 编辑

写好程序,试一下,怎么倒着跑?没关系,调欢一下1和2、3和4的插脚就行了。跑的挺快,可以调一下pwm占空比。


运动图片看不清楚,用木块顶住拍一张。小车主体基本就算完成了,接下来就是自动避障了,不过最近比较忙,得过一段时间才能搞了

倒.jpg (50.7 KB )

倒.jpg

调换.jpg (60.29 KB )

调换.jpg

顶住.jpg (91.6 KB )

顶住.jpg

使用特权

评论回复

打赏榜单

21ic小喇叭 打赏了 10.00 元 2016-01-13
理由:期待继续更新哟~~~~~~

9
593621989| | 2015-12-14 13:33 | 只看该作者
这造型,哈哈,是不是很像

IMG_0155.JPG (148.73 KB )

IMG_0155.JPG

使用特权

评论回复
10
zwz010|  楼主 | 2015-12-14 17:44 | 只看该作者
593621989 发表于 2015-12-14 13:33
这造型,哈哈,是不是很像

你的万向轮的那个座呢?

使用特权

评论回复
11
593621989| | 2015-12-14 23:45 | 只看该作者
zwz010 发表于 2015-12-14 17:44
你的万向轮的那个座呢?

有呢,不过特小,自己拿轴承做的,全是回忆啊

IMG_0216.JPG (128.29 KB )

IMG_0216.JPG

使用特权

评论回复
12
zwz010|  楼主 | 2016-2-3 14:58 | 只看该作者
蓝牙对战部分app不会搞,就想做成一个蓝牙遥控小车,使用蓝牙串口助手连接,可以调节速度,控制左转右转倒车可是单独的pwm控制车速没问题,单独的蓝牙串口通信也没问题,两个放在一起就会导致蓝牙串口没**常工作。pwm信号使用定时器0产生,中断是0.5ms一次。串口采用9600波特率,但是一旦使用定时器0就会导致串口收到的数据不正确。代码如下:(代码接收蓝牙信号没问题,因为定时器0已屏蔽,如果打开就会出问题,接收数据不正确)哪位大神帮忙看下什么问题。
#include <REG52.H>

sbit vcc1=P0^0;
sbit vss1=P0^1;
sbit vcc2=P0^2;
sbit vss2=P0^3;

unsigned char b,c,pwm,t;//b接受SUBF,pwm控制2个车轮转速
// 此表为 LED 的字模                    0                 1     2     3     4     5     6     7    8     9           a     b     c    d     e      f
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};

void init()
{
        P1=0x11;
        SCON = 0x50;      //REN=1允许串行接受状态,串口工作模式1                             
            TMOD|= 0x21;      //定时器1工作方式2  ,   定时器0工作方式1               
                PCON|= 0x00;
            // 波特率9600、数据位8、停止位1。无校验位 (11.0592)
                TH1 = 0xFD;       
            TL1 = 0xFD;
                TH0 = 0xfe; //11.0592  定时器0用于产生pwm  ,0.5ms
            TL0 = 0x33;         
                TR1  = 1;
                //TR0=1;
                ET0=1;                                                            
                ES   = 1;        //开串口中断                  
                EA   = 1;        // 开总中断
                PS         = 1;//串口中断优先
}
void main (void) {

        init();  
        pwm=100;
        //vss1=vss2=0;
        while(1)
    {       
          if (RI)       //RI接受中断标志
             {  RI=0;             //清除RI接受中断标志
             b=SBUF;        //SUBF接受/发送缓冲器
       }
           c =(b%16)&0x7f;
           //P0=LED7Code[c] ;
          
           switch(c){
                    case 0:P0=LED7Code[c];break;//pwm=100; break;
                 case 1:P0=LED7Code[c] ;break;//pwm=80; break;
                 case 2:P0=LED7Code[c] ;break;//pwm=70; break;
                 case 3:P0=LED7Code[c] ;break;//pwm=60; break;
                 //case 4:reverse(); break;
                 default:P0=LED7Code[9];break;//stop();
           }
                   if(t>100) t=0;
            if(t<pwm) ;//vcc1=vcc2=0;
            else ;//vcc1=vcc2=1;
   }
}
如果把定时器0的中断时间调的长一些也可以运行,但是小车会有明显的卡顿现象。
void T0zd(void) interrupt 1    //3 为定时器1的中断号  1 定时器0的中断号 0 外部中断1 2 外部中断2  4 串口中断
{
    TH1 = 0xfe; //11.0592
        TL1 = 0x33;
        t++;   
}
如果定时器0中断时间长一些也能正常运行,但是小车运**顿,所以最长就是0.5ms了

使用特权

评论回复
13
zwz010|  楼主 | 2016-2-3 15:00 | 只看该作者
zwz010 发表于 2016-2-3 14:58
蓝牙对战部分app不会搞,就想做成一个蓝牙遥控小车,使用蓝牙串口助手连接,可以调节速度,控制左转右转倒 ...

:P是: p

使用特权

评论回复
14
zwz010|  楼主 | 2016-2-15 10:20 | 只看该作者
pwm信号不使用中断了,在程序中添了个变量自加,显示没有问题,但是我的小车没电了,没带充电器回来,所以没法试到底行不行。

使用特权

评论回复
发新帖 本帖赏金 20.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

12

帖子

1

粉丝