DIY灭火机器人后的心得与体会
说起参加这次省机器人竞赛不得不感谢我的指导老师Z老师(不方便透漏老师的个人信息 哈哈(ಡωಡ)hiahiahia ,)能够参加这个比赛还要感谢老师对我们的信任,之前大一都是自己买个51单片机开发版配着老郭的《十天学会单片机》的书,一直啃着,用电脑没事点个灯或者弄亮个数码管就在宿舍还挺开心,之前也没玩过太多的传感器,也就开发版上的光敏电阻或者ds18b20,要不就是红外,总之开发板上的外设很少,所以在开学初的时候老师给我发消息让我去他办公室拿点传感器玩,去的时候老师说这学期要整个省机器人竞赛,问我愿不愿意参加,我当时心里没太多底气,之前只时学会玩单片机上的东西,不过老师既然说了,说明对我还是充满信心(嘻嘻,偷笑一下),之后他给我一些制作机器人的一些传感器,具体有一个stc89c51单片机最小系统板,光电门,l298n电机驱动,红外避障,继电器,寻迹模块,,声音模块及一些杜邦线。接下来就开始组队啦,当然还是我的老队友老W,还有一个就是z老师给我们配的一个新队友,专业是电信的l同学,于是我们从网上买了小车的散件,之后老师给我们从学校申请了一间属于自己得实验室,第一天我们就开始搭建实验场地,下面是我们迷宫机器人的竞赛场地
接下来我们三个人就开始进行分工,我与l同学进行硬件的调试与组装,而w同学负责程序的编写,在所有准备工作完成之后,我们就开始准备完成各自工作,在所有模块到齐之后,三个人各自拿到自己的家伙式(烙铁,焊锡丝以及起子)在经过三个人齐心合作的情况下,当天夜晚我们便将所有模块都组装完成。此时附图一张
接下来我们就开始根据灭火场地进行程序构思,队友老w负责程序编写,而我负责给他搜集网上关于灭火机器人的算法,待到第一次程序写完毕之后,我们就开始将小车进行意义的开跑,不过跑到第一个房间我们就开始发现了问题,因为我们程序采用右寻算法,但是小车刚跑到第一个房间便出现了问题,突然便成了左寻模式,于是我们意识到了可能是光电门传感器的原因,通过淘宝搜索客服要光电门的资料,通过资料我们清楚光电门的距离会影响小车的左右寻模式,于是我们清楚了解到光电门调节旋转方向会改变相应的距离(顺时针增大,逆时针减小)在调整好传感器之后,小车如我们期望的一样,顺利跑完第一个房间。(这里先开心一下)至少我们的进度开始加快,不过在小车跑的过程中,我们又发现第二个问题就是光电门的感应距离与电压有关,电压越高,感应距离越长,反之越短。而且用四节充电电池的话,驱动用l298n,单片机最小系统板供电为5v,但是接下来面对的问题就是程序所给各个寄存器的电平是无效的,也就是说程序在硬件问题显得那么苍白无力,所以我们三决定换小车,把所有的设备都提升起来,电池直接上18650的电池,所以这些之前发生的问题都不是问题。
接下来老w进行他的下一步计划,就是小车如何进行灭火,小车跑完这个路程需要两次,右寻模式需要从起点出发,分别走第1,2,3个房间。然后跑回终点。再次切换成左寻模式单独跑完第四个房间,如果小车在跑房间的过程中通过火焰传感器检测火源,此时中断优先级最高是灭火,灭完火之后直接通过左寻或右寻切换到回家模式,使其完成灭火任务。
而灭火过程中遇到最大问题就是环境,因为火焰传感器对自然光特别灵敏,所以随时导致程序运行过程中出现问题。不过好歹我们解决了这个问题。正当灭火机器人整完之后,在5月中旬省机器人官网上并没有灭火机器人的项目,说实话当时偶们三当时心里很不爽,但老师给我们鼓劲,在距离比赛不到两周时间,我们决定报迷宫机器人这个项目,大体上算法并没有改变,不过多了颜色识别,我们自己从网上购买了颜色传感器,老师给了我们一个0.96寸的OLED 屏幕,因为比赛对迷宫机器人尺寸有要求,所以我们尽量将尺寸做小,下图为迷宫机器人赛道
距离比赛不到两周的时间,我们利用手中应有的资源,用钻子将亚克力板尺寸磨小,因为跑道是14cm的尺寸,考虑到现实因素的影响,我们将小车的尺寸改到了9公分,把光电门换成红外避障,其实它俩在感应两边墙壁效果都是一样的,但红外避障对自然光灵敏度特别强,但是由于尺寸原因我们才使用它,接下来最大问题就是小车在跑完迷宫后在官方要求是在出口时放了红黄蓝三种颜色的板(板子是三选一),这时我们考虑使用颜色传感器,我们先是考虑使用数字量来定三种颜色的值,不过在开发板上使用在OLED 屏幕上显示的结果并不是特别理想,最后采用pcf8591将其模拟值显示在数码管使三种颜色值的模拟量区分开来(其实颜色传感器的原理与摄像头原理差不多),接下来就是程序啦,因为直流减速电机的缘故,我们已经使用一个定时器用于控制小车的pwm,使其车速在运行过程中能够稳定不撞墙,另一个定时器用于小车在识别到颜色时能够停下来,但颜色传感器一使用定时器的话,由于定时器优先级的问题此时小车速度会出现失控,程序将无法进行下去。老w,老l我们三当时可郁闷,最后z老师给我们提了一个思路能不能再用一个单片机专门用于颜色识别,相当于两个单片机两套程序,最后使用过后效果还不错,说归说下面附小车图一张
通过参与这次比赛,既收获到了队友的友谊,也明白在制作过程中合作才能共赢,当然也要感谢指导老师z老师,三个人在制作过程中相互配合,就像小车在赛道问题上如果没有跑出预期的效果,那么不是调硬件就是程序问题,虽然在diy过程中我们遇到大大小小不同的问题,但是通过我们的努力不管是查书籍或者上网搜资料,都能解决,我们在遇到问题时不能盲目相信课本的东西,必须具体问题具体分析才能为你日后解决实际工程的问题才能提供另一个实际的思路。不管在做什么事情一定要多动手,多做,多思考。这样你才更加会有成就感。这也是我第一次参与DIY灭火机器人以及迷宫机器人的感受,在未来我也希望能够多一些挑战,这样你的工科生活不会太枯燥,毕竟DIY的过程还是比较有意思的。