Programme de test à priori fonctionnel avec la version 2018 de la carte

Dependencies:   PwmIn mbed Encoder_Nucleo_16_bits

Revision:
9:2d99e9946b89
Parent:
6:88b4805d33e1
Child:
10:c6db803927b6
--- a/main.cpp	Wed Apr 11 11:26:30 2018 +0000
+++ b/main.cpp	Wed Oct 23 09:30:24 2019 +0000
@@ -115,101 +115,102 @@
 /** Liste des PINs
  *
  * PIN MAP (ordre alphabetique) des PINs de la Nucléo 64 utilisée
- * PA_0    -> Pixy RX (Serial)
- * PA_1    -> Pixy TX (Serial)
- * PA_2    -> PC TX (Serial)
- * PA_3    -> PX RX (Serial)
- * PA_4    -> GP2 SD #2 (Analog In)
- * PA_5    -> LED1 (Digital Out)
- * PA_6    -> CNY3 (Analog In)
- * PA_7    -> CNY2 (Analog In)
- * PA_8    -> Servomoteur (PWM Out)
- * PA_9    -> US Trigger #3 (Digital Out)
- * PA_10   -> US Echo #1 (Pwm In)
- * PA_11   -> US Echo #2 (Pwm In)
- * PA_12   -> SS (SPI Slave Select) (Digital Out)
+ *
+ * PA_0    -> Pixy RX (Serial) -> OK
+ * PA_1    -> Pixy TX (Serial) -> OK
+ * PA_2    -> PC TX (Serial) -> OK
+ * PA_3    -> PX RX (Serial) -> OK
+ * PA_4    -> GP2 SD #2 (Analog In) -> OK
+ * PA_5    -> LED1 (Digital Out) -> OK
+ * PA_6    -> US D Echo (IRQ In) -> OK
+ * PA_7    -> CNY #1 (Analog In) -> OK
+ * PA_8    -> MotD PWM (PWM Out) -> OK
+ * PA_9    -> MotG PWM (PWM Out) -> OK
+ * PA_10   -> MotD speed (IRQ In) -> OK
+ * PA_11   -> MotG speed (IRQ In) -> OK
+ * PA_12   -> 
  * PA_13
  * PA_14
- * PA_15   -> Boussole (Pwm In)
+ * PA_15   -> Servomoteur (PWM Out) -> OK
  *
- * PB_0    -> GP2 SD #1 (Analog In)
- * PB_1    -> Position D (Pwm In)
- * PB_2    -> Position G (Pwm In)
- * PB_3    -> PWM Mot D (PWM Out)
- * PB_4    -> Enocdeur Droit A (QE)
- * PB_5    -> Enocdeur Droit B (QE)
- * PB_6    -> Enocdeur Gauche A (QE)
- * PB_7    -> Enocdeur Gauche B (QE)
- * PB_8    -> SCL (I2C)
- * PB_9    -> SDA (I2C)
- * PB_10   -> PWM Mot G (PWM Out)
+ * PB_0    -> GP2 SD #1 (Analog In) -> OK
+ * PB_1    -> Vbat (Analog In) -> OK
+ * PB_2    -> US G Echo (IRQ In) -> OK
+ * PB_3    -> SS G (Digital Out) -> OK
+ * PB_4    -> Enocdeur Droit A (QE) -> OK
+ * PB_5    -> Enocdeur Droit B (QE) -> OK
+ * PB_6    -> Enocdeur Gauche A (QE) -> OK
+ * PB_7    -> Enocdeur Gauche B (QE) -> OK
+ * PB_8    -> SCL (I2C) -> OK
+ * PB_9    -> SDA (I2C) -> OK
+ * PB_10   -> 
  * PB_11
- * PB_12   -> US Echo #3 (Pwm In)
- * PB_13   -> SCK Encodeur D (SPI)
- * PB_14   -> MISO Encodeur D (SPI)
- * PB_15   -> MOSI Encodeur D (SPI)
+ * PB_12   -> SS D (Digital Out) -> OK
+ * PB_13   -> US G Trig (Digital Out) -> OK
+ * PB_14   -> US F Trig (Digital Out) -> OK
+ * PB_15   -> US D Trig (Digital Out) -> OK
  *
- * PC_0    -> GP2 LD #1 (Analog In)
- * PC_1    -> GP2 LD #2 (Analog In)
- * PC_2    -> US Trigger #2 (Digital Out)
- * PC_3    -> US Trigger #1 (Digital Out)
- * PC_4    -> CNY1 (Analog In)
- * PC_5    -> Vbat (Analog In)
- * PC_6    -> Dir Mot Droit (Digital Out)
- * PC_7    -> I (Encodeur Gauche) (IRQ In)
- * PC_8    -> Dir Mot Gauche (Digital Out)
- * PC_9    -> Enable Moteurs (Digital Out)
- * PC_10   -> SCK Encodeur G (SPI)
- * PC_11   -> MISO Encodeur G (SPI)
- * PC_12   -> MOSI Encodeur G (SPI)
- * PC_13   -> User BP (IRQ In)
+ * PC_0    -> GP2 LD #1 (Analog In) -> OK
+ * PC_1    -> GP2 LD #2 (Analog In) -> OK
+ * PC_2    -> CNY #2 (Analog In) -> OK
+ * PC_3    -> CNY #3 (Analog In) -> OK
+ * PC_4    -> Boussole (Pwm In) -> OK
+ * PC_5    -> MotD IN2 (Digital Out) -> OK
+ * PC_6    -> MotD IN1 (Digital Out) -> OK
+ * PC_7    -> US F Echo (IRQ In) -> OK
+ * PC_8    -> MotG IN2 (Digital Out) -> OK
+ * PC_9    -> MotG IN1 (Digital Out) -> OK
+ * PC_10   -> SCK  (SPI) -> OK
+ * PC_11   -> MISO (SPI) -> OK
+ * PC_12   -> MOSI (SPI) -> OK
+ * PC_13   -> User BP (IRQ In) -> OK
  * PC_14
  * PC_15
  *
  * PD_1
- * PD_2    -> Led2 (Digital Out)
+ * PD_2    -> Led2 (Digital Out) -> OK
  */
 
 Serial      Pixy    (PA_0, PA_1, 230400);
 Serial      Pc      (PA_2, PA_3, 921600);
 
-AnalogIn    CNY1    (PC_4);
-AnalogIn    CNY2    (PA_7);
-AnalogIn    CNY3    (PA_6);
+AnalogIn    SD2     (PA_4);
+AnalogIn    CNY1    (PA_7);
+AnalogIn    SD1     (PB_0);
+AnalogIn    Vbat    (PB_1);
 AnalogIn    LD1     (PC_0);
 AnalogIn    LD2     (PC_1);
-AnalogIn    SD1     (PB_0);
-AnalogIn    SD2     (PA_4);
-AnalogIn    Vbat    (PC_5);
+AnalogIn    CNY2    (PC_2);
+AnalogIn    CNY3    (PC_3);
 
 DigitalOut  Led1    (PA_5);
+DigitalOut  SSG     (PB_3);
+DigitalOut  SSD     (PB_12);
+DigitalOut  Trig1   (PB_13);
+DigitalOut  Trig2   (PB_14);
+DigitalOut  Trig3   (PB_15);
 DigitalOut  Led2    (PD_2);
-DigitalOut  Trig1   (PC_3);
-DigitalOut  Trig2   (PC_2);
-DigitalOut  Trig3   (PA_9);
-DigitalOut  En      (PC_9);
-DigitalOut  SensG   (PC_8);
-DigitalOut  SensD   (PC_6);
-DigitalOut  SS      (PA_12);
+DigitalOut  IN1G    (PC_9);
+DigitalOut  IN2G    (PC_8);
+DigitalOut  IN1D    (PC_6);
+DigitalOut  IN2D    (PC_5);
 
-InterruptIn Echo1   (PA_10);
-InterruptIn Echo2   (PA_11);
-InterruptIn Echo3   (PB_12);
+InterruptIn Echo3   (PA_6);
+InterruptIn PWMD    (PA_10);
+InterruptIn PWMG    (PA_11);
+InterruptIn Echo1   (PB_2);
+InterruptIn Echo2   (PC_7);
 InterruptIn BP      (PC_13);
-InterruptIn IG      (PC_7);
-InterruptIn PWMG    (PB_2);
-InterruptIn PWMD    (PB_1);
+
+PwmIn       PWMB    (PC_4);
 
-PwmIn       PWMB    (PA_15);
-
-PwmOut      Pwm_MG  (PB_10);
-PwmOut      Pwm_MD  (PB_3);
-PwmOut      Servo   (PA_8);
+PwmOut      Pwm_MG  (PA_9);
+PwmOut      Pwm_MD  (PA_8);
+PwmOut      Servo   (PA_15);
 
 I2C         Bus_I2C (PB_9, PB_8);
 
-SPI         SPIG    (PC_12, PC_11, PC_10);
-SPI         SPID    (PB_15, PB_14, PB_13);
+SPI         mySPI   (PC_12, PC_11, PC_10);
 
 Nucleo_Encoder_16_bits  Gauche (TIM4);  // A = PB_6, B = PB_7
 Nucleo_Encoder_16_bits  Droite (TIM3);  // A = PB_4, B = PB_5
@@ -456,6 +457,7 @@
 
     int         MOTG_evol = 1, MOTD_evol = 1;
     double      MOTG_duty = 0.5, MOTD_duty = 0.5;
+    int         SensG = 1, SensD = 1;
 
     times.reset();
     times.start();
@@ -478,7 +480,6 @@
     Pixy.attach (&getPixyByte);
 
     BP.enable_irq();
-    IG.enable_irq();
     Echo1.enable_irq();
     Echo2.enable_irq();
     Echo3.enable_irq();
@@ -492,17 +493,18 @@
     // PWM des moteurs
     Pwm_MG.period_us(50);
     Pwm_MD.period_us(50);
-    En = 0;
-
+    IN1G = 0;
+    IN2G = 0;
+    IN1D = 0;
+    IN2D = 0;
+    
     // Bus SPI
-    SPIG.format (16,1);
-    SPIG.frequency (1000000);
+    mySPI.format (16,1);
+    mySPI.frequency (1000000);
 
-    SPID.format (16,1);
-    SPID.frequency (1000000);
-
-    SS = 1;
-
+    SSG = 1;
+    SSD = 1;
+    
     // Led
     Led2 = 0;
 
@@ -713,12 +715,14 @@
                 Pc.printf ("\n\n\rMoteur Gauche\n");
                 Pc.printf ("\rAppuyez sur Entree pour quitter\n");
 
-                En = 1;
-                SensG = 1;
+                if (SensG) {
+                    IN1G = 1;
+                    IN2G = 0;
+                } else {
+                    IN1G = 0;
+                    IN2G = 1;
+                }
                 Led2 = 1;
-                MOTG_duty = 0.5;
-                MOTG_evol = 1;
-                Pwm_MG = 0.5;
 
                 do {
                     if (FlagTickLed) {
@@ -755,9 +759,10 @@
                 } while(!Pc.readable());
                 MENU_choix = Pc.getc();
 
-                En = 0;
-                if (SensG == 0) Pwm_MG = 0;
-                else            Pwm_MG = 1;
+                IN1G = 0;
+                IN2G = 0;
+                Pwm_MG = 0;
+                Led2 = 0;
 
                 break;
 
@@ -765,12 +770,14 @@
                 Pc.printf ("\n\n\rMoteur Droit\n");
                 Pc.printf ("\rAppuyez sur Entree pour quitter\n");
 
-                En = 1;
-                SensD = 1;
+                if (SensD) {
+                    IN1D = 1;
+                    IN2D = 0;
+                } else {
+                    IN1D = 0;
+                    IN2D = 1;
+                }
                 Led2 = 1;
-                MOTD_duty = 0.5;
-                MOTD_evol = 1;
-                Pwm_MD = 0.5;
 
                 do {
                     if (FlagTickLed) {
@@ -805,9 +812,10 @@
                 } while(!Pc.readable());
                 MENU_choix = Pc.getc();
 
-                En = 0;
-                if (SensD == 0) Pwm_MD = 0;
-                else            Pwm_MD = 1;
+                IN1D = 0;
+                IN2D = 0;
+                Pwm_MD = 0;
+                Led2 = 0;
 
                 break;