Tartalomjegyzék:

Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval: 9 lépés (képekkel)
Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval: 9 lépés (képekkel)

Videó: Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval: 9 lépés (képekkel)

Videó: Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval: 9 lépés (képekkel)
Videó: Как управлять приводом с помощью Arduino - Robojax 2024, November
Anonim
Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval
Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval
Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval
Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval
Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval
Egyedi Arduino megtartja a CAN kormánykerék gombjait az új autós sztereóval

Úgy döntöttem, hogy lecserélem a Volvo V70 -02 eredeti autórádióját egy új sztereóra, hogy élvezhessem az mp3 -at, a bluetooth -ot és a kihangosítót.

Az autómban van néhány kormánykerék a sztereóhoz, amelyeket továbbra is szeretnék használni. Nem számítottam rá, hogy ez gondot okoz, mert számos olyan adapter van a piacon, amelyek állítólag kompatibilisek az autómmal. Azonban hamar rájöttem, hogy nem azok! (Úgy tűnik, hogy a V70 adapterei problémákat okozhatnak -02 autókkal a kissé eltérő CAN protokoll miatt.)

Akkor mit kell tenni? Marad a régi sztereó? Élni az életet a nem működő gombokkal? Természetesen nem! Ha nincs működő adapter a piacon, akkor meg kell építenünk egyet!

Ez az utasítás használható (bizonyos módosításokkal) olyan autókra, ahol a kormánygombok kommunikálnak a CAN buszon.

1. lépés: Tudja meg, hogyan küldhet parancsokat a sztereónak

Tudja meg, hogyan küldhet parancsokat a sztereónak
Tudja meg, hogyan küldhet parancsokat a sztereónak
Tudja meg, hogyan küldhet parancsokat a sztereónak
Tudja meg, hogyan küldhet parancsokat a sztereónak

Az első dolog, amit meg kell tennie, hogy megtudja, milyen típusú távoli bemenetre számít a sztereó. Általában a gyártók ezt nem mondják meg Önnek, és valószínűleg nincs hozzáférése a működő távirányítókhoz sem.

Az új sztereóm (Kenwood) távirányítója egyetlen vezetékből áll, és nem tudtam információt találni a működéséről. Ugyanakkor 3,5 mm -es jack csatlakozóval rendelkezik a távoli bemenethez. Erről sem tudtam megtudni semmit. Van azonban néhány információ a 3,5 mm -es jack csatlakozóról más márkák esetében, ami azt sugallja, hogy különböző parancsokat lehet azonosítani a hegy és a hüvely (és opcionálisan a gyűrű és a hüvely) közötti speciális ellenállás alkalmazásával. Például. https://forum.arduino.cc/index.php?topic=230068.0. Ezért úgy döntöttem, hogy kipróbálom, egy kenyérsütő táblával, egy csomó ellenállással és egy 3,5 mm -es csatlakozóval felszerelve, amely a sztereóhoz van csatlakoztatva és a kenyérpulthoz van csatlakoztatva. Eleinte semmit nem ismertek fel, de a sztereó rendelkezik "tanulási mód" menüvel, és ott sikeresen beállíthatók a parancsok, miközben különböző ellenállásokat alkalmaznak. Siker!

Később azonban rájöttem, hogy itt hibáztam: nem minden parancs, amit a sztereó tanult, valóban működni fog. Például. 30 kOhm -ot találtunk tanulási módban, de később nem működött, és néhány parancsnál beállítottam az ellenállási különbséget olyan kicsi volt, hogy később a rossz parancs aktiválódott.

Ezért azt javaslom, hogy használjon kenyérsütőt, ellenállásokkal és kapcsológombokkal minden távoli parancshoz, amelyet kezelni szeretne, és tesztelje, hogy mindegyik működik -e.

Ha az autórádió nem tudja ugyanúgy fogadni a bemenetet, akkor ki kell találnia, hogyan működik, hogy alkalmazkodhasson ehhez a megoldáshoz. Ha egyáltalán nem tud rájönni, akkor baj van.

