Emuduino(Processing)で作成したプログラムを実機であるArduinoで動作させるには,注意が必要です。一見,両者のプログラムは,よく似ています。しかし,そもそもEmuduino(Processing)は,Javaがベース,ArduinoはC言語がベースなので,その仕様の違いがバグの原因となります。
Emuduinoの開発中に気になった点や注意すべき内容をここにまとめました。
Arduino | Processing | |||
---|---|---|---|---|
名前 | 値の範囲 | 名前 | 値の範囲 | |
boolean | 真trueか偽 false | 同等 | boolean | 真trueか偽 false |
char | –128 .. 127 | 相違あり | char | char is two bytes (16 bits) |
unsigned char | 0 .. 255 | 該当なし | ||
byte | 0 .. 255 | 該当なし | ||
int | –32768 .. 32767 | 相違あり | int | –2,147,483,648 .. 2,147,483,647 |
unsigned int | 0 .. 65535 | 該当なし | ||
word | 0 .. 65535 | 該当なし | ||
long | –2,147,483,648 .. 2,147,483,647 | 同等 | long | –2,147,483,648 .. 2,147,483,647 |
unsigned long | 0 .. 4294967295 | 該当なし | ||
float | –3.4028235E+38 .. 3.4028235E+38 | 同等 | float | –3.40282347E+38 .. 3.40282347E+38 |
double | –3.4028235E+38 .. 3.4028235E+38 | 同等 | double | –3.40282347E+38 .. 3.40282347E+38 |
該当なし | String | 日本語を含むあらゆる文字 |
Arduinoで使用される#define文は,Processingには存在しない。int 型の定数として宣言すること。
配列の宣言方法の違い
Arduino | Processing | |
---|---|---|
int array1[[]] = { 1, 2, 3 }; | OK | OK |
int[[]] array2 = { 1, 2, 3 }; | NG | OK |