Sisällysluettelo:

Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla: 9 vaihetta (kuvilla)
Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla: 9 vaihetta (kuvilla)

Video: Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla: 9 vaihetta (kuvilla)

Video: Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla: 9 vaihetta (kuvilla)
Video: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, Heinäkuu
Anonim
Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla
Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla
Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla
Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla
Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla
Mukautettu Arduino säilyttää CAN -ohjauspyörän painikkeet uudella autostereolla

Päätin korvata Volvo V70 -02: n alkuperäisen autostereon uudella stereolla, jotta voin nauttia mp3-, bluetooth- ja handsfree -laitteista.

Autossani on joitain ohjauspyörän säätimiä stereoille, joita haluaisin edelleen käyttää. En odottanut sen olevan ongelma, koska markkinoilla on useita sovittimia, joiden on tarkoitus olla yhteensopivia autoni kanssa. Kuitenkin pian huomasin, että he eivät olleet! (Näyttää siltä, että V70 -sovittimilla saattaa olla ongelmia -02 -autojen kanssa hieman erilaisen CAN -protokollan vuoksi.)

Mitä sitten tehdä? Säilytä vanha stereo? Elätkö elämää toimimattomilla painikkeilla? Ei tietenkään! Jos markkinoilla ei ole toimivaa sovitinta, meidän on rakennettava se!

Tätä ohjetta voidaan soveltaa (joissakin mukautuksissa) autoihin, joissa ohjauspyörän painikkeet kommunikoivat CAN -väylän kautta.

Vaihe 1: Ota selvää, miten voit lähettää komentoja stereolle

Selvitä, miten voit lähettää komentoja stereolle
Selvitä, miten voit lähettää komentoja stereolle
Selvitä, miten voit lähettää komentoja stereolle
Selvitä, miten voit lähettää komentoja stereolle

Ensimmäinen asia, jonka sinun pitäisi tehdä, on selvittää, millaista etätuloa stereo odottaa. Yleensä valmistajat eivät kerro sitä sinulle, eikä sinulla todennäköisesti ole pääsyä toimiviin kauko -ohjaimiin myös käänteistä suunnittelua varten.

Uuden stereoni (Kenwood) kaukosäädin koostuu yhdestä johdosta, enkä ole saanut selville mitään sen toiminnasta. Siinä on kuitenkin myös 3,5 mm: n liitin etätuloa varten. En minäkään saanut siitä mitään selvää. Mutta on olemassa joitakin tietoja muiden merkkien 3,5 mm: n liittimestä, mikä viittaa siihen, että eri komennot tunnistetaan kohdistamalla erityinen vastus kärjen ja holkin väliin (ja valinnaisesti renkaan ja holkin väliin). Esim. https://forum.arduino.cc/index.php?topic=230068.0. Joten päätin kokeilla sitä, ja siinä on leipälauta, joukko vastuksia ja 3,5 mm: n pistoke, joka on kytketty stereoihin ja kytketty leipälautaan. Aluksi mitään ei tunnistettu, mutta stereossa on "oppimistilan" valikko ja siellä komennot voitiin määrittää onnistuneesti eri vastusta käyttämällä. Menestys!

Myöhemmin kuitenkin huomasin, että tein virheen täällä: kaikki stereon tuntemien komennot eivät todellakaan toimi. Esim. 30 kOhm löydettiin oppimistilassa, mutta ei toiminut myöhemmin, ja joillekin komennoille asetin vastuseron niin pieneksi, että myöhemmin väärä komento laukaistiin.

Joten suosittelen, että käytät leipälevyä, jossa on vastukset ja kytkinpainikkeet kaikille kauko -ohjauskomennoille, joita haluat käsitellä, ja testata, että ne kaikki toimivat.

Jos autostereosi ei voi vastaanottaa tuloa samalla tavalla, sinun on selvitettävä, miten se toimii, jotta voit mukauttaa tätä ratkaisua. Jos et ymmärrä ollenkaan, sinulla on ongelma.

Vaihe 2: Selvitä, minne liittää CAN -väylään

Selvitä, minne yhdistää CAN -väylään
Selvitä, minne yhdistää CAN -väylään

Sinun on löydettävä hyvä paikka yhdistää CAN -väylään. Koska olet vaihtamassa vanhaa stereoa, joka kommunikoi CAN: n kautta, sinun pitäisi pystyä löytämään se stereon takaa. CAN-väylä koostuu parista kierrettyjä johtimia (CAN-L ja CAN_H). Tutustu auton kytkentäkaavioon varmistaaksesi.

Vaihe 3: CAN -viestien käänteinen suunnittelu

CAN -viestien käänteinen suunnittelu
CAN -viestien käänteinen suunnittelu

Ellei Google voi kertoa, mitä CAN -viestejä kannattaa kuunnella, sinun on muodostettava yhteys CAN -väylään ja tehtävä käänteinen suunnittelu. Käytin Arduino Unoa ja CAN -kilpeä. (Et todellakaan tarvitse CAN -suojaa, koska näet myöhemmin, että voit käyttää joitakin halpoja komponentteja leipälaudalla.)

Kysy Googlesta, mitä baudinopeutta sinun pitäisi käyttää, kun muodostat yhteyden autoosi. (Yleensä huomaat, että on olemassa nopea ja hidas CAN -verkko. Olet yhteydessä hitaaseen verkkoon.)

Sinun on myös ohjelmoitava Arduino kirjaamaan kaikki CAN -viestit sarjaliitännän kautta, jotta voit tallentaa ne tietokoneen lokitiedostoon. Vakio Arduino IDE ei tallenna tietoja lokitiedostoon, mutta voit käyttää esim. Sen sijaan kitti.

Ennen kuin aloitat ohjelman kirjoittamisen, sinun on asennettava CAN_BUS_Shield -kirjasto.

Seuraavassa on muutamia pseudokoodeja, joiden avulla pääset alkuun ohjelman kanssa:

perustaa()

{init sarjayhteys init CAN -kirjasto} silmukka () {jos CAN -viesti vastaanotetaan {lue CAN -viestimuotoisen lokimerkinnän kirjoituskirjauskirjaus sarjaan}}

Vinkkejä:

Käytät luokan MCP_CAN ilmentymää päästäksesi CAN -kirjaston toimintoihin:

MCP_CAN m_can;

Alkuperäinen CAN:

while (m_can.begin ()! = CAN_OK)

{viive (1000); }

Tarkista ja lue CAN -viestit:

kun taas (m_can.checkRecept () == CAN_MSGAVAIL)

