Arduino Leonardoの導入(画像認識なしの自動化)
Nintendo Switch Controllerのライブラリを導入し、Arduino LeonardoをSwitchのコントローラーとして使用可能にするための方法を記述します。
Contributor:
こちゃてす氏(Leonardo導入のアドバイス、プログラムへのリンクの許可)
Twitter: https://twitter.com/kochatece12
1.機器の購入
基本的には、最初は正規品をお勧めしますが、KEY STUDIO社のものでも動作は安定しているようです
①Arduino Leonardo(正規品)
②KEYSTUDIO社製のArduino Leonardoのコンパチモデル
2.Arduino IDEインストール
プログラムの編集や書き込みを行う、Arduino IDEの導入をします。
①ソフトウェアのダウンロードページにアクセスします。
自分の環境に合ったものを選びます。Windows10の場合は赤枠をクリック。
※注意 Arduino IDEのバージョンが2.0以上だと安定しません。
先程のページを下の方までスクロールして、Legacy IDE(古いIDE)の項目から1.8.19をダウンロードします。

②寄付について聞かれるページに辿り着きますが、「JUST DOWNLOAD」でOKです。
(余裕がある方は、寄付もご検討ください。)

③ダウンロードしたexeファイルを開き、ソフトウェアをセットアップする。
3.ボードマネージャーからLeonardo追加
①ソフトウェアを起動し、「ツール>ボード>ボードマネージャー」を開く

②検索窓から「AVR」と検索し、「Leonardo」がパッケージに含まれているものを「インストール」する(AVRのバージョンは最新または1.8.3以上を必ず選んでください)。

4.GithubからNintendo Switch Controllerの導入
①Github : Nintendo Switch Controllerへアクセス
②「Code」をクリックし、「Download ZIP」で一式をダウンロードする。

③以下の、方法AorBでライブラリをインクルードする。
方法.A
A-1. スケッチ>ライブラリをインクルード>.ZIP形式のライブラリをインストール

方法.B
B-1.ダウンロードしたZipファイルを、「右クリック>全てを展開」で展開しておく
B-2.展開したフォルダをArduinoのLibraliesフォルダ内に移動する。
フォルダの位置は環境にもよるが、多くは下記のような配置になってるはず。
PC>Cドライブ>Program Files(x86)>Arduino>libraries

※画像は、NintendoSwitchControll-masterを「NintendoSwitchControll」にフォルダ名を変えてます。
5.ボードのVID/PIDの書き換え
①PC>Cドライブ>Program Files(x86)>Arduino>hardware>arduino>avr へ移動します。
②bords.txtを以下のいずれかの方法で書き換えます。

方法A.
A-1.bords.txtを開きます。(できればVSコードなどコードエディタがおすすめ)
A-2. "leonardo.vid.0= " , "leonardo.pid.0=" の場所を全て下記のように書き換えます。
leonardo.vid.0=0x0f0d
leonardo.pid.0=0x0092

A-3.書き換え終了後、保存して閉じます。
方法B.
B-1.こちゃてす氏のGoogle Driveよりbords.txtをダウンロード
B-2.ダウンロードしたbords.txtをフォルダ内のものと置き換える
以上で基本的なセットアップは終了です。
6.オプション(こちゃてす氏のプログラムの導入)
こちゃてす氏のプログラムのいくつかは独自の関数を使っているため、それを使用可能にする必要があります。(以下の作業は一般的なSwitch用のLeonardoのプログラムがコンパイルできなくなるなどの影響はありません)
①こちゃてす氏のDriveのフォルダ(編集に必要なファイル)にアクセス
②下記の2つのデータのダウンロード
・auto_command_util.h
・auto_command_util.cpp
③ファイルの置き換え
PC>Cドライブ>Program Files(x86)>Arduino>libraries>NintendoSwitchController>src 内の同一名のファイルを置き換えます
以上で、こちゃてす氏の独自関数の導入は終了です。
2022/10/8 はんぺん追加編集。IDE2.X.Xで動かない問題の回避方法を説明。