つくったブログ

ぼくがつくったもの。

全自動オラオラロボットをつくった。(Arduino×ジョジョ)

https://instagram.com/p/0gR5h0LLuH/
#ardino #jojo
スタープラチナが自動でオラオラするロボット。

つなぎかた

https://instagram.com/p/0gXghZLLth/

こんなかんじでつなぐ。前回のコードにサーボモータとジョジョが加わっただけ。

コード

/*
reference:
https://www.switch-science.com/catalog/1606/
*/
#include <Servo.h> 
Servo servo;
const int Trig = 12;
const int Echo = 13;
const int Led_g = 6;
const int Led_y = 4;
const int Led_r = 5;
int Duration;
float Distance;

void setup() {
  Serial.begin(9600);
   servo.attach(9);  //D9ピンをサーボの信号線として設定
  pinMode(Led_g,OUTPUT);
  pinMode(Led_y,OUTPUT);
  pinMode(Led_r,OUTPUT);
  pinMode(Trig,OUTPUT);
  pinMode(Echo,INPUT);
}

void loop() {
  digitalWrite(Trig,LOW);
  delayMicroseconds(3);
  digitalWrite(Trig,HIGH);
  delayMicroseconds(3);
  digitalWrite(Trig,LOW);
  Duration = pulseIn(Echo,HIGH);
  Serial.print(Duration);
  if (Duration>0) {
    Distance = Duration/2;
    Distance = Distance*340*100/1000000; // ultrasonic speed is 340m/s = 34000cm/s = 0.034cm/us 
    Serial.print(Duration);
    Serial.print(" us ");
    Serial.print(Distance);
    Serial.println(" cm");
    
    if (Distance < 3){
      digitalWrite(Led_g,HIGH);
      digitalWrite(Led_r,LOW);
      digitalWrite(Led_y,LOW);
    }else if(Distance < 15){
      digitalWrite(Led_g,LOW);
      digitalWrite(Led_r,HIGH);
      digitalWrite(Led_y,LOW);
      servo.write(60);
      delay(200);
      servo.write(0);
    }else{
      digitalWrite(Led_g,LOW);
      digitalWrite(Led_r,LOW);
      digitalWrite(Led_y,HIGH);
    }
  }
  delay(200);
}
  • 「#include 」「Servo servo;」を書き加えてサーボモータが動かせるようになる。
  • 「 servo.attach(9); 」としてサーボモータの黄色のワイヤーをArduinoの9番ピンにつなげる。あとは、LEDが赤くなるときにサーボモータを動かすプログラムを加えるだけ。角度やdelayの長さは各自で調整。

うごく。

超音波センサによって目の前にモノがあると認識したら、オラオラするロボット。


またくだらないものをつくってしまった。

超像可動 「ジョジョの奇妙な冒険」第三部 10.スタープラチナ・セカンド (荒木飛呂彦指定カラー)

超像可動 「ジョジョの奇妙な冒険」第三部 10.スタープラチナ・セカンド (荒木飛呂彦指定カラー)