AREM - CDFR 2019 / Mbed 2 deprecated Robot2_Localv4

Dependencies:   mbed StrategieLib BrasLib AnalyseDistanceLib BrasPousserLib EcranLib PompeLib DemarreurLib Asservissment_robot2_v16_05 AnalyseArcLib

Committer:
GuillaumeCH
Date:
Thu May 30 02:44:25 2019 +0000
Revision:
12:73f5a23c8864
Parent:
11:fbed7bcec327
Child:
14:ad0f85495f58
4h44

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JimmyAREM 0:712c30640b31 1 /**
JimmyAREM 0:712c30640b31 2 ****************************************************************************
JimmyAREM 0:712c30640b31 3 * @file main.cpp
JimmyAREM 0:712c30640b31 4 * @author Jimmy MAINGAM
JimmyAREM 0:712c30640b31 5 * @version V0.0.1
JimmyAREM 0:712c30640b31 6 * @date 20/03/2019
JimmyAREM 5:10193f156c3f 7 * @brief Implementation file main
JimmyAREM 0:712c30640b31 8 ****************************************************************************
JimmyAREM 0:712c30640b31 9 *This software has been developed to be used in AREM's robot for the cdfr 2019
JimmyAREM 0:712c30640b31 10 **/
JimmyAREM 0:712c30640b31 11
JimmyAREM 0:712c30640b31 12 /* Includes ------------------------------------------------------------------*/
JimmyAREM 0:712c30640b31 13
JimmyAREM 0:712c30640b31 14 #include "mbed.h"
JimmyAREM 0:712c30640b31 15 #include "pinMap.hpp"
JimmyAREM 0:712c30640b31 16
JimmyAREM 0:712c30640b31 17 #include "hardware.h"
JimmyAREM 0:712c30640b31 18 #include "odometrie.h"
JimmyAREM 0:712c30640b31 19 #include "reglages.h"
JimmyAREM 0:712c30640b31 20 #include "deplacement.h"
JimmyAREM 0:712c30640b31 21
JimmyAREM 0:712c30640b31 22 #include "BrasPousser.h"
JimmyAREM 0:712c30640b31 23 #include "Bras.h"
JimmyAREM 0:712c30640b31 24 #include "Pompe.h"
JimmyAREM 0:712c30640b31 25 #include "demarreur.h"
JimmyAREM 0:712c30640b31 26 #include "Ecran.h"
JimmyAREM 0:712c30640b31 27
JimmyAREM 0:712c30640b31 28 #include "Strategie.h"
JimmyAREM 0:712c30640b31 29 #include "AnalyseDistance.h"
JimmyAREM 5:10193f156c3f 30 #include "AnalyseArcLib.h"
JimmyAREM 0:712c30640b31 31
JimmyAREM 0:712c30640b31 32
JimmyAREM 0:712c30640b31 33 /* Global Variables ---------------------------------------------------------*/
JimmyAREM 0:712c30640b31 34
GuillaumeCH 11:fbed7bcec327 35 //debug
GuillaumeCH 11:fbed7bcec327 36 extern BrasPousser brasPousserGauche;
GuillaumeCH 11:fbed7bcec327 37 extern BrasPousser brasPousserDroit;
GuillaumeCH 11:fbed7bcec327 38 extern Pompe pompe;
GuillaumeCH 11:fbed7bcec327 39
JimmyAREM 0:712c30640b31 40 //I2CSlave i2c(PIN_SDA, PIN_SCL);
JimmyAREM 0:712c30640b31 41 extern Serial serial;
JimmyAREM 7:7f59ce30a6fe 42 extern int typeEvitement;
JimmyAREM 0:712c30640b31 43 Serial capteursUART(A0,A1,2000000);
JimmyAREM 0:712c30640b31 44 //Ticker lectureI2C;
JimmyAREM 0:712c30640b31 45 extern event_callback_t afficherEcranCallback;
JimmyAREM 0:712c30640b31 46 event_callback_t afficherCapteursCallback;
JimmyAREM 0:712c30640b31 47
JimmyAREM 0:712c30640b31 48 bool newOrder = false;
JimmyAREM 0:712c30640b31 49 bool detectionUltrasons = false;
JimmyAREM 0:712c30640b31 50
JimmyAREM 0:712c30640b31 51 /* Public Functions ------------------------------------------------------------------*/
JimmyAREM 0:712c30640b31 52
JimmyAREM 0:712c30640b31 53 //void afficherI2C();
JimmyAREM 0:712c30640b31 54 void recupererCapteurs(int events);
JimmyAREM 0:712c30640b31 55
JimmyAREM 5:10193f156c3f 56 /* Main -----------------------------------------------------------------------------*/
JimmyAREM 0:712c30640b31 57
JimmyAREM 0:712c30640b31 58 int main()
JimmyAREM 0:712c30640b31 59 {
JimmyAREM 0:712c30640b31 60 Pompe pompe(PIN_POMPE);
JimmyAREM 0:712c30640b31 61 Demarreur demarreur(PIN_DEMARREUR);
JimmyAREM 0:712c30640b31 62 Bras brasGauche(PIN_SERVO_BRAS_GAUCHE, GAUCHE);
JimmyAREM 0:712c30640b31 63 Bras brasDroit(PIN_SERVO_BRAS_DROIT, DROIT);
JimmyAREM 0:712c30640b31 64 BrasPousser brasPousserGauche(PIN_SERVO_PALETS_GAUCHE, GAUCHE);
JimmyAREM 0:712c30640b31 65 BrasPousser brasPousserDroit(PIN_SERVO_PALETS_DROIT,DROIT);
JimmyAREM 0:712c30640b31 66 deplacement robot;
JimmyAREM 0:712c30640b31 67
JimmyAREM 0:712c30640b31 68 robot.initialisation();
JimmyAREM 0:712c30640b31 69
JimmyAREM 9:84aa5301e669 70 /*AnalogIn Ain(A5);
JimmyAREM 0:712c30640b31 71 if(Ain.read() < 0.68f)
JimmyAREM 0:712c30640b31 72 {
JimmyAREM 0:712c30640b31 73 return 0;
JimmyAREM 9:84aa5301e669 74 }*/
JimmyAREM 0:712c30640b31 75
JimmyAREM 6:4f7f2d8a7cf8 76 pc.printf("SystemCoreClock is %d Hz\r\n", SystemCoreClock);
JimmyAREM 0:712c30640b31 77
JimmyAREM 0:712c30640b31 78 afficherEcranCallback.attach(afficherEcran);
JimmyAREM 0:712c30640b31 79 afficherCapteursCallback.attach(recupererCapteurs);
JimmyAREM 0:712c30640b31 80
JimmyAREM 0:712c30640b31 81 serial.read((uint8_t*)buffer, TAILLE, afficherEcranCallback, SERIAL_EVENT_RX_COMPLETE);
JimmyAREM 0:712c30640b31 82 capteursUART.read((uint8_t*)bufferCapteurs, TAILLEBUFFERCAPTEURS, afficherCapteursCallback, SERIAL_EVENT_RX_COMPLETE);
GuillaumeCH 10:36c10392b5aa 83 //pompe.activer();
JimmyAREM 8:c1439c88858d 84 /*setEmplacementTest();
JimmyAREM 0:712c30640b31 85 init_odometrie();
GuillaumeCH 12:73f5a23c8864 86 typeEvitement = RECTANGLE;
GuillaumeCH 12:73f5a23c8864 87 wait(2);
GuillaumeCH 12:73f5a23c8864 88 robot.va_au_point(130000,30000,0);*/
GuillaumeCH 11:fbed7bcec327 89 //robot.pente_combo(0, brasPousserGauche,brasPousserDroit, pompe);
JimmyAREM 0:712c30640b31 90 while(1)
JimmyAREM 0:712c30640b31 91 {
JimmyAREM 0:712c30640b31 92 if(detectionUltrasons)
JimmyAREM 0:712c30640b31 93 {
JimmyAREM 0:712c30640b31 94 detectionUltrasons = false;
JimmyAREM 0:712c30640b31 95 writeCapteurs();
JimmyAREM 0:712c30640b31 96 //LectureI2CCarteCapteur(robot);
JimmyAREM 0:712c30640b31 97 }
JimmyAREM 0:712c30640b31 98 if(newOrder)
JimmyAREM 0:712c30640b31 99 {
JimmyAREM 0:712c30640b31 100 newOrder = false;
JimmyAREM 0:712c30640b31 101 executeOrderInit(robot, pompe, demarreur, brasGauche, brasDroit, brasPousserGauche, brasPousserDroit);
JimmyAREM 0:712c30640b31 102 }
JimmyAREM 0:712c30640b31 103 }
JimmyAREM 0:712c30640b31 104 return 0;
JimmyAREM 0:712c30640b31 105 }
JimmyAREM 0:712c30640b31 106
JimmyAREM 0:712c30640b31 107
JimmyAREM 0:712c30640b31 108 void recupererCapteurs(int events)
JimmyAREM 0:712c30640b31 109 {
JimmyAREM 0:712c30640b31 110 //pc.write((uint8_t*)bufferCapteurs, TAILLEBUFFERCAPTEURS, NULL);
JimmyAREM 0:712c30640b31 111 detectionUltrasons = true;
JimmyAREM 0:712c30640b31 112 capteursUART.read((uint8_t*)bufferCapteurs, TAILLEBUFFERCAPTEURS, afficherCapteursCallback, SERIAL_EVENT_RX_COMPLETE);
JimmyAREM 0:712c30640b31 113
JimmyAREM 0:712c30640b31 114 }
JimmyAREM 0:712c30640b31 115 /*
JimmyAREM 0:712c30640b31 116 void afficherI2C()
JimmyAREM 0:712c30640b31 117 {
JimmyAREM 0:712c30640b31 118 //On coupe la lecture écran lorsqu'on lit l'I2C pour éviter les conflits avec le ticker (on le coupe aussi)
JimmyAREM 0:712c30640b31 119 serial.abort_read();
JimmyAREM 0:712c30640b31 120 lectureI2C.detach();
JimmyAREM 0:712c30640b31 121
JimmyAREM 0:712c30640b31 122 i2c.read((char*)bufferCapteurs, TAILLEBUFFERCAPTEURS);
JimmyAREM 0:712c30640b31 123 pc.printf("%s\n", bufferCapteurs);
JimmyAREM 0:712c30640b31 124
JimmyAREM 0:712c30640b31 125 //On renvoit ce qui est lu vers l'écran par liaison série
JimmyAREM 0:712c30640b31 126 writeCapteurs();
JimmyAREM 0:712c30640b31 127
JimmyAREM 0:712c30640b31 128 //On réactive le ticker et la lecture des ordres de l'écran
JimmyAREM 0:712c30640b31 129 serial.read((uint8_t*)buffer, TAILLE, afficherEcranCallback, SERIAL_EVENT_RX_COMPLETE);
JimmyAREM 0:712c30640b31 130 lectureI2C.attach(&afficherI2C, 0.02);
JimmyAREM 0:712c30640b31 131 }
JimmyAREM 0:712c30640b31 132
JimmyAREM 0:712c30640b31 133 //main
JimmyAREM 0:712c30640b31 134
JimmyAREM 0:712c30640b31 135 //i2c.address(0x90);
JimmyAREM 0:712c30640b31 136 //i2c.read((char*)bufferCapteurs, TAILLEBUFFERCAPTEURS);*/
JimmyAREM 0:712c30640b31 137 //Réception des ordres écran : on attache la fonction afficherEcran qui est appelée lorsque le buffer de 11 est plein
JimmyAREM 0:712c30640b31 138
JimmyAREM 0:712c30640b31 139 //Première initialisation du ticker
JimmyAREM 0:712c30640b31 140 //lectureI2C.attach(&afficherI2C, 0.02);
JimmyAREM 0:712c30640b31 141
JimmyAREM 0:712c30640b31 142