Orodha ya maudhui:

Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari: Hatua 9 (na Picha)
Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari: Hatua 9 (na Picha)

Video: Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari: Hatua 9 (na Picha)

Video: Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari: Hatua 9 (na Picha)
Video: Chapter 14 - Tom Swift and his Electric Runabout by Victor Appleton 2024, Novemba
Anonim
Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari
Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari
Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari
Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari
Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari
Desturi Arduino Kuweka KIWANGO Vifungo vya Usukani Na Stereo Mpya ya Gari

Niliamua kubadilisha stereo ya gari asili katika Volvo V70 -02 yangu na stereo mpya ili nitaweza kufurahiya vitu kama mp3, bluetooth na handsfree.

Gari langu lina vidhibiti vya usukani kwa stereo ambayo ningependa bado kuweza kutumia. Sikutarajia hilo kuwa shida kwa sababu kuna adapta kadhaa kwenye soko ambazo zinapaswa kuendana na gari langu. Walakini hivi karibuni niligundua kuwa hawakuwa! (Inaonekana kama adapta za V70 zinaweza kuwa na shida na -02 gari kwa sababu ya itifaki tofauti ya CAN.)

Basi ni nini cha kufanya basi? Ungependa kuweka stereo ya zamani? Kuishi maisha na vifungo visivyofanya kazi? Bila shaka hapana! Ikiwa hakuna adapta inayofanya kazi kwenye soko basi itabidi tuijenge moja!

Hii inaweza kufundishwa (pamoja na mabadiliko kadhaa) kwa magari ambapo vifungo vya usukani huwasiliana juu ya basi la CAN.

Hatua ya 1: Tafuta Jinsi ya Kutuma Amri kwa Stereo

Tafuta Jinsi ya Kupeleka Amri kwa Stereo
Tafuta Jinsi ya Kupeleka Amri kwa Stereo
Tafuta Jinsi ya Kupeleka Amri kwa Stereo
Tafuta Jinsi ya Kupeleka Amri kwa Stereo

Jambo la kwanza unapaswa kufanya ni kujua ni aina gani ya pembejeo ya kijijini ambayo stereo inatarajia. Kwa kawaida wazalishaji hawatakuambia hilo na labda hauna ufikiaji wa vidhibiti vya kijijini vya uhandisi wa nyuma pia.

Kijijini cha redio yangu mpya (Kenwood) kina waya moja na sikuweza kupata habari yoyote juu ya jinsi inavyofanya kazi. Walakini ina jack ya 3.5 mm ya pembejeo za mbali. Sikuweza kujua chochote kuhusu hilo pia. Lakini kuna habari kadhaa juu ya jack ya 3.5 mm kwa chapa zingine zinazoonyesha kwamba amri tofauti zinatambuliwa kwa kutumia upinzani maalum kati ya ncha na sleeve (na kwa hiari kati ya pete na sleeve). Mfano. https://forum.arduino.cc/index.php?topic=230068.0. Kwa hivyo niliamua kujaribu, nikiwa na ubao wa mkate, rundo la vipinga na kuziba 3.5 mm kwenye stereo na kushikamana na ubao wa mkate. Hakuna kitu kilichotambuliwa mwanzoni, lakini stereo ina menyu ya "hali ya kujifunza" na hapo amri zinaweza kuwekwa kwa mafanikio wakati wa kutumia upinzani anuwai. Mafanikio!

Walakini baadaye niligundua kuwa nilifanya makosa hapa: Sio amri zote ambazo stereo ilionekana kujifunza zitatumika. Mfano. 30 kOhm ilipatikana katika hali ya kujifunza lakini haikufanya kazi baadaye na kwa maagizo kadhaa niliweka tofauti ya upinzani ilikuwa ndogo sana hivi kwamba amri mbaya ilisababishwa.

Kwa hivyo ninapendekeza utumie ubao wa mkate na vipinga na ubadilishe vifungo kwa amri zote za mbali ambazo unataka kushughulikia na ujaribu kuwa zote zitafanya kazi.

Ikiwa stereo ya gari yako haiwezi kupokea pembejeo kwa njia ile ile basi italazimika kujua jinsi inavyofanya kazi ili uweze kurekebisha suluhisho hili. Ikiwa huwezi kujua wakati wote basi una shida.

