Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 1:94577052d858
- Parent:
- 0:e679a1bb6eca
- Child:
- 2:8435af9e917a
--- a/main.cpp Thu Feb 18 16:58:28 2016 +0000
+++ b/main.cpp Thu Feb 25 10:27:59 2016 +0000
@@ -1,49 +1,50 @@
#include "mbed.h"
//Pull everything up
-DigitalIn pull1(PTA1);
-DigitalIn pull2(PTA2);
-DigitalIn pull4(PTA12);
-DigitalIn pull5(PTA4);
-DigitalIn pull6(PTA5);
-DigitalIn pull7(PTC8);
+DigitalOut pull1(PTA1);
+DigitalOut pull2(PTA2);
+//DigitalOut pull4(PTA12);
+//DigitalOut pull5(PTA4);
+DigitalOut pull6(PTA5);
+DigitalOut pull7(PTC8);
-DigitalIn pull9(PTA13);
-DigitalIn pull10(PTD5);
-DigitalIn pull11(PTD0);
-DigitalIn pull12(PTD2);
-DigitalIn pull13(PTD3);
-DigitalIn pull14(PTD1);
-DigitalIn pull15(PTE0);
-DigitalIn pull16(PTE1);
+DigitalOut pull9(PTA13);
+DigitalOut pull10(PTD5);
+DigitalOut pull11(PTD0);
+DigitalOut pull12(PTD2);
+DigitalOut pull13(PTD3);
+DigitalOut pull14(PTD1);
+DigitalOut pull15(PTE0);
+DigitalOut pull16(PTE1);
-DigitalIn pull17(PTC7);
-DigitalIn pull18(PTC0);
-DigitalIn pull19(PTC3);
-DigitalIn pull20(PTC4);
+//DigitalOut pull17(PTC7);
+//DigitalOut pull18(PTC0);
+DigitalOut pull19(PTC3);
+DigitalOut pull20(PTC4);
-DigitalIn pull21(PTC12);
-DigitalIn pull22(PTC13);
-DigitalIn pull23(PTC16);
-DigitalIn pull24(PTC17);
-DigitalIn pull25(PTA16);
-DigitalIn pull26(PTA17);
-DigitalIn pull27(PTE31);
-DigitalIn pull28(PTD6);
-DigitalIn pull29(PTD7);
+DigitalOut pull21(PTC12);
+DigitalOut pull22(PTC13);
+DigitalOut pull23(PTC16);
+DigitalOut pull24(PTC17);
+DigitalOut pull25(PTA16);
+DigitalOut pull26(PTA17);
+DigitalOut pull27(PTE31);
+DigitalOut pull28(PTD6);
+DigitalOut pull29(PTD7);
+
+DigitalOut pull30(PTE30);
-DigitalIn pull30(PTE30);
-
-DigitalIn pull34(PTE21);
-DigitalIn pull35(PTE20);
+//DigitalOut pull38(PTE3);
+DigitalOut pull39(PTE2);
+//DigitalOut pull50(PTB11);
+//DigitalOut pull51(PTB10);
+//DigitalOut pull52(PTB9);
+//DigitalOut pull53(PTB8);
-DigitalIn pull38(PTE3);
-DigitalIn pull39(PTE2);
-
-DigitalIn pull47(PTB1);
-DigitalIn pull48(PTB0);
-DigitalIn pull49(PTA20);
-
+//DigitalOut pull34(PTE21);
+//DigitalOut pull35(PTE20);
+//DigitalOut pull47(PTB1);
+//DigitalOut pull48(PTB0);
//motor driver outputs
@@ -59,60 +60,92 @@
//constant 3.3 volts for sensors
DigitalOut constant1(PTE5);
DigitalOut constant2(PTE4);
+DigitalOut constant3(PTE3);
+DigitalOut constant4(PTC0);
+DigitalOut constant5(PTC7);
//line following inputs
-DigitalIn leftmost(PTE23);
+AnalogIn leftmost(PTB0);
AnalogIn left(PTC2);
-AnalogIn middle(PTB2);
-AnalogIn right(PTB3);
-DigitalIn rightmost(PTE22);
+AnalogIn middle(PTB3);
+AnalogIn right(PTB2);
+AnalogIn rightmost(PTB1);
+
+DigitalIn back(PTB11);
+DigitalIn front(PTB10);
//debugging led outputs
-DigitalOut ledleftmost(PTE29);
-DigitalOut ledright(PTB10);
-DigitalOut ledmiddle(PTB11);
-DigitalOut ledleft(PTB8);
-DigitalOut ledrightmost(PTB9);
+DigitalOut ledleftmost(PTE20);
+DigitalOut ledright(PTE23);
+DigitalOut ledmiddle(PTE22);
+DigitalOut ledleft(PTE29);
+DigitalOut ledrightmost(PTE21);
+
+DigitalOut ledback(PTB8);
+DigitalOut ledfront(PTB9);
+
+//ball firing
+PwmOut motors(PTA12);
+DigitalOut solenoid(PTA4);
int main() {
- pull1.mode(PullUp);
- pull2.mode(PullUp);
+
+
+ pull1=0;
+ pull2=0;
//pull3.mode(PullUp);
- pull4.mode(PullUp);
- pull5.mode(PullUp);
- pull6.mode(PullUp);
- pull7.mode(PullUp);
+ //pull4=0;
+ //pull5=0;
+ pull6=0;
+ pull7=0;
//pull8.mode(PullUp);
- pull9.mode(PullUp);
- pull10.mode(PullUp);
- pull11.mode(PullUp);
- pull12.mode(PullUp);
- pull13.mode(PullUp);
- pull14.mode(PullUp);
- pull15.mode(PullUp);
- pull16.mode(PullUp);
- pull17.mode(PullUp);
- pull18.mode(PullUp);
- pull19.mode(PullUp);
- pull20.mode(PullUp);
- pull21.mode(PullUp);
- pull22.mode(PullUp);
- pull23.mode(PullUp);
- pull24.mode(PullUp);
- pull25.mode(PullUp);
- pull26.mode(PullUp);
- pull27.mode(PullUp);
- pull28.mode(PullUp);
- pull29.mode(PullUp);
- pull30.mode(PullUp);
- pull34.mode(PullUp);
- pull35.mode(PullUp);
- pull38.mode(PullUp);
- pull39.mode(PullUp);
- pull47.mode(PullUp);
- pull48.mode(PullUp);
- pull49.mode(PullUp);
+ pull9=0;
+ pull10=0;
+ pull11=0;
+ pull12=0;
+ pull13=0;
+ pull14=0;
+ pull15=0;
+ pull16=0;
+ //pull17=0;
+ //pull18=0;
+ pull19=0;
+ pull20=0;
+ pull21=0;
+ pull22=0;
+ pull23=0;
+ pull24=0;
+ pull25=0;
+ pull26=0;
+ pull27=0;
+ pull28=0;
+ pull29=0;
+ pull30=0;
+ //pull34=0;
+ //pull35=0;
+ //pull38=0;
+ pull39=0;
+ //pull47=0;
+ //pull48=0;
+ //pull49=0;
+ //pull50=0;
+ //pull51=0;
+ //pull52=0;
+ //pull53=0;
+
+
+
+
+ motors.period(3.0);
+ motors.write(0);
+ solenoid=0;
+
+ constant1=1;
+ constant2=1;
+ constant3=1;
+ constant4=1;
+ constant5=1;
indicator=1;
wait(0.3);
@@ -135,41 +168,100 @@
ENA=0;
ENB=0;
+ int counter=0;
+
while(1) {
+ counter=counter+1;
- //ENA=0.5;
- //ENB=0.5;
-
- if(middle>0.45){
- ledmiddle=1;
+ if(middle<0.4 & left<0.4 & right<0.4 & leftmost<0.4 & rightmost<0.24){
+ //skip the loop
+ ledmiddle=0;
+ ledleft=0;
+ ledright=0;
+ ledleftmost=0;
+ ledrightmost=0;
}else{
- ledmiddle=0;
- }
-
- if(left>0.4){
- ledleft=1;
- }else{
- ledleft=0;
- }
+
+ if(front==1){
+ ledfront=1;
+ }else{
+ ledfront=0;
+ }
+
+ if(back==1){
+ ledback=1;
+ }else{
+ ledback=0;
+ }
+
+ if(back==1 and counter>70){
+ counter=0;
+ ENB=0;
+ ENA=0;
+ if(front==0){
+ //shoot balls
+ motors=0.08;
+ wait_ms(550);
+ solenoid=1;
+ wait_ms(45);
+ solenoid=0;
+ }
+ wait(3);
+ motors=0;
+ }
+
+
+
+ if(middle>0.4){
+ ledmiddle=1;
+ ENA=0.5;
+ ENB=0.5;
+ }else{
+ ledmiddle=0;
+ ENA=0.4;
+ ENB=0.4;
+ }
+
+ if(left>0.4){
+ ledleft=1;
+ indicator=1;
+ ENA=0.28;
+ }else{
+ ledleft=0;
+ }
- if(right>0.4){
- ledright=1;
- }else{
- ledright=0;
- }
+ if(right>0.4){
+ ledright=1;
+ ENB=0.28;
+ }else{
+ ledright=0;
+ }
+
+ if(leftmost>0.4){
+ ledleftmost=1;
+ ENA=0;
+ }else{
+ ledleftmost=0;
+ }
- if(leftmost==1){
- ledleftmost=1;
- }else{
- ledleftmost=0;
+ if(rightmost>0.24){
+ ledrightmost=1;
+ ENB=0;
+ }else{
+ ledrightmost=0;
+ }
+
+
+ if((left>0.4 or leftmost>0.4)and(right>0.4 or rightmost>0.24)){
+ ENB=0.4;
+ ENA=0;
+ wait(0.5);
+ }
+
}
-
- if(rightmost==1){
- ledrightmost=1;
- }else{
- ledrightmost=0;
- }
+
+ wait(0.1);
}