Glastik robot: verschil tussen versies

Uit KekBot
Naar navigatie springen Naar zoeken springen
 
(5 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 1: Regel 1:
{{hoofdmenu}}
{{hoofdmenu}}
----
----
== Info: ==  
== Info: ==  
door Ralph en Kostas
door Ralph en Kostas
Dit is een robot gemaakt voor het kekrobot project.
de glastikbot is een drumbot die een melody maakt doormiddel van op een glas te tikken




Regel 28: Regel 27:
----
----
== Filmpje ==
== Filmpje ==
Zie de robot in [http://youtu.be/0gTnZMi-6w4?hd=1 actie]
Zie de robot in [http://youtu.be/0gTnZMi-6w4?hd=1.avi actie] en [http://youtu.be/aJ5U5yEHjKk hier]




----
----
== Code ==
== Code ==
<source>
<nowiki>
  //leeg.ino: Een leeg programma, dit doet niets
#include <Servo.h>
  void setup()
 
  {
Servo myservo1; 
   // Hier komen de opdrachten die 1 keer gedaan moeten worden bij het aanzetten
Servo myservo2; 
}
Servo myservo3;
 
void loop()
int pos1 = 0;   
  {
int delaylinks = 2;
  // Hier komen de opdrachten die elke keer gedaan moeten worden
int delayrechts = 2;
  }
int delaymidden = 2;
</source>
int check1 = 0;
int check2 = 0;
 
int noteLib[] = {
  2,2,1,2,0,2,1,0,0,0,0,0,1,1,1,0,1,2,1,0,0 };  
//e e d e c e d c c c c c d d d c d e d c c
int thisNote = 0;
int note;
int noteDurations[] = {
  4,6,4,6,4,6,4,4,6,4,4,6,4,6,4,4,4,6,4,4,6 };
//ee de ce dcc ccc dd dcde dcc
//46 46 46 446 446 46 4446 446
int thisDuration = 2;
int Duration;
void setup()
{
  Serial.begin(9600);
  myservo1.attach(11);
  myservo2.attach(10);
  myservo3.attach(9);
}
 
void links(){
  Serial.println("links");
  for(pos1 = 50; pos1 < 85; pos1 += 1) // hoe hoger des te meer tegen het glas aan
  {                                 
    myservo1.write(pos1);             
    delay(delaylinks);                       
    //Serial.println(pos1);
  }
  Serial.println("links omlaag");
  for(pos1 = 85; pos1>=51; pos1-=1)    // hoe hoger des te meer tegen het glas aan
  {                               
    myservo1.write(pos1);             
    delay(delaylinks);                       
  }
}
 
void rechts(){
  Serial.println("rechts");
  for(pos1 = 35; pos1 < 65; pos1 += 1) // hoe lager des te meer tegen het glas aan
  {                                 
    myservo2.write(pos1);             
    delay(delayrechts);                     
  }
  for(pos1 = 65; pos1>=36; pos1-=1)    // hoe lager des te meer tegen het glas aan
  {                              
    myservo2.write(pos1);           
    delay(delayrechts);                     
  }
}
 
void midden(){
  Serial.println("midden");
  for(pos1 = 30; pos1 < 60; pos1 += 1)   // hoe lager des te meer tegen het glas aan
  {
    myservo3.write(pos1);
    delay(delaymidden);
  }
  for(pos1 = 60; pos1>=31; pos1-=1)        // hoe lager des te meer tegen het glas aan
  {
    myservo3.write(pos1);
    delay(delaymidden);
  }
}
 
void loop(){
 
  // Serial.print("thisnote = ");
  // Serial.println(thisNote);
  note = noteLib[thisNote];
  Duration = noteDurations[thisDuration];
  // Serial.print("note = ");
  // Serial.println(note);
  switch (note) {
  case 0:   
    Serial.println("case 0");
    delaylinks = Duration;
    links();
    thisNote++;
    thisDuration++;
    break;
  case 1:   
    Serial.println("case 1");
    delayrechts = Duration;
    rechts();
    thisNote++;
    thisDuration++;
    break;
  case 2:
    Serial.println("case 2");
    delaymidden = Duration;
    midden();
    thisNote++;
    thisDuration++;
    break;
  }
  if (thisNote == 9){
    thisNote = 0;
    thisDuration = 0;
  }
}
</nowiki>
 
 
 
----
 
== Contact: ==
 
[mailto:263346@student.fontys.nl Ralph]
 
 
 
Ralph--[[Speciaal:Bijdragen/84.27.35.55|84.27.35.55]] 11 nov 2012 15:05 (CET)

Huidige versie van 24 jan 2013 om 12:20

Hoofdpagina | Fanbot | Eckart College | Fontys Robots | Kekbot mechatronics kit | Hardware | Software&Programma's | Tips



Info:

door Ralph en Kostas

Dit is een robot gemaakt voor het kekrobot project. de glastikbot is een drumbot die een melody maakt doormiddel van op een glas te tikken



Status:

De drumbot kan rythme en noten lezen waardoor het mogelijk is om liedjes in te laden en door de drumbot te laten afspelen.



Problemen:

  • De Launchpad heeft een gelimiteerde mogelijkheid tot ontwikkeling. Zo kan er geen seriale poort worden aangesproken of uitgelezen.
  • De Launchpad wekt te weinig energie op om meerdere servo's aan te spreken.
  • We zijn uiteindelijk overgestapt naar een arduino, omdat deze wel de potentiële waarde heeft om een succesvol drumbot te ontwikkelen.



Filmpje

Zie de robot in actie en hier



Code

#include <Servo.h>

Servo myservo1;   
Servo myservo2;  
Servo myservo3;

int pos1 = 0;     
int delaylinks = 2;
int delayrechts = 2;
int delaymidden = 2;
int check1 = 0;
int check2 = 0;

int noteLib[] = {
  2,2,1,2,0,2,1,0,0,0,0,0,1,1,1,0,1,2,1,0,0 };  
//e e d e c e d c c c c c d d d c d e d c c
int thisNote = 0;
int note;
int noteDurations[] = {
  4,6,4,6,4,6,4,4,6,4,4,6,4,6,4,4,4,6,4,4,6 }; 
//ee de ce dcc ccc dd dcde dcc
//46 46 46 446 446 46 4446 446
int thisDuration = 2;
int Duration;
void setup() 
{ 
  Serial.begin(9600);
  myservo1.attach(11); 
  myservo2.attach(10); 
  myservo3.attach(9);
} 

void links(){
  Serial.println("links");
  for(pos1 = 50; pos1 < 85; pos1 += 1)  // hoe hoger des te meer tegen het glas aan
  {                                   
    myservo1.write(pos1);               
    delay(delaylinks);                        
    //Serial.println(pos1);
  }
  Serial.println("links omlaag");
  for(pos1 = 85; pos1>=51; pos1-=1)     // hoe hoger des te meer tegen het glas aan 
  {                                
    myservo1.write(pos1);              
    delay(delaylinks);                        
  } 
}

void rechts(){
  Serial.println("rechts");
  for(pos1 = 35; pos1 < 65; pos1 += 1)  // hoe lager des te meer tegen het glas aan
  {                                  
    myservo2.write(pos1);              
    delay(delayrechts);                       
  } 
  for(pos1 = 65; pos1>=36; pos1-=1)     // hoe lager des te meer tegen het glas aan 
  {                                
    myservo2.write(pos1);             
    delay(delayrechts);                       
  } 
}

void midden(){
  Serial.println("midden");
  for(pos1 = 30; pos1 < 60; pos1 += 1)    // hoe lager des te meer tegen het glas aan
  {
    myservo3.write(pos1);
    delay(delaymidden);
  }
  for(pos1 = 60; pos1>=31; pos1-=1)        // hoe lager des te meer tegen het glas aan
  {
    myservo3.write(pos1);
    delay(delaymidden);
  }
}

void loop(){

  // Serial.print("thisnote =  ");
  // Serial.println(thisNote);
  note = noteLib[thisNote];
  Duration = noteDurations[thisDuration];
  // Serial.print("note =  ");
  // Serial.println(note);
  switch (note) {
  case 0:    
    Serial.println("case 0");
    delaylinks = Duration;
    links();
    thisNote++;
    thisDuration++;
    break;
  case 1:    
    Serial.println("case 1");
    delayrechts = Duration;
    rechts();
    thisNote++;
    thisDuration++;
    break;
  case 2:
    Serial.println("case 2");
    delaymidden = Duration;
    midden();
    thisNote++;
    thisDuration++;
    break;
  }
  if (thisNote == 9){
    thisNote = 0;
    thisDuration = 0;
  }
}
 



Contact:

Ralph


Ralph--84.27.35.55 11 nov 2012 15:05 (CET)