Indholdsfortegnelse:

Schweizisk AVR -kniv: 14 trin (med billeder)
Schweizisk AVR -kniv: 14 trin (med billeder)

Video: Schweizisk AVR -kniv: 14 trin (med billeder)

Video: Schweizisk AVR -kniv: 14 trin (med billeder)
Video: Слияние рек Рон и Авр Швейцария #shorts 2024, November
Anonim
Schweizisk AVR -kniv
Schweizisk AVR -kniv
Schweizisk AVR -kniv
Schweizisk AVR -kniv
Schweizisk AVR -kniv
Schweizisk AVR -kniv
Schweizisk AVR -kniv
Schweizisk AVR -kniv

Den schweiziske AVR -kniv samler en række AVR -programmeringsprojekter i et enkelt bekvemt Altoids Gum Tin. På grund af den fleksibilitet, som mikrokontrollerprogrammering giver, giver den også et udgangspunkt for et vilkårligt antal projekter baseret på lysdioder og lydoutput. SAK kan indeholde så mange programmer som 8K hukommelse tillader og opretholder otte tilstande for hvert program. Den blå trykknap får SAK til at gennemgå programmer og tilstande - et hurtigt tryk får det til at blive i programmet, men skifter til den næste tilstand (dog det er defineret) og et langt tryk får det til at gå videre til det næste program. Det aktuelle program og tilstande for alle programmer bevares i EEPROM mellem anvendelser.

De projekter, der i øjeblikket gennemføres i SAK, omfatter følgende. Disse fylder sammen med al den anden kode og konstanter (der er en fuld skrifttype) omkring 4K af den tilgængelige plads. Meget mere plads! MiniMenorah - Evil Mad Scientists Brain Machine - Mitch AltmanMiniPOV - Adafruit Industries Støjlegetøj - Højt objekt LED Kørelys LED Candle LED lommelygte Dette projekt ville ikke eksistere uden den store generøsitet fra alle, der bidrog på en eller anden måde. Ud over ovennævnte vil jeg gerne takke udviklerne af de anvendte softwareværktøjer (se i andre trin) og alle, der har oprettet et nyttigt websted, der fremmer min forståelse af disse emner. Jeg kan tage direkte æren for meget lidt af den kode, der blev brugt i dette projekt. Hvis du føler, at koden er din, kan det godt være. Lad mig vide, og jeg vil med glæde give dig æren. I hvert fald tak for dit bidrag:-)

Trin 1: Dele

Dele kan fås fra en række elektroniske leverandører. På grund af pladsbegrænsningen kræves de fleste komponenter som angivet. Alt passer bare knap; Sørg for, at eventuelle reservedele ikke fylder mere. Udskift ikke ATtiny84, medmindre du er helt sikker på, at benene svarer. Linkene efter delene er til DigiKey og All Electronics. Elektroniske komponenter1 x U1-ATtiny84-ATTINY84-20PU-ND1 x Ux-IC-stik 14-benet DIP-A32879-ND9 x LED-dit valg af farve9 x modstande-matchet til dine lysdioder 2 x R1, R2-100 ohm 1/4W 1% metalfilm-100XBK-ND2 x C7, C8-47uF-P5151-NDMiscellaneousBatteriholder 1-AA 6 "ledninger (1) 2461K-NDP-telefonstik stereo 3,5 mm (1) MJW-22 Skiftekontakt SPDT 1/4 "tændt (1) MTS-4 Tryk på knappen (1) 450-1654-NDMinty Boost SAK drives af et enkelt AA-batteri forstærket af en Maxim MAX756 -chip (den væsentlige komponent i MintyBoost!). Komponenterne nedenfor er de nødvendige for denne del af kredsløbet. 1 x U1-MAX756CPA DC/DC 3.3/5V DIP-MAX756CPA+-ND1 x Ux-IC-stik 8-benet 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

Trin 2: ATtiny84 mikrokontroller

ATtiny84 mikrokontroller
ATtiny84 mikrokontroller

