Sadržaj:

Švicarski AVR nož: 14 koraka (sa slikama)
Švicarski AVR nož: 14 koraka (sa slikama)

Video: Švicarski AVR nož: 14 koraka (sa slikama)

Video: Švicarski AVR nož: 14 koraka (sa slikama)
Video: Chapter 24 - Babbitt by Sinclair Lewis 2024, Srpanj
Anonim
Švicarski AVR nož
Švicarski AVR nož
Švicarski AVR nož
Švicarski AVR nož
Švicarski AVR nož
Švicarski AVR nož
Švicarski AVR nož
Švicarski AVR nož

Švicarski AVR nož spaja niz AVR programskih projekata zajedno u jednu prikladnu kalaj za gume od Altoida. Zbog fleksibilnosti koju nudi programiranje mikrokontrolera, također pruža polazište za bilo koji broj projekata temeljenih na LED -ima i zvučnom izlazu. SAK može sadržavati onoliko programa koliko dopušta 8K memorije i održava osam stanja za svaki program. Plavi gumb uzrokuje da SAK prelazi kroz programe i stanja - brz pritisak uzrokuje da ostane u programu, ali se prebacuje u sljedeće stanje (kako god to bilo definirano), a dugim pritiskom prelazi na sljedeći program. Trenutni program i stanja za sve programe čuvaju se u EEPROM -u između upotreba.

Projekti koji se trenutno provode u SAK -u uključuju sljedeće. Oni, zajedno sa svim ostalim kodom i konstantama (postoji puna tablica fontova), zauzimaju oko 4K raspoloživog prostora. Mnogo više mjesta! MiniMenorah - Stroj za mozak zlih ludih znanstvenika - Mitch AltmanMiniPOV - Adafruit IndustriesBučka igračka - Glasni predmeti LED svjetla za trčanje LED svjećica LED svjetiljka Ovaj projekt ne bi postojao bez znatne velikodušnosti svih koji su na ovaj ili onaj način dali svoj doprinos. Osim gore navedenog, želio bih se zahvaliti programerima korištenih softverskih alata (vidi u ostalim koracima) i svima koji su postavili korisnu web stranicu koja mi je pomogla u razumijevanju ovih tema. Mogu uzeti izravnu zaslugu za vrlo malo koda korištenog u ovom projektu. Ako mislite da je kôd vaš, možda i jest. Javite mi i rado ću vam odati priznanje. U svakom slučaju, hvala vam na doprinosu:-)

Korak 1: Dijelovi

Dijelove možete nabaviti od bilo kojeg od brojnih dobavljača elektronike. Zbog ograničenog prostora većina je komponenti potrebna kako je navedeno. Sve jedva stane; pazite da zamjenski dijelovi ne zauzimaju dodatni prostor. Nemojte zamjenjivati ATtiny84 osim ako niste apsolutno sigurni da pinovi odgovaraju. Veze koje slijede uz dijelove odnose se na DigiKey i svu elektroniku. Elektroničke komponente1 x U1-ATtiny84-ATTINY84-20PU-ND1 x Ux-IC utičnica 14-pinski DIP-A32879-ND9 x LED-vaš izbor boje 9 x otpornici-usklađeni s vašim LED diodama 2 x R1, R2-100 ohma 1/4W 1% metalna folija-100XBK-ND2 x C7, C8-47uF-P5151-NDDržač raznih baterija 1-AA 6 "žičani vodiči (1) 2461K-NDP Utičnica za telefon stereo 3,5 mm (1) MJW-22Tog prekidač SPDT 1/4 "on-on (1) Prekidač s gumbom MTS-4Push (1) 450-1654-NDMinty Boost SAK napaja jedna baterija AA pojačana čip Maxim MAX756 (bitna komponenta MintyBoost -a!). Dolje navedene komponente su potrebne za ovaj dio kruga.1 x U1-MAX756CPA DC/DC 3.3/5V DIP-MAX756CPA+-ND1 x Ux-IC utičnica 8-polna DIP-A32878-ND2 x C7, C8 -0,1uF-399-4151-ND2 x C3, C5-100uF-P5152-ND1 x L1-22uH radijalno-M9985-ND1 x D1-1N5818 Schottky 1A 30V-1N5818-E3/1GI- ND

