「Arduinoにセンサーを接続し、Raspberry Piでネットにつなぐ」のも、このあたりが理由ですね。 Raspberry pi で「GPIOを叩いてセンサーと通信するコードをちまちま書く」ぐらいなら「Arduinoでそのセンサー用ライブラリを使う」のが簡単。あと、Raspbery pi だと確実なリアルタイム動作を保証できないのも厳しい。 一方ネットに関しては、Arduinoではイーサネットシールドを繋げば結構簡単に有線LANに繋ぐことはできるけど、センサー相手のリアルタイム動作との協調が難しい。無線LANもできない。 で、センサーはArduino、ネットはRaspberry pi、という分担になる、と。
自称「Arduino言語」は、ただの「C++」 (スコア:2)
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、という分担になる、と。
Re:自称「Arduino言語」は、ただの「C++」 (スコア:2)
ホームセキュリティぐらいなら部品とライブラリの組み合わせで作れますからねえ。
Re:自称「Arduino言語」は、ただの「C++」 (スコア:2)
そういう時にこのESP32が便利なんですよ>ネット