Nintendo DSをプログラミングで操作してみた

f:id:shibi_rr:20211127162420j:plain

※分解改造は自己責任でお願いします!

 

できること

 ・DS liteの上、下、左、右、Aボタンをプログラミング(Python)で操作

 

完成品動画

 ・ポケモン【エメラルド】のミュウ色違い厳選の半自動化

www.youtube.com

 

背景

 ・当時、色違いミュウの入手難易度がかなり高かった

 ・某動画を見てミュウの色違いが欲しいと思った

 ・ザロクバグの発見より「古びた海図」がなくても「最果ての孤島」にいけるようになった

最新の任意コード実行法の解説 - 哀しき獣の村

 ・ミュウとの追いかけっこを楽にしたかった

  (手動で15000回ぐらい厳選してでなかった;;)

 ・プログラミングでDSを操作するというような記事がなかった(少ししか調べてませんが…)

使用したもの

 ・DS lite

 ・Raspberry Pi 4 Model B 4GB (GPIOがあれば何でも)

 ・回路キット(導線、抵抗、ダイオード、スイッチ、ブレッドボード、ジャンパ線)

 ・はんだごて

 ・ドライバー(+、-、Y)

 

Amazon | Vemico Raspberry Pi 4 Model B(RAM 4GB)技適マーク付き/ 32GBのMicroSDカード/ 5V 3A USB-Type-C ON/OFFスイッチ付き電源アダプター/MicroHDMI-to-HDMIケーブルライン/CAT6ネットケーブル/ラズパイ専用ケース/冷却ファン/三つヒートシンク/ドライバー/カードリーダ 日本語取扱説明書 1年保証付 | Vemico | ベアボーンPC 通販

Amazon.co.jp: BONROB 40in1 Raspberry Piスターターキット 電子工作キット 初心者向けプログラミング入門キット ラズベリーパイ ブレッドボード ジャンパーワイヤー 抵抗 LED 温度/湿度センサ RABホルダー Raspberry Pi 4B 3 2 Model B B+ A A+に対応 ラズパイ電子工作 IoT実践 BS002 : 産業・研究開発用品

 

 ★最低限のものだけなら10000~15000円ぐらいかな

DSの分解

DS修理の説明書(DSlite分解方法画像)

 ↑ここを参考に分解します

http://korujeri.web.fc2.com/imeeji/IMG_2454.JPG

 ↑ここまで分解し、ボタンや十字キーが外せればOKです

 

はんだ付け

 ・ボタンの接点部分の汚れをふき取り綺麗にします

 ・赤の部分をはんだと導線でつなぎます(はんだ素人なのでこれに一番時間がかかりました)

f:id:shibi_rr:20211127181417p:plain

 ・ねじ止めし、もとに戻します

f:id:shibi_rr:20211127174811j:plain

 ↑Aボタン側

f:id:shibi_rr:20211127174835j:plain

 ↑十字キー

 

回路設計

 ・結構適当です(壊れても知りません!、もっといい方法があればコメントで教えてください)

 ・GPIO_1~5がOUTで、GPIO_6がINです

f:id:shibi_rr:20211127182857p:plain



プログラミング

 ・GPIOのHIGH/LOWを変えるだけなのでかなりシンプルです

 ・0.25秒間が大体一歩分に相当します

f:id:shibi_rr:20211127182321j:plain

実行

 (冒頭の動画)

www.youtube.com

 

(手動厳選も含め)18000~20000回程度遭遇を繰り返していると・・・

f:id:shibi_rr:20211127183544j:plain

f:id:shibi_rr:20211127183505j:plain

ついに出ました!!!

 

f:id:shibi_rr:20211127184050j:plain

f:id:shibi_rr:20211127213836j:plain

動揺しながらもGET!

 

めでたしめでたし

 

感想

 ・試行錯誤しながらも、装置を作成して動いたときにはすごい達成感があって、全体を通してとても楽しかったです。(色違いミュウもゲットできて良かったです)

 ・DS1台を犠牲にして、はんだづけがうまくなりました!

 ・回路設計の部分はかなり苦労しました。DSのバッテリー残量によってDSの回路の電圧値が変わることを知らなかったので、かなり混乱しました。また、導通する/しないの話なのでリレー回路を使うのがいいのかなと思いましたが、動いたからまあいっか。

 

最後まで読んでいただきありがとうございました!