Popis onoga što trebamo:
- Digispark Attiny85
- Oledni zaslon 128x64 I2C
- senzor temperature ds18b20
- Otpornik 4,7 Kom 0,25 W
- ISP programer ili Težak Ploča firmvera Digispark Attiny85
- Plastična tableta s spajalicom za papir ili list tanke plastike
- žice
- Dupont 2,54 mm „ženski“ konektori
- Gumbi 2 kom.
- Mala pločica ili mala obloga
- lemljenje željeza
- lem, kolofonija
- škare
- svećenički nož
- pištolj s vrućim ljepilom
- Vruće ljepilo
Korak 1 Odabir komponenata.
Kao glavni kontroler koristit ćemo Digispark Attiny85. Postoji nekoliko vrsta njih. Trebamo ploču s mikro USB priključkom. Ostatak se neće uklopiti u futrolu satova.
Za prikaz nam je potreban Oled 128x64 I2C zaslon. Dolaze u različitim bojama: bijela, plava, plava sa žutom. Skrećem vam pažnju! Izraz "dvobojna" u opisu ili naslovu ovog zaslona znači traku jedne boje na vrhu zaslona, a drugu boju cijeli preostali zaslon, a ne mogućnost prikazivanja dvije boje s ovim zaslonom! Svi zasloni ove vrste prikazuju samo jednu boju ili pri vrhu traku jedne boje, a na dnu drugu. Kao na primjer onaj koji ću koristiti. Vrh iznad je žut, ostatak zaslona plav. Možete odabrati bilo koju boju koja vam se sviđa.
Također nam je potreban integrirani temperaturni senzor DS18B20. Nije izabran slučajno. Prvo, DS18B20 komunicira s mikrokontrolerom preko jednožilne komunikacijske linije pomoću protokola 1-Wire sučelja. U našem slučaju to je važno jer su zaključci Attiny85 bez senzora malo. Drugo, ovaj je senzor znamenka, to jest, on sam vrši sva mjerenja i jednostavno prenosi temperaturne podatke bez trošenja računalnih resursa Attiny85.
Što se tiče ostatka, mislim da više neće biti pitanja, pa krenimo na proizvodnju slučaja.
Korak 2 Montaža kućišta.
Futrola sata bit će izrađena od tanke plastike. Na rukama sam imao plastični tablet s spajalicom za papir. Dovoljno je čvrst da drži oblik, a istovremeno se može rezati običnim škarama i uredskim nožem. Savršio se savršeno.Ako vam nije pri ruci, tablet možete kupiti u prodavaonici uredskog materijala ili pronaći odgovarajuću plastiku koja će zamijeniti tablet. Oznake izrađujemo na plastici prema shemi:
Izrežite sve čvrste crte. Točkano - malo izrezano klerikalnim nožem. Točkaste linije su preklopi. Kao što ste već shvatili, ovo je uobičajeni izgled kocke. Dalje, trebate lemiti žice na zaslon, najbolje je uzeti raznobojne i napisati što dovodi do čega. Na sredinu zalijepite zaslon vrućim ljepilom, tako da prednja strana izlazi sa stražnje strane. Kao što vidite, zatvorili smo oznake igle zaslona. Stoga ih je bilo potrebno zapisati. Lagano sam predao nož i time odsjekao donji dio tijela. Nema tu ništa loše, sve se može zalijepiti. Ali bolje je ne ponavljati moje pogreške.
Rezultat bi trebao biti takav:
O ovom slučaju je spreman. Stražnji pokrov i dalje možete izrezati iz iste plastike, ali to nije obavezno.
Korak 3 Zalijevamo.
Naš je slučaj malen i tamo moramo puno strpati. Stoga uzmemo komad pločice ne veće od 2,8 x 2,8 mm i lemimo u dva gumba, ds18b20 senzor, otpornik i nekoliko kontakata. Prema sljedećoj shemi:
Žice nisu potrebne za lemljenje izravno na Attiny, jer je neophodno odspojiti sve zbog upravljačkog softvera. Rezultat bi trebao biti ovako:
Za postavljanje vremena potrebni su gumbi. Napajanje se može preuzeti s USB porta računala. Kombiniranje plusa i minusa:
Ako želite učiniti bez žica, morate pronaći malu litij-ionsku bateriju. Evo jednog, na primjer:
Ova se baterija uklapa u kućište. Potrebno je samo dati zaključke o napunjenosti baterije.
Korak 4 Priprema programera.
Digispark Attiny85 može se programirati putem mikro USB priključka na ploči, koristeći Arduino IDE kao programsko okruženje. Ali istovremeno morate žrtvovati 2 KB memorije za bootloader. Attiny 85 ima ukupno 8 KB Flash-a. Moja skica se ne uklapa u program za pokretanje programa za podizanje sustava, pa moram programirati preko ISP programera. Nemam takvog programera, ali postoji ploča Arduino Uno, koju ću koristiti kao programer. Ako imate ISB programera, možete preskočiti ovu stavku. Otvorite Arduino IDE i ispunite našu skicu ArduinoISP u našu Arduino Uno. Možete ga pronaći poput ove datoteke - Primjeri - Arduino ISP. Skica počinje nagovještajem kako spojiti Arduino na programirajući kontroler. Umjesto Arduino Unoa, može postojati bilo koja druga Arduino ploča.
// 10: resetiranje robova
// 11: MOSI
// 12: MISO
// 13: SCK
Shema veze s Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Korak 5 Priprema programskog okruženja.
Da biste uredili firmver i ispunili skicu u Attiny 85, morate pripremiti ne samo programera, već i samog programskog okruženja. Da biste to učinili, instalirajte Arduino IDE s službenog web mjesta Arduino.cc, a također instalirajte dodatak za Attiny mikrokontrolere preko Upravitelja ploča.
Pokrenite Arduino IDE, a zatim Datoteka - Postavke - u polje URL-ovi dodatnog odbora upravitelja zalijepite vezu:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
kliknite U redu (u ovo polje možete unijeti nekoliko veza odvojenih zarezom). Sljedeći Alati - Board - Board Board Manager u polje filtera, unesite Attiny i kliknite na "attiny by David A. Mellis". Kliknite Instaliraj i pričekajte da se preuzimanje završi. Sada u izborniku Alati odaberite:
Odbor - Attiny 25/45/85
Procesor - Attiny 85
Sat - unutarnji 16
i odaberite serijski port na koji je kao programer povezan ISP programer ili Arduino.
Isprobao sam mnogo različitih knjižnica za rad s ekranom. Po mom mišljenju najprikladniji i rad na Attiny85: TinyOzOLED.
Senzor temperature treba knjižnicu OneWire.
Instalirajte ove dvije knjižnice. Biblioteke treće strane možete instalirati izravno u programskom okruženju. Bez otpakiranja preuzetih arhiva, u Arduino IDE-u odaberite izbornik Sketch - Connect Library. Na samom vrhu padajućeg popisa odaberite stavku Add .Zip library. U dijaloškom okviru koji se pojavi odaberite knjižnicu koju želite dodati. Otvorite izbornik Sketch - Connect knjižnica ponovo. Na dnu padajućeg popisa trebali biste vidjeti novu knjižnicu. Sada se knjižnica može koristiti u programima. Ne zaboravite ponovo pokrenuti Arduino IDE nakon svega ovoga.Ako to ne pomogne, jednostavno raspakirajte arhive u mapu "biblioteke" koja se nalazi u mapi s instaliranim Arduino IDE.
Korak 6 Uredite i ispunite skicu.
Senzor temperature radi prema protokolu One Wire i ima jedinstvenu adresu za svaki uređaj - 64-bitni kod. Resurni resursi nisu dovoljni da svaki put potražite ovaj kôd. Stoga prvo morate spojiti senzor na bilo koju Arduino ploču, ispuniti skicu koja se nalazi u izborniku Datoteka - Primjeri - Temperatura Dallasa - OneWireSearch. Zatim pokrenite Alati - Port Monitor. Arduino bi trebao pronaći naš senzor, upisati njegovu adresu i trenutna očitanja temperature. Kopiramo ili jednostavno zapisujemo adresu našeg senzora. Otvorite skicu Attiny85_Oled_SPI_Term_2, potražite liniju:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Zapisujemo adresu vašeg senzora između nagrada, zamjenjujući adresu mog senzora. Nakon toga, povežite Attiny s programerom ili Arduinom kao programerom (to je opisano u koraku 4) i ispunite skicu. Ostaje odspojiti programera i spojiti sve prema shemi u 3 koraka. Skupština ispada ovako:
Zaslon je mali, nemoguće je staviti i vrijeme i temperaturu tako da je vidljiv. Stoga sat mijenja vrijeme s očitanjem temperature svakih 10 sekundi.