Mange projekter bruger enten ATtiny2313 20-pin eller ATtiny85 8-pin microcontroller. Jeg fandt ATtiny2313 for stor (til kabinettet) og ATtiny85 for lille (ikke nok hukommelse, ikke nok output pins). ATtiny84 er lige tilpas:-) ATtiny84 har 8K programmerbar flashhukommelse (nok til at rumme mange små programmer), 512K EEPROM (til lagring af tilstand mellem anvendelser), op til 12 output pins (til de 9 lysdioder, 2 kanaler lydudgang og en trykknapkontakt) og mange andre godbidder, der ikke bruges i dette projekt. Hvis du planlægger at tilføje programmer, skal du få en kopi af ATtiny84 -databladet. Der er mange instruktionsvejledninger til at lære at programmere denne familie af mikrokontroller på Internettet. For en nyttig oversigt over mikrokontrollere, se Sådan vælges en mikrokontroller Bemærk! Projektet beskrevet her har faktisk ikke MiniMenorah fuldt ud aktiveret. MM kræver ni output pins, Brain Machine to, og knappen for at ændre tilstand en, i alt tolv. Selvom ATtiny84 kan konfigureres til at have tolv output pins, er det på bekostning af RESET pin. Deaktivering af RESET-pin og gør den til I/O gør, at ATtiny84 ikke kan programmeres med USBtinyISP-progameren (hvem har ikke gjort det:-) og kræver højspændingsprogrammering. Alt er på plads for at aktivere MM, men en anden programmør er påkrævet, og jeg har ikke en.

Trin 3: AVR -programmeringsværktøjer

AVR programmeringsværktøjer
AVR programmeringsværktøjer
AVR programmeringsværktøjer
AVR programmeringsværktøjer

En hel del komponenter, både hardware og software, er nødvendige for at programmere AVR -mikrokontrollere. Nedenfor er de værktøjer, jeg bruger. Mange, mange andre findes i samme prisklasse - gratis til billige. Find et sæt, der fungerer for dig, og hold dig til dem. Endnu bedre: Find en ven, der har udarbejdet et system og brug hans/hendes værktøjer. Intet er særlig svært, hvis alt går som annonceret, men at få alle værktøjerne til at arbejde sammen kan være en reel udfordring. De lange stifter på wirewrap -chipholderen strækker sig ned til et brødbræt og giver en bekvem eksperimentel opsætning. Det eneste problem, jeg er stødt på, er, at komponenterne fra programmeringsstifterne ikke kan jordes under programmeringen. Jeg har valgt to måder at løse dette problem på. Den første er at have to chipholdere, en til programmering og en til kørsel (se 8-polet holder). Dette er ikke ideelt, fordi det gør meget af brødbrættet ubrugeligt, og det er ret irriterende at flytte chippen. Den anden er at installere en lille kontakt til at afbryde jordnålen fra brødbrættets jord under programmeringen. Dette fungerer bedre og efterlader mere plads på brødbrættet til komponenter. ProgrammerUSBtinyISP kit fra Adafruit Industries. Med en lille ændring (fjern det 10-benede kabel og bøj lysdioderne) passer programmereren i en Altoids Gum Tin. Det 6-benede kabel kan endda vikles op i blikket til opbevaring. SoftwareWinAVR er en samling af open source softwareudviklingsværktøjer til programmering af AVR-mikrokontrollere på Windows-maskiner. Det fungerer godt med USBtinyISP -programmereren (se AVR -vejledningen). Jeg skiftede for nylig fra at bruge programmørens Notesblok -applikation, der følger med WinAVR til at bruge Eclipse med AVR Eclipse Plugin. Eclipse kan bruge avrdude, så du bliver nødt til at installere WinAVR alligevel. Eclipse har bedre projektledelse, nyttige tutorials og er gratis. Det tog kun et par minutter at installere det, gennemgå en tutorial og programmere en chip. Ring til en ven Der er masser af ressourcer på Internettet. Kig efter dem, spørg om hjælp. Folk kan være kyndige og hjælpsomme. Det er dejligt:-) De kan også være afvisende. Det er ikke sødt:-(

Trin 4: Programmering af mikrokontrolleren

Programmering af mikrokontrolleren
Programmering af mikrokontrolleren

C -kode Kritiser ikke det, jeg ikke forstår. Jeg er ikke en programmør, C er ikke mit modersmål, og jeg holder fast i en Java-tynd tråd og en masse websøgning, når jeg arbejder i C. Selvom meget af koden kom fra andre projekter (se kreditter), Jeg var nødt til at foretage nogle tilføjelser og ændringer. Kildekoden til den schweiziske AVR -kniv er vedhæftet nedenfor både som en c -kildefil og en hex -fil. Jeg ville sætte pris på at høre, hvor koden kunne forbedres. Der er et par ændringer, jeg forventer at foretage i koden. Opdateringer kommer. I mellemtiden fungerer koden som annonceret. Sikringer Mikrocontroller sikringer er forvirrende. Jeg har deaktiveret et par mikrokontrollere både ved et uheld at sætte dem til at lede efter en ekstern oscillator og ved at deaktivere RESET -stiften. De kan gendannes, men indtil da er de bare døde bugs. Vær forsigtig, hvis du vælger at skifte sikringer. Brug en online sikringsberegner til at beregne de korrekte sikringsværdier. Vælg måldelen (ATtiny84) og de relevante indstillinger - intern RC -oscillator, der kører ved 8MHz (standardværdi), DEL IKKE uret med 8 internt, aktiver seriel programoverførsel, og deaktiver brownout -registrering. Resultatet skal være følgende. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (lav 0xE2 høj 0xDF ext 0xFF). Du behøver kun at brænde sikringerne én gang (medmindre du planlægger at ændre dem). Eclipse gør dette let, da jeg er sikker på at gøre andre IDE'er. Spørgsmål, som jeg gerne vil have besvaret. Eventuelle ideer til optimering af koden Hvorfor forårsager de blinkende lys i lyd- og lysmaskinen en svingning i tone, når den er aktiveret i blikket, men ikke på brødbrættet? Hvorfor kan Eclipse ikke lide lightOn og lightOff -funktionerne, selvom de ser ud til at fungere?

Trin 5: Breadboarding af projektet

Breadboarding af projektet
Breadboarding af projektet
Breadboarding af projektet
Breadboarding af projektet

Fordi så meget af arbejdet i dette projekt udføres af mikrokontrolleren, er der meget få eksterne dele. Efter at have kontrolleret, at din programmør og værktøjskæde er i orden, ville det være en god idé at panere kredsløbet og sikre, at alt fungerer som annonceret. Billederne nedenfor er forvirrede versioner af det faktiske brødbræt, jeg havde opsat. Jeg brugte lysdioderne i modelblikken og lader vuggen og chippen ud til brug i flere fotografier. Den samlede ledning forbinder dybest set aktive stifter til et par dele og derefter videre til jorden. Bemærk Stiften og lysdiodernes rækkefølge er ikke den samme på brødbrættet og printkortet (selvom jeg formoder, at du kunne lave dem det samme). I koden ser du stykker kode, der enten skal aktiveres eller kommenteres, afhængigt af om målet er brødbrættet eller printkortet.

Trin 6: Forberedelse af Altoids Gum Tin

Billeder på vej Flad bunden. Bunden af blikket krummer op og ind. Det skal flades ud, så batteri og printkort passer og sidder jævnt. Vær forsigtig med ikke at forvrænge blikket, skub bunden ud, indtil den er i det væsentlige flad. Tinen har brug for tre sæt huller. Jeg bruger en metalstans til at markere hullets placeringer og bradpoint bits (til træ) til at bore hullerne. Bradpunktbitene har et centerpunkt og to skærekanter. De skøjter ikke, og kanterne skærer langsomt gennem metallet. Brad point bits er tilgængelige fra Lee Valley (blandt andet). Den første er et sæt med ni 5 mm huller på tværs af toppen af blikket til lysdioderne. Metriske brad point bits er tilgængelige, og de laver rene og tætte huller til lysdioderne. Opret en papirskabelon med hullerne markeret, og overfør mærkerne til toppen af formen. For at undgå at skubbe toppen af dåsen ind, skal du støtte den inderste del af låget på en lille træblok, når du slår og borer toppen. Med papiret og træet på plads dæmper jeg formen ved hjælp af stansen. Når du borer, skal du først gå langsomt. Skærets kanter på bradpunkterne skal lave en jævn cirkel. At bore med boret alt andet end vinkelret på overfladen kan resultere i, at boren griber og river metallet i stykker. 5 mm bradspidsen gør et rent rent hul, men jeg fandt ud af, at jeg måtte udvide det så lidt. Jeg gjorde dette ved at bore ud indefra med en almindelig 13/64 "bit. Det andet sæt består af to 1/4" huller på højre side af blikket til kontakten og lydstik. På grund af den stramme krumning i enden af formen skal disse huller være ret tæt. Sørg for at placere dem, så komponenterne passer i formen. Centrer dem lodret på den del af siden, der er synlig, når låget er lukket. Marker med slag og bor meget omhyggeligt. Advarslen om, at bitene tager fat i blikket, gælder stærkere med de større bits. Det sidste hul er til trykknapkontakten. Placer hullet mod bunden til højre på en sådan måde, at trykknappen ikke forstyrrer de andre komponenter i formen.

Trin 7: Design og fremstilling af printkortet

Design og fremstilling af PCB
Design og fremstilling af PCB
Design og fremstilling af PCB
Design og fremstilling af PCB
Design og fremstilling af PCB
Design og fremstilling af PCB

Der er mange ressourcer på Internettet, der beskriver processen med at oprette PCB'er. Ingen af metoderne er idiotsikre eller lette, men det er vigtigt at blive fortrolig med mindst en. Jeg bruger freeware -versionen af EAGLE Layout Editor fra CadSoft til at oprette skematikken og layoute printkortet. Min fremgangsmåde til fremstilling af printkortet er beskrevet i fremstilling og klargøring af PCB -trin i Altoids Tin Speaker instruerbar. Efter overførsel, ætsning og boring af brættet er du klar til at lodde alt sammen. Bemærk Min seneste erfaring med overførsel af billeder til printkort er følgende. Vask tavlen godt med opvaskemiddel og skrub den med en grøn scrubby. Slib forsigtigt eventuelle grater af kanterne af brættet, så overførselspapiret og jernet får god kontakt med brættet. Forvarm jernet. Læg et stykke papir på tavlen og varm brættet op med strygejernet. Når brættet er ret varmt, lægges forsigtigt det forberedte transferpapir på tavlen. Det klistrer med det samme (fordi brættet er varmt), så sørg for at det er korrekt placeret. Stryg derefter direkte på den skinnende bagside af overførselspapiret. Dette har aldrig givet mig problemer, men du bruger dit eget jern. Test først. Lad tavlen køle af, og kør den derefter under koldt vand. Overførselspapiret skal springe ud og efterlade hele billedet. Brug en 8x dias/negativ fremviser til at kigge over overførslen og udfylde eventuelle manglende stykker. Held og lykke.

Trin 8: Lodning af dele til printkort

Lodning Dele til PCB
Lodning Dele til PCB
Lodning Dele til PCB
Lodning Dele til PCB
Lodning Dele til PCB
Lodning Dele til PCB

Der er mange ressourcer på Internettet, der beskriver processen med lodning af elektroniske komponenter til printkort. Se for eksempel lodningstutorial på ladyada.net. Rækkefølgen, hvor du installerer komponenter, er ikke ligegyldig, selvom jeg har fundet det lettere at arbejde fra den mindste til den største. LED/blinkenlight-ledningerne er lange nok, så du kan forme dem til et menorah-lignende mønster i dåsen. Monter forsigtigt lysdioderne og bøj ledningerne, så toppen af hver LED er placeret, så den kommer til at stikke op gennem sit respektive hul. Dette kan være udfordrende, men det ser virkelig godt ud, når det endelig fungerer. Hvis ledningerne efterlades for lange, kan lysdioderne blive klemt ned og ude af position af låget på dåsen. Bemærk Lysdioden til højre er ikke i samme retning som de andre otte. Sørg for at kontrollere LED'ernes polaritet i forhold til tavlens layout, når du installerer dem. Denne LED er fastgjort til RESET -stiften, så du kan vælge ikke at installere den. Bemærk Ledningerne til lydstikket og modstandene deler et hul. For nemheds skyld anbringes modstandene lodret på en sådan måde, at modstandens krop ikke er over hullet med lydkablet. Enten forbered og installer lydstikket på dette tidspunkt, eller vent, indtil det er klar til at lodde modstandene. Det er ikke sjovt at aflodde modstandene senere.

Trin 9: Blinkenlights

Blinkenlights
Blinkenlights

Lysdioderne skal beskyttes af modstande. Bestem spændingsfaldet og strømkravene til dine lysdioder og beregne de passende modstande under forudsætning af en 5V kilde fra chippen. Der er let tilgængelige online lommeregnere til at gøre dette. Lav dig selv en flok blinkenlights. Når du gør dem til dette projekt, skal du skære katoden (negativ/kort ledning af LED'en ved den flade side) og lodde modstanden meget tæt på LED'ens linse. Lysdioderne danner en menorahform i dåsen. Selvom modstanden næsten rører ved linsen, bliver den korteste lysdiode i midten lidt klemt af dåsens låg. For at forhindre, at der opstår shorts i blikens stramme grænser, skal du dække hver modstand med et stykke varmekrympeslange.

Trin 10: Forberedelse af batteriholderen

Klargøring af batteriholderen
Klargøring af batteriholderen

Skub små stykker varmekrympeslange langs begge ledninger på batteriholderen. Skub dem forsigtigt ind i hullerne på holderen, og krym på plads. Disse giver en vis grad af beskyttelse for ledningerne. (Denne vejledning er duplikeret på siden Klargøring af skiftekontakten.) Skær den sorte ledning i længden og loddet i det relevante hul på printkortet. Den røde ledning loddes direkte til vippekontakten; Se instruktionerne på siden for at se, hvordan du fortsætter. I tidligere projekter har jeg skåret holderne af batteriholderen af. Efter at have gjort dette på prototypen, fortryder jeg det nu. Batteriet vil ikke blive stramt på plads. Lad fanerne starte og fjern dem kun, hvis du har problemer med at få batteriet ud. På trods af at det er sagt, viser billedet en batteriholder med fanerne afskåret. Dette er fordi jeg har fjernet det fra et andet projekt.

Trin 11: Forberedelse af vippekontakten

Forberedelse af vippekontakten
Forberedelse af vippekontakten

Afhængigt af din switch skal du muligvis klippe en af stifterne af. Jeg gør dette med de kontakter, jeg bruger, selvom det måske ikke er helt nødvendigt. Skub et lille stykke varmekrympeslange langs den røde ledning på batteriholderen. Skub den forsigtigt ind i hullet på holderen, og krym den på plads. Det giver en vis grad af beskyttelse til ledningen. (Denne vejledning kopierer instruktionen i Forberedelse af batteriholderen.) Skub endnu et lille stykke varmekrympeslange ind på den røde ledning. Klip og fjern tråden i længden, og påfør lidt loddetæt på både stiften på kontakten og enden af tråden. Lod den røde ledning fra batteriholderen direkte til kontaktens ydre pin. Skub stykket varmekrympeslange over leddet for at beskytte og styrke det. Den anden ledning går fra switchens midterste pin til printkortet. Lod ledningen til kontakten som beskrevet ovenfor. Beskyt leddet med krympeslange. Lod den anden ende til det relevante hul på printet.

Trin 12: Forberedelse af lydstikket

Klargøring af lydstikket
Klargøring af lydstikket
Klargøring af lydstikket
Klargøring af lydstikket
Klargøring af lydstikket
Klargøring af lydstikket

Ledningerne til lydstikket er alle ganske korte. Påfør lidt loddemetal på stifterne på donkraften og tråden, og lod dem derefter på plads. Skub stykker af varmekrympeslanger over leddene for at beskytte og styrke dem. Jordkablet kan loddes direkte i sit hul. Enderne af signalledningerne deler hver et hul med den ene ende af en modstand. Forbered ledningen og modstanden ved at vride enderne sammen og anvende lidt loddetin. Hullet, som disse går ind i, skal bores til 3/64 for at rumme de to ledninger. Loddes på plads.

Trin 13: Forberedelse af trykknapkontakten

Klargøring af trykknapkontakten
Klargøring af trykknapkontakten
Klargøring af trykknapkontakten
Klargøring af trykknapkontakten
Klargøring af trykknapkontakten
Klargøring af trykknapkontakten

Forbered et kort stykke solid tråd ved at forme den til en U-form, der sidder tæt over bunden af kontakten. Påfør en klat lodde på hver side af hullet - lad plads til kontakten - og placer kontakten på plads. Smelt loddet og skub ledningen på plads. Lad loddetin hærde og gentag på den anden side. Dette skal placere og sikre kontakten på plads. Forbered to stykker strandet ledning ved at skære i længden og fjerne begge ender. Sørg for, at ledningerne er lange nok, så låget på formen kan åbnes helt. Lod til to passende stifter på kontakten, og skub derefter stykker varmekrympeslange hen over leddene for at beskytte og styrke dem. Lod til andre ender i deres respektive huller på brættet. Tråd forsigtigt ledningerne mellem lysdioderne, og sørg for, at de ikke sidder oven på batterierne. Jeg spredte de to ben på kontakten, så den højre LED gled imellem dem. Tappene på kontakten er MEGET skrøbelige (de to andre blev taget af). Bemærk stiften PA7 PCINT7 6 er indstillet til at lytte efter en tilstandsændring. Ved at trykke på trykknappen skubbes stiften højt, og SIGNAL (PCINT0_vect) udføres. Baseret på længden af knappetrykket sker der intet (rådebouncing), tilstanden er avanceret (kort tryk), eller programmet er avanceret (langt tryk).

Trin 14: Lukning af låget

Lukning af låget
Lukning af låget

Hvis alt er godt på dette tidspunkt, vil du gerne lukke dåsen. Når du gør det, skal du være meget forsigtig med placeringen af lysdioderne. Jeg finder ud af, at jeg skal skubbe dem på plads med en tyndskruetrækker, så de er korrekt placeret i deres huller. Tryk lidt nedad på låget, mens du manøvrerer lysdioderne på plads, og de vil til sidst glide på plads. Du skal muligvis placere ledningerne, så de falder mellem og ikke på komponenter. Også stifterne på trykknapkontakten skal muligvis bøjes af vejen.

Anbefalede: