with the tof code
Dependencies: mbed Servo ros_lib_kinetic
Diff: main.cpp
- Revision:
- 4:36a04230554d
- Parent:
- 3:df6160e2f6d9
- Child:
- 5:bc5081f0c063
--- a/main.cpp Thu Oct 24 14:37:51 2019 +0000 +++ b/main.cpp Thu Nov 07 15:31:52 2019 +0000 @@ -4,61 +4,43 @@ --------------------------------------------------------------------------------*/ #include "mbed.h" #include "TOF.h" +#include "Motor.h" +#include "power.h" Serial pc(SERIAL_TX, SERIAL_RX, 9600); // set-up serial to pc //TOF chip shutdown signals -DigitalOut TOF1(PC_8); -DigitalOut TOF3(PC_10); -DigitalOut TOF5(PC_12); -DigitalOut TOF7(PG_2); - -cAdafruit_VL6180X VL6180X(TOF1,TOF3,TOF5,TOF7); //Define TOF sensor class and initialise devices +DigitalOut TOF1(PC_8); +DigitalOut TOF4(PC_11); +DigitalOut TOF6(PC_12); +DigitalOut TOF7(PD_2); -/*-------------------------------------------------------------------------------- -Function name: ServiceTOF -Input Parameters: address - address of target TOF sensor -Output Parameters: range - distance measurement in mm -Description: performs measurement routine on a given sensor -----------------------------------------------------------------------------------*/ -uint8_t serviceTOF(uint8_t address){ - - uint8_t range = 0; - - // poll the VL6180X till new sample ready - VL6180X.Poll_Range(address); +//Class define +cAdafruit_VL6180X VL6180X(TOF1,TOF4,TOF6,TOF7); //Define TOF sensor class and initialise devices +cPower cPower(VBATT, V5, V3); - // read range result - range = VL6180X.Read_Range(address); - - // clear the interrupt on VL6180X - VL6180X.Clear_Interrupts(address); - - return range; -} - -/*-------------------------------------------------------------------------------- -Function name: main -Input Parameters: N/A -Output Parameters: N/A -Description: Main programming loop -----------------------------------------------------------------------------------*/ int main() { - uint8_t TOFRange[4]; //Array to store TOF measurements 0-sensor1, 1-sensor3, 2-sensor5, 3-sensor7 + uint8_t TOFRange[4]; //Array to store TOF measurements 0-sensor1, 1-sensor4, 2-sensor6, 3-sensor7 + float power_levels[3]; //Array to voltage levels while(1) { //Perform TOF measurements - TOFRange[0] = serviceTOF(ADDR1); - TOFRange[1] = serviceTOF(ADDR2); - TOFRange[2] = serviceTOF(ADDR3); - TOFRange[3] = serviceTOF(ADDR4); - + TOFRange[0] = serviceTOF(VL6180X, ADDR1); + TOFRange[1] = serviceTOF(VL6180X, ADDR4); + TOFRange[2] = serviceTOF(VL6180X, ADDR6); + TOFRange[3] = serviceTOF(VL6180X, ADDR7); + + Check_for_obstacles(TOFRange); + //Send range to pc by serial - pc.printf("TOF1:%d TOF3: %d TOF5: %d TOF7: %d\r\n", TOFRange[0], TOFRange[1], TOFRange[2],TOFRange[3]); + //pc.printf("TOF1:%d TOF3: %d TOF5: %d TOF7: %d\r\n", TOFRange[0], TOFRange[1], TOFRange[2],TOFRange[3]); - //Short delay - wait(0.1); + power_levels[0] = cPower.monitor_battery(); + power_levels[1] = cPower.monitor_5v_line(); + power_levels[2] = cPower.monitor_3v3_line(); + printf("BATT:%4.2f, 5V:%4.2f, 3v3:%4.2f\n\r", power_levels[0], power_levels[1], power_levels[2]); + } } \ No newline at end of file