Boas pessoal, estou fazendo uma adaptação de uma direção elétrica em um bugre, porém ela funciona em modo de emergência por está fora do carro original, onde receberia mensagem de rpm do motor e velocidade da roda via can-bus, pesquisando em foruns gringos, vi que usaram um código pra enviar a mensagem com um microcontrolador chamado Particle Photon/Particle Electron/red bear du, conforme o link http://docs.carloop.io/ pra falar a verdade nunca tinha ouvido falar desses microcontroladores.

Eu conseguiria usar o código deles adaptado pra um arduíno com um modulo can mcp2515 ?

Segue o código abaixo

 

 

// Don't block the main program while connecting to WiFi/cellular.
// This way the main program runs on the Carloop even outside of WiFi range.
SYSTEM_THREAD(ENABLED);

// Tell the program which revision of Carloop you are using.
Carloop carloop;

// Send a message at a regular time interval
void sendMessage() {
static uint32_t lastTransmitTime = 0;
uint32_t transmitInterval = 100; /* ms */
uint32_t now = millis();
if (now - lastTransmitTime > transmitInterval) {
CANMessage message;

// A CAN message has an ID that identifies the content inside message.id = 0x2C4;  // It can have from 0 to 8 data bytes message.len = 8;  // Pass the data to be transmitted in the data array message.data[0] = 0x06; message.data[1] = 0x8A; message.data[2] = 0x00; message.data[3] = 0x19; message.data[4] = 0x00; message.data[5] = 0x00; message.data[6] = 0x92; message.data[7] = 0x09;  // Send the message on the bus! carloop.can().transmit(message);  lastTransmitTime = now;

}
}

void setup() {
// Configure the CAN bus speed for 500 kbps, the standard speed for the OBD-II port.
// Other common speeds are 250 kbps and 1 Mbps.
// If you don't call setCANSpeed, 500 kbps is used.
carloop.setCANSpeed(500000);

// Connect to the CAN bus
carloop.begin();
}

void loop() {
sendMessage();
}

 

Exibições: 268

Responder esta

Respostas a este tópico

Olá, Felipe!

   Este código contém millis() e loop(), coisas típicas de Arduino.

   Provavelmente ele foi escrito com a IDE do Arduino para uma placa Arduino compatível.

   Tente encontrar o esquema da placa ou a informação de compatibilidade da mesma com a plataforma Arduino para ver se não é como se fosse um Arduino.

   Acho que a chance de sucesso nesta empreitada é muito grande.

Sds.

D. T. Ribeiro.

Não consegui copiar o codigo completo, o codigo completo está aqui , https://community.carloop.io/t/modifying-can-transmit-sample-app-to...

Olá Felipe.

   Até onde eu pude perceber do link que você enviou, a única coisa que o programa faz é enviar sempre a mesma mensagem 0x06, 0x8A, 0x00, 0x19, 0x00, 0x00, 0x92, 0x09 para o nó 0x2C4 a cada 100 ms.

   Acho que se você conseguir fazer isto com um Arduino e um shield CAN, deverá funcionar.

Boa sorte.

D. T. Ribeiro

P.S.: Programa copiado em anexo. Parece estar completo, mas provavelmente você terá de modificá-lo  para compatibilizar com o teu hardware.

Send_CAN_Msg_100ms.ino

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço