#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;
}
}
}