论文部分内容阅读
小编臻臻前阵子忙着装修新窝,各种商场、网店逛得乐此不疲。逛家电时老婆大人对那些在地上滴溜溜乱转就能完成扫地工作的机器人产生了极大的兴趣,臻臻遂上网请回一台最经典的Roomba,从此扫地不用手,也过上了腐朽堕落的西方资产阶级生活方式。不过Roomba也有自己的缺点,只顾埋头苦干,没有一点21世纪的臭显摆功能。在这个上厕所都要发Twitter的年月,过于低调也是一种罪过。什么?你说这个网站是不存在的?嗯,那你一定没看上期《Geek》杂志第62页……
那么有没有方法把Roomba包装成更能显摆的扫地机器人呢?今儿咱们就来讲讲怎么改装Roomba,让咱不在房间的时候也能通过互联网控制它的作息,让它变成每次扫完地都发推特的潮人,引得亲朋好友、三姑六婆都来围观。
改造原理
实现让Roomba变成可遥控可发推特的扫地机器人的原理其实手并不复杂。简单来讲,我们只需要给它增加一个Wi-Fi无线通信模块,让它同互联网连接,再通过编写适当的程序代码就可以实现了。为了达到这个效果,我们需要启用神奇的Arduino电子积木,以它作为桥梁连接Roomba与Wi-Fi无线模块,并利用它开源的代码编写程序向RoombaT达指令。Arduino是一个开放的硬件平台,包括一个简单易用的I/O电路板,以及一个基于Eclipse的软件开发环境,以前的Big Plan中也多次出现过它的身影。有了这个以Arduino为基础的Wi-Fi模块,我们就可以写好固定的句子让Roomba在每次公干之后都发推炫耀了哦!
Part 1 找出Roomba的串行连接器
500系列的Roomba机器人身上都有一个串行接口,这就是我们侵入可爱的Roombo并发出邪恶指令的地方了!但这个神经中枢藏在小机器人坚实的面板之下,想看到它,你可得费点周折才行。
1 首先需要将Roomba上收集灰尘垃圾的小盒子移走,然后找到图示上的两个小缺口,用一字螺丝刀从这里轻轻插入温柔撬动,嗯。
2 OK,听到“咔吧”一声就意味着大功告成了。现在我们就能在Roomba的启动按钮右侧看见那个销魂的串行接口了。当然,如果你够精准够暴力,也可以直接在面板上打个能直通串行接口的孔。总之无论用什么方法,让这个连接Roomba内部结构的小洞露出来即可。
Part 2 制作数据线
下一步我们就要制作连接Roomba和Arduino模块的数据线了,最简单的方法就是用5类线制作一个8针DIN连接线。
下面我们来制作数据线与Arduino模块连接的一端。首先剥掉导线外的绝缘层,之前6、7两根导线都是地线,我们把它们连在同一根针上;1、2两根导线都是正极,也需要连在同一根针上;其余导线各自连在单独的插针上。如果你之前没记下1~7号接头对应的导线颜色,那现在就杯具了。
首先,我们要把电缆的外皮拨开露出里面的B根导线,之后用剥线钳把导线外部的绝缘层小心地剥离掉。如果你家里没有预备这种钳子,那么用普通剪刀小心地在绝缘层外部轻轻转上一圈,也可以把绝缘层剥离掉。友情提示,用打火机烧是不行的!
好了,下面的工序将更加富有挑战性,准备好刚刚露出导线内芯的电线和8针DIN连接器,现在是它们必须合体的时候了……为了不让这个可怕的三爪夹座在电线上留下牙印,最好在线缆上垫上一层纸。
接线方式如图,按照数字一一焊接上去即可,记住对应不同编号接头的导线的颜色。接好后记得要用万用表检查下线路是否畅通,确认导线焊接正确后,把多余的焊锡清理干净。
在导线与导线之间填满热熔胶把接头处封死固定,以防使用中发生短路或损坏。之后用电工胶带缠好接头处的导线,再给它戴上“安全套”,不,是接头外壳。OK,数据线与Roomba连接的一头就做好了。注意给它戴套之前要根据Roomba的串行连接口好好调整8个针头的位置。
到此为止连接Arduino模块和Roomba的数据线就算完成了。喘口气喝杯茶奖励自己一下,最难过的一关终于搞定了。
Part 3 安装无线化的Arduino模块
下面 我们就要把Arduino控制模块和Roomba机器人连接起来了。首先我们用免焊万用电板把Wi-Fi模块和Arduin。板装到一起,之后用上一步制作好的数据线将Roomba和Arduino模块连接起来。大功告成……才怪!中间还要加工一下才行,具体请看下面的说明。
1 数据线的接法如图所示。此外,我们还需要用一个PNP晶体管来做Arduino板的接收端(RX)到Roomba的桥梁。这一步并不太难,首先用跳线把Roomba的发射端(TX,4号线)和PNP晶体管的基极相连,然后将晶体管的集电极接地,发射极与Arduino板的信号接收端(RX)连在一起。之后将Arduino板的发射端(TX)和Roomba的接收端(RX,5号线)用电缆连在一起,最后把数据线的地线(6、7号线的插针)和Arduino板的地线连在一起。
2 这还不算大功告成,接下来我们还有一个小问题要面对。要知道通电时Roomba的输出电压可高达20V,虽然这处于Arduion板自带电压调节器的控制范围之内,但却超出了Wi-Fi模块3.3V稳压器的承受范围。这就需要我们另外在电路板上添加一个电压调节装置。我们可以用7805稳压芯片把电压降低到5V,具体的做法是把7805稳压芯片的地线接地,把Roomba的电源输出(1、2号线的插针)与稳压器的Vin引脚相连,稳压器的输出引脚与Arduino上的5V电源输入端相连。OK,到这里才算是大功告成了,当把数据线插入Roomba的串行口后开机,就会看到Arduino板上的大功率LED灯闪亮起来了有木有!
到这一步,整个Roomba的实体改装工程就算告一段落啦。记得在进行下一步编程时千万要先把Arduino的数据线从Roomba上断开。
Part 4 编程
完成了上面的改装工作,到底该如何让Roomba每次工作完毕都老老实实上推特晒成果呢?这就需要进入我们的高智商编程环节了。
1 首先,我们要让Roomba知道在什么时间才可以开始进行发布推特的工作。Roomba既然是一个机器人,自然有与外界通讯所用的语言。Roombo采用的是iRobot’s OpenInterface(简称OI)编码,它所有的机械运作都是在OI编码的预先设置下完成的。我们自然可以按照OI的规则重新为Roomba编写程序,告诉它在每次工作完毕都向Arduino发出一条“给劳资发推特”的指令。具体的代码编写说明,请移步《Geek》官方论坛(bbs.geekv5.com)下载。
2 然后就该想办法把Roomba和网络连接起来了。第一步就需要我们设置无线路由器,让它给Roomba上的Wi-Fi无线模块分配一个固定的IP地址。不同路由器的设置方法有所区别,如何完成这一步就就得麻烦你自己用度娘谷哥搜索一下喽。完成之后想通过网络控制Roomba就非常简单了,只需要在电脑前输入你分配给Roomba的IP地址,你就可以找到它。
3 然而想让Arduino主动上Twitter发推,还需要给Arduino编写相应的程序,设置TwitteroAuth认证的密钥,并在Credential.h文件中设置路由器SSID和连接密码。很幸运,这部分的代码你可以在《Geek》杂志的官方论坛上找到。把下载的源代码用Arduino官网提供的编译环境软件编译之后通过USB数据线写入Arduion,这样Roomba就可以通过Arduino无线上网冲浪,随意登陆到推特了。
最后的话
自从有了全自动的Roomba,你就可以趁GF或者LP不在家的周末找几个兄弟随意喝酒打屁,留下Roomba一个人在家中完成苦逼的清扫工作。过不了多久,你那正跟闺蜜们亲密八卦的另一半就会发现你这个懒蛋宅男居然在推上@她通报了最新房间清扫的情况!可以预见她是如何立刻在闺蜜们面前把你包装成天下第一省心听话绝版订制好男人的。这种高科技作案后的成就感真是想想都带感啊,木哈哈哈哈……考虑到国内上推特的诸多不便,你可以参考上期杂志介绍IPv6的文章中所谈到的方法进行解决。当然了,如果你是个忠实的新浪微博拥簇,只要把下载的代码中涉及twitter.com的部分替换成weibo.com,再把oAuth认证地址换成新浪微博API的并填上自己申请的密钥就OK了。《Geek》官方微博等着你的Roomba来fo哦。
那么有没有方法把Roomba包装成更能显摆的扫地机器人呢?今儿咱们就来讲讲怎么改装Roomba,让咱不在房间的时候也能通过互联网控制它的作息,让它变成每次扫完地都发推特的潮人,引得亲朋好友、三姑六婆都来围观。
改造原理
实现让Roomba变成可遥控可发推特的扫地机器人的原理其实手并不复杂。简单来讲,我们只需要给它增加一个Wi-Fi无线通信模块,让它同互联网连接,再通过编写适当的程序代码就可以实现了。为了达到这个效果,我们需要启用神奇的Arduino电子积木,以它作为桥梁连接Roomba与Wi-Fi无线模块,并利用它开源的代码编写程序向RoombaT达指令。Arduino是一个开放的硬件平台,包括一个简单易用的I/O电路板,以及一个基于Eclipse的软件开发环境,以前的Big Plan中也多次出现过它的身影。有了这个以Arduino为基础的Wi-Fi模块,我们就可以写好固定的句子让Roomba在每次公干之后都发推炫耀了哦!
Part 1 找出Roomba的串行连接器
500系列的Roomba机器人身上都有一个串行接口,这就是我们侵入可爱的Roombo并发出邪恶指令的地方了!但这个神经中枢藏在小机器人坚实的面板之下,想看到它,你可得费点周折才行。
1 首先需要将Roomba上收集灰尘垃圾的小盒子移走,然后找到图示上的两个小缺口,用一字螺丝刀从这里轻轻插入温柔撬动,嗯。
2 OK,听到“咔吧”一声就意味着大功告成了。现在我们就能在Roomba的启动按钮右侧看见那个销魂的串行接口了。当然,如果你够精准够暴力,也可以直接在面板上打个能直通串行接口的孔。总之无论用什么方法,让这个连接Roomba内部结构的小洞露出来即可。
Part 2 制作数据线
下一步我们就要制作连接Roomba和Arduino模块的数据线了,最简单的方法就是用5类线制作一个8针DIN连接线。
下面我们来制作数据线与Arduino模块连接的一端。首先剥掉导线外的绝缘层,之前6、7两根导线都是地线,我们把它们连在同一根针上;1、2两根导线都是正极,也需要连在同一根针上;其余导线各自连在单独的插针上。如果你之前没记下1~7号接头对应的导线颜色,那现在就杯具了。
首先,我们要把电缆的外皮拨开露出里面的B根导线,之后用剥线钳把导线外部的绝缘层小心地剥离掉。如果你家里没有预备这种钳子,那么用普通剪刀小心地在绝缘层外部轻轻转上一圈,也可以把绝缘层剥离掉。友情提示,用打火机烧是不行的!
好了,下面的工序将更加富有挑战性,准备好刚刚露出导线内芯的电线和8针DIN连接器,现在是它们必须合体的时候了……为了不让这个可怕的三爪夹座在电线上留下牙印,最好在线缆上垫上一层纸。
接线方式如图,按照数字一一焊接上去即可,记住对应不同编号接头的导线的颜色。接好后记得要用万用表检查下线路是否畅通,确认导线焊接正确后,把多余的焊锡清理干净。
在导线与导线之间填满热熔胶把接头处封死固定,以防使用中发生短路或损坏。之后用电工胶带缠好接头处的导线,再给它戴上“安全套”,不,是接头外壳。OK,数据线与Roomba连接的一头就做好了。注意给它戴套之前要根据Roomba的串行连接口好好调整8个针头的位置。
到此为止连接Arduino模块和Roomba的数据线就算完成了。喘口气喝杯茶奖励自己一下,最难过的一关终于搞定了。
Part 3 安装无线化的Arduino模块
下面 我们就要把Arduino控制模块和Roomba机器人连接起来了。首先我们用免焊万用电板把Wi-Fi模块和Arduin。板装到一起,之后用上一步制作好的数据线将Roomba和Arduino模块连接起来。大功告成……才怪!中间还要加工一下才行,具体请看下面的说明。
1 数据线的接法如图所示。此外,我们还需要用一个PNP晶体管来做Arduino板的接收端(RX)到Roomba的桥梁。这一步并不太难,首先用跳线把Roomba的发射端(TX,4号线)和PNP晶体管的基极相连,然后将晶体管的集电极接地,发射极与Arduino板的信号接收端(RX)连在一起。之后将Arduino板的发射端(TX)和Roomba的接收端(RX,5号线)用电缆连在一起,最后把数据线的地线(6、7号线的插针)和Arduino板的地线连在一起。
2 这还不算大功告成,接下来我们还有一个小问题要面对。要知道通电时Roomba的输出电压可高达20V,虽然这处于Arduion板自带电压调节器的控制范围之内,但却超出了Wi-Fi模块3.3V稳压器的承受范围。这就需要我们另外在电路板上添加一个电压调节装置。我们可以用7805稳压芯片把电压降低到5V,具体的做法是把7805稳压芯片的地线接地,把Roomba的电源输出(1、2号线的插针)与稳压器的Vin引脚相连,稳压器的输出引脚与Arduino上的5V电源输入端相连。OK,到这里才算是大功告成了,当把数据线插入Roomba的串行口后开机,就会看到Arduino板上的大功率LED灯闪亮起来了有木有!
到这一步,整个Roomba的实体改装工程就算告一段落啦。记得在进行下一步编程时千万要先把Arduino的数据线从Roomba上断开。
Part 4 编程
完成了上面的改装工作,到底该如何让Roomba每次工作完毕都老老实实上推特晒成果呢?这就需要进入我们的高智商编程环节了。
1 首先,我们要让Roomba知道在什么时间才可以开始进行发布推特的工作。Roomba既然是一个机器人,自然有与外界通讯所用的语言。Roombo采用的是iRobot’s OpenInterface(简称OI)编码,它所有的机械运作都是在OI编码的预先设置下完成的。我们自然可以按照OI的规则重新为Roomba编写程序,告诉它在每次工作完毕都向Arduino发出一条“给劳资发推特”的指令。具体的代码编写说明,请移步《Geek》官方论坛(bbs.geekv5.com)下载。
2 然后就该想办法把Roomba和网络连接起来了。第一步就需要我们设置无线路由器,让它给Roomba上的Wi-Fi无线模块分配一个固定的IP地址。不同路由器的设置方法有所区别,如何完成这一步就就得麻烦你自己用度娘谷哥搜索一下喽。完成之后想通过网络控制Roomba就非常简单了,只需要在电脑前输入你分配给Roomba的IP地址,你就可以找到它。
3 然而想让Arduino主动上Twitter发推,还需要给Arduino编写相应的程序,设置TwitteroAuth认证的密钥,并在Credential.h文件中设置路由器SSID和连接密码。很幸运,这部分的代码你可以在《Geek》杂志的官方论坛上找到。把下载的源代码用Arduino官网提供的编译环境软件编译之后通过USB数据线写入Arduion,这样Roomba就可以通过Arduino无线上网冲浪,随意登陆到推特了。
最后的话
自从有了全自动的Roomba,你就可以趁GF或者LP不在家的周末找几个兄弟随意喝酒打屁,留下Roomba一个人在家中完成苦逼的清扫工作。过不了多久,你那正跟闺蜜们亲密八卦的另一半就会发现你这个懒蛋宅男居然在推上@她通报了最新房间清扫的情况!可以预见她是如何立刻在闺蜜们面前把你包装成天下第一省心听话绝版订制好男人的。这种高科技作案后的成就感真是想想都带感啊,木哈哈哈哈……考虑到国内上推特的诸多不便,你可以参考上期杂志介绍IPv6的文章中所谈到的方法进行解决。当然了,如果你是个忠实的新浪微博拥簇,只要把下载的代码中涉及twitter.com的部分替换成weibo.com,再把oAuth认证地址换成新浪微博API的并填上自己申请的密钥就OK了。《Geek》官方微博等着你的Roomba来fo哦。