Biped-roboten

Fra Åpen sone for eksperimentell informatikk
Revisjon per 2. aug 2012 kl. 19:54 av Roger (Diskusjon | bidrag)

(diff) ← Eldre revisjon | Nåværende revisjon (diff) | Nyere revisjon → (diff)
Gå til: navigasjon, søk
Biped-roboten
Fil:biped1.jpg
Med øyner som sier: "Lek med meg!"
Tittel Biped Robot
Personer janoleos
Status Startet
Utstyr 5 servoer små, en ultrasonisk avstandssensor, 1 arduino filo, og printede deler fra Makerbot


Biped-roboten er en søt liten robot tusler rundt og prøve å ikke kræsje med ting. Han har veldig store føtter og ganske store øyne, men det er det eneste som er stort på han. Alle plastdelene til han ble printet på Sonens egen MakerBot. Den består også av fem servomotorer, en ultrasonisk avstandssensor, en Arduino og et lite batteri. Utfordringen er å programmere den slik at den går på best mulig måte.

Innhold

Logg

Bilder fra fredagen - 23.03.12

I kveld oppdaget jeg Biped robot og tenkte; denne _må_ Sonen ha!. Så da var det bare å koble opp MakerBoten og starte. Det tar en del timer å skrive ut hver del, så dette er det jeg rakk.

Bilder fra Lørdagen - 24.03.12

I dag har resten av delene blitt printet, men jeg glemte nøkklene til skapet mitt hjemme, så jeg får ikke montert de mot resten av delene.

Tirsdag 27.03.12

I dag husket jeg nøkklene til skapet mitt of fikk låst ut delene til roboten. Jeg monterte servoene, avstandssensoren, arduino kortet og et 9v batteri. Desverre er den litt tung i toppen så den faller veldig lett, men den er veldig kul og kan marsjere på et lite område. Dersom den oppdager noe som er nærmere enn 15 cm så piper den med små søte pip.

Her er koden til roboten:


#include <Servo.h> 
 
Servo hfoot;  // create servo object to control a servo 
Servo lfoot;           // a maximum of eight servo objects can be created 
Servo hleg; 
Servo lleg; 
Servo head; 

int pos = 0;   
 
void setup() 
{ 
   hfoot.attach(3); //Hoyre fot
   lfoot.attach(5); //5 venstre fot 
   hleg.attach(6); // høyre ben
   lleg.attach(9);
   head.attach(10);
   hfoot.write(70);
   lfoot.write(100);
   hleg.write(90);
   lleg.write(90);
   head.write(90);
   delay(1000);
   Serial.begin(9600);
   pinMode(12, OUTPUT);
   pinMode(13, INPUT);
 } 
 
 
void loop() 
{ 
  leftStep();
  rightStep();
  firmPossition();
  measureDistance();
} 

void leftStep(){
  lfoot.write(60);
  delay(100);
  hfoot.write(60);
  delay(1000);
  hleg.write(140);
  delay(100);
  lleg.write(140);
  delay(1000);
  lfoot.write(100);
  delay(100);
  hfoot.write(70);
  delay(1000);

}

void rightStep(){
  hfoot.write(120);
  delay(100);
  lfoot.write(120);
  delay(1000);
     hleg.write(60);
   lleg.write(60);
   delay(1000);
  hfoot.write(70);
  delay(100);
  lfoot.write(100);
  delay(1000);
}
void firmPossition(){
    hleg.write(60);
   lleg.write(60); 
}
int i;
void measureDistance(){
  head.write(40);
  delay(200);
  i = measure();
  if(i < 10 && i != 0){
     tone(4, 4400,50);
    delay(59);
   tone(4,4400, 50); 
  }
  head.write(180);
  delay(300);
  i = measure();
    if(i < 10  && i != 0){
     tone(4, 3300,50);
    delay(59);
   tone(4,3300, 50); 
  }
  head.write(120);
  delay(200);
  i = measure();
  if(i < 10 && i != 0){
   tone(4, 2200,50);
   delay(59);
   tone(4,2200, 50); 
  }
}

int measure(){
  int distance_cm = 0;
  digitalWrite(12, LOW);
  delayMicroseconds(2);
  digitalWrite(12, HIGH);
  delayMicroseconds(10);
  digitalWrite(12, LOW);
  int duration = 0;
  duration = pulseIn(13,HIGH);
  distance_cm = duration /29 / 2 ;
  return distance_cm;
}


Bilder

Video

Mal:youtube

Torsdag 29.03.12

I dag har jeg loddet alle ledningene fast på et perfboard, printet nytt hode til han og flyttet arduino kortet bakpå rumpa hans. Videre ar programmet modifisert littigrann slik at han kan "gå" raskere.

Video

Mal:youtube Mal:youtube

Personlige verktøy
Navnerom

Varianter
Handlinger
Navigasjon
Kategorier
Verktøy