To, ko mums reikia, sąrašas:
- „Digispark Attiny85“
- Oled ekranas 128x64 I2C
- „ds18b20“ temperatūros jutiklis
- Rezistorius 4,7 Kom 0,25 W
- IPT programuotojas arba Arduino „Digispark Attiny85“ programinės įrangos plokštė
- Plastikinė tabletė su sąvaržėle arba plono plastiko lakštas
- laidai
- „Dupont“ 2,54 mm „moteriškos“ jungtys
- sagos 2 vnt.
- Maža grandinės plokštė arba maža apdaila
- lituoklis
- Lydmetalis, kanifolija
- žirklės
- kanceliarinis peilis
- Karšto klijų pistoletas
- Karšti klijai
1 veiksmas. Komponentų pasirinkimas.
Kaip pagrindinį valdiklį naudosime „Digispark Attiny85“. Jų yra keletas tipų. Mums reikia plokštės su mikro USB jungtimi. Likusi dalis netilps laikrodžių dėkle.
Norėdami rodyti, mums reikalingas Oled 128x64 I2C ekranas. Jie būna skirtingų spalvų: balta, mėlyna, mėlyna su geltona. Aš atkreipiu jūsų dėmesį! Sąvoka „dviejų spalvų“ šio ekrano aprašyme ar pavadinime reiškia vienos spalvos juosteles ekrano viršuje, o kitos spalvos - visą likusį ekraną, o ne galimybę šiame ekrane parodyti dvi spalvas! Visi šio tipo ekranai rodo tik vieną spalvą, o viršuje - vienos spalvos juostelę, apačioje - kitą. Kaip, pavyzdžiui, tą, kurį naudosiu. Aukščiau esanti juosta yra geltona, likusi ekrano dalis yra mėlyna. Galite pasirinkti bet kurią jums patinkančią spalvą.
Mums taip pat reikia integruoto temperatūros jutiklio DS18B20. Tai nebuvo pasirinkta atsitiktinai. Pirmiausia DS18B20 susisiekia su mikrovaldikliu per vieno laido ryšio liniją, naudodamas 1 laido sąsajos protokolą. Mūsų atveju tai yra svarbu, nes „Attiny85“ išvados be jutiklio yra nedaug. Antra, šis jutiklis yra skaitmuo, tai yra, jis pats imasi visų matavimų ir tiesiog perduoda duomenis apie temperatūrą, neišleisdamas „Attiny85“ skaičiavimo resursų.
Dėl kitų, manau, klausimų nebus, todėl pereikime prie bylos pagaminimo.
2 žingsnis Korpuso surinkimas.
Laikrodžio korpusas bus pagamintas iš plono plastiko. Turėjau plastikinę tabletę su sąvaržėle ant rankų. Tai pakankamai kietas, kad išlaikytų savo formą, ir tuo pat metu jį galima pjaustyti įprastomis žirklėmis ir biuro peiliu. Jis sugalvojo puikiai.Jei jo nėra po ranka, galite nusipirkti planšetinį kompiuterį biuro reikmenų parduotuvėje arba rasti tinkamą plastiką, kuris pakeistų planšetinį kompiuterį. Mes žymime ženklus ant plastiko pagal schemą:
Iškirpkite visas tvirtas linijas. Taškas - šiek tiek supjaustytas kanceliariniu peiliu. Taškinės linijos yra užlenktos linijos. Kaip jūs jau supratote, tai yra įprastas kubo išdėstymas. Kitas, jums reikia lituoti laidus prie ekrano, geriausia pasiimti daugiaspalvius ir užrašyti, kas veda prie ko. Klijuokite ekraną ant karšto lydalo klijų viduryje, kad priekinė pusė išeitų iš jo galo. Kaip matote, mes uždarėme ekrano kaiščių žymėjimus. Todėl reikėjo juos užrašyti. Aš šiek tiek perleidau peiliu ir tokiu būdu nupjaučiau apatinę kūno dalį. Čia nėra nieko blogo, viskas gali būti klijuota. Bet geriau nekartoti mano klaidų.
Rezultatas turėtų būti toks:
Šiuo atveju yra pasirengusi. Jūs vis tiek galite iškirpti galinį dangtelį iš to paties plastiko, tačiau tai nėra privaloma.
3 žingsnis Mes lituojame.
Mūsų atvejis yra mažas, ir mes turime daug ką ten sutramdyti. Todėl mes paimame ne didesnį kaip 2,8 x 2,8 mm plokštės gabalą ir lydmetalį dviem mygtukais, jutikliu ds18b20, rezistoriumi ir keliais kontaktais. Pagal šią schemą:
Nebūtina lituoti laidų tiesiai į „Attiny“, nes viską reikia atjungti, kad galėtum įsigyti programinę-aparatinę įrangą. Rezultatas turėtų būti kažkas tokio:
Mygtukai reikalingi laikui nustatyti. Maitinti galima iš kompiuterio USB prievado. Derinant atitinkamai pliusą ir minusą:
Jei norite išsiversti be laidų, turite rasti nedidelę ličio jonų bateriją. Štai vienas, pavyzdžiui:
Ši baterija tinka korpuso viduje. Būtina pateikti tik išvadas apie akumuliatoriaus įkrovimą.
4 žingsnis. Programuotojo paruošimas.
„Digispark Attiny85“ galima programuoti per plokštės „micro USB“ jungtį, naudojant programavimo aplinką „Arduino IDE“. Bet tuo pačiu metu jūs turite paaukoti 2 KB atminties įkrovos įkrovikliui. „Attiny 85“ iš viso turi 8 KB „Flash“. Mano eskizas netinka įkrovos kaupikliui, todėl turiu programuoti per IPT programuotoją. Aš tokio programuotojo neturiu, bet yra „Arduino Uno“ plokštė, kurią naudosiu kaip programuotoją. Jei turite ISB programuotoją, galite šį elementą praleisti. Atidarykite „Arduino IDE“ ir užpildykite mūsų „Arduino Uno“ eskizą pavadinimu „ArduinoISP“. Galite rasti šį failą - pavyzdžiai - „Arduino ISP“. Eskizas pradedamas patarimu, kaip prijungti „Arduino“ prie programuojamo valdiklio. Vietoj Arduino Uno gali būti ir bet kuri kita Arduino lenta.
// 10: vergo atstatymas
// 11: MOSI
// 12: MISO
// 13: SCK
„Digispark Attiny85“ prijungimo schema:
„Arduino UNO“ - „Digispark Attiny85“
D11 - P0
D12 - P1
D13 - P2
D10 - P5
5 žingsnis. Programavimo aplinkos paruošimas.
Norėdami redaguoti programinę-aparatinę įrangą ir užpildyti eskizą programoje „Attiny 85“, turite paruošti ne tik programuotoją, bet ir pačią programavimo aplinką. Norėdami tai padaryti, įdiekite „Arduino IDE“ iš oficialios „Arduino.cc“ svetainės, taip pat per „Boards Manager“ įdiekite mikrokontrolerių „Attiny“ priedą.
Paleiskite „Arduino IDE“, tada Failas - Nustatymai - lauke „Papildomos plokštės tvarkyklės URL“ įklijuokite nuorodą:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
spustelėkite Gerai (šiame lauke galite įvesti keletą nuorodų, atskirtų kableliu). Kiti įrankiai - Lenta - Lentų tvarkytuvė filtro lauke įveskite Attiny ir spustelėkite „Atyvas, kurį sukūrė Davidas A. Mellis“. Spustelėkite Įdiegti ir palaukite, kol atsisiuntimas bus baigtas. Dabar meniu Įrankiai pasirinkite:
Lenta - Attiny 25/45/85
Procesorius - „Attiny 85“
Laikrodis - vidinis 16
ir pasirinkite nuoseklųjį prievadą, prie kurio prijungtas IPT programuotojas arba „Arduino“.
Išbandžiau daugybę skirtingų bibliotekų darbui su ekranu. Mano manymu, patogiausias ir dirbantis su Attiny85: TinyOzOLED.
Temperatūros jutikliui reikia „OneWire“ bibliotekos.
Įdiekite šias dvi bibliotekas. Trečiųjų šalių bibliotekas galite įdiegti tiesiogiai programavimo aplinkoje. Neišpakavę atsisiųstų archyvų, „Arduino IDE“ pasirinkite meniu „Sketch - Connect Library“. Pačiame išskleidžiamojo sąrašo viršuje pasirinkite elementą Pridėti .Zip biblioteką. Atsidariusiame dialogo lange pasirinkite biblioteką, kurią norite įtraukti. Dar kartą atidarykite meniu „Sketch - Connect Library“. Pačiame išskleidžiamojo sąrašo apačioje turėtumėte pamatyti naują biblioteką. Dabar biblioteka gali būti naudojama programose. Nepamirškite iš naujo paleisti „Arduino IDE“ po viso šito.Jei tai nepadeda, tiesiog išpakuokite archyvus į „bibliotekų“ aplanką, esantį aplanke, kuriame įdiegta „Arduino IDE“.
6 veiksmas Redaguokite ir užpildykite eskizą.
Temperatūros jutiklis veikia pagal „One Wire“ protokolą ir turi unikalų kiekvieno įrenginio adresą - 64 bitų kodą. Nepakanka išteklių, kad kaskart ieškotumėte šio kodo. Todėl pirmiausia turite prijungti jutiklį prie bet kurios „Arduino“ plokštės, užpildykite eskizą, esantį meniu Failas - Pavyzdžiai - Dalaso temperatūra - „OneWireSearch“. Tada paleiskite „Tools - Port Monitor“. Arduino turėtų rasti mūsų jutiklį, parašyti jo adresą ir esamus temperatūros rodmenis. Nukopijuojame arba tiesiog užrašome savo jutiklio adresą. Atidarykite „Attiny85_Oled_SPI_Term_2“ eskizą, ieškokite eilutės:
baitų adr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Mes užrašome jūsų jutiklio adresą tarp petnešų, pakeisdami mano jutiklio adresą. Po to prijunkite „Attiny“ prie programuotojo arba „Arduino“ kaip programuotoją (tai aprašyta 4 žingsnyje) ir užpildykite eskizą. Belieka atjungti programuotoją ir viską susieti pagal schemą 3 etapais. Surinkimas paaiškėja maždaug taip:
Ekranas yra mažas, neįmanoma pateikti tiek laiko, tiek temperatūros, kad jis būtų matomas. Todėl laikrodis keičia laiką su temperatūros rodmeniu kas 10 sekundžių.