Satura rādītājs:

Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo: 9 soļi (ar attēliem)
Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo: 9 soļi (ar attēliem)

Video: Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo: 9 soļi (ar attēliem)

Video: Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo: 9 soļi (ar attēliem)
Video: Lesson 10: Conditional Statement in Arduino and Using Array | SunFounder Robojax 2024, Jūlijs
Anonim
Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo
Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo
Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo
Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo
Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo
Pielāgots Arduino, lai saglabātu CAN stūres pogas ar jaunu automašīnas stereo

Es nolēmu savā Volvo V70 -02 oriģinālo automašīnas stereosistēmu nomainīt pret jaunu stereo, lai es varētu baudīt tādas lietas kā mp3, bluetooth un brīvroku sistēma.

Manai automašīnai ir dažas stereosistēmas stūres vadības ierīces, kuras es vēlos joprojām izmantot. Es negaidīju, ka tā būs problēma, jo tirgū ir vairāki adapteri, kuriem vajadzētu būt saderīgiem ar manu automašīnu. Tomēr es drīz uzzināju, ka tie nav! (Šķiet, ka V70 adapteriem var būt problēmas ar -02 automašīnām nedaudz atšķirīga CAN protokola dēļ.)

Ko tad darīt? Vai saglabāt veco stereo? Vai dzīvot dzīvi ar pogām, kas nedarbojas? Protams, nē! Ja tirgū nav darba adaptera, mums tas būs jāveido!

Šo pamācību var piemērot (ar dažiem pielāgojumiem) automašīnām, kurās stūres pogas sazinās caur CAN kopni.

1. darbība. Uzziniet, kā nosūtīt komandas uz stereo

Uzziniet, kā nosūtīt komandas uz stereo
Uzziniet, kā nosūtīt komandas uz stereo
Uzziniet, kā nosūtīt komandas uz stereo
Uzziniet, kā nosūtīt komandas uz stereo

Pirmā lieta, kas jums jādara, ir noskaidrot, kāda veida tālvadības ievadi gaida stereo. Parasti ražotāji jums to neteiks, un, iespējams, arī jums nav piekļuves strādājošām tālvadības pultīm reversās inženierijas jomā.

Mana jaunā stereo (Kenwood) tālvadības pults sastāv no viena stieples, un man nav izdevies uzzināt nekādu informāciju par tā darbību. Tomēr tam ir arī 3,5 mm ligzda attālinātai ievadei. Es arī par to neko nevarēju uzzināt. Bet ir zināma informācija par citu zīmolu 3,5 mm ligzdu, kas liecina, ka dažādas komandas tiek noteiktas, piemērojot īpašu pretestību starp galu un uzmavu (un pēc izvēles starp gredzenu un uzmavu). Piem. https://forum.arduino.cc/index.php?topic=230068.0. Tāpēc es nolēmu izmēģināt, aprīkots ar maizes dēli, virkni rezistoru un 3,5 mm spraudni, kas pievienots stereo skaļrunim un savienots ar maizes dēli. Sākumā nekas netika atpazīts, bet stereoiekārtai ir izvēlne "mācīšanās režīms", un tur komandas varēja veiksmīgi iestatīt, vienlaikus piemērojot dažādu pretestību. Veiksmi!

Tomēr vēlāk es uzzināju, ka šeit pieļāvu kļūdu: ne visas komandas, kuras, šķiet, iemācījās stereo, faktiski darbotos. Piem. 30 kOhm tika atrasts mācību režīmā, bet vēlāk nedarbojās, un dažām komandām, kuras es iestatīju, pretestības starpība bija tik maza, ka vēlāk tika iedarbināta nepareiza komanda.

Tāpēc es iesaku visām tālvadības komandām, kuras vēlaties apstrādāt, izmantot maizes dēli ar rezistoriem un pārslēgšanas pogām, un faktiski pārbaudīt, vai tās visas darbosies.

Ja jūsu automašīnas stereo iekārta nevar saņemt ievadi tādā pašā veidā, jums būs jāizdomā, kā tā darbojas, lai jūs varētu pielāgot šo risinājumu. Ja jūs vispār nevarat saprast, tad jums ir problēma.

