ライフハック&ガジェット紹介ブログ!

ライフハック&ガジェット紹介ブログ!

ゲーム系のガジェット&ライフハックブログです。

amiibo福引用のマイコン自動化プログラム配布(合作)【モンハンサンブレイク】

こんばんは、露草です。

友達のこちゃてすとモンハンライズ・サンブレイクのamiibo福引を自動化するプログラムを作ったのでせっかくなので公開します。

 

モンスターハンターサンブレイクのamiibo福引を無限に引き続ける、

  • Arduino Leonardo(またはArduino micro用)スケッチ(.ino)
  • Arduino Uno用の(.hex)
    のプログラムです。

Arduino Leonardo(またはArduino micro用)のプログラムの書き込みは、
Arduino IDEというソフトウェアで、マイコンと呼ばれる機械にプログラムを書いて行います。

※一応Arduino Uno用の.hexも同梱あり。

Arduino Uno用の(.hex)は書き込みはパソコンで特定のファイル(.bat)をダブルクリックするだけでできます。

※Uno用はTV出力有りのswtichしか動作確認してないです(switch LIte用とTV出力有りのswitch用、両方あり)。

 

導入として最低限の知識買うものをこの記事で解説します。

読みやすさを重視して文章を削っているので、この記事を読んだ後に詳しい知識や、お得な買い方のアドバイスなどを知りたい人は、長いけど、

私の書いたこの記事を読むのがおすすめです(各種マイコンの説明やArduino IDEの説明らへんを読めばいいと思います)。

 

【重要】迷惑なのでこちゃてすさんに質問するのは絶対やめてください
質問は自分で調べてみてから(私のツイッターまで)。

なお時間が足りないので以下に書かれている事を【全て】読んでない人っぽい人からの質問は返答できないです

※目次にある段落【プログラムの利用】より前の段落までは、技術的な質問をするなら全て読んで欲しいです!

※2022/10/23追記 このプログラムは任天堂純正のドック(switchテレビに写す時に入れるやつ)またはホリのUSBハブスタンドを対象としています。また重くなるのを避けるため、カムラの集会所の猫から福引は引いてください。

Arduino IDEのexeはうまくいかなかったら右クリックから管理者権限で開いて下さい。

 

【買うもの】

Arduino Leonardo(またはArduino micro用)1個、USB micro Bケーブル(通信可能な物)1本Switch Lite(ライト)の人は必須ホリのUSBハブスタンド1個。

※初めての人は純正のArduino Leonardoを買うのがオススメ。純正か下の互換品でない場合は質問は受け付けません。

この2つはマイコンと呼ばれる機械の一種です。

microはLeonardoからリセットボタンなどの機能を減らしたバージョンです(その代わりに価格が安い)。

下に紹介するLeonardoないしmicroはどれか1つ今回は買えばいです。

純正microは半導体の影響か今高いので純正Leonardoでいいと思います。

 

どうしてもお金が無い人はこの黄色い互換品でもOK(ちゃんと動くらしいけど、私は持ってないのでなんとも言えない。誰か私にこれ買って下さい)。

マイコンに関しては互換品買うと基盤が異なっていてマジで動かないことが結構あるので、今回だけに限ったオススメだと理解して欲しいです。

 

ほんとはこれでもよかったけど今は高い(あと届く時期によって基盤が異なる可能性も考慮すると面倒)。

 

USB micro Bケーブル1本(通信可能な物。充電専用の物があるので気をつけて下さい)。

Leonardoの端子部分、抜き差ししてるうちにもげて壊れるのでケーブル挿しっぱなしがおすすめ

つまりマイコンの数だけ線買うと壊れなくてオススメという意味です。線は安いしどうせ抜き差しがめんどうになります。

↓↓以下のホリのハブスタンドはswitch LIteの人は必須で購入しないといけないです。
※わりと純正のドックって遅延やコマンドのすっ飛ばしの原因になるので、普通のSwitchの人にもおすすめです(検証したらドックはわりと遅延とかやばい)。

Q.なんでライトだけ買わなきゃいけないの?
A.ライトはUSBタイプAコネクタを挿す場所が物理的に無いから。

Q.たけーよ、安いやつダメなの?
A.Switchの自動化は繊細で、結構器具による遅延やコマンドミスが出るからよくわからんとこのやつより、任天堂ライセンス商品を作ってる株式会社ホリの製品がおすすめ(私も使ってます)。

Q.USBポート数が2と4あるんだけど?安い2ポートでいいンスか?コキ・・・
A.好みの方でいいけど、2ポートの方は角度の設定もしょぼいしスイッチの固定もしょぼいし、絶対4ポートあったほうが幸せになれる。

4ポートの方は角度を多分1度単位で調整できてるからめっちゃ快適。

4ポート3台2ポート1台買った結論は4ポート。

Q.普通のUSB-Cハブでもいい?
A.一応それっぽくは動くだろうけど、遅延の関係でマクロ側を調整しないといけないかもだからめんどいならホリのハブ買ったほうがいいです。

ガチ勢はマイコン側のmicroB端子の周りをエポキシ樹脂で硬化させて保護してたりします。

上に載せた製品は買ったこと無いのですが、多分接着剤をつけて放置した後に硬くなる系の接着剤を使ってると思います(ググって下さい(はぁと))。

とりあえずは力任せに線を抜かないで、microBの端子をきちんと左手で抑えながら、右手で線の端子を持って抜き差しするといいと思います。

【初期条件】は以下の通り

0.時刻設定が自動になっていないこと
    任天堂純正のドック、またはホリのUSBハブスタンド(任天堂ライセンス品)を使用すること(これガチ、絶対守って欲しい)

0-1.eshopの設定の『いつも遊ぶ本体』の設定で、福引を回すswitch本体を『いつも遊ぶ本体』に設定すること

0-2.アップデートのデータやライズ/サンブレイク本体は本体のメモリ(SSD)に保存して、SDカードには保存しない(SDだと反応が遅れるので失敗します)。

microSDカードについて|Nintendo Switch サポート情報|Nintendo

1.雑貨屋の前で話しかけるボタンが表示されていること
※心配ならオトモを連れ歩かないこと。
2.nfc読み込み機能のついたコントローラが接続されていること

※ジョイコンや公式のプロコンなど。プロコンなら十字キーの上あたり、ジョイコンなら右のスティックあたりの上にamiiboを何かで固定する。
3.自動化したいamiiboamiibo福引を、プログラムを動かしたい日にで引いていないこと
※同じ個体のアミーボの福引は同じ日に一回までしか引けないので、スイッチの本体の設定から本体の時間を未来に1日時間をズラして下さい。

4.エルガドよりカムラの集会所の中の猫から引いた方がゲームの負荷が軽くて福引マクロが失敗しない気がするので、一応集会所の猫から福引を引こう(ライトは特に心がけて下さい)。

5.画面右下に常に表示されているスライドバーを最初の操作受付確認に利用しているので、スライドバーの現在選択している位置を『空白:アイコン無し』の部分に合わせて置くこと。
※ゲームを再起動すれば、初期状態である『空白』の部分を選択しています。

6.amiiboの読み込みに、あなたがプロコンを使うかjoycon(ジョイコン)を使うかで使うプログラムが分岐するので、どちらを使いたいかでダウンロードするプログラムを変えて下さい。個人的には持っているならプロコン推奨です。
※読み込みの機能のスペックに多分差があるので、ラグが発生してプログラムがズレて動かなくなります。必ず各コントローラー対応のプログラムを使用してください。

【前提条件:インストールするプログラムのダウンロードなど】【必読】

ZIP版 Arduino IDEの自作方法

 

初回はarduino-1.8.19フォルダの中のarduino.exeをクリックしてIDEを起動してください。
その時、WindowsからJavaの使用を許可して下さいと出ますので使用を許可しましょう

※インストール版IDEがすでに入っているとarduino.exeから起動できなかったりしたので使わないならアンインストールして再起動してからzipを展開して、exeを起動して下さい。※必要ならインストール版も残すことは可能ですが、自分で対処して下さい。

 

こちゃてすさんと一緒に考えて、色々導入してありますのでぜひ活用してください。
※各種ライブラリ導入済み、ポケコンでLeonardoを接続部品として使えるようにするキーボードらへんのアレコレ(HID-Project)、AVRやSTLのアレコレが導入してあります!

※なぜか一生起動しないみたいな報告があるのですが、正直私の環境では発生しないので、なんとも言えません。

なので上の簡単版に頼らない、正規の導入の手順を、下記の『IDEの使い方』の目次の中の最後の方に書いておきますので確認してみてください。
ポケコン用のLeonardoの手順は以下でまだ書いてないです。

ここですごい簡単にいうと(ここでスクショしとくと楽だぞ!)

  1. Arduino IDEのZip版を公式サイトからダウンロード
    (バージョン2.0.0以上は対応してないので、ver2.0.0未満、つまりver1.8.13くらいを選ぶ)
  2. ライブラリ(コマンドの大元みたいな物)のファイルをコピペ
  3. 書き換えたboard.txt(ポッ拳コントローラーのID用に中身を編集)のファイルをコピペ
  4. IDE内のソフトで『Arduino avr boards』の1.8.3バージョン以上のインストールを操作(ワンクリック)
  5. こちゃてすが作った専用の関数ファイルのコピペ
  6. 『portable』という名前の中身の無いフォルダを作っておく

だけしかやらないのでダウンロード先がわかれば一瞬です。

今から買うマイコンはUnoとLeonardoどっちがいいの??

諸説ありますが、書き込みが楽で比較的高速に動くのはUnoで、

書き込みをArduino IDEで行うので、例えば交易をするしないなどをプログラムの書き込み画面で選べるのはLeonardo(pro micro)です。
※ただしプログラムの作者がそういうふうに設定してあればですが。

今はLeonardoの動作も高速化しましたし、色々細かい設定を書き込むときに選べて便利なので、Leonardo(pro micro)を選ぶ人が多いかもしれません。

一応Leonardo(pro micro)の方が書き込みできる容量も大きいという差もあったりします。

マイコンはプログラムの配布者に合わせるしかないので両方持っておくのもお得ではあると思います。

Unoは安くていいのがなかなか無いので、安心安全の公式品を買いましょう。

Arduino Uno R3 - スイッチサイエンス

売り切れな時はここから買うのが良いです。

ちゃんとマイコンの勉強をしたい!

自動化は複雑なので勉強が大変ですが、

私のこの記事で概要を勉強されると良いと思います。

他にも、こちゃてすさんのグーグルドライブマイコン関連資料】の中にある、[Atmega32U4]マイコン講座(Arduino導入編)というパワーポイントもかなりのオススメです。

こちゃてすさんのツイッターのツイフィールにドライブへのリンクあり。

※わからなくてもこちゃてすさんに質問するのはやめてください。

ツイフィール
https://twpf.jp/kochatece12

どうしても質問したい/わからない人へ

上のリンクにある私の記事で、switchの自動化全般について広く記載があります。

  • Ardiuno IDE(.ino)または(.hex)の必要機材などの解説

というのが目次にありますので、そこだけ読んでもいいと思います。

ただ全体の流れを踏まえて記事を書いているので、

  • Ardiuno IDE(.ino)または(.hex)の必要機材などの解説

を先に読んでよくわからなかったら、全体を通して読んでみてください(長い記事なので)。

ただ、初めての方は全体像を掴むのが難しいと思いますので、何かあればコメントかDMをください。(私のツイッター

プログラムの配布方法は?福引プログラム本体の配布はここ!

このグーグルドライブから自分の持っているArdiunoに合わせてプログラムをダウンロードして下さい。

  • Ardiuno Leonardo(pro micro)の方は、Leonardo用.inoの福引プログラム【Ardiuno IDE用】
  • Ardiuno Unoの方で、スイッチライトの人は、ライト用福引プログラム
  • Ardiuno Unoの方で、有機ELと普通のTV出力ありのスイッチの人は、普通のswitch用福引プログラム

をダウンロードしましょう。

プログラムの使用について【ルールがあります】

説明が長くなってしまうので、箇条書きで最初にまとめます※一般人向け
※Webサイト運営者等はこの段落は全て確認して下さい。

  • プログラムや、プログラムを書き込んだ何かを販売しない
  • つまりプログラムを営利目的で利用しない
  • 個人での利用かつ非営利のみで楽しんで下さい
  • 公共の場(TwitterやDiscordのサーバー等)での再配布、転載や自作発言等をしない
  • Webサイト等のインターネット及び誰からでも確認できる場所(例:Discordサーバー)にグーグルドライブへの直リンクを貼らない
  • 個人間での共有に限り、この記事のリンクを貼る形であれば共有はしてもよい
    ※例:ツイッターのリプライやDiscordサーバーで「このプログラムで自動化したよ!(この記事のURLを一緒に貼った書き込み)」。
  • つまり当サイトはリンクフリーです!(グーグルドライブへの直リンクや画像への直リンクは禁止)

凄い強引にまとめると、

この福引プログラムは自分個人での使用や、お友達へのクローズドな場(閉じられた場)を通しての配布などに限って、個人使用の範疇に収まる範囲での利用はご自由にどうぞ!

ということです。

個人が気をつけるのは、Twitterなどの公共の場でこのプログラムの事を共有したい時、グーグルドライブへの直リンクではなく、この記事へのリンクを張ってほしいということです(↓コレ)。

https://nemophila-tuyukusa.hatenablog.com/entry/monsterhunter-ardiuno1

なぜルールを守ってほしいかというと、自動化は技術的にとても繊細な界隈なので、これからも自動化で遊び続けられるように自重してねという意味です。

 

言うまでもないですが、プログラムを書き込んだマイコンの販売、自作発言、Webでの再配布など、社会通念上、道徳的に良くない行為は禁止します(禁止以前に性質上、営利で販売等をした方へ色々な方面からの訴訟が発生すると思うので止めましょう)。

 

~~~~ここまで一般人むけ~~~~~~~


~~~~ここから先はサイト運営者や動画実況者、ライターなど、何らかの方法で多人数の目に触れる形で、何らかの方法で引用、編集や、記事へのリンクの等を考えている方向けの禁止リスト~~~~~~

以下、禁止行為。

  • DiscordのサーバーやWebサイトなど何らかの方法で多人数の目に触れる形でのプログラムの使用、再配布、引用、転載の禁止
  • 営利を主目的としたサイト、およびその他の全てのサイトでの使用、再配布、引用、転載の禁止
  • プログラムなどの当サイトのコンテンツの無編集での再配布や転載、ならびに編集の有無に限らず営利目的での使用、編集、販売、再配布の禁止

要は後での対応がめんどくさいから度を越えた使用を禁止するということです。

※ブロガー等のサイト運営者の方、その他の媒体で引用したい方などは私のツイッターまで連絡をお願いします。その都度掲載の判断致します。

自動化を面白いと思ってくれている方からの友好的なリンク願いであれば普通に許可するので気楽にどうぞ。

Zip版Arduino IDEの自作のやり方

Zipとはパソコンのいろんなファイルをひとまとめにしてある箱(拡張子)の事です。

Windows標準機能で展開(解凍)できます。

以下にZIP版 IDEの自作の流れを記載します。

インストール版でも同様のことは可能ですが、利便性や壊れた時の対処方法、インストール時の手間を考えるとZIP版を作成したほうが後々楽です。

  1. Arduino IDEのZip版を公式サイトからダウンロード
    (バージョン2.0.0以上は対応してないので、ver2.0.0未満、つまりver1.8.13くらいを選ぶ。)
  2. ZIP版なのでダブルクリックでArduino IDE.exeを起動。右クリックから管理者権限で起動するのがベスト。
  3. IDEを起動後、IDEのソフト内での操作でArduino avr boards』の1.8.3バージョン以上のインストール(ダウンロード)を行う(ワンクリック)
  4. ライブラリ(コマンドの大元みたいな物)のファイルをgithubからダウンロードしてきて、先程ダウンロードしArduino IDE展開したフォルダの中の特定の場所にライブラリをコピペ
  5. 書き換えたboard.txt(ポッ拳コントローラーのID用に中身を編集)のファイルを、Arduino IDE展開したフォルダの中の特定の場所にコピペ
  6. こちゃてすが作った専用の関数ファイルをArduino IDE展開したフォルダの中の特定の場所にコピペ(重要:これないと動かん)

を淡々とやればいいのでそんなに難しくないです。

IDEのダウンロード↓↓(無料)

www.arduino.cc

プログラムの編集や書き込みを行う、Arduino IDEの導入をします。

上記のリンクからダウンロードしますが、古いバージョンを使いたいので、下の方にスクロール(ページを下に動かす)します。

Legacy IDE (1.8.X)みたいな文字が見えると思うので、今回はバージョン1.8.13をダウンロードしましょう。

※画像は19だけど1.8.13のほうが多分いいです。

Windows10の場合は赤枠からダウンロード。

]無料で使えます(シェアウェアではなくフリーソフトです)

※余裕があるならIDE側は寄付も募集してます。

Previous IDE Releases | Arduino(これリンクです)

バージョン1.8.19はたまたま上に出てきたバージョン(2022/10月時点)なので、欲しいバージョンが違うなら『Previous IDE Releases | Arduino』のページからダウンロードできます。

あとはZipを展開して、『arduino.exe』をダブルクリックでソフトがとりあえずは起動するはずです。

ダブルクリックよりは右クリックの管理者として起動、がより良いです。

2.IDEの操作で『Arduino avr boards』の1.8.3バージョン以上をインストールする

IDEのソフトウェアを起動し、「ツール>ボード>ボードマネージャー」を開く

出てきた検索窓に適当に『AVR』とかで検索をかけると『Arduino AVR Boards』が出てくるので、インストールしましょう。
※既にインストールされているとINSTALLEDという文字が出ます。
しかし1.8.3というバージョンより上のバージョンが必要なので1.8.3以下なら更新しましょう

3.ライブラリ(コマンドの大元みたいな物)のファイルをコピペ

github.com

 

アクセスしたら右上のCodeからDownload Zipを選択して、

NintendoSwitchController』ライブラリをダウンロードします。

ダウンロードしたZipを展開すると、

中には『NintendoSwitchControll-master』というフォルダが入っていると思います。これをライブラリと俗に言います。

※ライブラリは4種類くらいあるのですが、今回のマクロは『NintendoSwitchController(NintendoSwitchControll)
』を使用します。

先程Arduino IDEをソフトウェアを展開したと思うのですが、そのフォルダの中に、

さらに『libraries』というフォルダがあるのでクリックします。

そして『NintendoSwitchControll-master』をライブラリフォルダにこのままコピーアンドペーストしてください。

わかる人向けに書きますが、階層は、

C:\Download\arduino-1.8.13-windows\arduino-1.8.13\libraries\NintendoSwitchControll-master

みたいな感じになります。

4.board.txtの書き換え

このままだとIDEが認識しているデバイスのIDがswitch用になっていないので、board.txtと呼ばれるデバイスIDをコントロールしてるデバイスリストをswitch用に書き換えます。

そろそろ説明も大変になってきたので、board.txtに関しては配布されている物を利用します。

友達のこちゃてす氏のグーグルドライブの中の、

マイコン関連資料>編集に必要なファイル>Arduino leonardo

という階層に『board.txt』があるので、ダウンロードしてコピペします。

コピペしたい場所は、

C:\Download\arduino-1.8.13-windows\arduino-1.8.13\hardware\arduino\avr』です。※多分ダウンロードフォルダにあるけど、C:\Download\の部分はあなたがZipを展開した場所のフォルダ階層になっています

露骨に最初から『board.txt』が置いてあるので、IDEのソフトの起動を一旦終了して、その後、ダウンロードした『board.txt』に上書きするか、『board.txt』を削除してからコピペしてください。

5.こちゃてす氏が作った専用の関数ファイルのコピペ(これないと動かん)

友達のこちゃてす氏のグーグルドライブの中から2つのファイルだけダウンロードします。

マイコン関連資料>編集に必要なファイル

の中にある、『auto_command_util.cppauto_command_util.h』を、
ダウンロードします。

ダウンロードしたファイルを、

C:\Download\arduino-1.8.13-windows\arduino-1.8.13\libraries\NintendoSwitchControll-master\src

に上書きします。

すでに同じ名前のファイルがあると思いますが、中身が違うので上書きします。

これを行わないとプログラムを書き込めません!

つまり、先程自分でダウンロードしてきたライブラリフォルダの中にさらに移植するという感じです。

※多分ダウンロードフォルダにあるけど、C:\Download\の部分はあなたがZipを展開した場所のフォルダ階層になっています

6.中身に何も入っていないportableフォルダを作る

なぜか中に何も入っていない『portableフォルダ』を作らないとIDEが動かないので、『C:\Download\arduino-1.8.13-windows\arduino-1.8.13\portable

画像のように『arduino.exe』が置いてある階層に『portableフォルダ』を作成しましょう!

マウスの右クリックの『新規作成』から名前が『portable』なフォルダを作っておいておくだけでいいです。

これでIDEの設定全部?

これで全部。他のライブラリを使いたくなったら、

C:\Download\arduino-1.8.13-windows\arduino-1.8.13\libraries\

にまた新しいライブラリをコピペすればOKです。

プログラムの書き込み用方法と今回のマクロの個別設定の解説

IDEでは、IDEを起動するたびに設定が正しいか確かめなければいけない項目が2つあり、そこを確かめてからプログラムをマイコンに書き込めばOKです。

確かめる場所は以下の2つです。

  1. ツール>ボードがArdiuno Leonardoになっているかどうか
  2. ツール>シリアルポートがArdiuno Leonardoと表示されているCOMポートになっているかどうか

なっていなければボードとシリアルポートを以下の画像のように、

Ardiuno Leonardoと書かれている物を選択して設定して下さい。

COMポートは人によって数字が変わるので、Leonardoと書かれていたりするそれっぽいやつを選びましょう。

その後、Ardiuno IDEで今回のプログラムを開きます。

プログラムの開き方は、IDEの画面の『ファイル>開く』から開けます。

開かきゃいけないプログラム、つまりArdiuno Leonardo用のプログラムは、

>Leonardo用.inoの福引プログラム【Ardiuno IDE用】

というフォルダの中にある

autoLottery__kocha_pen.ino
です。

Arduino Uno用の.hexもグーグルドライブのあります。

※.inoLeonardo用(Ardiuno micro用)のプログラムのファイルです。

プログラムを開いた後、

 //switchのタイプ lite:0 normal:1
const int Komoku = 0;

の0の部分を自分のswitchに合わせて変更して下さい。
※Switch ライトなら0、普通のSwitch(有機EL含)なら1です。

その後、IDE
>スケッチ>マイコンボードに書き込む

を押せばプログラムがマイコンに書き込めます。

エラーなく書き込めればそのままSwitchに挿せば使えます。

とりあえずSwitchに挿してみて動くかどうか確認してみて下さい。

※エラーだった場合は赤文字がでるので露骨にわかります。

Windowsのユーザー名が日本語だとバグることがあるので、うまくいかなかったらユーザー名は半角英語にしてみてください(ユーザー名ポッチャマでバグってた人を見ました)

Discordで『自動化勉強会&交流サーバー』を開設しました!!

誰でも参加できます!!(※無料。Discordというアプリ/WEBアプリを導入すればOK)
以下設立趣旨とかそのへん!↓

 

以下のリンクから誰でも参加できます↓
※規約等は中で確認できます!

サーバーの招待リンクはこちらに掲載致します。

discord.gg

上記のURLが期限切れでの場合は、

discord.gg

自動化の知識が結構蓄積されているのでぜひ気軽に参加してみて下さい!!

終わりに

自動化やパソコン自体が初心者だと色々大変で難しいと思います。

私もとても大変な思いをして情報をまとめました。

ここがわからないよ!みたいな事は気軽にコメントかDMしてくれたらと思います。

それが汎用性のある悩みなら丁寧な記事にすると自動化を楽しめる人が増えると思うので、私の記事で取り上げます!