菜鸟拙技—智能浇花机器人的设计制造与组装调试 点击:4027 | 回复:16



蓝雪江风

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-10-04 21:03:18
楼主

    各位大神大家好,先说一下背景,菜鸟小高,刚刚涉足工控网,也不知道自己鼓捣的这玩意是不是属于机器人范畴的,姑且就发在这里吧。2012年毕业,然后去了一家面向油田自动化的公司干了一年多,后来来到了传说中的河北唐山,一家私营钢铁厂,为祖国炼钢铁,为人民服雾,负责TRT和转炉余热发电的自动化以及仪表的维护,就像大家所听说的那样,钢铁行业步入严冬,连羽绒服都穿上了,在钢厂实在是有点无聊了,就想琢磨弄点东西啊,厂内肯定不中,弄不好还被骂不好好上班,所以趁下班的时间在家里鼓捣着玩。

    我手里有一块从油田上淘汰下来的RTU,也算是个小型PLC,有八个DI,四个DO,六个AI,四个AO,两个COM口,一个是232的,另一个232兼容485,一个标准网口,ARM7的核心,通过德国一方梯队的infoteam OpenPCS软件编程,但是板子貌似有点问题,不知什么原因,每次上电都不能一次性成功启动,还要断电再一次上电,也可能是主板电池的问题,因为每次使用之前必须要校时,买的主板电池还没到,所以还不知道什么毛病,这也许就是油田甲方把这块板子淘汰了的原因吧。

    好了,就说到这,至于为什么要做这个机器人,就俩字,懒,玩。

    其实开始做这个机器人之前,琢磨了好久,应该是什么样子的,应该有什么功能,成本还要力求低,越低越好。首先既然是浇花,得用水吧,家里有自来水,直接接过来,用电磁阀控制?想了半天,还是算了吧,毕竟是楼上,板子还不稳定,出点啥问题,楼下就得重新装修了,还是用个小水泵吧,自动水壶的那种,大不了买个桶,隔三差五的添点水就行了。然后在淘宝上找到了这个,九块九还包邮

既然是浇花,就得看看土壤湿度吧,怎么检测土壤的湿度啊,4~20mA的湿度传感器?OMG,买不起啊,打开万能的淘宝,找到了这个,5V供电,输出高低电平,还不贵,就它了,图片里这个还有AO输出,可是不能直接传入PLC,还得用单片机啥的处理一下,我买的那个只有DO,比较简单












然后是我的浇花机器人长什么样啊,琢磨半天,决定就弄个门框那样的铁架就行了,关键是实用啊。接着是怎么浇花啊,用多通阀?原谅我的钱包吧,貌似都很难买到,后来看到了值班室那架老掉牙的针式打印机,皮带带着打印头滋滋滋的打印着,对,咱也这么弄,用电机带着链条,链条带着滑块,滑块带着水嘴,通过行程开关定位。接下来就得是确认材料的规格了,我有四盆花,放在一个一米宽八十厘米的桌子上,所以我的架子宽度最少是一米啊,链条得两米以上啊,为了保证架子的平稳性和,得有横梁吧,上面一道,下面一道,安装行程开关还要一道,最后算下来差不多需要7米的角铁,四个行程开关,两个链轮。接着在第二天上班的路上,我的摩托车就掉链子了,链子太松了,突然意识到我用链条带着滑块,链条肯定也很难张紧,滑块肯定不能水平移动,必须有让滑块水平移动的轨道,后来想到了各种机床上的光杆,嗯,用水平固定的光杆穿过滑块,规范滑块的移动。光想去了,脑袋都晕了,于是用N年前安装的CAD画了这个图,至少有个参考啊。


然后继续万能的淘宝,首先是挑电机,四驱车小马达貌似转的太快了,扭矩也不够,加上变速箱后也不尽人意,后来发现了这个,二手的,全金属变速齿轮,12V直流的,还有固定螺孔,就它了

接着是买链条,自行车链条太粗了,细的本地还木有,继续淘宝,根据电机的输出轴径,买的2分19齿的链轮,毕竟不能太大了,要不然安装空间有限制,买了3米的链条,也是2分的,肯定够用了,当然还有链条的接头啥的。


做铁架就得用角铁啊,楼上还不能焊,想想就用控制柜里那种标准角铁吧,其实超市货架子也是那种,绕遍整个小县城,竟然没找到合适的,请原谅我再一次打开了万能的淘宝,买到了这个

接着是买光杆,还是淘宝,开始找了一家,他家的光杆是供各种机床啥的用的,一根就要几十块钱,后来摸摸钱包,买了三根根不锈钢铁棍,一米一根,8mm粗的。

自此,基本的东西就买的差不多了,电子方面的还需要另行采购,由于楼主前一段时间骑摩托速度与激情着,右手手腕还打着石膏呢,敲了半天字,现在又有点不舒服了,先歇歇,剩下的东西在楼下继续写,提前说一下电子元件方面才是真正的血泪史啊

先来一张成品图,让大家见笑了


最后编辑一下第一帖,把机器人测试视频放在这里

附:控制器程序----自动浇花机器人程序(ST结构化文本).doc

正在下载,请等待……
下载附件需0积分!




银光人生—华

  • 精华:11帖
  • 求助:4帖
  • 帖子:1445帖 | 13593回
  • 年度积分:0
  • 历史总积分:56442
  • 注册:2007年11月23日
发表于:2015-10-04 21:49:02
1楼

楼主这是广告还是什么?                 

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-10-05 02:10:19
2楼


回复内容:

对: 银光人生—华 楼主这是广告还是什么?                  内容的回复!

不是广告啊,发完才发现第一张图片那么大

213255tony

  • 精华:1帖
  • 求助:0帖
  • 帖子:44帖 | 742回
  • 年度积分:17
  • 历史总积分:1978
  • 注册:2011年11月01日
发表于:2015-10-05 05:28:54
3楼

简单的东西搞复杂了,还要链条架子什么的,搞一个T型分接口 就行 ,我也做了一个,材料基本淘宝买的,也是FX2N,小水泵,管子什么的,

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-10-05 18:30:57
4楼


回复内容:

对: 213255tony 简单的东西搞复杂了,还要链条架子什么的,搞一个T型分接... 内容的回复!

额,其实还是弄着玩的,肯定是在最小工程量限度上实现最大的功能,尝试嘛

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-10-05 23:00:49
5楼

吃完晚饭了,继续码字发帖子,接下来要说的就是关于电子电路方面的虐心的经历了

上面说到了我买的土壤湿度检测的板子是5V供电的,输出的也是5V的高电平,所以就需要5V的电源吧,可是我手里就只有一个24V的开关电源,一个12V的开关电源,都不匹配,虽然手里有一个7805,还有好几个手机充电器,但是为了长远打算,我买了一个4.5~40V转5V的模块,一来呢可以和电路集成在一起,二来呢,我有一块太阳能板,偶尔可以用太阳能板接上模块给手机充电,所以任性的买了两个模块,就是下面这样的

有了供电电源了,问题还有,我的控制器是一个小型PLC,DI输入是24V的,而我的土壤湿度检测模块是输出5V的高电平,我尝试用5V的高电平驱动5V的继电器,可是负载能力太小啦,继电器根本不动作,接着直接用5V的高电平驱动一个三极管2N2907,也没仿真,结果不管是不是高电平,在24V的电压下,那个二极管始终是导通的,就是下面这个板子

我晕啊,木有办法,搜肠刮肚翻出了大学睡着觉学的模电和数电,做了这个电路,先用multisim软件仿真,还不错,吭哧吭哧把板子焊好了就是下面这个,第一幅图是仿真电路,第二幅图是焊出来的板子

板子焊完了,终于可以测试一下了,可是问题有接踵而至了,刚开始还好好工作的板子,加电时间一长,就不稳定了,先是烧了第一路,半个小时后,第三路也烧了,我勒个去啊,肿么办啊,于是我在网上又买了这个,5V转24V 四路光电隔离模块

以为用土壤湿度检测模块的5V高电平就可以直接驱动了,可是事实证明,我还是图样图森破,土壤湿度模块的输出有一个贴片LED指示灯,是由输出的高电平驱动的,而这个光电隔离模块的输入端也有一个指示灯,也是由输入的高电平驱动的,我高估了土壤湿度模块的驱动能力,它特么连这两个LED的灯点亮都费劲,更别说光耦里的LED了,我擦擦擦,木有办法,继续改进,从头开始,用5V高电平驱动三极管,用三极管驱动光耦,嗯嗯,完美的解决方案,马上开工于是电路就变成了下面这样

初步测试,还不错,可是通往罗马的道路也有曲折的啊,可以看到那块光电隔离板子的右下角有一个LED不亮了,是的,它已经烧了,后来那一路的光耦也烧了,WTF,这到底是怎么回事,还没来得及发火,又有一路失灵了,难道是电压模块输出电压有问题,测量也没事啊,如果是电路里有高次谐波,可是电路也不复杂,应该也不会啊,难道是光耦模块质量问题,也不好说,于是我又买了这个5V-四路光耦继电器模组