2. lépés: Keresse meg, hol csatlakozzon a CAN buszhoz

Tudja meg, hol csatlakozhat a CAN buszhoz
Tudja meg, hol csatlakozhat a CAN buszhoz

Meg kell találnia egy jó helyet a CAN buszhoz való csatlakozáshoz. Mivel lecserél egy régi sztereót, amely CAN -on keresztül kommunikál, ezt meg kell találnia a sztereó mögött. A CAN busz egy csavart vezetékből áll (CAN-L és CAN_H). Olvassa el az autó bekötési rajzát, hogy biztos legyen.

3. lépés: A CAN -üzenetek fordított tervezése

A CAN üzenetek fordított tervezése
A CAN üzenetek fordított tervezése

Hacsak a Google nem tudja megmondani, hogy milyen CAN -üzeneteket érdemes meghallgatnia, akkor csatlakoznia kell a CAN -buszhoz, és meg kell tennie némi fordított tervezést. Arduino Unot és CAN pajzsot használtam. (Nem igazán van szüksége a CAN pajzsra, mivel később látni fogja, hogy olcsó alkatrészeket használhat a kenyérlapon.)

Forduljon a Google -hoz, hogy megtudja, milyen átviteli sebességet kell használni az autóhoz való csatlakozáskor. (Általában azt tapasztalja, hogy van nagy sebességű és alacsony sebességű CAN -hálózat. Csatlakozik az alacsony sebességű hálózathoz.)

Ezenkívül be kell programoznia az Arduino -t, hogy az összes CAN üzenetet a soros interfészen keresztül naplózza, így elmentheti azokat a számítógép naplófájljába. A standard Arduino IDE nem menti az adatokat egy naplófájlba, de használhat pl. Putty helyett.

Mielőtt elkezdené írni a programot, telepítenie kell a CAN_BUS_Shield könyvtárat.

Íme néhány álkód, amely segít a program elindításában:

beállít()

{init soros kapcsolat init CAN könyvtár} loop () {ha CAN üzenet érkezik {olvassa el a CAN üzenet formátumú naplóbejegyzést írjon naplóbejegyzést sorosba}}

Tippek:

Az MCP_CAN osztály egy példányát fogja használni a CAN könyvtár funkcióinak eléréséhez:

MCP_CAN m_can;

Kezdeti CAN:

míg (m_can.begin ()! = CAN_OK)

{késleltetés (1000); }

Ellenőrizze és olvassa el a CAN üzeneteket:

míg (m_can.checkRecept () == CAN_MSGAVAIL)

