test
Dependents: MouseHybridSenseCode
Diff: main.cpp
- Revision:
- 5:dfea493f7a12
- Parent:
- 4:f1670eec4681
- Child:
- 6:a652deaae134
--- a/main.cpp Wed Mar 07 19:27:13 2018 +0000 +++ b/main.cpp Sun Mar 11 13:15:34 2018 +0000 @@ -1,103 +1,108 @@ -#include "mbed.h" -#include "funcdef.h" +#include <mbed.h> +#include <funcdef.h> +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//Initialise Global Variables + +int sensorValue[] = {0,0,0,0,0,0,0,0}; + +int sensorMinValue[] = {0,0,0,0,0,0,0,0}; +int sensorMaxValue[] = {0,0,0,0,0,0,0,0}; + +int sensorMinValue1[] = {0,0,0,0,0,0,0,0}; +int sensorMaxValue1[] = {0,0,0,0,0,0,0,0}; + +int sensorMinValue2[] = {0,0,0,0,0,0,0,0}; +int sensorMaxValue2[] = {0,0,0,0,0,0,0,0}; + +int sensorThreshold[] = {0,0,0,0,0,0,0,0}; +int sensorErrors[] = {0,0,0,0,0,0,0,0}; + +int Prop=0; +//int Inte;//=0; +//int Dere;//=0; +int errorVar=0; +int previousError=0; +int PIDs=0; +int accumulator=0; +int counter=0; +int delayBetweenPulses_ms=0; +int note=0; +int initialMotorspeed = 250; +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//Interupt Definition + +Ticker beeper; +void beep() +{ + if (counter == 5) + { + beeperVal.pulsewidth_us(0); + counter=(-1*((delayBetweenPulses_ms/10)+1)); + } + else if (counter==0) + { + beeperVal.period_us(note); + beeperVal.pulsewidth_us(note/2); + } + counter++; + return; +} + +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//Main Code int main() -{ - leftMotorVal.period_us(100); - rightMotorVal.period_us(100); - - while(1) - { - - leftMotorVal.write(0.00125*200); - rightMotorVal.write(0.00125*200); - wait(3); - - leftMotorVal.write(0.00125*200); - rightMotorVal.write(0.00125*200); - wait(3); - - } +{ + //CONFIGURE BEEPER + note=period_F6; + beeperVal.period_us(note); + beeperVal.pulsewidth_us(0); + //CONFIGURE MOTORS & TURN OFF LED LEDVal=0; - - leftMotorVal.write(0.00125*0); - rightMotorVal.write(0.00125*0); + leftMotorVal.period_us(1000); + rightMotorVal.period_us(1000); + leftMotorVal.pulsewidth_us(0); + rightMotorVal.pulsewidth_us(0); - LEDVal=1; - CalibrateFunc(); + wait_ms(1000); - LEDVal=0; - printf("sensorMinValue1 "); - for (int i=0;i<=7;i++) - { - if (i==7) - { - printf(" %d\r\n",sensorMinValue1[i]); - } - printf(" %d",sensorMinValue1[i]); - } + //START BEEPER 20HZ % TURN LED ON + LEDVal=1; + counter=0; + delayBetweenPulses_ms=50; + beeper.attach(&beep, 0.01); + //beeper.detach(); - printf("sensorMinValue2 "); - for (int i=0;i<=7;i++) - { - if (i==7) - { - printf(" %d\r\n",sensorMinValue2[i]); - } - printf(" %d",sensorMinValue2[i]); - } + //BEGIN CALIBRATION + CalibrateFunc(); + printCalibrateValues(); - printf("sensorMinValue "); - for (int i=0;i<=7;i++) - { - if (i==7) - { - printf(" %d\r\n",sensorMinValue[i]); - } - printf(" %d",sensorMinValue[i]); - } - - printf("sensorMaxValue1 "); - for (int i=0;i<=7;i++) - { - if (i==7) - { - printf(" %d\r\n",sensorMaxValue1[i]); - } - printf(" %d",sensorMaxValue1[i]); - } + //TURN OFF LED AND SET PULSES TO 2 HZ + LEDVal=0; + counter=0; + delayBetweenPulses_ms=500; + //beeper.attach(&beep, 0.01); - printf("sensorMaxValue2 "); - for (int i=0;i<=7;i++) - { - if (i==7) - { - printf(" %d\r\n",sensorMaxValue2[i]); - } - printf(" %d",sensorMaxValue2[i]); - } + //WAIT 3 SECONDS AND DETACH BEEPER FOR MAIN RUN + counter=0; + beeper.detach(); + wait_ms(3000); + /* + //FIND LINE + findLineFunc(); + counter=0; + delayBetweenPulses_ms=500; + beeper.attach(&beep, 0.01); - printf("sensorMaxValue "); - for (int i=0;i<=7;i++) - { - if (i==7) - { - printf(" %d\r\n",sensorMaxValue[i]); - } - printf(" %d",sensorMaxValue[i]); - } + //ONCE FOUND, HAND OVER TO MAIN ALGORITHM - printf("sensorThreshold "); - for (int i=0;i<=7;i++) - { - if (i==7) - { - printf(" %d\r\n",sensorThreshold[i]); - } - printf(" %d",sensorThreshold[i]); + while(1) + { + senseFunc(); + calculateFunc(); + driveFunc(); } - - LEDVal=1; + */ return 0; } \ No newline at end of file