搜索
bottom↓
回复: 43

四路红外避障+红外遥控(共用避障硬件),图片+视频,很灵活,刚出炉【恢复】

[复制链接]

出0入0汤圆

发表于 2008-12-28 14:19:55 | 显示全部楼层 |阅读模式
遥控+避障视频1,遥控器启动避障模式,然后停止.

http://player.youku.com/player.php/sid/15614652/v.swf

视频2,在椅子底下穿梭

http://player.youku.com/player.php/sid/15615390/v.swf





铝合金小车和开发板(电池是组合电池,建议4节) (原文件名:PICT0742_1.jpg) 





红外线避障模块,13X11mm,2.54mm间距的针 (原文件名:PICT0740_1.jpg) 





轮胎+5mm橡胶圈(极耐磨,可做万转电钻皮带),几乎不可能磨损坏 (原文件名:PICT0743_1.jpg) 





带弹簧钢垫的M3X20铜立柱 (原文件名:PICT0744_1.jpg) 





空主板PCB (原文件名:PICT0745_1.jpg) 





 (原文件名:万能遥控器.jpg) 

出0入0汤圆

发表于 2009-1-14 08:25:29 | 显示全部楼层
红外避障不错,学习

出0入0汤圆

发表于 2009-1-14 00:34:06 | 显示全部楼层
避障,3方向就可以了,为什么要4路?

出0入0汤圆

发表于 2009-1-13 20:59:41 | 显示全部楼层
挺不错的,楼主很牛

出0入0汤圆

 楼主| 发表于 2009-1-13 19:51:11 | 显示全部楼层
To: hyz_avr 

  单片机是STC的,也是51单片机,速度相当快.



做了个通过加长轮胎输出轴,提高悬挂效果的试验,轮胎轴是弹簧钢丝做的,加长后弹性很足,加负载后变形明显.



四路避障板控制小车,视频:

http://player.youku.com/player.php/sid/16477214/v.swf

出0入0汤圆

发表于 2009-1-6 22:50:19 | 显示全部楼层
LZ真是好人,学习中,接触的有些晚,能够加入这个论坛感觉真好

出0入0汤圆

发表于 2009-1-6 17:13:30 | 显示全部楼层
....不知道怎么联系到你,只能在淘宝上发站内信了,请LZ查收

出0入0汤圆

发表于 2009-1-6 16:54:09 | 显示全部楼层
弓虽!

出0入0汤圆

发表于 2009-1-6 16:38:00 | 显示全部楼层
很有意思啊..呵呵..什么时候开始卖啊.. 用的是什么单片机的.

本贴被 hyz_avr 编辑过,最后修改时间:2009-01-06,16:39:06.

出0入0汤圆

发表于 2009-1-6 16:25:48 | 显示全部楼层
不错,能提供货了吗?想进一部继续DIY

出0入0汤圆

 楼主| 发表于 2009-1-2 22:50:56 | 显示全部楼层
To:zyyanfei

1.现在避障模块发射电流1.5ma,25%的占空比,白色物体大约20-30cm可判断,非常黑的物体距离就近多了.6-7cm,提高发射电流和加大占空比可提高距离,但肯定不能太大了,不然整个房间都是反射到.

2.一体接收管电路都有处理,信号都有延迟.太小太大的脉宽都不行,合适的脉宽和不重复(防干扰)的信号是持续低电平.

出0入0汤圆

发表于 2009-1-2 21:06:30 | 显示全部楼层
不错~~



问楼主两个问题:

   

    1. 即多远距离就能判别前方障碍物?

    2. 对于此款接收管,在接收到的红外线时是持续的低电平还是仅仅产生一个单低脉冲?

出0入0汤圆

发表于 2009-1-1 14:49:40 | 显示全部楼层
顶一下,酷啊

出0入0汤圆

发表于 2009-1-1 10:53:48 | 显示全部楼层
To ct_dev:

我每只轮子的测试, 有一个有点偏, 等有空了把螺丝松紧调整下估计就行了. 现在我是拿双面胶粘着测试的, 老婆说比给儿子买的那个车好玩, 就是难看点了. 呵呵
头像被屏蔽

出0入0汤圆

发表于 2009-1-1 09:11:00 | 显示全部楼层
Cool !