{// CAN -azonosító, üzenethossz és üzenetadatok lekérése m_can.readMsgBufID (& m_canId, & m_msgLen, m_msgBuf); // Tegyen valamit az üzenetadatokkal itt}

Ha további segítségre van szüksége, egy későbbi lépésben megtalálhatja a programom linkjét. A CAN pajzs könyvtár is tartalmaz egy példát. Vagy nézze meg az mviljoen2 utasítását, amely hasonló lépést tartalmaz.

Először szüksége lesz egy referenciafájlra, amely segít kiszűrni az adatokat. Kapcsolja rádió üzemmódba a gyújtást, és naplózzon néhány percet anélkül, hogy megérintené a gombokat.

Ezután minden gomb esetében kezdje el a naplózást, nyomja meg a gombot, és állítsa le a naplózást.

Ha végzett, ki kell szűrnie a hivatkozási naplójában található összes elemet a gombnaplóiból, hogy megtalálhassa a jelölteket. Megtudtam, hogy még mindig sok üzenet maradt, ezért több naplót készítettem, majd megköveteltem, hogy "az A parancs jelöltjeinek minden A-gomb fájlban és egyetlen referenciafájlban sem kell szerepelniük". Így csak néhány lehetőség maradt a kipróbálásra.

A naplók sok üzenetet tartalmaznak, ezért ehhez valamilyen programot kell írnia, vagy esetleg az Excel programot kell használnia. (Nagyon kemény kódolású programot használtam az igényeimhez, ezért attól tartok, hogy nem tudok olyan programot ajánlani, amelyet használhat.)

Figyelmeztetés: Nem lehet biztos abban, hogy egy gomb mindig azonos üzenetet küld. Néhány bit tartalmazhat növekvő számlálókat stb. (Kivéve az üzenet azonosítóját, de ugyanaz lehet.)

Ha véletlenül van egy Volvo V70 -02 autója, akkor ezt tegye:

  • Üzenet azonosítója: 0x0400066 Bájt0: 0x00, 0x40, 0x80 vagy 0xc0 (mindegy)
  • Bájt1: 0x00 (nem érdekel)
  • Bájt2: 0x00 (nem érdekel)
  • Bájt3: 0x00-0x07 (mindegy)
  • Bájt4: 0x1f (nem érdekel)
  • Bájt5: 0x40 (mindegy)
  • Bájt6: 0x40 (mindegy)
  • Bájt7: Gomb azonosító: 0x77 = hangerő növelése, 0x7b = hangerő csökkentése, 0x7d = következő szám, 0x7e = előző szám.

Ha úgy gondolja, hogy megtalálta a parancsokat, jó ötlet lehet a program módosítása úgy, hogy az csak az érdekes üzeneteket naplózza. Nézze meg a soros napló ablakot, miközben megnyomja a gombokat, és ellenőrizze, hogy a megfelelő üzeneteket azonosította -e.

4. lépés: A hardver prototípusa

A hardver prototípusa
A hardver prototípusa

A hardvernek képesnek kell lennie:

  1. A CAN -buszon kapott parancsok azonosítása
  2. Küldjön parancsokat más formátumban a sztereóra

Ha elegendő hely áll rendelkezésére, használhat Arduino és CAN pajzsot az első részhez, és további hardvereket csatlakoztathat a másodikhoz. Van azonban néhány hátránya:

  • A CAN pajzs ára
  • Méret
  • Az Arduino tápegység nem lesz elégedett, ha közvetlenül a 12V -os autójához csatlakozik (valószínűleg működni fog, de az élet valószínűleg lerövidül).

Tehát helyette a következőket használtam:

  • Atmega 328, az "Arduino agy". (Vannak változatok, szerezze be azt, amely megegyezik az Arduino Uno verziójával. Megveheti az Arduino rendszerbetöltővel vagy anélkül.)
  • 16 MHz -es kristály + kondenzátorok az órajelhez.
  • MCP2551 CAN adó -vevő.
  • MCP2515 CAN vezérlő.
  • TSR1-2450, 6,5-36 V-ot 5V-ra alakít át. (Nem használják a prototípusban, mert a szoftver nem törődik az áramellátással.)
  • CD4066B kapcsoló, amelyet parancsok sztereóhoz küldésekor használnak.
  • Pár ellenállás. (Az értékek egy későbbi lépésben megtalálhatók az Eagle sémáiban.)

Jó dolog ezzel a konfigurációval az, hogy teljesen kompatibilis az Arduino és a CAN pajzskönyvtárral.

Ha négynél több gombot szeretne kezelni, fontolja meg, hogy a CD4066B -n kívül mást használ. A CD4066B négy kapcsoló egyben leírható, mindegyiket az egyik Atmegas GPIO csap vezérli. Mindegyik kapcsolóhoz csatlakozik egy ellenállás, amellyel szabályozható a sztereó bemenetként használt ellenállás. Így ez könnyen használható négy különböző parancs küldésére. Ha ezeket kombinálják, további ellenállási értékek kaphatók. Itt jelentkezik az a hiba, amelyet korábban említettem. Négy gombom van, de kettőt hosszú és rövid megnyomással terveztem megvalósítani, hogy hat különböző parancsot kapjak. De végül rájöttem, hogy nem találok olyan ellenállások kombinációját, amely hat működési kombinációt adna nekem. Valószínűleg lehetséges lenne analóg kimeneti jelet csatlakoztatni a sztereóhoz (3,5 mm -es csúcs). (Vegye figyelembe, hogy az Atmega nem rendelkezik valódi analóg kimeneti csapokkal, ezért további hardverre van szükség.)

Tesztelés céljából készítettem egy egyszerű "autó és sztereó" szimulátort is, hogy csatlakozzam a prototípusomhoz. Ez megkönnyíti a hibakeresést, és hacsak nem élvezi az autóban ülést és a programozást, ezt tudom ajánlani.

A prototípust a kép alsó kenyértáblája illusztrálja. Tápellátáshoz, programozáshoz és soros naplózáshoz egy Arduino Uno -hoz van csatlakoztatva, ahol eltávolították az Atmega chipet.

A felső kenyeretábla az autó + sztereó szimulátor, amelyet a prototípus kezdeti tesztelésére használnak.

A prototípus + szimulátor a következőképpen működik:

  • Nyomja meg a szimulátor panel egyik kapcsológombját. (Ezek a kormánykerék gombjai.)
  • Amikor a szimulátor program gombnyomást észlel, akkor a megfelelő CAN üzenetet küld minden 70 ms -ig, amíg a gombot megnyomják. (Mivel a korábban felvett naplók azt jelzik, hogy ez így működik az autómban.) Ezenkívül sok "ócska" CAN üzenetet fog küldeni, hogy szimulálja a busz egyéb forgalmát.
  • A CAN üzenetek a CAN buszon kerülnek elküldésre.
  • A CAN üzeneteket a prototípus fogadja.
  • Az MCP2515 az összes nem kapcsolódó üzenetet az üzenet azonosítója alapján dobja ki.
  • Amikor az MCP2515 üzenetet kap, amelyet kezelni kell, ez azt jelzi, hogy az üzenet be van sorolva.
  • Az Atmega elolvassa az üzenetet, és eldönti, melyik gombot kell aktívnak tekinteni.
  • Az Atmega nyomon követi az utolsó üzenet fogadásának idejét is, egy bizonyos idő elteltével a gombot elengedettnek kell tekinteni. (A CAN üzenetek csak azt jelzik, hogy egy gomb le van nyomva, nem pedig azt, hogy megnyomták vagy elengedték.)
  • Ha egy gombot aktívnak tekintünk, akkor a CD4066B egy vagy több kapcsolója aktiválódik.
  • A szimulátor (amely most sztereó eszközként működik) észleli, hogy ellenállás van a hegy és a hüvely között. (A csúcs 3.3 V -ra van csatlakoztatva, és egy ellenálláson keresztül egy analóg bemeneti érintkezőre. Ha egyetlen parancs sem aktív, ez a tű 3.3 V -ot fog olvasni, amikor egy parancs aktív, az érték alacsonyabb lesz, és azonosítja a parancsot.
  • Amíg egy parancs aktív, a megfelelő LED is aktiválódik. (Hat LED van, mert két gombom különböző hosszú / rövid lenyomását terveztem.)

A prototípus hardveréről további részletekért tekintse meg az Eagle vázlatait egy későbbi lépésben.

További részletek a szimulátor tábla hardveréről:

  • 16 MHz -es kristály
  • 22 pF kondenzátor
  • A LED ellenállásokat a LED tulajdonságai alapján kell kiválasztani
  • Az A7 -hez és a 3.3V -hoz csatlakoztatott ellenállás, válassza ki pl. 2 kOhm (nem kritikus).
  • Az MCP2551-hez és az MCP2515-hez csatlakoztatott ellenállások fel- / lehúzhatók. Válasszon pl. 10 kOhm.

(Vagy használhatja a CAN pajzsot a szimulátor "CAN részéhez", ha úgy tetszik.)

A hardver tervezésekor fontos, hogy tudja, hogyan képezik le az Atmega csapokat az Arduino csapokhoz.

(Ne csatlakoztasson semmilyen LED -et közvetlenül a CD 4066B -hez, ez csak alacsony áramot képes kezelni. Kipróbáltam, amikor először teszteltem a kimenetet, és a chip használhatatlanná válik. A jó dolog az, hogy csak azért vettem párat, mert olyan olcsók.)

5. lépés: Biztosíték programozás

Lehet, hogy az előző lépésben észrevette, hogy a prototípusnak nincsenek külön komponensei, amelyek generálják az órajelet az MCP2515 számára. Ez azért van, mert már használunk egy 16 MHz -es kristályt, amelyet Atmega órajelként használunk. De nem egyszerűen csatlakoztathatjuk közvetlenül az MCP2515 -höz, és alapértelmezés szerint nincs órajel az Atmega -n.

(Ha szeretné, kihagyhatja ezt a lépést, és hozzáadhatja az óra kiegészítő hardverét.)

Mindazonáltal használhatunk "biztosíték programozást", hogy engedélyezzük az órajel kimeneti jelet az egyik GPIO -n.

Először keresse meg az Arduino IDE által használt "boards.txt" nevű fájlt. Másolja be az Arduino Uno bejegyzést, adjon neki új nevet, és módosítsa az alacsony_biztosítékok értékét.

Az új táblám így néz ki:

################################################### ##############Az Arduino Uno alapján

clkuno.name = Óra (Arduino Uno)

clkuno.upload.protocol = arduino clkuno.upload.maximum_size = 32256 clkuno.upload.speed = 115200 clkuno.bootloader.low_fuses = 0xbf clkuno.bootloader.high_fuses = 0xde clkuno.bootloader.extended_fusesk.exe A

##############################################################

Ne feledje, hogy az időzítés aktiválódik, ha a vezérlőbitjét 0 -ra állítja.

Amikor létrehozta az új táblát a táblák konfigurációs fájljában, új rendszerbetöltőt kell írnia az Atmega -hoz. Ennek különféle módjai vannak, én a https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard oldalon leírt módszert használtam.

Miután ezt megtette, ne felejtse el az új tábla típusát választani, és ne az Arduino Uno -t, amikor egy programot tölt fel az Atmega -ra.

6. lépés: A szoftver

A szoftver
A szoftver

Ideje okosabbá tenni a néma hardvert néhány szoftver hozzáadásával.

Íme néhány álkód a prototípushoz:

lastReceivedTime = 0

lastReceivedCmd = nincs cmdTimeout = 100 setup () {watchdog configure pins D4-D7 as output pins init CAN setup CAN filter} loop () {reset watchdog if (CAN message is saņēma) {minden gombparancsnál {if CAN message is a gombparancs {lastReceivedTime = most lastReceivedCmd = cmd}}} ha most> lastReceivedTime + cmdTimeout {lastReceivedCmd = none} minden gombparancshoz {if lastReceivedCmd gombparancs {set command pin output = on} else {set command pin output = off }}}

A cmdTimeout határozza meg, hogy mennyi ideig kell várnunk, mielőtt figyelembe vesszük az utolsó aktív gombot. Mivel a gomb CAN üzenetparancsai körülbelül minden 70 ms -ban kerülnek elküldésre, ezért nagyobbnak kell lennie, mint némi margó. De ha túl nagy, akkor lesz lag -élmény. Tehát a 100 ms jó jelöltnek tűnik.

De mi is az őrzőkutya? Ez egy hasznos kis hardveres szolgáltatás, amely megmenthet minket összeomlás esetén. Képzelje el, hogy egy hiba miatt a program összeomlik, miközben a hangerőnövelő parancs aktív. Akkor a végén a sztereó a maximális hangerőn! De ha az őrszolgálatot nem állítják alaphelyzetbe egy adott időtartamra, úgy dönt, hogy valami váratlan dolog történt, és egyszerűen visszaállít.

üres beállítás ()

{// maximum 250 ms engedélyezése a ciklushoz wdt_enable (WDTO_250MS); // egyéb init cucc} void loop () {wdt_reset (); // csinál valamit}

CAN szűrő? Nos, beállíthatja a CAN -vezérlőt, hogy elutasítsa az összes olyan üzenetet, amely nem felel meg a szűrőnek, így a szoftvernek nem kell időt pazarolnia azokra az üzenetekre, amelyekkel nem törődünk.

előjel nélküli hosszú maszk = 0x1fffffff; // Mind a 29 fejlécet tartalmazza a maszkban

előjel nélküli hosszú szűrőId = 0x0400066; // Csak ez a CAN üzenet érdekel minket m_can.init_Mask (0, CAN_EXTID, maszk); // A 0 maszk a 0-1 szűrőre vonatkozik m_can.init_Mask (1, CAN_EXTID, maszk); // Az 1. maszk a 2-5 szűrőre vonatkozik m_can.init_Filt (0, CAN_EXTID, filterId); m_can.init_Filt (1, CAN_EXTID, filterId); m_can.init_Filt (2, CAN_EXTID, filterId); m_can.init_Filt (3, CAN_EXTID, filterId); m_can.init_Filt (4, CAN_EXTID, filterId); m_can.init_Filt (5, CAN_EXTID, filterId);

A szűrő + maszk beállításával kapcsolatos további részletekért nézze meg a CAN könyvtár kódját és a CAN vezérlő dokumentációját.

Azt is beállíthatja, hogy a CAN -vezérlő megszakításra hívjon fel üzenetet (amely nincs kiszűrve). (A fenti példában nem szerepel, de van egy kódom a programomban.) Ebben az esetben nem igazán ad hozzáadott értéket, és zavaró lehet, ha nem szokott programozni.

Összefoglalva tehát ez volt a szoftver prototípusa. De szükségünk van egy kódra a szimulátor táblához is:

lastSentTime = 0

minDelayTime = 70 setup () {konfigurálja az A0-A5-ös csapokat kimeneti csapként, a D4-D7-es érintkezőket pedig bemeneti csapokká, belső felhúzással. init CAN} loop () {send "junk" can msg set activeButton = nincs minden gombhoz {ha a gombot megnyomják {set activeButton = button}} ha activeButton! = nincs {ha most> lastSentTime + minDelayTime {send button command can message } set lastSentTime = most} invalid = A7 -es pin olvasása foreach (cmd) {if (min <invalid <max) {led on} else {led off}} várjon 1 ms -ot}

Ez folyamatosan "junk" CAN üzeneteket küld kb.

Lehet, hogy naplóznia kell a bemenetet az A7 -es érintkezőn, miközben a különböző gombokat lenyomja, hogy megtudja az egyes gombokhoz tartozó min és max változók megfelelő értékeit. (Vagy kiszámíthatja, de valójában a bemenet elolvasásával pontosabb értékeket kaphat.)

A tűmódok programozásakor kissé óvatosnak kell lennie. Ha véletlenül a belső felhúzás használatára szánt csapokat állítja be kimeneti csapként, akkor potenciális parancsikont hoz létre, amely károsítja az Arduino -t, ha magasra állítja a kimenetet.

Ha meg akarja nézni a programjaimat, letöltheti innen:

  • CAN üzenetnapló program
  • Program a szimulátor táblához
  • Program prototípushoz / végső táblához

Tudnia kell, hogy ezek a programok nem igazán egyeznek az itteni álkóddal, sok "extra" dolgot tartalmaznak, amelyekre nincs igazán szükség, és ha nem ismeri az objektumorientált programozást, akkor valószínűleg kissé nehezen olvasható.

7. lépés: A végső hardver

A végső hardver
A végső hardver
A végső hardver
A végső hardver
A végső hardver
A végső hardver

Ha elégedett a programjával (ne felejtse el tesztelni a prototípust az autóban a szimulátor táblával végzett utolsó teszt után), akkor ideje elkészíteni az igazi hardvert.

Itt három lehetősége van:

  • Gyors és piszkos - forrasztja össze a cuccokat egy NYÁK prototípus táblán.
  • Hardcore DIY - maratja saját PCB -jét.
  • A lusta módszer - rendeljen professzionális NYÁK -t az alkatrészek forrasztásához.

Ha nem siet, akkor az utolsó lehetőséget ajánlom. Ha csak egy ilyen kis PCB -re van szüksége, nagyon olcsó Kínából rendelni. (És akkor valószínűleg tíz darabot kap, így megengedheti magának néhány forrasztási hibát.)

PCB -k megrendeléséhez Gerber formátumban kell elküldenie a tervét. Erre különféle szoftverek léteznek. Eagle -t használtam, csak ajánlani tudom. Várhat néhány órát a tanulásra, de akkor jól működik. Az ilyen kis táblákhoz ingyen használhatja.

Legyen óvatos a tervezés során. Nem szeretne négy hetet várni a szállításra, csak hogy kiderüljön, valamit rosszul csinált.

(Ha jó forrasztási készségekkel rendelkezik, tervezhet felületre szerelt alkatrészeket, és kaphat egy igazán kicsi adaptert. Én nem.)

Ezután rendelje meg pl. https://www.seeedstudio.com/fusion_pcb.html. Kövesse az utasításokat a Gerber -fájlok létrehozásához a tervezésből. Az eredmény előnézetét is megtekintheti, hogy megbizonyosodjon arról, hogy rendben van -e.

(Végül más ellenállásokat kellett választanom az R4-R7-hez a vázlatos képen felsoroltakon kívül. Ehelyett 2k, 4,7k, 6,8k és 14,7k értéket használtam.)

És ne feledje - ne keverje össze az Atmega csapszámozást az Arduino csapszámozással!

Azt javaslom, hogy ne forrasztja közvetlenül az Atmega chipet, hanem használjon aljzatot. Ezután könnyen eltávolíthatja, ha újra kell programoznia.

8. lépés: Autószerelés

Autó szerelés
Autó szerelés
Autó szerelés
Autó szerelés

Most a legszórakoztatóbb részhez - szerelje be autójába, és kezdje el használni! (Miután tokot készített / vásárolt hozzá.)

Ha már teljesen tesztelte a prototípust az autójában, mindennek tökéletesen kell működnie.

(Amint azt korábban említettem, nem tettem, ezért ki kellett cserélnem néhány ellenállást, és változtatnom kellett a programomon.)

Azt is fontolja meg, hogy a sztereó mögé vagy máshova kell felszerelni. Találtam egy jó helyet a kesztyűtartóm felett, ahol elérhetem a kesztyűtartó belsejéből anélkül, hogy bármit szétszednék. Ez hasznos lehet, ha később úgy döntök, hogy frissítem.

Végre újra működnek a gombjaim! Hogyan tudnám túlélni két hónapig nélkülük?

9. lépés: Jövőbeni fejlesztések

Mint említettem, ha ennek 2.0 -ás verzióját készítem, a 4066B -t valami másra (valószínűleg digitális potenciométerre) cserélem a nagyobb rugalmasság érdekében.

Ezen kívül sok más dolgot is megtehet. Például. adjon hozzá egy Bluetooth modult, és hozzon létre egy távvezérlő alkalmazást a telefonhoz. Vagy egy gps modul, akkor amikor otthon van, automatikusan növelheti a hangerőt, és elküldheti az "ablakok lefelé" CAN üzenetet, hogy minden szomszédja élvezhesse csodálatos zenéjét.

Ajánlott: