每次打开微信群,都觉得错过两个亿?没关系!我们做了个“抢钱”专用机器人!

果壳网2020-11-11 14:33:39


眼瞅着春节就要到了,吃完年夜饭,坐在电视机前,除了看春晚还能干啥?

当然是抢红包啊!

 小到二十几人的家属群,大到几百人的公司群,无论是大伯小叔,还是顶头上司,这么喜庆的日子不发红包合适吗?不合适!发的少合适吗?不合适!你抢不到合适吗?当然更不合适了!愣神三十秒,错过三个亿,是不是一切假设都没有意义了?简直哭都没地方哭!

 你先把那个“抢红包脚本”放下!没创意不说,这是赤裸裸的作弊你懂吗!这样抢来块八毛的,你有半点成就感吗?

 真的Maker,敢于直面缺钱的同事,敢于正视满屏的红包。我们不屑于将精力花在埋头疯狂按屏幕上,我们要用智慧和超强的动手能力,自制一个抢红包机器人,用它灵()活()的机械手臂,不光替你实现发大财的心愿,还在抢到红包的时候为你增添乐趣和成就感!

不信你看,是不是特别厉害?

GIF可能加载得有些慢,大家一定要耐心等待!

怎么样,没让你失望吧?

咦...?为什么你的表情充满了嫌弃?不管原味五香孜然麻辣,能抢到红包就是好火腿肠!等……等一下!你怎么把机器臂拆下来吃了!!为什么这么饥渴!!红包不要了吗!!

要怎样才能拥有如此酷炫的机器人?果壳实验室的小伙伴公开配方,来DIY一个吧!

需要准备的材料如下:

Arduino Mega2560

面包板 ×1

杜邦线 若干

按键开关 ×1

10K 电阻  X1

10K 滑动变阻 X3

舵机 ×3

2mm亚克力板 约40cm×40cm

橡皮筋 ×2

以及整个机器人的灵魂部件——火腿肠 ×1


怎么样,是不是物美价廉,唾手可得?你只需要控制一下食欲,不要在做完之前吃掉机械臂就行。


需要准备的设备如下:

外置的摄像头

摄像头支架

激光切割机(??)

一台装有python+opencv+numpy环境的电脑(???)


???

????



大哥,激光切割机给报销吗?

 我抢个红包几块钱,激光切割机便宜点的也要好几千,我连压岁钱都搭进去啊!!

 

——激动的朝阳区群众如是说。


不要方!一定要把文章看完!成本这么高还介绍给你们,一定是有我们实验室的用意的!


1
抢红包机器人的原理是啥?

开始制作抢红包机器人时,我们试图找一个更加简单的方案:鉴于红包出现的位置每次都是固定的,所以我们先get四块TSC200颜色传感器,把它们贴在手机屏幕上,覆盖住红包出现位置的四个角。当颜色传感器同时检测到橘黄色时,可以判断为有新的红包发出来,这个时候Arduino就开始进行抢红包操作。

 是不是很简单易学?是不是感觉一切尽在掌握之中?

 然而当我们拿到TSC200颜色传感器模块的时候却十分崩溃,TSC200芯片很小不假,但做成模块后电路板就足足占了大半个屏幕,脸都遮没了……


 

 大家依旧不要方!条条大路通罗马,我们迅速转而寻求另外一条途径——计算机图像识别

 简单来说,就是用摄像头拍摄手机画面,通过计算机视觉库分析画面信号,判断出是否有新的红包出现,当红包出现时即向Arduino发送指令,Arduino控制机械臂在屏幕上进行三次(姿势优美又充满力量的)点击,一次抢红包的操作就完成了!

2
我该怎么制作它?

制作机器人的第一步,当然应该是来了解它的核心构造——机械臂啦。

 机械臂通过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!


前方高能预警!多图杀猫!

机械臂概念草图(灵魂画风版):


机械臂零件图:


组装成的机械臂各个部件:


组装完成的机械图:


夹上火腿肠就可以触摸屏幕了:


3
图像识别

我们在python上调用openCV视觉库对进行图像处理。计算机获取到视频信号后,先将橙黄色之外的颜色过滤掉,然后获取黄色色块的相关数据。程序通过面积和质心判断是否有新的红包出现,当有红包出现时,python脚本即通过串口向Arduino发送指令。


计算机图像界面

 好了,坐等红包赶紧发过来!


4
抢红包机器人大联欢

文章看到这里,该正视那些振聋发聩的问题了——

激光切割机是什么鬼啊!

空有一身编程本领搞不到原材料啊!

就算能搞定妈妈也不让我在家弄啊!


 

再说一遍!不要方!这么有意思的东西,不和大家一起分享怎么行? 

本着有红包同抢的精神,我们将开源这个蠢萌机器人的全部内容,召集感兴趣的小伙伴一起共同制作各种抢红包机器人,给所有致力于更快更强更蠢萌的DIYer提供最大力度的支持!

 不管你是想在除夕夜炫耀一把,还是想靠此发家致富走上人生巅峰,都欢迎来勾搭实验君的AI:

长按扫码关注“万有工坊”,回复“抢红包机器人”并按提示操作,加入果壳抢红包机器人微信交流群,就可以获得抢红包机器人技术资料。而且,我们还可以对你提出的问题进行指导,将来你还有可能参与到果壳实验室的各种有趣项目里,赶快行动吧! 

现在Makeblock和柴火创客空间已经参与到我们的活动中了。我们将在2月2日晚8点,在B站上进行视频直播,来展示各家的抢红包机器人,希望到时也能看到你的作品列入其中哦!(编辑:Jerrusalem)


本文来自果壳网,谢绝转载

如有需要请联系sns@guokr.com