rome2_p6 imported

Dependencies:   mbed

Revision:
0:351a2fb21235
Child:
1:4b956ba45704
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Main.cpp	Fri May 18 12:05:32 2018 +0000
@@ -0,0 +1,103 @@
+/*
+ * Main.cpp
+ * Copyright (c) 2018, ZHAW
+ * All rights reserved.
+ */
+
+#include <cstdlib>
+#include <mbed.h>
+#include "EncoderCounter.h"
+#include "IRSensor.h"
+#include "IMU.h"
+#include "LIDAR.h"
+#include "Controller.h"
+#include "StateMachine.h"
+#include "SerialServer.h"
+
+int main() {
+    
+    // create miscellaneous periphery objects
+    
+    DigitalOut led(LED1);
+    DigitalIn button(USER_BUTTON);
+    
+    DigitalOut led0(PC_8);
+    DigitalOut led1(PC_6);
+    DigitalOut led2(PB_12);
+    DigitalOut led3(PA_7);
+    DigitalOut led4(PC_0);
+    DigitalOut led5(PC_9);
+    
+    // create motor control objects
+    
+    DigitalOut enableMotorDriver(PB_2);
+    DigitalIn motorDriverFault(PB_14);
+    DigitalIn motorDriverWarning(PB_15);
+    
+    PwmOut pwmLeft(PA_8);
+    PwmOut pwmRight(PA_9);
+    
+    EncoderCounter counterLeft(PB_6, PB_7);
+    EncoderCounter counterRight(PA_6, PC_7);
+    
+    // create distance sensor objects
+    
+    DigitalOut enableIRSensors(PC_1);
+    enableIRSensors = 1;
+    
+    AnalogIn distance(PB_1);
+    DigitalOut bit0(PH_1);
+    DigitalOut bit1(PC_2);
+    DigitalOut bit2(PC_3);
+    
+    IRSensor irSensor0(distance, bit0, bit1, bit2, 0);
+    IRSensor irSensor1(distance, bit0, bit1, bit2, 1);
+    IRSensor irSensor2(distance, bit0, bit1, bit2, 2);
+    IRSensor irSensor3(distance, bit0, bit1, bit2, 3);
+    IRSensor irSensor4(distance, bit0, bit1, bit2, 4);
+    IRSensor irSensor5(distance, bit0, bit1, bit2, 5);
+    
+    // create LIDAR object
+    
+    PwmOut pwm(PA_10);
+    pwm.period(0.00005f);
+    pwm.write(0.5f);      // 50% duty-cycle
+    
+    RawSerial uart(PA_0, PA_1);
+    
+    LIDAR lidar(uart);
+    
+    // create robot controller objects
+    
+    Controller controller(pwmLeft, pwmRight, counterLeft, counterRight);
+    StateMachine stateMachine(controller, enableMotorDriver, led0, led1, led2, led3, led4, led5, button, irSensor0, irSensor1, irSensor2, irSensor3, irSensor4, irSensor5);
+    
+    // create serial server object
+    
+    RawSerial serial(PB_10, PC_5);
+    serial.baud(9600);
+    serial.format(8, SerialBase::None, 1);
+    
+    DigitalOut reset(PB_3);
+    DigitalOut modes1(PB_4);
+    
+    modes1 = 0;
+    
+    reset = 1; wait(0.1f);
+    reset = 0; wait(0.1f);
+    reset = 1; wait(0.1f);
+    
+    SerialServer serialServer(serial, lidar, controller);
+    
+    while (true) {
+        
+        led = !led; // toggle led
+        
+        wait(0.2f); // wait for 200 ms
+        
+        lidar.lookForBeacon();
+        
+        // bitte Lagekorrektur implementieren!
+    }
+}
+