Presentation code for PROJECT #1 - ES200 Fall 2014

Dependencies:   Servo mbed Motor

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?

UserRevisionLine numberNew 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