2. darbība. Uzziniet, kur izveidot savienojumu ar CAN kopni

Uzziniet, kur pieslēgties CAN kopnei
Uzziniet, kur pieslēgties CAN kopnei

Jums ir jāatrod laba vieta, lai izveidotu savienojumu ar CAN kopni. Tā kā jūs nomaināt veco stereo, kas sazinās, izmantojot CAN, jums vajadzētu būt iespējai to atrast aiz stereo. CAN kopne sastāv no pāris savītiem vadiem (CAN-L un CAN_H). Lai pārliecinātos, skatiet savas automašīnas elektroinstalācijas shēmu.

3. darbība. CAN ziņojumu apgrieztā izstrāde

CAN ziņojumu apgrieztā izstrāde
CAN ziņojumu apgrieztā izstrāde

Ja vien Google nevar jums pateikt, kādus CAN ziņojumus jums vajadzētu klausīties, jums būs jāizveido savienojums ar CAN kopni un jāveic apgrieztā inženierija. Es izmantoju Arduino Uno un CAN vairogu. (CAN vairogs jums patiešām nav vajadzīgs, jo vēlāk redzēsit, ka tā vietā varat izmantot dažas lētas sastāvdaļas.)

Konsultējieties ar Google, lai uzzinātu, kāds pārraides ātrums jāizmanto, veidojot savienojumu ar automašīnu. (Parasti jūs atradīsit, ka ir liels un zems ātruma CAN tīkls. Jūs veidojat savienojumu ar zema ātruma tīklu.)

Jums būs arī jāprogrammē Arduino, lai reģistrētu visus CAN ziņojumus, izmantojot seriālo saskarni, lai tos varētu saglabāt žurnāla failā datorā. Standarta Arduino IDE nesaglabās datus žurnāla failā, bet jūs varat izmantot, piemēram, Tā vietā tepe.

Pirms sākat rakstīt savu programmu, jums jāinstalē bibliotēka CAN_BUS_Shield.

Šeit ir daži pseidokodi, kas palīdzēs jums sākt darbu ar programmu:

uzstādīt()

{init seriālais savienojums init CAN bibliotēka} cilpa () {ja tiek saņemts CAN ziņojums {lasīt CAN ziņojuma formāta žurnāla ierakstu rakstīt žurnāla ierakstu uz sērijas}}

Padomi:

Lai piekļūtu CAN bibliotēkas funkcionalitātei, izmantosit klases MCP_CAN instanci:

MCP_CAN m_can;

Sākotnēji var:

kamēr (m_can.begin ()! = CAN_OK)

{kavēšanās (1000); }

Pārbaudiet un lasiet CAN ziņojumus:

kamēr (m_can.checkReceived () == CAN_MSGAVAIL)