Hatua ya 2: Tafuta Wapi Unganisha kwenye basi la CAN

Tafuta Wapi Unganisha kwenye Basi la CAN
Tafuta Wapi Unganisha kwenye Basi la CAN

Unahitaji kupata mahali pazuri pa kuungana na basi la CAN. Kwa kuwa unachukua nafasi ya redio ya zamani inayowasiliana juu ya CAN unapaswa kupata hiyo nyuma ya stereo. Basi la CAN lina waya mbili zilizopotoka (CAN-L na CAN_H). Wasiliana na mchoro wa wiring kwa gari lako kuwa na uhakika.

Hatua ya 3: Kubadilisha Uhandisi wa Ujumbe wa CAN

Uhandisi wa Kubadilisha Ujumbe wa CAN
Uhandisi wa Kubadilisha Ujumbe wa CAN

Isipokuwa Google iweze kukuambia ni ujumbe gani wa CAN unapaswa kusikiliza basi utahitaji kuungana na basi la CAN na ufanye uhandisi wa nyuma. Nilitumia Arduino Uno na ngao ya CAN. (Hauitaji sana ngao ya CAN, kwani utaona baadaye unaweza kutumia vifaa vya bei rahisi kwenye ubao wa mkate badala yake.)

Wasiliana na Google ili kujua ni kiwango gani cha baud unapaswa kutumia wakati wa kuunganisha kwenye gari lako. (Kawaida utagundua kuwa kuna kasi kubwa na kasi ndogo ya wavu wa CAN. Unaunganisha kwa wavu wa kasi ndogo.)

Utahitaji pia kupanga Arduino kuingia ujumbe wote wa CAN juu ya kiolesura cha serial ili uweze kuzihifadhi kwenye faili ya logi kwenye kompyuta yako. IDE ya kawaida ya Arduino haitahifadhi data kwenye faili ya kumbukumbu lakini unaweza kutumia k.v. Putty badala yake.

Kabla ya kuanza kuandika programu yako unahitaji kusanikisha maktaba ya CAN_BUS_Shield.

Hapa kuna nambari ya uwongo kukusaidia kuanza na programu yako:

kuanzisha ()

{init serial connection init CAN library} kitanzi () {ikiwa ujumbe wa CAN unapokelewa {soma ujumbe wa maandishi unaweza kuingia kwa maandishi andika ingizo la kumbukumbu kwa serial}}

Vidokezo:

Utatumia mfano wa darasa la MCP_CAN kufikia utendaji wa maktaba ya CAN:

MCP_CAN m_can;

INIT INAWEZA:

wakati (m_can.begin ()! = CAN_OK)

{kuchelewa (1000); }

Angalia na usome ujumbe wa CAN:

wakati (m_can.checkReceive () == CAN_MSGAVAIL)

