programme à analyser pendant le cours théorique

Dependencies:   X_NUCLEO_6180XA1 mbed

Fork of 247-436-M1-S2-LAB-F302R8 by Yves Roy

Revision:
3:b115775ee641
Parent:
1:90cc91745ff7
Child:
4:8c64f7896cbf
--- a/main.cpp	Fri Feb 02 10:48:59 2018 +0000
+++ b/main.cpp	Fri Feb 02 11:44:13 2018 +0000
@@ -5,6 +5,42 @@
 #include <stdio.h>
 #include <assert.h>
 
+//BRANCHEMENTS:
+// Ni le Nucleo ni le vl6180x n'ont de "pullup" pour supporter le I2C.
+// Il faut ajouter des résistances de 4.7k
+// Le vl6180x contient un microcontôleur qui doit être remis à zéro au démarrage
+// Cette remise à zéro se fait en mettant temporairement la broche gpio à la masse.
+// Un schéma de connexion sommaire suit:
+//    __________
+//   | VL6180X  |                    
+//   |          |
+//   scl sda  gnd
+//   nc  gpio 3.3v
+//   |__________|
+
+//   _______________________
+//  |                       |
+//  |    NUCLEO f302r8      |
+//  | oo                 oo | 
+//  | oo             scl-oo |
+//  | oo             sda-oo |
+//  | oo                 oo |
+//  | oo             gnd-oo |
+//  | oo                 oo |
+//  | oo            gpio-oo |
+//  | oo-3.3V            oo |
+             ...
+//  | oo                 oo |
+//  | cn7              cn10 | 
+//  |_______________________|
+
+// connexions:
+// vl6180x.3.3v <------> nucleo.3.3V
+// Vl6180x.scl <--------> nucleo.scl <-----> 4.7k <------> 3.3v  (pullup requise)
+// Vl6180x.sda <--------> nucleo.sda <-----> 4.7k <------> 3.3v  (pullup requise)
+// VL6180X.gpio <-------> nucleo.gpio (requis pour faire un "reset" du vl6180x au début)
+
+
 //options de compilation
 //#define TEST
 
@@ -128,11 +164,11 @@
 static XNucleo6180XA1 *board = NULL;
 uint32_t dist;
 
-
 //integration
 #ifdef TEST
     Serial pc(USBTX, USBRX, 9600); //SERIAL_TX, SERIAL_RX, 9600);
 #endif
+
 DigitalOut myled(LED1);
 uint16_t couleurVariable;
 uint16_t tableDeCouleur[]=
@@ -374,6 +410,7 @@
 
 uint16_t determineLaCouleur(void)
 {
+
     board->sensor_top->get_distance(&dist);
     if (dist > 210) //en millimetres
     {
@@ -382,6 +419,7 @@
 //    board->sensor_top->get_lux(&lux);
         
         return tableDeCouleur[(int)(dist/30)];
+    return tableDeCouleur[2];
 }
 
 int main()
@@ -396,9 +434,12 @@
 uint32_t lux;
 
 DevI2C *device_i2c = new DevI2C(VL6180X_I2C_SDA, VL6180X_I2C_SCL);
+
+
 //variables locales pour l'integration
 uint32_t mode;
 
+
 //initialisation du touchscreen
     restoreXY();