矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 72646|回复: 79

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

   关闭 [复制链接]
     
发表于 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的所有端口都被利用了,没有扩展空间,(增加避障传感器数量减少盲区,可以增加人机互动)

大容量电池

大容量电池

5110液晶

5110液晶

89S52

89S52

扫地减速电机

扫地减速电机
IMG_4711.JPG

DC-DC

DC-DC

红外传感器、步进电机

红外传感器、步进电机

低电压检测、充电检测、充电结束检测的小板

低电压检测、充电检测、充电结束检测的小板

底部

底部

充电对接触点,是铜包铁的,有导电性也有导磁性

充电对接触点,是铜包铁的,有导电性也有导磁性

评分

2

查看全部评分

     
 楼主| 发表于 2012-1-5 15:05:21 | 显示全部楼层
还有几张图片因限制无法上传了,哈哈,如果时间来的及的话,再发,下面有两个联接
www.crystalradio.cn/bbs/thread-238991-1-1.html
bbs.mydigit.cn/read.php?tid=353909
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 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 | 显示全部楼层
请补上电路图
回复 支持 反对

使用道具 举报

发表于 2012-1-5 16:28:52 | 显示全部楼层
这个要顶,希望有详细资料学习
回复 支持 反对

使用道具 举报

发表于 2012-1-5 17:30:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2012-1-5 19:35:12 | 显示全部楼层
本帖最后由 爱制作 于 2012-1-5 19:44 编辑

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

使用道具 举报

     
发表于 2012-1-5 21:51:09 | 显示全部楼层
这个实用,以后可以不用自己扫地了
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 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 700MA  1个
过滤网         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个
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-1-5 22:43:29 | 显示全部楼层
万向轮       1个
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-1-5 23:30:03 | 显示全部楼层
电路图发不上了,只能明天发了,有限制,请谅解!!谢谢
回复 支持 反对

使用道具 举报

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

使用道具 举报

     
发表于 2012-1-6 11:00:47 | 显示全部楼层
真牛啊,高人。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-1-6 12:47:49 | 显示全部楼层
视频已发布,本人没有发联接的权限,百度一下以下标题就可以了 ,谢谢大家

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

使用道具 举报

     
 楼主| 发表于 2012-1-6 15:08:00 | 显示全部楼层
未命名2.JPG

引脚定义

引脚定义
未命名.JPG 未命名1.JPG

机器人与充电器

机器人与充电器

充电器触点是磁助力的

充电器触点是磁助力的
IMG_4738.JPG

充电时

充电时
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-27 12:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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