mandador

Dependencies:   mbed

Committer:
lucio_hallage
Date:
Fri Nov 25 11:55:18 2022 +0000
Revision:
0:2bdc88a8d0c9
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lucio_hallage 0:2bdc88a8d0c9 1 #include "mbed.h"
lucio_hallage 0:2bdc88a8d0c9 2
lucio_hallage 0:2bdc88a8d0c9 3 //-------Declara uso da serial---------------------
lucio_hallage 0:2bdc88a8d0c9 4 Serial pc(USBTX, USBRX); // tx, rx
lucio_hallage 0:2bdc88a8d0c9 5
lucio_hallage 0:2bdc88a8d0c9 6 //----------Pinos de entrada analogica (ADC)------
lucio_hallage 0:2bdc88a8d0c9 7 AnalogIn AXIS_X(A3);
lucio_hallage 0:2bdc88a8d0c9 8 AnalogIn AXIS_Y(A5);
lucio_hallage 0:2bdc88a8d0c9 9
lucio_hallage 0:2bdc88a8d0c9 10 //--------Declara uso da CAN----------------------
lucio_hallage 0:2bdc88a8d0c9 11 CAN can1(PB_8, PB_9);
lucio_hallage 0:2bdc88a8d0c9 12
lucio_hallage 0:2bdc88a8d0c9 13 //--------Declara uso do LED nativo da placa------
lucio_hallage 0:2bdc88a8d0c9 14 DigitalOut LED(PA_5);
lucio_hallage 0:2bdc88a8d0c9 15
lucio_hallage 0:2bdc88a8d0c9 16 //-----Declara uso do botao nativo da placa--------
lucio_hallage 0:2bdc88a8d0c9 17 DigitalIn SW(PC_13);
lucio_hallage 0:2bdc88a8d0c9 18
lucio_hallage 0:2bdc88a8d0c9 19 //---------Dados em hexadecimal de cada mensagem-------
lucio_hallage 0:2bdc88a8d0c9 20 static char info = 0x55;
lucio_hallage 0:2bdc88a8d0c9 21 static char left = 0x01;
lucio_hallage 0:2bdc88a8d0c9 22 static char right = 0x02;
lucio_hallage 0:2bdc88a8d0c9 23 static char up = 0x03;
lucio_hallage 0:2bdc88a8d0c9 24 static char down = 0x04;
lucio_hallage 0:2bdc88a8d0c9 25 static char stop = 0x05;
lucio_hallage 0:2bdc88a8d0c9 26
lucio_hallage 0:2bdc88a8d0c9 27 int main()
lucio_hallage 0:2bdc88a8d0c9 28 {
lucio_hallage 0:2bdc88a8d0c9 29 //-----atribuição dos dados as mensagens----------
lucio_hallage 0:2bdc88a8d0c9 30 CANMessage msg(5, &info, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 31 CANMessage msg_up(5, &up, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 32 CANMessage msg_down(5, &down, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 33 CANMessage msg_left(5, &left, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 34 CANMessage msg_right(5, &right, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 35 CANMessage msg_stop(5, &stop, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 36
lucio_hallage 0:2bdc88a8d0c9 37 //---boas vindas------------
lucio_hallage 0:2bdc88a8d0c9 38 pc.printf("Ola!!!\n");
lucio_hallage 0:2bdc88a8d0c9 39
lucio_hallage 0:2bdc88a8d0c9 40 float VAL_X = 0.0f, VAL_Y = 0.0f;
lucio_hallage 0:2bdc88a8d0c9 41
lucio_hallage 0:2bdc88a8d0c9 42 while(1)
lucio_hallage 0:2bdc88a8d0c9 43 {
lucio_hallage 0:2bdc88a8d0c9 44 //------Leitura do joystick nos eixos X e Y --------------
lucio_hallage 0:2bdc88a8d0c9 45 VAL_X = AXIS_X.read();
lucio_hallage 0:2bdc88a8d0c9 46 VAL_Y = AXIS_Y.read();
lucio_hallage 0:2bdc88a8d0c9 47
lucio_hallage 0:2bdc88a8d0c9 48 //----Envia mensagem para +Y -----
lucio_hallage 0:2bdc88a8d0c9 49 if(VAL_X > 0.7f)
lucio_hallage 0:2bdc88a8d0c9 50 {
lucio_hallage 0:2bdc88a8d0c9 51 if(can1.write(msg_right))
lucio_hallage 0:2bdc88a8d0c9 52 {
lucio_hallage 0:2bdc88a8d0c9 53 pc.printf("Direita enviada\n");
lucio_hallage 0:2bdc88a8d0c9 54 }
lucio_hallage 0:2bdc88a8d0c9 55
lucio_hallage 0:2bdc88a8d0c9 56 else
lucio_hallage 0:2bdc88a8d0c9 57 {
lucio_hallage 0:2bdc88a8d0c9 58 pc.printf("Direita NAO enviada\n");
lucio_hallage 0:2bdc88a8d0c9 59 }
lucio_hallage 0:2bdc88a8d0c9 60 }
lucio_hallage 0:2bdc88a8d0c9 61
lucio_hallage 0:2bdc88a8d0c9 62 //----Envia mensagem para -Y -----
lucio_hallage 0:2bdc88a8d0c9 63 if(VAL_X < 0.3f)
lucio_hallage 0:2bdc88a8d0c9 64 {
lucio_hallage 0:2bdc88a8d0c9 65 //printf("\n\rLEFT");
lucio_hallage 0:2bdc88a8d0c9 66 if(can1.write(msg_left))
lucio_hallage 0:2bdc88a8d0c9 67 {
lucio_hallage 0:2bdc88a8d0c9 68 pc.printf("Esquerda enviada\n");
lucio_hallage 0:2bdc88a8d0c9 69 }
lucio_hallage 0:2bdc88a8d0c9 70
lucio_hallage 0:2bdc88a8d0c9 71 else
lucio_hallage 0:2bdc88a8d0c9 72 {
lucio_hallage 0:2bdc88a8d0c9 73 pc.printf("Esquerda NAO enviada\n");
lucio_hallage 0:2bdc88a8d0c9 74 }
lucio_hallage 0:2bdc88a8d0c9 75 }
lucio_hallage 0:2bdc88a8d0c9 76
lucio_hallage 0:2bdc88a8d0c9 77 //----Envia mensagem para +X -----
lucio_hallage 0:2bdc88a8d0c9 78 if(VAL_Y > 0.7f)
lucio_hallage 0:2bdc88a8d0c9 79 {
lucio_hallage 0:2bdc88a8d0c9 80 //printf("\n\rUP");
lucio_hallage 0:2bdc88a8d0c9 81 if(can1.write(msg_up))
lucio_hallage 0:2bdc88a8d0c9 82 {
lucio_hallage 0:2bdc88a8d0c9 83 pc.printf("Cima enviada\n");
lucio_hallage 0:2bdc88a8d0c9 84 }
lucio_hallage 0:2bdc88a8d0c9 85
lucio_hallage 0:2bdc88a8d0c9 86 else
lucio_hallage 0:2bdc88a8d0c9 87 {
lucio_hallage 0:2bdc88a8d0c9 88 pc.printf("Cima NAO enviada\n");
lucio_hallage 0:2bdc88a8d0c9 89 }
lucio_hallage 0:2bdc88a8d0c9 90 }
lucio_hallage 0:2bdc88a8d0c9 91
lucio_hallage 0:2bdc88a8d0c9 92 //----Envia mensagem para -X -----
lucio_hallage 0:2bdc88a8d0c9 93 if(VAL_Y < 0.3f)
lucio_hallage 0:2bdc88a8d0c9 94 {
lucio_hallage 0:2bdc88a8d0c9 95 //printf("\n\rDown");
lucio_hallage 0:2bdc88a8d0c9 96 if(can1.write(msg_down))
lucio_hallage 0:2bdc88a8d0c9 97 {
lucio_hallage 0:2bdc88a8d0c9 98 pc.printf("Baixo enviada\n");
lucio_hallage 0:2bdc88a8d0c9 99 }
lucio_hallage 0:2bdc88a8d0c9 100
lucio_hallage 0:2bdc88a8d0c9 101 else
lucio_hallage 0:2bdc88a8d0c9 102 {
lucio_hallage 0:2bdc88a8d0c9 103 pc.printf("Baixo NAO enviada\n");
lucio_hallage 0:2bdc88a8d0c9 104 }
lucio_hallage 0:2bdc88a8d0c9 105 }
lucio_hallage 0:2bdc88a8d0c9 106
lucio_hallage 0:2bdc88a8d0c9 107 //----Se o joystick estiver em repouso, envia mensagem para parar os motores dos eixos--------
lucio_hallage 0:2bdc88a8d0c9 108 if(((VAL_Y < 0.65f) && (VAL_Y > 0.45f)) && ((VAL_X < 0.65f) && (VAL_X > 0.45f)))
lucio_hallage 0:2bdc88a8d0c9 109 {
lucio_hallage 0:2bdc88a8d0c9 110 //printf("\n\rStop");
lucio_hallage 0:2bdc88a8d0c9 111 if(can1.write(msg_stop))
lucio_hallage 0:2bdc88a8d0c9 112 {
lucio_hallage 0:2bdc88a8d0c9 113 pc.printf("Parada enviada\n");
lucio_hallage 0:2bdc88a8d0c9 114 }
lucio_hallage 0:2bdc88a8d0c9 115
lucio_hallage 0:2bdc88a8d0c9 116 else
lucio_hallage 0:2bdc88a8d0c9 117 {
lucio_hallage 0:2bdc88a8d0c9 118 pc.printf("Parada NAO enviada\n");
lucio_hallage 0:2bdc88a8d0c9 119 }
lucio_hallage 0:2bdc88a8d0c9 120 }
lucio_hallage 0:2bdc88a8d0c9 121 msg.data[0] = 0x00;//limpa a variavel
lucio_hallage 0:2bdc88a8d0c9 122
lucio_hallage 0:2bdc88a8d0c9 123 wait_us(200000);//controla o envio/recebimento de mensagens
lucio_hallage 0:2bdc88a8d0c9 124 }
lucio_hallage 0:2bdc88a8d0c9 125 }