test des capteurs/actionneurs petit robot

Fork of mbed_tes_cpt by CRAC Team

Committer:
matthieuvignon
Date:
Sun May 21 16:10:38 2017 +0000
Revision:
3:43843ab8af47
Parent:
2:9d280856a536
Child:
5:7e1c328c5d50
Carte a tout faire

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matthieuvignon 2:9d280856a536 1 #include "all_includes.h"
matthieuvignon 2:9d280856a536 2
matthieuvignon 2:9d280856a536 3 Timer t;
matthieuvignon 2:9d280856a536 4 Ticker flipper;
matthieuvignon 2:9d280856a536 5
matthieuvignon 2:9d280856a536 6 CAN can(p30,p29); // Rx&Tx pour le CAN
matthieuvignon 2:9d280856a536 7 CANMessage msgRxBuffer[SIZE_FIFO]; // buffer en réception pour le CAN
matthieuvignon 2:9d280856a536 8
matthieuvignon 2:9d280856a536 9 Serial pc(USBTX, USBRX);
matthieuvignon 2:9d280856a536 10
matthieuvignon 3:43843ab8af47 11 #ifdef AVANT
matthieuvignon 3:43843ab8af47 12 void gerer_turbine(unsigned char pwm_turbine);
matthieuvignon 3:43843ab8af47 13 #endif
matthieuvignon 3:43843ab8af47 14
matthieuvignon 3:43843ab8af47 15 unsigned char Cote=0;
matthieuvignon 3:43843ab8af47 16
matthieuvignon 3:43843ab8af47 17 #ifdef AVANT
matthieuvignon 3:43843ab8af47 18 PwmOut Pompe(p21);
matthieuvignon 3:43843ab8af47 19 PwmOut ElectroVanne(p22);
matthieuvignon 3:43843ab8af47 20 PwmOut turbine(p23);
matthieuvignon 3:43843ab8af47 21 #endif
matthieuvignon 3:43843ab8af47 22
matthieuvignon 3:43843ab8af47 23 #ifdef ARRIERE
matthieuvignon 3:43843ab8af47 24 PwmOut Pompe(p21);
matthieuvignon 3:43843ab8af47 25 PwmOut MotLanceur(p22);
matthieuvignon 3:43843ab8af47 26 #endif
matthieuvignon 2:9d280856a536 27
ClementBreteau 0:7737d7573e3b 28
matthieuvignon 2:9d280856a536 29
matthieuvignon 2:9d280856a536 30 AnalogIn telemetre(p15);
matthieuvignon 2:9d280856a536 31
matthieuvignon 2:9d280856a536 32 DigitalIn Jack(p25);
matthieuvignon 2:9d280856a536 33
matthieuvignon 2:9d280856a536 34
matthieuvignon 2:9d280856a536 35 DigitalOut led(LED1);
matthieuvignon 2:9d280856a536 36 DigitalOut led2(LED2);
matthieuvignon 2:9d280856a536 37
matthieuvignon 3:43843ab8af47 38 unsigned char EtatPompe=0, EtatLanceur=0, EtatAx12=0, ChoixBras=0, ActionAx12=0, EtatTurbine=0, EtatElectroVanne=0;
matthieuvignon 2:9d280856a536 39 unsigned char action_a_effectuer=0, ActionPompe=0;
matthieuvignon 2:9d280856a536 40
ClementBreteau 0:7737d7573e3b 41
ClementBreteau 0:7737d7573e3b 42 /*
ClementBreteau 0:7737d7573e3b 43 DigitalIn IO1(p23);
ClementBreteau 0:7737d7573e3b 44 DigitalIn IO2(p24);
ClementBreteau 0:7737d7573e3b 45 DigitalIn IO3(p25);
ClementBreteau 0:7737d7573e3b 46 DigitalIn IO4(p26);
ClementBreteau 0:7737d7573e3b 47
ClementBreteau 0:7737d7573e3b 48 AnalogIn A_in1(p15);
ClementBreteau 0:7737d7573e3b 49 AnalogIn A_in2(p16);
ClementBreteau 0:7737d7573e3b 50 AnalogIn A_in3(p17);
ClementBreteau 0:7737d7573e3b 51 AnalogIn A_in4(p18);
ClementBreteau 0:7737d7573e3b 52 AnalogIn A_in5(p19);
ClementBreteau 0:7737d7573e3b 53 AnalogIn A_in6(p20);
ClementBreteau 0:7737d7573e3b 54
ClementBreteau 0:7737d7573e3b 55 PwmOut IRL_1(p21);
ClementBreteau 0:7737d7573e3b 56 PwmOut IRL_2(p22);
ClementBreteau 0:7737d7573e3b 57 */
ClementBreteau 0:7737d7573e3b 58
ClementBreteau 1:f3f702086a30 59
ClementBreteau 0:7737d7573e3b 60
matthieuvignon 2:9d280856a536 61
matthieuvignon 2:9d280856a536 62 int main() {
matthieuvignon 2:9d280856a536 63
matthieuvignon 2:9d280856a536 64 can.frequency(1000000); // fréquence de travail 1Mbit/s
matthieuvignon 2:9d280856a536 65 can.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN
matthieuvignon 3:43843ab8af47 66
matthieuvignon 2:9d280856a536 67 // message CAN autorise a declencher l'interruption
matthieuvignon 2:9d280856a536 68
matthieuvignon 3:43843ab8af47 69 CAN2_wrFilter(POMPE);
matthieuvignon 3:43843ab8af47 70
matthieuvignon 2:9d280856a536 71 CAN2_wrFilter(LANCEUR);
matthieuvignon 2:9d280856a536 72 CAN2_wrFilter(TURBINE);
matthieuvignon 3:43843ab8af47 73 CAN2_wrFilter(ELECTROVANNE);
matthieuvignon 2:9d280856a536 74 CAN2_wrFilter(0x123);
matthieuvignon 2:9d280856a536 75
matthieuvignon 2:9d280856a536 76 CAN2_wrFilter(SERVO_AX12_ACTION);
matthieuvignon 2:9d280856a536 77 CAN2_wrFilter(SERVO_AX12_ACK);
matthieuvignon 2:9d280856a536 78 CAN2_wrFilter(SERVO_AX12_END);
matthieuvignon 2:9d280856a536 79 CAN2_wrFilter(CHECK_AX12);
matthieuvignon 2:9d280856a536 80
matthieuvignon 2:9d280856a536 81 initialisation_AX12();
matthieuvignon 2:9d280856a536 82
matthieuvignon 3:43843ab8af47 83 #ifdef AVANT
matthieuvignon 3:43843ab8af47 84 Pompe.period(0.001);
matthieuvignon 3:43843ab8af47 85 ElectroVanne.period(0.001);
matthieuvignon 3:43843ab8af47 86 #endif
matthieuvignon 3:43843ab8af47 87
matthieuvignon 3:43843ab8af47 88
matthieuvignon 3:43843ab8af47 89 #ifdef ARRIERE
matthieuvignon 3:43843ab8af47 90 Pompe.period(0.001);
matthieuvignon 3:43843ab8af47 91 MotLanceur.period(0.001);
matthieuvignon 3:43843ab8af47 92 #endif
matthieuvignon 3:43843ab8af47 93
matthieuvignon 2:9d280856a536 94
matthieuvignon 2:9d280856a536 95
matthieuvignon 2:9d280856a536 96 while(1) {
matthieuvignon 2:9d280856a536 97 led = !led;
matthieuvignon 2:9d280856a536 98 canProcessRx();//Traitement des trames CAN en attente
matthieuvignon 2:9d280856a536 99
matthieuvignon 2:9d280856a536 100
matthieuvignon 2:9d280856a536 101 if (action_a_effectuer==1) {
matthieuvignon 2:9d280856a536 102 action_a_effectuer=0;
matthieuvignon 2:9d280856a536 103
matthieuvignon 3:43843ab8af47 104 if (Cote==CARTE) {
matthieuvignon 3:43843ab8af47 105 if (ActionAx12==1){
matthieuvignon 3:43843ab8af47 106 led2=!led2;
matthieuvignon 3:43843ab8af47 107 AX12_automate(EtatAx12);
matthieuvignon 3:43843ab8af47 108 ActionAx12=0;
matthieuvignon 3:43843ab8af47 109 }
matthieuvignon 3:43843ab8af47 110
matthieuvignon 3:43843ab8af47 111 if ((EtatPompe==1)&&(ActionPompe==1))
matthieuvignon 3:43843ab8af47 112 ActionPompe=0, Pompe.write(1);
matthieuvignon 3:43843ab8af47 113 else if ((EtatPompe==0)&&(ActionPompe==1))
matthieuvignon 3:43843ab8af47 114 Pompe.write(0), ActionPompe=0;
matthieuvignon 3:43843ab8af47 115
matthieuvignon 3:43843ab8af47 116 #ifdef AVANT
matthieuvignon 3:43843ab8af47 117 if (EtatTurbine==1)
matthieuvignon 3:43843ab8af47 118 gerer_turbine(1);
matthieuvignon 3:43843ab8af47 119 else if (EtatTurbine==0)
matthieuvignon 3:43843ab8af47 120 gerer_turbine(0);
matthieuvignon 3:43843ab8af47 121
matthieuvignon 3:43843ab8af47 122 if (EtatElectroVanne==1)
matthieuvignon 3:43843ab8af47 123 ElectroVanne.write(1);
matthieuvignon 3:43843ab8af47 124 else if (EtatElectroVanne==0)
matthieuvignon 3:43843ab8af47 125 ElectroVanne.write(0);
matthieuvignon 3:43843ab8af47 126 #endif
matthieuvignon 3:43843ab8af47 127
matthieuvignon 3:43843ab8af47 128 #ifdef ARRIERE
matthieuvignon 3:43843ab8af47 129 if (EtatLanceur==1)
matthieuvignon 3:43843ab8af47 130 MotLanceur.write(1);
matthieuvignon 3:43843ab8af47 131 else if (EtatLanceur==0)
matthieuvignon 3:43843ab8af47 132 MotLanceur.write(0);
matthieuvignon 3:43843ab8af47 133 #endif
matthieuvignon 3:43843ab8af47 134
matthieuvignon 2:9d280856a536 135 }
matthieuvignon 3:43843ab8af47 136 }
ClementBreteau 0:7737d7573e3b 137 }
ClementBreteau 0:7737d7573e3b 138 }
ClementBreteau 0:7737d7573e3b 139