Sisällysluettelo:

Sveitsiläinen AVR -veitsi: 14 vaihetta (kuvilla)
Sveitsiläinen AVR -veitsi: 14 vaihetta (kuvilla)

Video: Sveitsiläinen AVR -veitsi: 14 vaihetta (kuvilla)

Video: Sveitsiläinen AVR -veitsi: 14 vaihetta (kuvilla)
Video: Chapter 24 - Babbitt by Sinclair Lewis 2024, Marraskuu
Anonim
Sveitsiläinen AVR -veitsi
Sveitsiläinen AVR -veitsi
Sveitsiläinen AVR -veitsi
Sveitsiläinen AVR -veitsi
Sveitsiläinen AVR -veitsi
Sveitsiläinen AVR -veitsi
Sveitsiläinen AVR -veitsi
Sveitsiläinen AVR -veitsi

Sveitsiläinen AVR -veitsi yhdistää useita AVR -ohjelmointiprojekteja yhteen kätevään Altoids -kumipurkkiin. Mikro -ohjaimen ohjelmoinnin joustavuuden vuoksi se tarjoaa myös lähtökohdan monille projekteille, jotka perustuvat LED -valoihin ja äänilähtöön. SAK voi sisältää niin monta ohjelmaa kuin 8K muistia sallii ja ylläpitää kahdeksan tilaa jokaiselle ohjelmalle. Sininen painike saa SAKin selaamaan ohjelmia ja tiloja - nopea painallus saa sen pysymään ohjelmassa, mutta siirtymään seuraavaan tilaan (määritellystä riippumatta) ja pitkä painallus saa sen siirtymään seuraavaan ohjelmaan. Nykyinen ohjelma ja kaikkien ohjelmien tilat säilytetään EEPROMissa käytön välillä.

SAK: ssa tällä hetkellä toteutettavia hankkeita ovat seuraavat. Nämä yhdessä muiden koodien ja vakioiden kanssa (koko kirjasintataulukko) vievät noin 4K käytettävissä olevasta tilasta. Paljon enemmän tilaa!. Edellä mainittujen lisäksi haluan kiittää käytettyjen ohjelmistotyökalujen kehittäjiä (katso muut vaiheet) ja kaikkia, jotka ovat laatineet hyödyllisen verkkosivuston, joka on lisännyt ymmärrystäni näistä aiheista. Voin ottaa suoraa luottoa hyvin vähän tässä projektissa käytetystä koodista. Jos sinusta tuntuu, että koodi on sinun, se voi hyvinkin olla. Kerro minulle, niin annan sinulle onnen. Kiitos joka tapauksessa panoksestasi:-)

Vaihe 1: Osat

Osia voi hankkia mistä tahansa useista sähköisistä toimittajista. Tilarajoituksen vuoksi suurin osa komponenteista vaaditaan ilmoituksen mukaisesti. Kaikki vain tuskin sopii; varmista, että kaikki varaosat eivät vie ylimääräistä tilaa. Älä korvaa ATtiny84 -laitetta, ellet ole täysin varma, että nastat vastaavat toisiaan. Osien seuraavat linkit ovat DigiKey- ja All Electronics -järjestelmiin. 2 x R1, R2-100 ohmia 1/4W 1% metallikalvo-100XBK-ND2 x C7, C8-47uF-P5151-ND) 2461K-NDPPuhelinliitin stereo 3,5 mm (1) MJW-22Vipukytkin SPDT 1/4 päällä (1) MTS-4Painikekytkin (1) 450-1654-NDMinty Boost SAK saa virtansa yhdestä AA-paristosta Maxim MAX756 -piiri (MintyBoostin olennainen osa!). Alla olevat komponentit ovat niitä, joita tarvitaan tähän piirin osaan. 1 x U1-MAX756CPA DC/DC 3.3/5V DIP-MAX756CPA+-ND1 x Ux-IC-liitäntä 8-nastainen DIP-A32878-ND2 x C7, C8 -0,1uF-399-4151-ND2 x C3, C5-100uF-P5152-ND1 x L1-22uH säteittäinen-M9985-ND1 x D1-1N5818 Schottky 1A 30V-1N5818-E3/1GI- ND

