Bil till Arduino meddelande: CAN-Bus sniffning och sänder med Arduino (2 / 4 steg)

Steg 2: Bekanta dig med CAN Bus bibliotek

När monterade, var noga med att ladda ner kan buss bibliotek för användning med din Arduino IDE.

Bibliotek: http://skpang.googlecode.com/files/Canbus_v4.zip

Andra filer och Arduino demos är belägna på den SK Pang webbplatsen under dokument: http://skpang.co.uk/catalog/arduino-canbus-shield-with-usd-card-holder-p-706.html.


CanBus-Shield initiering:

#include < Canbus.h > / / Glöm inte att inkludera dessa
#include < defaults.h >
#include < global.h >
#include < mcp2515.h >
#include < mcp2515_defs.h >

void setup()
{
Serial.BEGIN(9600);
Initiera MCP2515 kan flygledaren vid den specificerade hastigheten
IF(CanBus.init(CANSPEED_500))
Serial.println ("kan Init ok");
annat
Serial.println ("kan inte Init kan");

Delay(1000);
}

Shield initiering kommer att krävas för alla aktiviteter. Här, vi definierar våra kan bitrate och importera vårt bibliotek. Alla fordon kan använda olika bitrate hastigheter. För vår exempel använder vi 500 kbps.

De tillgängliga alternativen är:

CANSPEED_125 //CAN hastighet på 125 kbit/s

CANSPEED_250 //CAN hastighet på 250 kbit/s

CANSPEED_500 //CAN hastighet på 500 kbit/s

Om du är osäker på ditt fordon kan bitrate, göra lite googla...


Läs CanBus-meddelanden:

Vi läser varje meddelande här. Det kan vara lite överväldigande som ni se trafikflödet genom.

  • Alla meddelanden

void loop()
{
Tkan meddelande;

om (mcp2515_check_message())
{
om (mcp2515_get_message(&message))
{
Serial.Print ("ID:");
Serial.Print(Message.ID,hex);
Serial.Print (",");
Serial.Print ("Data:");
för (int jag = 0; jag < message.header.length;i++)
{
Serial.Print(Message.data[i],hex);
Serial.Print("");
}
Serial.println("");
}}
}

Filtrering kommer att skära ut en hel del av buller. (Ser du vad jag menar när du börjar att vädra ofiltrerade.)

  • Filtrera meddelanden

void loop()
{
Tkan meddelande;

om (mcp2515_check_message())
{
om (mcp2515_get_message(&message))
{
IF(Message.ID == 0x631) //filtering baserat på CanBus-meddelande-ID.
{
Serial.Print ("ID:");
Serial.Print(Message.ID,hex);
Serial.Print (",");
Serial.Print ("Data:");
för (int jag = 0; jag < message.header.length;i++)
{
Serial.Print(Message.data[i],hex);
Serial.Print("");
}
Serial.println("");
}}}

}

Message.header.length är storleken på kan meddelande.

Ovanstående var filtreras av meddelande-ID. Vi kan också filtrera baserat på meddelandedata.

om (message.id==0x631 och message.data[3]==0x04 och message.data[4]==0x0F)

Anteckningar:

1 - meddelanden kan vara längre än 3 siffror.

2 - vi formaterar inkommande meddelande-ID: N och meddelandedata som HEX.


Skriv CanBus-meddelanden:

För att skriva en kan buss meddelande, måste vi först montera meddelande komponenter: meddelande-ID, meddelandestorlek och meddelandedata. Meddelandet är uppdelade efter message.id, message.header.rtr, message.header.length och message.data [].

void loop()
{
Tkan meddelande;

Message.ID = 0x631; formaterade i HEX
Message.header.RTR = 0;
Message.header.length = 8; formaterade i DEC
Message.data[0] = 0x40;
Message.data[1] = 0x05;
Message.data[2] = 0x30;
Message.data[3] = 0xFF; formaterade i HEX
Message.data[4] = 0x00;
Message.data[5] = 0x40;
Message.data[6] = 0x00;
Message.data[7] = 0x00;

mcp2515_bit_modify (CANCTRL, (1 << REQOP2) | () 1 << REQOP1) | (1 << REQOP0), 0);
mcp2515_send_message(&Message);

Delay(1000);
}

Meddelande-ID och data skrivs HEX (0xFF, till exempel), vilket är samma format vi läsa med.

mcp2515_send_message(&Message); skickar meddelandet.

Se Steg
Relaterade Ämnen

Hur till sätta fast gemensamma bil problem: hoppa Start, ändra en punktering, och använder Fix-A-Flat.

Bil behöver ett hopp? Punktering? Om du svarat ja på någon av dessa två frågor är du på rätt plats. Jag skapade denna tutorial om hur du får din bil upp och köra igen.I denna tutorial:Del 1: Hur till hoppa börja en bil.Del två: Hur du ändrar en punkt...

Minecraft TNT kanon (laddar och bränder med hjälp av en knapp!!!)

Denna kanon kommer att lansera ett block av aktiva TNT på du mål med en knapptryckning Njut den instructable! Blocket med TNT lanserar upp till 80 block!Steg 1: Vad du behöver 1.) 25 bitar av redstone2.) 25 repeatrar3.) 1 hink med vatten4.) 10 automa...

Hacka din bil CAN-BUS med Arduino och Seeed CAN-BUS sköld

Moderna fordon som alla är utrustade med en CAN-BUS Controller Area Network, istället för att ha en miljon ledningar springa tillbaka och tillbaka från olika enheter i bilen till batteriet, dess som utnyttjar ett mer smart system.Alla elektroniska fu...

Hur man analyserar ett fordons CAN-BUS med en Arduino ansluten till en CAN-BUS sköld och fri programvara.

