![見出し画像](https://assets.st-note.com/production/uploads/images/132357574/rectangle_large_type_2_cec08e95c6b995848979a71e86a68c2e.png?width=1200)
Poke-Controller Arduino Leonardo用 Joystick.hexの作成
初めに
本手順はPoke-ControllerからArduino Leonardoを操作するためのプログラムをコンパイルする手順になります
準備
Poke-Controller-Modifiedのダウンロード
下の赤く囲まれた部分を実行します
![](https://assets.st-note.com/img/1709121663984-veK6Tj4foL.png?width=1200)
lufaのダウンロード
下の赤で囲まれた部分を実行します
![](https://assets.st-note.com/img/1709121710829-IcdwhMTIOG.png?width=1200)
WinAVR(Version20100110)のダウンロード
下の赤で囲まれた部分を実行します
![](https://assets.st-note.com/img/1709121755513-B6faGAQ2jX.png)
WinAVRの64bit用パッチのダウンロード
こちらのリンクからダウンロードします
https://www.madwizard.org/download/electronics/msys-1.0-vista64.zip
サクラエディタのダウンロード
https://github.com/sakura-editor/sakura/releases/download/v2.4.2/sakura-tag-v2.4.2-build4203-a3e63915b-Win32-Release-Exe.zip
圧縮プログラムの解凍
ダウンロードした各ZIP書庫を解凍します
lufa-masterだけはlufaフォルダに名前を変更してください
![](https://assets.st-note.com/img/1709122348305-2mlBy2E1N1.png?width=1200)
書き換えたlufaフォルダをPoke-Controller-Modified-master配下に上書き移動します
![](https://assets.st-note.com/img/1709122545541-CeMIpoJVMt.png?width=1200)
Poke-Controller-Modified-masterフォルダをC:¥PokeConフォルダに移動します
WinAVRのインストール
ダウンロードしたWinAVRのインストーラーを実行します
はいを選択します
![](https://assets.st-note.com/img/1709122934423-6CaeaiBKiE.png)
![](https://assets.st-note.com/img/1709122998901-uFOx63XOeE.png)
![](https://assets.st-note.com/img/1709123006768-806ZYoU6GY.png?width=1200)
![](https://assets.st-note.com/img/1709123014590-rdQ2JhPq1G.png?width=1200)
![](https://assets.st-note.com/img/1709123021393-pvwsRNVjWt.png?width=1200)
![](https://assets.st-note.com/img/1709123027407-MHiSqEpxfH.png?width=1200)
![](https://assets.st-note.com/img/1709123035891-IMuMg9zd69.png?width=1200)
![](https://assets.st-note.com/img/1709123044483-XKw9zYlqha.png?width=1200)
WinAVRへのパッチの適用
ダウンロードしたmsys-1.0-vista64.zipファイルを解凍すると「msys-1.0.dll」が出てきますので、インストール先のC:\WinAVR-20100110\utils\bin\に上書き保存します
makefileの編集
Poke-Controller-Modified-master配下にobjフォルダを作成します
サクラエディタでPoke-Controller-Modified-master配下のmakefileを開きます
MCUの記述を変更します
変更前 atmega16u2
![](https://assets.st-note.com/img/1709123375423-7TRiASVzd7.png?width=1200)
変更後 atmega32u4
![](https://assets.st-note.com/img/1709123498414-53MwUqp1wt.png?width=1200)
変更したmakefileを保存します
Joystick.cの編集
サクラエディタでPoke-Controller-Modified-master配下のJoystick.cを開きます
389行目を//でコメントアウトして保存します
※関数の宣言位置が使用位置より後ろの為コンパイルエラーが発生しますが、直すのも面倒なので今回はコメントアウトで対応します
![](https://assets.st-note.com/img/1709123715356-2zEzeddWOk.png?width=1200)
Lufaの修正
Poke-Controller-Modified-master\lufa\LUFA\Drivers\Board配下のButtons.hファイルをサクラエディタで開きます
![](https://assets.st-note.com/img/1709124089063-AcxhDsea6B.png?width=1200)
98行目の{ return 0}を下記内容にコピペして書き換えて保存します
![](https://assets.st-note.com/img/1709124117166-BoNm3RKlbp.png?width=1200)
static inline uint_reg_t Buttons_GetStatus(void) { return 0; }
![](https://assets.st-note.com/img/1709124127220-SbR60UBwWG.png?width=1200)
Joystick.hexの作成
コマンドプロンプトで下記コマンドを実行します
make clean
make
Finished building project "Joystick"と表示されることを確認します
![](https://assets.st-note.com/img/1709124552916-8m5dr5bNeV.png?width=1200)
Joystick.hexの書き込み
![](https://assets.st-note.com/img/1709124991401-wZwQFXW5pD.png)
書き込みにだけチェックを付け下のOKボタンを押します
![](https://assets.st-note.com/img/1709128326114-jPD0EqRJAT.png?width=1200)
空のスケッチをArduinoIDEから書き込みます
PORTSの表示が出たらArduino Leonardo本体のボタンをダブルクリックします
![](https://assets.st-note.com/img/1709127221763-306C1WiWXA.png?width=1200)
赤で囲まれた ↓ リセットボタンをダブルクリック
![](https://assets.st-note.com/img/1709125875477-zoWmLJcrA4.png?width=1200)
ポート番号とコマンドをテキストコピーしておきます
![](https://assets.st-note.com/img/1709125310111-wdUW497nEL.png?width=1200)
この場合はコピーしたコマンドが下記の通りだったので、ダブルクウォーテーションで囲みます
※空白があるとコマンドが失敗するため
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM9 -b57600 -D -Uflash:w:C:\PokeCon\Poke-Controller-Modified-master\Joystick.hex:i
↓
※今回の場合、囲むところはProgram Files (x86)の空白を含むパスを2か所囲んでいます
※bootloaderのポート番号は9だったため -PCOM9を指定
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" -C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega32u4 -cavr109 -PCOM9 -b57600 -D -Uflash:w:C:\PokeCon\Poke-Controller-Modified-master\Joystick.hex:i
コマンドプロンプトを起動し、上記コマンドを張り付けます
![](https://assets.st-note.com/img/1709126072277-Yr274VRivm.png?width=1200)
下記はデバイスマネージャでの表示例
![](https://assets.st-note.com/img/1709126215679-WgROXUPFOh.png)
再度、Arduino Leonardoのリセットボタンをダブルクリックし、bootloaderが起動している10秒以内にエンターキーを押してコマンドを実行します
下記コマンドプロンプトの様に、100%の書き込みが成功することをを確認します
![](https://assets.st-note.com/img/1709126319145-VebGX6b6bm.png?width=1200)
PCからArduino Leonardoを外します
Pokken Controllerの認識確認
下記サイトを開きます
Arduino LeonardoをPCに接続します
POKKEN CONTROLLER(Vendor:0f0d Product:0092)として認識することを確認します
![](https://assets.st-note.com/img/1709126908506-SzCYCJaetc.png?width=1200)
以上でPoke-ControllerからArduino Leonardoを操作するためのプログラムをコンパイルする手順は完了です
いいなと思ったら応援しよう!
![poketsv](https://assets.st-note.com/production/uploads/images/94751440/profile_bf5d343f1d0dd93f89c1838ee8892721.png?width=600&crop=1:1,smart)