Innholdsfortegnelse:
- Trinn 1: Maskinvareoppsett og tilkobling
- Trinn 2: Installer programvaren på Arduino
- Trinn 3: Koble den til og begynn å hente data
- Trinn 4: Dataene og hva det betyr
- Trinn 5: Se videoen
Video: Seeed Studio CAN -BUS V2.0 Hacking - Komme i gang: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Denne instruksjonsfilen er ment for nybegynnere som allerede kjenner seg godt rundt Arduino. Den første kunnskapen om hvordan du kommer i gang er alltid smertefull og tidkrevende i ethvert prosjekt. Men til du kjenner deg rundt, skulle du nesten alltid ønske at du hadde noen til å vise deg det grunnleggende.
I denne instruksen vil vi returnere noen CAN-BUS-data fra bilen din.
Og ikke bekymre deg! Jeg kommer helt ned til poenget uten å vandre videre og bruke buzz-ord for å få meg til å høres ut som en smart hacker:-)
Jeg anbefaler personlig Seeed Studio CAN-BUS-skjoldene. Kan ikke snakke for noen av de andre merkene, men CAN-BUS Shield fra SeeedStudio har tjent meg veldig godt.
Viktig merknad: Can-bus-skjoldet er obligatorisk. Jeg noterte dette fordi folk ofte spør om du må bruke et CAN-BUS-skjold. Skjoldet har en MCP2515 (CAN-kontroller) og MCP2551 (transceiver) som vil behandle CAN-BUS-data til den serielle porten på Arduino.
Den nødvendige maskinvaren. Arduino UNO - Enhver arduino -kompatibel vil være tilstrekkelig. Jeg brukte denne
2. SeeedStudio CAN-BUS Shield. Jeg fikk det direkte fra SeeedStudio her er lenken
3. Noen ledninger for å tappe inn i CAN-BUSSEN
4. et kjøretøy du kan hente data fra
Den nødvendige programvaren 1. Arduino IDE, Duh! Åpenbart:-)
2. SeeedStudio CAN-BUS-bibliotek. Kan lastes ned fra GIT Hub
Litt ekstra viktig informasjon hvis du har lyst til å lese mer om SeeedStudio CAN-BUS-skjoldet.
La oss komme i gang!
Trinn 1: Maskinvareoppsett og tilkobling
La oss starte med den vanskeligste delen. Vi må finne et sted i bilen din hvor vi kan kaste oss inn i CAN-BUSSEN. Det er ikke mye jeg kan gjøre for deg her, du må finne ut av dette selv. I mitt tilfelle banket jeg på CAN-BUSSEN via radioen. Ja! radioen. Kjøretøy med integrert billyd stiller vanligvis bil-stereolysbelysningen basert på bilens hodelyktinnstilling for når du kjører om natten. Dette gjøres vanligvis via CAN-BUS interiør.
Jeg brukte en USB -forlengerkabel som har en mannlig USB- og kvinnelig USB -ende. Så jeg kuttet den bare i to og loddet deretter kvinnesiden på radioens kontakt. Det kan være lurt å kjøpe en hunnkontakt for din radiotype, slik at du ikke trenger å spleise inn i bilens ledninger og ugyldiggjøre garantien eller potensielt forårsake brannfare.
Og så den mannlige delen jeg koblet til SeeedStudio CAN-BUS-skjoldet som vist på bildet. På denne måten kan jeg koble til/fra når det er nødvendig.
Tips: Bruk rød ledning for CAN-H og svart for CAN-L
Trinn 2: Installer programvaren på Arduino
Last ned SeeedStudio-biblioteket fra SeeedStudio CAN-BUS wiki.
github.com/Seeed-Studio/CAN_BUS_Shield
Installer biblioteket som vist på bildene.
Velg Sketch Include Library - Legg til.zip -bibliotek fra Arduino IDE.
Etter å ha lagt til biblioteket, lukk Arduino IDE og åpne det igjen. Du vil nå kunne laste inn noen av eksemplene fra Filmeny Fileksempler CAN-BUS-skjermmottak
Last ned eksempelet motta sjekk for denne opplæringen.
Viktig!
Følgende vil kreve litt prøving og feiling.
Jeg brukte min Jeep JK 2010 Rubicon til å hente data, og det er en innvendig buss som kjører på 125Kbs.
I oppsettdelen der den leser
mens (CAN_OK! = CAN.begin (CAN_500KBPS)) måtte jeg endre den til
mens (CAN_OK! = CAN.begin (CAN_125KBPS))
Hvis du tar feil, vil du ikke kunne hente lesbare data. I de fleste tilfeller, inkludert min, vil bilen din gå på skinner. I. E klyngen med lys opp som et juletre og vindusviskerne begynner å bevege seg. fordi buskskjoldet ødelegger bussen.
Trinn 3: Koble den til og begynn å hente data
Før du kobler til, må du ta en sanitetskontroll før du kobler den til bilen din. Det siste du vil gjøre er å sende strøm til din CAN-BUS som potensielt blåser kjøretøyets ECU.
Jeg gjorde ikke en fornuftskontroll, og først etter at jeg skjønte at jeg ikke får data, så jeg at jeg koblet den bærbare USB -en direkte til Arduinos USB -strøm. Heldigvis skjedde ingenting.
På bildene av dette trinnet brukte jeg min Lenovo bærbare datamaskin lastet med Linux Mint. Off-grov kan du bruke et hvilket som helst operativsystem til å koble til Arduinos serielle port, 1. Sett opp den bærbare datamaskinen i bilen og slå på Arduino CAN-BUS-skjoldet med en USB-kabel.
2. Start Putty eller Arduino seriell skjerm (jeg foretrekker Putty). Når den er tilkoblet, bør du se en melding i seriekonsollen som forteller deg at den klarte å initialisere Can-Bus-skjoldet.
3. Slå på bilen. Det trenger ikke å startes så lenge nøkkelen er i på -posisjon.
4. Koble Arduino til CAN-BUS. I det øyeblikket den er tilkoblet, begynner dataene å strømme inn i konsollen.
Trinn 4: Dataene og hva det betyr
Når dataene er hentet, vil de dumpe dem til følgende HEX -format.
ID, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8
ID -en representerer vanligvis en node i bilen din.
La oss ta et enkelt eksempel. (Nedenstående består og er ikke ekte, bare et eksempel)
Klimaanlegg 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 slår på Aircon og setter den på medium vil meldingen se slik ut: 0x402, 13, 8C
det samme gjelder for andre noder, eksempel Sentral låsing Sentral låsing ID = 0x503LÅS alle dører = 14
Så hvis du trykker på knappen for å låse alle dører, vil meldingen se slik ut
0x502, 14
Noen ekstra notater.
Noen meldinger er statsdrevne og noen eller kortvarig.
Eksempel 1. Hodelykter som statlig drevet. Når du setter en bryter i bilen til en bestemt posisjon, vil noden fortsette å sende meldingen om og om igjen. Hvis du måtte forstyrre CAN-BUS, send en melding for å slå av hodelyktene. Den slås kort av og deretter på igjen fordi noden der bryteren er satt til å slå på hodelyktene igjen sender en melding for å slå den på.
Eksempel 2. Hoppe over spor på radioenheten. Når du trykker på en knapp og det er en øyeblikkelig knapp som vil lage og umiddelbart bryte kretsen når du forlater den, vil den sende en melding om å hoppe over sporet og aldri igjen før du spør trykk på knappen igjen.
Vanligvis er øyeblikkelige knapper de mest nyttige fordi du kan kontrollere funksjonene i bilen din ved å sende en enkelt kommando uten å bekymre deg for at kommandoen din skal skrives over. Hvor som statsdrevne funksjoner vil bli overskrevet på ubestemt tid.
Noen tips og ideer
Når du ser at du nå kan dumpe dataene, kan du bruke dem til å bygge dine egne Arduino-kretser som vil reagere basert på meldingene, kan du se på CAN-BUS. for et eksempel. Si at du installerer etter markedslys. Uten å måtte grave i de eksisterende ledningene kan du installere hodelyktene uavhengig og bare slå dem på når Arduino oppdager en melding på CAN-BUS.
Sender data til CAN-BUS
Hvis du fulgte instruksjonene i begynnelsen av denne instruksjonsboken, har du installert SEEEDStudio -bibliotekene. I Arduino IDE er det noen eksempler du kan prøve.
Å kjenne ID-en og CAN0-BUS-meldingen til noden du vil samhandle med.
Dessverre er dette ikke en veldig lett oppgave. Men her er en idé. Bruk Putty's Logging -funksjonen og dump alle sesjonsdata til filen. La Arduino overvåke boksen i omtrent 5 minutter og lagre deretter loggen ut av veien.
Start deretter en ny økt, og begynn å dumpe dataene. Men denne gangen trykker du på en knapp mens dataene dumpes. Ikke trykk på mer enn én knapp. Trykk på knappen et par ganger for å garantere at den fanget knappetrykket.
Bruk deretter et slags sammenligningsverktøy og sammenlign filen for å se forskjellene. Excel fungerer bra for dette.
Noen koder du kan prøve
Hvis du har samme Jeep 2010 Rubicon -modell som meg (jeg er sikker på at nedenstående også vil fungere for modellene '07, '08', 09)
Du kan prøve følgende meldinger. Last inn sendeksemplene fra Arduino -eksempler -menyen, og endringen var relevant.
Koble til bakre skap: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);
Venstre blinklys På: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);
Høyre blinklys på: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);
ESP På/Av: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);
I min neste instruks vil jeg sende noen data til min jeeps CAN-BUS for å demonstrere hvordan du kan forstyrre den.
Lykke til!
Trinn 5: Se videoen
Se videoen for mer CAN-BUS godhet!
Anbefalt:
Arduino Parking Assistant - Parker bilen på riktig sted hver gang: 5 trinn (med bilder)
Arduino Parking Assistant - Parker bilen din på riktig sted hver gang: I dette prosjektet viser jeg deg hvordan du bygger din egen parkeringsassistent ved hjelp av en Arudino. Denne parkeringsassistenten måler avstanden til bilen din og veileder deg til å parkere den på riktig sted ved hjelp av en LCD -skjermavlesning og en LED, som fortsetter
Cosmo Clock - Endrer farge hver gang en astronaut går inn i rommet: 8 trinn (med bilder)
Cosmo Clock - Endrer farge hver gang en astronaut kommer inn i verdensrommet: Hei! Er du en plassentusiast? Hvis ja så hi-fi! Jeg elsker plass og astronomi. Tydeligvis er jeg ingen astronaut for å gå opp dit og se nærmere på universet. Men hver gang jeg finner ut at en person fra jorden har reist til himmelen, blir jeg inspirert
Kom i gang med Arduino Nano: 5 trinn
Kom i gang med Arduino Nano: Arduino Nano er en av de tilgjengelige Arduino -bordmodellene. Har en liten størrelse, komplett funksjon og enkel å bruke. Har en størrelse 1,70 tommer x 0,7 tommer, Arduino nano har en komplett funksjon, for eksempel: Atmel ATmega 328 IC, Restar -knapp, 4 indikator -lysdioder, 3V3 Re
Har du noen gang ønsket å ha en videodørtelefon ?: 12 trinn
Har du noen gang ønsket å ha en videodørtelefon ?: Innledning Først ønsket jeg å bruke min faktiske Windows 10 -telefon og Windows Virtual Shields for å sette opp video- og lydforbindelsen til min Windows 10 -PC. Men dette var for vanskelig å innse for en nybegynner som meg, da jeg ville ha trengt å skrive i tide
Kom i gang med Python: 7 trinn (med bilder)
Kom i gang med Python: Programmering er fantastisk! Det er kreativt, morsomt og gir hjernen din en mental trening. Mange av oss ønsker å lære om programmering, men overbeviser oss selv om at vi ikke kan. Kanskje den har for mye matematikk, kanskje sjargongen som kastes rundt skremmer