出0入0汤圆

 楼主| 发表于 2009-1-1 00:49:30 | 显示全部楼层
To:aahui

很不错啊,这么快就做起来了.4节平铺应该不会翘头吧?两层是会翘头,放中间重心肯定很低了,但缺点是换电池麻烦点,建议孔全部打完后两头封闭起来,让变速箱在封闭环境里.

直线还是有跑偏,这不可避免,但偏的很小的,测试10米可能有0.1米的偏,对于两轮车,即使两边转的圈数完全相同,还是会有跑偏的,即使是小汽车,也有跑偏现象,需要不断调整方向盘.小车同样需要外界反馈来调整自己.地面跑的东西即使自身精度再高,两侧误差一定是有的.

出0入0汤圆

发表于 2009-1-1 00:06:46 | 显示全部楼层
建议楼主把电池放在电机中心,重心就降低了. 电池放上面, 我测试急加速时, 小车会翘头的!

出0入0汤圆

发表于 2009-1-1 00:02:48 | 显示全部楼层
前天买了小车平台, 电机虽小,却是不错. 今天已经用洞洞板驱动起来了, 遥控随便找了个不用的,3节1.5V电池, 前进\后退\左转\右转, 米做调速,跑的很好,可能电压低电机声音轻柔好听.不过直线还是有跑偏. 下一步就开始做避障了,呵呵.

出0入0汤圆

发表于 2008-12-31 13:41:46 | 显示全部楼层
顶!

出0入0汤圆

 楼主| 发表于 2008-12-31 11:30:26 | 显示全部楼层
上传电路图.稍微改进了下避障碍程序,现在小车可以在家里自由穿梭,程序策略肯定比较粗糙,看得出来小车挺痛苦的,一下从前进变成后退,坐转变成右转,加上我用的电池是两层的旧大电池(3/4A东芝,废笔记本拆下的,准备丢的时候发现电池性能仍然非常好,容量很大),重心高,经常出现一头翘起来的情况(这次电机驱动用的是MOS芯片,改变方向时瞬间冲击电流大),昨天让小车连续折腾了3小时.

点击此处下载 ourdev_566183.pdf(文件大小:51K) (原文件名:四路避障主板.pdf) 

点击此处下载 ourdev_566184.pdf(文件大小:37K) (原文件名:红外避障模块.pdf) 

出0入0汤圆

发表于 2008-12-28 19:10:39 | 显示全部楼层
酷,漂亮!

出0入0汤圆

 楼主| 发表于 2008-12-28 15:41:11 | 显示全部楼层
TO:taoriran

就是主板不同,小车平台是一样的.这个板并不是前一板的升级,而是另外一个玩点.这个板的并没有声音,LCD,AD等等资源.第一板未设计避障功能,但可以在一个IO上增加一个红外线LED,跟红外线接收头靠在一起,也可以避障的,我在那个板上做过测试,具体我拍好照片后发给你吧,你在熟悉单片机后自己DIY,也很有乐趣的.并不破坏任何电路,直接插在LCD那个位置上(LCD功能此时不能用),程序对应修改一下,一样可以避障,跟现在这个板功能差不多.

出0入0汤圆

发表于 2008-12-28 15:29:16 | 显示全部楼层
买了你的第一版车,很快又出了第二版.好象主板变了呢?

出0入0汤圆

 楼主| 发表于 2008-12-28 15:00:21 | 显示全部楼层
刚出炉的东西,很多东西没整理,先贴出程序吧,首先说明,该程序是演示程序,而我也不会为小车做极完善的商业程序,不过比较自信的认为:此程序对学习者来说,具强烈学习价值,而且此程序做一些优化,完全可以和商业产品相比.



改进建议:

1.加入掉电待机和红外线唤醒(以前我发的第一板程序含有).目前是空闲模式,耗电7ma左右.

2.加入充电提醒(硬件有充电信号引入单片机外部中断).

3.遥控器可切换多种模式,让小车显得更"聪明".

4.目前代码空间约占2k,总共是4k.还有比较大的发挥余地.



main.c,主要就这一个文件.因为是匆匆编写,注释不多.



#include <stdio.h>

#include <intrins.h>

#include "STC12C5410AD.H"

#include "sio.h"



