Obsah:

Švýcarský nůž AVR: 14 kroků (s obrázky)
Švýcarský nůž AVR: 14 kroků (s obrázky)

Video: Švýcarský nůž AVR: 14 kroků (s obrázky)

Video: Švýcarský nůž AVR: 14 kroků (s obrázky)
Video: Hilti - Delší životnost, nižší náklady 2024, Červenec
Anonim
Švýcarský nůž AVR
Švýcarský nůž AVR
Švýcarský nůž AVR
Švýcarský nůž AVR
Švýcarský nůž AVR
Švýcarský nůž AVR
Švýcarský nůž AVR
Švýcarský nůž AVR

Švýcarský nůž AVR spojuje řadu programovacích projektů AVR dohromady do jednoho praktického Altoids Gum Tin. Vzhledem k flexibilitě, kterou poskytuje programování mikrokontrolérů, poskytuje také výchozí bod pro libovolný počet projektů na základě LED a zvukového výstupu. SAK může obsahovat tolik programů, kolik dovoluje 8 kB paměti a pro každý program udržuje osm stavů. Modré tlačítko způsobí, že SAK bude procházet programy a stavy - rychlé stisknutí způsobí, že zůstane v programu, ale změní se na další stav (jakkoli je definován) a dlouhé stisknutí způsobí přechod na další program. Aktuální program a stavy pro všechny programy jsou mezi použitími zachovány v EEPROM.

Mezi projekty aktuálně implementované v SAK patří následující. Ty spolu se všemi ostatními kódy a konstantami (existuje plná tabulka písem) zabírají asi 4K dostupného místa. Mnohem více prostoru! MiniMenorah - Evil Mad Scientists Brain Machine - Mitch AltmanMiniPOV - Adafruit IndustriesNoise Toy - Hlasité objekty LED Svítící LED Svítilna LED Svítilna Tento projekt by neexistoval bez značné štědrosti každého, kdo přispěl tak či onak. Kromě výše uvedeného bych chtěl poděkovat vývojářům použitých softwarových nástrojů (viz další kroky) a každému, kdo vytvořil užitečný web, který mi pomohl porozumět těmto tématům. Mohu si vzít přímý kredit za velmi málo kódu použitého v tomto projektu. Pokud máte pocit, že kód je váš, může být. Dejte mi vědět a já vám rád poskytnu kredit. V každém případě děkuji za příspěvek:-)

Krok 1: Díly

Díly lze získat od kteréhokoli z řady elektronických dodavatelů. Z důvodu omezeného prostoru je většina součástí vyžadována, jak je uvedeno. Všechno jen stěží sedí; ujistěte se, že žádné náhradní díly nezabírají další místo. Nenahrazujte ATtiny84, pokud si nejste zcela jisti, že kolíky odpovídají. Odkazy následující za díly jsou na DigiKey a All Electronics. Elektronické komponenty 1 x U1-ATtiny84-ATTINY84-20PU-ND1 x Ux-zásuvka IC 14-pin DIP-A32879-ND9 x LED-výběr barvy rezistory-přizpůsobené vašim LED diodám 2 x R1, R2-100 ohm 1/4W 1% kovová fólie-100XBK-ND2 x C7, C8-47uF-P5151-ND Různé Držák baterie 1-AA 6 "drátové vývody) 2461K-NDPhone jack stereo 3,5 mm (1) MJW-22 Přepínač SPDT 1/4 "zapnuto-zapnuto (1) MTS-4Tlačítkový spínač (1) 450-1654-NDMinty Boost SAK je napájen jednou baterií AA čip Maxim MAX756 (základní součást MintyBoost!). Níže uvedené součásti jsou potřebné pro tuto část obvodu. 1 x U1-MAX756CPA DC/DC 3,3/5V DIP-MAX756CPA+-ND1 x Ux-zásuvka IC 8pinová DIP-A32878-ND2 x C7, C8 -0,1uF-399-4151-ND2 x C3, C5-100uF-P5152-ND1 x L1-22uH radiální-M9985-ND1 x D1-1N5818 Schottky 1A 30V-1N5818-E3/1GI- ND

