EB
Dependencies: mbed TCS3200 VL53L0X
main.cpp
- Committer:
- kirill164
- Date:
- 2020-01-31
- Revision:
- 0:be724809b234
File content as of revision 0:be724809b234:
#include "mbed.h" #include "VL53L0X.h" #include "TCS3200.h" ////////////////////// Переменные для драйверов моторов. DigitalOut M1inA(PC_7); DigitalOut M1inB(PA_6); DigitalOut M1pwm(PB_6); DigitalOut M2inA(PA_12); DigitalOut M2inB(PA_11); DigitalOut M2pwm(PB_12); DigitalOut M12inA(PC_9); DigitalOut M12inB(PC_8); DigitalOut M12pwm(PA_7); int a = 1; #define ON 1; #define OFF 0; #define mPWM a; ///////////////////////Переменные для дальномеров. I2C i2c(D14, D15); VL53L0X vl_sensor(&i2c); DigitalOut vl_shutdown(PA_10); #define SDA_pin D14 #define SCL_pin D15 ///////////////////////////////////////////////////////// Serial pc(SERIAL_TX, SERIAL_RX); ////////////////////////// Для дальномеров. void VL53L0X() { pc.printf("Single VL53L0X\n\n\r"); vl_shutdown = 1; //turn VL53L0X on vl_sensor.init(); vl_sensor.setModeContinuous(); vl_sensor.startContinuous(); for(int VL = 0; VL <= 5; VL++) { pc.printf("%4imm\n\r", vl_sensor.getRangeMillimeters()); } } ////////////////////////////////////Для датчиков цвета. TCS3200 color(PH_0, PH_1, PC_2, PC_3, PA_15); // S0 S1 S2 S3 OUT void colors() { long red, green, blue, clear; //Set the scaling factor to 100% color.SetMode(TCS3200::SCALE_100); for(int TC = 0; TC <= 1; TC++) { //Read the HIGH pulse width in nS for each color. //The lower the value, the more of that color is detected red = color.ReadRed(); green = color.ReadGreen(); blue = color.ReadBlue(); clear = color.ReadClear(); printf("RED: %10d \n GREEN: %10d \n BLUE: %10d \n CLEAR: %10d \n_____________\n ", red, green, blue, clear); wait(0.1); } } ////////////////////////////////////Для драйверов моторов. void rotate_right() { M1inA = ON; M1inB = OFF; M1pwm = mPWM; //motor 1 M2inA = ON; M2inB = OFF; M2pwm = mPWM; //motor 2 M12inA = ON; M12inB = OFF; M12pwm = mPWM; //motor 3 pc.printf("\n rotate right \n"); } void rotate_left() { M1inA = OFF; M1inB = ON; M1pwm = mPWM; //motor 1 M2inA = OFF; M2inB = ON; M2pwm = mPWM; //motor 2 M12inA = OFF; M12inB = ON; M12pwm = mPWM; //motor 3 pc.printf("\n rotate left \n"); } void up() { M1inA = OFF; M1inB = ON; M1pwm = mPWM; //motor 1 M2inA = ON; M2inB = OFF; M2pwm = mPWM; //motor 2 M12inA = OFF; M12inB = ON; M12pwm = OFF; //motor 3 pc.printf("\n up \n"); } void left() { M1inA = ON; M1inB = OFF; M1pwm = mPWM; //motor 1 M2inA = OFF; M2inB = ON; M2pwm = OFF; //motor 2 M12inA = OFF; M12inB = ON; M12pwm = mPWM; //motor 3 pc.printf("\n left \n"); } void right() { M1inA = ON; M1inB = OFF; M1pwm = OFF; //motor 1 M2inA = OFF; M2inB = ON; M2pwm = mPWM; //motor 2 M12inA = ON; M12inB = OFF; M12pwm = mPWM; //motor 3 pc.printf("\n right \n"); } ///////////////////////////////////////////////////////////// int main() { while(1) { rotate_right(); VL53L0X(); colors(); wait(5); rotate_left(); VL53L0X(); colors(); wait(5); up(); VL53L0X(); colors(); wait(5); left(); VL53L0X(); colors(); wait(5); right(); VL53L0X(); colors(); } }