Pratik Gangwani
/
WiFiRobot
ECE 4180 Lab 4. Wifi robot controlled via webpage with Huzzah ESP8266 chip as server.
main.cpp@0:908e99bd0369, 2016-03-15 (annotated)
- Committer:
- Zaydax
- Date:
- Tue Mar 15 22:10:56 2016 +0000
- Revision:
- 0:908e99bd0369
Publishing to make available to import.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Zaydax | 0:908e99bd0369 | 1 | // Pratik Gangwani |
Zaydax | 0:908e99bd0369 | 2 | // Justin Tamayo |
Zaydax | 0:908e99bd0369 | 3 | // 3/15/16 |
Zaydax | 0:908e99bd0369 | 4 | // ECE 4180 Lab 4; Wi-Fi controlled robot |
Zaydax | 0:908e99bd0369 | 5 | // C File to run MBEd anc control motor, LED, and speaker functions by reading in digital signals from Huzzah 8266 board |
Zaydax | 0:908e99bd0369 | 6 | |
Zaydax | 0:908e99bd0369 | 7 | #include "mbed.h" |
Zaydax | 0:908e99bd0369 | 8 | #include "Motor.h" |
Zaydax | 0:908e99bd0369 | 9 | #include "Speaker.h" |
Zaydax | 0:908e99bd0369 | 10 | |
Zaydax | 0:908e99bd0369 | 11 | //Define MBED LED's for use |
Zaydax | 0:908e99bd0369 | 12 | DigitalOut myled1(LED1); |
Zaydax | 0:908e99bd0369 | 13 | DigitalOut myled2(LED2); |
Zaydax | 0:908e99bd0369 | 14 | DigitalOut myled3(LED3); |
Zaydax | 0:908e99bd0369 | 15 | DigitalOut myled4(LED4); |
Zaydax | 0:908e99bd0369 | 16 | |
Zaydax | 0:908e99bd0369 | 17 | // Define Digital Pins to read in digital signals from Huzzah 8266 board |
Zaydax | 0:908e99bd0369 | 18 | DigitalIn forward(p30); |
Zaydax | 0:908e99bd0369 | 19 | DigitalIn backward(p29); |
Zaydax | 0:908e99bd0369 | 20 | DigitalIn left(p28); |
Zaydax | 0:908e99bd0369 | 21 | DigitalIn right(p27); |
Zaydax | 0:908e99bd0369 | 22 | DigitalIn horn(p26); |
Zaydax | 0:908e99bd0369 | 23 | |
Zaydax | 0:908e99bd0369 | 24 | // Define Motor pins to connect to H-Bridge |
Zaydax | 0:908e99bd0369 | 25 | Motor rightMotor(p21, p16, p15); // pwm, fwd, rev |
Zaydax | 0:908e99bd0369 | 26 | Motor leftMotor(p22, p19, p17); // pwm, fwd, rev |
Zaydax | 0:908e99bd0369 | 27 | |
Zaydax | 0:908e99bd0369 | 28 | // Define Speaker pin (MUST BE PIN 18, ANALOG OUT for use with Speaker.h!) |
Zaydax | 0:908e99bd0369 | 29 | Speaker mySpeaker(p18); |
Zaydax | 0:908e99bd0369 | 30 | |
Zaydax | 0:908e99bd0369 | 31 | int main() { |
Zaydax | 0:908e99bd0369 | 32 | |
Zaydax | 0:908e99bd0369 | 33 | // Loop forever |
Zaydax | 0:908e99bd0369 | 34 | // Check to see if a pin is high. If that pin is high, execute that pin for as long as the signal is high on that pin. |
Zaydax | 0:908e99bd0369 | 35 | // When you let go on the mouse click the code defaults to doing nothing |
Zaydax | 0:908e99bd0369 | 36 | // Each pin moves the robot in a particular direction, and activates a specific LED |
Zaydax | 0:908e99bd0369 | 37 | // Horn will not run forever if you hold it down, it is simply a click |
Zaydax | 0:908e99bd0369 | 38 | // Setting speed to 0.5 on the motors saves a lot of battery power |
Zaydax | 0:908e99bd0369 | 39 | |
Zaydax | 0:908e99bd0369 | 40 | while(1){ |
Zaydax | 0:908e99bd0369 | 41 | |
Zaydax | 0:908e99bd0369 | 42 | if(forward) { |
Zaydax | 0:908e99bd0369 | 43 | rightMotor.speed(0.5); |
Zaydax | 0:908e99bd0369 | 44 | leftMotor.speed(0.5); |
Zaydax | 0:908e99bd0369 | 45 | myled1 = 1; |
Zaydax | 0:908e99bd0369 | 46 | myled2 = 0; |
Zaydax | 0:908e99bd0369 | 47 | myled3 = 0; |
Zaydax | 0:908e99bd0369 | 48 | myled4 = 0; |
Zaydax | 0:908e99bd0369 | 49 | } else if(backward) { |
Zaydax | 0:908e99bd0369 | 50 | rightMotor.speed(-0.5); |
Zaydax | 0:908e99bd0369 | 51 | leftMotor.speed(-0.5); |
Zaydax | 0:908e99bd0369 | 52 | myled1 = 0; |
Zaydax | 0:908e99bd0369 | 53 | myled2 = 1; |
Zaydax | 0:908e99bd0369 | 54 | myled3 = 0; |
Zaydax | 0:908e99bd0369 | 55 | myled4 = 0; |
Zaydax | 0:908e99bd0369 | 56 | } else if(left) { |
Zaydax | 0:908e99bd0369 | 57 | rightMotor.speed(0.5); |
Zaydax | 0:908e99bd0369 | 58 | leftMotor.speed(-0.5); |
Zaydax | 0:908e99bd0369 | 59 | myled1 = 0; |
Zaydax | 0:908e99bd0369 | 60 | myled2 = 0; |
Zaydax | 0:908e99bd0369 | 61 | myled3 = 1; |
Zaydax | 0:908e99bd0369 | 62 | myled4 = 0; |
Zaydax | 0:908e99bd0369 | 63 | } else if(right) { |
Zaydax | 0:908e99bd0369 | 64 | rightMotor.speed(-0.5); |
Zaydax | 0:908e99bd0369 | 65 | leftMotor.speed(0.5); |
Zaydax | 0:908e99bd0369 | 66 | myled1 = 0; |
Zaydax | 0:908e99bd0369 | 67 | myled2 = 0; |
Zaydax | 0:908e99bd0369 | 68 | myled3 = 0; |
Zaydax | 0:908e99bd0369 | 69 | myled4 = 1; |
Zaydax | 0:908e99bd0369 | 70 | } else if(horn) { |
Zaydax | 0:908e99bd0369 | 71 | rightMotor.speed(0.0); |
Zaydax | 0:908e99bd0369 | 72 | leftMotor.speed(0.0); |
Zaydax | 0:908e99bd0369 | 73 | myled1 = 1; |
Zaydax | 0:908e99bd0369 | 74 | myled2 = 1; |
Zaydax | 0:908e99bd0369 | 75 | myled3 = 1; |
Zaydax | 0:908e99bd0369 | 76 | myled4 = 1; |
Zaydax | 0:908e99bd0369 | 77 | mySpeaker.PlayNote(440.0, 0.5, 0.5); |
Zaydax | 0:908e99bd0369 | 78 | } else { |
Zaydax | 0:908e99bd0369 | 79 | rightMotor.speed(0.0); |
Zaydax | 0:908e99bd0369 | 80 | leftMotor.speed(0.0); |
Zaydax | 0:908e99bd0369 | 81 | myled1 = 0; |
Zaydax | 0:908e99bd0369 | 82 | myled2 = 0; |
Zaydax | 0:908e99bd0369 | 83 | myled3 = 0; |
Zaydax | 0:908e99bd0369 | 84 | myled4 = 0; |
Zaydax | 0:908e99bd0369 | 85 | } |
Zaydax | 0:908e99bd0369 | 86 | } |
Zaydax | 0:908e99bd0369 | 87 | } |