#define MIN9MS 0x0120       //9ms中心是0x0159

#define MAX9MS 0x01a0



#define MIN45MS 0x0090       //4.5ms中心是0x00ac

#define MAX45MS 0x00d0



#define MIN225MS 0x0040       //2.25ms中心是0x0056

#define MAX225MS 0x0080



#define MIN056MS 0x000e       //0.56ms中心是0x0015

#define MAX056MS 0x001b



#define MIN168MS 0x0020       //1.68ms中心是0x0040

#define MAX168MS 0x0060



sfr ISP_CUNTR = 0xE7;



sbit LED1 = P1^1;

sbit LED2 = P1^2;



sbit IR_FRONT = P3^3;

sbit IR_LEFT = P3^4;

sbit IR_RIGHT = P3^5;

sbit IR_BACK = P1^3;



sbit IR_OUT = P1^0;

sbit PWM0 = P3^7;



sbit MOTO_IN_A1 = P1^7;

sbit MOTO_IN_A2 = P1^6;



sbit MOTO_IN_B1 = P1^5;

sbit MOTO_IN_B2 = P1^4;



bit power_stat;

static unsigned char car_stat;  //小车状态:0,停止;1,前进;2,后退;3,左转;4,右转;ff,自控避障模式



static unsigned char code led_mod_table[3][20] = {

   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},

   {1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0},

   {1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0}

};

unsigned char idata led_mod = 0;

static unsigned char idata led_tick = 0;

static unsigned char idata led_ptr = 0;



#define IR_SIGNAL_TOTAL 21

#define IR_SIGNAL_VALID 18



static unsigned char code ir_table[IR_SIGNAL_TOTAL] = {

    1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0

};

static unsigned char code ir_check_table[IR_SIGNAL_TOTAL] = {

    0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0

};



static unsigned char idata ir_ptr = 0;



static unsigned char idata front_signal = 0;

static unsigned char idata back_signal = 0;

static unsigned char idata left_signal = 0;

static unsigned char idata right_signal = 0;



static bit front_obj = 0, back_obj = 0, left_obj = 0, right_obj = 0;



static void delay(unsigned long v) {

  while (v--) {

  }

}



/* 

 * PCA中断计数,根据位置判断信号区域和定义,位置0表示初始,1代表引导码信号,2表示引导码间隔,

 * 3表示第一个bit的信号,4表示第一个bit的间隔,以次类推...

 * 更具体见对应的红外线协议.

*/

static unsigned char idata pca_tick;

static unsigned char idata pca_int_count;

static unsigned char data pca_int_total;    /* 根据引导头确定总长度 */

static unsigned int idata period;   /* 红外信号占或空周期计数 */

static unsigned char idata data_buf[6];  /* 红外线协议数据缓冲区 */

static unsigned int idata ccap1;        //PCA0上一次的的计数

static unsigned char idata frame_dog;  //红外帧看门狗,限定时间未接收完成清除工作



void time0_isr() interrupt 1

{

    unsigned char tmp;



    if (ir_table[ir_ptr++]) {

        IR_OUT = 0;

    } else {

        IR_OUT = 1;

    }

    ir_ptr %= IR_SIGNAL_TOTAL;



    tmp = ir_check_table[ir_ptr];

    if ((!IR_FRONT && tmp) || (IR_FRONT && !tmp))

        front_signal++;

    if ((!IR_LEFT && tmp) || (IR_LEFT && !tmp))

        left_signal++;

    if ((!IR_RIGHT && tmp) || (IR_RIGHT && !tmp))

        right_signal++;

    if ((!IR_BACK && tmp) || (IR_BACK && !tmp))

        back_signal++;



    if (ir_ptr == 0) {

     //   com_putchar(front_signal);

        if (front_signal>= IR_SIGNAL_VALID)

            front_obj = 1;

        else

            front_obj = 0;

        if (back_signal>= IR_SIGNAL_VALID)

            back_obj = 1;

        else

            back_obj = 0;

        if (left_signal>= IR_SIGNAL_VALID)

            left_obj = 1;

        else

            left_obj = 0;

        if (right_signal>= IR_SIGNAL_VALID)

            right_obj = 1;

        else

            right_obj = 0;

        front_signal = 0;

        back_signal = 0;

        left_signal = 0;

        right_signal = 0;

    }

}



