SSブログ

ソース部分作成2 (1-8.ソース:loop関数) [ロボット制作(tankun-mk1)]

おはようぼざいます。

今回はloop関数について説明していきます。

全体の動作としては以下です。
 1)開始スイッチが押されたかをチェックする
 2)押されたらwhile(1)回り以下を検出するまで進む
 2-1)停止スイッチが押されたか
 2-2)前方に障害物を発見したか
 3)前方に障害物を発見したら以下を行う
 4)モータを止めて右と左に障害物があるかチェック
 5)障害物がない方向に進む
 6)左右両方に障害物がある場合は少し下がる

ただし「距離を求める」「サーボを回転させる」などの
各動作はサブ関数化しており次回紹介します。
(なるべく早く更新するようにします)

void loop() {
  int Dst_Check=0;

  // 開始スイッチが押されたら動作を開始する

  // 開始スイッチが押されたかチェック
  sw_start = digitalRead(PIN_SW_START);
  sw_stop = digitalRead(PIN_SW_STOP);
  if ( sw_start == 1 ) {
    Serial.println("susumi;ma'-su");
    delay(1500);  
    
    // サーボモータを正面に
    exec_sensor_servo_ungle(SERVO_UNGLE_FRONT);    
    motor_move(MTR_SET_MODE_GO);

    // 停止スイッチが押されるまで回る
    while(1) {
      Dst_Check=check_sonic_sensor_dst(SENSOR_FRONT_ERROR_DST, 0);
      if ( Dst_Check == 1 ) {
        delay(1000);
        set_next_away();
      }

      // 停止スイッチが押されたかチェック
      sw_stop = digitalRead(PIN_SW_STOP);
      if ( sw_stop == 1 ) {
        // モータを止める
        motor_move(MTR_SET_MODE_STOP);

        delay(100);  
        Serial.println("tomari';ma-su");
        delay(2000);  

        break;
      }

      delay(1000);
    }
  }

  sw_start = 0;
  sw_stop = 0;
  
  delay(1000);  
}


こんな感じです[ひらめき]

では、次回はサブ関数を紹介して具体的な動作を見ていきまーす[右斜め上]
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。