Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

オープンソースな実用ロボットアームTsukArm その8:動きをループ実行させる

shuzo-kino.hateblo.jp
のシリーズ8回め。
これまでの方法では、記録した動作は一回しか実行できませんでした。
今回は、これをループで実行してみます。

実際のところ

オープンソースな実用ロボットアームTsukArm その7:動きを関数として分離 - Bye Bye Moore
で分離させた関数"jobCalibrate()"を延々と繰り返すケース*1を考えます。

queueにタスクがあるか確認するには"isEmpty()"を使います。
Trueなら無し、Falseならタスクありです。

void loop() {
  if(queue->isEmpty()){
    //動作を追加
    jobCalibrate();
    Serial.println("new job!");
  } else {
    //JobQueueを実行する
    queue->execute();   
  }

  delay(FRAME_INTERVAL);
}

30分ほど繰り返してみましたが、ソフト・ハード共に問題なく連続稼働してくれました。

*1:補正を繰り返すの?とかいう事はいってはいけない