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 DigitalOut IN1A(D5); // Sinal IN1
lucio_hallage 0:2bdc88a8d0c9 28 DigitalOut IN2A(D4); // Sinal IN2
lucio_hallage 0:2bdc88a8d0c9 29 DigitalOut EN_A(D2); // Sinal ENABLE
lucio_hallage 0:2bdc88a8d0c9 30 DigitalOut IN1B(A0); // Sinal IN1
lucio_hallage 0:2bdc88a8d0c9 31 DigitalOut IN2B(A1); // Sinal IN2
lucio_hallage 0:2bdc88a8d0c9 32 DigitalOut EN_B(A4); // Sinal ENABLE
lucio_hallage 0:2bdc88a8d0c9 33
lucio_hallage 0:2bdc88a8d0c9 34 int main() {
lucio_hallage 0:2bdc88a8d0c9 35
lucio_hallage 0:2bdc88a8d0c9 36 //-----atribuição dos dados as mensagens----------
lucio_hallage 0:2bdc88a8d0c9 37 CANMessage msg(5, &info, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 38 CANMessage msg_up(5, &up, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 39 CANMessage msg_down(5, &down, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 40 CANMessage msg_left(5, &left, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 41 CANMessage msg_right(5, &right, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 42 CANMessage msg_stop(5, &stop, 8, CANData, CANStandard);
lucio_hallage 0:2bdc88a8d0c9 43
lucio_hallage 0:2bdc88a8d0c9 44 //---boas vindas------------
lucio_hallage 0:2bdc88a8d0c9 45 pc.printf("Ola!!!\n");
lucio_hallage 0:2bdc88a8d0c9 46
lucio_hallage 0:2bdc88a8d0c9 47 float VAL_X = 0.0f, VAL_Y = 0.0f;
lucio_hallage 0:2bdc88a8d0c9 48
lucio_hallage 0:2bdc88a8d0c9 49 while (1) {
lucio_hallage 0:2bdc88a8d0c9 50 if (can1.read(msg)) {
lucio_hallage 0:2bdc88a8d0c9 51
lucio_hallage 0:2bdc88a8d0c9 52 if (msg.data[0] == up) {
lucio_hallage 0:2bdc88a8d0c9 53 // move_up();
lucio_hallage 0:2bdc88a8d0c9 54 pc.printf("Cima recebida: %x\n", msg_up.data[0]);
lucio_hallage 0:2bdc88a8d0c9 55 EN_A = 1;
lucio_hallage 0:2bdc88a8d0c9 56 EN_B = 0;
lucio_hallage 0:2bdc88a8d0c9 57 IN1A = 0;
lucio_hallage 0:2bdc88a8d0c9 58 IN2A = 1;
lucio_hallage 0:2bdc88a8d0c9 59 IN1B = 0;
lucio_hallage 0:2bdc88a8d0c9 60 IN2B = 0;
lucio_hallage 0:2bdc88a8d0c9 61 }
lucio_hallage 0:2bdc88a8d0c9 62
lucio_hallage 0:2bdc88a8d0c9 63 //------Se a mensagem for do tipo DOWN, então move para baixo----
lucio_hallage 0:2bdc88a8d0c9 64 if (msg.data[0] == down) {
lucio_hallage 0:2bdc88a8d0c9 65 // move_down();
lucio_hallage 0:2bdc88a8d0c9 66 pc.printf("Baixo recebida: %x\n", msg_down.data[0]);
lucio_hallage 0:2bdc88a8d0c9 67 EN_A = 1;
lucio_hallage 0:2bdc88a8d0c9 68 EN_B = 0;
lucio_hallage 0:2bdc88a8d0c9 69 IN1A = 1;
lucio_hallage 0:2bdc88a8d0c9 70 IN2A = 0;
lucio_hallage 0:2bdc88a8d0c9 71 IN1B = 0;
lucio_hallage 0:2bdc88a8d0c9 72 IN2B = 0;
lucio_hallage 0:2bdc88a8d0c9 73 }
lucio_hallage 0:2bdc88a8d0c9 74
lucio_hallage 0:2bdc88a8d0c9 75 //------Se a mensagem for do tipo RIGHT, então move para direita----
lucio_hallage 0:2bdc88a8d0c9 76 if (msg.data[0] == right) {
lucio_hallage 0:2bdc88a8d0c9 77 // move_right();
lucio_hallage 0:2bdc88a8d0c9 78 pc.printf("Direita recebida: %x\n", msg_right.data[0]);
lucio_hallage 0:2bdc88a8d0c9 79 EN_A = 0;
lucio_hallage 0:2bdc88a8d0c9 80 EN_B = 1;
lucio_hallage 0:2bdc88a8d0c9 81 IN1A = 0;
lucio_hallage 0:2bdc88a8d0c9 82 IN2A = 0;
lucio_hallage 0:2bdc88a8d0c9 83 IN1B = 0;
lucio_hallage 0:2bdc88a8d0c9 84 IN2B = 1;
lucio_hallage 0:2bdc88a8d0c9 85 }
lucio_hallage 0:2bdc88a8d0c9 86
lucio_hallage 0:2bdc88a8d0c9 87 //------Se a mensagem for do tipo LEFT, então move para esquerda----
lucio_hallage 0:2bdc88a8d0c9 88 if (msg.data[0] == left) {
lucio_hallage 0:2bdc88a8d0c9 89 // move_left();
lucio_hallage 0:2bdc88a8d0c9 90 pc.printf("Esquerda recebida: %x\n", msg_left.data[0]);
lucio_hallage 0:2bdc88a8d0c9 91 EN_A = 0;
lucio_hallage 0:2bdc88a8d0c9 92 EN_B = 1;
lucio_hallage 0:2bdc88a8d0c9 93 IN1A = 0;
lucio_hallage 0:2bdc88a8d0c9 94 IN2A = 0;
lucio_hallage 0:2bdc88a8d0c9 95 IN1B = 1;
lucio_hallage 0:2bdc88a8d0c9 96 IN2B = 0;
lucio_hallage 0:2bdc88a8d0c9 97 }
lucio_hallage 0:2bdc88a8d0c9 98
lucio_hallage 0:2bdc88a8d0c9 99 //------Se a mensagem for do tipo STOP, então para os motores------
lucio_hallage 0:2bdc88a8d0c9 100 if (msg.data[0] == stop) {
lucio_hallage 0:2bdc88a8d0c9 101 // move_stop();
lucio_hallage 0:2bdc88a8d0c9 102 pc.printf("Parada recebida: %x\n", msg_stop.data[0]);
lucio_hallage 0:2bdc88a8d0c9 103 EN_A = 0;
lucio_hallage 0:2bdc88a8d0c9 104 EN_B = 0;
lucio_hallage 0:2bdc88a8d0c9 105 IN1A = 0;
lucio_hallage 0:2bdc88a8d0c9 106 IN2A = 0;
lucio_hallage 0:2bdc88a8d0c9 107 IN1B = 0;
lucio_hallage 0:2bdc88a8d0c9 108 IN2B = 0;
lucio_hallage 0:2bdc88a8d0c9 109 }
lucio_hallage 0:2bdc88a8d0c9 110
lucio_hallage 0:2bdc88a8d0c9 111 msg.data[0] = 0x00; // limpa a variavel
lucio_hallage 0:2bdc88a8d0c9 112 }
lucio_hallage 0:2bdc88a8d0c9 113 wait_us(20000); // controla o envio/recebimento de mensagens
lucio_hallage 0:2bdc88a8d0c9 114 }
lucio_hallage 0:2bdc88a8d0c9 115 }