私はマイクロコントローラを調査していて、それらの大部分がC/C++ベースかどうか疑問に思っていましたか?私はJavaに精通しており、コスト効率の高い、Javaベースのマイクロコントローラーを調べてもらえるかどうか誰かに聞いてみたいと思います。
すべての回答を歓迎します!
Java(またはc#)のような言語とcまたはc ++のような低レベルの言語の違いは、仮想マシンを持っているという事実です。これには、アプリケーションプラットフォームの作成など、多くの利点があります。独立していますが、それは、各プラットフォームがそれに対応するvmを備えている必要があることも意味します。
現在、マイクロコントローラは均一ではなく、電力、メモリ、および他の多くの機能が異なります。したがって、それらにJVM(Javaの仮想マシン)を採用することは、可能な場合でも容易ではありません。ほとんどの場合それはちょうど不可能です-ほとんどのucは非常に低いメモリ容量(それらを安くする理由の一部)を持っています-これはアプリケーションコードで言うまでもなく、そこに汎用JVMを適合させることを不可能にします。
Java)の一部の実装を知っています。たとえば、「Javaベースの」SIMカード(非常に小さなコントローラが内蔵されています)がありますが、バージョンが非常に限られていますJavaの。
したがって、基本的には「組み込みJava」を書くのに最適な方法(特に初心者の場合)は、基本的に小型で完全に機能するコンピューターであり、すでにJVMを備えた適切なOSを実行するマイクロコントローラーの上で作業することです。 raspberry piまたは beaglebone のような新しい「マイクロコンピュータ」オープンソースプロジェクトの1つを調べてください。どちらもArduinoの約2倍のコストで、はるかに強力です。
私が助けてくれたことを願っています。
Java対応のSTM32マイクロコントローラー または Renesas RX をご覧ください。
別の方法として、 Haiku-VM 、 NanoVM または J を使用して、AVR/ArduinoでストリップされたJVMを実行できます。
ArduinoのスケッチをJavaで記述し、 [〜#〜] vbb [〜#〜] を使用してCにクロスコンパイルすることもできます。
Java代替案がありますが、それらは高額だと思います。たとえば、ST MicroelectronicsはこれにJava IDE Eclipseに基づいています:
私はJavaマイクロコントローラーでの経験はありませんが、Javaはマイクロコントローラーでサポートされている)C++と多くの類似点(Cベースの言語)を持っていますが、まだCが支配的ですが、Javaをすでに知っている場合は、これをかなり早く学習できるはずです。
ArduinoはC++を使用しており、C/C++に不慣れな人でも簡単に使用できます。
STM32 Javaフォーラムも試して、経験をすでに共有しているユーザーがいるかどうかを確認することをお勧めします。
JArduino は、Arduinoボードと対話するJavaプログラムを記述できるようになるため、良い出発点となる可能性があります。Java JArduinoが提供するAPIは、Arduino APIと完全に連携しています。その後、Java APIに慣れると、単純なArduinoプログラミングに簡単に切り替えることができます(指摘したように、とにかく、C/C++ベースのArduinoはJavaからそれほど遠くありません。JArduinoでは実際にはマイクロコントローラー自体をプログラムしないことに注意してください(メインロジックはPCで実行され、Arduinoは単に「制御」されます)ボード上で実行されている高度なロジックなし)。