{// Iegūt CAN id, ziņojuma garumu un ziņas datus m_can.readMsgBufID (& m_canId, & m_msgLen, m_msgBuf); // Dariet kaut ko ar ziņu datiem šeit}

Ja jums nepieciešama papildu palīdzība, vēlāk varat atrast saiti uz manu programmu. CAN vairoga bibliotēkā ir arī piemērs. Vai arī pārbaudiet mviljoen2 norādījumus, kas ietver līdzīgu darbību.

Vispirms jums būs nepieciešams atsauces fails, kas palīdzēs filtrēt datus. Pārslēdziet aizdedzi uz radio režīmu un reģistrējiet visu pāris minūtes, nepieskaroties nevienai pogai.

Pēc tam katrai no pogām sāciet reģistrēšanu, nospiediet pogu un pārtrauciet reģistrēšanu.

Kad esat pabeidzis, jums ir jāfiltrē viss, kas ir jūsu atsauces žurnālā, no jūsu pogu žurnāliem, lai atrastu savus kandidātus. Es uzzināju, ka vēl ir palicis daudz ziņojumu, tāpēc izveidoju vairāk žurnālu un pēc tam pieprasīju, lai "komandas A kandidātiem jābūt visos pogas A failos un nevienā no atsauces failiem". Tas man atstāja tikai dažas iespējas izmēģināt.

Žurnālos būs daudz ziņojumu, tāpēc jums būs jāraksta kāda programma vai, iespējams, jāizmanto programma Excel. (Es savām vajadzībām izmantoju programmu ar ļoti stingriem kodētiem nosacījumiem, tāpēc baidos, ka nevaru piedāvāt programmu, kuru varat izmantot.)

Brīdinājuma vārds: Jūs nevarat būt pārliecināts, ka poga vienmēr parādīs identisku ziņojumu. Dažos bitos var būt pieaugoši skaitītāji utt. (Tomēr ziņojuma ID var būt vienāds.)

Ja jums ir Volvo V70 -02, jūs sekojat tam:

  • Ziņojuma ID: 0x0400066 Baits0: 0x00, 0x40, 0x80 vai 0xc0 (vienalga)
  • Baits1: 0x00 (vienalga)
  • Baits2: 0x00 (vienalga)
  • Baits3: 0x00-0x07 (vienalga)
  • Baits4: 0x1f (vienalga)
  • Baits5: 0x40 (vienalga)
  • Baits6: 0x40 (vienalga)
  • Baits7: pogas identifikators: 0x77 = skaļuma palielināšana, 0x7b = skaļuma samazināšana, 0x7d = nākamais celiņš, 0x7e = iepriekšējais celiņš.

Ja uzskatāt, ka esat atradis komandas, ieteicams modificēt programmu tā, lai tā reģistrētu tikai interesantos ziņojumus. Nospiežot pogas, apskatiet sērijas žurnāla logu, lai pārliecinātos, ka esat identificējis pareizos ziņojumus.

4. solis: aparatūras prototips

Aparatūras prototips
Aparatūras prototips

Jūsu aparatūrai jāspēj:

  1. Identificējiet CAN kopnē saņemtās komandas
  2. Sūtiet komandas citā formātā uz stereo

Ja jums ir pietiekami daudz vietas, pirmajai daļai varat izmantot Arduino un CAN vairogu, bet otrajai - pievienot papildu aparatūru. Tomēr ir daži trūkumi:

  • CAN vairoga izmaksas
  • Izmērs
  • Arduino barošanas avots nebūs laimīgs, ja tas būs tieši pievienots jūsu automašīnām ar 12 V spriegumu (iespējams, tas darbosies, bet tā kalpošanas laiks, visticamāk, tiks saīsināts).

Tā vietā es izmantoju sekojošo:

  • Atmega 328, "Arduino smadzenes". (Ir daži varianti, iegūstiet to, kas ir vienāds ar Arduino Uno. Jūs varat to iegādāties ar vai bez Arduino sāknēšanas ielādētāja.)
  • 16 MHz kristāls + kondensatori pulksteņa signālam.
  • MCP2551 CAN uztvērējs.
  • MCP2515 CAN kontrolieris.
  • TSR1-2450, pārveido 6,5-36V uz 5V. (Prototipā netiek izmantots, jo programmatūrai nerūpēsies par barošanu.)
  • CD4066B slēdzis, kas tiks izmantots, nosūtot komandas uz stereo.
  • Pāris rezistori. (Vērtības var atrast Eagle shēmās vēlāk.)

Laba lieta ar šo konfigurāciju ir tā, ka tā ir pilnībā saderīga ar Arduino un CAN vairoga bibliotēku.

Ja vēlaties izmantot vairāk nekā četras pogas, ieteicams izmantot kaut ko citu, nevis CD4066B. CD4066B var raksturot kā četrus slēdžus vienā, katru no tiem kontrolē viena no Atmegas GPIO tapām. Katram slēdzim ir pievienots rezistors, ko var izmantot, lai kontrolētu pretestību, ko izmanto kā stereo ieeju. Tātad to var viegli izmantot, lai nosūtītu četras dažādas komandas. Ja tos apvieno, var iegūt papildu pretestības vērtības. Šeit parādās kļūda, kuru es minēju iepriekš. Man ir četras pogas, bet es plānoju divas no tām īstenot, tik ilgi un īsi nospiežot, lai dotu man sešas dažādas komandas. Bet galu galā es uzzināju, ka nevaru atrast rezistoru kombināciju, kas man dotu sešas darba kombinācijas. Iespējams, tā vietā būtu iespējams savienot analogo izejas signālu ar stereo (3,5 mm gals). (Ņemiet vērā, ka Atmega nav īstu analogo izejas tapu, tāpēc būs nepieciešama papildu aparatūra.)

Pārbaudes nolūkos es izveidoju arī vienkāršu "automašīnas un stereo" simulatoru, lai izveidotu savienojumu ar savu prototipu. Tas atvieglo atkļūdošanu, un, ja vien jums nepatīk sēdēt automašīnā un programmēt, es to varu ieteikt.

Prototipu ilustrē attēlā redzamais apakšējais maizes dēlis. Barošanas avotam, programmēšanai un sērijveida reģistrēšanai tas ir pievienots Arduino Uno, kur ir noņemta Atmega mikroshēma.

Augšējais maizes dēlis ir automašīnas un stereo simulators, kas tiks izmantots prototipa sākotnējai pārbaudei.

Simulatora prototips + ir paredzēts darbam šādi:

  • Nospiediet vienu no slēdža pogām simulatora panelī. (Tās ir jūsu stūres pogas.)
  • Kad simulatora programma nosaka pogas nospiešanu, tā nosūta atbilstošo CAN ziņojumu ik pēc 70 ms, kamēr poga ir nospiesta. (Tā kā iepriekš paņemtie žurnāli norādīja, ka tā darbojas manā automašīnā.) Tas arī nosūtīs daudz "nevēlamu" CAN ziņojumu, lai simulētu citu satiksmi autobusā.
  • CAN ziņojumi tiek nosūtīti uz CAN kopni.
  • Prototips saņem CAN ziņojumus.
  • MCP2515 izmet visus nesaistītos ziņojumus, pamatojoties uz ziņojuma ID.
  • Kad MCP2515 saņem ziņojumu, kas jāapstrādā, tas norāda, ka ziņojums ir ievietots rindā.
  • Atmega izlasīs ziņojumu un izlems, kuru pogu uzskatīt par aktīvu.
  • Atmega arī sekos, kad tika saņemts pēdējais ziņojums, pēc noteikta laika poga tiks uzskatīta par atbrīvotu. (CAN ziņojumi norāda tikai uz pogas nospiešanu, nevis uz to, ka tā ir nospiesta vai atlaista.)
  • Ja poga tiek uzskatīta par aktīvu, tiks aktivizēts viens vai vairāki CD4066B slēdži.
  • Simulators (tagad darbojas kā jūsu stereo iekārta) noteiks, ka starp galu un piedurkni tiek pielietota pretestība. (Padoms ir savienots ar 3.3V un caur rezistoru līdz analogās ieejas tapai. Ja neviena komanda nav aktīva, šī tapa rādīs 3.3V, ja komanda ir aktīva, vērtība kļūs zemāka un identificēs komandu.
  • Kamēr komanda ir aktīva, tiks aktivizēts arī atbilstošais LED. (Ir sešas gaismas diodes, jo divām savām pogām es plānoju izmantot dažādu garu / īsu nospiešanu.)

Lai iegūtu sīkāku informāciju par aparatūras prototipu, skatiet Ērgļa shēmas vēlāk.

Papildu informācija par simulatora plates aparatūru:

  • 16 MHz kristāls
  • 22 pF kondensatori
  • LED rezistori jāizvēlas, pamatojoties uz LED īpašībām
  • Rezistors pievienots A7 un 3.3V, izvēlieties piem. 2 kOhm (nav kritisks).
  • Rezistori, kas savienoti ar MCP2551 un MCP2515, ir uzvelkami / nolaižami. Izvēlieties piem. 10 kOhm.

(Vai arī varat izmantot CAN vairogu simulatora "CAN daļai", ja vēlaties.)

Projektējot aparatūru, ir svarīgi zināt, kā Atmega tapas tiek kartētas ar Arduino tapām.

(Nepievienojiet nekādus gaismas diodes tieši CD 4066B, tas var apstrādāt tikai zemu strāvu. Es to izmēģināju, pirmo reizi pārbaudot izvadi, un mikroshēma kļuva bezjēdzīga. Labā lieta ir tā, ka es nopirku pāris no tiem tikai tāpēc, ka tie ir tik lēti.)

5. darbība: drošinātāju programmēšana

Varbūt iepriekšējā solī pamanījāt, ka prototipam nav atsevišķu komponentu, lai ģenerētu pulksteņa signālu MCP2515. Tas ir tāpēc, ka mēs jau varam izmantot 16 MHz kristālu kā Atmega pulksteņa signālu. Bet mēs nevaram to vienkārši savienot tieši ar MCP2515, un pēc noklusējuma Atmega nav pulksteņa izslēgšanas signāla.

(Ja vēlaties, varat izlaist šo darbību un tā vietā pievienot papildu pulksteņa aparatūru.)

Tomēr mēs varam izmantot kaut ko, ko sauc par "drošinātāju programmēšanu", lai iespējotu pulksteņa izejas signālu vienā no GPIO tapām.

Vispirms jums būs jāatrod fails ar nosaukumu "boards.txt", ko izmanto jūsu Arduino IDE. Jums būs jākopē Arduino Uno ieraksts, jāpiešķir tam jauns nosaukums un jāmaina zemu drošinātāju vērtība.

Mana jaunā tāfele izskatās šādi:

################################################# ##############Pamatojoties uz Arduino Uno

clkuno.name = Pulkstenis (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_floadk = 0box.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.core = arduino cl.

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

Ņemiet vērā, ka pulkstenis ir aktivizēts, iestatot tā vadības bitu uz 0.

Kad esat izveidojis jauno tāfeli dēļu konfigurācijas failā, jums būs jāsadedzina jauns sāknēšanas ielādētājs Atmega. Lai to izdarītu, ir dažādi veidi, es izmantoju metodi, kas aprakstīta vietnē

Kad esat to izdarījis, augšupielādējot programmu Atmega, atcerieties izvēlēties savu jauno dēļa veidu, nevis Arduino Uno.

6. darbība: programmatūra

Programmatūra
Programmatūra

Laiks padarīt mēmo aparatūru gudru, pievienojot kādu programmatūru.

Šeit ir daži prototipa pseidokodi:

lastReceivedTime = 0

lastReceivedCmd = nav cmdTimeout = 100 iestatīšana () {iespējot sargsuņa konfigurēt tapas D4-D7 kā izejas tapas init CAN iestatīšana CAN filtrs} cilpa () {atiestatīt sargsuņu, ja (tiek saņemts CAN ziņojums) {katrai pogas komandai {ja CAN ziņojums pieder pogas komanda {lastReceivedTime = tagad lastReceivedCmd = cmd}}} ja tagad> lastReceivedTime + cmdTimeout {lastReceivedCmd = none} katrai pogas komandai {ja lastReceivedCmd ir pogas komanda {set command pin output = on} cits {set command pin output = off }}}

cmdTimeout izlemj, cik ilgi mums jāgaida, pirms mēs uzskatām pēdējo atbrīvoto aktīvo pogu. Tā kā pogu CAN ziņojumu komandas tiek sūtītas aptuveni ik pēc 70 ms, tām ir jābūt lielākām par dažām rezervēm. Bet, ja tas ir pārāk liels, būs kavēšanās pieredze. Tātad 100 ms šķiet labs kandidāts.

Bet kas ir sargsuns? Tā ir noderīga maza aparatūras funkcija, kas var mūs glābt avārijas gadījumā. Iedomājieties, ka mums ir kļūda, kas izraisa programmas avāriju, kamēr skaļuma palielināšanas komanda ir aktīva. Tad mēs nonāktu pie stereo ar maksimālo skaļumu! Bet, ja sargsuns netiek atiestatīts uz noteiktu laiku, tas nolemj, ka ir noticis kas neparedzēts, un vienkārši izdod atiestatīšanu.

anulēts iestatījums ()

{// atļaut maksimāli 250 ms cilpai wdt_enable (WDTO_250MS); // citi init sīkumi} void loop () {wdt_reset (); // dari lietas}

CAN filtru? Jūs varat konfigurēt CAN kontrolieri, lai atmestu visus ziņojumus, kas neatbilst filtram, tāpēc programmatūrai nav jātērē laiks ziņojumiem, kas mums nerūp.

neparakstīta garā maska = 0x1fffffff; // Iekļaujiet maskā visus 29 galvenes bitus

neparakstīts garais filtrsId = 0x0400066; // Mums rūp tikai šis CAN ziņojums id m_can.init_Mask (0, CAN_EXTID, mask); // Maska 0 attiecas uz filtru 0-1 m_can.init_Mask (1, CAN_EXTID, mask); // 1. maska attiecas uz filtru 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);

Pārbaudiet CAN bibliotēkas kodu un CAN kontrollera dokumentāciju, lai iegūtu sīkāku informāciju par filtra + maskas iestatīšanu.

Varat arī iestatīt CAN kontrolieri, lai tas izraisītu pārtraukumu, kad tiek saņemts ziņojums (kas nav filtrēts). (Nav iekļauts iepriekš minētajā piemērā, bet manā programmā tam ir noteikts kods.) Šajā gadījumā tas īsti nepievieno nekādu vērtību, un tas var būt mulsinoši, ja neesat pieradis pie programmēšanas.

Tātad tas bija programmatūras prototips kopsavilkumā. Bet mums ir vajadzīgs arī simulatora dēļa kods:

lastSentTime = 0

minDelayTime = 70 setup () {konfigurējiet tapas A0-A5 kā izejas tapas konfigurējiet tapas D4-D7 kā ievades tapas ar iekšēju pievilkšanu. init CAN} cilpa () {sūtīt "junk" var ziņu iestatīt activeButton = nav katrai pogai {ja poga tiek nospiesta {set activeButton = button}} ja activeButton! = nav {ja tagad> lastSentTime + minDelayTime {send button command can message } set lastSentTime = now} invalid = read pin A7 foreach (cmd) {if (min <invalid <max) {led on} else {led off}} pagaidiet 1 ms}

Tas nepārtraukti sūtīs "nevēlamus" CAN ziņojumus aptuveni ik pēc ms un, kamēr poga tiek nospiesta, katra 70 ms.

Jums, iespējams, vajadzēs reģistrēt ievadi tapā A7, vienlaikus nospiežot dažādas pogas, lai uzzinātu piemērotas vērtības katrai pogai raksturīgajiem mainīgajiem un minimālajiem mainīgajiem. (Vai arī jūs varat to aprēķināt, bet faktiski nolasot ievadi, jūs iegūsit precīzākas vērtības.)

Programmējot tapas režīmus, jums jābūt nedaudz uzmanīgam. Ja nejauši kā izejas tapas iestatījāt tapas, kas paredzētas iekšējai pievilkšanai, jūs izveidosit iespējamu saīsni, kas sabojās jūsu Arduino, kad iestatīsit izvadi augstu.

Ja vēlaties pārbaudīt manas programmas, tās var lejupielādēt šeit:

  • CAN ziņu žurnāla programma
  • Programma simulatora padomei
  • Programma prototipam / galīgajai tāfelei

Jums jāapzinās, ka šīs programmas īsti neatbilst šeit redzamajam pseidokodam, tajās ir daudz "papildu" lietu, kas nav īsti vajadzīgas, un, ja neesat pazīstams ar objektorientētu programmēšanu, iespējams, ka to būs nedaudz grūti lasīt.

7. solis: galīgā aparatūra

Galīgā aparatūra
Galīgā aparatūra
Galīgā aparatūra
Galīgā aparatūra
Galīgā aparatūra
Galīgā aparatūra

Kad esat apmierināts ar savu programmu (atcerieties pārbaudīt prototipu automašīnā pēc pēdējās pārbaudes ar simulatora paneli), ir pienācis laiks izveidot īsto aparatūru.

Šeit jums ir trīs iespējas:

  • Ātri un netīri - lodējiet lietas kopā uz PCB prototipa plates.
  • Hardcore DIY - iegravējiet savu PCB.
  • Slinks veids - pasūtiet profesionālu PCB, lai pielodētu komponentus.

Ja nesteidzaties, varu ieteikt pēdējo variantu. Ja jums ir nepieciešams tikai tāds neliels PCB, to ir ļoti lēti pasūtīt no Ķīnas. (Un tad jūs, iespējams, iegūsit apmēram desmit gabalus, lai jūs varētu atļauties dažas lodēšanas kļūdas.)

Lai pasūtītu PCB, jums būs jānosūta savs dizains Gerber formātā. Šim nolūkam ir dažādas programmatūras. Es izmantoju Eagle, ko varu ieteikt. Jūs varat sagaidīt dažas stundas, lai to iemācītos, bet tad tas darbojas labi. Šādiem maziem dēļiem varat to izmantot bez maksas.

Esiet piesardzīgs, veidojot dizainu. Jūs nevēlaties gaidīt četras nedēļas līdz piegādei, lai uzzinātu, ka esat izdarījis kaut ko nepareizi.

(Ja jums ir labas lodēšanas prasmes, varat izstrādāt uz virsmas uzstādītus komponentus un iegūt patiešām mazu adapteri. Es to nedarīju.)

Pēc tam pasūtiet, piem. https://www.seeedstudio.com/fusion_pcb.html. Izpildiet norādījumus, kā ģenerēt Gerber failus no sava dizaina. Varat arī iegūt rezultāta priekšskatījumu, lai pārliecinātos, ka tas ir kārtībā.

(Galu galā man bija jāizvēlas citi rezistori R4-R7, nekā norādīts shēmas attēlā. Tā vietā es izmantoju 2k, 4,7k, 6,8k un 14,7k.)

Un atcerieties - nejauciet Atmega tapu numerāciju ar Arduino tapu numerāciju!

Es iesaku nelodēt Atmega mikroshēmu tieši, bet izmantot kontaktligzdu. Pēc tam to var viegli noņemt, ja jums tas jāpārprogrammē.

8. solis: automašīnas montāža

Automašīnas montāža
Automašīnas montāža
Automašīnas montāža
Automašīnas montāža

Tagad uz visjautrāko daļu - uzstādiet to savā automašīnā un sāciet to lietot! (Pēc tam, kad esat tam izgatavojis / iegādājies futrāli.)

Ja esat jau pilnībā pārbaudījis savas automašīnas prototipu, visam vajadzētu darboties nevainojami.

(Kā jau iepriekš minēju, es to nedarīju, tāpēc man nācās nomainīt dažus rezistorus un veikt dažas izmaiņas savā programmā.)

Apsveriet arī to, vai to vajadzētu uzstādīt aiz stereo vai citur. Es atradu labu vietu virs cimdu nodalījuma, kur to varu sasniegt no cimdu nodalījuma iekšpuses, neko neizjaucot. Tas varētu būt noderīgi, ja vēlāk nolemšu to jaunināt.

Beidzot manas pogas atkal strādā! Kā es varētu izdzīvot divus mēnešus bez viņiem?

9. solis. Turpmākie uzlabojumi

Kā jau minēts, ja es izveidošu šīs versijas 2.0, es aizstāšu 4066B ar kaut ko citu (iespējams, digitālo potenciometru), lai nodrošinātu lielāku elastību.

Ir arī daudzas citas lietas, ko varat darīt. Piem. pievienojiet Bluetooth moduli un izveidojiet tālrunim tālvadības lietotni. Vai GPS modulis, tad, kad esat tuvu mājām, varat automātiski palielināt skaļumu un nosūtīt CAN ziņojumu "logi uz leju", lai visi jūsu kaimiņi varētu baudīt jūsu brīnišķīgo mūziku.

Ieteicams: