Presentation code for PROJECT #1 - ES200 Fall 2014
Dependencies: Servo mbed Motor
main.cpp@9:8682923e9260, 2014-11-03 (annotated)
- Committer:
- tsevcik08
- Date:
- Mon Nov 03 01:39:08 2014 +0000
- Revision:
- 9:8682923e9260
- Parent:
- 8:30eb49981a91
final commented
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cstab94 | 0:80cc8025b1c0 | 1 | //MIDN 3/C W. O'Brien, D. Thompson-Sevcik, C. Stabler |
cstab94 | 0:80cc8025b1c0 | 2 | //Candy scooper program for Project #1, ES200 Fall 2014 |
cstab94 | 0:80cc8025b1c0 | 3 | //Modifications: 9 OCT- Initial code |
cstab94 | 0:80cc8025b1c0 | 4 | |
cstab94 | 0:80cc8025b1c0 | 5 | #include "mbed.h" |
cstab94 | 0:80cc8025b1c0 | 6 | #include "Motor.h" |
cstab94 | 0:80cc8025b1c0 | 7 | #include "Servo.h" |
tsevcik08 | 5:cf58a6bfdd7a | 8 | |
tsevcik08 | 5:cf58a6bfdd7a | 9 | Motor kate(p26, p29, p30); |
cstab94 | 4:0ed46a6cdf66 | 10 | Servo arm(p21); |
tsevcik08 | 5:cf58a6bfdd7a | 11 | Servo scoop(p22); |
cstab94 | 4:0ed46a6cdf66 | 12 | DigitalIn sw1(p16); //up |
cstab94 | 4:0ed46a6cdf66 | 13 | DigitalIn sw2(p17); //down |
cstab94 | 4:0ed46a6cdf66 | 14 | DigitalIn sw3(p18); //dump |
cstab94 | 4:0ed46a6cdf66 | 15 | DigitalIn sw4(p19); |
cstab94 | 4:0ed46a6cdf66 | 16 | DigitalIn sw5(p20); |
tsevcik08 | 7:39fd13b43380 | 17 | BusOut w(p5, p6, p7, p8, p11); //data bus for LEDs |
cstab94 | 4:0ed46a6cdf66 | 18 | |
cstab94 | 4:0ed46a6cdf66 | 19 | |
tsevcik08 | 5:cf58a6bfdd7a | 20 | int main() |
tsevcik08 | 5:cf58a6bfdd7a | 21 | { |
cstab94 | 4:0ed46a6cdf66 | 22 | |
westobrien | 8:30eb49981a91 | 23 | |
tsevcik08 | 7:39fd13b43380 | 24 | |
tsevcik08 | 7:39fd13b43380 | 25 | |
tsevcik08 | 7:39fd13b43380 | 26 | |
cstab94 | 4:0ed46a6cdf66 | 27 | float armpos; |
cstab94 | 4:0ed46a6cdf66 | 28 | float servopos; |
cstab94 | 4:0ed46a6cdf66 | 29 | float mspeed; |
tsevcik08 | 7:39fd13b43380 | 30 | w = 16; |
tsevcik08 | 5:cf58a6bfdd7a | 31 | while(1) { |
westobrien | 8:30eb49981a91 | 32 | |
tsevcik08 | 9:8682923e9260 | 33 | if( sw4 == 1 && sw5 == 0 && sw1 == 0 && sw2 == 0 ) {//while switch four is on |
westobrien | 8:30eb49981a91 | 34 | mspeed = 0.40; |
cstab94 | 4:0ed46a6cdf66 | 35 | kate.speed(mspeed); |
tsevcik08 | 9:8682923e9260 | 36 | wait(.05);//structure move for .05 seconds |
westobrien | 8:30eb49981a91 | 37 | mspeed = 0.0; |
westobrien | 8:30eb49981a91 | 38 | kate.speed(mspeed); |
tsevcik08 | 9:8682923e9260 | 39 | wait(.25);//structure stop for .25 seconds |
tsevcik08 | 7:39fd13b43380 | 40 | |
westobrien | 8:30eb49981a91 | 41 | if(w < 1 || w > 16){ |
westobrien | 8:30eb49981a91 | 42 | w=16; } |
tsevcik08 | 7:39fd13b43380 | 43 | w = w/2; //moves LED to the right by changing binary value |
tsevcik08 | 9:8682923e9260 | 44 | } else if( sw5 == 1 && sw4 == 0 && sw1 == 0 && sw2 == 0) {//while switch five is on |
westobrien | 8:30eb49981a91 | 45 | mspeed = -0.40; |
cstab94 | 4:0ed46a6cdf66 | 46 | kate.speed(mspeed); |
tsevcik08 | 9:8682923e9260 | 47 | wait(.05);//structure moves in reverse for .05 seconds |
cstab94 | 4:0ed46a6cdf66 | 48 | mspeed = 0.0; |
cstab94 | 4:0ed46a6cdf66 | 49 | kate.speed(mspeed); |
tsevcik08 | 9:8682923e9260 | 50 | wait(.25);//structure stops moving for .25 seconds |
tsevcik08 | 7:39fd13b43380 | 51 | |
westobrien | 8:30eb49981a91 | 52 | if(w < 1 || w > 16){ |
tsevcik08 | 7:39fd13b43380 | 53 | w=1; |
westobrien | 8:30eb49981a91 | 54 | } |
tsevcik08 | 9:8682923e9260 | 55 | w = w*2;//move LED to the left by changing the binary value |
tsevcik08 | 9:8682923e9260 | 56 | } else if (sw3 == 1 && sw2 == 0 && sw1 == 0 && sw4 == 0 && sw5 == 0 ) {//while switch three is on |
tsevcik08 | 9:8682923e9260 | 57 | for (servopos = 0; servopos <= 0.5; servopos += 0.5) {//closes the claw |
tsevcik08 | 5:cf58a6bfdd7a | 58 | scoop = servopos; |
tsevcik08 | 9:8682923e9260 | 59 | w = 8; // LED three is on |
tsevcik08 | 5:cf58a6bfdd7a | 60 | } |
tsevcik08 | 5:cf58a6bfdd7a | 61 | wait (1); |
tsevcik08 | 9:8682923e9260 | 62 | } else if(sw1 == 1 && sw2 == 0 && sw5 == 0 && sw4 == 0 ) {//while switch one is on |
tsevcik08 | 7:39fd13b43380 | 63 | armpos += .02; |
tsevcik08 | 9:8682923e9260 | 64 | arm = armpos;//arm position moves up by .02 |
tsevcik08 | 5:cf58a6bfdd7a | 65 | wait(.05); |
tsevcik08 | 7:39fd13b43380 | 66 | w=31; |
tsevcik08 | 9:8682923e9260 | 67 | wait(.05);//lights flicker between on and off |
tsevcik08 | 7:39fd13b43380 | 68 | w= 0; |
tsevcik08 | 9:8682923e9260 | 69 | } else if(sw2 == 1 && sw1 == 0 && sw4 == 0 && sw5 == 0) {//while stich two is on |
westobrien | 8:30eb49981a91 | 70 | armpos -= .08; |
tsevcik08 | 9:8682923e9260 | 71 | arm = armpos;//arm position moves down by .08 |
tsevcik08 | 5:cf58a6bfdd7a | 72 | wait(.05); |
tsevcik08 | 7:39fd13b43380 | 73 | w=3; |
tsevcik08 | 9:8682923e9260 | 74 | wait(.25);//lights flicker between LED 1 and 2 on and LED 3, 4, and 5 on |
tsevcik08 | 7:39fd13b43380 | 75 | w=28; |
tsevcik08 | 9:8682923e9260 | 76 | } else if (sw4 == 0 && sw1 == 0 && sw2 == 0 && sw3 == 0 && sw5 == 0) {//while all switches off |
tsevcik08 | 9:8682923e9260 | 77 | mspeed = 0.0;// no movement of the structure |
cstab94 | 4:0ed46a6cdf66 | 78 | kate.speed(mspeed); |
tsevcik08 | 9:8682923e9260 | 79 | arm = armpos;// arm stays in the position |
tsevcik08 | 5:cf58a6bfdd7a | 80 | wait(.1); |
tsevcik08 | 5:cf58a6bfdd7a | 81 | for (servopos = 1.0; servopos >= 0; servopos -=1.0) { |
tsevcik08 | 9:8682923e9260 | 82 | scoop = servopos;//claw opens up |
tsevcik08 | 5:cf58a6bfdd7a | 83 | } |
cstab94 | 4:0ed46a6cdf66 | 84 | } |
tsevcik08 | 5:cf58a6bfdd7a | 85 | } |
tsevcik08 | 5:cf58a6bfdd7a | 86 | |
cstab94 | 4:0ed46a6cdf66 | 87 | }//end main |
cstab94 | 4:0ed46a6cdf66 | 88 |