Përmbajtje:
- Furnizimet
- Hapi 1: MUND të nuhasësh autobusin
- Hapi 2: Dërgimi i komandave në Stereo
- Hapi 3: Ndërtimi i përshtatësit
- Hapi 4: Softueri
- Hapi 5: Shtojca e Projektit
- Hapi 6: Mendimet përfundimtare
Video: Çelësat e timonit në përshtatësin stereo të makinës (CAN Bus -> Key1): 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Çelësi 1) "src =" https://content.instructables.com/ORIG/F3X/UXCI/KCT3F9KZ/F3XUXCIKCT3F9KZ-p.webp
Çelësi 1) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">
Disa ditë pasi bleva një makinë të përdorur, zbulova se nuk mund të luaja muzikë nga telefoni im përmes stereos së makinës. Edhe më zhgënjyese ishte se makina kishte bluetooth, por lejonte vetëm thirrje zanore, jo muzikë. Ai gjithashtu kishte një port USB të Windows Phone, por nuk do të punonte me një iPhone pa një dongle 60 $.
Pasi zëvendësova stereot në makinat e mia të mëparshme, pa shumë mendime ose kërkime, porosita një stereo zëvendësuese prej 40 dollarësh nga një faqe në internet e njohur "e lirë". Stereo erdhi me një aparat fotografik të kundërt, Car Play dhe një mori karakteristikash shtesë, të cilat dukeshin një vlerë shumë më e mirë sesa dongle më të shtrenjta që bën vetëm një gjë.
Pasi bleva dhe pikturova një pllakë të re, printim 3D të një montimi dhe shumë punë shtesë (të cilat mund të ishin të udhëzueshme në vetvete), arrita në një zbulim të pakëndshëm. Komandat kryesore të timonit u dërguan përmes autobusit CAN, por stereo kishte vetëm një hyrje Key1. Duke mos qenë një nga ata që hiqnin dorë në gjysmë të rrugës, porosita një përshtatës 60, i cili doli se nuk funksiononte. Në këtë pikë vendosa të bëj një përshtatës vetë.
Unë nuk jam një inxhinier elektrik, kam vetëm njohuri rudimentare të elektronikës dhe ky ishte një projekt mësimi dhe eksplorimi për mua. Këshilla ime do të ishte që së pari të kontrolloni specifikimet e automjetit tuaj dhe të porositni një radio të pajtueshme, por nëse tashmë keni ngecur (siç isha unë) ndiqni udhëzimet me përgjegjësinë tuaj.
Furnizimet
Përshtatësi (përafërsisht 15 $)
- Arduino Pro Mini 5V (ose një bord i pajtueshëm)
- Moduli i autobusit MCP2515 CAN
- Dërrasë perfe 60x80mm
- Potenciometër dixhital X9C104 100K Ohm (varet nga stereo juaj)
- DC-DC Hapi poshtë rregullatori LM2596S 3-40V 3A
- Mbajtës i siguresave kabllore + siguresë (100-200 Ohm)
- Kuti projekti ose printer 3D për ta printuar
- Priza stereo makine (mashkull + femër)
- Furnizime bashkimi, tela, etj.
Ndihmuesit e testit (nuk nevojiten rreptësisht, por do ta bëjnë testimin shumë më të lehtë)
- Arduino (çdo bord 5V do të bëjë)
- Moduli i autobusit MCP2515 CAN
- Breadboard + kërcyes
Hapi 1: MUND të nuhasësh autobusin
Në vend që një bandë tela të kalojnë brenda në makinën tuaj duke lidhur një mori sistemesh, disa automjete moderne kanë palë tela që kalojnë në secilin komponent. Informacioni dërgohet si pako dixhitale e të dhënave përmes këtyre telave dhe të gjitha sistemet mund të lexojnë të gjitha mesazhet. Ky është rrjeti i autobusëve CAN (mund të ketë rrjete të shumta në makinën tuaj, kështu që të gjitha informacionet mund të mos jenë të dukshme).
Ajo që duam të bëjmë, është të lidhemi me rrjetin e autobusëve CAN dhe të "nuhasim" trafikun e të dhënave. Në këtë mënyrë ne mund të "shohim" kur shtypet çelësi i timonit. Çdo paketë ka një ID, e cila përfaqëson nënsistemin e automjetit që ka dërguar paketën dhe të dhënat që përfaqësojnë gjendjen e sistemit. Në këtë rast ne po përpiqemi të gjejmë ID -në e nënsistemit që dërgon mesazhet kryesore të timonit, dhe paraqitjen e të dhënave të secilit çelës.
Nëse jeni me fat ju mund të gjeni vlerat për makinën tuaj diku në internet dhe mund ta kaloni këtë hap.
Ky proces është pak i përfshirë dhe tashmë është shpjeguar në vende të tjera, kështu që unë vetëm do ta përmbledh atë:
- Gjeni vlerat e sakta për komunikimin CAN bus në automjetin tuaj. Për makinën time (një Fiat Idea 2009) ishte një normë baud 50KBPS, dhe një shpejtësi ora 8MHz.
- Lidhuni me rrjetin e autobusëve CAN duke përdorur modulin e autobusit CAN dhe një Arduino në një konfigurim "sniffer".
- Lexoni vlerat e autobusit CAN në laptopin tuaj duke përdorur një mjet të tillë si https://github.com/alexandreblin/python-can-monito…. Do të jetë shumë e vështirë ta bësh këtë pa të, pasi shumë mesazhe dërgohen edhe kur makina nuk po bën asgjë.
- Shtypni butonin e timonit dhe vini re ndryshimet e vlerës. Kjo mund të jetë pak e ndërlikuar pasi shumë mesazhe dërgohen dhe mund të jetë e vështirë të kuptosh se cili është cili.
Këtu janë dy artikuj të shkëlqyeshëm që shpjegojnë procesin në thellësi:
- https://medium.com/@alexandreblin/can-bus-reverse-…
- https://www.instructables.com/id/CAN-Bus-Sniffing-…
Në fund ju duhet të keni ID -në e nënsistemit të cilin do ta përdorim për të dëgjuar vetëm mesazhet e autobusit CAN të timonit, dhe një listë të vlerave heksadecimale për komandat kryesore. Në rastin tim, të dhënat dukeshin kështu:
ID | ID Hex | Bajt 0 | Bajt 1 | Butoni
------------------------------------------------- 964 | 3C4 | 00 | 00 | Nuk ka butona 964 | 3C4 | 04 | 00 | SRC 964 | 3C4 | 10 | 00 | >> 964 | 3C4 | 08 | 00 | << 964 | 3C4 | 00 | 80 | Telefoni 964 | 3C4 | 00 | 08 | ESC 964 | 3C4 | 80 | 00 | + 964 | 3C4 | 40 | 00 | - 964 | 3C4 | 00 | 40 | Fito 964 | 3C4 | 00 | 02 | Deri në 964 | 3C4 | 00 | 01 | Poshtë 964 | 3C4 | 00 | 04 | Ne rregull
ID e nënsistemit është 3C4 (në këtë rast), i cili është një numër heksadecimal, kështu që ne duhet ta shkruajmë si 0x3C4 në skicat Arduino. Ne jemi të interesuar edhe për bajtët 0 dhe 1 (në rastin tuaj mund të ketë më shumë bajt). Këto janë gjithashtu vlera heksadecimale, kështu që ato gjithashtu duhet të shkruhen me 0x kryesore.
Nëse i konvertoni vlerat në binare, do të vini re se bitët nuk mbivendosen (për shembull + 0b10000000 dhe - 0b01000000) kjo është kështu që shumë çelësa mund të shtypen në të njëjtën kohë.
Unë sugjeroj ndërtimin e snifferit me materialet e listuara në seksionin "ndihmësi i testit", kështu që mund ta ripërdorni më vonë për të simuluar makinën tuaj. Kjo do t'ju shpëtojë nga nevoja për t'u ulur në makinën tuaj gjatë gjithë kohës kur jeni duke ndërtuar dhe testuar përshtatësin. Ju mund të përdorni skicën e dhënë për të vepruar si imitues. Ndryshoni "subsystemId", "data0" dhe "data1" me vlerat që keni nuhatur.
Hapi 2: Dërgimi i komandave në Stereo
Para se të filloni të ndërtoni përshtatësin, është mirë që së pari të provoni nëse stereo mund të marrë komanda.
Unë kisha një bateri rezervë të makinës, kështu që e lidha stereo direkt me të. Nëse keni një burim energjie të stolit 12V, edhe më mirë. Fatkeqësisht nuk gjeta shumë informacion në internet në lidhje me hyrjen Key1 në njësinë time, kështu që iu drejtova eksperimentimit. Unë nuk isha shumë i shqetësuar për djegien e stereos në këtë pikë, pasi është relativisht i lirë, dhe kjo ishte përpjekja ime e fundit e hendekut për ta bërë atë të funksionojë me makinën time.
Stereo ka një ekran mësimi të komandës, ku është e mundur të zgjidhni një nga dy vlerat e rezistencës (1K dhe 3.3K) dhe të shihni vlerën e "tensionit" (0-255). "Tensioni" citohet sepse është çorientues. Kam kaluar shumë kohë duke aplikuar tensione të ndryshme në Key1 pa fat. Unë gjithashtu u përpoqa duke përdorur rezistorë të ndryshëm për të aplikuar tensionin pa fat.
Përparimi erdhi kur u përpoqa të prekja telin Key1 në tokën e baterisë, e cila rezultoi në rënien e "tensionit" në 0. Kjo në kombinim me rezistorë të ndryshëm do të prodhonte vlera të qëndrueshme të "tensionit" në ekranin mësimor.
Tani që dija si të dërgoja hyrje në stereo, më duhej një mënyrë për t'i dërguar ato nga një Arduino. Në këtë pikë nuk kam dëgjuar për multiplexerët, të cilët së bashku me disa rezistorë, mund të kenë qenë një zgjidhje më e shpejtë dhe më e besueshme (ende nuk jam i sigurt nëse kjo është e realizueshme), kështu që kam përdorur një potenciometër dixhital. Në fillim kisha probleme me funksionimin e tenxhere dixhitale, derisa kuptova se më duhet ta lidh atë si një reostat për të vepruar si një rezistencë e ndryshueshme në vend të një ndarësi të tensionit. Në thelb më duhej të lidhja terminalet RH dhe RW.
Përveç rezistencës, koha ishte vendimtare. Nëse rënia e rezistencës është shumë e shkurtër, komanda nuk do të regjistrohet. Nëse është shumë e gjatë, mund të regjistrohet disa herë. Një rënie prej 240ms, e ndjekur nga një vonesë prej 240ms derisa komanda tjetër të funksiononte mjaft e besueshme për stereon tim. Ndërsa kjo duket si shumë pak kohë, do të thotë që ne mund të dërgojmë një maksimum prej 2 komandash në sekondë, gjë që është e dukshme nëse përpiqeni ta ulni shpejt volumin lart ose poshtë. Unë u përpoqa të luaja me orare dhe modele të ndryshme, të cilat e rritën shpejtësinë, por nuk ishin shumë të besueshme. Nëse keni ndonjë ide se si ta përmirësoni këtë, ju lutemi lini ato në komente.
Para se të vazhdoni më tej, unë sugjeroj të ndërtoni një prototip për të kontrolluar nëse stereo juaj pranon të njëjtin lloj të dhëna. Edhe nëse pranon tensione të ndryshme, përshtatësi duhet të punojë me ndryshime të vogla në instalime elektrike dhe skicën Arduino.
Hapi 3: Ndërtimi i përshtatësit
Pas testimit të të gjithë përbërësve veç e veç, dhe provimit të tyre së bashku në një pjatë, ishte koha për t'u dhënë atyre një shtëpi më të përhershme. Kjo kërkoi disa orë për vendosjen e përbërësve dhe bashkimin.
Në pjesën e sipërme të majtë është rregullatori i zbritjes, i cili transformon 12V nga bateria e makinës, në 5V e cila mund të përdoret nga përbërësit e tjerë.
Në pjesën e poshtme të majtë është moduli i autobusit CAN, i cili lexon vlerat nga rrjeti i autobusëve CAN i makinës dhe i përcjell ato në Arduino.
Në të djathtën e sipërme është potenciometri dixhital (i lidhur si reostat) që vepron si një rezistencë e ndryshueshme midis tokës dhe hyrjes stereo Key1.
Në pjesën e poshtme të djathtë është Arduino, i cili vepron si truri i përshtatësit, duke transformuar mesazhet e autobusit CAN në rezistenca të cilat lexohen nga stereo.
Në hyrjen 12V është një siguresë 150mA, që ka shumë të ngjarë që nuk do të mbrojë qarkun, por është atje për të parandaluar një zjarr në rast të një shkurtimi.
Hapi 4: Softueri
Pas shkarkimit, vendosni të tre skedarët.ino në një dosje të vetme. Në atë mënyrë të gjithë do të jenë pjesë e të njëjtës skicë dhe do të vendosen së bashku në Arudino.
Ju gjithashtu duhet të shtoni bibliotekat e kërkuara në Arduino IDE. Për ta bërë këtë, shkarkoni skedarët e mëposhtëm:
github.com/autowp/arduino-mcp2515/archive/…
github.com/philbowles/Arduino-X9C/archive/…
pastaj shtojini të dyja duke shkuar te Sketch> Include Library> Add. Zip Library…
CanBusStereoAdapter.ino
Konfigurimi bazë kryhet në këtë skedar.
Komanda kryesore Vlerat e autobusit CAN përcaktohen në krye. Nëse nuk keni të njëjtën makinë si unë, ka shumë të ngjarë të keni për të vënë vlerat tuaja. Ju mund të përdorni vlerat heksadecimale nga sniffer, unë përdorën binar kështu që është më e lehtë të shihet se nuk ka mbivendosje aksidentale në copa.
Të gjitha makinat nuk kanë të njëjtat komanda të timonit, prandaj mos ngurroni të hiqni, shtoni ose modifikoni vlerat e përcaktuara.
Mos harroni të zëvendësoni id -në e nënsistemit tuaj në "STEERING_ID".
CanBus.ino
Ky skedar krijon dëgjuesin e autobusit CAN, interpreton paketat dhe vendos vlerat e rezistencës në një tampon rrethor.
Rregulloni konfigurimin e autobusit CAN në funksionin "setupCanBus" që i përshtatet makinës tuaj.
Ne përdorim një tampon rrethor sepse, siç u përmend më herët, hyrja e komandës së timonit është shumë më e shpejtë se hyrja stereo. Në këtë mënyrë ne nuk humbasim asnjë komandë ndërsa potenciometri dixhital po bën punën e tij. Nëse futim shumë komanda, më të vjetrat do të hidhen së pari, pasi ato janë më pak të rëndësishme. Kjo gjithashtu na lejon të trajtojmë rastin kur shtypen butona të shumtë, pasi hyrja stereo pranon vetëm një vlerë të vetme në të njëjtën kohë.
Nëse keni ndryshuar ndonjë nga përkufizimet e komandës në "CanBusStereoAdapter.ino" do t'ju duhet gjithashtu t'i përditësoni ato në funksionin "handleMessageData". "handleMessageData" kontrollon nëse kornizat e dhëna të të dhënave të autobusit CAN përmbajnë ndonjë nga komandat e njohura duke përdorur një operacion bitwise AND.
Për shembull, nëse kam shtypur >> dhe + në të njëjtën kohë që do të na japë një kornizë të dhënash me një vlerë prej 0b10010000. >> (për makinën time) është 0b00010000 në binar, dhe + është 0b10000000.
--------------- >> -------------- + ------------- << --- - të dhëna 0 | 0b10010000 | 0b10010000 | Komanda 0b10010000 | DHE 0b00010000 | DHE 0b10000000 | DHE 0b00001000 rezultat | = 0b00010000 | = 0b10000000 | = 0b00000000
Këtu mund të shohim se rezultati i operacionit AND do të jetë më i madh se 0 nëse komanda është e pranishme në kornizën e të dhënave. Pra, gjithçka që duhet të bëjmë është të kontrollojmë për {data frame} & {command value}> 0, për secilën komandë që kemi përcaktuar.
Mbani në mend se çdo kornizë e të dhënave përmban komanda të ndryshme, kështu që është mirë nëse vlerat e komandës janë të njëjta, pasi ne po i kontrollojmë ato kundër kornizave të tyre. Në shembullin tim të dy << dhe ESC të dy kanë të njëjtën vlerë 0b00001000 (0x08), por << është në data0 dhe ESC në të dhënat1.
Pasi të kemi përcaktuar që një komandë është e pranishme në një kornizë, ne shtojmë një vlerë dixhitale të tenxhere në tampon rrethor. Vlerat variojnë nga 0 në 99, por unë kam vënë re se "tensioni" i lexuar nga stereo nuk është linear, kështu që provoni vlerat për veten tuaj.
DigitalPot.ino
Ky skedar nxjerr vlerat nga tamponi rrethor dhe i dërgon ato në tenxhere dixhitale për t'u ekzekutuar. Në rastin tim "pot.setPotMin (false);" do të rrisë rezistencën në maksimum, të cilën stereo do ta lexojë si "tension" maksimal. Stereoja juaj mund t'ju kërkojë të vendosni tenxheren dixhitale në minimum, kështu që provojeni.
Hapi 5: Shtojca e Projektit
Unë kam një printer 3D kështu që vendosa të printoj një mbyllje me dy pjesë për përshtatësin tim. Unë kam përfshirë një skedar Fusion 360 të cilin mund ta redaktoni dhe skedarë gcode që do të përshtaten me një tabelë 60x80mm.
Nëse nuk keni qasje në një printer 3D, mund të përdorni një rrethim të gatshëm të projektit ose një enë të fortë.
Hapi 6: Mendimet përfundimtare
Fillimisht planifikova që përshtatësi të lidhej me energji të vazhdueshme dhe të zgjohesha në mesazhe të caktuara të autobusit CAN, pasi makina ime nuk ka një tel ndezës në ndarjen stereo. Më vonë vendosa kundër tij pasi nuk doja të rrezikoja të mbaroja baterinë dhe të shqetësohesha për përshtatësin ndërsa jam larg makinës. Kam përdorur një ndarës të kutisë së siguresave të makinës për të drejtuar një tel ndezës dhe nuk duhet ta komplikoj përshtatësin më tej.
Nga testet e mia, konsumi i energjisë është 20-30 mA. Unë e zbrita atë në 10 mA në modalitetin e gjumit dhe mund të shkoja edhe më poshtë duke hequr LED -të nga përbërësit, por vendosa të mos shqetësohem me të pasi do të funksionojë vetëm ndërsa makina po funksionon.
Unë jam mjaft i kënaqur me rezultatin përfundimtar. Koha e përgjigjes është e arsyeshme dhe rrallë i mungojnë komandat.
Edhe pse investimi im në kohë ishte shumë më i madh se kostoja e përshtatësit komercial të disponueshëm (i cili nuk funksionoi), njohuritë që kam fituar janë të paçmueshme.
Recommended:
Krijoni Përshtatësin tuaj Ekit të Grupit Rock (pa Adaptor të Trashëgimisë), në mënyrë jo -shkatërruese !: 10 hapa
Bëni Grupin Tuaj të Rrokut Ekit Adapter (pa Adaptues të Trashëgimisë), në mënyrë jo shkatërruese !: Pasi dëgjova një host të njohur të podkasteve të përmendte shqetësimin e tij për përshtatësin e tij të trashëguar USB të trashëguar, unë shkova duke kërkuar një zgjidhje DIY për të lidhur një eKit më të mirë/të personalizuar në RB Me Faleminderit Z. DONINATOR në Youtube i cili bëri një video që detajon fotografinë e tij të ngjashme
Arduino e personalizuar për të mbajtur butonat e timonit CAN me stereo të re të makinës: 9 hapa (me fotografi)
Arduino e personalizuar do të mbajë butona timoni me makinë të re Stereo: Vendosa të zëvendësoj stereon origjinale të makinës në Volvo V70 -02 tim me një stereo të ri, kështu që do të jem në gjendje të shijoj gjëra të tilla si mp3, bluetooth dhe pa duar. Makina ime ka disa kontrolle të timonit për stereo që unë do të doja të isha akoma në gjendje t'i përdor.
Si e rregullova përshtatësin tim pa tel: 6 hapa
Si e rregullova përshtatësin tim pa tel: Belkin FD6050 im filloi të dështonte pa ndonjë arsye të dukshme. Pas ndryshimit të drejtuesve në Linux dhe Windows zbulova se ishte një kabllo e gabuar shumë pranë lidhësit të tij. Mënyra e vetme për ta rregulluar atë ishte ndryshimi i të gjithë kabllit me diçka tjetër. Diçka si
Si të rregulloni problemet me telekomandën e timonit Pionner - Rritni sinjalin IR dhe rregulloni një bllokim të vogël .: 14 hapa
Si të rregulloni problemet me telekomandën e timonit Pionner - Rritni sinjalin IR dhe rregulloni bllokimin e vogël: Ky telekomandë është shumë i bukur dhe i përshtatshëm, por disa herë nuk funksionon siç duhet Disa faktorë për këtë: dizajni i pultit, dizajni i timonit dhe sinjalet IR projekti nuk është shembull i efikasitetit. Unë jam nga Brazili dhe e gjeta këtë këshillë në Amaz
Video Game Strehimi i timonit: 4 hapa
Strehimi i rrotave të lojërave video: Një mënyrë e lirë për të krijuar një strehë lehtësisht të lëvizshme, të lehtë për tu montuar për një timon të lojërave video. Merrni një kuti të vjetër municioni prej 7.62 mm që mund të mbajë 1500 fishekë nga një dyqan tepricë të Ushtrisë, ose në internet dhe vendosni timonin brenda. Dimensionet një