Krok 2: Mikrokontrolér ATtiny84

Mikrokontrolér ATtiny84
Mikrokontrolér ATtiny84

Mnoho projektů používá buď 20kolíkový ATtiny2313 nebo 8pinový mikrokontrolér ATtiny85. ATtiny2313 mi připadal příliš velký (pro kryt) a ATtiny85 příliš malý (nedostatek paměti, nedostatek výstupních pinů). ATtiny84 je tak akorát:-) ATtiny84 má 8K programovatelné flash paměti (dost pro uložení spousty malých programů), 512K EEPROM (pro ukládání stavu mezi použitími), až 12 výstupních pinů (pro 9 LED, 2 kanály zvukového výstupu a přepínače) a spousty dalších vychytávek, které se v tomto projektu nepoužívají. Pokud plánujete přidání programů, získejte kopii datového listu ATtiny84. Existuje mnoho návodů, jak se naučit programovat tuto rodinu mikrokontrolérů na internetu. Užitečné shrnutí mikrokontrolérů najdete v části Jak vybrat mikrokontrolér. Poznámka: Zde popsaný projekt ve skutečnosti nemá MiniMenorah plně povolený. MM vyžaduje devět výstupních pinů, Brain Machine dva a tlačítko pro změnu stavu jeden, celkem dvanáct. Zatímco ATtiny84 lze nakonfigurovat tak, aby měl dvanáct výstupních pinů, je to na úkor kolíku RESET. Pokud deaktivujete pin RESET a nastavíte jej na I/O, nebude možné ATtiny84 naprogramovat pomocí progammeru USBtinyISP (kdo to neudělal:-) a vyžaduje programování vysokého napětí. Všechno je na svém místě, aby bylo možné MM povolit, ale je vyžadován jiný programátor a ten nemám.

Krok 3: Programovací nástroje AVR

Programovací nástroje AVR
Programovací nástroje AVR
Programovací nástroje AVR
Programovací nástroje AVR

K programování mikrokontrolérů AVR je zapotřebí poměrně málo hardwarových i softwarových komponent. Níže jsou nástroje, které používám. Mnoho, mnoho dalších existuje ve stejném cenovém rozpětí - zdarma až levně. Najděte si sadu, která vám vyhovuje, a držte se jí. Ještě lépe, najděte si přítele, který vypracoval systém a používá jeho nástroje. Není nic zvlášť těžkého, pokud vše půjde tak, jak je inzerováno, ale spolupráce všech nástrojů může být skutečnou výzvou. Dlouhé kolíky držáku čipu wirewrap zasahují dolů na prkénko a umožňují pohodlné experimentální nastavení. Jediným problémem, se kterým jsem se setkal, je to, že součásti z programovacích kolíků nelze během programování uzemnit. K vyřešení tohoto problému jsem použil dva přístupy. První je mít dva držáky čipů, jeden pro programování a jeden pro běh (viz 8kolíková kolébka). To není ideální, protože to činí část prkénka nepoužitelnou a pohyb čipu je docela nepříjemný. Druhým je instalace malého přepínače pro odpojení zemnicího kolíku od země nepájivého pole během programování. To funguje lépe a ponechává více místa na prkénku pro komponenty. Sada ProgrammerUSBtinyISP od Adafruit Industries. S malou úpravou (vyjměte 10kolíkový kabel a ohněte LED diody) se programátor vejde do Altoids Gum Tin. 6pinový kabel lze dokonce stočit do cínu pro uložení. SoftwareWinAVR je sbírka nástrojů pro vývoj softwaru s otevřeným zdrojovým kódem pro programování mikrokontrolérů AVR na počítačích se systémem Windows. Funguje dobře s programátorem USBtinyISP (viz návod AVR). Nedávno jsem přešel z používání aplikace Programmer's Notepad, která je součástí WinAVR, na používání Eclipse s AVR Eclipse Plugin. Eclipse může používat avrdude, takže WinAVR budete muset nainstalovat tak jako tak. Eclipse má lepší správu projektů, užitečné návody a je zdarma. Jeho instalace, zpracování tutoriálu a naprogramování čipu trvalo jen několik minut. Telefonovat příteli Na internetu je spousta zdrojů. Vyhledejte je, požádejte o pomoc. Lidé mohou být informovaní a nápomocní. To je hezké:-) Mohou být také odmítavé. To není pěkné:-(

