Dependencies:   TCS3200 X_NUCLEO_53L0A1 mbed

Committer:
kenken0721
Date:
Fri Mar 23 13:36:00 2018 +0000
Revision:
0:dd84da3761e1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenken0721 0:dd84da3761e1 1 #include "mbed.h"
kenken0721 0:dd84da3761e1 2 #include "XNucleo53L0A1.h"
kenken0721 0:dd84da3761e1 3 #include "TCS3200.h"
kenken0721 0:dd84da3761e1 4 #include <stdio.h>
kenken0721 0:dd84da3761e1 5
kenken0721 0:dd84da3761e1 6 #define VL53L0_I2C_SDA D4
kenken0721 0:dd84da3761e1 7 #define VL53L0_I2C_SCL D5
kenken0721 0:dd84da3761e1 8
kenken0721 0:dd84da3761e1 9 #define NOT_RECEIVE 0
kenken0721 0:dd84da3761e1 10 #define RED_RECEIVE 1
kenken0721 0:dd84da3761e1 11 #define BLUE_RECEIVE 2
kenken0721 0:dd84da3761e1 12 #define YELLOW_RECIEVE 3
kenken0721 0:dd84da3761e1 13
kenken0721 0:dd84da3761e1 14
kenken0721 0:dd84da3761e1 15 TCS3200 color(PB_5, PB_2, PC_4);//カラーセンサ
kenken0721 0:dd84da3761e1 16 static XNucleo53L0A1 *board=NULL;
kenken0721 0:dd84da3761e1 17 int count = 0;
kenken0721 0:dd84da3761e1 18 int red_count = 0;
kenken0721 0:dd84da3761e1 19 int blue_count = 0;
kenken0721 0:dd84da3761e1 20 int mode = NOT_RECEIVE;
kenken0721 0:dd84da3761e1 21
kenken0721 0:dd84da3761e1 22 int main(){
kenken0721 0:dd84da3761e1 23 long red, green, blue, clear;
kenken0721 0:dd84da3761e1 24 int status;
kenken0721 0:dd84da3761e1 25 uint32_t distance;
kenken0721 0:dd84da3761e1 26 DevI2C *device_i2c = new DevI2C(VL53L0_I2C_SDA, VL53L0_I2C_SCL);
kenken0721 0:dd84da3761e1 27 board = XNucleo53L0A1::instance(device_i2c, A2, D8, D2);
kenken0721 0:dd84da3761e1 28 status = board->init_board();
kenken0721 0:dd84da3761e1 29 if (status) {
kenken0721 0:dd84da3761e1 30 printf("Failed to init board!\r\n");
kenken0721 0:dd84da3761e1 31 return 0;
kenken0721 0:dd84da3761e1 32 }
kenken0721 0:dd84da3761e1 33 while (1) {
kenken0721 0:dd84da3761e1 34 status = board->sensor_centre->get_distance(&distance);
kenken0721 0:dd84da3761e1 35 red = color.ReadRed();
kenken0721 0:dd84da3761e1 36 blue = color.ReadBlue();
kenken0721 0:dd84da3761e1 37 clear = color.ReadClear();
kenken0721 0:dd84da3761e1 38 if(clear <= 30 && distance <= 1000){
kenken0721 0:dd84da3761e1 39 count++;
kenken0721 0:dd84da3761e1 40 }
kenken0721 0:dd84da3761e1 41 if(count >= 1000){
kenken0721 0:dd84da3761e1 42 if(red <= 40 && green >= 80 && blue >= 70){
kenken0721 0:dd84da3761e1 43 red_count++;
kenken0721 0:dd84da3761e1 44 }else if(red >= 80 && green >= 60 && blue <= 40){
kenken0721 0:dd84da3761e1 45 blue_count++;
kenken0721 0:dd84da3761e1 46 }
kenken0721 0:dd84da3761e1 47 count = 0;
kenken0721 0:dd84da3761e1 48 }
kenken0721 0:dd84da3761e1 49 if(red_count >= 1000 && distance >= 2000){
kenken0721 0:dd84da3761e1 50 mode = RED_RECEIVE;
kenken0721 0:dd84da3761e1 51 red_count = 0;
kenken0721 0:dd84da3761e1 52 }else if(blue_count >= 1000 && distance >= 2000){
kenken0721 0:dd84da3761e1 53 mode = BLUE_RECEIVE;
kenken0721 0:dd84da3761e1 54 blue_count = 0;
kenken0721 0:dd84da3761e1 55 }
kenken0721 0:dd84da3761e1 56 }
kenken0721 0:dd84da3761e1 57 }