Project

Nitendon Switch Tetris Bot

Switch Bot开发日记系列


最近switch上一个小游戏非常火,叫Tetris 99。玩了一下发现实在手残遍出于对技术的追求(其实是因为操作苦手),打算开发一个tetris机器人。 这个机器人有三个部分

  1. 获取switch屏幕图像,传给本地服务端
  2. 服务端实时分析收到的图像,返回结果给控制器
  3. 控制器根据相应的指令操作switch主机

现在每个部分都有一些实现构思:

  1. 获取图像的方式

    直接用webcam

    • 优点:经济实惠
    • 缺点:识别不准确且服务端分析需要更久 使用采集卡
    • 优点:可以通过obs软件等直接获取屏幕画面,cv部分更好做
    • 缺点:成本高,需要pc高性能 -目力屏幕大脑连接pc –
  2. 服务端分析部分

    刚开始想要根据预设好的尺寸进行关键部分像素识别,但因为不是直接从视频输出源获取到的画面,所以这样的不确定因素太多了。

现在考虑使用OpenCV边缘化处理,构建分析坐标系

至于Tetris解法方面还没有想特别多,大概就是通过二维矩阵的变换寻找最优解(还考虑加入t-spine的解法)

  1. 控制器部分 这是我觉得最有意思的一部分了,有好多个小想法

    我在网上买了一个usb hub可以通过键盘控制switch。首先至少要有两个micro-controller,一个来接收pc指令,另一个模拟usb键盘连接switch hub。

pc上的分析程序用spring boot来构建,一个是对多线程的支持比较好,另一个是通过rest发送指令也很方便。分析程序通过serial同第一个单片机通信,通过rx tx同模拟键盘单片机通信。

模拟键盘的单片机用的是Leonardo R3

第一块单片机除了发送指令之外还可以驱动一个lcd,用来debug一些信息之类的。发现还有一个16×16的led matrix,也可以用来显示什么。

大概就是这样,开发的时候估计会遇到挺多问题 试验一下准备开工。