Lucio Hallage
/
APS-ELEEMB1
mandador
main2.cpp@0:2bdc88a8d0c9, 18 months ago (annotated)
- Committer:
- lucio_hallage
- Date:
- Fri Nov 25 11:55:18 2022 +0000
- Revision:
- 0:2bdc88a8d0c9
1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |