Vivian van Voorthuizen
/
KL25Z_compleet_test_4
program for RoPiT
Revision 0:5e1d466088b4, committed 2014-08-27
- Comitter:
- s1222546
- Date:
- Wed Aug 27 08:32:11 2014 +0000
- Commit message:
- program for RoPiT
Changed in this revision
diff -r 000000000000 -r 5e1d466088b4 Servo.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Servo.lib Wed Aug 27 08:32:11 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/simon/code/Servo/#36b69a7ced07
diff -r 000000000000 -r 5e1d466088b4 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Aug 27 08:32:11 2014 +0000 @@ -0,0 +1,678 @@ +#include "mbed.h" +#include "Servo.h" + +//pushbuttons +InterruptIn interruptbutton(D8); +DigitalIn button1(D7); +DigitalIn button2(D6); +DigitalIn button3(D5); + +//LEDs +DigitalOut ledon(D4); +DigitalOut led1(D1); +DigitalOut led2(D2); +DigitalOut led3(D3); + +//myleds +DigitalOut myled1(LED1); +DigitalOut myled2(LED2); +DigitalOut myled3(LED3); + +//buzzer +DigitalOut buzzer(PTC5); + +//servo's +Servo servo1(D13); +Servo servo2(D10); +Servo servo3(D11); +Servo servo4(D12); +Servo servo5(D9); + +//transistoren +DigitalOut transistor1(PTA17); +DigitalOut transistor2(PTC16); +DigitalOut transistor3(PTC17); +DigitalOut transistor4(PTA16); +DigitalOut transistor5(PTC13); + +//potmeters +AnalogIn POT1(A1); +AnalogIn POT2(A2); +AnalogIn POT3(A3); +AnalogIn POT4(A4); +AnalogIn POT5(A5); + +//timer +Timer timer; + +//variabelen +float bnp=0; +float menu=1; +float song; +float learning; +float m; +float tellen; +float finger; +float a; +float p; +float transistors; +float o; +float c; +float servo_melody_run; +float feedback_melody_run; +float POT_melody_run; +float hoek1a; +float hoek2a; +float hoek3a; +float hoek4a; +float hoek5a; +float hoek1b; +float hoek2b; +float hoek3b; +float hoek4b; +float hoek5b; +float hoek1; +float hoek2; +float hoek3; +float hoek4; +float hoek5; +extern "C" void NVIC_SystemReset(); + +//programma reset +void startover() +{ + led1=1; + wait(0.2); + led2=1; + wait(0.2); + led3=1; + wait(0.5); + led1=0; + led2=0; + led3=0; + menu=1; + NVIC_SystemReset(); +} + + +//programma onderdelen aansturing servo's +// transistors_on +void transistors_on() +{ + transistor1=1; + transistor2=1; + transistor3=1; + transistor4=1; + transistor5=1; +} + +// transistors_off +void transistors_off() +{ + transistor1=0; + transistor2=0; + transistor3=0; + transistor4=0; + transistor5=0; +} + +// aftellen +void aftellen() +{ + buzzer=1; + wait(0.2); + buzzer=0; + wait(c-0.2); + buzzer=1; + wait(0.2); + buzzer=0; + wait(c-0.2); + buzzer=1; + wait(0.2); + buzzer=0; + wait(c-0.2); + buzzer=1; + wait(0.2); + buzzer=0; + wait(c-0.2); + m=1; +} + +//aftellen_kalibreren +void aftellen_kalibreren() +{ + buzzer=1; + wait(0.2); + buzzer=0; + wait(0.8); + buzzer=1; + wait(0.2); + buzzer=0; + wait(0.8); + buzzer=1; + wait(0.2); + buzzer=0; + wait(0.8); + buzzer=1; + wait(0.2); + buzzer=0; + wait(0.8); +} + + +//kalibreren +void kalibreren() +{ + aftellen_kalibreren(); + hoek1a=POT1.read(); + hoek2a=POT2.read(); + hoek3a=POT3.read(); + hoek4a=POT4.read(); + hoek5a=POT5.read(); + wait(5); + aftellen_kalibreren(); + hoek1b=POT1.read(); + hoek2b=POT2.read(); + hoek3b=POT3.read(); + hoek4b=POT4.read(); + hoek5b=POT5.read(); + + hoek1=0.75*(hoek1a-hoek1b); + hoek2=0.75*(hoek2a-hoek2b); + hoek3=0.75*(hoek3a-hoek3b); + hoek4=0.75*(hoek4a-hoek4b); + hoek5=0.75*(hoek5a-hoek5b); + led1=0; + led2=0; + led3=0; +} + +// melody_1 +void melody_1() +{ + if(m==0) { + aftellen(); + } + if(m==1) { + finger=1; + ++o; + } + if(m==2) { + finger=2; + ++o; + } + if(m==3) { + finger=3; + ++o; + } + if(m==4) { + finger=4; + ++o; + } + if(m==5) { + finger=5; + ++o; + } + if(m==6) { + finger=0; + feedback_melody_run=0; + servo_melody_run=0; + POT_melody_run=0; + tellen=1; + timer.stop(); + timer.reset(); + } +} + + +// melody_2 +void melody_2() +{ + if(m==0) { + aftellen(); + } + if(m==1) { + finger=1; + ++o; + } + if(m==2) { + finger=5; + ++o; + } + if(m==3) { + finger=2; + } + if(m==4) { + finger=4; + ++o; + } + if(m==5) { + finger=3; + ++o; + } + if(m==6) { + finger=0; + feedback_melody_run=0; + servo_melody_run=0; + POT_melody_run=0; + tellen=1; + timer.stop(); + timer.reset(); + } +} + +// melody_3 +void melody_3() +{ + if(m==0) { + aftellen(); + } + if(m==1) { + finger=1; + ++o; + } + if(m==2) { + finger=2; + ++o; + } + if(m==3) { + finger=5; + ++o; + } + if(m==4) { + finger=4; + ++o; + } + if(m==5) { + finger=3; + ++o; + } + if(m==6) { + finger=0; + feedback_melody_run=0; + servo_melody_run=0; + POT_melody_run=0; + tellen=1; + m=0; + timer.stop(); + timer.reset(); + } +} + +// melody +void melody() +{ + if(song==1) { + melody_1(); + } + if(song==2) { + melody_2(); + } + if(song==3) { + melody_3(); + } +} + +//POT +void POT() +{ + melody(); + if(finger==1) { + if(POT1.read()>=hoek1) { + ++m; + } + } + if(finger==2) { + if(POT2.read()>=hoek2) { + ++m; + } + } + if(finger==3) { + if(POT3.read()>=hoek3) { + ++m; + } + } + if(finger==4) { + if(POT4.read()>=hoek4) { + ++m; + } + } + if(finger==5) { + if(POT5.read()>=hoek5) { + ++m; + } + } +} + +// servo +void servo() +{ + melody(); + if(finger==1) { + transistor1=1; + servo1=1; + wait(a); + servo1=0.5; + } + if(finger==2) { + transistor2=1; + servo2=1; + wait(a); + servo2=0.5; + } + if(finger==3) { + transistor3=1; + servo3=1; + wait(a); + servo3=0.5; + } + if(finger==4) { + transistor4=1; + servo4=0; + wait(a); + servo4=0.5; + } + if(finger==5) { + transistor5=1; + servo5=0; + wait(a); + servo5=0.5; + } + ++m; +} + +//feedback +void feedback() +{ + melody(); + if(finger==1) { + timer.start(); + while(m==o) { + if(POT1.read()>=hoek1) { + ++m; + } + if(timer.read()>=c+a) { + transistor1=1; + servo1=1; + wait(a); + servo1=0.5; + wait(a); + transistor1=0; + ++m; + } + } + } + if(finger==2) { + timer.start(); + while(m==o) { + if(POT2.read()>=hoek2) { + ++m; + } + if(timer.read()>=2*c+a) { + transistor2=1; + servo2=1; + wait(a); + servo2=0.5; + wait(a); + transistor2=0; + ++m; + } + } + } + if(finger==3) { + timer.start(); + while(m==o) { + if(POT3.read()>=hoek3) { + ++m; + } + if(timer.read()>=2*c+a) { + transistor3=1; + servo3=1; + wait(a); + servo3=0.5; + wait(a); + transistor3=0; + ++m; + } + } + } + if(finger==4) { + timer.start(); + while(m==o) { + if(POT4.read()>=hoek4) { + ++m; + } + if(timer.read()>=3*c+a) { + transistor4=1; + servo4=1; + wait(a); + servo4=0.5; + wait(a); + transistor4=0; + ++m; + } + } + } + if(finger==5) { + timer.start(); + while(m==o) { + if(POT5.read()>=hoek5) { + ++m; + } + if(timer.read()>=4*c+a) { + transistor5=1; + servo5=1; + wait(a); + servo5=0.5; + wait(a); + transistor5=0; + ++m; + } + } + } +} + +//servo_melody() +void servo_melody() +{ + if(transistors==1) { + transistors_on(); + transistors=0; + servo_melody_run=1; + m=0; + } + while(servo_melody_run==1) { + servo(); + } +} + +//POT_melody() +void POT_melody() +{ + if(transistors==1) { + transistors_off(); + transistors=0; + POT_melody_run=1; + m=0; + } + while(POT_melody_run==1) { + POT(); + } +} + +//feedback_melody() +void feedback_melody() +{ + if(transistors==1) { + transistors_off(); + transistors=0; + feedback_melody_run=1; + m=0; + o=0; + } + while(feedback_melody_run==1) { + feedback(); + } +} + + + + + + + + +int main() +{ + led1=0; + led2=0; + led3=0; + myled1=1; + myled2=1; + myled3=1; + while(1) { + ledon=1; + interruptbutton.fall(&startover); +//menu + if(button1==0) { + if(bnp==1 && menu==1) { + led1=1; + song=1; + menu=2; + wait(0.5); + led1=0; + bnp=0; + } + if(bnp==1 && menu==2) { + led1=1; + learning=1; + menu=3; + wait(0.5); + led1=0; + bnp=0; + } + if(bnp==1 && menu==3) { + led1=1; + p=60; + menu=4; + wait(0.5); + led1=0; + bnp=0; + } + } + if(button2==0) { + if(bnp==1 && menu==1) { + led2=1; + song=2; + menu=2; + wait(0.5); + led2=0; + bnp=0; + } + if(bnp==1 && menu==2) { + led2=1; + learning=2; + menu=3; + wait(0.5); + led2=0; + bnp=0; + } + if(bnp==1 && menu==3) { + led2=1; + p=100; + menu=4; + wait(0.5); + led2=0; + bnp=0; + } + } + if(button3==0) { + if(bnp==1 && menu==1) { + led3=1; + song=3; + menu=2; + wait(0.5); + led3=0; + bnp=0; + } + if(bnp==1 && menu==2) { + led3=1; + learning=3; + menu=3; + wait(0.5); + led3=0; + bnp=0; + } + if(bnp==1 && menu==3) { + led3=1; + p=120; + menu=4; + wait(0.5); + led3=0; + bnp=0; + } + if(button2==0 && bnp==0) { + led3=1; + led2=1; + if(button1==0 &&bnp==0) { + led1=1; + p=100; + kalibreren(); + } + } + } + if(button1==1 && button2==1 && button3==1) { + bnp=1; + } +//programma + if(menu==4) { + c=60/p; + a=0.5*c; + if(learning==1) { + transistors=1; + POT_melody(); + } + if(learning==2) { + transistors=1; + servo_melody(); + wait(3); + transistors=1; + feedback_melody(); + wait(3); + transistors=1; + servo_melody(); + wait(3); + transistors=1; + feedback_melody(); + wait(3); + transistors=1; + servo_melody(); + wait(3); + transistors=1; + feedback_melody(); + } + if(learning==3) { + + transistors=1; + servo_melody(); + wait(3); + transistors=1; + POT_melody(); + wait(3); + transistors=1; + servo_melody(); + wait(3); + transistors=1; + POT_melody(); + wait(3); + transistors=1; + servo_melody(); + wait(3); + transistors=1; + POT_melody(); + } + menu=1; + } + } +} +
diff -r 000000000000 -r 5e1d466088b4 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Aug 27 08:32:11 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/6213f644d804 \ No newline at end of file