Innholdsfortegnelse:

Sveitsisk AVR -kniv: 14 trinn (med bilder)
Sveitsisk AVR -kniv: 14 trinn (med bilder)

Video: Sveitsisk AVR -kniv: 14 trinn (med bilder)

Video: Sveitsisk AVR -kniv: 14 trinn (med bilder)
Video: Слияние рек Рон и Авр Швейцария #shorts 2024, Juli
Anonim
Sveitsisk AVR -kniv
Sveitsisk AVR -kniv
Sveitsisk AVR -kniv
Sveitsisk AVR -kniv
Sveitsisk AVR -kniv
Sveitsisk AVR -kniv
Sveitsisk AVR -kniv
Sveitsisk AVR -kniv

Den sveitsiske AVR -kniven samler en rekke AVR -programmeringsprosjekter sammen i en enkel Altoids Gum Tin. På grunn av fleksibiliteten ved programmering av mikrokontroller, gir den også et utgangspunkt for et stort antall prosjekter basert på lysdioder og lydutgang. SAK kan inneholde så mange programmer som 8K minne tillater og opprettholder åtte tilstander for hvert program. Den blå trykknappen får SAK til å bla gjennom programmer og tilstander - et raskt trykk får det til å bli i programmet, men endres til neste tilstand (men det er definert) og et langt trykk får det til å gå videre til neste program. Gjeldende program og tilstander for alle programmer er bevart i EEPROM mellom bruksområder.

Prosjektene som for tiden er implementert i SAK inkluderer følgende. Disse, sammen med all den andre koden og konstantene (det er en full skrifttabell), tar omtrent 4K av den tilgjengelige plassen. Mye mer plass! MiniMenorah - Evil Mad Scientists Brain Machine - Mitch AltmanMiniPOV - Adafruit IndustriesNoise Toy - Høyt gjenstander LED Kjørelys LED Candle LED lommelykt Dette prosjektet ville ikke eksistert uten den store generøsiteten til alle som bidro på en eller annen måte. I tillegg til det ovennevnte, vil jeg takke utviklerne av programvareverktøyene som brukes (se i andre trinn) og alle som har lagt opp et nyttig nettsted som ytterligere forsto min forståelse av disse emnene. Jeg kan ta direkte kreditt for veldig lite av koden som ble brukt i dette prosjektet. Hvis du føler at koden er din, kan det godt være. Gi meg beskjed, så gir jeg deg gjerne æren. Uansett, takk for ditt bidrag:-)

Trinn 1: Deler

Deler kan fås fra en rekke elektroniske leverandører. På grunn av plassbegrensningen kreves de fleste komponentene som angitt. Alt passer bare så vidt; sørg for at eventuelle reservedeler ikke tar opp ekstra plass. Ikke erstatt ATtiny84 med mindre du er helt sikker på at pinnene stemmer overens. Koblingene som følger delene er til DigiKey og All Electronics. Elektroniske komponenter1 x U1-ATtiny84-ATTINY84-20PU-ND1 x Ux-IC-kontakt 14-pinners DIP-A32879-ND9 x LED-ditt valg av farge9 x motstander-tilpasset dine lysdioder 2 x R1, R2-100 ohm 1/4W 1% metallfilm-100XBK-ND2 x C7, C8-47uF-P5151-NDMiscellaneousBattery Holder 1-AA 6 "ledninger (1) 2461K-NDP-telefonstikk stereo 3,5 mm (1) MJW-22 Håndbryter SPDT 1/4 "på (1) MTS-4 Trykknappbryter (1) 450-1654-NDMinty Boost SAK drives av et enkelt AA-batteri forsterket av en Maxim MAX756 -brikke (den viktigste komponenten i MintyBoost!). Komponentene nedenfor er nødvendige for denne delen av kretsen. 1 x U1-MAX756CPA DC/DC 3.3/5V DIP-MAX756CPA+-ND1 x Ux-IC-kontakt 8-pinners DIP-A32878-ND2 x C7, C8 -0.1uF-399-4151-ND2 x C3, C5-100uF-P5152-ND1 x L1-22uH radial-M9985-ND1 x D1-1N5818 Schottky 1A 30V-1N5818-E3/1GI- ND

Trinn 2: ATtiny84 mikrokontroller

ATtiny84 mikrokontroller
ATtiny84 mikrokontroller

Mange prosjekter bruker enten ATtiny2313 20-pinners eller ATtiny85 8-pinners mikrokontroller. Jeg fant ATtiny2313 for stor (for kabinettet) og ATtiny85 for liten (ikke nok minne, ikke nok utgangspinner). ATtiny84 er helt riktig:-) ATtiny84 har 8K programmerbart flashminne (nok til å holde mange små programmer), 512K EEPROM (for lagring av tilstand mellom bruk), opptil 12 utgangspinner (for de 9 lysdiodene, 2 kanaler av lydutgang og en trykknappbryter), og mange andre godbiter som ikke brukes i dette prosjektet. Hvis du planlegger å legge til programmer, får du en kopi av ATtiny84 -databladet. Det er mange instruksjonsguider for å lære å programmere denne familien av mikrokontroller på Internett. Hvis du vil ha en nyttig oppsummering av mikrokontrollere, kan du se Hvordan velge en mikrokontroller. Merk Prosjektet som er beskrevet her har faktisk ikke MiniMenorah fullt aktivert. MM krever ni utgangspinner, hjernemaskinen to og knappen for å endre tilstand én, for totalt tolv. Selv om ATtiny84 kan konfigureres til å ha tolv utgangspinner, er det på bekostning av RESET -pinnen. Hvis du deaktiverer RESET-pinnen og gjør den til I/O, kan ATtiny84 ikke programmeres med USBtinyISP-progameren (som ikke har gjort det:-) og krever høyspentprogrammering. Alt er på plass for å aktivere MM, men en annen programmerer er nødvendig, og jeg har ikke en.

Trinn 3: AVR -programmeringsverktøy

AVR programmeringsverktøy
AVR programmeringsverktøy
AVR programmeringsverktøy
AVR programmeringsverktøy

Ganske mange komponenter, både maskinvare og programvare, er nødvendige for å programmere AVR -mikrokontrollere. Nedenfor er verktøyene jeg bruker. Mange, mange andre finnes i samme prisklasse - gratis til billig. Finn et sett som fungerer for deg, og hold deg til dem. Enda bedre, finn en venn som har utarbeidet et system og bruk verktøyene sine. Ingenting er spesielt vanskelig hvis alt går som annonsert, men å få alle verktøyene til å fungere sammen kan være en skikkelig utfordring. De lange pinnene på wirewrap -brikkeholderen strekker seg ned til et brødbrett og gir et praktisk eksperimentelt oppsett. Det eneste problemet jeg har støtt på er at komponentene fra programmeringspinnene ikke kan jordes under programmeringen. Jeg har tatt to tilnærminger for å løse dette problemet. Den første er å ha to brikkeholdere, en for programmering og en for å kjøre (se 8-pinners vugge). Dette er ikke ideelt fordi det gjør mye av brødbrettet ubrukelig, og det er ganske irriterende å flytte brikken. Den andre er å installere en liten bryter for å koble jordnålen fra bakken på brødbrettet under programmeringen. Dette fungerer bedre og gir mer plass på brødbrettet for komponenter. ProgrammerUSBtinyISP -sett fra Adafruit Industries. Med en liten modifikasjon (fjern 10-pinners kabelen og bøy lysdiodene) passer programmereren i en Altoids tannkjøttboks. 6-pinners kabelen kan til og med vikles opp i tinnet for lagring. SoftwareWinAVR er en samling av programvareutviklingsverktøy for åpen kildekode for programmering av AVR-mikrokontrollere på Windows-maskiner. Det fungerer bra med USBtinyISP -programmereren (se AVR -opplæringen). Jeg har nylig byttet fra å bruke programmererens Notisblokk -applikasjon som følger med WinAVR til å bruke Eclipse med AVR Eclipse -plugin. Eclipse kan bruke avrdude, så du må uansett installere WinAVR. Eclipse har bedre prosjektledelse, nyttige opplæringsprogrammer og er gratis. Det tok bare noen minutter å installere den, gjennomgå en opplæring og programmere en brikke. Ring en venn Det er mange ressurser på Internett. Se etter dem, be om hjelp. Folk kan være kunnskapsrike og hjelpsomme. Det er fint:-) De kan også være avvisende. Det er ikke snilt:-(

Trinn 4: Programmering av mikrokontrolleren

Programmering av mikrokontrolleren
Programmering av mikrokontrolleren

C -kode Ikke kritiser det jeg ikke forstår. Jeg er ikke en programmerer, C er ikke morsmålet mitt, og jeg holder på med en Java-tynn tråd og mye websøk når jeg jobber i C. Selv om mye av koden kom fra andre prosjekter (se studiepoeng), Jeg måtte gjøre noen tillegg og modifikasjoner. Kildekoden for den sveitsiske AVR -kniven er vedlagt nedenfor både som en c -kildefil og en hex -fil. Jeg vil sette pris på å høre hvor koden kan forbedres. Det er noen få endringer jeg regner med å gjøre i koden. Det kommer oppdateringer. I mellomtiden fungerer koden som annonsert. Sikringer Mikrokontroller sikringer er forvirrende. Jeg har deaktivert noen få mikrokontrollere både ved et uhell å sette dem til å lete etter en ekstern oscillator og ved å deaktivere RESET -pinnen. De kan gjenopprettes, men til da er de bare døde insekter. Vær forsiktig hvis du velger å bytte sikringer. Bruk en online sikringskalkulator for å beregne de riktige sikringsverdiene. Velg måldelen (ATtiny84) og de riktige innstillingene - intern RC -oscillator som kjører på 8MHz (standardverdi), IKKE del klokken med 8 internt, aktiver seriell nedlasting av programmer og deaktiver brownout -deteksjon. Resultatet skal være følgende. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (lav 0xE2 høy 0xDF ext 0xFF). Du trenger bare å brenne sikringene én gang (med mindre du planlegger å bytte dem). Formørkelsen gjør dette enkelt, og jeg gjør sikkert andre IDE -spørsmål. Spørsmål som jeg gjerne vil ha svar på. Noen ideer om optimalisering av koden. på brødbrettet? Hvorfor liker ikke Eclipse funksjonene lightOn og lightOff, selv om de ser ut til å fungere?

Trinn 5: Breadboarding av prosjektet

Breadboarding av prosjektet
Breadboarding av prosjektet
Breadboarding av prosjektet
Breadboarding av prosjektet

Fordi så mye av arbeidet til dette prosjektet er utført av mikrokontrolleren, er det svært få eksterne deler. Etter å ha sjekket at programmereren og verktøykjeden er i orden, ville det være en god idé å kaste kretskortet og sørge for at alt fungerer som annonsert. Bildene nedenfor er rotete versjoner av selve brødbrettet jeg hadde satt opp. Jeg brukte lysdiodene i modellboksen og lettet ut holderen og brikken for å bruke på flere fotografier. Den generelle ledningen kobler i utgangspunktet aktive pinner til noen få deler og deretter til bakken. Merk Rekkefølgen på pinner og lysdioder er ikke den samme på brødbrettet og kretskortet (selv om jeg antar at du kan gjøre dem like). I koden vil du se kodebiter som enten må aktiveres eller kommenteres, avhengig av om målet er brødbrettet eller PCB.

Trinn 6: Klargjøring av Altoids tyggegummi

Bilder på vei Flat ut bunnen. Bunnen av tinnet krummer opp og inn. Den må flates ut slik at batteriet og kretskortet sitter og sitter jevnt. Vær forsiktig så du ikke forvrenger tinnet, skyv bunnen ut til den er flatt. Tinnet trenger tre sett med hull. Jeg bruker en metallstans for å markere hullplasseringene og bradpunktbitsene (for tre) for å bore hullene. Bradpunktbitene har et senterpunkt og to skjærekanter. De vil ikke skate og kantene skjærer sakte gjennom metallet. Brad -punktbiter er tilgjengelige fra Lee Valley (blant annet). Den første er et sett med ni 5 mm hull over toppen av tinnet for lysdiodene. Metriske bradpoint -biter er tilgjengelige, og de lager rene og tette hull for lysdiodene. Lag en papirmal med hullene merket og overfør merkene til toppen av formen. For å unngå å skyve toppen av tinnet inn, støtt den indre delen av lokket på en liten trebit når du stanser og borer toppen. Med papiret og treet på plass, fordyper jeg tinnet med stansen. Når du borer, gå sakte først. Skjærkantene på brad -punktene skal lage en jevn sirkel. Hvis du borer med biten alt annet enn vinkelrett på overflaten, kan det føre til at biten tar tak i og river metallet. 5 mm bradpunkt gjør et rent rent hull, men jeg fant ut at jeg måtte utvide det litt. Jeg gjorde dette ved å bore ut fra innsiden med en vanlig 13/64 "bit. Det andre settet består av to 1/4" hull på høyre side av tinnet for bryteren og lydkontakten. På grunn av den tette krumningen i enden av tinnet, må disse hullene være ganske tette. Sørg for å plassere dem slik at komponentene passer i formen. Sentrer dem vertikalt på den delen av siden som er synlig når lokket er lukket. Merk med slag og bor veldig nøye. Advarselen om at bitene tar tak i tinnene gjelder sterkere med de større bitene. Det siste hullet er for trykknappbryteren. Plasser hullet mot bunnen til høyre på en slik måte at trykknappen ikke forstyrrer de andre komponentene i tinnet.

Trinn 7: Designe og lage PCB

Design og lage PCB
Design og lage PCB
Design og lage PCB
Design og lage PCB
Design og lage PCB
Design og lage PCB

Det er mange ressurser på Internett som beskriver prosessen med å lage PCB. Ingen av metodene er idiotsikre eller enkle, men det er viktig å bli komfortabel med minst en. Jeg bruker freeware -versjonen av EAGLE Layout Editor fra CadSoft for å lage skjematisk og utforme kretskortet. Min fremgangsmåte for fremstilling av PCB er beskrevet i fremstilling og forberedelse av PCB -trinnet i Altoids Tin Speaker som kan instrueres. Etter overføring, etsing og boring av brettet er du klar til å lodde alt sammen. Merk Min siste erfaring for overføring av bilder til kretskort er følgende. Vask brettet godt med oppvaskmiddel og skrubb det med en grønn scrubby. Slip forsiktig eventuelle grater av kantene på brettet, slik at overføringspapiret og jernet kommer i god kontakt med brettet. Forvarm strykejernet. Legg et stykke papir på brettet og varm opp brettet med strykejernet. Etter at brettet er ganske varmt, legger du forsiktig det tilberedte overføringspapiret på brettet. Det vil feste seg med en gang (fordi brettet er varmt), så sørg for at det er riktig plassert. Stryk deretter direkte på den skinnende baksiden av overføringspapiret. Dette har aldri forårsaket meg noen problemer, men du bruker ditt eget jern. Test først. La brettet avkjøle og kjør det deretter under kaldt vann. Overføringspapiret skal sprette av og la hele bildet ligge igjen. Bruk en 8x lysbilde/negativ visning for å se over overføringen og fyll ut eventuelle manglende deler. Lykke til.

Trinn 8: Lodding av deler til PCB

Loddedeler til PCB
Loddedeler til PCB
Loddedeler til PCB
Loddedeler til PCB
Loddedeler til PCB
Loddedeler til PCB

Det er mange ressurser på Internett som beskriver prosessen med lodding av elektroniske komponenter til PCB. Se for eksempel loddeopplæringen på ladyada.net. Rekkefølgen du installerer komponenter spiller egentlig ingen rolle, selv om jeg har funnet det å jobbe fra minste til største den enkleste. LED/blinkenlight-ledningene er lange nok til at du kan forme dem til et menora-lignende mønster i tinnet. Monter lysdiodene forsiktig og bøy ledningene slik at toppen av hver LED er plassert slik at den kommer til å stikke opp gjennom det respektive hullet. Dette kan være utfordrende, men det ser veldig fint ut når det endelig løser seg. Hvis ledningene blir igjen for lenge, kan lysdiodene presses ned og ut av posisjon av lokket på boksen. Merk Lysdioden til høyre er ikke i samme retning som de andre åtte. Sørg for at du sjekker polariteten til lysdiodene mot brettoppsettet når du installerer dem. Denne LED -en er festet til RESET -pinnen, så du kan velge å ikke installere den. Merk Ledningene til lydkontakten og motstandene deler et hull. For enkelhets skyld, sett motstandene i oppreist stilling slik at motstandens kropp ikke er over hullet med lydledningen. Enten forbered og installer lydkontakten på dette tidspunktet, eller vent til den er klar til å lodde inn motstandene. Det er ikke morsomt å lodde motstandene senere.

Trinn 9: Blinkenlights

Blinkenlys
Blinkenlys

Lysdiodene må beskyttes av motstander. Bestem spenningsfallet og strømkravene til lysdiodene dine og beregne de passende motstandene forutsatt en 5V kilde fra brikken. Det er lett tilgjengelige online kalkulatorer for å gjøre dette. Lag deg en haug med blinklys. Når du gjør dem til dette prosjektet, kutter du katoden (negativ/kort ledning på LED -en ved den flate siden) og lodder motstanden veldig nær linsen til LED -en. Lysdiodene danner en menorah -form i tinnet. Selv om motstanden nesten berører linsen, vil den korteste lysdioden i midten bli litt klemt av lokket på tinnet. For å forhindre at shorts oppstår i tinnets tette grenser, dekker du hver motstand med et stykke varmekrympeslange.

Trinn 10: Klargjøring av batteriholderen

Klargjøring av batteriholderen
Klargjøring av batteriholderen

Skyv små biter av varmekrympeslange langs begge ledninger på batteriholderen. Skyv dem forsiktig inn i hullene på holderen og krympe på plass. Disse gir en viss grad av beskyttelse for ledningene. (Denne instruksjonen er duplisert på siden Preparing the Toggle Switch.) Klipp den svarte ledningen i lengden og loddetinn i det riktige hullet på kretskortet. Den røde ledningen er loddet direkte til vippebryteren; se instruksjonene på siden for hvordan du går frem. I tidligere prosjekter har jeg kuttet festetappene av batteriholderen. Etter å ha gjort dette på prototypen, angrer jeg nå. Batteriet vil ikke holde seg tett på plass. La fanene starte og fjern dem bare hvis du har problemer med å få ut batteriet. Til tross for å si dette, viser bildet en batteriholder med tappene avskåret. Dette er fordi jeg fjernet det fra et annet prosjekt.

Trinn 11: Klargjøre vippebryteren

Forbereder vippebryteren
Forbereder vippebryteren

Avhengig av bryteren din, må du kanskje klippe av en av pinnene. Jeg gjør dette med bryterne jeg bruker, selv om det kanskje ikke er helt nødvendig. Skyv et lite stykke krympeslange langs den røde ledningen på batteriholderen. Skyv den forsiktig inn i hullet på holderen og krympe på plass. Det gir en viss grad av beskyttelse for ledningen. (Denne instruksjonen dupliserer instruksjonene i Forberedelse av batteriholderen.) Skyv et annet lite stykke varmekrympeslange på den røde ledningen. Klipp og stripe ledningen i lengden og bruk litt loddetinn på både pinnen på bryteren og enden av ledningen. Lodd den røde ledningen fra batteriholderen direkte til bryterens ytre pinne. Skyv biten av varmekrympeslangen over skjøten for å beskytte og styrke den. Den andre ledningen går fra den midtre pinnen på bryteren til kretskortet. Lodd ledningen til bryteren som beskrevet ovenfor. Beskytt skjøten med krympeslange. Lodd den andre enden til det riktige hullet på kretskortet.

Trinn 12: Klargjøring av lydkontakten

Forbereder lydkontakten
Forbereder lydkontakten
Forbereder lydkontakten
Forbereder lydkontakten
Forbereder lydkontakten
Forbereder lydkontakten

Ledningene til lydkontakten er alle ganske korte. Påfør litt loddetinn på pinnene på jekken og ledningen, og lodd dem deretter på plass. Skyv biter av varmekrympeslanger over leddene for å beskytte og styrke dem. Jordledningen kan loddes direkte inn i hullet. Endene på signaltrådene deler hver et hull med den ene enden av en motstand. Forbered ledningen og motstanden ved å vri endene sammen og påføre litt loddetinn. Hullet som disse går i bør bores til 3/64 for å imøtekomme de to ledningene. Lodd på plass.

Trinn 13: Klargjøring av trykknappbryteren

Klargjøre trykknappbryteren
Klargjøre trykknappbryteren
Klargjøre trykknappbryteren
Klargjøre trykknappbryteren
Klargjøre trykknappbryteren
Klargjøre trykknappbryteren

Forbered et kort stykke solid tråd ved å forme den til en U-form som passer godt over bunnen av bryteren. Påfør en klatt loddetinn på hver side av hullet - la det være plass til bryteren - og plasser bryteren på plass. Smelt loddetinnet og skyv ledningen på plass. La loddetinn herde og gjenta på den andre siden. Dette bør posisjonere og sikre bryteren på plass. Forbered to stykker strandet ledning ved å kutte i lengde og fjerne begge ender. Sørg for at ledningene er lange nok til at lokket på formen kan åpnes helt. Lodd til to passende pinner på bryteren, og skyv deretter biter av varmekrympeslanger over leddene for å beskytte og styrke dem. Lodd til andre ender i de respektive hullene på brettet. Tre ledningene forsiktig mellom lysdiodene og pass på at de ikke sitter på toppen av batteriene. Jeg spredte de to pinnene på bryteren slik at den høyre LED -en gled mellom dem. Pinnene på bryteren er MEGET skjøre (de to andre klikket av). Merk at pinnen PA7 PCINT7 6 er satt opp for å lytte etter endring i tilstanden. Ved å trykke på trykknappbryteren trekkes pinnen høyt og SIGNAL (PCINT0_vect) utføres. Basert på lengden på knappetrykket, enten skjer det ingenting (rådebouncing), tilstanden er avansert (kort trykk), eller programmet er avansert (langt trykk).

Trinn 14: Lukk lokket

Lukke lokket
Lukke lokket

Hvis alt er bra på dette tidspunktet, vil du lukke tinnet. Når du gjør det, må du være veldig forsiktig med plasseringen av lysdiodene. Jeg finner ut at jeg må skyve dem på plass med en tynnbladet skrutrekker slik at de er riktig plassert i hullene. Trykk litt nedover på lokket mens du manøvrerer lysdiodene på plass, og de vil til slutt gli på plass. Du må kanskje plassere ledningene slik at de faller mellom og ikke på komponenter. Det kan også hende at pinnene på trykknappbryteren må bøyes ut av veien.

Anbefalt: