Raj Patel / Mbed 2 deprecated RoboticMappingControl

Dependencies:   mbed mbed-rtos Motor LSM9DS1_Library_cal X_NUCLEO_53L0A1

Committer:
rpatelpj
Date:
Thu Apr 25 22:13:21 2019 +0000
Revision:
20:d9a373fecd42
Parent:
19:41d0cc14edc5
Added shortest rotation and conversion constants to RobotController

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abh15 6:c119cc5d48d6 1 #include "globals.h"
rpatelpj 3:1dce1ba5b8bd 2 #include "DataDistributor.h"
rpatelpj 3:1dce1ba5b8bd 3 #include "RobotController.h"
rpatelpj 17:e1a5d25218de 4 #include "XNucleo53L0A1.h"
rpatelpj 0:66b7ea9af0dc 5
abh15 6:c119cc5d48d6 6 Serial pc(USBTX, USBRX);
rpatelpj 8:bfa4bf23522c 7 BusOut led(LED1, LED2, LED3, LED4);
rpatelpj 8:bfa4bf23522c 8 DigitalIn pb(p23);
rpatelpj 17:e1a5d25218de 9 Thread lidarThread;
rpatelpj 8:bfa4bf23522c 10
abh15 9:552805fac195 11 int* obstacles = new int[360];
rpatelpj 8:bfa4bf23522c 12 int trajectoryLength = 0;
abh15 9:552805fac195 13 int* trajectory = new int[0];
rpatelpj 18:7ed985584ec7 14 uint32_t lidarDistance = 0;
rpatelpj 20:d9a373fecd42 15 volatile bool useImu = false;
rpatelpj 17:e1a5d25218de 16
rpatelpj 17:e1a5d25218de 17 void getLidarDistance() {
rpatelpj 17:e1a5d25218de 18 DevI2C* lidarDevice = new DevI2C(p28, p27);
rpatelpj 17:e1a5d25218de 19 XNucleo53L0A1* lidarBoard = XNucleo53L0A1::instance(lidarDevice, A2, D8, D2);
rpatelpj 17:e1a5d25218de 20 DigitalOut _lidarShdn(p26);
rpatelpj 17:e1a5d25218de 21 _lidarShdn = 0;
abh15 19:41d0cc14edc5 22 Thread::wait(100);
rpatelpj 17:e1a5d25218de 23 _lidarShdn = 1;
abh15 19:41d0cc14edc5 24 Thread::wait(100);
rpatelpj 17:e1a5d25218de 25 int status = lidarBoard->init_board();
rpatelpj 17:e1a5d25218de 26 while (status) {
rpatelpj 17:e1a5d25218de 27 status = lidarBoard->init_board();
rpatelpj 17:e1a5d25218de 28 }
rpatelpj 17:e1a5d25218de 29 while(1) {
rpatelpj 17:e1a5d25218de 30 if (!useImu) {
rpatelpj 17:e1a5d25218de 31 lidarBoard->sensor_centre->get_distance(&lidarDistance);
rpatelpj 17:e1a5d25218de 32 }
rpatelpj 17:e1a5d25218de 33 }
rpatelpj 17:e1a5d25218de 34 }
rpatelpj 0:66b7ea9af0dc 35
rpatelpj 0:66b7ea9af0dc 36 int main() {
rpatelpj 8:bfa4bf23522c 37 delete []trajectory;
rpatelpj 5:77c6821ae418 38 DataDistributor dataDistributor;
rpatelpj 17:e1a5d25218de 39 RobotController robotController(p21, p15, p16, p22, p18, p19, p13, p14, p28, p27);
rpatelpj 17:e1a5d25218de 40 lidarThread.start(getLidarDistance);
rpatelpj 3:1dce1ba5b8bd 41
abh15 10:8f4183d640d8 42 while(1) {
abh15 10:8f4183d640d8 43 robotController.detectObstacles();
abh15 10:8f4183d640d8 44 dataDistributor.transmitObstacles();
rpatelpj 8:bfa4bf23522c 45 dataDistributor.receiveTrajectory();
abh15 10:8f4183d640d8 46 robotController.followTrajectory();
abh15 10:8f4183d640d8 47 }
rpatelpj 0:66b7ea9af0dc 48 }