Cuprins:

Cuțit elvețian AVR: 14 pași (cu imagini)
Cuțit elvețian AVR: 14 pași (cu imagini)

Video: Cuțit elvețian AVR: 14 pași (cu imagini)

Video: Cuțit elvețian AVR: 14 pași (cu imagini)
Video: Часы и Ножи / Victorinox 241927.1 #Shorts 2024, Iulie
Anonim
Cuțit elvețian AVR
Cuțit elvețian AVR
Cuțit elvețian AVR
Cuțit elvețian AVR
Cuțit elvețian AVR
Cuțit elvețian AVR
Cuțit elvețian AVR
Cuțit elvețian AVR

Cuțitul elvețian AVR cuplează o serie de proiecte de programare AVR împreună într-un singur gumă Altoids convenabilă. Datorită flexibilității oferite de programarea microcontrolerului, acesta oferă, de asemenea, un punct de plecare pentru orice număr de proiecte bazate pe LED-uri și ieșire de sunet. SAK poate conține la fel de multe programe pe cât permite 8K de memorie și menține opt stări pentru fiecare program. Butonul albastru face ca SAK să parcurgă programele și stările - o apăsare rapidă îl face să rămână în program, dar să treacă la starea următoare (oricum este definit) și o apăsare lungă îl face să avanseze la următorul program. Programul și stările curente pentru toate programele sunt păstrate în EEPROM între utilizări.

Proiectele implementate în prezent în SAK includ următoarele. Acestea, împreună cu toate celelalte coduri și constante (există un tabel complet de fonturi), ocupă aproximativ 4K din spațiul disponibil. Mult mai mult spațiu! MiniMenorah - Evil Mad Scientists Brain Machine - Mitch Altman MiniPOV - Adafruit IndustriesNoise Toy - Obiecte puternice Luminile de funcționare LED Lumană cu LED Lanternă cu LED Acest proiect nu ar exista fără generozitatea considerabilă a tuturor celor care au contribuit într-un fel sau altul. În plus față de cele menționate mai sus, aș dori să mulțumesc dezvoltatorilor de instrumente software utilizate (a se vedea în alți pași) și oricui a creat un site web util care mi-a promovat înțelegerea acestor subiecte. Pot lua credit direct pentru foarte puțin din codul utilizat în acest proiect. Dacă credeți că codul este al dvs., ar putea fi. Anunță-mă și îți voi oferi cu bucurie credit. În orice caz, vă mulțumesc pentru contribuție:-)

Pasul 1: Piese

Piesele pot fi obținute de la oricare dintre furnizorii de electronice. Datorită constrângerii spațiului, majoritatea componentelor sunt necesare conform indicațiilor. Totul abia se potrivește; asigurați-vă că orice piese de schimb nu ocupă spațiu suplimentar. Nu înlocuiți ATtiny84 cu excepția cazului în care sunteți absolut sigur că acei pini corespund. Legăturile care urmează pieselor sunt către DigiKey și All Electronics. Componente electronice 1 x U1 - ATtiny84 - ATTINY84-20PU-ND1 x Ux - Priză IC 14 pini DIP - A32879-ND9 x LED - alegerea dvs. de culoare9 x rezistențe - potrivite cu LED-urile dvs. 2 x R1, R2 - 100 ohm 1 / 4W - 1% folie metalică - 100XBK-ND2 x C7, C8 - 47uF - P5151-ND Diverse Suport baterie 1-AA Cabluri de 6 "(1) 2461K-NDPhone jack stereo 3,5 mm (1) MJW-22 Comutator de comutare SPDT 1/4 "pornit (1) MTS-4 Comutator cu buton (1) 450-1654-ND Minty Boost SAK este alimentat de o singură baterie AA amplificată de un cip Maxim MAX756 (componenta esențială a MintyBoost!). Componentele de mai jos sunt cele necesare pentru această parte a circuitului. 1 x U1 - MAX756CPA DC / DC 3,3 / 5V DIP - MAX756CPA + -ND1 x Ux - soclu IC 8 pini 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

