Robot team project
Dependencies: QEI Motordriver ros_lib_melodic
main.cpp
- Committer:
- florine_van
- Date:
- 2019-10-22
- Revision:
- 5:8ef79eebbc97
- Parent:
- 4:cb50c6fa340b
- Child:
- 6:858a5116688e
File content as of revision 5:8ef79eebbc97:
#include "mbed.h" #include "Sensor.h" #include "Motor.h" // Set up serial to pc Serial pc(SERIAL_TX, SERIAL_RX); // Set up I²C on the STM32 NUCLEO-401RE #define addr1 (0x29) #define addr2 (0x2A) #define addr3 (0x2B) #define addr4 (0x2C) // VL6180x sensors Sensor sensor1(I2C_SDA, I2C_SCL, PC_9); Sensor sensor2(I2C_SDA, I2C_SCL, PC_11); Sensor sensor3(I2C_SDA, I2C_SCL, PD_2); Sensor sensor4(I2C_SDA, I2C_SCL, PG_3); // Motors Motor motor1(PC_6, PB_15, PB_13); Motor motor2(PA_15, PC_7, PB_4); void CheckObstacle() { // BY DEFAULT, WHEN OBSTACLE, TURN TO THE RIGHT // When obstacle ahead if ( (sensor1.getIsObstacle())) { //Turn to the right motor1.turnRight(); motor2.turnRight(); } // When obstacle ahead and to the right else if ( (sensor1.getIsObstacle()) && (sensor2.getIsObstacle()) ) { //Turn to the left motor1.turnLeft(); motor2.turnLeft(); } // No obstacle else { motor1.moveForward(); motor2.moveForward(); } } int main() { int range1; int range2; int range3; int range4; // load settings onto VL6180X sensors sensor2.init(); // change default address of sensor 2 sensor2.changeAddress(addr2); sensor3.init(); // change default address of sensor 3 sensor3.changeAddress(addr3); sensor4.init(); // change default address of sensor 4 sensor4.changeAddress(addr4); sensor1.init(); while (1) { range1 = sensor1.read(); range2 = sensor2.read(); range3 = sensor3.read(); range4 = sensor4.read(); pc.printf("Range one = %d | range two = %d | range three = %d | range four = %d\r\n",range1, range2, range3, range4); // TODO : better name for this method ?? CheckObstacle(); wait_ms(10); } }