Arduinoを使ってswitchの操作を自動化してみた話
2025-04-04
azblob://2025/04/11/eyecatch/2025-04-11-switch-automation-used-arduino-000.jpg

はじめまして。

2025年4月より、FIXERで働かせていただけることになりました、松澤 遼風(まつざわ はるか)です。
今回はちょっとした自己紹介と好きな技術のお話をしようと思います。

自己紹介

改めまして、松澤 遼風(まつざわ はるか)です。
年齢は20で、出身は岩手県です。
岩手県にある一関工業高等専門学校の本科卒で、卒業研究では、機械学習を用いた麻雀における他家の待ち牌予測の研究を行っていました。
卒業研究の話はいつか書こうかなと思います。
趣味はゲーム、麻雀です。
ゲームはストリートファイター6や原神(さぼり気味)、崩壊:スターレイル、ポケモンが好きです。最近は特にスト6にハマっていて、つい先日、マスター昇格後に1200まで下がったMRを1500まで戻すことができました。
麻雀はネット麻雀が主で、雀荘には怖くて行けてないです、、。

好きな技術

テーマが好きな技術とのことだったので、Arduinoを用いたswitchの自動化についてお話をしたいと思います。

Q.そもそもArduinoって何?

A.プログラムを書き込める小さいコンピュータの事です。ラズパイにも似てますが、ArduinoにはOSが搭載されていません。

自己紹介でも書いたようにポケモンが好きなので、ポケモンSVも発売日からプレイしていました。当時対戦にハマっていた人にはわかると思いますが、対戦に必須アイテムのテラピースを集めるのがとても苦行でした。
そんな時、X(当時のTwitter)を見ていたら、Arduinoを使ってレイドを周回している動画が流れてきて、なんだこれは!?と衝撃を受けました。すぐに調査し、必要な機材を購入しました。



簡単な構成
Switch → PC: キャプチャーボードを用いて、Switchの画面をPCに送信
PC → Arduino Leonardo: シリアル変換器に操作コマンドを送信し、シリアル変換したコマンドをArduino Leonardoに送信
Arduino Leonardo → Switch: コントローラー操作の送信

実際の動作の流れ
PCがキャプチャーした映像を分析し、記述したプログラムに応じて必要な操作を判断します。その判断結果に基づいて、PCはArduino Leonardoへ操作コマンドを送信します。そして、Arduino Leonardoがそのコマンドを受け取り、Switchに対してコントローラー入力を模倣します。


最初は、自動化の勉強や情報共有用のコミュニティに入り、ほかの人が作ったプログラムを使わせてもらっていたのですが、自分でもコードを書いて自分の理想の動作をさせるようになりました。具体的には、オシャボ入りの孵化余りが指定数集まるまでマジカル交換をし続けるプログラムや、switch2台を用いたレイド周回プログラム等を作成しました。まるで自分が複数いるような錯覚に陥り、形容しがたい全能感に包まれました。この体験を通じて、技術の力を実感しました。

さいごに

ここまで読んでいただき、ありがとうございました。
これからFIXERで働く中で、新しい技術や知識を学びながら、自分自身をさらに成長させていきたいと思っています。
よろしくお願いします。

azblob://2025/04/17/eyecatch/2025-04-15-encount-000.jpg
2025/04/17
Others