Vaihe 2: ATtiny84 -mikrokontrolleri

ATtiny84 -mikrokontrolleri
ATtiny84 -mikrokontrolleri

Monissa projekteissa käytetään joko 20-nastaista ATtiny2313- tai 8-nastaista ATtiny85-mikrokontrolleria. Minusta ATtiny2313 oli liian suuri (kotelolle) ja ATtiny85 liian pieni (ei tarpeeksi muistia, ei tarpeeksi ulostulonappeja). ATtiny84 on juuri oikea:-) ATtiny84-laitteessa on 8K ohjelmoitavaa flash-muistia (riittää monien pienten ohjelmien tallentamiseen), 512K EEPROM-muistia (tilan tallentamiseen käyttökertojen välillä), jopa 12 ulostulonappia (9 LEDille, 2 kanavaa) äänilähdöstä ja painikekytkimestä) ja paljon muita herkkuja, joita ei käytetä tässä projektissa. jos aiot lisätä ohjelmia, hanki kopio ATtiny84 -lomakkeesta. Internetissä on monia oppaita tämän mikrokontrolleriperheen ohjelmoinnin opettamiseen. Hyödyllinen yhteenveto mikrokontrollereista on kohdassa Mikro -ohjaimen valinta Huomautus Tässä kuvatussa projektissa MiniMenorah ei ole täysin käytössä. MM vaatii yhdeksän ulostulonappia, aivokone kaksi ja painikkeen yhden tilan vaihtamiseen, yhteensä kaksitoista. Vaikka ATtiny84 voidaan konfiguroida kahdentoista ulostulonastaksi, se tapahtuu RESET -nastan kustannuksella. Kun RESET-nasta poistetaan käytöstä ja siitä tehdään I/O, ATtiny84: tä ei voida ohjelmoida USBtinyISP-ohjelmoijalla (joka ei ole tehnyt sitä:-) ja vaatii korkeajänniteohjelmointia. Kaikki on paikallaan MM: n käyttöön ottamiseksi, mutta tarvitaan eri ohjelmoija, eikä minulla ole sellaista.

Vaihe 3: AVR -ohjelmointityökalut

AVR -ohjelmointityökalut
AVR -ohjelmointityökalut
AVR -ohjelmointityökalut
AVR -ohjelmointityökalut

