Rube Goldberg machine
Dependencies: 4DGL-uLCD-SE mbed PinDetect
Diff: main.cpp
- Revision:
- 6:8ec8b00d6d7c
- Parent:
- 5:8ff6c76ead80
--- a/main.cpp Sun Sep 25 10:37:38 2016 +0000 +++ b/main.cpp Sun Sep 25 12:46:54 2016 +0000 @@ -8,6 +8,7 @@ bool volatile stop = 0; int num; int smallFinale; +int inc = 1; DigitalOut d1(p21); //display number in binary DigitalOut d2(p22); @@ -21,10 +22,21 @@ DigitalOut enable(p27); SPI spi(p5, p6, p7); -int red=0; +int red=0; //for shiftbrite int green=0; int blue=0; +void show() { + uLCD.cls(); + uLCD.locate(0,0); + uLCD.text_width(2); + uLCD.text_height(2); + uLCD.printf("GRINDING GEARS...\n\n"); + wait(0.5); + uLCD.printf("STAR \nSEARCHING..."); + wait(1); +} + void RGB_LED(int red, int green, int blue) { unsigned int low_color=0; @@ -57,12 +69,18 @@ { if (num > 3) { d3 = 1; + } else { + d3 = 0; } if (num == 2 || num == 3 || num == 6 || num == 7) { d2 = 1; + } else { + d2 = 0; } if ((num % 2) == 1) { d1 = 1; + } else { + d1 = 0; } } @@ -70,15 +88,21 @@ { red = a; green = b; - blue = abs(a-b/2); - RGB_LED(red, green, blue); + blue = 0; + while (true) { + RGB_LED(red, green, blue); + blue = blue + inc; + if (blue == 0 || blue == 256) { + inc = -inc; + } + wait(0.01); + } } int main() { t.start(); //start timer uLCD.cls(); //prepare screen - uLCD.baudrate(3000000); wait(0.1); spi.format(16,0); //setup spi spi.frequency(500000); @@ -91,11 +115,37 @@ wait(.01); //setup delay begin.attach_deasserted(&stopper); begin.setSampleFrequency(); - uLCD.printf("press the button\n"); + uLCD.text_width(3); + uLCD.text_height(3); + uLCD.printf(" FIRE\n WHEN\n READY"); start(); //begin the choosing - uLCD.printf("got the number %d\n", num); lights(); //light lights according to generated number - uLCD.printf("did the lights \n"); - smallFinale = t.read_us()%4; - bigFinale((smallFinale+num)*256/21,256*finish.read()/3.3); //output branch numbers to light + show(); + uLCD.cls(); + uLCD.locate(0,0); + uLCD.printf("You got the number"); + uLCD.text_width(5); + uLCD.text_height(5); + uLCD.locate(1,1); + uLCD.printf("%2D",num); + uLCD.text_width(1); + uLCD.text_height(1); + uLCD.locate(0,13); + uLCD.printf("The lights knew\n this would happen"); + wait(4); + + smallFinale = 256*finish.read(); + uLCD.cls(); + uLCD.text_width(3); + uLCD.text_height(3); + uLCD.locate(0,0); + uLCD.printf(" YOUR\nSTATS:"); + uLCD.text_width(2); + uLCD.text_height(2); + uLCD.locate(1,5); + uLCD.color(RED); + uLCD.printf("\t%2D",num*256/7); + uLCD.color(GREEN); + uLCD.printf("\t %2D",smallFinale); + bigFinale(num*256/7,smallFinale); //output branch numbers to light }