Glastik robot
Naar navigatie springen
Naar zoeken springen
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
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--84.27.35.55 11 nov 2012 15:05 (CET)