Dzień dobry, dziś chcę podzielić się instrukcjami na temat tworzenia zegarków opartych na Attiny 85 z wyświetlaczem Oled. Funkcje mojego zegarka nie są ograniczone do mojego zegarka. Można je również wykorzystać jako pulpit, a także zmiażdżyć cyfrowy czujnik temperatury.
Do robienia domowej roboty będziemy potrzebować:
- Pasek syntetyczny (dowolny kolor)
- Rzep na ubrania
- Digispark Attiny85
- Wyświetlacz Oled o rozdzielczości 128x64, I2C
- ds18b20 - cyfrowy czujnik temperatury (opcjonalnie)
- Rezystor 4,7 Kom 0,25 W.
- Arduino Płyta z oprogramowaniem Digispark Attiny85 (programator ISP)
- Arkusz cienkiego plastiku
- Kolorowe druty
- Złącza „żeńskie” Dupont 2,54 mm
- Przyciski 2 szt.
- Mała płytka drukowana lub mały kawałek płytki drukowanej
- Lutownica, lut, kalafonia
- Nić, igła, nożyczki
- nóż biurowy
- Pistolet do klejenia na gorąco
- Gorący klej
- Taśma dwustronna
Krok 1 Przygotowanie pasa.
Możesz kupić pasek w dowolnym sklepie z robótkami ręcznymi. Wybierz pasek o szerokości 25 mm. Dowolny kolor. Potrzebujemy paska około 50 cm. Złóż nasz pasek na pół i zszyj wzdłuż krawędzi. Następnie na środku paska wykonujemy szczelinę, ale tylko w jednej części. Zszyj rzep z końców paska.
Odłóż nić z igłą na bok i weź lutownicę.
Krok 2 Przygotuj tablicę i wyświetlacz OLED.
„Mózgiem” naszego zegarka będzie kontroler Digispark Attiny85. Są dostępne w kilku wersjach. Powinieneś kupić płytkę ze złączem Micro USB. Inne wersje planszy nie mieszczą się w etui do zegarka.
Jeśli kupiłeś tablicę z lutowanymi kontaktami, powinieneś najpierw je sprzedać. Następnie bierzemy druty w różnych kolorach, potrzebujemy 9 różnych kolorów. Odetnij około 15 cm od każdego drutu, usuń go i przylutuj do Attiny85. Natychmiast warto zanotować, który drut, do którego lutowany jest pin, aby nie pomylić się później.
W moim przypadku druty według kolorów wyglądają tak:
PB0 MOSI - żółty
PB1 MISO - niebieski
PB2 CSK - niebieski
PB3 - Fioletowy
PB4 - biały
PB5 NRES - szary
GND - czarny
+5 - czerwony
Vin - Orange
Twoje kolory drutów mogą się różnić, najważniejsze jest, aby je zapisać.
Przejdźmy do ekranu. Użyjemy wyświetlacza OLED. Rozdzielczość ekranu 128x64, działa na magistrali I2C. W sprzedaży dostępne są ekrany w różnych kolorach: biały, niebieski, niebieski z żółtym. Ostrożnie! Słowo „dwukolorowe” w opisie i tytule tego ekranu wskazuje na obecność paska koloru innego niż główny na górze ekranu, a nie na możliwość wyświetlania dwóch kolorów na tym ekranie! Wszystkie ekrany tego typu wyświetlają tylko jeden kolor, lub na górze pasek jednego koloru, na dole innego. Podobał mi się niebieski ekran z żółtym paskiem u góry. Kolor nie odgrywa specjalnej roli, wybierz, który ci się podoba. Podobnie jak w przypadku Attiny85, jeśli kupiłeś ekran z lutowanymi kontaktami, najpierw je odsprzedaj.
Z tyłu ekranu należy lutować małe przewody. Lepiej jest używać drutów o takich samych kolorach jak w Attiny85, aby nie pomylić ich później. W moim przypadku lutuję żółty przewód do SDA ekranu, do SCL - niebieski, GND - czarny, VCC - czerwony.
Na taśmie dwustronnej przymocowujemy Attiny85 z tyłu ekranu Oled. Attiny85 nie powinien wykraczać poza planszę ekranową Oled.
Lutujemy razem Attiny85 i Oled.
PB0 MOSI Attiny85 - Żółty - SDA Oled
PB2 CSK Attiny85 - Niebieski - Oled SCL
GND Attiny85 - Czarny - GND Oled
+5 Attiny85 - czerwony - VCC Oled
Zbieramy wszystkie druty w jednym rzędzie, aby uzyskać pętlę. Nawijamy ją taśmą elektryczną w kilku miejscach, aby się nie rozpadła.
Idź do mocy naszych zegarków. Aby to zrobić, weź małą baterię litową. Przylutuj do niego przewody.
Jeśli nie ma baterii, można użyć baterii typu A27 lub A23.
Umieszczamy akumulator lub akumulator w najdalszym rogu kieszeni utworzonej przez złożony pasek na pół. Jeśli używasz baterii, zapewnij gniazdo, aby ją wymienić.
W otworze wykonanym pośrodku paska wystajemy kabel z drutów.
I rozciągamy je do końca paska, aby wystawały, a zegarek znajduje się dokładnie nad szczeliną, dzięki czemu szczelina zamyka się na wiele godzin.
Odcinamy nadmiar i zaciskamy wszystkie przewody w złączach „macierzystych” Dupont 2,54 mm. Wkładamy go do plastikowych skrzynek i owijamy taśmą elektryczną, aby uzyskać zgrabne złącze ze wszystkimi przewodami Attiny85. Tutaj również warto napisać, a nawet lepiej naszkicować wszystkie styki powstałego złącza. GND Attiny, GND Oled i minus baterii mogą być natychmiast podłączone i zaciśnięte w jeden styk. W celu dalszego wypełnienia szkicu i podłączenia dodatków najwygodniej jest ustawić kontakty w następujący sposób:
PB0 | PB1 | PB2 | PB5 | +5 ATTINY | GND ATTINY
PB3 | PB4 | VCC OLED | GND OLED | Vin ATTINY | + BAT
Czas przejść do ciała.
Krok 3 Dokonywanie sprawy.
Do ciała potrzebujesz cienkiego plastiku. Można go kupić w sklepie internetowym. Lub możesz kupić teczkę z grubą plastikową osłoną w sklepie papierniczym i zrobić skrzynkę z okładki. Na plastiku zaznaczamy przebieg zegarka. Linie ciągłe to linie przerywane, linie przerywane - zgięcie.
Za pomocą noża biurowego ostrożnie wytnij okno pośrodku. Zaginamy wszystkie linie kropkowane. Powinno to wyglądać tak:
A po drugiej stronie:
Kładziemy szczelinę na ekranie, wyginamy krawędzie i, używając kleju topliwego, montujemy nasze ciało. Warto również przykleić obudowę do paska, najlepiej wewnątrz, aby klej nie wyszedł.
Krok 4 Przygotowanie środowiska programowania.
Do pracy z oprogramowaniem (lub szkicem) użyjemy Arduino IDE. Pobierz archiwum lub instalatora z oficjalnej strony Arduino IDE.
Ponadto musimy dodać obsługę Attiny do Arduino IDE. Aby to zrobić, uruchom Arduino IDE, a następnie Plik - Ustawienia - w polu „Adresy URL dodatkowych menedżerów tablic” wstaw link:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Kliknij OK (w tym polu możesz wprowadzić kilka łączy oddzielonych przecinkiem). Następnie przejdź do Narzędzia - Zarząd - Zarząd desek w polu filtra, wpisz Attiny i wybierz „attiny by David A. Mellis”. Kliknij Zainstaluj i poczekaj na zakończenie pobierania.
Będziesz także potrzebować biblioteki do pracy z ekranem Oled. Jest ich wiele, podobało mi się i polecam użycie TinyOzOLED. Jest wygodny, a co najważniejsze, mieści się w pamięci:
W przyszłości możesz rozszerzyć funkcjonalność zegarka, dodając czujnik temperatury. Natychmiast dodaj bibliotekę dla tego czujnika. Biblioteka OneWire.
Zainstaluj te biblioteki. Aby to zrobić, możesz bezpośrednio w środowisku programistycznym Arduino IDE, bez rozpakowywania pobranych archiwów, wybierz menu Sketch - Connect Library. U góry listy rozwijanej wybierz element „Dodaj bibliotekę ZIP.” W wyświetlonym oknie dialogowym wybierz bibliotekę, którą chcesz dodać, w tym przypadku dwie pobrane. Teraz ponownie otwórz menu Szkic - Połącz bibliotekę. Na samym dole listy rozwijanej powinny znajdować się nowe biblioteki. Odtąd biblioteki mogą być używane w programach. Po tym wszystkim zrestartuj Arduino IDE. Możesz też po prostu rozpakować plik do folderu „bibliotek” znajdującego się w folderze z zainstalowanym Arduino IDE.
Krok 5 Przygotowanie programatora.
Digispark Attiny85 można zaprogramować za pomocą złącza micro USB na płycie za pomocą Arduino IDE. Musisz jednak poświęcić 2 KB pamięci Flash o pojemności 8 KB dla bootloadera.Szkic zegarka nie pasuje do bootloadera, więc musisz użyć programatora ISP, usuwając w ten sposób bootloader. Jeśli nie masz pod ręką programisty ISP (takiego jak mój), możesz zamiast tego użyć płyty Arduino. Użyję Arduino Uno. Ale możesz użyć dowolnej innej planszy. Tak więc podłączamy Arduino Uno do komputera. Uruchom Arduino IDE, otwórz Plik - Przykłady - Arduino ISP. Wybierz z menu Narzędzia - Tablica - Arduino Uno. Wybieramy port, do którego jest podłączony, Arduino i klikamy download. Szkic rozpoczyna się od podpowiedzi, jak podłączyć Arduino do programowalnego kontrolera.
// 10: reset slave
// 11: MOSI
// 12: MISO
// 13: SCK
Schemat połączenia z Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Krok 6 Przygotuj drut do załadowania szkicu.
Istnieje kilka opcji szkicu i dla wygody pobierania wyprodukujemy drut łączący Arduino Uno (jako programista ISP) z naszym zegarkiem. Tutaj również zalecam stosowanie kolorowych drutów, które pasują do koloru, którego już używaliśmy. Z jednej strony powinien istnieć blok:
PB0 Żółty | PB1 niebieski | PB2 Niebieski | PB5 Szary | +5 czerwonych | GND Czarny
Ten blok łączy się z zegarkiem u góry bloku zegarka.
Z drugiej strony istnieją dwa pady do podłączenia do Arduino Uno:
Pin 10 szary | Pin 11 Żółty | Pin 12 niebieski | Pin 13 Niebieski
+5 czerwonych | GND Czarny
Powinno to wyglądać mniej więcej tak:
Krok 7 Oprogramowanie układowe.
Napisałem więc opcje szkicu dla naszych zegarków. Później napiszę, jakie są różnice i przedstawię wszystko. Aby wypełnić szkic, uruchom Arduino IDE, wybierz menu Narzędzia, ustaw następujące parametry:
Zarząd - Attiny 25/45/85
Procesor - Attiny 85
Zegar - wewnętrzny 16
Wybierz port szeregowy, do którego podłączony jest programator ISP lub Arduino jako programator. Ponadto w menu Narzędzia - programator wybierz „Arduino jako ISP”. Teraz wybierz Szkic - Pobierz za pomocą programatora. Pozostaje czekać na zakończenie pobierania.
Krok 8 Szkice.
Pierwsza opcja to zegarek z datą. Aby ustawić czas, musisz podłączyć przyciski, coś takiego:
Do pinów PB1, PB3, PB4.
Druga opcja to tylko zegarek. Aby ustawić czas, musisz użyć USB-TTL.
I trzecia opcja, zegar biurkowy z datą i termometr.
Krok 9 Uruchom.
Aby uruchomić zegar, jeśli używasz baterii litowej, musisz zainstalować zworkę w bloku między stykami BAT, +5 i VCC. Możesz użyć małego kawałka cienkiego drutu. Jeśli masz baterię, potrzebujesz dwóch zworek, umieść pierwszy między BAT a Vin, drugi - + 5 i VCC.