Krok 4: Programování mikrokontroléru

Programování mikrokontroléru
Programování mikrokontroléru

Kód C Nekritizujte to, čemu nerozumím. Nejsem programátor, C není můj rodný jazyk a při práci v jazyce C se držím tenkého vlákna Java a spousty webového vyhledávání. Přestože velká část kódu pochází z jiných projektů (viz kredity), Musel jsem udělat nějaké doplňky a úpravy. Zdrojový kód švýcarského nože AVR je připojen níže jako zdrojový soubor c i hexadecimální soubor. Ocenil bych slyšení, kde by se kód mohl zlepšit. Existuje několik změn, které v kódu očekávám. Aktualizace se blíží. Do té doby kód funguje tak, jak je inzerováno. Pojistky Pojistky mikrokontroléru jsou matoucí. Zakázal jsem několik mikrokontrolérů jak omylem, tak, že jsem je hledal pro externí oscilátor, a deaktivací kolíku RESET. Lze je obnovit, ale do té doby jsou to jen mrtvé brouky. Buďte opatrní, pokud se rozhodnete vyměnit pojistky. Chcete -li vypočítat správné hodnoty pojistek, použijte online kalkulačku pojistek. Vyberte cílovou část (ATtiny84) a příslušná nastavení - interní RC oscilátor běžící na 8MHz (výchozí hodnota), NEDĚLEJTE hodiny interně o 8, povolte stahování sériového programu a deaktivujte detekci Brownout. Výsledek by měl být následující. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (low 0xE2 high 0xDF ext 0xFF). Pojistky musíte spálit pouze jednou (pokud je neplánujete vyměnit). Eclipse to usnadňuje, protože jsem si jist, že dělám jiné IDE. Otázky, které bych rád zodpověděl Jakékoli nápady na optimalizaci kódu Proč blikající světla ve zvukovém a světelném stroji způsobují oscilaci tónu, když jsou povoleny v cínu, ale ne na prkénku? Proč Eclipse nemá rád funkce lightOn a lightOff, přestože se zdá, že fungují?

Krok 5: Breadboarding projektu

Breadboarding projektu
Breadboarding projektu
Breadboarding projektu
Breadboarding projektu

Protože většinu práce tohoto projektu vykonává mikrokontrolér, existuje jen velmi málo vnějších částí. Poté, co zkontrolujete, zda je váš programátor a řetězec nástrojů v pořádku, by bylo vhodné zapojit obvod a ujistit se, že vše funguje tak, jak je inzerováno. Níže uvedené obrázky jsou zpackané verze skutečného prkénka, které jsem nastavil. Použil jsem LED diody v modelovém plechu a vypáčil kolébku a čip pro použití na několika fotografiích. Celkové zapojení v podstatě spojuje aktivní piny s několika částmi a poté se uzemní. Poznámka Pořadí kolíků a LED diod není na prkénku a desce plošných spojů stejné (i když předpokládám, že byste je mohli udělat stejné). V kódu uvidíte části kódu, které je třeba buď povolit, nebo okomentovat v závislosti na tom, zda je cílem prkénko nebo deska plošných spojů.

Krok 6: Příprava altoidové gumové cínu

