Torsten Wylegala
/
parallel_parking
foo
Fork of parallel_parking by
Revision 2:fae63e87900e, committed 2016-02-08
- Comitter:
- torstenwylegala
- Date:
- Mon Feb 08 11:40:03 2016 +0000
- Parent:
- 1:719ac5a42c19
- Commit message:
- foo
Changed in this revision
Periphery/SupportSystem.cpp | 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 |
--- a/Periphery/SupportSystem.cpp Mon Feb 08 11:13:44 2016 +0000 +++ b/Periphery/SupportSystem.cpp Mon Feb 08 11:40:03 2016 +0000 @@ -152,14 +152,14 @@ uint8_t tries = 0; uint16_t checksum; - //do{ + do{ readData(SUPPORT_SYSTEM_REGISTER_ADDRESS_IMU_OFFSET,(void*)&IMU_registerDataBuffer,sizeof(IMU_RegisterDataBuffer_t)); - // checksum = generateChecksum(&IMU_registerDataBuffer,(sizeof(IMU_RegisterDataBuffer_t) - sizeof(uint16_t))); + checksum = generateChecksum(&IMU_registerDataBuffer,(sizeof(IMU_RegisterDataBuffer_t) - sizeof(uint16_t))); - // }while(tries++ < 5 && checksum != IMU_registerDataBuffer.completeChecksum); + }while(tries++ < 5 && checksum != IMU_registerDataBuffer.completeChecksum); - //transmissionErrorCount += tries-1; + transmissionErrorCount += tries-1; return &IMU_registerDataBuffer;
--- a/main.cpp Mon Feb 08 11:13:44 2016 +0000 +++ b/main.cpp Mon Feb 08 11:40:03 2016 +0000 @@ -3,166 +3,55 @@ #include "Periphery/SupportSystem.h" #include "Misc/SystemTimer.h" -Serial serialXbee(p28,p27), serialMinnow(p13, p14); -PwmOut drivePWM(p22), steerPWM(p21); - - -DigitalOut serialLED(LED1), ledTwo(LED2), ledThree(LED3), heartbeatLED(LED4); +Serial serialXbee(p28,p27); +Serial serialMinnow(p13, p14); +PwmOut drivePWM(p22); +PwmOut steerPWM(p21); -DigitalIn buttonOne(p25), buttonTwo(p26), buttonThree(p29), buttonFour(p30); -DigitalIn redlight(p16); +DigitalOut heartbeatLED(LED4); +DigitalOut ledTwo(LED1); -IMU_RegisterDataBuffer_t *IMU_registerDataBuffer; -Timer timer; - void hearbeat_thread(void const *args); int main() { + serialMinnow.baud(115200); + + SystemTimer *millis = new SystemTimer(); I2C *i2c = new I2C(p9, p10); + SupportSystem *supportSystem = new SupportSystem(0x80, i2c); + drivePWM.period_ms(20); steerPWM.period_ms(20); - - SystemTimer *millis = new SystemTimer(); - SupportSystem *supportSystem = new SupportSystem(0x80, i2c); - Thread hearbeatThread(hearbeat_thread); + Thread hearbeatThread(&hearbeat_thread); - steerPWM.pulsewidth_us(1500); - float strecke_anfang, strecke_ende, size_parking_space, zeit_anfang, zeit_ende, zeit_parking_space; - timer.start(); - - // Konfiguration AMF-IMU - // [0]: Conversation Factor - // [1]: Sensor Position X - // [2]: Sensor Position Y - // [3]: Sensor Position Angle - //float configData[4] = {0.002751114f, 167.0f, 0.0f, 271.5f}; - //supportSystem->writeImuConfig(configData); + IMU_RegisterDataBuffer_t *imuRegisterDataBuffer; -/* while(true){ + while(true){ ledTwo = !ledTwo; - IMU_registerDataBuffer = supportSystem->getImuRegisterDataBuffer(); + imuRegisterDataBuffer = supportSystem->getImuRegisterDataBuffer(); - serialMinnow.printf("X %f\n\r", IMU_registerDataBuffer->distanceXRegister); - serialMinnow.printf("S %f\n\r", IMU_registerDataBuffer->squal); + serialMinnow.printf("Distance X: %f\n\r", imuRegisterDataBuffer->distanceXRegister); + serialMinnow.printf("Squal: %d\n\r", imuRegisterDataBuffer->squal); serialMinnow.printf("Uptime %d\n\r", supportSystem->readMaintenanceUptimeMillis()); serialMinnow.printf("Error: %d\n\r", supportSystem->getTransmissionErrorCount()); + serialMinnow.printf("\n\r"); wait(0.100); } -*/ - - while(true){ - ledTwo = !ledTwo; - IMU_registerDataBuffer = supportSystem->getImuRegisterDataBuffer(); - - if(buttonFour == 1){ - - drivePWM.pulsewidth_us(1700); - while(true){ - if(redlight == 1){ - ledThree = 1; - - /*do{ - - }while(redlight == 1); - strecke_anfang = IMU_registerDataBuffer->distanceXRegister; - ledThree = 1; - do{ - - }while(redlight == 0);*/ - - /*strecke_anfang = IMU_registerDataBuffer->distanceXRegister; - wait_ms(2000); - strecke_ende = IMU_registerDataBuffer->distanceXRegister; - size_parking_space = strecke_ende - strecke_anfang; - serialMinnow.printf("%f, ", IMU_registerDataBuffer->distanceXRegister); - serialMinnow.printf("%f\r\n", size_parking_space);*/ - - do{ - - }while(redlight == 1); - zeit_anfang = timer.read_ms(); - do{ - - }while(redlight == 0); - zeit_ende = timer.read_ms(); - zeit_parking_space = zeit_ende - zeit_anfang; - serialMinnow.printf("Differenz: %f\r\n", zeit_parking_space); - } - if(zeit_parking_space < 1350 && zeit_parking_space > 1100){ - - drivePWM.pulsewidth_us(1700); //Stück nach vorne fahren - wait_ms(200); - drivePWM.pulsewidth_us(1500); //Stehen - wait_ms(200); - drivePWM.pulsewidth_us(1325); //1. Einschlag - steerPWM.pulsewidth_us(2000); - wait_ms(970); - steerPWM.pulsewidth_us(1000); //2. Einschlag - wait_ms(950); - drivePWM.pulsewidth_us(1700); //Korrektur nach vorne - steerPWM.pulsewidth_us(1700); - wait_ms(420); - drivePWM.pulsewidth_us(1500); //Ende - steerPWM.pulsewidth_us(1500); - break; - } - } - } - if(buttonOne == 1){ - ledTwo = 0; - ledThree = 0; - drivePWM.pulsewidth_us(1500); - } - wait_ms(100); - } + } void hearbeat_thread(void const *args) { while(true) { heartbeatLED = !heartbeatLED; - Thread::wait(100); + Thread::wait(200); } } - - -//------- 1 ---------------- - /* drivePWM.pulsewidth_us(1700); //Vorwärts - wait_ms(2500); - drivePWM.pulsewidth_us(1500); //Stehen - wait_ms(200); - drivePWM.pulsewidth_us(1325); //1. Einschlag - steerPWM.pulsewidth_us(2000); - wait_ms(970); - steerPWM.pulsewidth_us(1000); //2. Einschlag - wait_ms(950); - drivePWM.pulsewidth_us(1700); //Korrektur nach vorne - steerPWM.pulsewidth_us(1700); - wait_ms(420); - drivePWM.pulsewidth_us(1500); //Ende - steerPWM.pulsewidth_us(1500); - ledTwo = 1; -//------- 2 ---------------- - drivePWM.pulsewidth_us(1800); //Vorwärts - wait_ms(825); - drivePWM.pulsewidth_us(1500); //Stehen - wait_ms(200); - drivePWM.pulsewidth_us(1300); //1. Einschlag - steerPWM.pulsewidth_us(2000); - wait_ms(680); - steerPWM.pulsewidth_us(1000); //2. Einschlag - wait_ms(630); - drivePWM.pulsewidth_us(1700); //Korrektur nach vorne - steerPWM.pulsewidth_us(1700); - wait_ms(420); - drivePWM.pulsewidth_us(1500); //Ende - steerPWM.pulsewidth_us(1500); - */ \ No newline at end of file