質問:
コンピュータへの実際のデバイスとしてのArduino
Siddhartha Sadhukhan
2017-06-17 01:08:50 UTC
view on stackexchange narkive permalink

コンピュータのマウスがあるとします。これをコンピュータに接続すると、コンピュータはそれが接続されているマウスであることを認識します。キーボードや他の多くのデバイスでも同じことが起こります。私の理解によると、マウスにはマイクロコントローラーとTTLシリアルコンバーターがあり、コンピューターのデフォルトのマウスドライバーが接続されたデバイスからの命令を理解できるように特定の方法でプログラムされています。

1つについて話しましょう。自分のデバイス用のデバイスドライバーを作成するプロジェクトの例。 arduinoのように、COM3などのポートにシリアル命令を送信すると、Javaプログラムであるドライバーがそれらの命令を読み取り、それに応じて実行します。

ご存知のとおり、arduinoライブラリはマウスとキーボードをサポートしており、正常に動作します。マウスの操作はカスタムドライバーなしで実行されます。

これで、arduinoがコンピューターに接続すると、ジョイスティックやペンドライブなどとして検出されます。

arduinoライブラリにあるマウスとキーボードのさまざまなヘッダーファイルを調べますが、それらは非常に複雑で、適切なドキュメントが理解しにくいものです。

どこでできるか教えてください既存の図書館に関する研究資料を見つけますか? ArduinoのWebサイトでは、動作方法ではなく、さまざまな方法に関するドキュメントのみが提供されています。

または、独自のライブラリを構築することを考えている場合は、どのように始めればよいですか?

もう1つ見つけることができます。マウス、キーボード、ペンドライブ、CD-ROMなどの従来のデバイスが通信中に従うプロトコルに関する情報(デバイスのマイクロコントローラーに焼き付けられるコードやアルゴリズムなど)?

私はそれを知っていますすぐに使える質問ですが、それでもあなたが私を助けてくれれば、私はあなたに感謝します。

Googleを試してみてください-ArduinoゼロHIDのようなものを探してください-私は人々がそのようなことをしているのを見たことがあることを知っています。 (HIDはヒューマン入力デバイスです)
はい、ライブラリにUSBインターフェイス用のHIDを含むいくつかのヘッダーがあることは知っていますが、適切なドキュメントがないと理解するのが困難です。しかし、それでも私は試してみます。これに関する有用なリンクがある場合は、コメントでそれらに言及してください
hっtps://wっw。ごおgぇ。こm/せあrch?q=あrづいの+ぜろ+ひd
1 回答:
Majenko
2017-06-17 01:28:17 UTC
view on stackexchange narkive permalink

私の理解によると、マウスにはマイクロコントローラーとTTLシリアルコンバーターがあり、コンピューターのデフォルトのマウスドライバーが接続されたデバイスからの命令を理解できるように特定の方法でプログラムされています。

いいえ、マウスのマイクロコントローラーは USBデバイスです。

arduinoのように、COM3などのポートにシリアル命令を送信すると、Javaプログラムであるドライバーが読み取ります。

いいえ、それがあなたが話しているアプリケーションです。ドライバーは、COM3を表示するためにWindowsにインストールするものです(つまり、Windows10より前のWindowsのすべてのバージョンで。他のすべてのオペレーティングシステムとWindows10には、既にドライバーが組み込まれています。

arduinoがコンピューターに接続すると、ジョイスティックやペンドライブなどとして検出されます。

サポートはありません。そのために、ArduinoAPIで。

arduinoライブラリにあるマウスとキーボードのさまざまなヘッダーファイルを調べますが、それらは非常に複雑で、適切なドキュメントが理解しにくいものです。

USBがどのように機能するかを適切に文書化して理解していても、理解するのは困難です。

既存のライブラリに関する学習資料をどこで見つけることができるか教えてください。 ArduinoのWebサイトでは、さまざまな方法についてのみドキュメントが提供されており、その仕組みについては説明されていません。

または、独自のライブラリを構築することを考えている場合は、どのように始めればよいですか?

しないでください。 。 USBがどのように機能するかを深く理解せずに、やりたいことをやろうとするのはほぼ不可能です。 USBがどのように機能し、マイクロコントローラー用のUSBドライバーコードを書くのに苦労しているのか理解しています。

代わりに、すでに必要なことを実行しているデバイス( Teensy 3.xなど)に投資します。または、Arduinoから離れて、プロのツールと例を使用してプロの環境を使用します。

マウス、キーボード、ペンドライブ、CD-ROMなどの従来のデバイスが通信中に従うプロトコルに関する情報を見つけることができるもう1つのこと(コードやマイクロコントローラーのマイクロコントローラーに焼き付けられるアルゴリズムなど)デバイス)?