Useita komponentteja, sekä laitteistoa että ohjelmistoa, tarvitaan AVR -mikro -ohjaimien ohjelmointiin. Alla on käyttämäni työkalut. Monet, monet muut ovat samassa hintaluokassa - ilmaiseksi halpaan. Löydä itsellesi sopiva sarja ja pidä niistä kiinni. Parempi vielä, etsi ystävä, joka on kehittänyt järjestelmän ja käyttää työkalujaan. Mikään ei ole erityisen vaikeaa, jos kaikki menee mainostetun mukaisesti, mutta kaikkien työkalujen toimiminen yhdessä voi olla todellinen haaste. Wirewrap -sirunpitimen pitkät nastat ulottuvat leipälevyyn ja tekevät siitä helpon kokeellisen asennuksen. Olen ottanut kaksi tapaa ratkaista tämä ongelma. Ensimmäinen on kaksi sirupidikettä, toinen ohjelmointiin ja toinen juoksuun (katso 8-nastainen teline). Tämä ei ole ihanteellinen, koska se tekee paljon leipälevyä käyttökelvottomaksi ja sirun siirtäminen on melko ärsyttävää. Toinen on asentaa pieni kytkin irrottamaan maadoitusnasta leipälevyn maasta ohjelmoinnin aikana. Tämä toimii paremmin ja jättää enemmän tilaa leipälevylle komponenteille. OhjelmoijaUSBtinyISP -sarja Adafruit Industriesilta. Pienellä muutoksella (irrota 10-nastainen kaapeli ja taivuta LED-valot) ohjelmoija sopii Altoids-kumipurkkiin. OhjelmistoWinAVR on kokoelma avoimen lähdekoodin ohjelmistokehitystyökaluja AVR-mikro-ohjaimien ohjelmointiin Windows-koneissa. Se toimii hyvin USBtinyISP -ohjelmoijan kanssa (katso AVR -opetusohjelma). Vaihdoin äskettäin WinAVR: n mukana toimitetun ohjelmoijan Notepad -sovelluksen käyttämisestä Eclipseen AVR Eclipse -laajennuksen kanssa. Eclipse voi käyttää avrdudea, joten sinun on asennettava WinAVR joka tapauksessa. Eclipsellä on parempi projektinhallinta, hyödyllisiä opetusohjelmia ja se on ilmainen. Sen asentaminen, opetusohjelman läpikäyminen ja sirun ohjelmointi kesti vain muutaman minuutin. Etsi heitä, pyydä apua. Ihmiset voivat olla osaavia ja avuliaita. Se on mukavaa:-) Ne voivat myös olla hylkääviä. Tuo ei ole kivaa:-(

Vaihe 4: Mikro -ohjaimen ohjelmointi

Mikro -ohjaimen ohjelmointi
Mikro -ohjaimen ohjelmointi

C -koodi Älä arvostele sitä, mitä en ymmärrä. En ole ohjelmoija, C ei ole äidinkieleni, ja pidän kiinni Java-ohuesta langasta ja paljon verkkohakuja työskennellessäni C. Vaikka suuri osa koodista tuli muista projekteista (ks. Jouduin tekemään joitain lisäyksiä ja muutoksia. Sveitsiläisen AVR -veitsen lähdekoodi on alla sekä c- että heksatiedostona. Haluaisin kuulla, missä koodia voitaisiin parantaa. Koodiin odotan muutamia muutoksia. Päivityksiä on tulossa. Tällä välin koodi toimii mainostetusti. Sulakkeet Mikro -ohjaimen sulakkeet ovat hämmentäviä. Olen poistanut käytöstä muutamia mikro -ohjaimia sekä asettamalla ne vahingossa etsimään ulkoista oskillaattoria että poistamalla RESET -nastan käytöstä. Ne voidaan palauttaa, mutta siihen asti ne ovat vain kuolleita vikoja. Ole varovainen, jos päätät vaihtaa sulakkeet. Laske oikeat sulakearvot käyttämällä online -sulakelaskinta. Valitse kohdeosa (ATtiny84) ja asianmukaiset asetukset - sisäinen RC -oskillaattori, joka toimii 8 MHz: llä (oletusarvo), ÄLÄ jaa kelloa kahdeksalla sisäisesti, ota sarjaohjelmien lataus käyttöön ja poista käytöstä katkaisun tunnistus. Tuloksen pitäisi olla seuraava. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (low 0xE2 high 0xDF ext 0xFF). Sinun on poltettava sulakkeet vain kerran (ellet aio vaihtaa niitä). Eclipse tekee tästä helpon, kuten varmasti muutkin IDE: t. leipälaudalla? Miksi Eclipse ei pidä lightOn- ja lightOff -toiminnoista, vaikka ne näyttävät toimivan?

Vaihe 5: Projektin leipominen

Projektin leipälautailu
Projektin leipälautailu
Projektin leipälautailu
Projektin leipälautailu

Koska mikro -ohjain tekee niin suuren osan tämän projektin työstä, ulkoisia osia on hyvin vähän. Kun olet tarkistanut, että ohjelmoija ja työkaluketju ovat kunnossa, olisi hyvä idea leikata piiri ja varmistaa, että kaikki toimii mainostetun mukaisesti. Käytin mallin tinan LED -valoja ja nostin ulos telineen ja sirun käytettäväksi useissa valokuvissa. Yleinen johdotus yhdistää pohjimmiltaan aktiiviset nastat muutamiin osiin ja sitten maahan. Koodissa näet koodikappaleita, jotka on joko otettava käyttöön tai kommentoitava sen mukaan, onko kohde leipälevy vai piirilevy.

Vaihe 6: Altoidikumin valmistaminen

Kuvat matkalla Tasoita pohja. Tinan pohja kaartuu ylös ja sisään. Se on litistettävä, jotta akku ja piirilevy sopivat ja istuvat tasaisesti. Varo vääristämästä tinaa, työnnä pohja ulos, kunnes se on olennaisesti tasainen. Tina tarvitsee kolme reikää. Käytän rei'itysten merkitsemiseen metallipuristinta ja reikien poraamiseen (puuta varten). Brad -pistekärjissä on keskipiste ja kaksi leikkuureunaa. Ne eivät luistele ja reunat leikkaavat hitaasti metallin läpi. Brad -pistekärkiä on saatavana Lee Valleysta (muun muassa). Ensimmäinen on yhdeksän 5 mm: n reikää, jotka on asetettu tinan yläosaan LED -valoja varten. Saatavilla on metrisiä brad -pistekärkiä, jotka tekevät puhtaita ja tiiviitä reikiä LED -valolle. Luo paperimalli, jossa on reiät, ja siirrä merkit vuoan yläosaan. Estääksesi tinan yläosan työntämisen sisään, tue kannen sisäosa pienelle puupalikalle, kun lävistät ja poraat yläosaa. Kun paperi ja puu ovat paikallaan, himmennän tinaa rei'ittimellä. Kun poraat, mene aluksi hitaasti. Brad -pisteiden leikkausreunojen tulisi muodostaa tasainen ympyrä. Poranterällä voi porata kaikki muu kuin kohtisuoraan pintaan nähden terä voi tarttua ja repiä metallia. 5 mm: n murtopiste tekee mukavan puhtaan reiän, mutta huomasin, että minun piti laajentaa sitä aina hieman. Tein tämän poraamalla sen sisältä tavallisella 13/64 "bitillä. Toinen sarja koostuu kahdesta 1/4" reiästä tinan oikealla puolella kytkintä ja ääniliitäntää varten. Koska vuoan päässä on tiukka kaarevuus, näiden reikien on oltava melko lähellä. Muista sijoittaa ne niin, että komponentit sopivat vuokaan. Keskitä ne pystysuoraan sen sivun kohtaan, joka näkyy, kun kansi on suljettu. Merkitse lävistimellä ja poraa hyvin huolellisesti. Varoitus tinaan tarttuvista teristä pätee voimakkaammin isompiin teriin. Viimeinen reikä on painikekytkimelle. Aseta reikä oikeaa alareunaa kohti siten, että painike ei häiritse vuoan muita osia.

Vaihe 7: Piirilevyn suunnittelu ja valmistus

Piirilevyn suunnittelu ja valmistus
Piirilevyn suunnittelu ja valmistus
Piirilevyn suunnittelu ja valmistus
Piirilevyn suunnittelu ja valmistus
Piirilevyn suunnittelu ja valmistus
Piirilevyn suunnittelu ja valmistus

Internetissä on lukuisia resursseja, jotka kuvaavat piirilevyjen luomista. Mikään menetelmä ei ole yksinkertainen tai helppo, mutta on tärkeää, että ainakin yksi on mukava. Käytän CadSoftin EAGLE Layout Editorin ilmaisversiota luomaan kaavion ja asettamaan piirilevyn. Lähestymistapani piirilevyn valmistamiseen on kuvattu kohdassa Altoids Tin Speaker PCB -vaiheen valmistelu ja valmistelu. piirilevyt ovat seuraavat. Pese lauta hyvin astianpesuaineella ja hankaa se vihreällä kuorinta -aineella. Hio varovasti porat levyn reunoilta, jotta siirtopaperi ja rauta ovat hyvässä kosketuksessa levyn kanssa. Kuumenna rauta. Aseta paperi taululle ja kuumenna lauta silitysraudalla. Kun levy on melko kuuma, aseta valmisteltu siirtopaperi varovasti taululle. Se tarttuu heti (koska levy on kuuma), joten varmista, että se on asetettu oikein. Silitys sitten suoraan siirtopaperin kiiltävälle takapuolelle. Tämä ei koskaan aiheuttanut minulle ongelmia, mutta käytät omaa rautaasi. Testaa ensin. Anna levyn jäähtyä ja juokse sitten kylmän veden alla. Siirtopaperin pitäisi ponnahtaa pois ja jättää koko kuva. Käytä 8 -kertaista dia-/negatiivikatselijaa siirron tarkastamiseen ja puuttuvien osien täyttämiseen. Onnea.

Vaihe 8: Osien juottaminen piirilevylle

Juotososat PCB: lle
Juotososat PCB: lle
Juotososat PCB: lle
Juotososat PCB: lle
Juotososat PCB: lle
Juotososat PCB: lle

Internetissä on lukuisia resursseja, jotka kuvaavat elektronisten komponenttien juottamisen piirilevyihin. Katso esimerkiksi juotosopetus osoitteessa ladyada.net. Komponenttien asentamisjärjestyksellä ei ole oikeastaan väliä, vaikka olen havainnut toimivan pienimmästä suurimpaan helpoimmin. LED-/vilkkuvalojohdot ovat riittävän pitkiä, joten voit muotoilla ne menorah-kaltaiseksi kuvioksi tinaan. Asenna LED -valot varovasti ja taivuta johdot niin, että kunkin LED -valon yläosa on siten, että se työntyy reikäänsä. Tämä voi olla haastavaa, mutta näyttää todella hyvältä, kun se lopulta onnistuu. Jos johdot jätetään liian pitkiksi, LED -valot voivat puristua alas ja pois paikaltaan tölkin kannen takia. Muista tarkistaa LEDien napaisuus kortin asettelua vasten, kun asennat ne. Tämä LED on kiinnitetty RESET -nastaan, joten voit olla asentamatta sitä Huomautus Ääniliittimen ja vastuksen johdot jakavat reiän. Kätevyyden vuoksi aseta vastukset pystyasentoon siten, että vastuksen runko ei ole audiojohdon reiän yläpuolella. Valmistele ja asenna ääniliitäntä tässä vaiheessa tai odota, kunnes se on valmis juotettavaksi vastuksiin. Ei ole hauskaa purkaa vastuksia myöhemmin.

Vaihe 9: Vilkkuu

Vilkkuu
Vilkkuu

LEDit on suojattava vastuksilla. Määritä LEDien jännitehäviö ja virtavaatimukset ja laske sopivat vastukset olettaen, että sirulla on 5 V: n lähde. Voit tehdä tämän helposti verkossa olevilla laskimilla. Kun teet niitä tähän projektiin, katkaise katodi (LED -valon negatiivinen/lyhyt johdin litistetyllä puolella) ja juota vastus hyvin lähellä LED -linssiä. LEDit muodostavat tinaan menorah -muodon. Vaikka vastus melkein koskisi linssiä, tinan kansi puristaa hieman keskellä olevaa lyhyttä LED -valoa. Estä oikosulkuja esiintymästä tinan tiukoissa rajoissa peittämällä jokainen vastus lämpösuojaputkella.

Vaihe 10: Paristopidikkeen valmistelu

Paristopidikkeen valmistelu
Paristopidikkeen valmistelu

Liu'uta pieniä palan kutisteputkia paristopidikkeen molempia johtoja pitkin. Työnnä ne varovasti pidikkeen reikiin ja kutista paikoilleen. Nämä suojaavat johtoja jonkin verran. (Tämä ohje on kopioitu Vaihtokytkimen valmistelu -sivulla.) Katkaise musta johto pituuteensa ja juota sopivaan reikään piirilevyssä. Punainen johto on juotettu suoraan vaihtokytkimeen; katso ohjeet tältä sivulta, miten edetä. Kun olen tehnyt tämän prototyypin suhteen, olen nyt pahoillani siitä. Akku ei halua pysyä tiukasti paikallaan. Anna kielekkeiden käynnistyä ja poista ne vain, jos akun irrottaminen on vaikeaa. Tästä huolimatta kuvasta näkyy paristopidike, jonka kielekkeet on katkaistu. Tämä johtuu siitä, että otin sen toisesta projektista.

Vaihe 11: Vaihtokytkimen valmistelu

Vaihtokytkimen valmistelu
Vaihtokytkimen valmistelu

Kytkimestäsi riippuen sinun on ehkä leikattava yksi nastoista. Teen tämän käyttämilläni kytkimillä, vaikka se ei välttämättä olekaan välttämätöntä. Työnnä se varovasti pidikkeen reikään ja kutista paikalleen. Se tarjoaa jonkin verran suojaa langalle. (Tämä ohje on sama kuin paristopidikkeen valmisteluohje.) Liu'uta toinen pieni pala kutistemuoviputkea punaisen johdon päälle. Katkaise ja kuori lanka pituudeksi ja levitä juotosta sekä kytkimen tappiin että langan päähän. Juotos punainen johto paristopidikkeestä suoraan kytkimen ulkotappiin. Suojaa ja vahvista liu'uttamalla lämpökutistusletku pala liitoksen päälle. Toinen johdin kulkee kytkimen keskitapista piirilevyyn. Juotosjohdin kytkimeen edellä kuvatulla tavalla. Suojaa liitos lämpökutisteputkella. Juotos toinen pää piirilevyn oikeaan reikään.

Vaihe 12: Ääniliittimen valmistelu

Audioliittimen valmistelu
Audioliittimen valmistelu
Audioliittimen valmistelu
Audioliittimen valmistelu
Audioliittimen valmistelu
Audioliittimen valmistelu

Kaikki ääniliittimen johdot ovat melko lyhyitä. Levitä hieman juotosta liittimen nastoihin ja lankaan ja juota ne sitten paikalleen. Liu'uta lämpökutistusletkun paloja liitosten päälle suojataksesi ja vahvistaaksesi niitä. Maadoitusjohto voidaan juottaa suoraan sen reikään. Signaalijohtojen päissä on kullakin reikä vastuksen toisen pään kanssa. Valmistele lanka ja vastus kiertämällä päät yhteen ja levittämällä hieman juotetta. Reikä, johon nämä menevät, on porattava 3/64 : iin kahden johdon sijoittamiseksi. Juotos paikalleen.

Vaihe 13: Painokytkimen valmistelu

Painikekytkimen valmistelu
Painikekytkimen valmistelu
Painikekytkimen valmistelu
Painikekytkimen valmistelu
Painikekytkimen valmistelu
Painikekytkimen valmistelu

Valmistele lyhyt pala kiinteää lankaa muotoilemalla siitä U-muotoinen malli, joka sopii tiukasti kytkimen alaosaan. Levitä juotospallo reiän kummallekin puolelle - jätä tilaa kytkimelle - ja aseta kytkin paikalleen. Sulata juote ja työnnä lanka paikalleen. Anna juotteen kovettua ja toista toisella puolella. Valmista kaksi säikeislankaa leikkaamalla ne pituussuunnassa ja kuorimalla molemmat päät. Varmista, että johdot ovat riittävän pitkiä, jotta vuoan kansi voi avautua kokonaan. Juotos kahdelle sopivalle nastalle kytkimessä ja liu'uta sitten lämpökutistusletkun palat liitosten päälle suojataksesi ja vahvistaaksesi niitä. Kierrä johdot varovasti LED -valojen väliin ja varmista, etteivät ne istu paristojen päällä. Levitin kytkimen kaksi nastaa niin, että oikeanpuoleisin LED liukui niiden väliin. Kytkimen nastat ovat ERITTÄIN herkkiä (kaksi muuta irrotettiin) Huomaa, että nasta PA7 PCINT7 6 on asetettu kuuntelemaan tilan muutosta. Painikekytkimen painaminen nostaa tapin korkealle ja SIGNAL (PCINT0_vect) suoritetaan. Painikkeen painamisen pituuden perusteella joko mitään ei tapahdu (raaka poistaminen), tila on edennyt (lyhyt painallus) tai ohjelma on edistynyt (pitkä painallus).

Vaihe 14: Kannen sulkeminen

Kannen sulkeminen
Kannen sulkeminen

Jos kaikki on hyvin tässä vaiheessa, sinun kannattaa sulkea tina. Tällöin sinun on oltava erittäin varovainen LED -valojen sijainnin suhteen. Huomaan, että minun täytyy työntää ne paikalleen ohutteräisellä ruuvimeisselillä, jotta ne asetetaan oikein reikiinsä. Paina kantta hieman alaspäin, kun ohjaat LED -valoja paikalleen ja ne lopulta liukuvat paikalleen. Lisäksi painikekytkimen tapit on ehkä taivutettava pois tieltä.

Suositeltava: