Innehållsförteckning:

Schweizisk AVR -kniv: 14 steg (med bilder)
Schweizisk AVR -kniv: 14 steg (med bilder)

Video: Schweizisk AVR -kniv: 14 steg (med bilder)

Video: Schweizisk AVR -kniv: 14 steg (med bilder)
Video: Слияние рек Рон и Авр Швейцария #shorts 2024, Juli
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 schweiziska AVR -kniven buntar ihop ett antal AVR -programmeringsprojekt i en enda bekväm Altoids Gum Tin. På grund av den flexibilitet som mikrokontrollerprogrammering ger, ger den också en utgångspunkt för ett antal projekt baserade på lysdioder och ljudutmatning. SAK kan innehålla så många program som 8K -minnet tillåter och upprätthåller åtta tillstånd för varje program. Den blå tryckknappen får SAK att bläddra igenom program och tillstånd - en snabb tryckning gör att den stannar i programmet men ändras till nästa tillstånd (hur det än är definierat) och en lång tryckning får det att gå vidare till nästa program. Det aktuella programmet och tillstånd för alla program bevaras i EEPROM mellan användningar.

De projekt som för närvarande genomförs i SAK inkluderar följande. Dessa, tillsammans med all annan kod och konstanter (det finns en fullständig typsnittstabell), tar upp cirka 4K av det tillgängliga utrymmet. Mycket mer utrymme! MiniMenorah - Evil Mad Scientists Brain Machine - Mitch AltmanMiniPOV - Adafruit IndustriesLjudleksaker - Höga föremål LED Running lights LED Candle LED ficklampa Detta projekt skulle inte existera utan den stora generositeten hos alla som bidragit på ett eller annat sätt. Förutom det ovan nämnda vill jag tacka utvecklarna av de mjukvaruverktyg som används (se i andra steg) och alla som har skapat en användbar webbplats som främjar min förståelse av dessa ämnen. Jag kan ta direkt kredit för väldigt lite av koden som används i detta projekt. Om du känner att koden är din kan det mycket väl vara så. Låt mig veta så ger jag dig gärna kredit. Tack i alla fall för ditt bidrag:-)

Steg 1: Delar

Delar kan erhållas från valfritt antal elektroniska leverantörer. På grund av platsbegränsningen krävs de flesta komponenterna enligt vad som anges. Allt passar knappt; se till att ersättningsdelar inte tar upp extra utrymme. Ersätt inte ATtiny84 om du inte är helt säker på att stiften motsvarar. Länkarna efter delarna är till DigiKey och All Electronics. Elektroniska komponenter1 x U1-ATtiny84-ATTINY84-20PU-ND1 x Ux-IC-uttag 14-stifts DIP-A32879-ND9 x LED-ditt val av färg9 x motstånd-matchade till dina lysdioder 2 x R1, R2-100 ohm 1/4W 1% metallfilm-100XBK-ND2 x C7, C8-47uF-P5151-NDMiscellaneousBattery Holder 1-AA 6 "wire leads (1) 2461K-NDPhone jack stereo 3,5 mm (1) MJW-22 Skyddsbrytare SPDT 1/4 "på (1) MTS-4 Tryck på knapp (1) 450-1654-NDMinty Boost SAK drivs av ett enda AA-batteri som förstärks av ett Maxim MAX756 -chip (den väsentliga komponenten i MintyBoost!). Komponenterna nedan är de som behövs för denna del av kretsen. 1 x U1-MAX756CPA DC/DC 3.3/5V DIP-MAX756CPA+-ND1 x Ux-IC-uttag 8-polig DIP-A32878-ND2 x C7, C8 -0.1uF-399-4151-ND2 x C3, C5-100uF-P5152-ND1 x L1-22uH radiell-M9985-ND1 x D1-1N5818 Schottky 1A 30V-1N5818-E3/1GI- ND

Steg 2: ATtiny84 mikrokontroller

ATtiny84 mikrokontroller
ATtiny84 mikrokontroller

Många projekt använder antingen ATtiny2313 20-pin eller ATtiny85 8-pin microcontroller. Jag tyckte att ATtiny2313 var för stor (för höljet) och ATtiny85 för liten (inte tillräckligt med minne, inte tillräckligt med utgångsstiften). ATtiny84 är precis rätt:-) ATtiny84 har 8K programmerbart flashminne (tillräckligt för att rymma många små program), 512K EEPROM (för lagring av tillstånd mellan användningar), upp till 12 utgångsstift (för de 9 lysdioderna, 2 kanaler ljudutmatning och en tryckknappsbrytare) och många andra godsaker som inte används i detta projekt. Om du planerar att lägga till program, skaffa en kopia av ATtiny84 -databladet. Det finns många instruktionsguider för att lära sig att programmera denna familj av mikrokontroller på Internet. För en användbar sammanfattning av mikrokontroller, se Så här väljer du en mikrokontroller. Obs! Projektet som beskrivs här har faktiskt inte MiniMenorah fullt aktiverat. MM kräver nio utgångsstiften, hjärnmaskinen två och knappen för att ändra tillstånd ett, totalt tolv. Även om ATtiny84 kan konfigureras för att ha tolv utgångsstiften, är det på bekostnad av RESET -stiftet. Att inaktivera RESET-stiftet och göra det till I/O gör att ATtiny84 inte kan programmeras med USBtinyISP-progamern (som inte har gjort det:-) och kräver högspänningsprogrammering. Allt är på plats för att aktivera MM, men en annan programmerare krävs, och jag har inte en.

Steg 3: AVR -programmeringsverktyg

AVR -programmeringsverktyg
AVR -programmeringsverktyg
AVR -programmeringsverktyg
AVR -programmeringsverktyg

En hel del komponenter, både hårdvara och programvara, är nödvändiga för att programmera AVR -mikrokontroller. Nedan finns de verktyg jag använder. Många, många andra finns i samma prisklass - gratis till billig. Hitta en uppsättning som fungerar för dig och håll dig till dem. Ännu bättre, hitta en vän som har utarbetat ett system och använd hans/hennes verktyg. Ingenting är särskilt svårt om allt går som annonserat, men att få alla verktyg att fungera tillsammans kan vara en verklig utmaning. De långa stiften på wirewrap -chiphållaren sträcker sig ner till en brödbräda och ger en bekväm experimentell installation. Det enda problemet jag har stött på är att komponenterna från programmeringsstiftarna inte kan jordas under programmeringen. Jag har tagit två metoder för att lösa detta problem. Den första är att ha två chip-hållare, en för programmering och en för körning (se 8-polig vagga). Detta är inte idealiskt eftersom det gör mycket av brödbrädan oanvändbart och det är ganska irriterande att flytta chipet. Den andra är att installera en liten strömbrytare för att koppla bort stiftet från marken på brödbrädet under programmeringen. Detta fungerar bättre och ger mer utrymme på brödbrädan för komponenter. ProgrammerUSBtinyISP -kit från Adafruit Industries. Med lite modifiering (ta bort den 10-poliga kabeln och böj lysdioderna) passar programmeraren i en Altoids Gum Tin. Den 6-poliga kabeln kan till och med lindas upp i burken för lagring. SoftwareWinAVR är en samling verktyg för utveckling av programvara för öppen källkod för programmering av AVR-mikrokontroller på Windows-maskiner. Det fungerar bra med USBtinyISP -programmeraren (se AVR -självstudien). Jag bytte nyligen från att använda programmerarens anteckningsblock -applikation som medföljer WinAVR till att använda Eclipse med AVR Eclipse -plugin. Eclipse kan använda avrdude, så du måste installera WinAVR ändå. Eclipse har bättre projektledning, användbara handledning och är gratis. Det tog bara några minuter att installera det, arbeta igenom en självstudie och programmera ett chip. Ring en vän Det finns massor av resurser på Internet. Leta efter dem, be om hjälp. Människor kan vara kunniga och hjälpsamma. Det är trevligt:-) De kan också vara avvisande. Det är inte snällt:-(

Steg 4: Programmering av mikrokontrollern

Programmering av mikrokontroller
Programmering av mikrokontroller

C -kod Kritisera inte det jag inte förstår. Jag är inte en programmerare, C är inte mitt modersmål, och jag håller fast vid en Java-tunn tråd och mycket webbsökning när jag arbetar i C. Även om mycket av koden kom från andra projekt (se poäng), Jag var tvungen att göra några tillägg och modifieringar. Källkoden för den schweiziska AVR -kniven bifogas nedan både som en c -källfil och en hex -fil. Jag skulle uppskatta att höra var koden kan förbättras. Det finns några ändringar som jag räknar med att göra i koden. Uppdateringar kommer. Under tiden fungerar koden som annonserad. Säkringar Mikrocontroller -säkringar är förvirrande. Jag har inaktiverat några mikrokontroller både genom att av misstag ställa in dem att leta efter en extern oscillator och genom att inaktivera RESET -stiftet. De kan återställas, men tills dess är de bara döda buggar. Var försiktig om du väljer att byta säkringar. För att beräkna de korrekta säkringsvärdena, använd en online -säkringskalkylator. Välj måldelen (ATtiny84) och lämpliga inställningar - intern RC -oscillator som körs på 8MHz (standardvärde), DELA INTE klockan med 8 internt, aktivera nedladdning av seriellt program och inaktivera brownout -detektering. Resultatet ska bli följande. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (låg 0xE2 hög 0xDF ext 0xFF). Du behöver bara bränna säkringarna en gång (om du inte planerar att byta dem). Eclipse gör det enkelt, som jag är säker på att göra andra IDEs. Frågor som jag skulle vilja ha svar på. Alla idéer om optimering av koden Varför orsakar de blinkande lamporna i ljud- och ljusmaskinen en oscillation i ton när den är aktiverad i tennet men inte på brödbrädan? Varför gillar inte Eclipse funktionerna lightOn och lightOff, även om de verkar fungera?

Steg 5: Breadboarding av projektet

Breadboarding projektet
Breadboarding projektet
Breadboarding projektet
Breadboarding projektet

Eftersom så mycket av arbetet i detta projekt utförs av mikrokontrollern finns det väldigt få externa delar. Efter att ha kontrollerat att din programmerare och verktygskedjan är i ordning skulle det vara en bra idé att panera kretsen och se till att allt fungerar som annonserat. Bilderna nedan är förstörda versioner av den faktiska panelen jag hade satt upp. Jag använde lysdioderna i modellen tenn och pried ut vagga och chip för att använda i flera fotografier. Den övergripande ledningen ansluter i princip aktiva stift till några delar och sedan vidare till marken. Observera Stiftens och lysdiodernas ordning är inte densamma på brödbrädan och kretskortet (även om jag antar att du kan göra dem desamma). I koden ser du bitar av kod som antingen måste aktiveras eller kommenteras beroende på om målet är brödbrädan eller kretskortet.

Steg 6: Förbereda Altoids Gum Tin

Bilder på vägen Släta ut botten. Botten av tennet böjer sig upp och in. Det måste plattas ut så att batteriet och kretskortet passar och sitter jämnt. Var försiktig så att du inte förvränger tennet, tryck ut botten tills den är i princip platt. Tennet behöver tre uppsättningar hål. Jag använder en metallstans för att markera hålplatserna och bradpunktsbitar (för trä) för att borra hålen. Bradpunktsbitarna har en mittpunkt och två skär. De kommer inte att åka skridskor och kanterna skär långsamt genom metallen. Brad -punktbitar är tillgängliga från Lee Valley (bland annat). Den första är en uppsättning med nio 5 mm hål över toppen av tennet för lysdioderna. Metriska bradpunktsbitar finns tillgängliga och de gör rena och täta hål för lysdioderna. Skapa en pappersmall med hålen markerade och överför märkena till formen. För att förhindra att du trycker in plåtens ovansida, stöd den inre delen av locket på ett litet träblock när du stansar och borrar toppen. Med papperet och träet på plats gör jag gropen med hjälp av stansen. Vid borrning, gå långsamt först. Skärkanterna på bradpunkterna ska göra en jämn cirkel. Borra med biten allt annat än vinkelrät mot ytan kan resultera i att biten tar tag i och sliter i metallen. 5 mm bradpunkt gör ett fint rent hål, men jag upptäckte att jag var tvungen att vidga den något. Jag gjorde detta genom att borra inifrån med en vanlig 13/64 "bit. Den andra uppsättningen består av två 1/4" hål på höger sida av plåten för omkopplaren och ljuduttaget. På grund av den täta krökning i tennens ände måste dessa hål vara ganska nära. Se till att placera dem så att komponenterna passar i formen. Centrera dem vertikalt på den del av sidan som syns när locket är stängt. Markera med stans och borra mycket noga. Varningen om bitarna tar tag i tennet gäller starkare med de större bitarna. Det sista hålet är för tryckknappsbrytaren. Placera hålet mot botten till höger så att tryckknappen inte stör de andra komponenterna i burken.

Steg 7: Design och tillverkning av kretskortet

Design och tillverkning av kretskortet
Design och tillverkning av kretskortet
Design och tillverkning av kretskortet
Design och tillverkning av kretskortet
Design och tillverkning av kretskortet
Design och tillverkning av kretskortet

Det finns många resurser på Internet som beskriver processen för att skapa PCB. Ingen av metoderna är idiotsäker eller enkel, men det är viktigt att bli bekväm med minst en. Jag använder freeware -versionen av EAGLE Layout Editor från CadSoft för att skapa schemat och layout kretskortet. Mitt tillvägagångssätt för tillverkning av kretskortet beskrivs i steget Att göra och förbereda kretskortet i Altoids Tin Speaker instruerbart. Efter överföring, etsning och borrning av brädet är du redo att lödda ihop allt. kretskort är följande. Tvätta brädan väl med diskmedel och skrubba den med en grön skrubb. Slipa försiktigt bort alla grader från brädans kanter så att överföringspappret och järnet får god kontakt med brädet. Förvärm järnet. Lägg ett papper på brädet och värm brädet med strykjärnet. När brädet är ganska varmt, lägg försiktigt det förberedda överföringspapperet på brädet. Det kommer att fastna direkt (eftersom kortet är varmt) så se till att det är korrekt placerat. Stryk sedan direkt på transferpapprets glänsande baksida. Detta orsakade mig aldrig några problem, men du använder ditt eget järn. Testa först. Låt brädan svalna och kör den sedan under kallt vatten. Överföringspappret ska dyka upp och lämna hela bilden. Använd en 8x diabild/negativ tittare för att se över överföringen och fyll i alla saknade bitar. Lycka till.

Steg 8: Löddelar till kretskort

Löddelar till kretskort
Löddelar till kretskort
Löddelar till kretskort
Löddelar till kretskort
Löddelar till kretskort
Löddelar till kretskort

Det finns många resurser på Internet som beskriver processen för lödning av elektroniska komponenter till kretskort. Se till exempel lödguiden på ladyada.net. I vilken ordning du installerar komponenter spelar ingen roll, även om jag har tyckt att arbeta från minsta till största är det enklaste. LED/blinkenlight-ledningarna är tillräckligt långa så att du kan forma dem till ett menoraliknande mönster i burken. Montera försiktigt lysdioderna och böj ledningarna så att toppen på varje lysdiod placeras så att den kommer att sticka upp genom sitt respektive hål. Detta kan vara utmanande men det ser riktigt trevligt ut när det äntligen löser sig. Om ledningarna lämnas för långa kan lysdioderna pressas ner och ur position genom locket på plåten. Obs Lysdioden längst till höger är inte i samma riktning som de andra åtta. Se till att du kontrollerar lysdiodernas polaritet mot kortets layout när du installerar dem. Denna lysdiod är ansluten till RESET -stiftet, så du kan välja att inte installera den. Observera Ledningarna till ljuduttaget och motstånden delar ett hål. För enkelhets skull, sätt motstånden i upprätt läge så att motståndets kropp inte är över hålet med ljudkabeln. Antingen förbereda och installera ljuduttaget vid denna tidpunkt eller vänta tills det är klart att lödas i motstånden. Det är inte roligt att avlödda motstånden senare.

Steg 9: Blinkenlights

Blinkljus
Blinkljus

Lysdioderna måste skyddas av motstånd. Bestäm spänningsfallet och strömkraven för dina lysdioder och beräkna lämpliga motstånd med en 5V -källa från chipet. Det finns lätt tillgängliga onlinekalkylatorer för att göra detta. Gör dig själv ett gäng blinklampor. När du gör dem för detta projekt, skär katoden (negativ/kort ledning av lysdioden vid den platta sidan) och löd motståndet mycket nära linsen på lysdioden. Lysdioderna bildar en menorahform i formen. Även om motståndet nästan vidrör linsen, kommer den kortaste lysdioden i mitten att klämmas något av lockets lock. För att förhindra att shorts uppstår i tennens täta gränser, täck varje motstånd med en bit värmekrympslang.

Steg 10: Förbereda batterihållaren

Förbereda batterihållaren
Förbereda batterihållaren

Skjut små bitar av värmekrympslang längs båda hållarna på batterihållaren. Skjut dem försiktigt in i hålen på hållaren och krympa på plats. Dessa ger en viss grad av skydd för trådarna. (Denna instruktion dupliceras på sidan Förbereda växelströmställaren.) Klipp den svarta tråden i längd och löd in i lämpligt hål på kretskortet. Den röda tråden löds direkt till omkopplaren; Se instruktionerna på den sidan för hur du går tillväga. I tidigare projekt har jag klippt bort flikarna på batterihållaren. Efter att ha gjort detta på prototypen ångrar jag det nu. Batteriet vill inte sitta tätt på plats. Låt flikarna starta och ta bort dem bara om du har problem med att få ur batteriet. Trots att man säger detta visar bilden en batterihållare med flikarna avskurna. Detta beror på att jag tog bort det från ett annat projekt.

Steg 11: Förbered omkopplaren

Förbereder omkopplaren
Förbereder omkopplaren

Beroende på din omkopplare kan du behöva klippa av en av stiften. Jag gör detta med de strömbrytare jag använder även om det kanske inte är helt nödvändigt. Skjut en liten bit av värmekrympslang längs batteriets hållares röda ledning. Skjut den försiktigt in i hålet på hållaren och krympa på plats. Det ger en viss grad av skydd för tråden. (Denna instruktion duplicerar instruktionen i Förbereda batterihållaren.) Skjut ytterligare en liten bit av värmekrympslang på den röda tråden. Klipp och ta bort tråden i längd och applicera lite lod på både stiftet på strömbrytaren och trådänden. Löd den röda ledningen från batterihållaren direkt till brytarens ytterstift. Skjut biten av värmekrympslangen över fogen för att skydda och stärka den. Den andra ledningen går från omkopplarens mittstift till kretskortet. Löd kabeln till omkopplaren enligt beskrivningen ovan. Skydda fogen med krympslang. Löd den andra änden till lämpligt hål på kretskortet.

Steg 12: Förbereda ljuduttaget

Förbereda ljuduttaget
Förbereda ljuduttaget
Förbereda ljuduttaget
Förbereda ljuduttaget
Förbereda ljuduttaget
Förbereda ljuduttaget

Ledningarna till ljuduttaget är alla ganska korta. Applicera lite lödning på stiften på domkraften och tråden och löd dem sedan på plats. Skjut bitar av värmekrympslang över lederna för att skydda och stärka dem. Jordtråden kan lödas direkt i sitt hål. Ändarna på signaltrådarna delar vardera ett hål med ena änden av ett motstånd. Förbered tråden och motståndet genom att vrida ihop ändarna och applicera lite löd. Hålet i vilket dessa går bör borras till 3/64 för att rymma de två trådarna. Löd på plats.

Steg 13: Förbered tryckknappsbrytaren

Förbereda tryckknappsbrytaren
Förbereda tryckknappsbrytaren
Förbereda tryckknappen
Förbereda tryckknappen
Förbereda tryckknappsbrytaren
Förbereda tryckknappsbrytaren

Förbered en kort bit fast tråd genom att forma den till en U-form som passar tätt över brytarens botten. Applicera en klick lödning på vardera sidan av hålet - lämna plats för omkopplaren - och placera omkopplaren på plats. Smält lödet och skjut tråden på plats. Låt lödet härda och upprepa på andra sidan. Detta bör placera och säkra omkopplaren på plats. Förbered två bitar av trådad tråd genom att klippa till längden och ta bort båda ändarna. Se till att trådarna är tillräckligt långa så att lockets lock kan öppnas helt. Löd till två lämpliga stift på strömbrytaren och skjut sedan bitar av värmekrympslang över lederna för att skydda och stärka dem. Löd till andra ändarna i respektive hål på brädet. Dra försiktigt trådarna mellan lysdioderna och se till att de inte sitter ovanpå batterierna. Jag sprider de två stiften på strömbrytaren så att den högra lysdioden gled mellan dem. Stiften på strömbrytaren är MYCKET ömtåliga (de andra två knäppte av). Observera att stiftet PA7 PCINT7 6 är inställt för att lyssna efter en förändring av tillståndet. Genom att trycka på tryckknappen dras tappen högt och SIGNAL (PCINT0_vect) körs. Baserat på knapptryckningens längd händer antingen ingenting (rådebouncing), tillståndet avanceras (kort tryckning) eller programmet avanceras (långt tryck).

Steg 14: Stäng locket

Stäng locket
Stäng locket

Om allt är bra vid denna tidpunkt kommer du att vilja stänga burken. När du gör det måste du vara mycket försiktig med placeringen av lysdioderna. Jag tycker att jag måste knuffa dem på plats med en tunnbladig skruvmejsel så att de är korrekt placerade i sina hål. Tryck lite nedåt på locket när du manövrerar lysdioderna på plats så glider de så småningom på plats. Du kan behöva placera trådarna så att de faller mellan och inte på komponenter. Knapparna på tryckknappsbrytaren kan också behöva böjas ur vägen.

Rekommenderad: