Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed TCS3472_I2C VL6180
Revision 0:22fc25c6238e, committed 2018-12-17
- Comitter:
- xinzhizhulaoban
- Date:
- Mon Dec 17 04:53:52 2018 +0000
- Commit message:
- MBED source
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TCS3472_I2C.lib Mon Dec 17 04:53:52 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/karlmaxwell67/code/TCS3472_I2C/#6d5bb4ad7d6e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VL6180.lib Mon Dec 17 04:53:52 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/teams/B29VS-SysProj-Group-5-Element/code/VL6180/#82297674d72d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Mon Dec 17 04:53:52 2018 +0000
@@ -0,0 +1,430 @@
+#include "mbed.h"
+#include "TCS3472_I2C.h"
+#include "VL6180.h"
+DigitalOut distance_over(p24);
+DigitalOut start_Digital_Tube(p15);
+DigitalOut start_LED(p16);
+DigitalOut start_question1(p18);
+DigitalOut start_question2(p19);
+DigitalIn result1_led(p7);
+DigitalIn result2_led(p8);
+DigitalIn result1_Digital_Tube(p11);
+DigitalIn result2_Digital_Tube(p12);
+DigitalIn result1_question(p13);
+DigitalIn result2_question(p14);
+VL6180 TOF_sensor(p28, p27);
+TCS3472_I2C rgb_sensor(p9, p10);
+DigitalOut color1(p21);
+DigitalOut color2(p22);
+DigitalOut start_good_supply(p17);
+DigitalIn color_over(p23);
+DigitalOut servo_test(p20);
+DigitalIn infrared1(p25);
+DigitalIn infrared3(p26);
+DigitalIn infrared2(p29);
+DigitalIn infrared4(p30);
+
+
+Serial pc(USBTX, USBRX);
+
+int main()
+{
+ int game_count;
+ int distance_count;
+ int good_shut_down;
+ int Digital_Tube,LED,QUESTION1,QUESTION2;
+ uint8_t dist; //distance
+ int count_color;
+ char a;
+ float R,G,B;
+ TOF_sensor.VL6180_Init();
+ int rgb_readings[4]; //color
+ int user,maintance;
+ rgb_sensor.enablePowerAndRGBC();
+ rgb_sensor.setIntegrationTime(100);
+while(1)
+{
+ Digital_Tube=0;
+ LED=0;
+ QUESTION1=0;
+ QUESTION2=0;
+ start_Digital_Tube=0;
+ start_LED=0;
+ start_question1=0;
+ start_question2=0;
+ start_good_supply=0;
+ servo_test=0;
+ color1=0;
+ color2=0;
+ good_shut_down=0;
+ distance_over=0;
+ distance_count=0;
+ game_count=0;
+
+ while(1)
+ {
+ a=pc.getc();
+ if(a=='9')
+ {
+ break;
+ }
+ }
+
+ while(1)
+ {
+ dist = TOF_sensor.getDistance(); //always reading the data of distance
+ if(dist>=100 && dist<255)
+ {
+ distance_over=0;
+ pc.printf("10");
+ break;
+ }
+ else
+ {
+ distance_over=1;
+ }
+ }
+ while(1)
+ {
+ a=pc.getc();
+ if(a=='2') //if the mbed get the signal to read card
+ {
+ while(1)
+ {
+ //identify the card
+ if(infrared1==1 && infrared2==1 && infrared3==1 && infrared4==1)
+ {
+ user=0;
+ maintance=1;
+ pc.printf("0");
+ break;
+ }
+ else
+ {
+ user=1;
+ maintance=0;
+ pc.printf("1");
+ break;
+ }
+ }
+ break;
+ }
+ if(a=='7')
+ {
+ break;
+ }
+ }
+ while(user==1 && maintance==0)
+ {
+ while(1)
+ {
+ a=pc.getc();
+ if(a=='7')
+ {
+ break;
+ }
+ if(a=='8')
+ {
+ Digital_Tube=1;
+ break;
+ }
+ if(a=='9')
+ {
+ LED=1;
+ break;
+ }
+ if(a=='5')
+ {
+ QUESTION1=1;
+ break;
+ }
+ if(a=='6')
+ {
+ QUESTION2=1;
+ break;
+ }
+ }
+ if(Digital_Tube==1 && LED==0 && QUESTION1==0 && QUESTION2==0)
+ {
+ start_Digital_Tube=1;
+ while(1)
+ {
+ game_count=game_count+1;
+ dist = TOF_sensor.getDistance();
+ if(dist<=100 || dist>=200)
+ {
+ distance_over=1;
+ distance_count=distance_count+1;
+ if(distance_count==1000)
+ {
+ break;
+ }
+ }
+ else
+ {
+ distance_over=0;
+ distance_count=0;
+ }
+ if(result1_Digital_Tube==1 && result2_Digital_Tube==0)
+ {
+ pc.printf("1");
+ start_Digital_Tube=0;
+ break;
+ }
+ if(result1_Digital_Tube==0 && result2_Digital_Tube==1)
+ {
+ pc.printf("0");
+ start_Digital_Tube=0;
+ break;
+ }
+ if(game_count==4000)
+ {
+ game_count=0;
+ pc.printf("long time without operating");
+ break;
+ }
+ }
+ }
+ if(Digital_Tube==0 && LED==1 && QUESTION1==0 && QUESTION2==0)
+ {
+ start_LED=1;
+ while(1)
+ {
+ game_count=game_count+1;
+ dist = TOF_sensor.getDistance();
+ if(dist<=100 || dist>=200)
+ {
+ distance_over=1;
+ distance_count=distance_count+1;
+ if(distance_count==1000)
+ {
+ break;
+ }
+ }
+ else
+ {
+ distance_over=0;
+ distance_count=0;
+ }
+ if(result1_led==1 && result2_led==0)
+ {
+ pc.printf("1");
+ start_LED=0;
+ break;
+ }
+ if(result1_led==0 && result2_led==1)
+ {
+ pc.printf("0");
+ start_LED=0;
+ break;
+ }
+ if(game_count==4000)
+ {
+ game_count=0;
+ pc.printf("long time without operating");
+ break;
+ }
+ }
+ }
+ if(Digital_Tube==0 && LED==0 && QUESTION1==1 && QUESTION2==0)
+ {
+ start_question1=1;
+ start_question2=0;
+ while(1)
+ {
+ game_count=game_count+1;
+ dist = TOF_sensor.getDistance();
+ if(dist<=100 && dist>=200)
+ {
+ distance_over=1;
+ distance_count=distance_count+1;
+ if(distance_count==1000)
+ {
+ break;
+ }
+ }
+ else
+ {
+ distance_over=0;
+ distance_count=0;
+ }
+ if(result1_question==1 && result2_question==0)
+ {
+ pc.printf("1");
+ start_question1=0;
+ break;
+ }
+ if(result1_question==0 && result2_question==1)
+ {
+ pc.printf("0");
+ start_question1=0;
+ break;
+ }
+ if(game_count==4000)
+ {
+ game_count=0;
+ pc.printf("long time without operating");
+ break;
+ }
+ }
+ }
+ if(Digital_Tube==0 && LED==0 && QUESTION1==0 && QUESTION2==1)
+ {
+ start_question1=0;
+ start_question2=1;
+ while(1)
+ {
+ game_count=game_count+1;
+ dist = TOF_sensor.getDistance();
+ if(dist<=100 || dist>=200)
+ {
+ distance_over=1;
+ distance_count=distance_count+1;
+ if(distance_count==1000)
+ {
+ break;
+ }
+ }
+ else
+ {
+ distance_over=0;
+ distance_count=0;
+ }
+ if(result1_question==1 && result2_question==0)
+ {
+ pc.printf("1");
+ start_question1=0;
+ start_question2=0;
+ break;
+ }
+ if(result1_question==0 && result2_question==1)
+ {
+ pc.printf("0");
+ start_question1=0;
+ start_question2=0;
+ break;
+ }
+ if(game_count==4000)
+ {
+ game_count=0;
+ pc.printf("long time without operating");
+ break;
+ }
+ }
+ }
+ break;
+ }
+ while(user==0 && maintance==1)
+ {
+ a=pc.getc();
+ if(a=='3')
+ {
+ start_Digital_Tube=1;
+ start_LED=1;
+ start_question1=1;
+ wait(10);
+ start_Digital_Tube=0;
+ start_LED=0;
+ start_question1=0;
+ }
+ if(a=='4')
+ {
+ servo_test=1;
+ wait(10);
+ servo_test=0;
+ }
+ if(a=='5')
+ {
+ dist = TOF_sensor.getDistance();
+ rgb_sensor.getAllColors(rgb_readings);
+ pc.printf("The distance are %d and the color are Red %d Green %d Blue %d\n",dist,rgb_readings[1],rgb_readings[2],rgb_readings[3]);
+ }
+ if(a=='6')
+ {
+ while(1)
+ {
+ count_color=0;
+ R=0;
+ G=0;
+ B=0;
+ color1=0;
+ color2=0;
+ start_good_supply=0;
+ while(1)
+ {
+ count_color=count_color+1;
+ rgb_sensor.getAllColors(rgb_readings);
+ R=R+rgb_readings[1];
+ G=G+rgb_readings[2];
+ B=B+rgb_readings[3];
+ if(count_color>=10)
+ {
+ R=R/10;
+ G=G/10;
+ B=B/10;
+ break;
+ }
+ }
+ start_good_supply=1;
+ if((R-B)>=100 && (G-B)>=100 && R>G)
+ {
+ color1=0;
+ color2=1;
+ while(1)
+ {
+ if(color_over==1)
+ {
+ start_good_supply=0;
+ wait(2);
+ break;
+ }
+ }
+ }
+ else if((R-B)>=100 && (R-G)>=100 && (G-B)<=100)
+ {
+ color1=1;
+ color2=0;
+ while(1)
+ {
+ if(color_over==1)
+ {
+ start_good_supply=0;
+ wait(2);
+ break;
+ }
+ }
+ }
+ else if((G-R)>=70 && (G-B)>=100)
+ {
+ color1=1;
+ color2=1;
+ while(1)
+ {
+ if(color_over==1)
+ {
+ start_good_supply=0;
+ wait(2);
+ break;
+ }
+ }
+ }
+ else
+ {
+ good_shut_down=good_shut_down+1;
+ if(good_shut_down==5)
+ {
+ good_shut_down=0;
+ break;
+ }
+ }
+ }
+ }
+ if(a=='7')
+ {
+ break;
+ }
+
+ }
+}
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Dec 17 04:53:52 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/3a7713b1edbc \ No newline at end of file