Obrázky na cestě Zarovnat dno. Spodní část cínu se zakřivuje nahoru a dovnitř. Je třeba ji zploštit, aby baterie a deska plošných spojů seděly a seděly rovnoměrně. Dávejte pozor, abyste plechovku nezkreslili, vytlačte spodní část, dokud nebude v podstatě rovná. Cín potřebuje tři sady otvorů. Pomocí kovového děrovače označím umístění otvorů a vrtáky vyvrtám otvory (pro dřevo). Bity hrotu brad mají středový bod a dvě řezné hrany. Nebudou bruslit a hrany pomalu prořezávají kov. Bity Brad point jsou k dispozici v Lee Valley (mimo jiné). První je sada devíti 5mm otvorů v horní části plechu pro LED diody. K dispozici jsou metrické hroty brad point, které vytvářejí čisté a pohodlné otvory pro LED diody. Vytvořte papírovou šablonu s vyznačenými otvory a přeneste značky na horní část plechu. Abyste zabránili zatlačení horní části plechu dovnitř, při děrování a vrtání podložte vnitřní část víka malým dřevěným blokem. Když je papír a dřevo na svém místě, děruji plech pomocí razníku. Při vrtání jděte nejprve pomalu. Řezné hrany bradových bodů by měly tvořit rovnoměrný kruh. Vrtání s bitem čehokoli jiného než kolmo k povrchu může mít za následek, že vrták uchopí a roztrhne kov. 5 mm hrot brady vytvoří pěknou čistou díru, ale zjistil jsem, že jsem ji musel někdy tak trochu rozšířit. Udělal jsem to vyvrtáním zevnitř běžným 13/64 "bitem. Druhá sada se skládá ze dvou 1/4" otvorů na pravé straně plechu pro vypínač a audio jack. Vzhledem k těsnému zakřivení na konci plechu musí být tyto otvory poměrně blízko. Nezapomeňte je rozmístit tak, aby se součásti vešly do plechu. Vycentrujte je svisle na část strany viditelné při zavřeném víku. Označte razníkem a velmi opatrně vrtejte. Opatrnost ohledně bitů po uchopení plechovky platí silněji u větších bitů. Poslední otvor je pro tlačítkový spínač. Umístěte otvor směrem dolů vpravo takovým způsobem, aby tlačítko nepřekáželo ostatním součástem v plechu.

Krok 7: Navrhování a výroba DPS

Navrhování a výroba DPS
Navrhování a výroba DPS
Navrhování a výroba DPS
Navrhování a výroba DPS
Navrhování a výroba DPS
Navrhování a výroba DPS

Na internetu je mnoho zdrojů, které popisují proces vytváření desek plošných spojů. Žádná z těchto metod není spolehlivá ani snadná, ale je důležité, abyste si alespoň s jednou zvykli. K vytvoření schématu a rozložení desky s plošnými spoji používám freewarovou verzi EAGLE Layout Editor od CadSoft. Můj přístup k výrobě desek plošných spojů je popsán v kroku Výroba a příprava desky plošných spojů v pokynu Altoids Tin Speaker. Po přenosu, leptání a vyvrtání desky jste připraveni vše pájet dohromady. Poznámka Moje nejnovější zkušenosti s přenosem obrázků do obvodové desky jsou následující. Desku dobře omyjte mýdlem na nádobí a vydrhněte zeleným drhnutím. Jemně zbrouste všechny otřepy z okrajů desky, aby přenosový papír a žehlička byly v dobrém kontaktu s deskou. Předehřejte žehličku. Na desku položte papír a desku zahřejte žehličkou. Poté, co je deska docela horká, opatrně položte na desku připravený přenosový papír. Bude se lepit hned (protože deska je horká), takže se ujistěte, že je správně umístěna. Poté vyžehlete přímo na lesklou zadní stranu přenosového papíru. Nikdy mi to nedělalo potíže, ale používáte vlastní žehličku. Nejprve otestujte. Nechte desku vychladnout a poté ji spusťte pod studenou vodou. Přenosový papír by měl vyskočit a zanechat celý obrázek. Pomocí 8x prohlížeče diapozitivů/negativů se podívejte na přenos a doplňte chybějící kousky. Hodně štěstí.

