mbed_project

#include "mbed.h"
#include "MCP23017.h"
#include "WattBob_TextLCD.h"
#include "TCS3472_I2C.h"
#include "stdint.h"
#include "VL6180.h"

#define     BACK_LIGHT_ON(INTERFACE)    INTERFACE->write_bit(1,BL_BIT)
#define     BACK_LIGHT_OFF(INTERFACE)   INTERFACE->write_bit(0,BL_BIT)
#define IDENTIFICATIONMODEL_ID 0x0000
MCP23017            *par_port;
WattBob_TextLCD     *lcd;

TCS3472_I2C rgb_sensor(p9, p10);
VL6180  TOF_sensor(p28, p27);
DigitalIn Ain(p21);
DigitalIn Bin(p22);
DigitalIn Cin(p23);
DigitalIn Din(p24);

Serial      pc(USBTX, USBRX);

int main() 
{
    
    uint8_t dist;
    
    TOF_sensor.VL6180_Init();
    par_port = new MCP23017(p9, p10, 0x40);
    par_port->config(0x0F00, 0x0F00, 0x0F00);           // configure MCP23017 chip on WattBob

    //lcd = new WattBob_TextLCD(par_port);

    BACK_LIGHT_ON(par_port);


    int rgb_readings[4];
    
    rgb_sensor.enablePowerAndRGBC();
    rgb_sensor.setIntegrationTime(100);
    
    
    
    
    char c = '1';

    while(1)
    {
        c = pc.getc();
        if(c == '1')
        {
            
            if(Ain==1)
                pc.printf("1");
            if(Bin==1)
                pc.printf("2");
            if(Cin==1)
                pc.printf("3");
            if(Din==1)
                pc.printf("4");
        }
        if(c == '2')
            break;
        
    }


    while(1)
    {
        c = pc.getc();
        if(c == 's')
        {
            dist = TOF_sensor.getDistance();
            dist /= 10;
            pc.printf("%d", dist);
        }
        if(c == 'o')
            break;
    }

    

    while(1)
    {
        c = pc.getc();
        if(c == 'a')
        {      
            rgb_sensor.getAllColors(rgb_readings);

            if(rgb_readings[1]>rgb_readings[2]&&rgb_readings[1]>rgb_readings[3])
            {
                pc.printf("r");
                continue;
            }

                      
            if(rgb_readings[2]>rgb_readings[1]&&rgb_readings[2]>rgb_readings[3])
            {
                pc.printf("g");
                continue;
            }
                
            if(rgb_readings[3]>rgb_readings[1]&&rgb_readings[3]>rgb_readings[2])
            {
                pc.printf("b");
                continue;
            }
        }

        if(c == 'b')
        {
            break;
        }
        
    }

    
}
#include "mbed.h"
#include "MCP23017.h"
#include "WattBob_TextLCD.h"
#include "TCS3472_I2C.h"
#include "stdint.h"
#include "VL6180.h"

#define     BACK_LIGHT_ON(INTERFACE)    INTERFACE->write_bit(1,BL_BIT)
#define     BACK_LIGHT_OFF(INTERFACE)   INTERFACE->write_bit(0,BL_BIT)
#define IDENTIFICATIONMODEL_ID 0x0000
MCP23017            *par_port;
WattBob_TextLCD     *lcd;

TCS3472_I2C rgb_sensor(p9, p10);
VL6180  TOF_sensor(p28, p27);
DigitalIn Ain(p21);
DigitalIn Bin(p22);
DigitalIn Cin(p23);
DigitalIn Din(p24);

Serial      pc(USBTX, USBRX);

int main() 
{
    
    uint8_t dist;
    
    TOF_sensor.VL6180_Init();
    par_port = new MCP23017(p9, p10, 0x40);
    par_port->config(0x0F00, 0x0F00, 0x0F00);           // configure MCP23017 chip on WattBob

    //lcd = new WattBob_TextLCD(par_port);

    BACK_LIGHT_ON(par_port);


    int rgb_readings[4];
    
    rgb_sensor.enablePowerAndRGBC();
    rgb_sensor.setIntegrationTime(100);
    
    
    
    
    char c = '1';

    while(1)
    {
        c = pc.getc();
        if(c == '1')
        {

            if(Ain==0&&Bin==0&&Cin==0&&Din==0)
                pc.printf("1");
            if(Ain==0&&Bin==0&&Cin==0&&Din==1)
                pc.printf("2");
            if(Ain==0&&Bin==0&&Cin==1&&Din==0)
                pc.printf("3");
            if(Ain==0&&Bin==0&&Cin==1&&Din==1)
                pc.printf("4");
            if(Ain==0&&Bin==1&&Cin==0&&Din==0)
                pc.printf("5");
            if(Ain==0&&Bin==1&&Cin==0&&Din==1)
                pc.printf("6");
            if(Ain==0&&Bin==1&&Cin==1&&Din==0)
                pc.printf("7");
            if(Ain==0&&Bin==1&&Cin==1&&Din==1)
                pc.printf("8");
            if(Ain==1&&Bin==0&&Cin==0&&Din==0)
                pc.printf("9");
            if(Ain==1&&Bin==0&&Cin==0&&Din==1)
                pc.printf("10");
            if(Ain==1&&Bin==0&&Cin==1&&Din==0)
                pc.printf("11");
            if(Ain==1&&Bin==0&&Cin==1&&Din==1)
                pc.printf("12");
            if(Ain==1&&Bin==1&&Cin==0&&Din==0)
                pc.printf("13");
            if(Ain==1&&Bin==1&&Cin==0&&Din==1)
                pc.printf("14");
            if(Ain==1&&Bin==1&&Cin==1&&Din==0)
                pc.printf("15");
            if(Ain==1&&Bin==1&&Cin==1&&Din==1)
                pc.printf("16");
        }
        if(c == '2')
            break;
        
    }


    while(1)
    {
        c = pc.getc();
        if(c == 's')
        {
            dist = TOF_sensor.getDistance();
            dist /= 10;
            pc.printf("%d", dist);
        }
        if(c == 'o')
            break;
    }

    

    while(1)
    {
        c = pc.getc();
        if(c == 'a')
        {      
            rgb_sensor.getAllColors(rgb_readings);

            if(rgb_readings[1]>rgb_readings[2]&&rgb_readings[1]>rgb_readings[3])
            {
                pc.printf("r");
                continue;
            }

                      
            if(rgb_readings[2]>rgb_readings[1]&&rgb_readings[2]>rgb_readings[3])
            {
                pc.printf("g");
                continue;
            }
                
            if(rgb_readings[3]>rgb_readings[1]&&rgb_readings[3]>rgb_readings[2])
            {
                pc.printf("b");
                continue;
            }
        }

        if(c == 'b')
        {
            break;
        }
        
    }

    
}

猜你喜欢

转载自www.cnblogs.com/ronnielee/p/9991143.html
今日推荐