Glastik robot: verschil tussen versies

Uit KekBot
Naar navigatie springen Naar zoeken springen
Geen bewerkingssamenvatting
Rsterks (overleg | bijdragen)
 
(7 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 1: Regel 1:
{{hoofdmenu}}
----
== Info: ==
door Ralph en Kostas
door Ralph en Kostas
{{hoofdmenu}}
 
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 11: Regel 17:
== Problemen: ==
== Problemen: ==
   
   
- De Launchpad heeft een gelimiteerde mogelijkheid tot ontwikkeling. Zo kan er geen seriale poort worden aangesproken of uitgelezen.
* 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.
* 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.
* We zijn uiteindelijk overgestapt naar een arduino, omdat deze wel de potentiële waarde heeft om een succesvol drumbot te ontwikkelen.




Regel 21: Regel 27:
----
----
== Filmpje ==
== Filmpje ==
[[Bestand:kekbot-glastikbot.mp4]]
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 10: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)