{// Pata kitambulisho cha CAN, urefu wa ujumbe na data ya ujumbe m_can.readMsgBufID (& m_canId, & m_msgLen, m_msgBuf); // Fanya kitu na data ya ujumbe hapa}

Ikiwa unahitaji msaada zaidi unaweza kupata kiunga cha programu yangu katika hatua ya baadaye. Maktaba ya ngao ya CAN pia inajumuisha mfano. Au angalia maelekezo ya mviljoen2 ambayo ni pamoja na hatua sawa.

Kwanza utahitaji faili ya kumbukumbu kukusaidia kuchuja data. Badilisha moto kwenye hali ya redio na uandike kila kitu kwa dakika kadhaa bila kugusa vifungo vyovyote.

Kisha kwa kila vifungo, anza magogo, bonyeza kitufe na uacha kukata magogo.

Ukimaliza unahitaji kuchuja kila kitu kilicho kwenye kumbukumbu yako ya kumbukumbu kutoka kwa magogo yako ya vifungo ili kupata wagombea wako. Niligundua kuwa bado kulikuwa na ujumbe mwingi uliobaki kwa hivyo nilitengeneza magogo zaidi na kisha nikahitaji kwamba "wagombea wa amri A lazima wawe kwenye faili zote za kifungo-A-na hakuna faili yoyote ya kumbukumbu". Hiyo iliniacha na uwezekano mdogo tu wa kujaribu.

Magogo yatakuwa na ujumbe mwingi kwa hivyo utahitaji kuandika programu fulani kwa hii au labda utumie Excel. (Nilitumia programu iliyo na hali ngumu sana kwa mahitaji yangu kwa hivyo ninaogopa kuwa siwezi kutoa programu unayoweza kutumia.)

Neno la onyo: Huwezi kuwa na hakika kwamba kitufe kitazalisha ujumbe sawa kila wakati. Baadhi ya bits zinaweza kuwa na hesabu zinazoongeza n.k. (Unaweza isipokuwa kitambulisho cha ujumbe kuwa sawa hata hivyo.)

Ikiwa unatokea kuwa na Volvo V70 -02 hii ndio unafuata:

  • Kitambulisho cha ujumbe: 0x0400066Byte0: 0x00, 0x40, 0x80 au 0xc0 (hawajali)
  • Byte1: 0x00 (usijali)
  • Byte2: 0x00 (hawajali)
  • Byte3: 0x00-0x07 (usijali)
  • Byte4: 0x1f (hawajali)
  • Byte5: 0x40 (usijali)
  • Byte6: 0x40 (usijali)
  • Byte7: Kitambulisho cha kifungo: 0x77 = sauti juu, 0x7b = sauti chini, 0x7d = wimbo unaofuata, 0x7e = wimbo uliopita.

Unapoamini kuwa umepata maagizo inaweza kuwa wazo nzuri kurekebisha programu ili iweze tu kumbukumbu za ujumbe unaovutia. Angalia dirisha la kumbukumbu la serial wakati unabonyeza vifungo ili kudhibitisha kuwa umetambua ujumbe sahihi.

Hatua ya 4: Mfano wa vifaa

Mfano wa vifaa
Mfano wa vifaa

Vifaa vyako vinahitaji kuweza:

  1. Tambua amri zilizopokelewa kwenye basi la CAN
  2. Tuma amri kwa muundo mwingine kwa stereo

Ikiwa una nafasi ya kutosha unaweza kutumia Arduino na ngao ya CAN kwa sehemu ya kwanza na ambatisha vifaa vingine vya ziada kwa pili. Walakini kuna shida kadhaa:

  • Gharama ya ngao ya CAN
  • Ukubwa
  • Usambazaji wa umeme wa Arduino hautafurahi ikiwa utaunganishwa moja kwa moja na magari yako 12V (labda itafanya kazi lakini maisha yake yatafupishwa).

Kwa hivyo badala yake nilitumia yafuatayo:

  • Atmega 328, "ubongo wa Arduino". (Kuna anuwai kadhaa, pata ile ambayo ni sawa na ile iliyo kwenye Arduino Uno. Unaweza kuinunua na Loader buti ya Arduino au bila.
  • Kioo cha 16 MHz + capacitors kwa ishara ya saa.
  • MCP2551 INAWEZA transceiver.
  • Mdhibiti wa MCP2515.
  • TSR1-2450, inabadilisha 6.5-36V kuwa 5V. (Haitumiki katika mfano kwa sababu programu haitajali usambazaji wa umeme.)
  • CD4066B kubadili ambayo itatumika wakati wa kutuma amri kwa stereo.
  • Vipimo kadhaa. (Thamani zinaweza kupatikana katika hesabu za Tai katika hatua ya baadaye.)

Jambo zuri na usanidi huu ni kwamba inaambatana kabisa na Arduino na maktaba ya ngao ya CAN.

Ikiwa unataka kushughulikia vifungo zaidi ya vinne unaweza kutaka kutumia kitu kingine kuliko CD4066B. CD4066B inaweza kuelezewa kama swichi nne kwa moja, kila moja ikidhibitiwa na moja ya pini za Atmegas GPIO. Kwa kila swichi kuna kontena iliyounganishwa ambayo inaweza kutumiwa kudhibiti upinzaji unaotumika kama pembejeo kwa stereo. Kwa hivyo hii inaweza kutumika kwa urahisi kutuma amri nne tofauti. Ikiwa zimejumuishwa basi maadili ya ziada ya upinzani yanaweza kupatikana. Hapa ndipo makosa niliyoyataja hapo awali yanapoingia. Nina vifungo vinne, lakini nilipanga kutekeleza mbili kati yao kwa muda mrefu na mfupi ili kunipa amri sita tofauti. Lakini mwishowe nikagundua kuwa sikuweza kupata mchanganyiko wa vipinga ambavyo vitanipa mchanganyiko sita wa kufanya kazi. Labda itawezekana kuunganisha ishara ya analog nje kwa stereo (ncha ya 3.5 mm) badala yake. (Kumbuka kuwa Atmega haina pini za kweli za analogi kwa hivyo vifaa vingine vya ziada vinahitajika.)

Kwa madhumuni ya upimaji pia nilifanya simulator rahisi ya "gari na stereo" kuungana na mfano wangu. Inafanya utatuzi kuwa rahisi na isipokuwa unapofurahi kukaa kwenye gari lako na mpango ninaweza kupendekeza hiyo.

Mfano huo umeonyeshwa na ubao wa chini kwenye picha. Kwa usambazaji wa umeme, programu na ukataji wa serial umeambatanishwa na Arduino Uno ambapo chip ya Atmega imeondolewa.

Bodi ya juu ya mkate ni gari + stereo simulator ambayo itatumika kwa upimaji wa awali wa mfano.

Mfano + simulator imekusudiwa kufanya kazi kama hii:

  • Bonyeza kitufe kimoja cha kubadili kwenye ubao wa simulator. (Hizo ni vifungo vyako vya usukani.)
  • Wakati programu ya simulator inagundua kitufe cha waandishi wa habari itatuma ujumbe unaofanana wa CAN kila ms 70 kwa muda mrefu kifungo kitasukumwa. (Kwa sababu magogo niliyochukua hapo awali yalionyesha kwamba ndivyo inavyofanya kazi kwenye gari langu.) Pia itatuma ujumbe mwingi "wa taka" UNAWEZA kuiga trafiki nyingine kwenye basi.
  • Ujumbe wa CAN unatumwa kwenye basi la CAN.
  • Ujumbe wa CAN unapokelewa na mfano.
  • MCP2515 hutupa ujumbe wote ambao hauhusiani kulingana na kitambulisho cha ujumbe.
  • Wakati MCP2515 inapokea ujumbe ambao unapaswa kushughulikiwa itaonyesha kuwa ina ujumbe uliotengwa.
  • Atmega itasoma ujumbe na kuamua ni kitufe gani ambacho kinapaswa kuzingatiwa kuwa kazi.
  • Atmega pia itaendelea kufuatilia wakati ujumbe wa mwisho ulipokelewa, baada ya muda fulani kifungo kitazingatiwa kutolewa. (Ujumbe wa CAN unaonyesha tu kuwa kifungo kiko chini, sio kwamba imesukumwa au kutolewa.)
  • Ikiwa kitufe kinachukuliwa kuwa kazi basi swichi moja au zaidi kwenye CD4066B itaamilishwa.
  • Simulator (sasa inafanya kama stereo yako) itagundua kuwa upinzani hutumiwa kati ya ncha na sleeve. (Ncha hiyo imeunganishwa na 3.3V na kupitia kontena kwa pini ya pembejeo ya analojia. Wakati hakuna amri inayotumika pini hii itasoma 3.3V, wakati amri inafanya kazi thamani itakuwa chini na kutambua amri.
  • Wakati amri inafanya kazi mwongozo unaolingana pia utawashwa. (Kuna viongozo sita kwa sababu nilipanga kutumia vyombo vya habari tofauti ndefu / fupi kwa vifungo vyangu viwili.)

Kwa maelezo zaidi juu ya vifaa vya mfano, angalia skimu za Tai katika hatua ya baadaye.

Maelezo ya ziada juu ya vifaa vya bodi ya simulator:

  • Kioo cha 16 MHz
  • 22 pF capacitors
  • Vipimo vya LED vinapaswa kuchaguliwa kulingana na mali ya LED
  • Resistor iliyounganishwa na A7 na 3.3V, chagua k.m. 2kOhm (sio muhimu).
  • Resistors zilizounganishwa na MCP2551 na MCP2515 ni za kuvuta / kuvuta. Chagua k.m. 10 kOhm.

(Au unaweza kutumia ngao ya CAN kwa "sehemu ya CAN" ya simulator ikiwa unapenda.)

Ni muhimu ujue jinsi pini za Atmega zimepangwa kwa pini za Arduino unapobuni vifaa.

(Usiunganishe risasi yoyote moja kwa moja kwenye CD 4066B, inaweza tu kushughulikia mkondo wa chini. Nilijaribu kwamba wakati nilijaribu pato la kwanza na chip kuwa haina maana. Jambo zuri ni kwamba nilikuwa nimenunua michache yao kwa sababu tu ni rahisi sana.)

Hatua ya 5: Programu ya Fuse

Labda umeona katika hatua ya awali kwamba mfano hauna vifaa tofauti vya kutengeneza ishara ya saa kwa MCP2515. Hiyo ni kwa sababu tayari kuna kioo cha MHz 16 kinachotumiwa kama ishara ya saa ya Atmega ambayo tunaweza kutumia. Lakini hatuwezi kuiunganisha moja kwa moja na MCP2515 na kwa msingi hakuna ishara ya saa kwenye Atmega.

(Ikiwa unapendelea unaweza kuruka hatua hii na kuongeza vifaa vya saa ya ziada badala yake.)

Walakini tunaweza kutumia kitu kinachoitwa "programu ya fuse" kuwezesha ishara ya saa kwenye moja ya pini za GPIO.

Kwanza utahitaji kupata faili inayoitwa "board.txt" inayotumiwa na IDE yako ya Arduino. Utahitaji kunakili kiingilio cha Arduino Uno, ipe jina jipya na ubadilishe thamani ya mabaraza ya chini.

Bodi yangu mpya inaonekana kama hii:

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

clkuno.name = Saa nje (Arduino Uno)

clkuno.upload.protocol = arduino clkuno.upload.maximum_size = 32256 clkuno.upload.speed = 115200 clkuno.bootloader.low_fuses = 0xbf clkuno.. 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 = arduinovariku.

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

Kumbuka kuwa saa imeamilishwa kwa kuweka udhibiti wake kuwa 0.

Unapounda bodi mpya kwenye faili ya usanidi wa bodi italazimika kuchoma kipakiaji kipya cha buti kwa Atmega. Kuna njia anuwai za kufanya hivyo, nilitumia njia iliyoelezewa katika

Baada ya kufanya hivyo, kumbuka kuchagua aina yako mpya ya bodi na sio Arduino Uno unapopakia programu kwenye Atmega.

Hatua ya 6: Programu

Programu
Programu

Wakati wa kufanya vifaa bubu kuwa smart kwa kuongeza programu.

Hapa kuna nambari ya uwongo ya mfano:

muda wa mwisho = 0

lastReceivedCmd = none cmdTimeout = 100 setup () {kuwezesha saa ya kutazama kusanidi pini D4-D7 kama pini pato init CAN set CAN inaweza kuchuja} kitanzi () {reset watchdog if (CAN message is received) {kwa kila amri ya kifungo {ikiwa ujumbe wa CAN ni wa amri ya kifungo {lastReceivedTime = now lastReceivedCmd = cmd}}} ikiwa sasa> lastReceivedTime + cmdTimeout {lastReceivedCmd = none} kwa kila amri ya kitufe }}}

cmdTimeout huamua ni muda gani tunapaswa kusubiri kabla ya kuzingatia kitufe cha mwisho kilichotumika kilichotolewa. Kwa sababu amri za kifungo za ujumbe wa CAN zinatumwa takriban kila ms 70 inahitaji kuwa kubwa kuliko ile na margin. Lakini ikiwa ni kubwa kutakuwa na uzoefu wa bakia. Kwa hivyo ms 100 anaonekana kama mgombea mzuri.

Lakini mbwa wa kutazama ni nini? Ni kipengee muhimu cha vifaa ambavyo vinaweza kutuokoa ikiwa kuna ajali. Fikiria kuwa tuna mdudu anayesababisha programu kuanguka wakati amri ya kuongeza sauti inafanya kazi. Halafu tungeishia na stereo kwa sauti kubwa! Lakini ikiwa mwangalizi hajarejeshwa kwa wakati maalum itaamua kuwa kitu kisichotarajiwa kimetokea na itoe tu kuweka upya.

kuanzisha batili ()

{// kuruhusu max 250 ms kwa kitanzi wdt_enable (WDTO_250MS); // vitu vingine vya init} kitanzi batili () {wdt_reset (); // fanya vitu}

UNAWEZA kuchuja? Kweli, unaweza kusanidi kidhibiti cha CAN kutupilia mbali ujumbe wote ambao hailingani na kichungi kwa hivyo programu haifai kupoteza muda kwenye ujumbe ambao hatujali.

mask iliyowekwa saini = 0x1fffffff; // Jumuisha vipande vyote 29 vya kichwa kwenye kinyago

kichungi kirefu kisichosainiwaId = 0x0400066; // Tunajali tu kuhusu ujumbe huu wa id m_can.init_Mask (0, CAN_EXTID, mask); // Mask 0 inatumika kwa kuchuja 0-1 m_can.init_Mask (1, CAN_EXTID, mask); // Mask 1 inatumika kwa chujio 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);

Angalia nambari ya maktaba ya CAN na nyaraka za mtawala wa CAN kwa maelezo zaidi juu ya jinsi ya kuweka kichungi + kinyago.

Unaweza pia kusanidi kidhibiti cha CAN kuongeza usumbufu wakati ujumbe (ambao haujachujwa) unapokelewa. (Haijumuishwa katika mfano hapo juu lakini kuna nambari fulani ya mpango huo katika programu yangu.) Katika kesi hii haionyeshi thamani yoyote na inaweza kutatanisha ikiwa haujazoea programu.

Kwa hivyo hiyo ilikuwa programu ya mfano kwa muhtasari. Lakini tunahitaji nambari kadhaa kwa bodi ya simulator pia:

lastSentTime = 0

minDelayTime = usanidi 70 () {sanidi pini A0-A5 kama pini pato zinasanidi pini D4-D7 kama pini za kuingiza na pullup ya ndani. init CAN} kitanzi () {send "junk" can msg set activeButton = none for every button {if button is pushed {set activeButton = button}} if activeButton! = none {if now> lastSentTime + minDelayTime {send button command can message } weka lastSentTime = sasa} inval = soma pin A7 foreach (cmd) {if (min <inval <max) {led on} else {led off}} subiri 1 ms}

Hii itaendelea kutuma "taka" ujumbe wa CAN takriban kila ms na wakati kitufe kinasukumwa amri inayofanana kila 70 ms.

Huenda ukahitaji kuweka pembejeo kwenye pini A7 wakati unabonyeza vitufe tofauti ili kujua maadili yanayofaa kwa min na anuwai ya kila kifungo. (Au unaweza kuhesabu, lakini kwa kweli kusoma pembejeo itakupa maadili sahihi zaidi.)

Unahitaji kuwa mwangalifu kidogo wakati unapanga programu za pini. Ikiwa kwa bahati mbaya umeweka pini zilizokusudiwa kutumia pullup ya ndani kama pini za pato badala yake basi utaunda njia ya mkato inayoweza kuharibu Arduino yako wakati utaweka pato kubwa.

Ikiwa unataka kuangalia programu zangu zinaweza kupakuliwa hapa:

  • CAN ujumbe logi mpango
  • Programu ya bodi ya simulator
  • Mpango wa mfano / bodi ya mwisho

Unapaswa kujua kwamba programu hizo hazilingani kabisa na nambari ya uwongo hapa, zina vitu vingi "vya ziada" ambavyo havihitajiki sana na ikiwa haujui programu inayolenga kitu inaweza kuwa ngumu kusoma.

Hatua ya 7: Vifaa vya Mwisho

Vifaa vya Mwisho
Vifaa vya Mwisho
Vifaa vya Mwisho
Vifaa vya Mwisho
Vifaa vya Mwisho
Vifaa vya Mwisho

Unapofurahi na programu yako (kumbuka kujaribu mfano katika gari baada ya majaribio ya mwisho na bodi ya simulator) ni wakati wa kujenga vifaa halisi.

Una chaguzi tatu hapa:

  • Haraka na chafu - suuza vitu pamoja kwenye bodi ya mfano ya PCB.
  • Hardcore DIY - etch PCB yako mwenyewe.
  • Njia ya uvivu - kuagiza PCB ya kitaalam ili kugeuza vifaa.

Ikiwa hauna haraka ninaweza kupendekeza chaguo la mwisho. Ikiwa unahitaji tu PCB ndogo kama hii ni bei rahisi kuiagiza kutoka China. (Na kisha labda utapata vipande kumi au hivyo ili uweze kumudu makosa kadhaa ya kuuza.)

Ili kuagiza PCB utahitaji kutuma muundo wako katika muundo wa Gerber. Kuna programu anuwai ya hii. Nilitumia Tai ambayo ninaweza kupendekeza. Unaweza kutarajia masaa machache kujifunza lakini basi inafanya kazi vizuri. Kwa bodi ndogo kama hii unaweza kutumia bure.

Kuwa mwangalifu unapotengeneza muundo. Hautaki kusubiri wiki nne kwa kujifungua ili ujue tu kuwa umefanya kitu kibaya.

(Ikiwa una ustadi mzuri wa kutengenezea unaweza kubuni kwa vifaa vilivyowekwa juu ya uso na kupata adapta ndogo sana. Sikufanya hivyo.)

Kisha agiza kwa mfano. https://www.seeedstudio.com/fusion_pcb.html. Fuata maagizo ya jinsi ya kutengeneza faili za Gerber kutoka kwa muundo wako. Unaweza pia kupata hakikisho la matokeo ili kuhakikisha kuwa ni sawa.

(Mwishowe ilibidi nichague vipingaji vingine kwa R4-R7 kuliko ilivyoorodheshwa kwenye picha ya skimu. Badala yake nilitumia 2k, 4.7k, 6.8k na 14.7k.)

Na kumbuka - usichanganye pini ya Atmega yenye nambari ya Arduino!

Ninapendekeza usitengeneze chip ya Atmega moja kwa moja lakini utumie tundu. Basi unaweza kuiondoa kwa urahisi ikiwa unahitaji kuibadilisha.

Hatua ya 8: Kupanda Gari

Kuweka Gari
Kuweka Gari
Kuweka Gari
Kuweka Gari

Sasa kwa sehemu ya kufurahisha zaidi - ipandishe kwenye gari lako na uanze kuitumia! (Baada ya kutengeneza / kununua kesi kwa hiyo.)

Ikiwa tayari umejaribu kabisa mfano katika gari lako kila kitu kinapaswa kufanya kazi kikamilifu.

(Kama nilivyosema hapo awali sikuwa hivyo ilibidi nibadilishe vipinga na kufanya mabadiliko katika programu yangu.)

Pia fikiria ikiwa unapaswa kuipandisha nyuma ya stereo au mahali pengine. Nilipata mahali pazuri juu ya sanduku langu la glavu ambapo ninaweza kuifikia kutoka ndani ya sanduku la glavu bila kuchukua chochote. Hiyo inaweza kuwa muhimu ikiwa nitaamua kuiboresha baadaye.

Mwishowe vifungo vyangu vinafanya kazi tena! Ninawezaje kuishi kwa miezi miwili bila wao?

Hatua ya 9: Maboresho ya Baadaye

Kama ilivyoelezwa, nikifanya toleo la 2.0 la hii nitabadilisha 4066B na kitu kingine (labda potentiometer ya dijiti) kwa kubadilika zaidi.

Pia kuna mambo mengine mengi ambayo unaweza kufanya. Mfano. ongeza moduli ya bluetooth na fanya programu ya kudhibiti kijijini kwa simu yako. Au moduli ya gps, basi ukiwa karibu na nyumba unaweza kuongeza sauti kiatomati na kutuma ujumbe wa "windows chini" UNAWEZA ili majirani zako wote wafurahie muziki wako mzuri.

Ilipendekeza: