2021/12/11

【ポケモン×Arduino_01Q&A】マイコンが動作しないときのQ&A集

 ※本記事は、各種自動化プログラム導入の際に「わからない」「動かない」などのトラブルについて頻出する質問をまとめた記事です。ポケモン剣盾の操作をArduino Leonardoで自動化しております。「Arduinoって何?」って方は00回目の記事を、Arduinoの環境構築(ライブラリ含む)は01回目の記事をご覧ください。

 

2022.05.23追記:導入に関しての質問などが増えてきており、文章だけだと分かりにくい箇所があるため、導入手順をまとめた動画を公開します。01回目の記事をご覧ください。

また、 本記事「デバイスID、boards.txtについて」を加筆しました。


 

ここでは、よくある質問、過去に来た質問をまとめておきます。コメントなどで聞く前にこちらを確認してもらった方が早く解決するかと思います。

 

大前提として

Q1. 何を買えばいいの?何をDLすればいいの?等

A1. まずはは00回目01回目の記事をご覧ください。

 

Q2. OSがMacやLinuxの場合はどうすればいいの?

A2. 私がMacやLinuxでやったことがないため、Winと違う点については回答できません。少なくともMacに関しては似たようなことをしている方がいるようなのでググってみてください。

 

Q3. Arduino UNOやラズパイ等でできない?

A3.私が使用していないため分かりません。Arduino UNO(ATmega16U2)については、自動化に使用、プログラム作成などしている方がいますので、そちらに類似のプログラムが公開されているかもしれません(無理に要求はNG)。UNO用にプログラムを変換することも可能のようですが、私自身がサポートしきれないので自己責任でお願いします。

 

 

 ライブラリ導入について

Q4. ライブラリをDLしたら、どこに入れればいいの?

A4. ArduinoIDEを通常設定でDLしたのであれば、「ドキュメント」に「Arduino」というフォルダが追加されており、その中に「libraries」フォルダがあるかと思います。Windows10の場合、「エクスプローラー」(フォルダのアイコン)を開き、左側にある「クイックアクセス」の中か、「PC」を開いた先に「ドキュメント」が見つかるかと思います。


Q5. どうやってライブラリを入れるの?

A5. 「ダウンロード」フォルダにNintendoSwitchControll-master.zipがあるはずなので、まずは解凍してください。解凍して出てきたフォルダをコピー、上記A3のように「libraries」フォルダを開き、ペーストしてください。

解凍やコピー、ペーストが分からないならググってください。

 

 デバイスID、board.txtについて

Q6.boards.txtはどこ?

A6.まずは以下の通りにしてみてください。

① Arduino IDEを開き、左上の「ファイル」>「スケッチ例」>「01.Basics」>「AnalogReadSerial」を開く
② 「AnalogReadSerial」のウィンドウから、 左上の「スケッチ」>「スケッチのフォルダを表示」を開く
③ エクスプローラーで「AnalogReadSerial」フォルダが開くと、上段に
 ...> examples > 01.Basics > AnalogReadSerial
 のように階層が表示されているので、1個ずつ上の階層をクリックしていく
④ 上の階層の「Arduino」を開くと、9個くらいのフォルダーが並んでいる中に「hardware」があるはずなので開き、「arduino」「avr」と順に開くと「boards.txt」があります。

もし見つからないのであれば、エクスプローラーから「PC」を開いてドライブC(PCごとに表記は異なります、Windows(C:)など)を開き、「Program Files(×86)」あたりを開くと「Arduino」フォルダがあるかと思います。それ以降は④同様です。

 

Q7.boards.txtを開いた後、どこを編集すればいい?

A7. テキストエディタでコントロールキー(Ctrl)とFキーを同時に押すと「検索」機能が使えるかと思います。
「leonardo.vid」「leonardo.pid」でそれぞれ検索を繰り返し、ヒットしたところの「=」以降をそれぞれ「0x0f0d」「0x0092」に手当たり次第に変更してください。

 

Q8.boards.txtをうまく保存できない?

A8. 「avr」フォルダ内の「boards.txt」をそのまま開いていませんか?バックアップを兼ねて元々の「boards.txt」を別の場所(デスクトップなど、どこでもOK)に保存し、それとは別に編集した「boards.txt」を保存してください。その後、「avr」フォルダ内の「boards.txt」を削除して、編集した「boards.txt」をコピペしてください。

 

Q9.boards.txtを書き換えたのに動かない?

A9-a.書き換えにWindows標準のメモ帳を使っていませんか?メモ帳で保存すると失敗するようです。他のテキストエディタ(「サクラエディタ」など)をDLして使用、編集してみてください。

A9-b. 「boards.txt」を別のフォルダに移して編集した後、「avr」フォルダに戻しましたか?「avr」フォルダ内の「boards.txt」を開き、「leonardo.vid」などが換わっているか確認してください。

A9-c. 書き換えた後に、IDEをアップデート等しませんでしたか?アプデに伴い、編集した「boards.txt」が再度書き換わっている可能性があります。編集しなおしてください。 

A9-d. 確認しましたところ、Arduino AVR boardsのバージョンにより、参照する「boards.txt」の位置が異なるようです。ボードマネージャーを開き、バージョンが1.8.3であるか確認してください(インストール直後の状態)。1.8.4以上だと書き換えるべき「boards.txt」が変わるようなので、1.8.3にダウングレードすることをおすすめします。


スケッチの書き込み~動作について

Q10.書き込むことができない、エラーが表示される?

A10-a. 自身で編集した場合は、まず配布されたままのスケッチ、他のスケッチなどを書き込んでみて、プログラムにミスがないか確認してください。編集した際のプログラムのミスの場合は行末に「;」があるか、全角スペースなどが入っていないかなど確認してください。プログラム以外のミスであれば、上記の準備についてのミスが考えられます。

A10-b. 「#include <auto_command_util.h>」や関連する関数でエラーが起きている場合は、ライブラリがうまく認識されていない可能性があります。01回目の記事や、上記「ライブラリ導入について」を確認しつつ、正しく入っているか確認してください。

A10-c. このライブラリはArduino Leorardo用となりますので、Arduino UNOなどには対応しておりません。自分の使っているマイコンがLeonardoであるか確認してください。Arduino IDE左上の「ツール」より、 「ボード」がArduino Leonardoと認識されているか、「シリアルポート」が正しくマイコンを認識しているかを確認してください。


Q11.書き込むことはできたが、Switchに挿しても反応しない?

A11-a.まず、Switchに挿されたマイコンが1Pとして認識されるようにしてください。プロコンなどで操作していた後にマイコンを挿した場合、ボタン入力等が反応したとしても2P以降として認識した場合、ポケモンをはじめとする1人専用のゲームでは動きません。Switchを1度スリープさせ、電源ボタンを押して起動したすぐの状態からマイコンを挿してみてください。

A11-b. 1P、2Pに関わらず認識していないのであれば、Arduinoがコントローラーとして認識していない可能性が高いです。「Q9.boards.txtを書き換えたのに動かない?」を確認してください。

 

その他

Q12.動くんだけど、思い通りの動作をしない?

A12. おそらく導入はできているため、プログラム個別の問題です。対応する記事などを読み直しても解決しない場合はそちらで質問してください。

 

Q99.上記以外の質問、元記事や上記質問を見ても解決しない?

A99. コメントなどで質問してください。その際、自身の環境(PCやIDEのバージョンなど)、どこまで問題なくできたか、どこでつまづいているか、表示されるエラーメッセージなど、可能な限り説明があった方が早く解決するかと思います。

8 件のコメント:

  1. ゲーム画面の時は動作(入力自体はされているようです)せず、ホーム画面の時には動作しています。原因はどのようなことが考えられますか?

    返信削除
    返信
    1. USBハブから純正ドックにつないでいますが、これは問題ありませんか

      削除
    2. 申し訳ありません、解決しました。
      ゲーム画面で待機させたうえでジョイコンを本体にくっつけておく必要があったんですね・・・

      削除
  2. 質問失礼します。
    バックアップしたboards.txtを編集し、avr内のboards.txt削除しようとすると、「アクセス許可を得る必要があります」と表示されます。解決方法がありましたら、ご教授ください。

    返信削除
    返信
    1. アクセス許可については、管理者となるアカウントでの操作が必要になるかと思います。これに関しては、Program fileを直接弄ることから避けられません。
      こちらとしては再現が難しいため、アクセス許可について解説している他のサイトで調べることをおすすめします。

      削除
  3. ミドリカワセミ様、初めまして。こちらの記事を参考に自動化に挑戦をしているのですが、スケッチをコンパイルするところでつまずいてしまいました 記事の通りにnintendo switch controll masterをダウンロード後解凍し、arudinoのライブラリにフォルダごと入れたのですがサンプルスケッチをコンパイルしようとすると 
    auto_command_util.h: No such file or directory
    というエラーが表示されてしまいます
    switch controllがファイルにあることは何度も確認し、ダウンロードし直したりマイコンの種類を確認したり等したのですが、上手く出来ませんでした
    pcはwindows10 avrは1.84です
    原因がわからずお手上げ状態のため
    差し支えなければお知恵をお貸し頂けないでしょうか。

    返信削除
  4. 少し前までは動作していたのですが、突然ポート選択ができなくなり、シリアルポートも灰色となってしまいました。
    再インストールをしても状態は変わらずお手上げ状態です。
    これはマイコン側の故障なのでしょうか。

    返信削除
  5. 返信が滞っており申し訳ございません。
    先ほど、01回目の記事の方にて、環境構築に関しての手順を解説した動画を公開しました。トラブルの際は、動画も合わせて確認をお願いいたします。

    返信削除

【ポケモンSV×arduino06】道具プリンター乱数自動化(藍の円盤)

 ※本記事は、ポケモンSVの藍の円盤(DLC)にて、 道具プリンター を決まった日時に起動することで 特定のアイテム、ボールを狙って量産する操作を自動化 するプログラムについて解説した記事です。ポケモンSVの操作をArduino Leonardoで自動化しております。 本記事の内...