Day4

テスト走行

CLASロボットカーを手動操縦し、スマートフォンで走行軌跡を確認します。

Romeo V2(ラジコン制御マイコン)へのスケッチの書き込み

Romeo V2にArduinoIDEで下記スケッチを書き込みます(ESP32-DevKitとはボードの種類とシリアルポートを変更する必要があります)。書き込むとラジコンカーをプロポで操作できるようになります。

----------------------------------------------------------------------------------

#include <Servo.h>

Servo RCservo;

Servo RCmotor;

 

volatile unsigned long UpNew[] = {0, 0};

volatile unsigned long UpOld[] = {0, 0};

volatile unsigned long DownNew[] = {0, 0};

volatile unsigned long DownOld[] = {0, 0};

volatile int Val[] = {0, 0};

 

void setup() {

  pinMode(2, INPUT_PULLUP); //Leonardoの割り込み対応ピン

  pinMode(3, INPUT_PULLUP); //Leonardoの割り込み対応ピン

  pinMode(10, OUTPUT);

  pinMode(11, OUTPUT);

  

  attachInterrupt(digitalPinToInterrupt(2), SERVO, CHANGE);

  attachInterrupt(digitalPinToInterrupt(3), MOTOR, CHANGE);

  

  RCservo.attach(10); // RCのステアリングサーボ

  RCmotor.attach(11); // RCのモーター

}

 

void loop() {

  int buf = Angle(0);

  RCservo.write(buf);

    

  buf = Angle(1)+5;  // +5は補正値

  RCmotor.write(buf);

}

 

void SERVO() {

  if (digitalRead(2) == LOW) {

    DownOld[0] = DownNew[0];

    DownNew[0] = micros();

  } else {

    UpOld[0] = UpNew[0];

    UpNew[0] = micros();

  }

}

 

void MOTOR() {

  if (digitalRead(3) == LOW) {

    DownOld[1] = DownNew[1];

    DownNew[1] = micros();

  } else {

    UpOld[1] = UpNew[1];

    UpNew[1] = micros();

  }  

}

 

int Angle(byte i) {

  if (UpNew[i] <= DownNew[i]) {

    Val[i] = ((((DownNew[i] - UpNew[i]) * 10000) / ((UpNew[i] - UpOld[i])) * 0.01) - 4.6) * 22.25;  // 4.6は補正値

  }

  else {

    Val[i] = ((((DownNew[i] - UpOld[i]) * 10000) / (UpNew[i] - UpOld[i]) * 0.01) - 4.6) * 22.25;  // 4.6は補正値

  } return Val[i];

}

 

参考サイト

----------------------------------------------------------------------------------

ESP32-DevKitに書き込んだスケッチはDay2のままで、Day3のとおりモバイルバッテリーを接続し、ラジコンカー本体の電源をONにします。

スマートフォンのAgriBus-NAVIを起動し、接続先デバイスとして「NMEA_esp32」を選択してBluetooth接続します。

CLASロボットカーをプロポで手動操作すると、AgriBus-NAVIにCLASロボットカーの走行軌跡が表示されます。

※この動画は自律走行のスケッチをESP32-DevKitに書き込みCLASロボットカーを走行させたものです。自律走行のサンプルスケッチをご要望の場合はページ上部のお問い合わせフォームからご連絡ください。