伊机控使用教程

宝可梦,单片机

Views:  times Updated on April 30, 2021 Posted by elmagnifico on August 5, 2020

Foreword

伊机控教程其实早就写过了,只不过一直放在群里,这次转成文章吧

伊机控,支持三种模式

  • 联机模式-简单说这种方式串口要一直连着,可以在线控制,随机可以开始停止,切换脚本,但是不支持一些极限脚本。
  • 烧录模式-第一烧录进去以后,就可以断开串口了,只要脚本没运行完,就不会停,再次更换脚本的时候需要再连接串口并且重新烧录,并且支持一些要求极高的脚本。
  • 固件模式-不需要串口,直接烧写固件进去就行了,不需要任何编译!!!

前提条件

使用的第一步是先烧一次铃落的基础固件,固件在firmware文件夹中,根据你的单片机选择对应名字的,然后对应方法烧写进去,这个你买了单片机自然就知道怎么烧写固件,烧写教程请看烧写相关文档。

  • Beetle v5.hex
  • Leonardo v5.hex 对应单片机有时候也叫 pro min或者pro micro
  • Teensy2 v5.hex
  • Teensy2pp v5.hex
  • UNO v5.hex 对应Atmega16u2 也就是uno r3

请务必保证当前使用的固件和软件版本都是最新的!!!老版有各种问题没解决

联机模式

首先默认是认为已经物理连接好了单片机到switch,并且连接了串口

  • switch —> 单片机 —> 串口 —> PC

左边选择单片机类型,这里已经支持了5种,根据你自己的选择就可以了。

第二步,自动连接串口,也可以手动下拉选择串口(多串口多设备的情况下)

  • 在注意一下伊机控这里必须要使用自动搜索端口,如果提示搜不到,尝试交换tx和rx
  • 如果还搜不到,先断开单片机到switch的连接,同时断开串口到pc的连接,但是串口和单片机还是通过杜邦线连接的,然后先插入单片机到switch,再插入串口到pc
  • 还搜不到,确认你是否线接对了,接牢了
  • 再搜不到,确认是否单片机上电了
  • 再再搜不到,确认串口的3.3v是否通过跳帽接到了vcc上
  • 依然搜不到,确认你驱动是否装好了
  • 就是搜不到,确认你是否烧好了固件

第三步,选择一个脚本,比如我这里打开自动刷茶杯闪的脚本

第四步,点击运行,脚本就开始执行了

这个时候你就能看到,switch里已经在操作了,当然这个方法不限于宝可梦剑盾,实际上奥德赛,塞尔达,怪物猎人,动森,火焰纹章,很多重复度高的内容都可以通过这样的脚本来完成。

烧录模式

接下来介绍烧录模式,前置条件都是一样的,所以我直接从上面的第四步开始说:

点击编译并烧录

会提示你烧录完成,和目前已经使用了的脚本空间大小,点击确定

然后点击远程运行,左上角的黑屏里不会像联机模式一样输出当前运行到哪里的信息,但是你看画面游戏里已经在动了

切换脚本的时候,重新打开脚本文件,然后烧录即可。 有时候可能会遇到bug之类的,那就先清空烧录程序,再烧录,反复使用,完全不用担心单片机反复烧写的问题

固件模式

固件模式是这个里面最简单的模式,不需要串口支持,打开软件以后,不需要管什么串口啊,烧录啊,只要打开脚本,点击生成固件,就ok了!

生成的固件位置在同目录下,是什么单片机,固件名字就是 单片机+Script.hex 你只要把这个hex烧写进你的单片机,那么就能正常工作了!

但是固件模式是最不推荐的模式,本身单片机的flash烧写次数就有限,大概是10000次左右,反复固件烧写比较废flash,所以联机和烧录模式是更好的选择

手柄功能

伊机控还有一些其他的功能:

比如串口连接的时候,其实你可以直接用键盘控制switch,相当于是个手柄

启动虚拟手柄时,你就能看到一个joy-con出现在桌面,左键单击可以禁用/启动,右键可以拖动,中键-隐藏加禁用。你也可以点旁边的小问号查看帮助。

