bg4jkl 发表于 2012-1-5 14:58:24

【参赛】自主充电扫地机器人

几年前就有这个想法,一年拖一年,一直没有信心,网上保洁机器人的视频越来越多,看的心里痒痒,从今年8月份就开始筹备扫地机器人的方案,原理:利用机器人前面的4个红外线传感模块进行避障,程序运行方式有单边寻边方式、随机避障方式、正方形沿边扩大方式、三角波形方式。扫地电机有断续工作、连续工作。
如果机器人电源电压不足时,在单边寻边避障方式基础上开启寻迹(机器人低部的三个寻迹传感器)寻找墙边的充电位置,充电位置是一条30公分的黑线来引导机器人于充电器对接,充电器触点是磁助力触点,当机器人接近充电器时,利用磁力防止小位置的偏离,使触点良好接触。
避悬崖也是利用三个寻迹传感器完成的:在同一时间内三个寻迹传感器没有反馈,表示悬空,使机器人后退5公分,旋转180度,做掉头行驶。
主要考虑机器人的寿命问题,驱动主轴采用步进电机,用单片机P2驱动ULN2003驱动步进电机,步进电机电原用DC-DC模块,来调节所需的驱动电流和主轴的力度。
扫地减速电机是在网上购的,只是电机的寿命太短,于是拆了VCD的旧机芯,利用光驱的主轴电机和减速机搭配,增加电机寿命。
锂电电源分为三路,两路经DC-DC驱动步进电机、单片机,一路驱动吸尘风机。
三个按键:菜单键、增加键、清扫键
液晶屏采用5110屏,小巧、省电
DS1302实时时钟 设定三组开关机时间,实现自动化。单按清扫键,只运行30分钟(只是程序这样写而已)
具有低电压检测、充电检测、充电结束检测,全面采用TL431精确检测
电池是4000MA的锂电,正常工作电流1500MA,外壳是云台监控器罩,
经过两周的测试,使用效果良好,噪声低,寿命长。
程序还有待于提高,更加智能化,如果用89S52做计划、合理、不重复打扫卫生,很困难!
89S52的所有端口都被利用了,没有扩展空间,(增加避障传感器数量减少盲区,可以增加人机互动)

bg4jkl 发表于 2012-1-5 15:05:21

还有几张图片因限制无法上传了,哈哈,如果时间来的及的话,再发,下面有两个联接
www.crystalradio.cn/bbs/thread-238991-1-1.html
bbs.mydigit.cn/read.php?tid=353909

bg4jkl 发表于 2012-1-5 15:17:15