USB Implementer's ForumInc。から

マウスまたはペンドライブには、PCと直接通信できる特殊なタイプのマイクロコントローラーがありますか?もしそうなら、彼らのプログラム可能なマイクロコントローラーは市場に出ていますか?

はい、たくさんあります。 ATMega32U4をベースにしたArduinoボード(Leonardoなど)は、そのようなマイクロコントローラーです。 Unoの「シリアル」インターフェースチップはその種のマイクロコントローラーです(再プログラムできるので、まったく別のデバイスのように見えます。グーグルで検索すると、それを実行した人が見つかります)。

実際のドライバーとCOMポートを読み取るJavaプログラムの違いは何ですか?

ドライバーはCOMポートを作成します。あなたのプログラムはCOMポートを使用します。

  [USBデバイス] ---- > [USB)-ドライバー-(COM3] < ----- [あなたのプログラム]  
貴重なアドバイスありがとうございます。明確にするためにもっといくつかのこと...
1)マウスまたはペンドライブには、PCと直接通信できる特殊なタイプのマイクロコントローラーがありますか?もしそうなら、彼らのプログラム可能なマイクロコントローラーは市場に出ていますか? 2)実際のドライバーとCOMポートを読み取るJavaプログラムの違いは何ですか?
私の編集を参照してください...
あなたはティーンエイジャーについて話しました。私が正しい方向に進んでいるかどうかを案内してください。 teensyには、USBという1つの方法があります。RawHIDです。マウスがどのように要求し、応答し、マウス通信プロトコルに従ってteensyをコーディングするかを知っていれば、完了です。
生のHIDはマウスプロトコルの基礎です。その上に、データを説明する「HIDレポート」が置かれます。キーボードとジョイスティックの両方でも同じことが行われます。 Teensyduino(Teensy 3.x API)には、使用するマウス、キーボード、ジョイスティックなどのオブジェクトがあります:https://www.pjrc.com/teensy/td_mouse.html
Raw HIDの小さなライブラリに加えて、さまざまなデバイスサポートを提供します。さまざまなデバイスの通信プロトコルを見つけることができるWebサイトを提案していただけませんか。実際、私の意図は、指紋デバイスにブルートフォース攻撃を適用するデバイスを設計することです。キーボードで行うことと同じです。コンピューターはそれがキーボードであることを理解し、デバイスはさまざまなキーストロークを生成して送信します。
私はすでにそれを私の答えにリンクしました。
[チャットでこの議論を続けましょう](http://chat.stackexchange.com/rooms/60612/discussion-between-siddhartha-sadhukhan-and-majenko)。
「Xを信じられないほど複雑なことをしたいのですが、それが何なのか、どのように機能するのか全くわからない」など、「時間を無駄にしないでください」などの質問への回答が嫌いな人は必ずいます。すでにそれを行っているより適切なものを使用してください。」そのために彼らが反対票を投じないことを望みます。それは本当に私のヤギを手に入れます(そして私はたくさんのヤギを手に入れることができます...)。反対票を投じた人へ:USBが、USBが実際に何であるかを知らなくても、いくつかの追加機能を「ハックイン」するのに十分シンプルなシステムだと思うなら(つまり、OPはドライバーが何であるかさえ知らなかった)...
...それでは、ぜひ先に進んで、それがどのように行われるかを示してください。彼らが何かをしないと言っているという事実に同意しないので、単に反対票を投じるだけではいけません。私は何年もUSBの研究に費やしてきましたが、それについてはほとんど何も知りません。これで、プロトコルをデバッグし、何が起こっているかを追跡し、記述子、HIDレポートを作成し、エンドポイントタイプを選択するなど、十分に理解できました。必要な低レベルでそれを処理するステートマシンを作成することは別の問題です。それは悪夢です。私は「専門家」です。この種のことは、初心者が始めることさえできるものではありません...
...試行することを検討します。特に、OPが望んでいることをすでに実行しているArduino互換デバイスがすでに存在する場合。
申し訳ありませんが、私はあなたのポイントを取得できませんでした
@SiddharthaSadhukhanそれはあなたを対象としていません-それは完全に合理的な答えを否定したn00bを対象としています。
私はあなたの助けに感謝し、それを感謝したいと思います。そして、もしあなたがそのようなものを持っているなら、私はあなたにこれに関するいくつかの他の有用なリンクを送ってくれるようにお願いしています。
ここから始めることができます:http://www.usbmadesimple.co.uk/index.html


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...