Korak 2: Mikrokontroler ATtiny84

Mikrokontroler ATtiny84
Mikrokontroler ATtiny84

Mnogi projekti koriste ili ATtiny2313 20-pinski ili ATtiny85 8-pinski mikrokontroler. Otkrio sam da je ATtiny2313 prevelik (za kućište), a ATtiny85 premali (nema dovoljno memorije, nema dovoljno izlaznih pinova). ATtiny84 je taman:-) ATtiny84 ima 8K programabilne flash memorije (dovoljno za držanje puno malih programa), 512K EEPROM-a (za spremanje stanja između upotreba), do 12 izlaznih pinova (za 9 LED dioda, 2 kanala audio izlaza i prekidača s tipkama), te puno drugih dobrota koje se ne koriste u ovom projektu. Ako namjeravate dodavati programe, nabavite kopiju podatkovne tablice ATtiny84. Na internetu postoji mnogo vodiča za učenje programiranja ove obitelji mikrokontrolera. Za koristan sažetak mikrokontrolera pogledajte Kako odabrati mikrokontroler. Napomena: Ovdje opisani projekt zapravo nema potpuno omogućen MiniMenorah. MM zahtijeva devet izlaznih pinova, Brain Machine dva i gumb za promjenu stanja jedan, za ukupno dvanaest. Premda se ATtiny84 može konfigurirati tako da ima dvanaest izlaznih pinova, to ide na teret RESET pina. Onemogućavanje RESET pina i pretvaranje u I/O čini ATtiny84 nemogućim za programiranje pomoću USBtinyISP programatora (koji to nije učinio:-) i zahtijeva programiranje visokog napona. Sve je na mjestu za omogućavanje MM -a, ali potreban je drugi programer, a ja ga nemam.

Korak 3: Alati za programiranje AVR -a

Alati za programiranje AVR -a
Alati za programiranje AVR -a
Alati za programiranje AVR -a
Alati za programiranje AVR -a

Za programiranje AVR mikrokontrolera potrebno je dosta komponenti, i hardverskih i softverskih. U nastavku su alati koje koristim. Mnogi, mnogi drugi postoje u istom cjenovnom razredu - besplatno do jeftino. Pronađite set koji vam odgovara i držite ga se. Još bolje, pronađite prijatelja koji je razradio sustav i koristite njegove alate. Ništa nije posebno teško ako sve ide kako se reklamira, ali zajednički rad svih alata može biti pravi izazov. Programiranje kolijevke temelji se na programskom okruženju Ghetto. Dugi pinovi držača žičanih čipova protežu se prema dolje i čine prikladnim eksperimentalnim postavljanjem. Jedini problem s kojim sam se susreo je da se komponente iz programskih pinova ne mogu uzemljiti tijekom programiranja. Za rješavanje ovog problema poduzeo sam dva pristupa. Prvi je da ima dva držača čipova, jedan za programiranje i jedan za trčanje (vidi 8-pinsko postolje). To nije idealno jer čini veliki dio ploče neupotrebljivim i prilično je neugodno pomicati čip. Drugi je da instalirate mali prekidač za odvajanje uzemljenja od uzemljenja ploče tijekom programiranja. Ovo radi bolje i ostavlja više prostora na ploči za komponente. ProgrammerUSBtinyISP komplet iz Adafruit Industries. Uz male izmjene (uklonite 10-polni kabel i savijte LED diode), programator se uklapa u kalaj za gume Altoids. 6-pinski kabel čak se može umotati u lim za pohranu. SoftverWinAVR je zbirka alata za razvoj softvera otvorenog koda za programiranje AVR mikrokontrolera na Windows strojevima. Odlično radi s programatorom USBtinyISP (pogledajte AVR vodič). Nedavno sam prešao s programa za programiranje programa Notepad koji dolazi u paketu s WinAVR -om na korištenje Eclipse s dodatkom AVR Eclipse. Eclipse može koristiti avrdude, pa ćete svejedno morati instalirati WinAVR. Eclipse ima bolje upravljanje projektima, korisne vodiče i besplatan je. Bilo je potrebno samo nekoliko minuta da ga instalirate, radite kroz vodič i programirate čip. Telefonirajte prijatelju Na internetu postoji mnogo resursa. Potražite ih, tražite pomoć. Ljudi mogu biti upućeni i od pomoći. To je lijepo:-) Oni također mogu odbaciti. To nije lijepo:-(

Korak 4: Programiranje mikrokontrolera

Programiranje mikrokontrolera
Programiranje mikrokontrolera

C kod Nemojte kritizirati ono što ne razumijem. Nisam programer, C nije moj materinji jezik i držim se koncem tankim za Java i puno pretraživanja weba dok radim u C. Iako je velik dio koda došao iz drugih projekata (vidi kredite), Morao sam napraviti neke dopune i izmjene. Izvorni kod za švicarski AVR nož dolje je priložen i kao c izvorna datoteka i kao šesterokutna datoteka. Bio bih zahvalan da čujem gdje se kôd može poboljšati. Očekujem da ću unijeti nekoliko promjena u kôd. Predstoje ažuriranja. U međuvremenu kôd radi kako se oglašava. Osigurači Osigurači mikrokontrolera su zbunjujući. Onemogućio sam nekoliko mikrokontrolera i slučajnim namještanjem da traže vanjski oscilator i onemogućavanjem PIN -a RESET. Mogu se oporaviti, ali do tada su samo mrtve bube. Budite oprezni ako odlučite promijeniti osigurače. Za izračun ispravnih vrijednosti osigurača upotrijebite mrežni kalkulator osigurača. Odaberite ciljni dio (ATtiny84) i odgovarajuće postavke - unutarnji RC oscilator koji radi na 8MHz (zadana vrijednost), NEMOJTE interno dijeliti sat sa 8, omogućiti serijsko preuzimanje programa i onemogućiti otkrivanje smeđeg tona. Rezultat bi trebao biti sljedeći. -U l osigurač: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (nisko 0xE2 visoko 0xDF vanjsko 0xFF). Osigurače morate zapaliti samo jednom (osim ako ih ne namjeravate promijeniti). Eclipse to čini jednostavnim, kao što, čini se, rade i drugi IDE -i. Pitanja na koja bih želio odgovoriti Bilo koje ideje o optimizaciji koda Zašto trepćuća svjetla u stroju za zvuk i svjetlo uzrokuju oscilacije tona kada su omogućene u limu, ali ne na ploči? Zašto Eclipse ne voli funkcije lightOn i lightOff, iako izgleda da rade?

Korak 5: Izrada projekta

Breadboarding projekta
Breadboarding projekta
Breadboarding projekta
Breadboarding projekta

Budući da velik dio posla ovog projekta obavlja mikrokontroler, vrlo je malo vanjskih dijelova. Nakon što provjerite jesu li vaš programer i lanac alata u redu, bilo bi dobro da osmislite krug i provjerite radi li sve kako se oglašava. Slike u nastavku predstavljaju pogrešne verzije stvarne ploče koju sam postavio. Koristio sam LED diode u modelu i izvadio ležište i čip za korištenje na nekoliko fotografija. Cjelokupno ožičenje u osnovi spaja aktivne pinove na nekoliko dijelova, a zatim na uzemljenje. Napomena Napomena Red pinova i LED dioda nije isti na matičnoj ploči i na tiskanoj ploči (iako pretpostavljam da biste ih mogli učiniti istim). U kodu ćete vidjeti komade koda koje je potrebno omogućiti ili komentirati, ovisno o tome je li cilj matična ploča ili tiskana ploča.

Korak 6: Priprema kalaja za gume Altoids

Slike na putu Izravnajte dno. Donji dio lima zakrivljen je prema gore i prema unutra. Potrebno ga je spljoštiti tako da baterija i ploča spoje i sjednu ravnomjerno. Pazeći da ne iskrivite lim, gurnite dno van dok u biti ne postane ravno. Limunu su potrebna tri niza rupa. Koristim metalni bušač za označavanje mjesta rupa i brad point bitove (za drvo) za bušenje rupa. Brad bitovi imaju središnju točku i dva rezna ruba. Neće klizati, a rubovi polako probijaju metal. Brad bitovi dostupni su iz Lee Valley -a (između ostalih mjesta). Prvi je set od devet rupa od 5 mm na vrhu kalupa za LED diode. Dostupni su metrički brad point bitovi koji čine čiste i tijesne rupe za LED diode. Napravite papirnati predložak s označenim rupama i prenesite oznake na vrh kalupa. Kako biste spriječili guranje vrha lima, pri probijanju i bušenju vrha poduprite unutarnji dio poklopca na mali drveni blok. Dok su papir i drvo na mjestu, probušim lim probušivši rupu za bušenje. Prilikom bušenja u početku idite polako. Rezne ivice brad točaka trebaju činiti ravnomjeran krug. Bušenje svrdlom bilo što, osim okomito na površinu, može rezultirati hvatanjem i kidanjem metala. Brad točka od 5 mm čini lijepu čistu rupu, ali otkrio sam da sam je morao tako malo proširiti. To sam učinio bušenjem iznutra običnim nastavkom od 13/64 ". Drugi set sastoji se od dvije rupe od 1/4" na desnoj strani lima za prekidač i audio utičnicu. Zbog uske zakrivljenosti na kraju lima, te rupe moraju biti prilično blizu. Pazite da ih postavite tako da komponente stanu u lim. Centrirajte ih okomito na dio strane vidljiv kada je poklopac zatvoren. Označite udarcem i vrlo pažljivo bušite. Oprez oko bitova koji hvataju lim jače se primjenjuje na veće bitove. Posljednja rupa je za prekidač s tipkom. Postavite rupu prema donjem desnom kutu tako da gumb ne ometa ostale komponente u limu.

Korak 7: Projektiranje i izrada PCB -a

Projektiranje i izrada PCB -a
Projektiranje i izrada PCB -a
Projektiranje i izrada PCB -a
Projektiranje i izrada PCB -a
Projektiranje i izrada PCB -a
Projektiranje i izrada PCB -a

Na internetu postoje brojni izvori koji opisuju proces stvaranja PCB -a. Nijedna od metoda nije sigurna ili laka, ali važno je upoznati se s barem jednom. Koristim besplatnu verziju programa EAGLE Layout Editor tvrtke CadSoft za izradu sheme i raspored tiskane ploče. Moj pristup proizvodnji PCB -a opisan je u koraku Izrada i priprema PCB -a za Altoids Limeni zvučnik koji se može uputiti. Nakon prijenosa, jetkanja i bušenja ploče spremni ste sve lemiti. Napomena Moje najnovije iskustvo za prijenos slika na ploče su sljedeće. Dasku dobro operite sapunom za posuđe i operite je zelenom krpom. Lagano izbrusite sve neravnine s rubova ploče tako da prijenosni papir i glačalo dobro kontaktiraju ploču. Zagrijte glačalo. Stavite komad papira na ploču i zagrijte ploču glačalom. Nakon što se ploča dosta zagrije, pažljivo stavite pripremljeni papir za prijenos na ploču. Odmah će se zalijepiti (jer je ploča vruća) pa provjerite je li pravilno postavljena. Zatim glačajte izravno na sjajnoj stražnjoj strani prijenosnog papira. Ovo mi nikada nije stvaralo probleme, ali koristite svoje glačalo. Prvo testirajte. Ostavite ploču da se ohladi, a zatim je stavite pod hladnu vodu. Prijenosni papir trebao bi iskočiti i ostaviti cijelu sliku. Upotrijebite 8x slajd/negativni preglednik kako biste pregledali prijenos i popunili sve dijelove koji nedostaju. Sretno.

Korak 8: Lemljenje dijelova na PCB

Dijelovi za lemljenje na PCB
Dijelovi za lemljenje na PCB
Dijelovi za lemljenje na PCB
Dijelovi za lemljenje na PCB
Dijelovi za lemljenje na PCB
Dijelovi za lemljenje na PCB

Na Internetu postoje brojni izvori koji opisuju postupak lemljenja elektroničkih komponenti na tiskane ploče. Pogledajte, na primjer, vodič za lemljenje na ladyada.net. Redoslijed u kojem instalirate komponente zapravo nije bitan, iako sam otkrio da je najlakši rad od najmanjeg do najvećeg. LED/blinkenlight vodiči dovoljno su dugački da ih možete oblikovati u uzorak nalik na menoru u limu. Pažljivo ugradite LED diode i savijte vodove tako da vrh svake LED diode bude postavljen tako da će proviriti kroz odgovarajuću rupu. Ovo može biti izazovno, ali izgleda jako lijepo kad napokon uspije. Ako su vodiči ostavljeni predugo, LED diode mogu biti zgnječene i van položaja poklopcem limenke. Napomena Krajnja desna LED dioda nije u istoj orijentaciji kao ostalih osam. Prilikom instaliranja provjerite polaritet LED dioda u odnosu na izgled ploče. Ova LED dioda je pričvršćena na pin za resetiranje pa možete odlučiti da je ne instalirate. Napomena Žice na audio priključku i otpornici dijele rupu. Radi praktičnosti, postavite otpornike uspravno na način da tijelo otpornika ne bude iznad rupe sa audio žicom. Ili pripremite i instalirajte audio priključak u ovom trenutku ili pričekajte da bude spreman za lemljenje u otpornike. Kasnije odlemiti otpornike nije zabavno.

Korak 9: Blinkenlights

Blinkenlights
Blinkenlights

LED diode moraju biti zaštićene otpornicima. Odredite zahtjeve pada napona i struje vaših LED dioda i izračunajte odgovarajuće otpornike pretpostavljajući izvor 5V iz čipa. Za to postoje lako dostupni mrežni kalkulatori. Napravite si gomilu blinkera. Kad ih izrađujete za ovaj projekt, odrežite katodu (negativni/kratki vod LED -a sa spljoštene strane) i lemite otpornik vrlo blizu leće LED -a. LED diode tvore oblik menore u limu. Čak i kad otpornik gotovo dodiruje leću, poklopac lima će najkraće LED diodu u sredini lagano zgnječiti. Da biste spriječili nastanak kratkih hlača u tijesnim okvirima lima, pokrijte svaki otpornik komadom toplinske cijevi.

Korak 10: Priprema držača baterije

Priprema držača baterije
Priprema držača baterije

Gurnite male komadiće termoskupljajuće cijevi duž oba voda držača baterije. Pažljivo ih gurnite u otvore držača i skupite na mjesto. Oni pružaju određeni stupanj zaštite žicama. (Ova je uputa duplicirana na stranici Priprema preklopnog prekidača.) Crnu žicu izrežite na duljinu i lemite u odgovarajuću rupu na PCB -u. Crvena žica je lemljena izravno na prekidač; pogledajte upute na toj stranici o tome kako postupiti. U prošlim projektima sam odrezao pričvrsne jezičke s držača baterije. Učinivši to na prototipu, sada žalim. Baterija ne želi čvrsto ostati na svom mjestu. Ostavite kartice da se pokrenu i uklonite ih samo ako imate problema s vađenjem baterije. Usprkos tome, slika prikazuje držač baterije s odrezanim jezičcima. To je zato što sam ga izvukao iz drugog projekta.

Korak 11: Priprema prekidača za uključivanje / isključivanje

Priprema prekidača za uključivanje / isključivanje
Priprema prekidača za uključivanje / isključivanje

Ovisno o prekidaču, možda ćete morati otkinuti jednu od iglica. To činim pomoću prekidača koje koristim, iako to možda nije posve potrebno. Gurnite mali komad termoskupljajuće cijevi duž crvenog kabela držača baterije. Pažljivo ga gurnite u otvor držača i skupite na mjesto. Pruža određeni stupanj zaštite za žicu. (Ova uputa duplicira upute u Pripremi držača baterije.) Gurnite još jedan mali komad cijevi hladnjaka na crvenu žicu. Prerežite i ogolite žicu po duljini i nanesite malo lema na iglu na prekidaču i na kraj žice. Lemite crveni kabel iz držača baterije izravno na vanjski pin prekidača. Gurnite komad toplinske cijevi preko spoja kako biste ga zaštitili i ojačali. Druga žica ide od srednjeg pina prekidača do PCB -a. Lemite žicu na prekidač kao što je gore opisano. Zaštitite spoj toplinskom cijevi. Drugi kraj lemite u odgovarajuću rupu na PCB -u.

Korak 12: Priprema audio priključka

Priprema audio priključka
Priprema audio priključka
Priprema audio priključka
Priprema audio priključka
Priprema audio priključka
Priprema audio priključka

Sve su žice do audio priključka prilično kratke. Nanesite malo lemljenja na igle na utičnici i žici, a zatim ih lemite na mjesto. Klizite komade cijevi za hlađenje preko spojeva kako biste ih zaštitili i ojačali. Žica za uzemljenje može se lemiti izravno u svoju rupu. Svaki od krajeva signalnih žica dijeli rupu s jednim krajem otpornika. Pripremite žicu i otpornik tako što ćete zavrnuti krajeve i nanijeti malo lema. Rupu u koju oni ulaze treba izbušiti na 3/64 kako bi se prilagodile dvije žice. Lemiti na mjesto.

Korak 13: Priprema prekidača s tipkama

Priprema prekidača na gumb
Priprema prekidača na gumb
Priprema prekidača na gumb
Priprema prekidača na gumb
Priprema prekidača na gumb
Priprema prekidača na gumb

Pripremite kratki komad čvrste žice oblikujući ga u obliku slova U koji dobro pristaje na dno prekidača. Nanesite mrlju lemljenja na obje strane rupe - ostavite prostor za prekidač - i postavite prekidač na mjesto. Otopite lem i gurnite žicu na mjesto. Pustite da se lem stvrdne i ponovite s druge strane. To bi trebalo postaviti i učvrstiti prekidač na mjestu. Pripremite dva komada namotane žice rezanjem po duljini i skidanjem oba kraja. Pazite da žice budu dovoljno dugačke da se poklopac limenke može potpuno otvoriti. Lemite na dvije odgovarajuće igle na prekidaču, a zatim gurnite komade cijevi za hlađenje preko zglobova kako biste ih zaštitili i ojačali. Lemite druge na krajeve u odgovarajuće rupe na ploči. Pažljivo provucite žice između LED dioda i pazite da ne sjednu na baterije. Raširio sam dva pina na prekidaču tako da je krajnja desna LED dioda kliznula između njih. Igle na prekidaču su VRLO krhke (ostale dvije su se otkinule). Imajte na umu da je pin PA7 PCINT7 6 postavljen za osluškivanje promjene stanja. Pritiskom na tipku prekidač povlači pin visoko i SIGNAL (PCINT0_vect) se izvršava. Na temelju duljine pritiska tipke, ili se ništa ne događa (sirovo otkazivanje), stanje je napredno (kratki pritisak) ili je program napredan (dugi pritisak).

Korak 14: Zatvaranje poklopca

Zatvaranje poklopca
Zatvaranje poklopca

Ako je u ovom trenutku sve u redu, htjet ćete zatvoriti lim. Pritom morate biti vrlo oprezni u pogledu položaja LED dioda. Smatram da ih moram gurati odvijačem s tankim oštricama kako bi bili ispravno postavljeni u svoje rupe. Pritisnite malo prema dolje na poklopcu dok manevrirate LED diodama na mjestu i one će na kraju skliznuti na svoje mjesto. Možda ćete morati postaviti žice tako da padaju između, a ne na komponente. Također, iglice prekidača s tipkama možda će se morati saviti s puta.

Preporučeni: