Japaninoで『週刊リアルロボット』を回転してみた

工作が苦手だし、「ありもの」のボディーを使いたい!ということで、押入れの中に眠っていた『週刊リアルロボット』を再利用することに。
この記事の続きです

下記のサイトで調べたピン配列が正しいかテストです。

ちゃんと動きましたー

以下 スケッチ。
今回はPWM使ってません。

//週刊リアルロボットを ぐるぐる回すよ
//参考URL
//LEGO MINDSTORMSにArduinoを繋げてみました。
//http://blog.goo.ne.jp/soratobu_macaronipenguin/e/1f0383d3c93df7b8e5c96b3190604116

//週刊リアルロボットを、その場で回転させるスケッチ
#define MOTOR_RIGHT_A 5 //「5pinは右モーターAという名前をつけよう」と言う宣言
                        //botピンの1番へ
#define MOTOR_RIGHT_B 6 //「6pinは右モーターBという名前をつけよう」と言う宣言
                        //botピンの2番へ
#define MOTOR_LEFT_A 9 //「9pinは左モーターAという名前をつけよう」と言う宣言
                        //botピンの3番へ
#define MOTOR_LEFT_B 10 //「10pinは左モーターBという名前をつけよう」と言う宣言
                        //botピンの4番へ

// Arduino      週刊リアルロボット
           モーターコントロール基板
// デジタル 5  ->  cybot 1pin
// デジタル 6  -> cybot 2pin
// デジタル10  ->  cybot 3pin
// デジタル 9  ->  cybot 4pin
// GND         ->  cybot 7pin


//デジタル出力
//Todo : PWM

void setup()
{
// 「pin5,6,1はアウトプットに使用するよ」と言う宣言
    pinMode(MOTOR_RIGHT_A, OUTPUT);
    pinMode(MOTOR_RIGHT_B, OUTPUT);
    pinMode(MOTOR_LEFT_A, OUTPUT);
    pinMode(MOTOR_LEFT_B, OUTPUT);
}

// ここからが動作を決めるプログラム
void loop()
{
  // LOWを必ず先に書く。A B 両方がHIGHにならないように
  digitalWrite(MOTOR_RIGHT_B, LOW); 
  digitalWrite(MOTOR_LEFT_B, LOW); 
  // 右モーターAを前進
  digitalWrite(MOTOR_RIGHT_A, HIGH); 
  //左モーターBを逆転
  digitalWrite(MOTOR_LEFT_A, HIGH); 


  delay(1000); //電源が入っている状態でそのままちょっと待って!!


  // 右モーターAを静止
  digitalWrite(MOTOR_RIGHT_A, LOW); 
  // 左モーターBを静止
  digitalWrite(MOTOR_LEFT_A, LOW); 
  //不要だけど念のため
  digitalWrite(MOTOR_RIGHT_B, LOW); 
  digitalWrite(MOTOR_LEFT_B, LOW); 


  delay(3000); //電源が切れている状態でそのままちょっと待って!!


  // LOWを必ず先に書く。A B 両方がHIGHにならないように
  digitalWrite(MOTOR_RIGHT_A, LOW); 
  digitalWrite(MOTOR_LEFT_A, LOW); 
  // 右モーターAを逆転
  digitalWrite(MOTOR_RIGHT_B, HIGH); 
  //左モーターBを前進
  digitalWrite(MOTOR_LEFT_B, HIGH); 

  delay(1000); //電源が入っている状態でそのままちょっと待って!!
  // 右モーターAを静止
  digitalWrite(MOTOR_RIGHT_A, LOW); 
  // 左モーターBを静止
  digitalWrite(MOTOR_LEFT_A, LOW); 
  //不要だけど念のため
  digitalWrite(MOTOR_RIGHT_B, LOW); 
  digitalWrite(MOTOR_LEFT_B, LOW); 


  delay(3000); //電源が切れている状態でそのままちょっと待って!!
  // この後、誰かがスイッチを切るまでloop()内をぐるぐる繰り返し実行します

}

また ライントレーサーなんかも作ってみたいです。

コメントを残す

メールアドレスが公開されることはありません。