Raspberry Pi PicoはArduino IDEでも開発できるが,公式推奨のMicroPythonとどれくらい実行速度に差が出るかを検証した.
アナログ入力の読み取り処理をMictoPythonとArduino言語で記述し,それぞれ1000回実行したときの実行時間から読み取り1回あたりの実行時間を計算した.
MicroPythonのプログラム
import utime
import machine
adc=machine.ADC(0)
time1=utime.ticks_us()
for i in range(1000):
a=adc.read_u16()
time2=utime.ticks_us()
print(utime.ticks_diff(time2,time1))
Arduino言語のプログラム
void setup() {
Serial.begin(9600);
}
unsigned long time1, time2;
uint16_t a;
void loop() {
// put your main code here, to run repeatedly:
time1=micros();
for (int i=0; i < 1000; i++) {
a=analogRead(26);
}
time2=micros();
Serial.println(time2-time1);
delay(5000);
}
結果は以下のようになった.参考としてArduino Everyの結果も載せている. 最も実行時間が速いのはArduino言語で,MicroPythonの約2.5倍,Arduino Everyに対しては19倍速かった.実行時間への要求がシビアな場合は,MicroPythonよりもArduino言語を使った方が良いのかもしれない.
0 件のコメント:
コメントを投稿