Zürcher Eliteeinheit / Mbed 2 deprecated ROME2_P4

Dependencies:   ROME2_P2 mbed

Fork of ROME2_P3 by Zürcher Eliteeinheit

Committer:
matajarb
Date:
Thu Apr 26 12:22:58 2018 +0000
Revision:
6:67263dc2c2cf
Parent:
0:e360940c4b88
s?mme du schluch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Appalco 0:e360940c4b88 1 /*
Appalco 0:e360940c4b88 2 * Main.cpp
Appalco 0:e360940c4b88 3 * Copyright (c) 2018, ZHAW
Appalco 0:e360940c4b88 4 * All rights reserved.
Appalco 0:e360940c4b88 5 */
Appalco 0:e360940c4b88 6
Appalco 0:e360940c4b88 7 #include <cstdlib>
Appalco 0:e360940c4b88 8 #include <mbed.h>
Appalco 0:e360940c4b88 9 #include "EncoderCounter.h"
Appalco 0:e360940c4b88 10 #include "IRSensor.h"
matajarb 6:67263dc2c2cf 11 #include "IMU.h"
Appalco 0:e360940c4b88 12 #include "Controller.h"
Appalco 0:e360940c4b88 13 #include "StateMachine.h"
matajarb 6:67263dc2c2cf 14 #include "SerialServer.h"
Appalco 0:e360940c4b88 15
Appalco 0:e360940c4b88 16 int main() {
Appalco 0:e360940c4b88 17
Appalco 0:e360940c4b88 18 // create miscellaneous periphery objects
Appalco 0:e360940c4b88 19
Appalco 0:e360940c4b88 20 DigitalOut led(LED1);
Appalco 0:e360940c4b88 21 DigitalIn button(USER_BUTTON);
Appalco 0:e360940c4b88 22
Appalco 0:e360940c4b88 23 DigitalOut led0(PC_8);
Appalco 0:e360940c4b88 24 DigitalOut led1(PC_6);
Appalco 0:e360940c4b88 25 DigitalOut led2(PB_12);
Appalco 0:e360940c4b88 26 DigitalOut led3(PA_7);
Appalco 0:e360940c4b88 27 DigitalOut led4(PC_0);
Appalco 0:e360940c4b88 28 DigitalOut led5(PC_9);
Appalco 0:e360940c4b88 29
Appalco 0:e360940c4b88 30 // create motor control objects
Appalco 0:e360940c4b88 31
Appalco 0:e360940c4b88 32 DigitalOut enableMotorDriver(PB_2);
Appalco 0:e360940c4b88 33 DigitalIn motorDriverFault(PB_14);
Appalco 0:e360940c4b88 34 DigitalIn motorDriverWarning(PB_15);
Appalco 0:e360940c4b88 35
Appalco 0:e360940c4b88 36 PwmOut pwmLeft(PA_8);
Appalco 0:e360940c4b88 37 PwmOut pwmRight(PA_9);
Appalco 0:e360940c4b88 38
Appalco 0:e360940c4b88 39 EncoderCounter counterLeft(PB_6, PB_7);
Appalco 0:e360940c4b88 40 EncoderCounter counterRight(PA_6, PC_7);
Appalco 0:e360940c4b88 41
Appalco 0:e360940c4b88 42 // create distance sensor objects
Appalco 0:e360940c4b88 43
Appalco 0:e360940c4b88 44 DigitalOut enableIRSensors(PC_1);
Appalco 0:e360940c4b88 45 enableIRSensors = 1;
Appalco 0:e360940c4b88 46
Appalco 0:e360940c4b88 47 AnalogIn distance(PB_1);
Appalco 0:e360940c4b88 48 DigitalOut bit0(PH_1);
Appalco 0:e360940c4b88 49 DigitalOut bit1(PC_2);
Appalco 0:e360940c4b88 50 DigitalOut bit2(PC_3);
Appalco 0:e360940c4b88 51
Appalco 0:e360940c4b88 52 IRSensor irSensor0(distance, bit0, bit1, bit2, 0);
Appalco 0:e360940c4b88 53 IRSensor irSensor1(distance, bit0, bit1, bit2, 1);
Appalco 0:e360940c4b88 54 IRSensor irSensor2(distance, bit0, bit1, bit2, 2);
Appalco 0:e360940c4b88 55 IRSensor irSensor3(distance, bit0, bit1, bit2, 3);
Appalco 0:e360940c4b88 56 IRSensor irSensor4(distance, bit0, bit1, bit2, 4);
Appalco 0:e360940c4b88 57 IRSensor irSensor5(distance, bit0, bit1, bit2, 5);
Appalco 0:e360940c4b88 58
Appalco 0:e360940c4b88 59 // create robot controller objects
Appalco 0:e360940c4b88 60
Appalco 0:e360940c4b88 61 Controller controller(pwmLeft, pwmRight, counterLeft, counterRight);
Appalco 0:e360940c4b88 62 StateMachine stateMachine(controller, enableMotorDriver, led0, led1, led2, led3, led4, led5, button, irSensor0, irSensor1, irSensor2, irSensor3, irSensor4, irSensor5);
Appalco 0:e360940c4b88 63
Appalco 0:e360940c4b88 64 while (true) {
Appalco 0:e360940c4b88 65
Appalco 0:e360940c4b88 66 led = !led; // toggle led
Appalco 0:e360940c4b88 67
Appalco 0:e360940c4b88 68 wait(0.2f); // wait for 200 ms
Appalco 0:e360940c4b88 69 }
Appalco 0:e360940c4b88 70 }
Appalco 0:e360940c4b88 71