按键设置,点了以后就能看到手柄的所有键的映射,你可以自己修改成你想要的,这样就能直接键盘操作switch,是不是很六?不过这个通信是靠串口和单片机完成的,实际体验会有一点点小延迟吧。

  • 目前支持格斗类游戏使用上左,上右等复合十字按键

搜图功能

简单说单片机执行的时候完全按照固定时间来操作,但是具体游戏里的情况完全未知,没有对操作的任何反馈,为了弥补这一环,增加了搜图功能,需要配合采集卡来使用,可以根据搜图结果来对操作反馈,从而达成一个完美的循环。

主界面选择-采集卡-采集设备并打开,可以看到类似下面的界面

比如这里是寻找钓鱼时出现的感叹号,并操作单片机在出现感叹号的时候按A钓鱼,所以首先就是要捕捉到感叹号这个画面

第一步,先截图(多次点击捕捉感叹号出现的画面),截图后按住左键平移截图,滚轮放大缩小图片

第二步,点击开始圈选(红),右键圈选(这里圈选的是搜索范围,感叹号可能出现的范围),然后点击确定搜索范围

第三步,点击开始圈选(绿),右键圈选(这里群选的是搜索目标,感叹号),然后点击确定搜索目标

第四步,点击搜索测试,查看是否能找到目标图片

第五步,动态测试,游戏内重复钓鱼的操作,查看是否能够找到目标图片,并且最高匹配度达到多少,以此作为自动更新最低匹配度或者判断找到的条件

第六步,保持标签,脚本内就可以使用@该标签了

示例:
    # 搜索钓鱼感叹号
    $2 = @钓鱼2
    IF $2 > 95
    	PRINT $2 & 上钩了
    	A
    ENDIF

每次修改后,务必保存标签,否则脚本内无法生效 切勿在脚本运行时,保存标签,容易崩溃

切换分辨率会导致之前在不同分辨率下的标签位移,建议标签上加上使用分辨率容易区分

打开截图

每次点击截图,会自动保持截取到的图片到Capture文件夹中,当要捕捉的对象是动态时,一次性截图不容易截到,可以尝试多次点击截图,之后再通过打开截图,选取搜索目标

最低更新匹配度

由于游戏内存在天气或者时间流逝,导致这个搜索目标可能会因为渲染而发生明显变化,这个时候脚本里设置的识别匹配度就不符合之前的要求了

所以为了解决这个问题,当满足最低匹配度的时候,会自动更新搜索目标,这样认为就算游戏内存在渲染变化(渐变),也能在每次找到以后自动适应

关闭自动更新搜索目标可以把最低匹配度设置为101以上就可以关闭了

正常使用自动更新,则是把匹配度设置为0-100以内

脚本

编写脚本

脚本教程,语法请看伊机控内部教程各种用法都有示例了

最简单的就是无限连A,具体脚本群文件也有,自己看一看就知道了。

进阶请看其他脚本,看别人是怎么写的,看几个就会自己写了。

所有脚本建议前置激活USB的操作,类似如下,这个是为了第一次插上单片机时可能usb通信还未建立,需要下面的操作来建立通信

FOR 10
	# 这个按键建议是不会对游戏内造成影响的,有的地方可能会有影响,自行替换
    RCLICK 
    500
NEXT

脚本的使用

脚本一般都有一些使用要求,有的可能只能固件或者烧录模式使用,有的可能只能联机使用,错误得用了以后肯定会跑飞的。

脚本里也有一些起始条件的限制,所以使用前务必仔细看一下脚本开头,并核对你游戏的环境是否相同。

录制脚本

点击录制脚本,开启虚拟手柄,所有按键操作和延迟都会实时记录显示,录制结束以后,可以立即运行看效果。

写脚本时有些操作需要反复测量延迟,反复操作毕竟麻烦,所以有了录制模式,可以直接录制所有按键操作,后续只需要加上循环或者判断条件就可以用了,当然直接用录制的脚本运行也是可以的。

常见问题

  • 重新烧写了固件,但是取下来重新放上去还会自动跑

需要连接串口以后清除烧录的程序,就不会自动跑了,原因是刷固件和烧录模式写入的地方不一样,烧录进去的内容不会因为刷固件而被清除

  • 开头丢键,脚本没反应,固件模式和烧录模式如果拔下来再插上去有可能丢开始的几个按键