随机避障的一段函数
void control()
{

if(hour == on1||hour == on2||hour == on3||clean_inc == 1)        //时间相同、清扫键按下时,启动
       {
       if(voltage_test == 1&&charge_test == 1) //如果电压高于10。6V时、没有检测到充电器时 开始工作
           {        
             saodi = 0;//开启扫地机、吸尘器
           if(man_test == 0){run =1; saodi =1;}        //如果发现有人,停止扫地,跟随
                                    
                if(front_left == 1&&left == 1&&front_right == 1&&right == 1) //如果前方没有障碍正确避障
                        {
                        if(jishu4==2){run = 2;delay_s(20);run = 4;delay_s(20);} //如果计数器4长时间(30s)没有动作,有可能机器卡住,就左右动作
                        if(jishu4==4){run = 2;delay_s(20);run = 3;delay_s(20);}
                        if(jishu4==6){run = 3;delay_s(30);run = 4;delay_s(30);run =1;delay_s(30);}
                        if(jishu4==10){buffer4 = 0;jishu4 = 0;run = 0;while(1){run = 0;en = 1;tiaoshi();disp_time();}}                   //如果3分钟不能摆脱障碍物,就待机
                        run = 1;        //直线行走
                        }
                       if(left == 0||front_left == 0)
                          {
                                              if(front_left == 0&&front_right == 0){run = 2;delay_s(30);run = 4;delay_s(10);buffer4 = 0;jishu4 = 0;}
                                                                               
                                run = 4;delay_s(10);jishu1++;buffer4 = 0;jishu4 = 0;
                       
                                                }        // 如果左边、前左有障碍时,右转
                                                               
                                else if(right== 0||front_right == 0)
                               
                                {
                                if(front_left == 0&&front_right == 0){run = 2;delay_s(30);run = 3;delay_s(10);buffer4 = 0;jishu4 = 0;}
                                                               
                                run = 3;delay_s(10);jishu2++;buffer4 = 0;jishu4 = 0;

                                }        // 如果右边、前右有障碍时,左转

                                if(front_left == 0&&front_right == 0)//如果前方有障碍物
                                                {
                                        run = 2;
                                        delay_s(30);
                                        run = 3;
                                                 delay_s(10);
                                        buffer4 = 0;
                                        jishu4 = 0;
                                        }
                                        if((jishu1>=8)||(jishu2>=8)) //       10秒钟连续碰撞8次,就后退加随机左右运动
                                              {
                                                  run = 2;
                                                  delay_s(30);
                                                                          
                                                  if(jishu3){run = 3;buffer4 = 0;jishu4 = 0;}
                                                  if(!jishu3){run = 4;buffer4 = 0;jishu4 = 0;}
                                                  delay_s(10);
                                                  buffer4 = 0;
                                                  jishu4 = 0;
                                             }       

                        if(under_right ==1&&under_mid==1&&under_left ==1){run =2;delay_s(10);run =4;delay_s(80);buffer4 = 0;jishu4 = 0;}
                                }
                   }

轻风 发表于 2012-1-5 16:26:38

请补上电路图

stststst 发表于 2012-1-5 16:28:52

这个要顶,希望有详细资料学习

WEILRZI 发表于 2012-1-5 17:30:10

爱制作 发表于 2012-1-5 19:35:12

本帖最后由 爱制作 于 2012-1-5 19:44 编辑

看似不错,但不知实用效果任何。我在商城里看到有成品出售,很感兴趣。但问了一下售货员,快一年了,一台也没卖出去。因为实用效果不行,有一个客户买了以后,又退货了,说只能当一个玩具用。你这个不知怎么样,请详细介绍一下,很感兴趣。

jhnewboy 发表于 2012-1-5 21:51:09

这个实用,以后可以不用自己扫地了

bg4jkl 发表于 2012-1-5 22:24:47

元器件清单:
89S52          1个
DS1302         1个
2032电池座   1个
40P座          1个
8P座         1个
16P座          2个
ULN2003      2个
CR2032电池   1个
24M晶体      1个
32.768K晶体    1个
103排阻      1个
102排阻      1个
5V继电器       3个
3MM不锈钢螺丝40个
30P电容      2个
16V220电容   1个
104电容      3个
5110液晶屏   1块
1N4148         5个
电阻103      8个
电阻220      4个
电阻0.1欧1W    1个
发光二极管   4个
硬盘音圈磁铁   1块
DC-DC模块      2个
按键         6个
开关         3个
风机12V 700MA1个
过滤网         1块
步进电机       2个
车轮+轮轴      2套
红外传感器   7个
减速机         2个
VCD光驱电机    2个
503电位器      2个
光藕         3个
S8550三极管    3个
S8050三极管    3个
TL431          2个
ISP10P插座   1个
排针         2根
保险管座       1个
2A保险管       1个
杜邦线         40根
尼龙扎带       20根
5000MA 12.6V锂电1块
充电器          1个
网线 跳线      0.5米
20MM铜接      20个
10MM铜接      6个
洞洞板         1块
2MM铝板       0.3平
自制旋转扫把   2把
云台监控器罩   1个

bg4jkl 发表于 2012-1-5 22:43:29

万向轮       1个

bg4jkl 发表于 2012-1-5 23:30:03

电路图发不上了,只能明天发了,有限制,请谅解!!谢谢

ym78321 发表于 2012-1-6 10:55:37

这种类似产品我买了,也是受同事影响,他说好,我就买了。
效果:不要要求太高就可以,程序上可设定定时清扫,我订的是每周两次,我家是木地板,扫满后用手指抹地板还是很干净(但难免还有一点灰色的极细灰尘),比起自己拖地也差不多,据我经验,适应传统拖布拖地,要想手摸绝对无灰,恐怕要拖三次,还的工具且每次每房间都先洗拖布再拖的话也许两次。
而机器人扫地机大致相当于拖一遍的效果,我还是满意的,主要他可以拖床底。
另外他适合无人在家时使用,因为扫地路径是按程序安排的,干扰越多效率越低。毕竟智能有限,所以有人把它当成玩具也可理解。对此类新生事物个人感觉不能实现把他想象太高,这样故居价格就能决定是否适合你。我同事2005年在日本看到5000多元人民币价位的相同产品,如今降到 600~1000~2000的水平,所以他买了。

cooluc 发表于 2012-1-6 11:00:47

真牛啊,高人。

bg4jkl 发表于 2012-1-6 12:47:49

视频已发布,本人没有发联接的权限,百度一下以下标题就可以了 ,谢谢大家

扫地机器人钻床底
扫地机器人清扫效果
扫地机器人小空间避障
扫地机器人
扫地机器人与狗狗互动
扫地机器人带上帽子

bg4jkl 发表于 2012-1-6 15:08:00

页: [1] 2 3 4 5 6
查看完整版本: 【参赛】自主充电扫地机器人