Krok 8: Pájení dílů na desku plošných spojů

Pájení dílů na DPS
Pájení dílů na DPS
Pájení dílů na DPS
Pájení dílů na DPS
Pájení dílů na DPS
Pájení dílů na DPS

Na internetu je mnoho zdrojů, které popisují proces pájení elektronických součástek na desky plošných spojů. Podívejte se například na návod k pájení na ladyada.net. Na pořadí, ve kterém instalujete komponenty, nezáleží, i když jsem našel práci od nejmenšího po největší nejjednodušší. LED/blinkenlight svody jsou dostatečně dlouhé, takže je můžete v cínu vytvarovat do podoby menory. Pečlivě nasaďte diody LED a ohněte vodiče tak, aby byla horní část každé diody LED umístěna tak, aby vyčnívala přes příslušný otvor. To může být náročné, ale vypadá to opravdu hezky, když to konečně vyjde. Pokud jsou svody ponechány příliš dlouhé, LED diody mohou být stlačeny dolů a mimo polohu víkem cínu. Poznámka Pravá LED dioda nemá stejnou orientaci jako ostatních osm. Při instalaci nezapomeňte zkontrolovat polaritu LED vůči rozložení desky. Tato dioda LED je připojena ke kolíku RESET, takže se můžete rozhodnout jej neinstalovat. Poznámka Vodiče ke konektoru zvuku a odpory sdílejí otvor. Pro větší pohodlí umístěte odpory do svislé polohy tak, aby tělo rezistoru nebylo přes otvor se zvukovým vodičem. V tomto okamžiku buď připravte a nainstalujte zvukový konektor, nebo počkejte, až bude připraven k pájení v odporech. Odpájet odpory později není žádná legrace.

Krok 9: Blinkenlights

Blinkenlights
Blinkenlights

LED diody musí být chráněny rezistory. Určete pokles napětí a požadavky na proud vašich LED a vypočítejte příslušné odpory za předpokladu 5V zdroje z čipu. K tomu jsou snadno dostupné online kalkulačky. Udělejte si spoustu blinkenlightů. Při jejich výrobě pro tento projekt odřízněte katodu (záporný/krátký vodič LED zploštělou stranou) a odpájejte odpor velmi blízko k čočce LED. LED diody tvoří v cínu tvar menory. I když se rezistor téměř dotýká čočky, nejkratší LED uprostřed bude mírně zmáčknuta víkem cínu. Abyste zabránili vzniku zkratů v těsných mezích cínu, zakryjte každý odpor kusem smršťovací trubičky.

Krok 10: Příprava držáku baterie

Příprava držáku baterie
Příprava držáku baterie

Nasuňte malé kousky smršťovací bužírky podél obou vývodů držáku baterie. Opatrně je zatlačte do otvorů v držáku a zmenšete na místo. Ty poskytují vodičům určitý stupeň ochrany. (Tato instrukce je duplikována na stránce Příprava přepínacího přepínače.) Uřízněte černý vodič na délku a připájejte jej do příslušného otvoru na desce plošných spojů. Červený vodič je připájen přímo k přepínači; jak postupovat, viz pokyny na této stránce. V minulých projektech jsem odřízl přídržné jazýčky z držáku baterie. Když jsem to udělal na prototypu, lituji toho. Baterie nechce zůstat pevně na svém místě. Nechte záložky spustit a vyjměte je pouze v případě, že máte potíže s vyjmutím baterie. Přestože to říká, obrázek ukazuje držák baterie s odříznutými poutky. Je to proto, že jsem to uklízel z jiného projektu.

Krok 11: Příprava přepínacího přepínače

Příprava kolébkového přepínače
Příprava kolébkového přepínače