Pasul 2: Microcontroler ATtiny84

Microcontroler ATtiny84
Microcontroler ATtiny84

Multe proiecte utilizează fie microcontrolerul ATtiny2313 cu 20 de pini, fie ATtiny85 cu 8 pini. Am găsit ATtiny2313 prea mare (pentru carcasă) și ATtiny85 prea mic (memorie insuficientă, insuficiență de pini de ieșire). ATtiny84 este pe măsură:-) ATtiny84 are 8K de memorie flash programabilă (suficient pentru a conține o mulțime de programe mici), 512K de EEPROM (pentru stocarea stării între utilizări), până la 12 pini de ieșire (pentru cele 9 LED-uri, 2 canale de ieșire audio și un comutator cu buton) și multe alte bunătăți care nu sunt utilizate în acest proiect. Dacă intenționați să adăugați programe, obțineți o copie a fișei tehnice ATtiny84. Există multe ghiduri de instruire pentru învățarea programării acestei familii de microcontrolere pe internet. Pentru un rezumat util al microcontrolerelor, consultați Cum se alege un microcontroler. Notă Proiectul descris aici nu are de fapt MiniMenorah complet activat. MM necesită nouă pini de ieșire, Brain Machine doi și butonul pentru a schimba starea unu, pentru un total de doisprezece. În timp ce ATtiny84 poate fi configurat pentru a avea doisprezece pini de ieșire, este în detrimentul pinului RESET. Dezactivarea PIN-ului RESET și transformarea acestuia în I / O face ca ATtiny84 să nu poată fi programat cu programatorul USBtinyISP (care nu a făcut asta:-) și necesită programare de înaltă tensiune. Totul este în loc pentru a activa MM, dar este necesar un programator diferit, iar eu nu am unul.

Pasul 3: Instrumente de programare AVR

Instrumente de programare AVR
Instrumente de programare AVR
Instrumente de programare AVR
Instrumente de programare AVR

