INHOUDSOPGAWE:

Switserse AVR -mes: 14 stappe (met foto's)
Switserse AVR -mes: 14 stappe (met foto's)

Video: Switserse AVR -mes: 14 stappe (met foto's)

Video: Switserse AVR -mes: 14 stappe (met foto's)
Video: HIJ WIST NIET DAT HIJ MET EEN GEEST COMMUNICEERDE. HIJ IS IN SHOCK. MYSTIEK. GEESTEN OP VIDEO 2024, Julie
Anonim
Switserse AVR -mes
Switserse AVR -mes
Switserse AVR -mes
Switserse AVR -mes
Switserse AVR -mes
Switserse AVR -mes
Switserse AVR -mes
Switserse AVR -mes

Die Switserse AVR -mes bundel 'n aantal AVR -programmeerprojekte saam in 'n enkele gerieflike Altoids Gum Tin. Vanweë die buigsaamheid wat deur mikrobeheerderprogrammering gebied word, bied dit ook 'n beginpunt vir 'n aantal projekte gebaseer op LED's en klankuitset. Die SAK kan soveel programme bevat as wat die 8K geheue dit toelaat en hou agt toestande vir elke program. Die blou drukknop laat die SAK deur programme en toestande blaai - 'n vinnige druk veroorsaak dat dit in die program bly, maar verander na die volgende toestand (hoe dit ook al gedefinieer word) en 'n lang druk veroorsaak dat dit na die volgende program gaan. Die huidige program en state vir alle programme word bewaar in EEPROM tussen gebruike.

Die projekte wat tans in die SAK geïmplementeer word, sluit die volgende in. Hierdie, saam met al die ander kode en konstantes (daar is 'n volledige lettertabel), beslaan ongeveer 4K van die beskikbare spasie. Baie meer ruimte! MiniMenorah - Evil Mad Scientists Brain Machine - Mitch AltmanMiniPOV - Adafruit Industries Ruis speelgoed - Luide voorwerpe LED Running lights LED Candle LED Flashlight Hierdie projek sou nie bestaan sonder die groot vrygewigheid van almal wat op die een of ander manier bygedra het. Benewens bogenoemde, wil ek ook die ontwikkelaars bedank van die sagteware -instrumente wat gebruik is (sien in ander stappe) en almal wat 'n nuttige webwerf opgestel het wat my begrip van hierdie onderwerpe bevorder het. Ek kan direk krediet neem vir baie min van die kode wat in hierdie projek gebruik is. As u voel dat die kode joune is, kan dit wel so wees. Laat weet my en ek gee u graag krediet. Dankie in elk geval vir u bydrae:-)

Stap 1: Onderdele

Onderdele kan by enige van 'n aantal elektroniese verskaffers verkry word. As gevolg van die beperkte ruimte, word die meeste komponente benodig soos aangedui. Alles pas net -net nie; Maak seker dat vervangingsonderdele nie ekstra ruimte in beslag neem nie. Moenie die ATtiny84 vervang nie, tensy u heeltemal seker is dat die penne ooreenstem. Die skakels na die onderdele is na DigiKey en All Electronics. Elektroniese komponente1 x U1-ATtiny84-ATTINY84-20PU-ND1 x Ux-IC-aansluiting 14-pins DIP-A32879-ND9 x LED-u keuse van kleur9 x weerstande-pas by u LED's 2 x R1, R2-100 ohm 1/4W 1% metaalfilm-100XBK-ND2 x C7, C8-47uF-P5151-NDM Diverse Batterijhouer 1-AA 6 "draaddrade (1) 2461K-NDP-stereo jack 3,5 mm (1) MJW-22 Skakelaar SPDT 1/4 "aan (1) MTS-4 Drukknoppie skakelaar (1) 450-1654-NDMinty Boost Die SAK word aangedryf deur 'n enkele AA-battery wat versterk word deur 'n Maxim MAX756 -chip (die belangrikste komponent van die MintyBoost!). Die onderstaande komponente is dié wat benodig word vir hierdie deel van die stroombaan. 1 x U1-MAX756CPA DC/DC 3.3/5V DIP-MAX756CPA+-ND1 x Ux-IC-aansluiting 8-pins DIP-A32878-ND2 x C7, C8 -0.1uF-399-4151-ND2 x C3, C5-100uF-P5152-ND1 x L1-22uH radiaal-M9985-ND1 x D1-1N5818 Schottky 1A 30V-1N5818-E3/1GI- ND

Stap 2: ATtiny84 -mikrobeheerder

ATtiny84 mikrokontroleerder
ATtiny84 mikrokontroleerder

Baie projekte gebruik óf die ATtiny2313 20-pen óf die ATtiny85 8-pins mikrobeheerder. Ek vind die ATtiny2313 te groot (vir die omhulsel) en die ATtiny85 te klein (nie genoeg geheue nie, nie genoeg uitsetpenne nie). Die ATtiny84 is presies reg:-) Die ATtiny84 het 8K programmeerbare flitsgeheue (genoeg om baie klein programme in te hou), 512K EEPROM (vir die stoor van toestande tussen gebruike), tot 12 uitvoerpenne (vir die 9 LED's, 2 kanale klankuitset en 'n drukknopskakelaar), en baie ander lekkernye wat nie in hierdie projek gebruik word nie. Daar is baie onderriggidse om hierdie gesin van mikrobeheerders op die internet te leer programmeer. Vir 'n nuttige opsomming van mikrobeheerders, sien Hoe om 'n mikrobeheerder te kies. Die MM benodig nege uitvoerpenne, die breinmasjien twee, en die knoppie om toestand een te verander, vir 'n totaal van twaalf. Alhoewel die ATtiny84 gekonfigureer kan word om twaalf uitvoerpenne te hê, is dit ten koste van die RESET -pen. Deur die RESET-pin uit te skakel en I/O te maak, kan die ATtiny84 nie met die USBtinyISP-progammer geprogrammeer word nie (wat dit nie gedoen het nie:-) en vereis hoëspanningsprogrammering. Alles is in plek om die MM moontlik te maak, maar 'n ander programmeerder is nodig, en ek het nie een nie.

Stap 3: AVR -programmeerhulpmiddels

AVR -programmeerhulpmiddels
AVR -programmeerhulpmiddels
AVR -programmeerhulpmiddels
AVR -programmeerhulpmiddels

'N Hele paar komponente, beide hardeware en sagteware, is nodig om AVR -mikrobeheerders te programmeer. Hieronder is die gereedskap wat ek gebruik. Baie, baie ander bestaan in dieselfde prysklas - gratis tot goedkoop. Soek 'n stel wat vir u werk en bly daarby. Beter nog, vind 'n vriend wat 'n stelsel uitgewerk het en sy/haar gereedskap gebruik. Niks is besonder moeilik as alles volgens die advertensies verloop nie, maar dit is 'n groot uitdaging om al die gereedskap saam te werk. Die lang penne van die draaddraad -skyfiehouer strek tot by 'n broodbord en sorg vir 'n gerieflike eksperimentele opset. Die enigste probleem wat ek ondervind het, is dat die komponente van die programmeringspenne nie tydens die programmering geaard kan word nie. Ek het twee benaderings geneem om hierdie probleem op te los. Die eerste is om twee skyfiehouers te hê, een vir programmering en een vir hardloop (sien 8-pen houer). Dit is nie ideaal nie, want dit maak baie van die broodbord onbruikbaar en dit is nogal irriterend om die chip te skuif. Die tweede is om 'n klein skakelaar te installeer om die grondpen tydens die programmering van die grond van die broodbord te ontkoppel. Dit werk beter en laat meer ruimte op die broodbord vir komponente. ProgrammerUSBtinyISP -kit van Adafruit Industries. Met 'n bietjie aanpassing (verwyder die 10-pins kabel en buig die LED's) pas die programmeerder in 'n Altoids Gum Tin. Die 6-pins kabel kan selfs in die blikkie opgerol word vir berging. SoftwareWinAVR is 'n versameling van open source sagteware-ontwikkelingshulpmiddels vir die programmering van AVR-mikrobeheerders op Windows-masjiene. Dit werk goed met die USBtinyISP -programmeerder (sien die AVR -tutoriaal). Ek het onlangs oorgeskakel van die gebruik van die programmeerder se Notepad -program wat saam met WinAVR gebring is na die gebruik van Eclipse met die AVR Eclipse -inprop. Eclipse kan avrdude gebruik, dus u sal in elk geval WinAVR moet installeer. Eclipse het 'n beter projekbestuur, nuttige tutoriale en is gratis. Dit het net 'n paar minute geneem om dit te installeer, 'n handleiding deur te werk en 'n chip te programmeer. Bel 'n vriend Daar is baie hulpbronne op die internet. Soek hulle, vra hulp. Mense kan kundig en behulpsaam wees. Dit is lekker:-) Hulle kan ook afwysend wees. Dit is nie mooi nie:-(

Stap 4: Programmering van die mikrobeheerder

Programmering van die mikrobeheerder
Programmering van die mikrobeheerder

C -kode Moenie kritiseer oor wat ek nie verstaan nie. Ek is nie 'n programmeerder nie, C is nie my moedertaal nie, en ek hou vas aan 'n Java-dun draad en baie web-soek wanneer ek in C. werk. Alhoewel baie van die kode van ander projekte afkomstig is (sien krediete), Ek moes 'n paar toevoegings en aanpassings maak. Die bronkode vir die Switserse AVR -mes is hieronder aangeheg as 'n c -bronlêer en 'n hex -lêer. Ek sal dit waardeer om te hoor waar die kode verbeter kan word. Daar is 'n paar veranderinge wat ek verwag om in die kode aan te bring. Opdaterings kom. Intussen werk die kode wel soos geadverteer. Sekerings Mikrokontroleerder -sekuriteite is verwarrend. Ek het 'n paar mikrobeheerders uitgeskakel deur dit per ongeluk te laat soek na 'n eksterne ossillator en deur die RESET -pen uit te skakel. Hulle kan herstel word, maar tot dan is dit net dooie goggas. Wees versigtig as u besluit om die lont te verander. Gebruik 'n aanlyn lontrekenaar om die korrekte lontwaardes te bereken. Kies die doelgedeelte (ATtiny84) en die toepaslike instellings - interne RC -ossillator wat op 8MHz werk (standaardwaarde), MOENIE die horlosie intern met 8 verdeel nie, die aflaai van 'n reeksprogram moontlik maak en die opsporing van brownout uitskakel. Die resultaat moet die volgende wees. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (laag 0xE2 hoog 0xDF ext 0xFF). U hoef slegs die lont een keer te brand (tensy u van plan is om dit te verander). Eclipse maak dit maklik, maar ek doen sekerlik ander IDE's. Vrae wat ek graag wou beantwoord Enige idees oor die optimalisering van die kode Waarom veroorsaak die flikkerende ligte in die klank- en ligmasjien 'n ossillasie as dit in die blik geaktiveer word, maar nie op die broodbord? Waarom hou Eclipse nie van die lightOn- en lightOff -funksies nie, al lyk dit of dit werk?

Stap 5: Breadboarding van die projek

Breadboarding van die projek
Breadboarding van die projek
Breadboarding van die projek
Breadboarding van die projek

Omdat soveel van die werk van hierdie projek deur die mikrobeheerder gedoen word, is daar baie min eksterne dele. Nadat u gekontroleer het of u programmeerder en gereedskapsketting in orde is, is dit 'n goeie idee om die kringbord te bord en seker te maak dat alles werk soos geadverteer. Die onderstaande foto's is deurmekaar weergawes van die werklike broodbord wat ek opgestel het. Ek het die LED's in die modelblik gebruik en die houer en die chip uitgehaal om op verskeie foto's te gebruik. Die algehele bedrading verbind basies aktiewe penne met 'n paar dele en dan op die grond. Let op Die volgorde van penne en LED's is nie dieselfde op die broodbord en die PCB nie (alhoewel ek dink dat u dit dieselfde kan maak). In die kode sal u stukke kode sien wat geaktiveer moet word of kommentaar moet lewer, afhangende van of die doel die broodbord of die PCB is.

Stap 6: Berei die Altoids -tandvleisblikkie voor

Foto's op die pad Maak die onderkant plat. Die onderkant van die blik buig op en na binne. Dit moet platgemaak word sodat die battery en die printplaat eweredig pas. Wees versigtig om die blik nie te verdraai nie, druk die onderkant uit totdat dit in wese plat is. Die blik het drie stelle gate nodig. Ek gebruik 'n metaalpons om die gate te merk en die puntpunte (vir hout) om die gate te boor. Die stertpunte het 'n middelpunt en twee snykante. Hulle gly nie en die rande sny stadig deur die metaal. Brad -puntstukke is onder meer beskikbaar by Lee Valley. Die eerste is 'n stel van nege 5 mm gate bo -op die blik vir die LED's. Metriese brad -puntstukke is beskikbaar en dit maak skoon en stewige gate vir die LED's. Maak 'n papier sjabloon met die gate gemerk en plaas die merke bo -op die blik. Om te verhoed dat die bokant van die blikkie ingedruk word, ondersteun die binneste deel van die deksel op 'n klein houtblok as u die bokant stamp en boor. Met die papier en hout op hul plek, maak ek die blikkie doop met behulp van die pons. As u eers boor, moet u eers stadig gaan. Die snykante van die bradpunte moet 'n egalige sirkel maak. As u met die stukkie boor, maar loodreg op die oppervlak, kan dit die metaal gryp en skeur. Die 5 mm -punt maak 'n mooi skoon gat, maar ek het gevind dat ek dit so effens moes verbreed. Ek het dit gedoen deur van binne af te boor met 'n gewone 13/64 "bit. Die tweede stel bestaan uit twee 1/4" gate aan die regterkant van die blik vir die skakelaar en klankaansluiting. As gevolg van die stywe kromming aan die einde van die blik, moet hierdie gate redelik naby wees. Maak seker dat u die spasie sodat die komponente in die blik pas, plaas. Sentreer hulle vertikaal op die gedeelte van die kant wat sigbaar is wanneer die deksel toegemaak is. Merk met pons en boor baie versigtig. Die versigtigheid dat die stukkies die blikkie gryp, geld sterker vir die groter stukke. Die laaste gaatjie is vir die drukknopskakelaar. Plaas die gat so regs onder dat die drukknop nie die ander komponente in die blik belemmer nie.

Stap 7: Ontwerp en vervaardig die PCB

Ontwerp en maak van die PCB
Ontwerp en maak van die PCB
Ontwerp en maak van die PCB
Ontwerp en maak van die PCB
Ontwerp en maak van die PCB
Ontwerp en maak van die PCB

Daar is talle bronne op die internet wat die proses van die skep van PCB's beskryf. Nie een van die metodes is onfeilbaar of maklik nie, maar dit is belangrik om gemaklik te wees met ten minste een. My benadering tot die vervaardiging van die PCB word beskryf in die voorbereiding en voorbereiding van die PCB -stap van die Altoids -blikspreker, wat instruksies is. Na die bord oorgedra, geëts en geboor is, is u gereed om alles saam te soldeer. stroombane is die volgende. Was die bord goed met skottelgoedseep en skrop dit met 'n groen scrubby. Skuur die grate saggies van die rande van die bord af sodat die oordragpapier en yster goed met die bord in aanraking kom. Voorverhit die yster. Plaas 'n stuk papier op die bord en verhit die bord met die strykyster. Nadat die bord baie warm is, plaas die voorbereide oordragpapier versigtig op die bord. Dit sal dadelik vassit (omdat die bord warm is), dus maak seker dat dit reg geplaas is. Stryk dan direk op die blink agterkant van die oordragpapier. Dit het my nooit probleme veroorsaak nie, maar u gebruik u eie yster. Toets eers. Laat die bord afkoel en laat dit dan onder koue water loop. Die oordragpapier moet verskyn en die hele prentjie verlaat. Gebruik 'n 8x skyfie/negatiewe kyker om na die oordrag te kyk en vul die ontbrekende stukke in. Sterkte.

Stap 8: Soldeer dele aan PCB

Soldeer dele aan PCB
Soldeer dele aan PCB
Soldeer dele aan PCB
Soldeer dele aan PCB
Soldeer dele aan PCB
Soldeer dele aan PCB

Daar is talle bronne op die internet wat die proses van soldeer van elektroniese komponente aan PCB's beskryf. Sien byvoorbeeld die soldeerhandleiding op ladyada.net. Die volgorde waarin u komponente installeer, maak nie regtig saak nie, hoewel ek van kleinste tot grootste die maklikste gevind het. Die LED/blinkenlight-leidings is lank genoeg sodat u dit in 'n menora-patroon in die blik kan vorm. Monteer die LED's versigtig en buig die leidings sodat die bokant van elke LED so geplaas is dat dit deur die onderskeie gaatjie kom. Dit kan uitdagend wees, maar dit lyk baie lekker as dit uiteindelik uitwerk. As die leidings te lank gelaat word, kan die LED's deur die deksel van die blik vasgedruk en uit posisie wees. Kontroleer die polariteit van die LED's teenoor die borduitleg wanneer u dit installeer. Hierdie LED is aan die RESET -pen geheg, dus u kan besluit om dit nie te installeer nie. Vir die gemak, sit die weerstande regop sodat die liggaam van die weerstand nie oor die gat met die klankdraad is nie. Berei op hierdie stadium die klankaansluiting voor of installeer dit, of wag totdat dit gereed is om die weerstande te soldeer. Dit is nie lekker om die weerstande later te laat soldeer nie.

Stap 9: Blinklights

Blinkligte
Blinkligte

Die LED's moet beskerm word deur weerstande. Bepaal die spanningsval en huidige vereistes van u LED's en bereken die toepaslike weerstande met 'n 5V -bron van die chip. Daar is geredelik aanlyn sakrekenaars beskikbaar om dit te doen. Maak vir jouself 'n klomp blinkers. Sny die katode (negatiewe/kort lood van die LED aan die afgeplatte kant) as u dit vir hierdie projek maak, en soldeer die weerstand naby die lens van die LED. Die LED's vorm 'n menora -vorm in die blik. Selfs as die weerstand byna aan die lens raak, word die kortste LED in die middel effens deur die deksel van die blik gedruk. Om te voorkom dat daar kortbroek in die digte rand van die blik voorkom, moet u elke weerstand bedek met 'n stuk krimpbuis.

Stap 10: Berei die batteryhouer voor

Berei die batteryhouer voor
Berei die batteryhouer voor

Skuif klein stukkies hitte -krimpbuise langs albei leidings van die batteryhouer. Druk dit versigtig in die gate van die houer en krimp op hul plek. Dit bied 'n mate van beskerming vir die drade. (Hierdie instruksie word gedupliseer op die bladsy Voorbereiding van die skakelaar.) Sny die swart draad in lengte en soldeer in die toepaslike gaatjie op die printplaat. Die rooi draad word direk aan die skakelaar gesoldeer; sien instruksies op daardie bladsy vir hoe om te werk te gaan. In die afgelope projekte het ek die vangkaarte van die batteryhouer afgesny. Nadat ek dit op die prototipe gedoen het, is ek nou spyt daaroor. Die battery wil nie styf bly nie. Laat die oortjies begin en verwyder dit slegs as u probleme ondervind om die battery uit te kry. Alhoewel dit gesê word, toon die prentjie 'n batteryhouer met die oortjies afgesny. Dit is omdat ek dit van 'n ander projek verwyder het.

Stap 11: Voorbereiding van die skakelaar

Berei die skakelaar voor
Berei die skakelaar voor

Afhangende van u skakelaar, moet u moontlik een van die penne afknip. Ek doen dit met die skakelaars wat ek gebruik, alhoewel dit nie heeltemal nodig is nie. Skuif 'n klein stukkie krimpkous langs die rooi leiding van die batteryhouer. Druk dit versigtig in die gat van die houer en krimp op sy plek. Dit bied 'n mate van beskerming vir die draad. (Hierdie instruksie dupliseer die instruksie in die voorbereiding van die batteryhouer.) Skuif nog 'n klein stukkie krimpbuis op die rooi draad. Sny en strook die draad in lengte en pas 'n bietjie soldeer op die pen op die skakelaar en die einde van die draad. Soldeer die rooi lood van die batteryhouer direk aan die buitenste pen van die skakelaar. Skuif die stuk krimpbuis oor die gewrig om dit te beskerm en te versterk. Die tweede draad gaan van die middelste pen van die skakelaar na die PCB. Soldeer die draad aan die skakelaar soos hierbo beskryf. Beskerm die gewrig met krimpbuis. Soldeer die ander kant aan die toepaslike gat op die PCB.

Stap 12: Voorbereiding van die klankaansluiting

Voorbereiding van die Audio Jack
Voorbereiding van die Audio Jack
Voorbereiding van die Audio Jack
Voorbereiding van die Audio Jack
Voorbereiding van die Audio Jack
Voorbereiding van die Audio Jack

Die drade na die klankaansluiting is redelik kort. Smeer 'n bietjie soldeer op die penne op die domkrag en die draad en soldeer dit dan op hul plek. Skuif stukke warmte -krimpbuise oor die gewrigte om dit te beskerm en te versterk. Die gronddraad kan direk in sy gat gesoldeer word. Die punte van die seindrade deel elkeen 'n gat met die een kant van 'n weerstand. Berei die draad en weerstand voor deur die ente saam te draai en 'n bietjie soldeer aan te bring. Die gat waarin dit gaan moet tot 3/64 geboor word om die twee drade te akkommodeer. Soldeer vas.

Stap 13: Voorbereiding van die drukknopskakelaar

Voorbereiding van die drukknopskakelaar
Voorbereiding van die drukknopskakelaar
Voorbereiding van die drukknopskakelaar
Voorbereiding van die drukknopskakelaar
Voorbereiding van die drukknopskakelaar
Voorbereiding van die drukknopskakelaar

Berei 'n kort stuk soliede draad voor deur dit in 'n U-vorm te vorm, wat styf oor die onderkant van die skakelaar pas. Dien 'n klont soldeer aan weerskante van die gat toe - laat ruimte vir die skakelaar - en plaas die skakelaar op sy plek. Smelt die soldeer en druk die draad vas. Laat die soldeer hard word en herhaal aan die ander kant. Dit moet die skakelaar posisioneer en vasmaak. Berei twee stukke draad vas deur dit in lengte te sny en albei kante te verwyder. Maak seker dat die drade lank genoeg is sodat die deksel van die blik heeltemal kan oopgaan. Soldeer aan twee toepaslike penne op die skakelaar en skuif dan stukke krimpbuise oor die gewrigte om dit te beskerm en te versterk. Soldeer aan die ander ente in hul onderskeie gate op die bord. Draai die drade versigtig tussen die LED's en maak seker dat dit nie bo -op die batterye sit nie. Ek het die twee penne op die skakelaar gesprei sodat die regterkantste LED tussen hulle ingeskuif het. Die penne op die skakelaar is BAIE broos (die ander twee het afgeknyp). Let op die pen PA7 PCINT7 6 is ingestel om te luister na 'n verandering in die toestand. Deur op die drukknopskakelaar te druk, trek die pen hoog en SIGNAL (PCINT0_vect) word uitgevoer. Op grond van die lengte van die druk op die knoppie, gebeur niks of nie (ru -afbreek), die toestand is gevorderd (kort druk), of die program word gevorderd (lang druk).

Stap 14: Maak die deksel toe

Maak die deksel toe
Maak die deksel toe

As alles op hierdie punt goed is, wil u die blikkie toemaak. As u dit doen, moet u baie versigtig wees oor die posisie van die LED's. Ek vind dat ek hulle met 'n dun lepel skroewedraaier in posisie moet druk sodat hulle korrek in hul gate geplaas kan word. Druk 'n bietjie afwaarts op die deksel terwyl u die LED's op hul plek beweeg, en dit sal uiteindelik op hul plek gly. Miskien moet u die drade so plaas dat dit tussenin val en nie op die komponente nie. Die penne van die drukknopskakelaar moet moontlik ook uit die pad gebuig word.

Aanbeveel: