Programme de test à priori fonctionnel avec la version 2018 de la carte
Dependencies: PwmIn mbed Encoder_Nucleo_16_bits
Diff: main.cpp
- Revision:
- 9:2d99e9946b89
- Parent:
- 6:88b4805d33e1
- Child:
- 10:c6db803927b6
diff -r 27eeea7d05e9 -r 2d99e9946b89 main.cpp --- 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;