别踩白块儿bot

标签:DIY 别踩白块儿

nicekwell 发布于 2016-10-09 01:23

自动玩别踩白块儿游戏。用光敏电阻检测黑块,用光耦控制触摸屏幕,从而实现黑块到来时自动点击。

Step 1: 概述

整个系统分为两个部分:
  1、黑块的识别
  2、触摸屏的触发

  对于黑块的识别,屏幕上白色和黑色的光线差别比较大,所以用光敏电阻可以很方便地完成。

  而触摸屏的触发方法,网上很多人用机械臂(硬盘磁头、舵机等)点击,我担心这种触发方式响应速度比较慢,所以采用导线直接触发触摸屏。
  对于导线的通断控制,有人用过继电器,用继电器的话毕竟是机械触发,响应速度也可能会比较慢。
  总之我直接选用光耦来控制,完全的电子触发,响应速度比上述两种方法肯定要快得多。

  所以,我们需要的材料有:

基础材料:

洞洞板:够大就行
铜柱:4个,把洞洞板架空,防止桌面静电干扰,尤其是屏幕触摸部分很怕干扰。

黑块识别:

光敏电阻:4个

51k电阻:4个,用作光敏电阻上拉,不固定,根据光明电阻特性,只要能有明显的电压变化即可。

led指示灯:4个,用作黑块指示灯。

1k电阻:4个,用作led上拉。

lm393:2个,双路电压比较器。

103电位器:4个,就是可调电阻,用于给电压比较器一个参考电压。


触摸屏触发:

817光耦:8个,每两个一对,用于导通一路通道。

1k电阻:8个,用于817光耦的上拉。

湿润的纸巾:屏幕上用湿润的纸巾作为触发点效果很好。


Step 2: 黑块的识别

0.jpg 1.png 3.jpg 2.JPG
2.1 光敏电阻
       光敏电阻的特性是光线越强电阻越小,光线越弱电阻越大。电路如上面第二幅图。

  只要上面的电阻选得合适,光敏电阻在黑块和白块之间就会有较明显的电压变化。
  我选用的上拉电阻是51k,放在白块的电压大约是0.5v,放在黑块的电压大约是1.5v。从电压看来上拉电阻还可以再小一些,但只要能产生稳定、明显的电压变化即可。

  注:DIY时关掉手机或者平板的自动背光调节,避免干扰。

2.2 电压比较器

  电压比较器采用的是lm393,这是双路电压比较器芯片。通过电压比较器可以区分出上述光敏电阻在黑块和白块之间的电压变化,电路如上面第4幅图。

  R1和RL就是上面提到的光敏电阻分压电路,接到lm393的反相输入端。

  R3是电位器,接到lm393的同相输入端。

  当光敏电阻分压的电压比电位器电压高时(在黑块上),1out引脚输出低电平,此时led点亮;
  当光敏电阻分压的电压比电位器电压低时(在白块上),1out引脚输出高电平,此时led熄灭。

  以上就是一路的黑块识别电路。

Step 3: 触摸屏的触发

4.png 5.jpg 6.png 7.JPG
3.1 触摸点的引出
  屏上触摸点可以通过导线引出再接地,原理和触摸笔类似。4点说明:
  1、对于android设备可以打开开发者选项里的显示触摸位置,方便调试;对于ios设备还没找到好的显示触摸位置的方法。
  2、导线应当越粗越好,但我实际用较细的导线效果也可以接受。
  3、关于屏幕上的触摸点,很多人用硬币之类的东西,我发现用浸湿的纸巾会有很好的效果,还可以节省触摸面积。
  4、使用导线引出触摸点的方法,人体对屏幕的影响相比较直接触摸要弱得多,经常会出现触摸不灵敏的情况,而且手机触摸屏也会有防水的算法。
  包括在后面加入光耦控制后,遇到这种触摸不灵敏的情况,一个建议是先不要接地(手不要触摸导线),再把屏幕灭屏唤醒一次,此时由于触摸屏的防水算法不会认为有触摸,然后再用手触摸导线,此时会有较好的效果。

  完成之后大概就如上面第一幅图。

3.2 触摸的控制
  我们需要一个开关来控制导线和人体的通断。
  继电器是一个选择,但继电器是机械触发,速度可能比较慢,所以最终没有采用,而是用了光耦。
     817光耦的引脚图如上面第3幅图。当1–>2导通时,4–>3方向导通,这样就形成了一个开关。
  但是!这样可能并不能满足需求,单个光耦的导通方向是单向的,而触摸屏和人体之间的电流可能是双向的,所以我们需要两个光耦进行双向导通。(注:我没有验证过单个光耦能否工作,因为之前有其它地方遇到过必须双向导通,所以这里为了保险直接用了双向导通的方案)
  双向导通的光耦连接方法如上面第4幅图。
       这样连接后A和B就双向导通了,一端连接手机触摸屏,一端连接人体即可。
  这里R1和R2我用的都是1k欧的电阻。

Step 4: 整体组装

8.JPG 9.png
4.1 黑块检测和触摸的结合
  2.2节介绍了如何通过lm393识别黑块,并且在检测到黑块时会点亮led。
  3.2节的电路实现了触摸屏的电子触发。

  只要把这两个电路结合起来就能实现检测到黑块时触摸屏幕,电路图如上面第一幅图。
       其中A和触摸屏相连,B和人体相连,光敏电阻RL贴在显示屏上。
  以上是一路的检测和触摸电路,别踩白块儿需要4路,做4路同样的电路即可。

4.2 安装与调试
  1、触摸屏触发技巧
  屏幕触点用湿润的纸巾效果是不错的,工作过程中需要保持纸巾的湿润。   另外在3.1节也有提到过,经过光耦和导线后,人体对触摸屏的影响是很弱的,当遇到触摸不灵敏时有一个技巧是人体先不要接触导线–>灭屏唤醒一次–>人体接触导线–>反复开关光耦,直到屏幕被触发。   可能每个人遇到的情况会不一样,只有你亲自动手才能找到技巧。

  2、触点和光敏电阻的位置
  一开始是把触点放在了光敏电阻的上面,这样放置当黑块下降速度稍微快点时就会漏点。
  后来把光敏电阻和触点平行放置,光敏电阻甚至稍微有点偏上,这样效果要好得多。

  完成之后的样子大概如上面第2幅图。

到这就全部制作完成了,快去破纪录吧!
 
未霜2018-03-09 21:37:15
作者大神你好,请问如果想要换位思考,做到检测白块并点击白块,利用光敏电阻还能做到吗?应该怎么做呢?我想完成一个自己的构思,希望能得到大神的指点(๑•̀ㅂ•́)و✧ 可以有偿。
nicekwell2018-03-19 12:43:34
黑白块在电路反映出来的是光敏电阻电压变化,想要识别白块只要把光敏电阻电压输出接到电压比较器的另一个输入端即可。
Anarchism2018-01-20 18:31:05
led灯在黑块不亮在白块亮怎么解决
nicekwell2018-01-21 20:36:59
电压比较器同相输入端和反向输入端接反了,把两个引脚对调。
qzuser2017-10-08 12:22:45
检测黑块部分做好灯常亮怎么解决
nicekwell2017-10-12 13:50:33
调节电位器,让电位器电压介于光敏电阻在黑块和白块之间的电压。
qzuser2017-10-07 20:49:22
这个怎么供电的
nicekwell2017-10-12 13:49:17
USB 5v供电
沉心2017-07-25 20:46:47

用41K的电阻可以吗

nicekwell2017-07-26 15:53:28
你说的是光敏电阻的上拉吗?这个电阻不固定,分别量一下光敏电阻在黑白块时光敏电阻分压的电压,41k应该是可以的。
沉心2017-07-26 15:59:45

回复 nicekwell : R1?

joey2017-06-11 08:53:21
电路焊接是那个元件?请楼主指导一下菜鸟,谢谢
nicekwell2017-06-11 21:23:17
你说的是什么意思?电压比较器是lm393,光耦是817
exe6152017-01-21 01:57:57
发现问题所在了,不能断开和人体的接触,不然又要反复开关光耦才能连接的上。
exe6152017-01-21 01:30:13
感觉主要是触发位置不好找,导线动一下后触发就不灵敏了,请问一下这方面有什么注意的地方没有。
exe6152017-01-20 00:23:05
理论上来说用一节干电池的负极替代人体也是可以的。但是现在通过光耦后,怎么试都没响应。
exe6152017-01-20 00:21:17
问一个问题,我把导线连接出来后用手触摸的确可以起到控制作用,但是一旦把导线接在A或者B后,无论怎么用手触摸A或者B,屏幕没有响应。
nicekwell2017-01-20 12:12:56
通过导线和光耦后灵敏度差了很多,调起来需要花些工夫,尝试反复亮灭平,反复通断光耦。
哈哈的我2017-11-22 23:19:08
回复 nicekwell : 我想请问下调试和手机型号有关吗?还有就是我用手指连接一根导线,再连接一根导线到手机屏幕,就发生一个神奇的事情,用手指触摸导线一端没反应,必须松开手指再断开导线才有反应,这是为什么?求解答
nicekwell2017-11-27 18:30:28
回复 哈哈的我 : 不同触摸屏厂商的抗干扰算法可能不同,所以会导致不同的手机有不同的特性,这个没有特定的解决办法,只有你不断地尝试,找到经验。
我在调的时候也经常遇到触摸无效,需要反复通断、反复亮灭平,找到最佳状态。
Clivia2017-01-18 10:11:58
楼主,问下光耦哪里的B必须跟人体相连吗?有没有其他好的替代的方法?
nicekwell2017-01-19 19:54:37
挂块猪肉?O(∩_∩)O~ 我不是特别了解电容屏的原理,但觉得应当用一个比较大的导电物体,你可以尝试一下接地或者连接一个比较大的导体,我没有试过
旭日萧潇2017-01-14 11:16:02
问下楼主,你画的那两个光耦的连接电路中,那两个光耦的接法不是完全一样的吗?比较器的输出信号接的都是光耦的阴极,这样的话两个光耦应该是同时闭合,同时导通的啊,并不会出现反向导通的情况啊
nicekwell2017-01-17 12:14:15
两个光耦是同时导通和闭合的,但两个光耦导通的方向不同,所以可以双向导通。
nicekwell2017-01-19 19:55:12
两个光耦是同时导通和断开的,但两个光耦导通的方向不同,所以可以双向导通。
nanhuo2017-01-10 12:32:51
手残党救星,233333
甜橙2017-01-06 00:15:08
好好玩!下次做一个用它抢红包哈哈哈!
小菜2016-12-28 00:43:04
楼主能不能做一个成品给我,2496273127
cookie2016-12-21 23:33:23
前辈好厉害! 多点触控,由电脑实时控制,继电器这块您有什么推荐么
nicekwell2016-12-24 12:47:26
继电器做开关好像都差不多吧~
弹力女超人2016-10-12 10:46:17
还没玩过这个游戏,看完视频好想找来手动先试一下哈哈哈
nicekwell2016-10-12 11:07:50
你好厉害啊,女的还把电路、程序搞得这么溜
弹力女超人2016-10-12 11:18:02
回复 nicekwell : 不要搞性别歧视啊,我也是学EE的哟
nicekwell2016-10-12 11:25:52
回复 弹力女超人 : 哪有啊~我是恭维 阿不,是佩服,由衷的佩服
弹力女超人2016-10-12 11:27:01
回复 nicekwell :
动力老男孩2016-10-10 22:48:48
涨知识了,原来触摸屏可以这样直接触发,比机械臂方便太多了!相当高科技啊,改一改还可以用来抢红包
nicekwell2016-10-10 23:12:56
这种方法响应速度快,但是经常会触摸不灵敏,调的时候有点麻烦。
另外用它抢红包,搞不好被劝退了~哈哈~~
动力老男孩2016-10-10 23:15:55
回复 nicekwell : 看视频响应非常快,也很灵敏,抢红包可能会被被群里的同学殴打,哈哈

作者

nicekwell

安徽,合肥

14粉丝 6作品 0随笔
  关注 私信

作者的最新作品


阅读数: 28760