Indholdsfortegnelse:
- Trin 1: Hardwareopsætning og forbindelse
- Trin 2: Installer softwaren på Arduino
- Trin 3: Tilslut det, og begynd at hente data
- Trin 4: Dataene og hvad det hele betyder
- Trin 5: Se videoen
Video: Seeed Studio CAN -BUS V2.0 Hacking - Kom godt i gang: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Denne instruerbare er beregnet til begyndere, der allerede kender deres vej rundt i Arduino. Den indledende viden om, hvordan man kommer i gang, er altid smertefuld og tidskrævende i ethvert projekt. Men indtil du kender din vej rundt, ville du næsten altid ønske, at du havde nogen til at vise dig det grundlæggende.
I denne instruktør returnerer vi nogle CAN-BUS-data fra dit køretøj.
Og bare rolig! Jeg kommer helt ned til sagen uden at vandre videre og bruge buzz-ord for at få mig til at lyde som en smart hacker:-)
Jeg anbefaler personligt Seeed Studio CAN-BUS-skjoldene. Kan ikke rigtig tale for nogen af de andre mærker, men CAN-BUS Shield fra SeeedStudio har tjent mig meget godt.
Vigtig note: Can-bus-skjoldet er obligatorisk. Jeg lavede denne note, fordi folk ofte spørger, om du skal bruge et CAN-BUS-skjold. Skjoldet har en MCP2515 (CAN-controller) og MCP2551 (transceiver), der behandler CAN-BUS-data til den serielle port på din Arduino.
Den nødvendige hardware 1. Arduino UNO - Enhver arduino -kompatibel er tilstrækkelig. Jeg brugte denne
2. SeeedStudio CAN-BUS Shield. Jeg fik det direkte fra SeeedStudio her er linket
3. Nogle ledninger til at trykke på CAN-BUS
4. et køretøj, du kan hente data fra
Den nødvendige software 1. Arduino IDE, Duh! Naturligvis:-)
2. SeeedStudio CAN-BUS-bibliotek. Kan downloades fra GIT Hub
Nogle ekstra vitale oplysninger, hvis du har lyst til at læse mere om SeeedStudio CAN-BUS-skjoldet.
Lad os komme igang!
Trin 1: Hardwareopsætning og forbindelse
Lad os starte med den sværeste del. Vi skal finde et sted i din bil, hvor vi kan trykke på CAN-BUS. Der er ikke meget jeg kan gøre for dig her, du skal selv finde ud af det. I mit tilfælde bankede jeg på CAN-BUS via radioen. Ja! radioen. Køretøjer med integreret billyd indstiller normalt bilens stereolysbelysning baseret på bilens forlygteindstilling til, når du kører om natten. Dette gøres normalt via den indre CAN-BUS.
Jeg brugte et USB -forlængerkabel, der har en han -USB og en hun -USB -ende. Så jeg skar den bare i halve og loddet derefter hun -siden på radioens stik. Det kan være en god idé at købe et hunstik til din radiotype, på den måde behøver du ikke splejse ind i dit køretøjs ledninger og annullere din garanti eller muligvis forårsage brandfare.
Og så tilsluttede handelen til SeeedStudio CAN-BUS-skjoldet som vist på billedet. På denne måde kan jeg tilslutte/afbryde når det er nødvendigt.
Tip: Brug rød ledning til CAN-H og sort til CAN-L
Trin 2: Installer softwaren på Arduino
Download SeeedStudio-biblioteket fra SeeedStudio CAN-BUS-wiki.
github.com/Seeed-Studio/CAN_BUS_Shield
Installer biblioteket som vist på billederne.
Vælg Sketch Include Library - Tilføj.zip -bibliotek fra Arduino IDE.
Efter tilføjelse af biblioteket skal du lukke Arduino IDE og genåbne det. Du vil nu kunne indlæse nogle af eksemplerne fra menuen Filer Fileksempler CAN-BUS-skærm Modtag check
For denne vejledning indlæses eksempelet modtag check.
Vigtig!
Følgende vil kræve en del forsøg og fejl.
Jeg brugte min Jeep JK 2010 Rubicon til at hente data, og dens indre bus kører på 125Kbs.
I opsætningsafsnittet, hvor den læser
mens (CAN_OK! = CAN.begin (CAN_500KBPS)) måtte jeg ændre det til
mens (CAN_OK! = CAN.begin (CAN_125KBPS))
Hvis du får dette forkert, vil du ikke kunne hente læsbare data. I de fleste tilfælde inklusive min vil dit køretøj gå amok. I. E klyngen med lyser op som et juletræ, og viskerne begynder at bevæge sig. fordi dåsebusskærmen ødelægger bussen.
Trin 3: Tilslut det, og begynd at hente data
Inden du tilslutter, bedes du tage en sundhedstjek, før du tilslutter den til din bil. Det sidste, du vil gøre, er at sende strøm til din CAN-BUS, der muligvis blæser i dit køretøjs ECU.
Jeg foretog ikke en sundhedstjek, og først da jeg indså, at jeg ikke får data, så jeg, at jeg tilsluttede den bærbare computers USB direkte til Arduinos USB -strøm. Heldigvis skete der ikke noget.
På billederne af dette trin brugte jeg min Lenovo bærbare computer fyldt med Linux Mint. Off-grov kan du bruge ethvert operativsystem til at oprette forbindelse til din Arduinos serielle port, 1. Opsæt den bærbare computer i dit køretøj, og tænd for Arduino CAN-BUS-skjoldet med et USB-kabel.
2. Start Putty eller Arduino seriel skærm (jeg foretrækker Putty). Når den er tilsluttet, skal du se en meddelelse i den serielle konsol, der fortæller dig, at det lykkedes at initialisere Can-Bus-skjoldet.
3. Tænd for køretøjet. Det behøver ikke at startes, så længe nøglen er i tændt position.
4. Tilslut Arduino til CAN-BUS. I det øjeblik det er tilsluttet, begynder dataene at streame ind i konsollen.
Trin 4: Dataene og hvad det hele betyder
Når dataene hentes, dumpes de i følgende HEX -format.
ID, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8
ID'et repræsenterer normalt en knude i dit køretøj.
Lad os lave et enkelt eksempel. (Nedenstående er opbygget og ikke ægte, bare et eksempel)
Aircondition Node ID = 0x402TURN AIRCON OFF = 13TURN AIRCON ON = 14 SET AIRCON BLOWER TO LOW = 7C SET AIRCON BLOWER TO MEDIUM 8C SET AIRCON BLOWER TO HIGH 9C
Så hvis vi tænder for Aircon og sætter den på medium, ser beskeden sådan ud: 0x402, 13, 8C
det samme gælder for andre noder, f.eks. Central låsning
Så hvis du trykker på knappen for at låse alle døre, ser meddelelsen sådan ud
0x502, 14
Nogle ekstra noter.
Nogle meddelelser er statsdrevne og nogle eller kortvarigt.
Eksempel 1. Forlygter som statsdrevne. Når du indstiller en kontakt i bilen til en bestemt position, vil noden blive ved med at udsende meddelelsen igen og igen. Hvis du skulle forstyrre CAN-BUS'en, skal du sende en besked for at slukke forlygterne. Den slukker og tændes kortvarigt, fordi den knude, hvor kontakten er indstillet til at tænde forlygterne, igen sender en besked for at tænde den.
Eksempel 2. Springer numre over på din radiohovedenhed. når du trykker på en knap og dens en kortvarig knap, der vil lave og straks bryde kredsløbet, når du forlader det, sender det en besked for at springe sporet over og aldrig igen, før du beder om at trykke på knappen igen.
Normalt er øjeblikkelige knapper de mest nyttige, fordi du kan styre funktioner i dit køretøj ved at sende en enkelt kommando uden at skulle bekymre dig om, at din kommando bliver overskrevet. Hvor som statsdrevne funktioner vil blive overskrevet på ubestemt tid.
Nogle tips og ideer
Når du ser, at du nu er i stand til at dumpe data, kan du bruge dem til at bygge dine egne Arduino-kredsløb, der vil reagere baseret på meddelelserne, kan du se på CAN-BUS. for et eksempel. Sig, at du installerer eftermarkeds spotlys. Uden at skulle grave i dine eksisterende ledninger kan du installere dine forlygter uafhængigt og kun tænde dem, når din Arduino registrerer en besked på CAN-BUS.
Sender data til CAN-BUS
Hvis du fulgte instruktionen i begyndelsen af denne instruerbare, har du installeret SEEEDStudio -bibliotekerne. I Arduino IDE er der nogle eksempler, du kan prøve.
Kendskab til id'et og CAN0-BUS-meddelelsen for den knude, du vil interagere med.
Desværre er dette ikke en meget let opgave. Men her er en idé. Brug Putty's Logging -funktion og dump alle sessionsdata til fil. Lad Arduino overvåge dåsebussen i cirka 5 minutter og gem derefter loggen ud af vejen.
Start derefter en ny session, og begynd at dumpe dataene. Men denne gang, mens dens dumping dataene trykke på en knap. Tryk ikke på mere end en knap. Tryk på knappen et par gange for at sikre, at den fangede knappen.
Brug derefter en slags sammenligningsværktøj og sammenlign filen for at se forskellene. Excel fungerer godt til dette.
Nogle koder kan du prøve
Hvis du har den samme Jeep 2010 Rubicon -model som mig (jeg er sikker på, at nedenstående også vil fungere for modellerne '07, '08', 09)
Du kan prøve følgende meddelelser. Indlæs sendeeksemplerne fra menuen Arduino -eksempler, og ændringen var relevant.
Aktiver baglås.: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);
Venstre blinklys Til: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);
Right Blinker On: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);
ESP On/OFF: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);
I min næste instruks vil jeg sende nogle data til min Jeeps CAN-BUS for at demonstrere, hvordan du kan forstyrre det.
Held og lykke!
Trin 5: Se videoen
Se videoen for mere CAN-BUS godhed!
Anbefalede:
Det er godt med min sjæl, med Sonic Pi: 4 trin
It Is Well With My Soul, With Sonic Pi: I denne Instructable vil jeg vise, hvordan man laver et smukt, men enkelt, It Is Well With My Soul -nummer ved hjælp af Sonic Pi. Herunder vil jeg inkludere det komplette spors kode. er en let at bruge Live Programming Synth. På kun tre dages studie i
FridgePi: Rester lød aldrig så godt: 7 trin (med billeder)
FridgePi: Rester har aldrig lydt så godt: I årevis har jeg spillet luft fra iPhone til et stereoanlæg i kælderen, med højttalere kablet tilbage i køkkenet. Det fungerer godt nok, men dræner min telefons batteri og begrænser indholdet til mit iTunes -bibliotek eller en webrad
Gør din skærm usynlig (godt næsten): 4 trin
Gør din skærm usynlig (godt næsten): Opret en skrivebordsbaggrund for at underholde og forvirre dine venner og kolleger ved hjælp af kun et digitalt kamera og lidt rodning
Få ITunes til at lyde rigtig godt: 4 trin
Få ITunes til at lyde rigtig godt: Konfigurer din iTunes -equalizer for at få din musik til at lyde rigtig god. Nyd din musik endnu mere! Bemærk: Resultaterne varierer afhængigt af din højttaleropsætning og den musik, du lytter til
Sådan tape en high school play (godt): 6 trin (med billeder)
Sådan optager du et gymnasium (godt): Hej alle- Gennem mine år på gymnasiet var jeg virkelig involveret i drama-programmet, specifikt med besætningen. Startede med byggeri, flyttede til løb, derefter til belysning, og nu hvor jeg er færdiguddannet, blev jeg trukket tilbage for at hjælpe med belysning