Oliver Becher / Mbed 2 deprecated parallel_parking

Dependencies:   mbed-rtos mbed

Fork of parallel_parking by Die Ollis

Committer:
becheo
Date:
Sun Feb 07 06:14:32 2016 +0000
Revision:
0:c871d5355b99
Child:
1:719ac5a42c19
Einparken mit verschiedenen Geschwindigkeiten

Who changed what in which revision?

UserRevisionLine numberNew contents of line
becheo 0:c871d5355b99 1 #include <mbed.h>
becheo 0:c871d5355b99 2 #include "Periphery/SupportSystem.h"
becheo 0:c871d5355b99 3 #include "Misc/SystemTimer.h"
becheo 0:c871d5355b99 4 #include "rtos.h"
becheo 0:c871d5355b99 5
becheo 0:c871d5355b99 6 #define PI 3.14159265
becheo 0:c871d5355b99 7
becheo 0:c871d5355b99 8 Serial serialXbee(p28,p27), serialMinnow(p13, p14);
becheo 0:c871d5355b99 9 PwmOut drivePWM(p22), steerPWM(p21);
becheo 0:c871d5355b99 10 I2C i2c(p9, p10);
becheo 0:c871d5355b99 11
becheo 0:c871d5355b99 12 DigitalOut serialLED(LED1), ledTwo(LED2), ledThree(LED3), heartbeatLED(LED4);
becheo 0:c871d5355b99 13
becheo 0:c871d5355b99 14 DigitalIn buttonOne(p25), buttonTwo(p26), buttonThree(p29), buttonFour(p30);
becheo 0:c871d5355b99 15 DigitalIn redlight(p16);
becheo 0:c871d5355b99 16
becheo 0:c871d5355b99 17 IMU_RegisterDataBuffer_t *IMU_registerDataBuffer;
becheo 0:c871d5355b99 18
becheo 0:c871d5355b99 19 void hearbeat_thread(void const *args);
becheo 0:c871d5355b99 20
becheo 0:c871d5355b99 21 int main() {
becheo 0:c871d5355b99 22 drivePWM.period_ms(20);
becheo 0:c871d5355b99 23 steerPWM.period_ms(20);
becheo 0:c871d5355b99 24
becheo 0:c871d5355b99 25 SystemTimer *millis = new SystemTimer();
becheo 0:c871d5355b99 26 SupportSystem *supportSystem = new SupportSystem(0x80, &i2c);
becheo 0:c871d5355b99 27 Thread hearbeatThread(hearbeat_thread);
becheo 0:c871d5355b99 28
becheo 0:c871d5355b99 29 ledTwo =1;
becheo 0:c871d5355b99 30 ledThree = 1;
becheo 0:c871d5355b99 31 steerPWM.pulsewidth_us(1500);
becheo 0:c871d5355b99 32 //float strecke_anfang, strecke_ende, size_parking_space;
becheo 0:c871d5355b99 33
becheo 0:c871d5355b99 34 while(true){
becheo 0:c871d5355b99 35 //IMU_registerDataBuffer = supportSystem->getImuRegisterDataBuffer();
becheo 0:c871d5355b99 36 if(buttonFour == 1){
becheo 0:c871d5355b99 37 ledTwo = 0;
becheo 0:c871d5355b99 38 //------- 1 ----------------
becheo 0:c871d5355b99 39 /* drivePWM.pulsewidth_us(1700); //Vorwärts
becheo 0:c871d5355b99 40 wait_ms(2500);
becheo 0:c871d5355b99 41 drivePWM.pulsewidth_us(1500); //Stehen
becheo 0:c871d5355b99 42 wait_ms(200);
becheo 0:c871d5355b99 43 drivePWM.pulsewidth_us(1325); //1. Einschlag
becheo 0:c871d5355b99 44 steerPWM.pulsewidth_us(2000);
becheo 0:c871d5355b99 45 wait_ms(970);
becheo 0:c871d5355b99 46 steerPWM.pulsewidth_us(1000); //2. Einschlag
becheo 0:c871d5355b99 47 wait_ms(950);
becheo 0:c871d5355b99 48 drivePWM.pulsewidth_us(1700); //Korrektur nach vorne
becheo 0:c871d5355b99 49 steerPWM.pulsewidth_us(1700);
becheo 0:c871d5355b99 50 wait_ms(420);
becheo 0:c871d5355b99 51 drivePWM.pulsewidth_us(1500); //Ende
becheo 0:c871d5355b99 52 steerPWM.pulsewidth_us(1500);
becheo 0:c871d5355b99 53 ledTwo = 1;*/
becheo 0:c871d5355b99 54 //------- 2 ----------------
becheo 0:c871d5355b99 55 drivePWM.pulsewidth_us(1800); //Vorwärts
becheo 0:c871d5355b99 56 wait_ms(825);
becheo 0:c871d5355b99 57 drivePWM.pulsewidth_us(1500); //Stehen
becheo 0:c871d5355b99 58 wait_ms(200);
becheo 0:c871d5355b99 59 drivePWM.pulsewidth_us(1300); //1. Einschlag
becheo 0:c871d5355b99 60 steerPWM.pulsewidth_us(2000);
becheo 0:c871d5355b99 61 wait_ms(680);
becheo 0:c871d5355b99 62 steerPWM.pulsewidth_us(1000); //2. Einschlag
becheo 0:c871d5355b99 63 wait_ms(630);
becheo 0:c871d5355b99 64 drivePWM.pulsewidth_us(1700); //Korrektur nach vorne
becheo 0:c871d5355b99 65 steerPWM.pulsewidth_us(1700);
becheo 0:c871d5355b99 66 wait_ms(420);
becheo 0:c871d5355b99 67 drivePWM.pulsewidth_us(1500); //Ende
becheo 0:c871d5355b99 68 steerPWM.pulsewidth_us(1500);
becheo 0:c871d5355b99 69
becheo 0:c871d5355b99 70
becheo 0:c871d5355b99 71 }
becheo 0:c871d5355b99 72 if(buttonOne == 1){
becheo 0:c871d5355b99 73 ledTwo = 0;
becheo 0:c871d5355b99 74 ledThree = 0;
becheo 0:c871d5355b99 75 drivePWM.pulsewidth_us(1500);
becheo 0:c871d5355b99 76 }
becheo 0:c871d5355b99 77 }
becheo 0:c871d5355b99 78
becheo 0:c871d5355b99 79
becheo 0:c871d5355b99 80 /*if(buttonFour == 1){
becheo 0:c871d5355b99 81 drivePWM.pulsewidth_us(1700);
becheo 0:c871d5355b99 82
becheo 0:c871d5355b99 83 if(redlight == 1){
becheo 0:c871d5355b99 84 ledTwo = 1;
becheo 0:c871d5355b99 85
becheo 0:c871d5355b99 86 do{
becheo 0:c871d5355b99 87 ledThree = 1;
becheo 0:c871d5355b99 88 }while(redlight == 1);
becheo 0:c871d5355b99 89 strecke_anfang = IMU_registerDataBuffer->distanceXRegister;
becheo 0:c871d5355b99 90 do{
becheo 0:c871d5355b99 91 ledThree = 0;
becheo 0:c871d5355b99 92 }while(redlight == 0);
becheo 0:c871d5355b99 93 strecke_ende = IMU_registerDataBuffer->distanceXRegister;
becheo 0:c871d5355b99 94 size_parking_space = strecke_ende - strecke_anfang;
becheo 0:c871d5355b99 95
becheo 0:c871d5355b99 96 }
becheo 0:c871d5355b99 97 }
becheo 0:c871d5355b99 98 */
becheo 0:c871d5355b99 99 }
becheo 0:c871d5355b99 100
becheo 0:c871d5355b99 101
becheo 0:c871d5355b99 102 void hearbeat_thread(void const *args) {
becheo 0:c871d5355b99 103 while(true) {
becheo 0:c871d5355b99 104 heartbeatLED = !heartbeatLED;
becheo 0:c871d5355b99 105 Thread::wait(100);
becheo 0:c871d5355b99 106 }
becheo 0:c871d5355b99 107 }