キーボードとしてPCに認識させよう

こんにちは、インターン生の岡島と申します。

皆さん、音ゲーは好きですか?
よく遊びますか??
作ってみたくないですか???

ゆるーく電子工作未経験の人がコントローラーを作れるようになることを目的として、
電子工作初心者が書いていきます。

前回は、複数のボタンを繋げ、押されたら光らせてみました。

今回は、Arduino Unoにちょっと手を加えて、USBキーボードにしましょう!

こちらのサイト( http://techi.mydns.jp/?p=229 ) 非常に丁寧でわかりやすいのですが、それでも初心者の僕が
理解に苦しんだポイントを書いていきます。

そもそも、Arduino UNOに乗っているマイコンチップはATmega328Pというものです。
しかし、もう一つ、ATmega16U2というマイコンチップも乗っています。
ATmega328Pはスケッチの処理をしてくれる役割を持っていると思ってください。
ATmega16U2はUSBシリアルコンバータという役割があります。

ATmega328Pにスケッチを書き込みたいけどATmega328PにはUSBシリアルコンバーターという機能はありません。(PC→USB→ここで止まっちゃう →ATmega328P)

だから、ATmega16U2が代わりに通信をしてATmega328PにPCからUSB経由でスケッチを送ってくれています。(PC→USB→ATmega16U2→ATmega328P)

では、スケッチの通信をUSBでPCに送るためには?
そうです、受け取る通信をしているATmega16U2に、送る通信をさせればいいのです。(PC←USB←ATmega16U2←ATmega328P)

ATmega16U2には、初期状態(スケッチを書き込める状態)では、スケッチを書き込むためのファームウェアが入っています。
今回やるのは、このスケッチを書き込むためのファームウェアを書き換えて、USBキーボードのとして振る舞うようなものに書き換えれば、
Arduino UNOをUSBキーボードに作り変えることができるのです。

Atmel FLIPを使ってATmega16U2のファームウェアを書き換えます。
FLIP 3.4.7 for Windows (Java Runtime Environement included)を下記サイトからダウンロードします。
https://www.microchip.com/developmenttools/ProductDetails/FLIP

書き換えるファームウェアをGitHubから入手します。
https://github.com/coopermaa/USBKeyboard/tree/master/firmware

あとは、先ほど紹介したページ通りにやればオッケーですが、以下にポイントだけ書きます。

ATmega16U2に、書き換えるためにはArduino UnoをATmega16U2で起動しなければなりません。
通常、USBを刺しただけではATmega328Pで起動してしまいます。
そこで、USBに刺した状態で6つのピンの内、この2つのピン(↓の☆の部分)を銅線やら何かで繋げると、Arduino UnoがATmega16U2で再起動します。
                               ☆・・
                           (電源) ☆・・

ATmega16U2のファームウェアを書き換えて、USBキーボードにした場合は先ほど説明した通り、
ATmega328Pにスケッチを書き込めません。
そのため、スケッチを書いてからやることをオススメします。
また、ATmega16U2は頻繁にファームウェアを更新することは想定されていないので、100回程度やると壊れます。

再び、スケッチを書き込みたい場合は、ATmega16U2のファームウェアを”Arduino-usbserial-atmega16u2-Uno-Rev3.hex”に再度書き換えてください。

Arduino,PCが破損しても責任は負えません、配線等は各自よく調べたうえで実行しましょう!

第一回 お触り、Arduino IDEのインストール
第二回 LED光らせる?(Lチカに挑戦!)
第三回 スイッチを繋げてみよう!
第四回 押したらボタン、光るようにする…?
最終回 キーボードとしてPCに認識させよう

今回で以上です。

それではまたどこかでお会いしましょう!

さようならー!!

興味を持たれた方はお気軽にお問い合わせください。

インターンシップへの申し込み・お問い合わせ先

インターンシップへの申し込み・お問い合わせ先
メールでのお問い合わせは、下記フォームに入力して送信してください。
ご氏名 (例)山田 太郎
メールアドレス 半角英数字:ご入力間違いのないようにご注意ください
メールアドレス(確認用) 半角英数字:ご入力間違いのないようにご注意ください
電話番号 (例)0354339211 ※ハイフン抜きで入力してください
題名
お問合わせ内容

アーカイブ

カテゴリー