1.何で作ったか
なんでこんなものを作ったか、それは、①暇だった②部品があった
自分は、あればあるだけ金を使うタイプなので、余ってる部品で何かを作るということをしてきて、部品がなくなって困った、ということは数知らず。ちなみに、小学生の時の修学旅行で残りをぴったり0円にした、という才能がある。これは才能ではない。貯蓄が出来ないだけだ。全くひどい限りである。
2.需要がないプログラム紹介
需要が無いと思うが、プログラムを紹介する。一応、参考になるはず・・・・である
とくに、最初の関数のとこはコピーして使ってもよろしい。arduinoを使って描いている。電子工作愛好家にはおなじみである。
int motor1_1 = 6;
int motor1_2 = 7;
int motor2_1 = 8;
int motor2_2 = 9;
int motor3_1 = 10;
int motor3_2 = 11;
int motor4_1 = 12;
int motor4_2 = 13;
void motor(int time,int rotate,int motor){
//この関数では、最初に時間(ミリ秒)、次に回転方向(1で時計回り、2で逆回転)最後にモーター(1で1番、2で②番・・・)
if(motor == 1) {
if(rotate == 1){
digitalWrite(motor1_1,HIGH);
digitalWrite(motor1_2,LOW);
delay(time);
digitalWrite(motor1_1,LOW);
digitalWrite(motor1_2,LOW);
}
else {
digitalWrite(motor1_1,LOW);
digitalWrite(motor1_2,HIGH);
delay(time);
digitalWrite(motor1_1,LOW);
digitalWrite(motor1_2,LOW);
}
}
if(motor == 2) {
if(rotate == 1){
digitalWrite(motor2_1,HIGH);
digitalWrite(motor2_2,LOW);
delay(time);
digitalWrite(motor2_1,LOW);
digitalWrite(motor2_2,LOW);
}
else {
digitalWrite(motor2_1,LOW);
digitalWrite(motor2_2,HIGH);
delay(time);
digitalWrite(motor2_1,LOW);
digitalWrite(motor2_2,LOW);
}
}
if(motor == 3) {
if(rotate == 1){
digitalWrite(motor3_1,HIGH);
digitalWrite(motor3_2,LOW);
delay(time);
digitalWrite(motor3_1,LOW);
digitalWrite(motor3_2,LOW);
}
else {
digitalWrite(motor3_1,LOW);
digitalWrite(motor3_2,HIGH);
delay(time);
digitalWrite(motor3_1,LOW);
digitalWrite(motor3_2,LOW);
}
}
else {
if(rotate == 1){
digitalWrite(motor4_1,HIGH);
digitalWrite(motor4_2,LOW);
delay(time);
digitalWrite(motor4_1,LOW);
digitalWrite(motor4_2,LOW);
}
else {
digitalWrite(motor4_1,LOW);
digitalWrite(motor4_2,HIGH);
delay(time);
digitalWrite(motor4_1,LOW);
digitalWrite(motor4_2,LOW);
}
}
}
void setup() {
Serial.begin(9600);
pinMode(motor1_1, OUTPUT);
pinMode(motor1_2, OUTPUT);
pinMode(motor2_1, OUTPUT);
pinMode(motor2_2, OUTPUT);
pinMode(motor3_1, OUTPUT);
pinMode(motor3_2, OUTPUT);
pinMode(motor4_1, OUTPUT);
pinMode(motor4_2, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
//このロボットは、4つのモーターを使用
//役割は、motor1とmotor2は移動用(キャスターが前とするとき、motor1がみぎ、motor2が左)
// motor3が40cmシュート用で、motor4が20cmシュート用。
//ピンアサインはsetup()以上に明記
//プログラム的に、一回実行するだけなので、setup()内でプログラムは完結
//motorかんすうでは、
//この関数では、最初に時間(ミリ秒)、次に回転方向(1で時計回り、2で逆回転)最後にモーター(1で1番、2で②番・・・)
//ついでに、起動用スイッチは2ピン、右に壁当てしとくのは3ピン、左は4ピン、
int a = 0;
do {
a = digitalRead(2);
delay(100);
Serial.print(a);
} while(a == LOW);
//10cm移動
//左に曲がる
motor(100,1,1);
//前に10cm位(適当)進む
//シュートする
//さっきの逆をしてスタートエリアに戻る
//前にしばらく進む(ゴールに着いたら、それ以上進めないから)、ただし、右のスイッチが反応しなくなったら
//右に曲がる
//位置を合わせてシュートする
//スタートエリアに戻る
}
void loop() {
}
長い。無駄に長い。謝罪はしていない。まあ、電子工作で車作堆肥とは参考にするが良い。最初のdo while部分は、起動用スイッチを想定している。スイッチが押されるとうごくようになっている。いらなかったら外してくれ。
今回はこれで以上である。又加筆したくなったらするから、楽しみに待ってろ。