パスワードを忘れた? アカウント作成
この議論は、cyber205 (4374)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。

そろそろArduinoをきちんと勉強してみたい」記事へのコメント

  • Arduinoの開発用言語は「Arduino言語」を自称していますが、
    ライブラリが完全独自なだけで、言語そのものはごくごく標準的なC++です。
    コンパイラもごく普通のg++(AVR-GCC)。

    ・スタートアップが「main」ではなく、「setup」と「loop」になってる。最初に1回setupが呼び出されたあと、延々とloopが呼び出される。「main() { setup(); while(1) { loop(); } }」って考えればいい。

    ・各種ライブラリはC++クラスになっているものが多いが、主にカプセル化のため。「インスタンスがグローバル変数として宣言済」とか「staticメソッドだけで構成されており、インスタンス化せずに使う」とか、あまりクラスを意識することはない。ベターCって程度。

    ・Arduinoが強いのは「サードパーティーライブラリの豊富さ」と「サードパーティーライブラリ組み込みの容易さ」。開発環境付属のライブラリはたいしたことないけど、「なんかのデバイスを繋ぎたいな」って時には、探してみるとそれ用のライブラリが公開されてたりすること多し。

    「Arduinoにセンサーを接続し、Raspberry Piでネットにつなぐ」のも、このあたりが理由ですね。
    Raspberry pi で「GPIOを叩いてセンサーと通信するコードをちまちま書く」ぐらいなら「Arduinoでそのセンサー用ライブラリを使う」のが簡単。あと、Raspbery pi だと確実なリアルタイム動作を保証できないのも厳しい。
    一方ネットに関しては、Arduinoではイーサネットシールドを繋げば結構簡単に有線LANに繋ぐことはできるけど、センサー相手のリアルタイム動作との協調が難しい。無線LANもできない。
    で、センサーはArduino、ネットはRaspberry pi、という分担になる、と。

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

処理中...