有的脚本可能是给联机写的,所以开头没有任何延迟,也没有激活usb通信的操作,就会导致一开始一部分按键可能没发出去。在脚本的开头增加以下代码,可以有效避免这一问题。

FOR 10
	# 这个按键建议是不会对游戏内造成影响的,有的地方可能会有影响,自行替换
    RCLICK 
    500
NEXT
  • 脚本跑飞,跑丢,按错

大概率是只能烧录或者固件模式的脚本被拿来联机使用了,可能会发生这种情况。还有可能是游戏内的设置不正确,语速慢,动画未跳过之类的。还有一个可能就是脚本作者写的延迟比较严格,适配了他的机器,但是每个人的机器可能响应速度有差异,就导致每个人需要的延迟不一样,这种情况下请观察是哪里跑飞了,然后增加对应地方的延迟,从而让脚本适合你自己的环境。

请使用最新版本的固件而不是老版本的

先说很多脚本是基于联机模式来跑的,但是目前已知联机有以下问题

cpu100%占用时可能导致联机运行时时间出错,导致跑飞,某个时候可能你开关某个程序造成的一瞬间也会有影响,有时候就会导致跑飞。

联机的理论延迟大概10ms左右,有时候可能会因为系统的某些原因变得更高,导致脚本变形跑飞

  • 别人能正常跑,但是你用就跑飞

原因有很多:

  1. 机子跑的过程中可能太热了,降频以后,游戏内或者响应速度降低了,导致按键错过了
  2. 来回切换TV模式会导致主机一瞬间卡住,反复插拔HDMI线也会出现这个问题
  3. 原装底座散热很差,很容易跑久了就跑飞了,建议加强散热自己改装或者使用拓展坞
  4. 游戏内联网了,挂机的过程中断网了,然后跑飞了,建议不需要联网的情况下,手动断开

解决办法:

  1. 重启机器,并且静止15分钟左右,让机器降温
  2. 不要超长时间挂机,给机器一点休息时间
  3. 原脚本中所有延迟适量增加,一般一次10%左右的增加
  4. 给机器增加辅助散热,比如风扇或者使用改装过的散热更好的底座
  • 删除固件

没有这种操作,这种要求也很奇怪,要删除固件建议,写个无限等待脚本然后固件模式刷进去。

烧录模式请清除烧录的程序

演示视频

这里是演示自动识别人名上车的具体图片采集位置,和使用效果,最好全屏放大观看。

伊机控的优势

目前已有的脚本也好固件也好或者是其他人卖的单片机也好,各自有各自的长处吧,缺点我就不说了你们对比一下就行了。

  • 开源,免费
  • 支持多种单片机,不受奸商限制
  • 理论响应速率是其他固件的5倍,一些极限操作可能必需要通过伊机控的基础固件来完成
  • 更新快,脚本数量多,种类齐全
  • 易上手,可玩性高
  • 采集卡支持,图搜

一些还没加上去的Feature

  • 同时模拟多手柄
  • 支持多脚本烧录或者固件模式下切换
  • 无线串口(cale目前有测试版本固件/硬件和伊机控版本)

开源,免费

最后铃落的伊机控呢是开源的,免费的,也就是任何人都可以自己下载编译,不过我们一般会定期出一个版本,方便大家的使用。

下面是项目地址

https://github.com/nukieberry/SerialCon

https://github.com/nukieberry/PokemonTycoon

特别是最近我们研究了一波,解了一些单片机老是会丢键的问题,目前整体基本稳定了,所以特别放出来给大家测试使用,欢迎大家传播,讨论

目前伊机控的稳定版也好,测试版也好,不定期会发到群里,有问题随时报告,当然我群规则比较多,见谅。

教程写的比较草,有问题的话,直接群里问,你们随意吧

再补充一点,这种物理外挂,官方不会检测,也不会有任何封号的风险,本质上和挂了一个手柄是一模一样的

最后是我的NS群:

NS宝可梦剑盾 一群 490570154 二群车主群27775142 三群伊机控单片机群946057081 四群乱数讨论群 755843002 五群动森岛主群383218664 六群不思议的皇冠1158816209,七群宝可梦大集结300155660