void time0_initialize(void)

{

    TMOD &= ~0x0F;      /* clear timer 0 mode bits */

    TMOD |= 0x02;       /* put timer 0 into MODE 2 */

        TH0 = 0x5C;         /* 256 - XTAL*dur/T1_12/1000000, dur=定时器的周期,以us为单位*/

        TL0 = 0x5C;         /* 100us */

    PT0 = 0;            /* 时钟0中断低优先级 */

        TR0 = 1;

        ET0 = 1;

}



static void wakeup (void) interrupt 2

{



}





static void pca_isr (void) interrupt 6

{

    unsigned char i, j;



    if (CCF1) {

        CCF1 = 0;   //清PCA1中断标志

        LED1 = IR_RIGHT;

        LED2 = IR_RIGHT;

        if (!pca_int_count) {   //第一次收到信号

            if (!IR_RIGHT) {

                ccap1 = pca_tick * 256 + CCAP1H;

                pca_int_count++;

            }

        } else {                //已经收到一些信号

             period = pca_tick * 256 + CCAP1H - ccap1;

             ccap1 = pca_tick * 256 + CCAP1H;

//com_putchar(period / 256);

//com_putchar(period % 256);



            if (pca_int_count == 1) {

                if (period < MIN9MS || period> MAX9MS) {  //9ms

                    pca_int_count = 0;

                    frame_dog = 0;

                } else

                    pca_int_count++;

            } else if (pca_int_count == 2) {

                if (period> MIN225MS && period < MAX225MS) { //2.25ms

                    pca_int_total = 3;

                    pca_int_count++;

                } else if (period> MIN45MS && period < MAX45MS) { //4.5ms

                    pca_int_total = 67;

                    pca_int_count++;

                } else {

                    pca_int_count = 0;

                    frame_dog = 0;

                }

            } else {

                if (IR_RIGHT) {

                    if (period> MIN056MS && period < MAX056MS) {  //0.56ms

                        if (pca_int_count>= pca_int_total) {  //帧接收完毕,下面进行有效性分析.

                            if (pca_int_total == 67) { //完整信号,含有引导信号,设备码8bit,设备反码8bit,命令字8bit,命令字反码8bit

                                if ((data_buf[0] ^ data_buf[1] == 0xff) && (data_buf[2] ^ data_buf[3] == 0xff)) {

                                    com_putchar(data_buf[0]);

                                    com_putchar(data_buf[2]);

                                    if (data_buf[0] == 0x40) {

                                        switch (data_buf[2]) {

                                        case 0x5F: //左

                                            car_stat = 3;

                                            break;

                                        case 0x5B: //右

                                            car_stat = 4;

                                            break;

                                        case 0x5A: //上

                                            car_stat = 1;

                                            break;

                                        case 0x5E: //下

                                            car_stat = 2;

                                            break;

                                        case 0x56: //菜单

                                            car_stat = 0;

                                            break;

                                        case 0x0:  //数字0

                                            car_stat = 0xff;

                                            break;

                                        case 0x12: //POWER

                                           // power_stat = ~power_stat;

                                            break;

                                        default:

                                            break;

                                        }

                                    }

                                }

                            } else {                   //重复信号,仅含有引导信号

                            }

                            pca_int_count = 0;

                            frame_dog = 0;

                        } else {

                            pca_int_count++;

                        }

                    } else {

                        pca_int_count = 0;

                        frame_dog = 0;

                    }

                } else {

                    j = (pca_int_count - 3) / 2;

                    i = j / 8;

                    j = j % 8;



                    if (period> MIN168MS && period < MAX168MS) {  //1.68ms

                     //   com_putchar(0x01);

                        data_buf |= (0x01 << j);

                        pca_int_count++;

                    } else if (period> MIN056MS && period < MAX056MS) {  //0.56ms

                     //   com_putchar(0x00);

                        data_buf &= ~(0x01 << j);

                        pca_int_count++;

                    } else {

                        pca_int_count = 0;

                        frame_dog = 0;

                    }

                }

            }

        }

    }



    if (CF) {    //PCA计数溢出中断,19.6608MHZ晶体大约6.7ms溢出

        CF = 0;

        pca_tick++;

        if (led_tick++>= 10) {

            led_tick = 0;

            if (led_mod_table[led_mod][led_ptr++]) {

                LED1 = 0;

                LED2 = 0;

            } else {

                LED1 = 1;

                LED2 = 1;

            }

            led_ptr %= 20;

        }



        if (pca_int_count) {

            frame_dog++;

            if (frame_dog>= 15) {  //100ms后重新开始分析新的红外线数据包

                pca_int_count = 0;

                frame_dog = 0;

            }

        }

    }

}



void auto_power_down() {

    delay(30000);

    ISP_CUNTR = 0x20;  //从AP复位并从AP执行

}



void main (void)

{

    unsigned char i;

    MOTO_IN_A1 = 0;

    MOTO_IN_A2 = 0;

    MOTO_IN_B1 = 0;

    MOTO_IN_B2 = 0;



    P1M1 = 0xf0;   //P1.7~P1.4  强推挽输出



    

    EA = 0;



    power_stat = 0;



    time0_initialize();



    com_initialize ();    /* initialize interrupt driven serial I/O */

    com_baudrate (4800); /* setup for 1200 baud */

/*

    CMOD = 0x01;          // #00000000B,PCA空闲计数,PCA计数源=Fosc/12,PCA溢出中断(做一个定时器使用)

    CCON = 0x00;          //PCA中断标志清0,PCA停止计数

    CL = 0x0;

    CH = 0x0;



    CCAPM1 = 0x31;        //PCA1上升下降沿捕获

*/

    CMOD = 0x03;          /* #00000010B,PCA空闲计数,PCA计数源=fosc/2,PCA溢出中断 */

    CCON = 0x00;          //PCA中断标志清0,PCA停止计数

    CL = 0x0;

    CH = 0x0;



    CCAPM1 = 0x31;        //PCA1上升下降沿捕获



    CCAPM0 = 0x42;        //PCA0工作模式:8位pwm

    PCA_PWM0 = 0x00;

    CCAP0L = 0x40;

    CCAP0H = 0x40;

    





    EPCA_LVD = 1;         //允许PCA和低压检测中断  



    car_stat = 0;

    pca_tick = 0;

    pca_int_count = 0;

    frame_dog = 0;





    EA = 1;                         /* Enable Interrupts */

    CR = 1;                         //启动PCA计数





    while (1)

    {

        if (power_stat) {

         //   auto_power_down();

        }

        if (left_obj || right_obj || front_obj || back_obj) {

            LED1 = 0;

            LED2 = 0;

        }

        switch (car_stat) {

        case 0:

            MOTO_IN_A1 = 0;

            MOTO_IN_A2 = 0;

            MOTO_IN_B1 = 0;

            MOTO_IN_B2 = 0;

            break;

        case 1:

            if (!front_obj) {

                MOTO_IN_A1 = 0;

                MOTO_IN_A2 = 1;

                MOTO_IN_B1 = 0;

                MOTO_IN_B2 = 1;

            } else {

                MOTO_IN_A1 = 1;

                MOTO_IN_A2 = 0;

                MOTO_IN_B1 = 1;

                MOTO_IN_B2 = 0;



                delay(10000);



                car_stat = 0;

            }

            break;

        case 2:

            if (!back_obj) {

                MOTO_IN_A1 = 1;

                MOTO_IN_A2 = 0;

                MOTO_IN_B1 = 1;

                MOTO_IN_B2 = 0;

            } else {

                MOTO_IN_A1 = 0;

                MOTO_IN_A2 = 1;

                MOTO_IN_B1 = 0;

                MOTO_IN_B2 = 1;



                delay(10000);



                car_stat = 0;

            }

            break;

        case 3:

            if (!left_obj) {

                MOTO_IN_A1 = 1;

                MOTO_IN_A2 = 0;

                MOTO_IN_B1 = 0;

                MOTO_IN_B2 = 1;

            } else {

                MOTO_IN_A1 = 0;

                MOTO_IN_A2 = 0;

                MOTO_IN_B1 = 0;

                MOTO_IN_B2 = 0;

            }

            break;

        case 4:

            if (!right_obj) {

                MOTO_IN_A1 = 0;

                MOTO_IN_A2 = 1;

                MOTO_IN_B1 = 1;

                MOTO_IN_B2 = 0;

            } else {

                MOTO_IN_A1 = 0;

                MOTO_IN_A2 = 0;

                MOTO_IN_B1 = 0;

                MOTO_IN_B2 = 0;

            }

            break;

        case 0xff:

            if (!front_obj) {

                MOTO_IN_A1 = 0;

                MOTO_IN_A2 = 1;

                MOTO_IN_B1 = 0;

                MOTO_IN_B2 = 1;

            } else {

                i = pca_tick % 3;

                if (i == 0 && !left_obj) {

                    MOTO_IN_A1 = 1;

                    MOTO_IN_A2 = 0;

                    MOTO_IN_B1 = 0;

                    MOTO_IN_B2 = 1;

                    delay(50000);

                } else if (i == 1 && !right_obj) {

                    MOTO_IN_A1 = 0;

                    MOTO_IN_A2 = 1;

                    MOTO_IN_B1 = 1;

                    MOTO_IN_B2 = 0;

                    delay(50000);

                } else if (i == 2 && !back_obj) {

                    MOTO_IN_A1 = 1;

                    MOTO_IN_A2 = 0;

                    MOTO_IN_B1 = 1;

                    MOTO_IN_B2 = 0;

                    delay(50000);

                } else {

                    MOTO_IN_A1 = 0;

                    MOTO_IN_A2 = 0;

                    MOTO_IN_B1 = 0;

                    MOTO_IN_B2 = 0;

                    delay(50000);

                }

            }

            break;

        default:

            break;       

        }

        PCON |= 0x01;

    }

    

}

