Zürcher Eliteeinheit / Mbed 2 deprecated ROME2_P4

Dependencies:   ROME2_P2 mbed

Fork of ROME2_P3 by Zürcher Eliteeinheit

Committer:
Appalco
Date:
Fri Mar 16 13:32:47 2018 +0000
Revision:
0:e360940c4b88
Child:
6:67263dc2c2cf
import

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