![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Example project
Dependencies: PM2_Libary Eigen
main.cpp
- Committer:
- pmic
- Date:
- 2022-05-10
- Revision:
- 36:23addefb97af
- Parent:
- 31:1b2a1bd1bccb
- Child:
- 39:f336caef17d9
File content as of revision 36:23addefb97af:
/* * Main.cpp * Copyright (c) 2022, ZHAW * All rights reserved. */ #include <stdio.h> #include <mbed.h> #include "IRSensor.h" #include "EncoderCounterROME2.h" #include "Controller.h" #include "StateMachine.h" int main() { // create miscellaneous periphery objects DigitalIn button(BUTTON1); DigitalOut led(LED1); DigitalOut led0(PD_4); DigitalOut led1(PD_3); DigitalOut led2(PD_6); DigitalOut led3(PD_2); DigitalOut led4(PD_7); DigitalOut led5(PD_5); // create IR sensor objects AnalogIn distance(PA_0); DigitalOut enable(PG_1); DigitalOut bit0(PF_0); DigitalOut bit1(PF_1); DigitalOut bit2(PF_2); 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); enable = 1; // create motor control objects DigitalOut enableMotorDriver(PG_0); DigitalIn motorDriverFault(PD_1); DigitalIn motorDriverWarning(PD_0); PwmOut pwmLeft(PF_9); PwmOut pwmRight(PF_8); EncoderCounterROME2 counterLeft(PD_12, PD_13); EncoderCounterROME2 counterRight(PB_4, PC_7); // 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); while (true) { led = !led; printf("actual velocity: %.3f [m/s] / %.3f [rad/s]\r\n", controller.getActualTranslationalVelocity(), controller.getActualRotationalVelocity()); ThisThread::sleep_for(100ms); } }