本贴被 ct_dev 编辑过,最后修改时间:2008-12-28,20:54:08.

出0入0汤圆

发表于 2009-3-24 00:07:09 | 显示全部楼层
请问您怎么对马达进行调试的。。。。马达达到怎么样的效果就可以了

出0入0汤圆

发表于 2009-3-24 14:48:19 | 显示全部楼层
请问 你红外线接受和发送用的是什么元件。。。。电池是1.5V的吗

出0入0汤圆

发表于 2009-6-9 21:43:29 | 显示全部楼层
有仿真电路吗?
麻烦发给我,行吗?
418933233@qq.com
急用,谢谢!

出0入0汤圆

发表于 2009-6-22 19:47:07 | 显示全部楼层
xueixi

出0入0汤圆

发表于 2009-8-27 09:57:31 | 显示全部楼层
请问,最远距离可以达到多少?

出0入0汤圆

发表于 2009-12-4 16:45:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-4 17:32:34 | 显示全部楼层
不错喔顶顶

出0入0汤圆

发表于 2009-12-10 15:20:49 | 显示全部楼层
请问搂主 一套多少钱   想搞一套玩玩

出0入0汤圆

发表于 2009-12-12 17:23:04 | 显示全部楼层
好漂亮的东东,顶一下

出0入0汤圆

发表于 2010-1-1 03:45:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-7 17:40:15 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2010-3-7 19:06:34 | 显示全部楼层
回复【28楼】dasu2009  
-----------------------------------------------------------------------

最远可以达到1米(白色大面积物体),但对于小车这个距离太远了.

出0入0汤圆

发表于 2010-3-13 12:55:35 | 显示全部楼层
好,不错

出0入0汤圆

发表于 2010-4-3 11:11:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-3 11:43:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-4 23:13:03 | 显示全部楼层
标记下

出0入0汤圆

发表于 2010-4-4 23:30:00 | 显示全部楼层
为什么避开障碍物只会左拐

出0入0汤圆

 楼主| 发表于 2010-4-5 08:50:08 | 显示全部楼层
回复【40楼】huangkc  
-----------------------------------------------------------------------

程序随即选择一个无障碍的方向拐弯.

出0入0汤圆

发表于 2010-4-5 08:59:41 | 显示全部楼层
标记。

出0入0汤圆

发表于 2010-9-7 11:21:33 | 显示全部楼层
http://shop59582324.taobao.com/  这里有很好的红外避障模块 哦,精度很高,可以测到40CM,有单路,也有双路哦,老板人也很好,在同等产品中,非常的便宜,大家可以去看看,不懂的地方,并且还有人给回答,是超声波初学者的首选哦
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 23:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表