{// Hanki CAN -tunnus, viestin pituus ja viestitiedot m_can.readMsgBufID (& m_canId, & m_msgLen, m_msgBuf); // Tee jotain viestin tiedoilla täällä}

Jos tarvitset lisäapua, löydät linkin ohjelmaanni myöhemmin. CAN -kilpikirjasto sisältää myös esimerkin. Tai tarkista mviljoen2: n ohje, joka sisältää samanlaisen vaiheen.

Ensin tarvitset viitetiedoston tietojen suodattamiseksi. Kytke sytytys radiotilaan ja kirjaa kaikki pariksi minuutiksi koskematta mitään painikkeita.

Aloita sitten kunkin painikkeen kirjaaminen, paina painiketta ja lopeta kirjaaminen.

Kun olet valmis, sinun on suodattettava kaikki viitelokistasi painikelokistasi löytääksesi ehdokkaasi. Sain selville, että viestejä oli vielä paljon jäljellä, joten tein lisää lokeja ja vaadin sitten, että "komento A: n ehdokkaiden on oltava kaikissa painike-A-tiedostoissa eikä missään viitetiedostossa". Se jätti minulle vain muutaman mahdollisuuden kokeilla.

Lokit sisältävät paljon viestejä, joten sinun on kirjoitettava jokin ohjelma tähän tai mahdollisesti käytettävä Excel. (Käytin ohjelmaa, jonka olosuhteet olivat erittäin kovat, joten pelkään etten voi tarjota ohjelmaa, jota voit käyttää.)

Varoituksen sana: Et voi olla varma, että painike tuottaa aina saman viestin. Jotkut bitit saattavat sisältää kasvavia laskureita jne. (Voit kuitenkin jättää viestin tunnuksen samaksi.)

Jos satut käyttämään Volvo V70 -02 -mallia, sinun on:

  • Viestitunnus: 0x0400066Byte0: 0x00, 0x40, 0x80 tai 0xc0 (ei väliä)
  • Tavu1: 0x00 (älä välitä)
  • Tavu2: 0x00 (älä välitä)
  • Tavu3: 0x00-0x07 (älä välitä)
  • Tavu4: 0x1f (älä välitä)
  • Tavu5: 0x40 (älä välitä)
  • Tavu6: 0x40 (älä välitä)
  • Tavu7: painikkeen tunniste: 0x77 = äänenvoimakkuuden lisäys, 0x7b = äänenvoimakkuuden vähennys, 0x7d = seuraava kappale, 0x7e = edellinen kappale.

Kun uskot löytäneesi komennot, saatat olla hyvä idea muokata ohjelmaa niin, että se kirjaa vain mielenkiintoiset viestit. Katso sarjalokin ikkunaa samalla kun painat painikkeita ja tarkista, että olet tunnistanut oikeat viestit.

Vaihe 4: Laitteiston prototyyppi

Laitteiston prototyyppi
Laitteiston prototyyppi

Laitteistosi on voitava:

  1. Tunnista CAN -väylällä vastaanotetut komennot
  2. Lähetä komentoja toisessa muodossa stereolle

Jos sinulla on tarpeeksi tilaa, voit käyttää Arduinoa ja CAN -suojaa ensimmäiseen osaan ja liittää lisälaitteita toiseen. On kuitenkin joitain haittoja:

  • CAN -suojan hinta
  • Koko
  • Arduinon virtalähde ei ole onnellinen, jos se on kytketty suoraan autoosi 12 V (se todennäköisesti toimii, mutta sen käyttöikä todennäköisesti lyhenee).

Joten sen sijaan käytin seuraavaa:

  • Atmega 328, "Arduino -aivot". (Joitakin vaihtoehtoja on, hanki Arduino Unon versio. Voit ostaa sen Arduino -käynnistyslataimen kanssa tai ilman.)
  • 16 MHz kide + kondensaattorit kellosignaalia varten.
  • MCP2551 CAN -lähetin -vastaanotin.
  • MCP2515 CAN -ohjain.
  • TSR1-2450, muuntaa 6,5-36V 5V: ksi. (Ei käytössä prototyypissä, koska ohjelmisto ei välitä virtalähteestä.)
  • CD4066B -kytkin, jota käytetään lähetettäessä komentoja stereolle.
  • Pari vastusta. (Arvot löytyvät Eagle -kaavioista myöhemmässä vaiheessa.)

Hyvä asia tässä kokoonpanossa on, että se on täysin yhteensopiva Arduinon ja CAN -kilpikirjaston kanssa.

Jos haluat käsitellä enemmän kuin neljää painiketta, sinun kannattaa harkita jotain muuta kuin CD4066B: tä. CD4066B voidaan kuvata neljänä kytkimenä yhdessä, joita kukin ohjaa yhdellä Atmegas GPIO -nastalla. Jokaiseen kytkimeen on kytketty vastus, jota voidaan käyttää stereon tulona käytettävän vastuksen ohjaamiseen. Tämän avulla voidaan helposti lähettää neljä eri komentoa. Jos ne yhdistetään, voidaan saada lisää vastusarvoja. Tässä tulee esiin aiemmin mainitsemani virhe. Minulla on neljä painiketta, mutta suunnittelin toteuttavani kaksi niistä pitkään ja lyhyesti painamalla kuusi eri komentoa. Mutta lopulta huomasin, että en löytänyt vastuksen yhdistelmää, joka antaisi minulle kuusi toimivaa yhdistelmää. Luultavasti olisi mahdollista kytkeä analoginen lähtösignaali stereoon (3,5 mm: n kärki). (Huomaa, että Atmegalla ei ole todellisia analogisia lähtöliittimiä, joten lisälaitteita tarvitaan.)

Testaustarkoituksia varten tein myös yksinkertaisen "auto- ja stereosimulaattorin" yhdistääkseni prototyyppiini. Se tekee virheenkorjauksesta helpompaa, ja ellet nauti istumisesta autoosi ja ohjelmasta, voin suositella sitä.

Prototyyppiä havainnollistaa kuvan alin leipälauta. Virtalähdettä, ohjelmointia ja sarjaliikennettä varten se on liitetty Arduino Unoon, josta Atmega -siru on poistettu.

Ylempi leipälauta on auto + stereosimulaattori, jota käytetään prototyypin ensimmäisessä testauksessa.

Prototyyppi + simulaattori on tarkoitettu toimimaan seuraavasti:

  • Paina yhtä simulaattoritaulun kytkinpainikkeista. (Ne ovat ohjauspyörän painikkeita.)
  • Kun simulaattoriohjelma havaitsee painikkeen painamisen, se lähettää vastaavan CAN -viestin 70 ms välein niin kauan kuin painiketta painetaan. (Koska aiemmin ottamani lokit osoittivat, että se toimii autossani.) Se lähettää myös paljon "roskapostia" CAN -viestejä jäljittelemään muuta väylän liikennettä.
  • CAN -viestit lähetetään CAN -väylällä.
  • Prototyyppi vastaanottaa CAN -viestit.
  • MCP2515 heittää kaikki toisiinsa liittymättömät viestit viestitunnuksen perusteella.
  • Kun MCP2515 vastaanottaa käsiteltävän viestin, se osoittaa, että sillä on viesti jonossa.
  • Atmega lukee viestin ja päättää, mitä painiketta pidetään aktiivisena.
  • Atmega seuraa myös, milloin viimeinen viesti vastaanotettiin, tietyn ajan kuluttua painike katsotaan vapautetuksi. (CAN -viestit osoittavat vain, että painike on alhaalla, ei sitä, että sitä on painettu tai vapautettu.)
  • Jos painiketta pidetään aktiivisena, yksi tai useampi CD4066B: n kytkin aktivoidaan.
  • Simulaattori (joka toimii nyt stereona) havaitsee, että kärjen ja holkin väliin on kohdistettu vastus. (Kärki on kytketty 3,3 V: iin ja vastuksen kautta analogiseen tulotappiin. Kun mikään komento ei ole aktiivinen, tämä nasta lukee 3,3 V, kun komento on aktiivinen, arvo pienenee ja tunnistaa komennon.
  • Kun komento on aktiivinen, myös vastaava led aktivoituu. (Led -valoja on kuusi, koska aikoin käyttää kahta painiketta pitkään eri / pitkiä painalluksia.)

Lisätietoja prototyyppilaitteistosta on Eaglen kaavioissa myöhemmässä vaiheessa.

Lisätietoja simulaattorikortin laitteistosta:

  • 16 MHz kide
  • 22 pF kondensaattorit
  • LED -vastukset tulee valita LED -ominaisuuksien perusteella
  • Vastus kytketty A7 ja 3.3V, valitse esim. 2 kOhm (ei kriittinen).
  • MCP2551: een ja MCP2515: een kytketyt vastukset ovat ylös / alas. Valitse esim. 10 kOhm.

(Tai voit halutessasi käyttää CAN -suojaa simulaattorin "CAN -osassa".)

Kun suunnittelet laitteistoa, on tärkeää tietää, miten Atmega -nastat yhdistetään Arduino -nastoihin.

(Älä kytke mitään led -valoja suoraan CD 4066B -laitteeseen, se voi käsitellä vain pientä virtaa. Yritin sitä, kun testasin ensin lähtöä ja siru tulee hyödyttömäksi. Hyvä asia on, että olin ostanut pari niistä vain siksi, että ne ovat niin halpoja.)

Vaihe 5: Sulakkeiden ohjelmointi

Ehkä huomasit edellisessä vaiheessa, että prototyypissä ei ole erillisiä komponentteja kellosignaalin generoimiseksi MCP2515: lle. Tämä johtuu siitä, että Atmega -kellosignaalina käytetään jo 16 MHz: n kideä, jota voimme käyttää. Mutta emme voi yksinkertaisesti liittää sitä suoraan MCP2515 -laitteeseen, eikä oletuksena ole kellonaikasignaalia Atmega -laitteessa.

(Jos haluat, voit ohittaa tämän vaiheen ja lisätä ylimääräisen kellolaitteiston.)

Voimme kuitenkin käyttää jotain, jota kutsutaan "sulakkeen ohjelmoinniksi", jotta kellonaikasignaali voidaan ottaa käyttöön yhdessä GPIO -nastasta.

Ensin sinun on löydettävä tiedosto nimeltä "boards.txt", jota Arduino IDE käyttää. Sinun on kopioitava Arduino Unon merkintä, annettava sille uusi nimi ja muutettava low_fuses -arvon arvo.

Uusi tauluni näyttää tältä:

################################################## ##############Perustuu Arduino Unoon

clkuno.name = Kello (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.bootloader.file = optiboot_atmega328.hex clkuno.bootloader.unlock_bits = 0xff clkuno.bootloader.lock_bits = 0xcf clkuno.build.mcu = atmega328p clkuno.build.f_cpu = 16000000L clkuno.build.unto = standardirakennelma

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

Huomaa, että kellonaika aktivoidaan asettamalla sen ohjausbitti arvoon 0.

Kun olet luonut uuden kortin levyjen kokoonpanotiedostoon, sinun on poltettava uusi käynnistyslatain Atmegalle. Tähän on useita tapoja, käytin menetelmää, joka on kuvattu osoitteessa

Kun olet tehnyt tämän, muista valita uusi korttityyppi, ei Arduino Uno, kun lataat ohjelman Atmegaan.

Vaihe 6: Ohjelmisto

Ohjelmisto
Ohjelmisto

Aika tehdä tyhmä laitteisto älykkääksi lisäämällä ohjelmistoja.

Tässä on muutama prototyypin pseudo -koodi:

lastReceivedTime = 0

lastReceivedCmd = none cmdTimeout = 100 setup () {enable watchdog configure nastat D4-D7 ulostulonapeiksi init CAN setup CAN filter} loop () {reset watchdog if (CAN message is vastaanot) {jokaiselle painikekomennolle {jos CAN-viesti kuuluu painikekomento {lastReceivedTime = nyt lastReceivedCmd = cmd}}} jos nyt> lastReceivedTime + cmdTimeout {lastReceivedCmd = none} kullekin painikekomennolle {if lastReceivedCmd is button command {set command pin output = on} else {set command pin output = off }}}

cmdTimeout päättää, kuinka kauan meidän pitäisi odottaa, ennen kuin harkitsemme viimeisen aktiivisen painikkeen vapauttamista. Koska painikkeen CAN -sanomakomennot lähetetään noin joka 70 ms, sen on oltava suurempi kuin jokin marginaali. Mutta jos se on liian suuri, siitä tulee viive. 100 ms vaikuttaa siis hyvältä ehdokkaalta.

Mutta mikä on vahtikoira? Se on hyödyllinen pieni laitteisto -ominaisuus, joka voi pelastaa meidät onnettomuuden sattuessa. Kuvittele, että meillä on vika, joka saa ohjelman kaatumaan, kun äänenvoimakkuuden lisäyskomento on aktiivinen. Sitten päädymme stereoihin suurimmalla äänenvoimakkuudella! Mutta jos vahtikoiraa ei nollata tiettynä aikana, se päättää, että jotain odottamatonta on tapahtunut, ja antaa yksinkertaisesti nollauksen.

mitätön asennus ()

{// sallitaan enintään 250 ms silmukalle wdt_enable (WDTO_250MS); // muut init tavarat} void loop () {wdt_reset (); // tehdä asioita }

CAN suodatin? Voit määrittää CAN -ohjaimen hylkäämään kaikki viestit, jotka eivät vastaa suodatinta, joten ohjelmiston ei tarvitse tuhlata aikaa viesteihin, joista emme välitä.

allekirjoittamaton pitkä maski = 0x1fffffff; // Sisällytä kaikki 29 otsikkobittiä maskiin

allekirjoittamaton pitkä suodatinId = 0x0400066; // Välitämme vain tästä CAN -viestin tunnuksesta m_can.init_Mask (0, CAN_EXTID, mask); // Naamio 0 koskee suodatinta 0-1 m_can.init_Mask (1, CAN_EXTID, mask); // Naamio 1 koskee suodatinta 2-5 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);

Tarkista CAN -kirjaston koodi ja CAN -ohjaimen dokumentaatio saadaksesi lisätietoja suodattimen + maskin määrittämisestä.

Voit myös määrittää CAN -ohjaimen aiheuttamaan keskeytyksen, kun viesti (jota ei ole suodatettu) vastaanotetaan. (Ei sisälly yllä olevaan esimerkkiin, mutta ohjelmassa on sille jokin koodi.) Tässä tapauksessa se ei todellakaan lisää arvoa ja saattaa olla hämmentävää, jos et ole tottunut ohjelmointiin.

Joten se oli ohjelmiston prototyyppi yhteenvetona. Mutta tarvitsemme myös koodin simulaattorikortille:

lastSentTime = 0

minDelayTime = 70 setup () {määritä nastat A0-A5 ulostulonappeiksi määritä nastat D4-D7 tulotappeiksi, joissa on sisäinen vetäytyminen. init CAN} loop () {send "junk" can msg set activeButton = none for each button {if button is pain {set activeButton = button}} if activeButton! = none {if now> lastSentTime + minDelayTime {send button command can message } set lastSentTime = now} invalid = lukutappi A7 foreach (cmd) {if (min <invalid <max) {led on} else {led off}} odota 1 ms}

Tämä lähettää jatkuvasti "roskapostia" CAN -viestejä suunnilleen joka ms ja joka painikkeen painamisen jälkeen vastaava komento joka 70 ms.

Sinun on ehkä kirjattava tulo nastaan A7 samalla kun painat eri painikkeita saadaksesi selville sopivat arvot kullekin painikkeelle kuuluville min- ja max -muuttujille. (Tai voit laskea sen, mutta itse syötteen lukeminen antaa sinulle tarkempia arvoja.)

Sinun on oltava hieman varovainen, kun ohjelmoit pin -tiloja. Jos asetat vahingossa sisäisen vetämisen käyttöön tarkoitetut nastat ulostulonappeiksi, voit luoda mahdollisen pikakuvakkeen, joka vahingoittaa Arduinoasi, kun asetat tehon suureksi.

Jos haluat tarkistaa ohjelmani, ne voidaan ladata täältä:

  • CAN -viestien lokiohjelma
  • Ohjelma simulaattorikortille
  • Ohjelma prototyypille / viimeiselle levylle

Sinun pitäisi olla tietoinen siitä, että nämä ohjelmat eivät oikeastaan vastaa tässä olevaa pseudokoodia, ne sisältävät paljon "ylimääräistä" tavaraa, jota ei todellakaan tarvita, ja jos et ole perehtynyt olio -ohjelmointiin, se voi olla hieman vaikeaa lukea.

Vaihe 7: Lopullinen laitteisto

Lopullinen laitteisto
Lopullinen laitteisto
Lopullinen laitteisto
Lopullinen laitteisto
Lopullinen laitteisto
Lopullinen laitteisto

Kun olet tyytyväinen ohjelmaan (muista testata prototyyppi autossa simulaattorikortin viimeisen testin jälkeen), on aika rakentaa todellinen laitteisto.

Tässä on kolme vaihtoehtoa:

  • Nopea ja likainen - juota tavarat yhteen piirilevyn prototyyppikortille.
  • Hardcore DIY - syödä oma piirilevy.
  • Laiska tapa - tilaa ammattimainen piirilevy komponenttien juottamiseen.

Jos sinulla ei ole kiire, voin suositella viimeistä vaihtoehtoa. Jos tarvitset vain tällaisen pienen piirilevyn, on erittäin halpaa tilata se Kiinasta. (Ja sitten saat todennäköisesti kymmenen kappaletta, joten sinulla on varaa juotosvirheisiin.)

Jos haluat tilata piirilevyjä, sinun on lähetettävä mallisi Gerber -muodossa. Tätä varten on olemassa erilaisia ohjelmistoja. Käytin Eaglea, jota voin suositella. Voit odottaa muutaman tunnin oppivan sen, mutta sitten se toimii hyvin. Tällaisia pieniä levyjä varten voit käyttää sitä ilmaiseksi.

Ole varovainen, kun teet suunnittelun. Et halua odottaa neljä viikkoa toimitusta vain saadaksesi tietää, että olet tehnyt jotain väärin.

(Jos sinulla on hyvät juotostaidot, voit suunnitella pinta -asennettavia osia ja hankkia todella pienen sovittimen. En tehnyt sitä.)

Tilaa sitten esim. https://www.seeedstudio.com/fusion_pcb.html. Noudata ohjeita Gerber -tiedostojen luomiseksi suunnittelustasi. Voit myös esikatsella tulosta varmistaaksesi, että se on kunnossa.

(Lopulta minun piti valita muut vastukset R4-R7: lle kuin kaaviokuvassa. Sen sijaan käytin 2k, 4,7k, 6,8k ja 14,7k.)

Ja muista - älä sekoita Atmega -nastojen numerointia Arduino -nastanumerointiin!

Suosittelen, ettet juota Atmega -sirua suoraan, vaan käytä pistorasiaa. Sen jälkeen voit helposti poistaa sen, jos sinun on ohjelmoitava se uudelleen.

Vaihe 8: Auton asennus

Auton asennus
Auton asennus
Auton asennus
Auton asennus

Nyt hauskin osa - asenna se autoosi ja aloita sen käyttö! (Kun olet tehnyt / ostanut sille kotelon.)

Jos olet jo testannut prototyypin autossasi, kaiken pitäisi toimia täydellisesti.

(Kuten aiemmin mainitsin, en tehnyt niin, joten jouduin vaihtamaan joitain vastuksia ja tekemään joitain muutoksia ohjelmaan.)

Mieti myös, kannattaako se asentaa stereon taakse vai muualle. Löysin hyvän paikan hansikaslokeroni yläpuolelta, jonne pääsen käsinekotelon sisältä ottamatta mitään irti. Siitä voi olla hyötyä, jos päätän päivittää sen myöhemmin.

Lopulta painikkeet toimivat taas! Kuinka selvisin kaksi kuukautta ilman niitä?

Vaihe 9: Tulevia parannuksia

Kuten mainitsin, jos teen tämän version 2.0, vaihdan 4066B johonkin muuhun (luultavasti digitaaliseen potentiometriin) joustavuuden lisäämiseksi.

On myös monia muita asioita, joita voit tehdä. Esim. lisää Bluetooth -moduuli ja tee puhelimeesi kauko -ohjainsovellus. Tai gps -moduuli, kun olet lähellä kotia, voit automaattisesti lisätä äänenvoimakkuutta ja lähettää "ikkunat alas" CAN -viestin, jotta kaikki naapurit voivat nauttia upeasta musiikistasi.

Suositeltava: