motor portion of pinball project for ECE 4180 Final Project

Dependencies:   mbed Servo Motor PinDetect

Files at this revision

API Documentation at this revision

Comitter:
Varoon5
Date:
Tue Apr 30 04:42:11 2019 +0000
Parent:
0:7bbc230e00d6
Commit message:
4180 final project

Changed in this revision

PinDetect.lib Show annotated file Show diff for this revision Revisions of this file
Servo.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PinDetect.lib	Tue Apr 30 04:42:11 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/AjK/code/PinDetect/#cb3afc45028b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Tue Apr 30 04:42:11 2019 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/Servo/#36b69a7ced07
--- a/main.cpp	Tue Nov 23 16:19:19 2010 +0000
+++ b/main.cpp	Tue Apr 30 04:42:11 2019 +0000
@@ -2,12 +2,58 @@
 
 #include "mbed.h"
 #include "Motor.h"
+#include "PinDetect.h"
+#include "Servo.h"
 
-Motor m(p23, p6, p5); // pwm, fwd, rev
+Servo myservo(p21);
+Motor m1(p24, p17, p18); // pwm, fwd, rev
+Motor m2(p25, p19, p20); // pwm, fwd, rev
+PinDetect pb1(p7);
+PinDetect pb2(p8);
+DigitalOut myled(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut myled4(LED4); 
+
+void pb1_hit_callback (void) {
+    myled3 = !myled3;
+    m1.speed(0.5); 
+    wait(0.05);
+    m1.speed(0.0);
+    wait(0.05);
+    m1.speed(-0.5); 
+    wait(0.05);
+    m1.speed(0.0);
+}
+
+void pb2_hit_callback (void) {
+    myled4 = !myled4;
+    m2.speed(0.5); 
+    wait(0.05);
+    m2.speed(0.0);
+    wait(0.05);
+    m2.speed(-0.5); 
+    wait(0.05);
+    m2.speed(0.0);
+}
 
 int main() {
-    for (float s= -1.0; s < 1.0 ; s += 0.01) {
-       m.speed(s); 
-       wait(0.02);
+    // Use internal pullups for pushbutton
+    pb1.mode(PullUp);   
+    pb2.mode(PullUp);  
+    // Delay for initial pullup to take effect
+    wait(.01);
+    // Setup Interrupt callback functions for a pb hit
+    pb1.attach_deasserted(&pb1_hit_callback);
+    pb2.attach_deasserted(&pb2_hit_callback);
+    // Start sampling pb inputs using interrupts
+    pb1.setSampleFrequency();
+    pb2.setSampleFrequency();
+    
+    while (1) {
+        myservo = 0.0;
+        wait(0.5);
+        myservo = -1.0;
+        wait(0.5);
     }
 }