Maskinvara byggd i en tidigare InstructableI en tidigare instructable Ive visas hur du kan sätta ihop hårdvara för att skanna din kan bussen, den instructable kan hittas här.Jag skapade en forumtråd som förklarar lite mer i detalj,http://techtinker.c...

Spåra och kontrollera din bil via Arduino och Android

Faktiskt, många av oss kan drabbas av eller rädd att hans bil stulits. I detta projekt, kommer jag försöka hjälpa dig att skydda dina bilar och även fjärrstyra dem.I grund och botten måste du lämna en mobiltelefon i bilen och när bilen börjar att fly...

Arduino kontroll/integrera eftermarknad tillbehör via CAN-BUS

Om du ville styra eftermarknad tillbehör med de befintliga kontrollerna i ditt fordon skulle du behöva ansluta en relä till slutet där befintliga fabriken tillbehör är kopplad till.Ett exempel:Du har en 4 x 4 och vill lägga till eftermarknaden spotli...

Smart hemautomation webserver på OpenWRT router WR703N kopplats ihop till Arduino, jämfört med Raspberry Pi och Ubuntu

Hämta WR703N Digest (340MB zip-fil):https://sourceforge.net/projects/wr703n/---------------------------------------------------------------------------------------------------------------------------------Kära läsare,Det finns många Linux styrelser p...

En Arduino Shield som omvandlar din Radio styrd bil till en Robot

Jag har sett en massa Instructables som beskriver hur en Radiostyrd bil kan konverteras till en robot. De flesta av dessa kräver att R/C bil mottagare styrelsen ändras så att avsnittet RF i mottagaren kringgås med vänster/höger/framåt/bakåt signalern...

Kompilera om (Rename) och Flash HIDUINO med ISP att förvandla din Arduino till en HID (usb-midi) enhet

HIDUINO är en firmware (kod) gjorda för att köras på mikrokontroller Atmega8u2 (Arduino UNO Rev 2- och tidigare- eller Mega2560) och Atmega16u2 (Arduino UNO Rev3).Dessa är de som ansvarar för att få datorn och styrelser att prata med varandra. När de...

Skapa egna membran matris knappsatsen (och ansluter den till Arduino)

så du vill skapa din egen membran knappsatsen? Varför? bra att göra din egen knappsats kan vara bra av många skäl. Det är billigt och lätt att göra, den kan placeras i situationer där det kan vara vandaliserade eller stulen utan mycket frustration, h...

Hur gränssnittet fukt och temperaturgivare (DHT11) till Arduino och inklusive DHT11 bibliotek.

DTH11 omfattar både fukt och temperatur sensor.Maskinvarukomponenter krävs:-1) DTH11 Fukt och temperaturgivare2) Arduino UNO3) anslutande trådar4) DTH bibliotekDu kan få sensorn DTH11 datablad från den länken nedanhttp://www.micro4you.com/files/senso...

Arduino och Visuino: ansluta 4D system ViSi Genie smart pekskärm till Arduino

Det kommer en tid, när du vill ha en pekskärm ansluten till din Arduino ombord. Det finns många olika visningsalternativ och storlekar, men de flesta av dem kräver betydande mängd kod kontrolleras, och det är inte lätt att skapa cool letar användargr...

Arduino och Visuino: Använd PCF8574/PCF8574A I2C GPIO att lägga till fler digitala kanaler till Arduino

Oavsett hur många portar en Arduino styrelsen har, de verkar aldrig att vara tillräckligt för de coola nya projekt du har i åtanke ;-). Lyckligtvis finns det en lösning. Arduinoen har både I2C och SPI stift, och det finns ett antal I2C och SPI GPIO c...

Ansluta ESP8266-01 till Arduino UNO / MEGA och BLYNK

Detta är en handledning för att visa dig hur du flash en firmware-ESP8266-01 och ansluter till Blynk med hjälp av en ESP8266 - 01 som en Arduino wifi sköld.Maskinvara som behövs:* Arduino Uno/Mega* Hoppare ledningar* USB A till USB B-kabelESP8266-01P...

Hur till Arduino #1 - installera Arduino och ladda upp en skiss

jag visa hur man installera Arduino på en Mac, prata om Arduino Nano lite, ladda upp en skiss till Arduino och sedan tala om hur brödunderläggen arbete....

Hur till vända på AC ljus och Fan av clap använda Arduino och sund sensor

Hur man gör en klappa byta?? Det är verkligen lätt att få AC apparater att fungera bara genom snapin eller klappa, var försiktig när du använder AC apparater, om du är nybörjare vänligen försök inte detta utan att förstå några grundläggande saker om...

Att utforska Tesla Model S CAN-Bus

Nyligen tänkte jag det kunde vara kul att prova peta runt modell S kan bussen, eftersom bilen är i grunden en stor dator med nästan alla kontroller nås från den stora centralt placerade 17-tums pekskärm. Som jag en gång hörde någon säga, "den enda an...

Weed trimmer motor ersättas med borstlösa RC lastbil motor och använder en Arduino kontroll ombord

I år har jag använt min trimmer med uppgraderade LiPo batterier, ungefär som de som används i en RC-bil. LiPo batterier har fungerat bra och som mycket mer trimmern Använd tid på ganska lite mindre vikt. Problemet var motorn slutligen gav ut häromdag...

Gränsyta för elektroniska kretsar till Arduinos

gränsyta för elektroniska kretsar till ArduinoI detta instructable använder jag ett exempel på gränssnitt en Arduino att en ARINC 429 sändtagare för att demonstrera den allmänna processen för gränssnitt en Arduino att elektroniska kretsar så du kan a...