V závislosti na vašem přepínači může být nutné odříznout jeden z kolíků. Dělám to pomocí přepínačů, které používám, i když to nemusí být zcela nutné. Posuňte malý kousek smršťovací trubičky podél červeného vodiče držáku baterie. Opatrně jej zatlačte do otvoru v držáku a zmenšete na místo. Poskytuje určitý stupeň ochrany drátu. (Tato instrukce kopíruje pokyny v části Příprava držáku baterie.) Nasuňte na malý vodič další malý kousek smršťovací trubičky. Odřízněte a odizolujte vodič na délku a naneste trochu pájky na kolík na spínači i na konec drátu. Pájejte červený vodič z držáku baterie přímo k vnějšímu kolíku spínače. Nasuňte kus teplem smrštitelné hadičky přes kloub, abyste jej chránili a posilovali. Druhý vodič jde od středního kolíku spínače k desce plošných spojů. Pájejte vodič ke spínači, jak je popsáno výše. Chraňte spoj teplem smrštitelnou hadičkou. Druhý konec pájejte do příslušného otvoru na desce plošných spojů.

Krok 12: Příprava audio jacku

Příprava audio jacku
Příprava audio jacku
Příprava audio jacku
Příprava audio jacku
Příprava audio jacku
Příprava audio jacku

Vodiče ke zvukovému konektoru jsou celkem krátké. Na piny na konektoru a drátu naneste trochu pájky a poté je připájejte na místo. Klouby teplem smrštitelných hadic nasuňte na klouby, abyste je chránili a posilovali. Zemnící vodič lze připájet přímo do jeho otvoru. Konce signálních vodičů sdílejí každý otvor s jedním koncem odporu. Připravte vodič a rezistor zkroucením konců k sobě a nanesením malé pájky. Otvor, do kterého jdou, by měl být vyvrtán na 3/64 , aby se do něj vešly dva dráty. Pájku na místo.

Krok 13: Příprava tlačítka

Příprava tlačítka
Příprava tlačítka
Příprava tlačítka
Příprava tlačítka
Příprava tlačítka
Příprava tlačítka

Připravte si krátký kus plného drátu tak, že jej vytvarujete do tvaru písmene U tak, aby těsně přiléhal přes spodní část spínače. Na obě strany otvoru naneste kapku pájky - ponechejte místo pro spínač - a umístěte spínač na místo. Roztavte pájku a zatlačte drát na místo. Nechte pájku zatuhnout a opakujte na druhé straně. Tím by měl být spínač umístěn a zajištěn na místě. Připravte dva kusy splétaného drátu zkrácením na délku a odstraněním obou konců. Ujistěte se, že jsou dráty dostatečně dlouhé, aby se víko plechovky úplně otevřelo. Pájejte na dva vhodné kolíky na spínači a poté přes spoje nasuňte kusy teplem smrštitelné trubičky, abyste je chránili a posilovali. Pájejte na jiné konce do příslušných otvorů na desce. Opatrně provlečte vodiče mezi LED diodami a ujistěte se, že nesedí na baterie. Roztáhl jsem dva piny na spínači tak, aby mezi ně vklouzla LED úplně vpravo. Kolíky na přepínači jsou VELMI křehké (další dva se odtrhly). Všimněte si, že kolík PA7 PCINT7 6 je nastaven tak, aby naslouchal změně stavu. Stisknutím tlačítka se vysune kolík vysoko a spustí se SIGNÁL (PCINT0_vect). Na základě délky stisknutí tlačítka se buď nic neděje (hrubé odskakování), stav je pokročilý (krátké stisknutí), nebo je pokročilý program (dlouhý stisk).

Krok 14: Zavření víka

Zavření víka
Zavření víka

Pokud je v tuto chvíli vše v pořádku, budete chtít plech zavřít. Přitom musíte být velmi opatrní na umístění LED diod. Zjistil jsem, že je musím postrčit do polohy tenkým šroubovákem, aby byly správně umístěny ve svých otvorech. Při manévrování LED diodami na místo mírně zatlačte na víko a nakonec sklouznou na místo. Možná budete muset umístit vodiče tak, aby spadaly mezi součásti a ne na součásti. Také kolíky tlačítkového spínače mohou být ohnuty z cesty.

Doporučuje: