FRC_equipe1 / Mbed 2 deprecated FRC_2019

Dependencies:   mbed

Committer:
Wael_H
Date:
Tue Jun 04 08:49:01 2019 +0000
Revision:
16:05665faaa489
Parent:
13:9c62e263f245
Child:
17:aae5361ddddf
tests deplacements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wael_H 5:34048faec367 1 #ifndef CAN_ASSER_H
Wael_H 5:34048faec367 2 #define CAN_ASSER_H
Wael_H 5:34048faec367 3
Wael_H 5:34048faec367 4 #include "mbed.h"
Wael_H 13:9c62e263f245 5
Wael_H 13:9c62e263f245 6 extern Serial dbug;
Wael_H 5:34048faec367 7
Wael_H 5:34048faec367 8 #define TE_100US 100
Wael_H 5:34048faec367 9 #define TE (TE_100US*0.0001)
Wael_H 5:34048faec367 10
Wael_H 5:34048faec367 11 #define ASSERVISSEMENT_STOP 0x001 // Stop moteur
Wael_H 5:34048faec367 12 #define ASSERVISSEMENT_SPEED_DANGER 0x006 // Vitesse de danger
Wael_H 5:34048faec367 13 #define ASSERVISSEMENT_XYT 0x020 // Asservissement (x,y,theta) (0 : au choix 1 : avant -1 : arrière)
Wael_H 5:34048faec367 14 #define ASSERVISSEMENT_COURBURE 0x021 // Asservissement rayon de courbure (+ gauche, - droite , sens : 1avt , -1arr; enchainement => 1 oui, 0 => non, 2=>derniére instruction de l'enchainement)
Wael_H 5:34048faec367 15 #define ASSERVISSEMENT_CONFIG 0x022 // Asservissement paramètre (définir les valeurs de vitesse max et d'eccélération max)
Wael_H 5:34048faec367 16 #define ASSERVISSEMENT_ROTATION 0x023 // Asservissement rotation
Wael_H 5:34048faec367 17 #define ASSERVISSEMENT_RECALAGE 0x024 // Moteur tout droit (recalage : 0 mouvement seul, 1 x, 2y valeur : coordonnée à laquelle est recalé x/y; enchainement => 1 oui, 0 => non)
Wael_H 5:34048faec367 18 #define ASSERVISSEMENT_CONFIG_DECEL 0x019
Wael_H 5:34048faec367 19
Wael_H 5:34048faec367 20 #define ASSERVISSEMENT_ENABLE 0x1F7 // Activation asservissement (0 : désactivation, 1 : activation)
Wael_H 5:34048faec367 21
Wael_H 5:34048faec367 22 #define ASSERVISSEMENT_CONFIG_KPP_DROITE 0x1F1
Wael_H 5:34048faec367 23 #define ASSERVISSEMENT_CONFIG_KPI_DROITE 0x1F2
Wael_H 5:34048faec367 24 #define ASSERVISSEMENT_CONFIG_KPD_DROITE 0x1F3
Wael_H 5:34048faec367 25 #define ASSERVISSEMENT_CONFIG_KPP_GAUCHE 0x1F4
Wael_H 5:34048faec367 26 #define ASSERVISSEMENT_CONFIG_KPI_GAUCHE 0x1F5
Wael_H 5:34048faec367 27 #define ASSERVISSEMENT_CONFIG_KPD_GAUCHE 0x1F6
Wael_H 5:34048faec367 28
Wael_H 5:34048faec367 29 #define ODOMETRIE_POSITION 0x26
Wael_H 5:34048faec367 30
Wael_H 7:753e901d441b 31 void can_init(void);
Wael_H 7:753e901d441b 32 void isr_can();
Wael_H 9:2113adf37c66 33 void majFlagDpl(bool& flagFinDpl);
Wael_H 16:05665faaa489 34 void majPos(short* pos);
Wael_H 5:34048faec367 35 void get_pos(CANMessage msg_pos, short* position);
Wael_H 5:34048faec367 36
Wael_H 5:34048faec367 37 void SendCoefK (unsigned short id, double K);
Wael_H 5:34048faec367 38
Wael_H 5:34048faec367 39 /*********************************************************************************************************/
Wael_H 5:34048faec367 40
Wael_H 5:34048faec367 41 /* FUNCTION NAME: SendRawId */
Wael_H 5:34048faec367 42 /* DESCRIPTION : Envoie un message sans donnée, c'est-à-dire contenant uniquement un ID, sur le bus CAN */
Wael_H 5:34048faec367 43 /*********************************************************************************************************/
Wael_H 5:34048faec367 44 void SendRawId (unsigned short id);
Wael_H 5:34048faec367 45
Wael_H 5:34048faec367 46 /*********************************************************************************************/
Wael_H 5:34048faec367 47
Wael_H 5:34048faec367 48 /* FUNCTION NAME: SendAck */
Wael_H 5:34048faec367 49
Wael_H 5:34048faec367 50 /* DESCRIPTION : Envoyer un acknowledge */
Wael_H 5:34048faec367 51 /*********************************************************************************************/
Wael_H 5:34048faec367 52 void SendAck(unsigned short id, unsigned short from);
Wael_H 5:34048faec367 53
Wael_H 5:34048faec367 54 /*********************************************************************************************/
Wael_H 5:34048faec367 55
Wael_H 5:34048faec367 56 /* FUNCTION NAME: GoToPosition */
Wael_H 5:34048faec367 57 /* DESCRIPTION : Transmission CAN correspondant à un asservissement en position (x,y,theta) */
Wael_H 5:34048faec367 58 /*********************************************************************************************/
Wael_H 5:34048faec367 59
Wael_H 5:34048faec367 60 void GoToPosition (unsigned short x,unsigned short y,signed short theta,signed char sens);
Wael_H 5:34048faec367 61
Wael_H 5:34048faec367 62 /****************************************************************************************/
Wael_H 5:34048faec367 63
Wael_H 5:34048faec367 64 /* FUNCTION NAME: Rotate */
Wael_H 5:34048faec367 65
Wael_H 5:34048faec367 66 /* DESCRIPTION : Transmission CAN correspondant à une rotation */
Wael_H 5:34048faec367 67 /****************************************************************************************/
Wael_H 5:34048faec367 68
Wael_H 5:34048faec367 69 void Rotate (signed short angle);
Wael_H 5:34048faec367 70
Wael_H 5:34048faec367 71 /********************************************************************************************
Wael_H 5:34048faec367 72 FUNCTION NAME: GoStraight
Wael_H 5:34048faec367 73 DESCRIPTION : Transmission CAN correspondant à une ligne droite, avec ou sans recalage
Wael_H 5:34048faec367 74
Wael_H 5:34048faec367 75 recalage : 0 => pas de recalage
Wael_H 5:34048faec367 76
Wael_H 5:34048faec367 77 1 => recalage en X
Wael_H 5:34048faec367 78
Wael_H 5:34048faec367 79 2 => Recalage en Y
Wael_H 5:34048faec367 80
Wael_H 5:34048faec367 81 newValue : Uniquement en cas de recalage, indique la nouvelle valeur de l'odo
Wael_H 5:34048faec367 82
Wael_H 5:34048faec367 83 isEnchainement : Indique si il faut executer l'instruction en enchainement
Wael_H 5:34048faec367 84
Wael_H 5:34048faec367 85 0 => non
Wael_H 5:34048faec367 86
Wael_H 5:34048faec367 87 1 => oui
Wael_H 5:34048faec367 88
Wael_H 5:34048faec367 89 2 => dernière instruction de l'enchainement
Wael_H 5:34048faec367 90 ********************************************************************************************/
Wael_H 5:34048faec367 91 void GoStraight (signed short distance,unsigned char recalage, unsigned short newValue, unsigned char isEnchainement);
Wael_H 5:34048faec367 92
Wael_H 5:34048faec367 93 /********************************************************************************************/
Wael_H 5:34048faec367 94
Wael_H 5:34048faec367 95 /* FUNCTION NAME: BendRadius */
Wael_H 5:34048faec367 96
Wael_H 5:34048faec367 97 /* DESCRIPTION : Transmission CAN correspondant à un rayon de courbure */
Wael_H 5:34048faec367 98 /********************************************************************************************/
Wael_H 5:34048faec367 99 void BendRadius (unsigned short rayon,signed short angle,signed char sens, unsigned char enchainement);
Wael_H 5:34048faec367 100
Wael_H 5:34048faec367 101 void SetOdometrie (unsigned short canId, unsigned short x,unsigned short y,signed short theta);
Wael_H 5:34048faec367 102
Wael_H 5:34048faec367 103 /****************************************************************************************/
Wael_H 5:34048faec367 104
Wael_H 5:34048faec367 105 /* FUNCTION NAME: setAsservissementEtat */
Wael_H 5:34048faec367 106
Wael_H 5:34048faec367 107 /* DESCRIPTION : Activer ou désactiver l'asservissement */
Wael_H 5:34048faec367 108 /****************************************************************************************/
Wael_H 5:34048faec367 109 void setAsservissementEtat(unsigned char enable);
Wael_H 5:34048faec367 110
Wael_H 5:34048faec367 111 /****************************************************************************************/
Wael_H 5:34048faec367 112
Wael_H 5:34048faec367 113 /* FUNCTION NAME: SendSpeed */
Wael_H 5:34048faec367 114
Wael_H 5:34048faec367 115 /* DESCRIPTION : Envoie un asservissement paramètre retournant à une vitesse */
Wael_H 5:34048faec367 116 /****************************************************************************************/
Wael_H 5:34048faec367 117 void SendSpeed (unsigned short vitesse, unsigned short acceleration);
Wael_H 5:34048faec367 118 /****************************************************************************************/
Wael_H 5:34048faec367 119
Wael_H 5:34048faec367 120 /* FUNCTION NAME: SendSpeedDecel */
Wael_H 5:34048faec367 121
Wael_H 5:34048faec367 122 /* DESCRIPTION : Envoie un asservissement paramètre retournant à une vitesse */
Wael_H 5:34048faec367 123 /****************************************************************************************/
Wael_H 5:34048faec367 124 void SendSpeedDecel (unsigned short vitesse, unsigned short deceleration);
Wael_H 5:34048faec367 125
Wael_H 5:34048faec367 126
Wael_H 5:34048faec367 127 #endif