Arduino UNOは、フィールドサイズ8x8の2048で再生します

比較的最近、エキサイティングなゲーム2048がネットワークに登場し、ネットワークに登場した最初の日から多くの人々が引きずり込まれました。 このゲームを十分にプレイした後、行と列のセルの数が8に増えた新しいバージョンのゲームに出会いました。

それがすべての始まりであり、ゲームの3時間後に負けたことはなく、興奮は獲得したポイントに比例して増加しました。 ほぼ半日を殺し、数字を畳んで、私は興味を持ちました。 このゲームはいつまでプレイできますか? でも、わざと負けたくありませんでした(一日中遊んだのは無駄ではありません)数字で行と列を動かして、簡単なアクションを実行するスケッチを書くことにしました。 PCで実行するプログラムを作成するという考えを拒否したことをすぐに明確にしたいのですが、これは古くからのトピックだからです。 ビデオのアルゴリズムは、スケッチを書くときに使用したものとは異なります。

それでは、必要なものから始めましょう。 目標は非常に簡単でした。ArduinoUNOのスケッチを作成し、キーボードのキーストロークをエミュレートします。 デバイスをコンピューターに接続すると、スケッチが開始され、ゲームの数字2048がモニター上で動き始めます。

アクションのアルゴリズム:

  1. 必要な機能を備えたスケッチを作成し、ATmega328 MKを記入します
  2. 点滅するArduinoブートローダー、ATmega8U2 USBコントローラー
キーストロークをエミュレートするには、 HIDKeyboardライブラリを使用しました 。 さて、ここで最も興味深いことに注目してください。ArduinoUNOをHIDデバイス、より具体的にはUSBキーボードに変えます。

ちょっとした理論。

ブートローダーファームウェア-最初に、Arduinoをデバイスファームウェアアップデートモードまたはより一般的に使用されるDFUのバージョンにする必要があります。 USBコンバーターへのシリアルとして機能するコントローラーをフラッシュするのに役立ちます。

ご存じのとおり、Arduino UNOと以前のArduinoボードの主な違いは、USB <-> COM(FT232R)USBハードウェアコンバーターに代わる2番目のATmega8U2コントローラーです。 このソリューションの利点は、ArduinoをPCに接続するときに任意のデバイス(ドライブ、隠しデバイスなど)をエミュレートするために、インターフェイスコントローラーのファームウェアを置き換えることができることです。 どうやってやるの? インターフェイスコントローラーにはDFUモードがあります-USB接続を介したATmega8U2コントローラーファームウェア。 中央のArduinoコントローラーのファームウェアとほぼ同じです。 これを行うには、独自のユーティリティFlipを使用できます。 コントローラをこのプログラミングモードに移行するには、Arduinoの小さなハードウェアアップグレードが必要です。 どうやら、開発者はインターフェイスコントローラーのDFUモードを使用するために特別に作成しました。 多くの人は、10kΩの抵抗器をボードの裏側の特別に用意された場所にはんだ付けする必要があるとインターネットに書いています。




正式には困難はありませんが、誰もがはんだ付けのリスクがあるわけではありません。 そして、正直なところ、これは役に立ちません。 もっと便利な方法があります。




これらの手順の後、コンピューターは新しいデバイスを検出し、ドライバーを単独でインストールしようとしますが、失敗します。 Atmel独自のFlipユーティリティをインストールします。 タスクマネージャーを開き、新しいArduino Uno DFUデバイスを確認します。




最近インストールしたFLIPユーティリティのフォルダーからドライバーを選択します。 その結果、新しいデバイスAT90USB82ができます。 さらに、Arduinoを接続すると、デバイスはUSBデバイスとして検出されます。 次に、HEXファイルにUSBキーボードの指示を入力する必要があります。 コンピューターがArduinoをusbキーボードとしてさらに認識するようにします。 FLIPを開始します。






  1. メニューで[デバイス]> [選択]> [AT90USB82]を選択します。
  2. メニューで[設定]> [通信]> [USB]を選択します
  3. 開くをクリックします
  4. ファームウェアにアクセスして、「実行」をクリックします
ファームウェアプロセスの最後に、プログラムを閉じて、デバイスの動作を確認できます。 その結果、私のArduinoは2048でほぼ1週間成功しました。 彼は夜でも消しませんでした 確認のために、これが私の結果です。




これは、Arduino UNOをHIDデバイスに変える方法です。 ところで、ゲームをプレイするだけでなく、ノートブックを起動してそこでジョークを書いたり、コマンドを実行したりするデバイスをコンピューターに接続することで、友達もプレイできます。キーボードはコンピューターのメインコントロールパネルです。 残念ながら、この方法はArduino Nanoボードには適用できません。 前述のように、2番目のArduino UNOコントローラー(ATmega8U2)はUSBからシリアルへのコンバーターとして使用され、Arduino UNOコンピューターをUSBデバイスとして識別します。 結論は次のとおりです。外部のデバイスを使用せずにこの方法を実装するには、ArduinoボードにUSBシリアルコンバーターとしてプログラムされたマイクロコントローラーがある場合のみ可能です。 しかし、Arduino NanoまたはUSBからシリアルへのコンバーターのない他のボードがある場合はどうでしょうか? この場合、このような別のコンバーターを購入できます。








All Articles