板子买回来以后,测试终于成功了像下图这样

可是还是有问题啊,我的土壤湿度模块经过这一堆电路转换完后,发现土壤湿润的时候,继电器是一直吸合的,只有当土壤干燥的时候才会释放,可是我的花肯定得保持土壤的湿润啊,意思就是继电器得长时间的吸合工作,所以还是不完美,对硬件损耗太大,得让信号反向,于是又买了非门电路74HC14N,6路施密特触发倒相器,然后就有了下面这个板子

可是当我把电路搭完,把非门接在了三极管和光电隔离模块之间,一上电,额滴个神哪,继电器跟疯了的似的滋滋的跳了起来,四个继电器就是一部交响乐啊,怎么回事啊,难道是三极管输出有问题,还是这回模电到数电的转换真的需要滤波和抑制噪音了,可是木有示波器,接了电容效果也不好,继电器还是不能完全吸合,一直跳,后来把非门接在了土壤湿度模块和三极管之间,继电器变安静了,再也不乱蹦了,终于解决了土壤湿度检测的问题,其实后来想想,如果用了非门,是不是就可以不用三极管了,直接用非门驱动光电隔离是不是应该也可以啊,等我的手腕好利索了,我一定得试试看。

自此,关于电子电路的纠结之路才算结束,将土壤检测模块的信号输入了PLC,其实后来想想也是自己找罪受,因为土壤湿度的检测模块有带继电器的,可是太贵了,图便宜买的最简单的,于是就有了这些曲折的遭遇,不过也有很多收获,重温并实践了一下那些本来就生疏的数电模电知识,最重要的是享受DIY的乐趣。

就先到这里吧,下一帖就是组装机器人了,虽然不太顺利,不过乐趣无穷,明天继续更。


蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-10-09 23:26:07
6楼

额,不好意思,这两天胳膊又有点肿了,医生不让动了,所以几天没有更,不好意思,继续更

今天的内容就是组装机器人,所有的零件采购齐全,开始组装,首先来一张零件图,幸亏那几天家里没来人,否则肯定会被吓到

当然,你看到的只是组装之前的照片,过了几天我的客厅就成这样了

好了,废话少说,第一步,组装架子,买来的时候已经让卖家切割好了,回来只是用钢锯切开做了两个横脚,所以组装过程无需赘述

接下来是安装电动机和链条,由于框架没有可以固定变速箱的地方,所以找了两块铁板,按尺寸打好孔,安装在了铁架上,然后把变速箱和链轮安装在了铁板上

还是那句话,通往成功的路总是在施工,当我把链轮安装上后,准备安装链条的时候,发现角钢的预制孔太窄,链条根本穿不过去,本来买角钢的时候,就是打算把链条从预制孔里穿过,省事还不占地,结果如意算盘白打了,拿起钢锯,吭哧吭哧把孔扩大了,就像下图这样

安装完了链条开始制作滑块,其实很简单,锯了几块木片用绝缘板一夹,用螺丝紧固,然后打孔,8mm的钻头,正好打出的孔穿光杆绰绰有余,然后是固定光杆的紧固木块,和滑块的孔距是一样的,最后一起安装在了支架上,对了,滑块的侧面还打了一个孔,用来穿过水嘴用的,就像下图这样

安装完了滑块和光杆以后,就开始安装行程开关了,对照着花盆的位置,把行程开关固定在木片上,然后再用螺丝固定在横梁上,就像下图这样

安装完行程开关后,将滑块和链条固定在一起,然后就要开始安装最重要的一个零件了,就是滑块上突出的那一块木片,用来触发行程开关的,太厚了就容易挤坏行程开关,太薄了无法够到行程开关,所以一边比划一边用小刀修改,最后合适后用螺丝钉固定在了滑块上如下图所示()

到此,机器人的主体基本上就组装完毕了,剩下的就是开始接线了,不过在组装过程中,发现角钢的强度还是有点低,链条张紧以后就出现形变了,链条和预制孔有摩擦碰撞,没有办法把角钢的预制孔又扩大了,最后才弄合适,PLC接线和程序就在下一个帖子继续写吧,各位晚安啊




fengyan8777

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 29回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年8月26日
发表于:2015-10-10 08:49:22
7楼

楼主还是挺强大的,顶!!!!

江湖再见-余辉

  • [管理员]
  • 精华:56帖
  • 求助:47帖
  • 帖子:3935帖 | 28210回
  • 年度积分:3677
  • 历史总积分:115590
  • 注册:2006年4月25日
发表于:2015-10-11 12:07:40
8楼

亲  能把你的广告图片编辑一下再上传吗

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-10-11 18:55:29
9楼


回复内容:

对: 江湖再见-余辉 亲  能把你的广告图片编辑一下再上传吗 内容的回复!

好嘞,听人劝吃饱饭,现在看着怎么样

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-10-31 23:25:34
10楼

好久没更了,最近手腕拆了石膏了,去做了一个检查,结果还赶上大风降温,又重感冒了,这几天才好起来,所以抓紧时间更新一下。

上帖说了浇花机器人的硬件组装,这帖来说说机器人的接线和程序设计

这次的控制器用的是一块油田甲方淘汰下来的一块RTU,安控科技的产品,Super系列L202

模块系统时钟有问题,时间长了会变慢,几天就能差出好几分钟。Super32-L202 控制器 I/O 点数为 6AI-3HART-8DI-4DO-2AO-3PI-1RS232-1RS232/1RS485-1Ethernet-24VDC,以下是控制器的寄存器

该模块使用德国一方梯队的infoteam openpcs软件编程,在给模块编程前需要安装安控科技的插件,以此让Openpcs完全兼容安控科技的设备,方便编程和调试。

首先是接线,和市面上主流的PLC接线方式类似,模块的接线方式如下

其中其中的四路DI接的是土壤湿度传感器,另外四路DI接的是四个行程开关,用来检测滑块的位置,三路DO接的是三个中间继电器,用来控制减速电机的正反转和水泵的启停。

现接完以后就要开始准备编写程序了,当然编写程序之前,还要先确定需要实现什么功能。

既然是浇花机器人,就要可以土壤干旱了自动浇花,另外呢,还可以实现定时浇花,既然是定时浇花,就要可以设定每次浇花的时长,还可以手动浇花,就是可以单独浇一棵花,既然要实现上述功能,也就要求可以手动屏蔽上述的某个功能,比如可以手动屏蔽其中一棵花的干旱自动浇花,可以屏蔽某一棵花的定时浇花功能,也就是所谓的使能。当然既然要实现上述所有的功能,就要求控制器能够判断某一棵花需要浇,并且能将滑块准确移动到预定位置后启动水泵浇花,所以还需要有滑块定位的功能。所以根据上面的设想,程序至少要具有以下几项功能

  1. 可以检测土壤湿度,以确定哪棵花需要浇水

  2. 可以检测滑块位置,并能控制滑块准确移动到正确的位置

  3. 可以根据要求启停水泵

  4. 需要读取系统时钟以具有定时浇花的功能

  5. 要有定时器来保证浇花的时长

  6. 可以手动单独浇花

  7. 可以定时浇花

  8. 各项功能可以选择使能或者屏蔽

确定了需要实现的功能,就要开始构思编程的思路了,检测土壤湿度好办,定位滑块位置就要检测行程开关的闭合,然后根据行程开关的闭合断开情况以确定减速电机是要正传还是要反转,以使滑块移动到正确位置。要启动水泵,需要触发条件,无论上述哪一个浇花功能,都需要启动水泵来作为最后的动作,所以启动水泵需要一个条件,每一个功能最后的输出条件应该是给同一个变量赋值以触发水泵启动。而要所有的功能需要滑块的移动定位来执行,所以触发滑块的条件的变量应该也是统一的。

大概的思路有了,下一步就是要确认变量了,首先是输入输出变量,其中四个土壤湿度检测的DI量,四个行程开关的DI量,两个电机正反转的DO量,一个启停电机的DO量。<1>既然要确认某棵花干旱,所以需要一个变量来记录是哪一棵花需要浇水,既然要求可以屏蔽干旱浇花的功能,所以需要四个变量来作为判断的依据。<2>既然要确定滑块的位置,就需要一个变量来记录滑块到了哪里。同时干旱检测将直接导致滑块的移动,所以上面定义的那个记录哪棵花需要浇水的变量就是触发滑块移动的决定条件之一。按照上面的思路,我们可以将所需的变量一个一个的大概确认出来,比如浇花时长,浇花时间,各种使能,手动浇花触发条件,定时器,由于最后都要触发水泵启停,而时长不一样,所以还要定义数组来存储浇花时长,还有存储系统时间的变量,定时器触发条件变量以及一些中间变量等等。

下一步就是开始编程, 时间有点晚了,以后继续更。



蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-11-07 21:15:32
11楼

吃完晚饭,继续更,开始编程部分,上帖说到了,控制器采用一方梯队的Openpcs软件编程,配合安控科技的插件,Openpcs软件每年需要输入新的注册码才能授权使用,软件的主界面如下图所示:

由于安装了安控科技的插件,所以还是需要做一些专门的设置的,如上图的左侧工程浏览器里所示,需要设置PC通讯参数和设定控制器通讯参数,来实现PC和控制器的通讯,基本的设置窗口如下:

上图的控制器调试窗口,可以监视特定的寄存器,类似于modscan软件,也可以给模块校时。

最重要的一点是要设置连接方式,如下图所示

弄完基本的设置以后,就可以编程了,和国内很多家做PLC或者DCS的厂家一样,编程的方式大同小异,需要选择编程语言,这里我选择的是ST结构化文本,采用了一个程序处理所有功能的方式,也可以选择功能块,分块实现功能。

然后就是开始定义声明变量了,由于程序功能简单,只有一个程序文件,所以不用定义全局变量,只定义局部变量就可以了

定义完变量以后就可以编程了,基本操作方式都一样,编一段可以尝试编译一下看看是否有错误比如格式错误,语法错误,尤其是数据类型这样的错误,就是下图这几个按钮(依次是生成当前资源,重新生成当前资源,编辑当前资源的属性,联机/脱机)

程序编辑完了,就可以考虑下载到控制器里启动调试了,也就是下图这几个按钮(冷起动,温启动,热启动,停止)

然后可以用Openpcs软件或者modscan软件对控制器进行调试了。

下一帖,机器人上位机组态软件

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-11-07 21:47:28
12楼

继续更,争取今晚更完了,本帖就是进行机器人上位机组态的设计了

先来一张完成图

既然是个简易面板,所以没有做历史记录和报警,因为仅仅为了浇花,电脑不能7X24的开着吧,所以就做了一个简单的,用来进行功能设置就足够了

组态软件用的是三维力控,功能和使用方法其他主流软件大同小异,当然未授权的也有时间限制,先进行IO设备组态,再进行数据库组态,然后就可以进行画面编辑了,比较简单,上图的喷壶做了一个隐藏的设置,根据数据库数据有条件隐藏,喷出的水根据水泵的起停状态做的隐藏,没有其他的比较复杂的设置,等把所有参数设置好以后,就可以关掉电脑,让机器人自主工作了,唯一的缺点就是关电脑后不能手动浇花了,只能自动了,所以在很多方面,还需要完善。

另外,附机器人的测试与工作视频

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-11-07 22:10:24
13楼

至此,关于自动浇花机器人的设计组装和调试工作基本就结束了,针对前面帖子里的某些问题,在此说明一下,第一帖里说道模块的时钟有问题,每次上电之后需要重新校时,并且不能一次性启动成功,怀疑是主板电池没电了,后来安装了新的电池以后不用校时了,一次启动成功,可是时钟不准,有误差,怀疑是晶振的问题,对于这个问题就很难处理了,目前还没解决。

对于土壤湿度检测的帖子里说的将检测模块的高电平输给非门电路,非门电路输出给三极管,然后用三极管控制光电隔离继电器模块,后来尝试了去掉三极管,用非门电路的输出直接驱动光电隔离继电器模块也是可以的。

对于程序设计,其实也可以采用功能块的方式来实现,尤其是水泵启停,湿度检测,滑块移动与定位等功能,用功能块应该会更简洁。

在组态软件的调试过程中,由于控制器既有串口,又有网口,所以提供里很大的便利,通过串口用modescan软件读取控制器寄存器来进行各种数据监视,通过网口进行组态的通讯链接,比较方便快捷

现在手里还有两块无线串口通讯模块,要是有块工业触摸屏的话,就可以无线控制自动浇花机器人了

最后还有一个问题,希望各位大神能指点迷津,因为才疏学浅,真的找不到方向了,就是怎样将控制器数据同步到网上然后异地可以进行监视与控制,比如手机,比如电脑或者其他移动终端,类似于物联网的模式的,有没有专门提供此类云服务的公司或者厂家,需要什么方面的知识,还望各位大神不吝赐教,小弟叩谢

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2015-11-25 20:01:23
14楼

有没有前辈能帮忙解答一下上一贴的问题啊,闭门造车的小弟感激不尽

蓝雪江风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2013年1月05日
发表于:2016-09-01 03:27:23
15楼

无意中又翻出了自己发的这个帖子,现在有没有专门提供这方面云服务的平台的啊,或者云服务有相关接口的也行

jitao_0001

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 68回
  • 年度积分:48
  • 历史总积分:70
  • 注册:2010年1月16日
发表于:2016-09-06 10:30:10
16楼

厉害的土豪,这种精神我喜欢


相关主题

官方公众号

智造工程师