Câteva componente, atât hardware cât și software, sunt necesare pentru a programa microcontrolere AVR. Mai jos sunt instrumentele pe care le folosesc. Multe, multe altele există în aceeași gamă de preț - de la liber la ieftin. Găsiți un set care funcționează pentru dvs. și rămâneți cu ei. Mai bine, găsește un prieten care a elaborat un sistem și folosește-i instrumentele. Nimic nu este deosebit de greu dacă totul merge așa cum este publicat, dar obținerea tuturor instrumentelor care funcționează împreună poate fi o adevărată provocare. Pinii lungi ai suportului pentru cipuri wirewrap se extind în jos către o placă de măsurare și asigură o configurare experimentală convenabilă. Singura problemă pe care am întâmpinat-o este că componentele pinilor de programare nu pot fi împământate în timpul programării. Am luat două abordări pentru a rezolva această problemă. Primul este să aveți două suporturi pentru cipuri, unul pentru programare și unul pentru rulare (a se vedea suportul cu 8 pini). Acest lucru nu este ideal, deoarece face ca o mulțime de panouri să fie inutilizabile și este destul de enervant să mutați cipul. Al doilea este să instalați un mic comutator pentru a deconecta știftul de la sol de la panoul de control în timpul programării. Acest lucru funcționează mai bine și lasă mai mult spațiu pe panou pentru componente. Kitul ProgramatorUSBtinyISP de la Adafruit Industries. Cu o mică modificare (scoateți cablul cu 10 pini și îndoiți LED-urile) programatorul se potrivește într-un tablou de gumă Altoids. Cablul cu 6 pini poate fi chiar înfășurat în tablă pentru stocare. SoftwareWinAVR este o colecție de instrumente de dezvoltare software open source pentru programarea microcontrolerelor AVR pe mașinile Windows. Funcționează bine cu programatorul USBtinyISP (a se vedea Tutorialul AVR). Am trecut recent de la utilizarea aplicației Notepad a programatorului care vine împreună cu WinAVR la utilizarea Eclipse cu AVR Eclipse Plugin. Eclipse poate folosi avrdude, deci va trebui să instalați oricum WinAVR. Eclipse are un management mai bun al proiectelor, tutoriale utile și este gratuit. A durat doar câteva minute să îl instalați, să lucrați printr-un tutorial și să programați un cip. Telefonați un prieten Există multe resurse pe Internet. Căutați-i, cereți ajutor. Oamenii pot fi cunoscuți și de ajutor. E drăguț:-) De asemenea, pot fi respingători. Asta nu-i frumos:-(

Pasul 4: Programarea microcontrolerului

Programarea microcontrolerului
Programarea microcontrolerului

Cod C Nu critica ceea ce nu inteleg. Nu sunt programator, C nu este limba mea maternă și mă țin de un fir subțire Java și de o mulțime de căutări pe web când lucrez în C. Chiar dacă o mare parte a codului provine din alte proiecte (vezi creditele), A trebuit să fac câteva adăugiri și modificări. Codul sursă al cuțitului Swiss AVR este atașat mai jos atât ca fișier sursă c, cât și ca fișier hexagonal. Mi-ar plăcea să aud unde codul ar putea fi îmbunătățit. Există câteva modificări pe care anticipez să le fac în cod. Actualizări sunt în curs de lansare. Între timp, codul funcționează așa cum este publicat. Siguranțele Siguranțele microcontrolerului sunt confuze. Am dezactivat câteva microcontrolere atât setându-le accidental să caute un oscilator extern, cât și dezactivând pinul RESET. Ele pot fi recuperate, dar până atunci sunt doar bug-uri moarte. Aveți grijă dacă alegeți să schimbați siguranțele. Pentru a calcula valorile corecte ale siguranțelor, utilizați un calculator de siguranțe online. Selectați partea țintă (ATtiny84) și setările corespunzătoare - oscilator RC intern care rulează la 8 MHz (valoare implicită), NU împărțiți ceasul cu 8 intern, activați descărcarea programului serial și dezactivați detectarea brownout. Rezultatul ar trebui să fie următorul. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (low 0xE2 high 0xDF ext 0xFF). Trebuie să ardeți siguranțele o singură dată (cu excepția cazului în care intenționați să le schimbați). Eclipse face acest lucru ușor, așa cum, sunt sigur, fac și alte IDE. Întrebări la care aș dori să răspund Orice idei despre optimizarea codului pe tablă? De ce nu îi plac Eclipse funcțiilor lightOn și lightOff, chiar dacă par să funcționeze?

Pasul 5: Planificarea proiectului

Breadboarding proiectul
Breadboarding proiectul
Planificarea proiectului
Planificarea proiectului

Deoarece o mare parte din munca acestui proiect este realizată de microcontroler, există foarte puține părți externe. După ce ați verificat dacă programatorul și lanțul de instrumente sunt în regulă, ar fi o idee bună să faceți circuitul și să vă asigurați că totul funcționează așa cum este publicat. Am folosit LED-urile din cutia modelului și am scos leagănul și cipul pentru a le folosi în mai multe fotografii. Cablarea generală conectează practic pinii activi la câteva părți și apoi la sol. În cod, veți vedea bucăți de cod care trebuie fie să fie activate, fie comentate, în funcție de faptul dacă ținta este placa de calcul sau PCB-ul.

Pasul 6: Pregătirea cutiei de gumă Altoids

Imagini pe drum Aplicați partea de jos. Partea inferioară a cositorului se curbează în sus și în interior. Trebuie să fie aplatizată, astfel încât bateria și placa de circuit să se potrivească și să stea uniform. Având grijă să nu distorsionați cositorul, împingeți fundul în afară până când este esențial plat. Cutia are nevoie de trei seturi de găuri. Folosesc un pumn metalic pentru a marca locațiile găurilor și biți de puncte brad (pentru lemn) pentru a găuri găurile. Biții punctului brad au un punct central și două muchii tăietoare. Nu vor patina și marginile se taie încet prin metal. Biții pentru punct Brad sunt disponibili de la Lee Valley (printre alte locuri). Primul este un set de nouă găuri de 5 mm în partea superioară a tabloului pentru LED-uri. Sunt disponibile biți de puncte metrice brad și fac găuri curate și confortabile pentru LED-uri. Creați un șablon de hârtie cu găurile marcate și transferați semnele în partea de sus a staniu. Pentru a preveni împingerea vârfului de tablă în interior, sprijiniți partea interioară a capacului pe un bloc mic de lemn atunci când perforați și găuriți partea superioară. Cu hârtia și lemnul la locul lor, scobesc cutia folosind pumnul. Când găuriți, mergeți încet la început. Marginile tăietoare ale punctelor brad ar trebui să formeze un cerc uniform. Găurirea cu burghiul orice altceva decât perpendicular pe suprafață poate avea ca rezultat agățarea și sfâșierea burghiului metalic. Punctul de 5 mm face o gaură curată frumoasă, dar am constatat că trebuie să-l lărgesc atât de ușor. Am făcut acest lucru perforând din interior cu un bit regulat de 13/64 ". Al doilea set constă din două găuri de 1/4" pe partea dreaptă a tabloului pentru comutator și mufa audio. Datorită curburii strânse la capătul staniu, aceste găuri trebuie să fie destul de aproape. Asigurați-vă că le spaționați astfel încât componentele să se potrivească în tablă. Centrați-le vertical pe porțiunea laterală vizibilă atunci când capacul este închis. Marcați cu pumnul și găuriți foarte atent. Atenția cu privire la biții care apucă staniu se aplică mai puternic la biții mai mari. Ultima gaură este pentru comutatorul cu buton. Poziționați gaura spre dreapta jos, astfel încât butonul să nu interfereze cu celelalte componente din tablă.

Pasul 7: Proiectarea și realizarea PCB-ului

Proiectarea și realizarea PCB-ului
Proiectarea și realizarea PCB-ului
Proiectarea și realizarea PCB-ului
Proiectarea și realizarea PCB-ului
Proiectarea și realizarea PCB-ului
Proiectarea și realizarea PCB-ului

Există numeroase resurse pe Internet care descriu procesul de creare a PCB-urilor. Niciuna dintre metode nu este infailibilă sau ușoară, dar este important să mă simt confortabil cu cel puțin una. Folosesc versiunea freeware a EAGLE Layout Editor de la CadSoft pentru a crea schema și a dispune placa de circuite imprimate. Abordarea mea de fabricație a PCB-ului este descrisă în etapa de realizare și pregătire a PCB a difuzorului de tablă Altoids instructabil. După transfer, gravare și găurire a plăcii, sunteți gata să lipiți totul împreună. plăcile de circuite este următoarea. Spălați bine placa cu săpun de vase și spălați-o cu un spălător verde. Șlefuiți ușor orice bavuri de pe marginile plăcii, astfel încât hârtia de transfer și fierul să intre în contact bun cu placa. Preîncălziți fierul de călcat. Așezați o bucată de hârtie pe tablă și încălziți placa cu fierul de călcat. După ce placa este destul de fierbinte, așezați cu atenție hârtia de transfer pregătită pe tablă. Se va lipi imediat (deoarece placa este fierbinte), deci asigurați-vă că este poziționată corect. Apoi călcați direct pe spatele strălucitor al hârtiei de transfer. Acest lucru nu mi-a cauzat niciodată probleme, dar îți folosești propriul tău fier. Testează mai întâi. Lăsați placa să se răcească și apoi rulați-o sub apă rece. Hârtia de transfer ar trebui să apară și să lase întreaga imagine. Utilizați un vizualizator de diapozitive / negative de 8 ori pentru a privi transferul și a completa orice piesă lipsă. Noroc.

Pasul 8: lipirea pieselor pe PCB

Piese de lipit la PCB
Piese de lipit la PCB
Piese de lipit la PCB
Piese de lipit la PCB
Piese de lipit la PCB
Piese de lipit la PCB

Există numeroase resurse pe Internet care descriu procesul de lipire a componentelor electronice la PCB-uri. Vezi, de exemplu, tutorialul de lipit de la ladyada.net. Ordinea în care instalați componentele nu contează cu adevărat, deși am găsit că funcționează de la cel mai mic la cel mai mare. Conductoarele LED / blinkenlight sunt suficient de lungi, astfel încât să le puteți forma într-un model asemănător menorei în tablă. Montați cu grijă LED-urile și îndoiți cablurile astfel încât partea superioară a fiecărui LED să fie poziționată astfel încât să se arunce prin orificiul respectiv. Acest lucru poate fi o provocare, dar arată foarte frumos atunci când în cele din urmă funcționează. Dacă cablurile sunt lăsate prea mult, LED-urile ar putea fi strivite în jos și în afara poziției de către capacul cutiei. Notă LED-ul din dreapta nu este în aceeași orientare ca celelalte opt. Asigurați-vă că verificați polaritatea LED-urilor față de aspectul plăcii atunci când le instalați. Acest LED este atașat pinului RESET, deci puteți alege să nu îl instalați. Notă Firele de la mufa audio și rezistențele au o gaură. Pentru comoditate, puneți rezistențele în poziție verticală în așa fel încât corpul rezistorului să nu fie peste gaura cu firul audio. Fie pregătiți și instalați mufa audio în acest moment, fie așteptați până când este gata să se lipească în rezistențe. Nu este distractiv să dezoldezi rezistențele mai târziu.

Pasul 9: Blinkenlights

Blinkenlights
Blinkenlights

LED-urile trebuie protejate de rezistențe. Determinați căderea de tensiune și cerințele de curent ale LED-urilor dvs. și calculați rezistențele corespunzătoare presupunând o sursă de 5V din cip. Există calculatoare online disponibile pentru a face acest lucru. Faceți-vă o grămadă de lumini intermitente. Când le faceți pentru acest proiect, tăiați catodul (cablul negativ / scurt al LED-ului de partea aplatizată) și lipiți rezistorul foarte aproape de obiectivul LED-ului. LED-urile formează o formă de menorah în tablă. Chiar dacă rezistorul atinge aproape obiectivul, cel mai scurt LED din mijloc va fi ușor strivit de capacul staniu. Pentru a preveni apariția pantalonilor scurți în limitele strânse ale stanii, acoperiți fiecare rezistor cu o bucată de tub termocontractabil.

Pasul 10: Pregătirea suportului bateriei

Pregătirea suportului bateriei
Pregătirea suportului bateriei

Glisați bucăți mici de tuburi termocontractibile de-a lungul ambelor cabluri ale suportului bateriei. Împingeți-le cu grijă în orificiile suportului și micșorați-le la locul lor. Acestea oferă un anumit grad de protecție a firelor. (Această instrucțiune este duplicată pe pagina Pregătirea comutatorului de comutare.) Tăiați firul negru la lungime și lipiți-l în orificiul corespunzător de pe PCB. Firul roșu este lipit direct la comutatorul de comutare; Consultați instrucțiunile de pe pagina respectivă pentru cum să procedați. În proiectele anterioare am tăiat filele de fixare de pe suportul bateriei. După ce am făcut acest lucru pe prototip, acum regret. Bateria nu vrea să rămână strâns la locul său. Lăsați filele pentru a porni și scoateți-le numai dacă aveți probleme cu scoaterea bateriei. În ciuda faptului că a spus acest lucru, imaginea prezintă un suport pentru baterie cu cleme decupate. Acest lucru se datorează faptului că l-am scăpat de un alt proiect.

Pasul 11: Pregătirea comutatorului de comutare

Pregătirea comutatorului de comutare
Pregătirea comutatorului de comutare

În funcție de comutator, poate fi necesar să decupați unul dintre ace. Fac acest lucru cu întrerupătoarele pe care le folosesc, deși este posibil să nu fie pe deplin necesar. Împingeți-l cu grijă în orificiul suportului și micșorați-l la loc. Oferă un anumit grad de protecție a firului. (Această instrucțiune reproduce instrucțiunile din Pregătirea suportului bateriei.) Glisați o altă bucată mică de tub termocontractibil pe firul roșu. Tăiați și îndepărtați firul la lungime și aplicați o lipire atât la știftul de pe comutator, cât și la capătul firului. Lipiți cablul roșu de la suportul bateriei direct la știftul exterior al comutatorului. Glisați bucata de tub termocontractabil peste articulație pentru a o proteja și a o întări. Al doilea fir merge de la pinul central al comutatorului la PCB. Lipiți firul la comutator așa cum este descris mai sus. Protejați îmbinarea cu tuburi termocontractabile. Lipiți celălalt capăt la orificiul corespunzător de pe PCB.

Pasul 12: Pregătirea mufei audio

Pregătirea mufei audio
Pregătirea mufei audio
Pregătirea mufei audio
Pregătirea mufei audio
Pregătirea mufei audio
Pregătirea mufei audio

Firele la mufa audio sunt toate destul de scurte. Aplicați un pic de lipire pe știfturile de pe cric și fir și apoi lipiți-le la locul lor. Glisați bucăți de tub termocontractabil peste articulații pentru a le proteja și întări. Firul de masă poate fi lipit direct în orificiul său. Capetele firelor de semnal au fiecare o gaură cu un capăt al unui rezistor. Pregătiți firul și rezistorul răsucind capetele împreună și aplicând puțin lipit. Gaura în care merg acestea ar trebui să fie găurită la 3/64 pentru a găzdui cele două fire. Lipiți în poziție.

Pasul 13: Pregătirea comutatorului cu buton

Pregătirea comutatorului cu buton
Pregătirea comutatorului cu buton
Pregătirea comutatorului cu buton
Pregătirea comutatorului cu buton
Pregătirea comutatorului cu buton
Pregătirea comutatorului cu buton

Pregătiți o bucată scurtă de sârmă solidă formând-o în formă de U care se potrivește perfect pe partea de jos a comutatorului. Aplicați o farfurie de lipit pe ambele părți ale orificiului - lăsați loc pentru comutator - și poziționați comutatorul în poziție. Topiți lipirea și împingeți firul în poziție. Lăsați lipirea să se întărească și repetați pe cealaltă parte. Aceasta ar trebui să poziționeze și să asigure comutatorul în poziție. Pregătiți două bucăți de sârmă torsadată tăind la lungime și dezizolând ambele capete. Asigurați-vă că firele sunt suficient de lungi, astfel încât capacul cutiei să se poată deschide complet. Lipiți la două știfturi corespunzătoare de pe comutator și apoi glisați bucăți de tub termocontractabil peste articulații pentru a le proteja și întări. Împingeți cu capetele în orificiile respective de pe tablă. Filetați cu grijă firele între LED-uri și asigurați-vă că nu stau deasupra bateriilor. Am întins cei doi pini de pe întrerupător, astfel încât LED-ul din dreapta să alunece între ei. Pinii de pe comutator sunt FOARTE fragili (ceilalți doi au fost deconectați). Rețineți că pinul PA7 PCINT7 6 este configurat pentru a asculta o schimbare de stare. Apăsând butonul comutator trageți pinul în sus și SIGNAL (PCINT0_vect) este executat. Pe baza lungimii apăsării butonului, fie nu se întâmplă nimic (dezbaterea brută), starea este avansată (apăsare scurtă), fie programul este avansat (apăsare lungă).

Pasul 14: Închiderea capacului

Închiderea capacului
Închiderea capacului

Dacă totul este bine în acest moment, veți dori să închideți cutia. Procedând astfel, trebuie să fiți foarte atenți la poziția LED-urilor. Constat că trebuie să le împing în poziție cu o șurubelniță cu lamă subțire, astfel încât să fie poziționate corect în găurile lor. Aplicați o mică presiune în jos pe capac pe măsură ce manevrați LED-urile în poziție și acestea vor aluneca în cele din urmă. Este posibil să fie necesar să poziționați firele astfel încât să cadă între componente și nu pe ele. De asemenea, pinii comutatorului cu buton trebuie să fie îndoiți din cale.

Recomandat: