2026年10月1日木曜日

XIAO SAMD21 - テーブル落下回避ロボットカー

以前製作したArduino nano制御とVL53L0X 距離センサによる落下回避ロボットカーをXIAO XIAO SAMD21に入替てテストしました。

●同ブログ関連記事【落下回避 ロボットカー Arduino VL53 】
 










動画



参考サイト
回路図

















XIAO SAMD21
・強力な CPU:ARM® Cortex®-M0+ 32bit 48MHz マイクロコントローラー(SAMD21G18)、256KB Flash、32KB SRAM を搭載。
・柔軟な互換性:Arduino IDE と互換性があります。
・11 個のデジタル/アナログピン、10 個の PWM ピン、1 個の DAC 出力、1 個の SWD ボンディングパッドインターフェース、1 個の I2C インターフェース、1 個の UART インターフェース、1 個の SPI インターフェース。





VL53L0X
測距センサー I2C IICインターフェース




TB6612FNG モーター ドライバー 

















ピン配置図
seeed studio から抜粋



















追加のボードマネージャーのURL:
【https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json】追加
【,】カンマで区切る



















ボードマネージャー
【seeeduino】インストール















ボード選択【Seeeduino XIAO】
















シリアルモニタ
VL53L0X測距センサーの値をシリアルモニタに表示。












プログラム Arduino IDE【ボード:Seeeduino XIAO】
#include <Wire.h>
#include <VL53L0X.h>
VL53L0X gVL530X;
 
const int motorR2 = D2;  //AI1
const int motorR1 = D3;  //AI2
const int motorRp = D6;  //PWMA
const int motorL2 = D7;  //BI2
const int motorL1 = D8;  //BI1
const int motorLp = D9;  //PWMB
const int STBY = D10;  //STBY
int dist;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  gVL530X.init();
  gVL530X.setTimeout(1000);
  gVL530X.startContinuous(100);
 
  pinMode( motorL1, OUTPUT );
  pinMode( motorL2, OUTPUT );
  pinMode( motorLp, OUTPUT );
  pinMode( motorR1, OUTPUT );
  pinMode( motorR2, OUTPUT );
  pinMode( motorRp, OUTPUT );
  pinMode( STBY, OUTPUT );
   
  digitalWrite( motorL1, LOW );
  digitalWrite( motorL2, LOW );
  digitalWrite( motorLp, LOW );
  digitalWrite( motorR1, LOW );
  digitalWrite( motorR2, LOW );
  digitalWrite( motorRp, LOW );
  digitalWrite( STBY, HIGH );
  }

void Go() {
  digitalWrite( motorLp, HIGH );
  digitalWrite( motorL1, HIGH );
  digitalWrite( motorL2, LOW );
  digitalWrite( motorRp, HIGH );
  digitalWrite( motorR1, HIGH );
  digitalWrite( motorR2, LOW );
}
void Back(){
  digitalWrite( motorLp, HIGH );
  digitalWrite( motorL1, LOW );
  digitalWrite( motorL2, HIGH );
  digitalWrite( motorRp, HIGH );
  digitalWrite( motorR1, LOW );
  digitalWrite( motorR2, HIGH );  
}
void Stop(){
  digitalWrite( motorLp, LOW );
  digitalWrite( motorRp, LOW );
}
void Right(){
  digitalWrite( motorLp, HIGH );
  digitalWrite( motorL1, HIGH );
  digitalWrite( motorL2, LOW );
  digitalWrite( motorRp, HIGH );
  digitalWrite( motorR1, LOW );
  digitalWrite( motorR2, HIGH );
}

void Left(){
  digitalWrite( motorRp, HIGH );
  digitalWrite( motorR1, HIGH );
  digitalWrite( motorR2, LOW );
  digitalWrite( motorLp, HIGH );
  digitalWrite( motorL1, LOW );
  digitalWrite( motorL2, HIGH );
}
 
void loop() {
  dist = gVL530X.readRangeContinuousMillimeters();
  Serial.println(dist);
  if (gVL530X.timeoutOccurred()){
  Serial.println("timeout");
  }  
   
  if(dist > 200 || dist < 90 ){    
    Left();
    delay(200);    
  }
    Go();
}

0 件のコメント:

コメントを投稿

XIAO SAMD21 - テーブル落下回避ロボットカー

以前製作したArduino nano制御とVL53L0X 距離センサによる落下回避ロボットカーをXIAO XIAO SAMD21に入替てテストしました。 ●同ブログ関連記事【 落下回避 ロボットカー Arduino VL53 】   動画