眼瞅着春节就要到了,吃完年夜饭,坐在电视机前,除了看春晚还能干啥?当然是抢红包啊!小到二十几人的家属群,大到几百人的公司群,无论是大伯小叔,还是顶头上司,这么喜庆的日子不发红包合适吗?不合适!发的少合适吗?不合适!你抢不到合适吗?当然更不合适了!愣神三十秒,错过三个亿,是不是一切假设都没有意义了?简直哭都没地方哭!你先把那个“抢红包脚本”放下!没创意不说,这是赤裸裸的作弊你懂吗!
这样抢来块八毛的,你有半点成就感吗?真的Maker,敢于直面缺钱的同事,敢于正视满屏的红包。我们不屑于将精力花在埋头疯狂按屏幕上,我们要用智慧和超强的动手能力,自制一个抢红包机器人,用它灵(蠢)活(萌)的机械手臂,不光替你实现发大财的心愿,还在抢到红包的时候为你增添乐趣和成就感!不信你看,是不是特别厉害?GIF可能加载得有些慢,大家一定要耐心等待!怎么样,没让你失望吧?咦...?
为什么你的表情充满了嫌弃?不管原味五香孜然麻辣,能抢到红包就是好火腿肠!等……等一下!你怎么把机器臂拆下来吃了!!为什么这么饥渴!!红包不要了吗!!要怎样才能拥有如此酷炫的机器人?果壳实验室的小伙伴公开配方,来DIY一个吧!
需要准备的材料如下:Arduino Mega2560、面包板 ×1、杜邦线 若干、按键开关 ×1、10K 电阻 X1、10K 滑动变阻 X3、舵机 ×3、2mm亚克力板 约40cm×40cm、橡皮筋 ×2以及整个机器人的灵魂部件——火腿肠 ×1。怎么样,是不是物美价廉,唾手可得?你只需要控制一下食欲,不要在做完之前吃掉机械臂就行。需要准备的设备如下:外置的摄像头、摄像头支架、激光切割机(??
)、一台装有python+opencv+numpy环境的电脑(???)。大哥,激光切割机给报销吗?我抢个红包几块钱,激光切割机便宜点的也要好几千,我连压岁钱都搭进去啊!!——激动的朝阳区群众如是说。不要方!一定要把文章看完!成本这么高还介绍给你们,一定是有我们实验室的用意的!抢红包机器人的原理是啥?
开始制作抢红包机器人时,我们试图找一个更加简单的方案:鉴于红包出现的位置每次都是固定的,所以我们先get四块TSC200颜色传感器,把它们贴在手机屏幕上,覆盖住红包出现位置的四个角。当颜色传感器同时检测到橘黄色时,可以判断为有新的红包发出来,这个时候Arduino就开始进行抢红包操作。
然而当我们拿到TSC200颜色传感器模块的时候却十分崩溃,TSC200芯片很小不假,但做成模块后电路板就足足占了大半个屏幕,脸都遮没了……大家依旧不要方!条条大路通罗马,我们迅速转而寻求另外一条途径——计算机图像识别。
简单来说,就是用摄像头拍摄手机画面,通过计算机视觉库分析画面信号,判断出是否有新的红包出现,当红包出现时即向Arduino发送指令,Arduino控制机械臂在屏幕上进行三次(姿势优美又充满力量的)点击,一次抢红包的操作就完成了!我该怎么制作它?制作机器人的第一步,当然应该是来了解它的核心构造——机械臂啦。
机械臂通过Arduino进行调试,,机械部分主要由亚克力制成的机械臂结构、舵机和火腿肠组成,舵机用来执行动作,火腿肠可以用来触屏,对,就是用猪肉来模拟你的手指,不服憋着。为了尽可能简化程序,我们设置了三个滑动变阻器和一个按钮来手动设置机械臂的路径,初次使用时,使用变阻器控制机械臂的每个动作,并将每个动作对应的角坐标记录下来填写到程序中,再重新烧写程序。连接滑动变阻器到Arduino控制器。
我们使用三个10k滑动变阻器作为电位器用于手动控制机械臂。分别将三个电位器的1号引脚接GND端,3号引脚接VCC端,三个电位器的2号引脚分别接入Arduino的A0、A1、A2端。当电位器转动时,2号引脚输出不同的电压型号,Arduino读取各个电位器的2号引脚的型号,控制舵机转动到对应的角度。滑动变阻器连接按键开关到Arduino控制器。
为了方便查看手动操作时舵机转动的角度,我们设置了一个输出角度信息的按钮。当我们转动舵机到我们需要的角度时,按一下按钮,Arduino便会通过串口返回一个舵机转过的角度。我们将这些角度数值记录下来烧写进Arduino中,下次操作时,只需要给Arduino发送一个串口指令,机械臂就会按设定的角度开始执行。轻触开关示意图连接舵机到Arduino控制器。
舵机可以根据你的指令旋转至0至180度之间的任意角度然后精准地停下来,非常简单,当然更重要的一点是省钱。我们使用Arduino的11、12、13端口输出PWM信号来控制舵机。将三台舵机的红线接入VCC端、棕色线接入GND端,三台舵机的黄线分别接入Arduino的11、12、13号端口。制作机械臂结构。
简单说,就是这样的过程:先在纸上画外形,再在AutoCAD上画零件,输出PDF文档给激光切割软件,最后,让激光切割机切割,拼装,固定,over!前方高能预警!多图杀猫!机械臂概念草图(灵魂画风版):机械臂零件图:组装成的机械臂各个部件:组装完成的机械图:夹上火腿肠就可以触摸屏幕了:图像识别。我们在python上调用openCV视觉库对进行图像处理。
计算机获取到视频信号后,先将橙黄色之外的颜色过滤掉,然后获取黄色色块的相关数据。程序通过面积和质心判断是否有新的红包出现,当有红包出现时,python脚本即通过串口向Arduino发送指令。计算机图像界面好了,坐等红包赶紧发过来!抢红包机器人大联欢。文章看到这里,该正视那些振聋发聩的问题了——激光切割机是什么鬼啊!空有一身编程本领搞不到原材料啊!就算能搞定妈妈也不让我在家弄啊!再说一遍!不要方!
这么有意思的东西,不和大家一起分享怎么行?本着有红包同抢的精神,我们将开源这个蠢萌机器人的全部内容,召集感兴趣的小伙伴一起共同制作各种抢红包机器人,给所有致力于更快更强更蠢萌的DIYer提供最大力度的支持!
不管你是想在除夕夜炫耀一把,还是想靠此发家致富走上人生巅峰,都欢迎来勾搭实验君的AI:长按扫码关注“万有工坊”,回复“抢红包机器人”并按提示操作,加入果壳抢红包机器人微信交流群,就可以获得抢红包机器人技术资料。而且,我们还可以对你提出的问题进行指导,将来你还有可能参与到果壳实验室的各种有趣项目里,赶快行动吧!现在Makeblock和柴火创客空间已经参与到我们的活动中了。
我们将在2月2日晚8点,在B站上进行视频直播,来展示各家的抢红包机器人,希望到时也能看到你的作品列入其中哦!(编辑:Jerrusalem)