こんにちは!PIC18F4550をJavaプログラムとインターフェースさせ、最初はクロスプラットフォームにしたい。私が今Javaに持っている唯一の方法はjavacommです。しかし、最近ではすべてのラップトップにRS232ポートがあるわけではないので、USBにしたいです。PICをJavaとインターフェースする方法は、実際にクロスプラットフォームにし、新しいOSごとにドライバーを作成しないようにすることを提案できますか?
4 に答える
最初の免責事項:私はこれをPICとJavaで行ったのではなく、PC上のVBを備えたAVR32Bでのみ行った。
マイクロコントローラーのUSBインターフェイスにUSBCDCクラスのデバイスを実装し、それをPCのUSB HOSTに接続すると、新しいCOM:ポートとして列挙されて表示されます。これは、アプリケーションによって通常のシリアルポートとして扱われます。標準のWindowsドライバーUSBSER.SYSを使用しました。
マイクロチップは、さまざまなデバイスクラスで動作できるように、USB周辺機器のサンプルソースコードを提供していると思います。(私はAtmelがAVR32ファミリーのために行うことを知っています)
なぜ上記の答えを受け入れたのですか?@Ianのコメントに同意します。
PIC18F4550とその仲間はオンボードUSBを持っています。PICファームウェアに仮想シリアルポートを配置するのは簡単で、例はたくさんあります。もう1つはHIDデバイスで、これもPICファームウェアの例がたくさんあります。
プリンにハードウェアを追加しないでください。
Arduinoのアプローチは、ニーズに適応できる必要があります。ハードウェアUARTとFTDI USB-to-TTLチップを組み合わせたマイクロコントローラーを使用し、rxtxを使用して「100+」プラットフォームのシリアルポートにアクセスします。
このアプローチはうまく機能しているようです。Linux、Windows、OS Xでは、arduinoの通信とプログラミングは非常に簡単です。
WIN32APIを直接呼び出すには、JNIを使用する必要があります。私はJNA(JNIラッパー)ライブラリを使用して実装を簡単にし、DLLを作成してVisual C ++ 2010でメソッドを簡単かつ直接エクスポートしました。OSXやOSXなどの他のシステムへの同じインターフェイスを使用して他のライブラリ(DLL / SO)を作成することもできます。 Linux。