Spisu treści:
- Krok 1: Tło
- Krok 2: Główne komponenty sprzętowe
- Krok 3: Łączenie wszystkiego w całość
- Krok 4: Niestandardowa płytka drukowana
- Krok 5: Obudowa
- Krok 6: Konfiguracja Raspberry Pi
- Krok 7: Oprogramowanie
- Krok 8: Co dalej?
Wideo: Zegar z powrotem do przyszłości: 8 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Ten projekt zaczął życie jako budzik dla mojego syna. Stworzyłem go tak, by wyglądał jak obwód czasu z Powrotu do Przyszłości. Wyświetlacz może pokazywać czas w różnych formatach, w tym oczywiście z filmów. Można go skonfigurować za pomocą przycisków na górze obudowy, ale także za pośrednictwem strony internetowej obsługiwanej przez Raspberry Pi Zero wewnątrz. W jednym z trybów wyświetlania pokaże lokalną pogodę (z mojej stacji pogodowej Arduino), a także prognozę i wszelkie codzienne przypomnienia, skonfigurowane za pomocą interfejsu internetowego. Ma również dźwięk dzięki przetwornikowi cyfrowo-analogowemu i będzie przesyłać muzykę za pomocą protokołu AirPlay. Dźwiękiem alarmu może być dowolny wybrany plik audio. Automatycznie przyciemnia i rozjaśnia wyświetlacz o określonych porach dnia (np. świt i zmierzch).
Krok 1: Tło
W zeszłym roku szukałem nowego projektu Arduino, właśnie skończyłem mój pierwszy w historii, domową stację pogodową. Mój 11-letni syn po raz pierwszy obejrzał film Powrót do przyszłości, więc pomyślałem, że fajnie byłoby zbudować mu na urodziny budzik, który wyglądałby jak obwód czasowy w Delorean. To nie jest nowy pomysł, istnieje sporo podobnych projektów (na przykład ten), więc pomyślałem, że fajnie byłoby uczyć się od innych i zdobywać nowe umiejętności.
Pierwsza wersja działała całkiem dobrze (nie była gotowa na jego urodziny: zrobiłem to przed świętami Bożego Narodzenia), ale byłem dość ambitny w tym, co chciałem, i stwierdziłem, że mój szkic wciąż przekracza limit pamięci Arduino. Miałem też kilka małych zewnętrznych modułów sprzętowych (WiFi, odtwarzacz MP3, wzmacniacz audio, RTC itp.), więc wszystko stawało się trochę nieporęczne. W końcu zdecydowałem się przejść na platformę Raspberry Pi, która uprościła sprzęt i pozwoliła mi zapakować o wiele więcej funkcji i funkcji.
Krok 2: Główne komponenty sprzętowe
W pudełku
Oto elementy elektroniczne, których użyłem. Większość z nich pochodziła z Core Electronics w Australii, ale oczywiście są one również łatwo dostępne w innych miejscach:
- 4 x poczwórny wyświetlacz alfanumeryczny - żółto-zielony
- Raspberry Pi Zero W
- Pimoroni pHAT DAC dla Raspberry Pi Zero
- Wzmacniacz audio (PAM8403 IC)
- Zasilacz Raspberry Pi 3+
- 4 x zworka - 0,1", 5-pinowa, 12"
- 40-pinowy (2 x 20) kabel taśmowy
- Złącze męskie GPIO Raspberry Pi
- Raspberry Pi Model B - osłonięty nagłówek GPIO (2X20)
- GPIO Stacking Header dla Pi A+/B+/PI 2/PI 3 - bardzo długi 2X20
- 4 x 5-pinowy męski nagłówek
- 2 małe głośniki 3W
- 2 x kable koncentryczne do analogowego połączenia audio DAC do Amp
- Veraboard lub niestandardowa płytka drukowana do obsługi Rpi do wzmacniacza, diody LED, przycisków
- 5 x chwilowych przełączników przyciskowych
- 4 x 2-drożne złączki śrubowe do montażu na płytce drukowanej
Pudełko
- Kawałki i kawałki MDF, śruby i śruby do „podwozia”
- Pleksi barwione na zielono, lokalny dostawca
- Styren, klej modelarski, farba w sprayu (kolor aluminium) z lokalnego sklepu hobbystycznego
-
Naklejki (plik dostępny na życzenie - wydrukowany przez Redbubble)
Krok 3: Łączenie wszystkiego w całość
Wyświetlacz LED zegara składa się z 16x14-segmentowych wyświetlaczy alfanumerycznych, na szczęście takiej samej liczby znaków jak obwód czasu Powrót do przyszłości. Chociaż tylko pierwsze trzy znaki muszą być alfanumeryczne, a reszta może być 7-segmentowymi wyświetlaczami numerycznymi, aby emulować rekwizyt filmowy, postanowiłem uczynić je wszystkie alfanumerycznymi, aby zapewnić pewną elastyczność w wyświetlaniu i aby wszystkie wyglądały jak To samo. Quad-plecaki Adafruit są tutaj świetnym rozwiązaniem i mogą być uruchamiane na magistrali I2C Raspberry Pi. Więcej informacji na temat tych jednostek i sposobu ich podłączenia można znaleźć tutaj na stronie internetowej Adafruit. Jedyną nieco niestandardową rzeczą, którą musiałem zrobić, to zmienić adresy trzech z nich, aby każdy plecak był niepowtarzalny.
Aby odtwarzać dźwięk (w stereo), dołączyłem przetwornik cyfrowo-analogowy Pimoroni pHAT oraz 2 x 3W stereofoniczny wzmacniacz audio oparty na układzie PAM8403. DAC pHAT jest naprawdę łatwy do podłączenia do Pi. Umieściłem męskie złącze 2 x 20 pin na Pi i złącze GPIO do łączenia w stos na przetworniku cyfrowo-analogowym, aby można je było podłączyć jeden na drugim. Męskie styki nagłówka przechodzą przez górną część przetwornika cyfrowo-analogowego, co pozwala mi na poprowadzenie kabla taśmowego ze złączami żeńskimi, początkowo do złącza Raspberry Pi w celu przetestowania płytki stykowej, ale ostatecznie do osłoniętego nagłówka na wykonanej na zamówienie płytce drukowanej.
W przypadku wzmacniacza audio istnieje wiele opcji (w tym po prostu uzyskanie układu i złożenie własnego). Ten ma możliwość wyciszenia wyjścia poprzez zmianę stanu jednego z pinów (wysoki jest włączony, niski jest wyłączony) i podłączyłem go, aby można było nim sterować z Pi. Podczas moich pierwszych prób podłączenia tego połączenia odkryłem sporo szumów w tle, gdy dźwięk był włączony. Po wielu zabawach z uziemieniem, w końcu spróbowałem przenieść napięcie zasilania wejściowego z 5 V na 3,3 V i to naprawiło. Wydaje mi się, że jest sporo szumu generowanego przez różne sygnały cyfrowe, ale wydaje się, że zasilanie 3,3 V jest w jakiś sposób izolowane.
Inne połączenia obejmują dźwięk analogowy z przetwornika cyfrowo-analogowego do wzmacniacza (użyłem tutaj kabla koncentrycznego, aby pomóc w zarządzaniu odbieraniem szumów) i wyjście audio do pary małych głośników o mocy 3 W, które mieszczą się w obudowie. Istnieją również połączenia GPIO dla czterech przełączników chwilowych na górze pudełka i podłączyłem przycisk chwilowy do pinów „RUN” twardego resetu (patrz sekcja Dodatkowe połączenia na tej stronie). Przycisk resetowania jest montowany z tyłu obudowy poza zasięgiem wzroku. Oto schemat przedstawiający połączenia:
Krok 4: Niestandardowa płytka drukowana
Chociaż w obwodzie nie ma nic zbyt skomplikowanego, jest sporo okablowania, a płytka stykowa może dość szybko wyglądać jak spaghetti. Dlatego zaprojektowałem płytkę PCB, aby mieć wszystko pod kontrolą. Jest to jednostronna deska do samodzielnego parzenia, a do pomocy przy jej przygotowaniu poprosiłem znajomego. Po wykonaniu i okablowaniu zdałem sobie sprawę, że zapomniałem dołączyć połączenia dla listew zaciskowych dla dźwięku, a później wprowadziłem zmianę, aby przenieść zasilanie wzmacniacza audio z 5 V na 3,3 V, więc nie jest to idealne i musiałem się przyczepić niektóre Veroboard, aby umożliwić połączenia audio. Ponadto pinouty płyty wzmacniacza audio znajdują się w niestandardowej separacji (różnią się nawet między pinami), więc połączenie tego z główną płytką drukowaną jest trochę okropne z 11 krótkimi przewodami połączeniowymi o długości około 1 cm.
Gdybym zrobił inną płytkę, to uwzględniłbym wszystkie te modyfikacje, a także zmieniłbym złącze dla czterech przycisków na coś ładniejszego. DAC i Pi układałyby się bezpośrednio na górze, więc nie jest potrzebny kabel taśmowy. Powyższy schemat pokazuje, jak to może wyglądać.
Krok 5: Obudowa
Chciałem zrobić obudowę, która wyglądałaby jak jeden rząd obwodu czasu filmu. Trzy rzędy wyświetlaczy LED byłyby za dużo jak na budzik i znacznie zwiększyłyby koszty. Myślałem o zrobieniu obudowy z aluminium, ale nie mam w tym żadnych umiejętności. W swoim życiu zrobiłem jednak sporo modeli plastikowych i mam trochę doświadczenia w obróbce drewna, więc postanowiłem zrobić ramę z płyty MDF do zamontowania diod LED i głośników oraz przymocować pleksiglas z przodu, a następnie pokryć ją 5-stronnym styrenem pudełko z ramką z przodu, pomalowane aluminiową metaliczną farbą w sprayu. Plastik i farbę uzyskano z lokalnego sklepu modelarskiego. Przyjrzałem się uważnie etykietom na rekwizycie filmowym i starałem się skopiować kolory, rodzaj i rozmiar czcionki. Użyłem Photoshopa do stworzenia etykiet i wydrukowałem je jako naklejki z Redbubble.
Powyższe zdjęcia pokazują:
- Przód podwozia MDF. Plecaki z 4 diodami LED są zamontowane z przodu za pomocą zabarwionego na zielono pleksiglasu
- W pudełku. Plecaki wszystkie zamontowane i ustawione, Raspberry Pi i niestandardowa płytka drukowana, głośniki po obu stronach.
- Zainstalowane okablowanie i zewnętrzna powłoka gotowa do pracy. To było trochę ucisku!
Krok 6: Konfiguracja Raspberry Pi
Miałem pewne problemy ze zgodnością z Raspbian Stretch (które mogły zostać rozwiązane, gdybym się upierał), ale Jessie dobrze sobie z tym radzi, więc zdecydowałem się na to.
Skonfigurowałem Pi jako jednostkę bezgłową z dostępem VNC i SSH. Mogło to zostać zrobione bez podłączania klawiatury lub monitora, ale po prostu pożyczyłem telewizor i wygrzebałem klawiaturę, i całkiem szybko skręciłem. Od tego czasu prawie używam VNC.
Mój kod zegara używa Pythona 2.7.9 i opiera się na kilku bibliotekach wymienionych poniżej. Oprócz tego używam serwera sieciowego Flask i MQTT do zdalnego sterowania i Shairplay do strumieniowego przesyłania muzyki. Po prostu postępowałem zgodnie z uwagami dotyczącymi instalacji on-line i nie miałem żadnych problemów. Oto biblioteki Pythona i inne pakiety itp., które musiałem zainstalować, korzystając z linków do notatek instalacyjnych lub po prostu polecenia, które musisz uruchomić, aby je uzyskać:
Biblioteki Pythona
- Adafruit_LED_Plecak
- Rpi. GPIO (apt-get install python-rpi.gpio)
- alsaudio
- paho.mqtt.client (pip zainstaluj paho-mqtt)
- flask (apt-get install python-flask)
Inne pakiety itp
- komar (apt-get install mosquito)
- port lotniczy
- Witryna internetowa Pimoroni zawiera dobrą dokumentację dotyczącą konfigurowania DAC-a, więc po prostu z tym pobiegłem.
Krok 7: Oprogramowanie
Kod zegara został napisany w Pythonie i wykorzystuje wątki do odtwarzania alarmu i sporadycznych sygnałów dźwiękowych w tle bez blokowania aktualizacji wyświetlacza. Użyłem biblioteki ConfigParser, a plik konfiguracyjny, który utrzymuje, jest odczytywany i zapisywany przez kod zegara, a także przez aplikację internetową Flask, dzięki czemu za każdym razem, gdy konfiguracja zostanie zmieniona za pomocą interfejsu internetowego lub zegara, zostanie zsynchronizowana. Oprogramowanie zegara zawiera również brokera MQTT, który umożliwia zdalne sterowanie trybem wyświetlania i wyciszaniem. Moim ukrytym motywem jest ostatecznie napisanie aplikacji na iOS do zdalnego sterowania, ale interfejs sieciowy na razie działa wystarczająco dobrze.
Pierwszy obrazek powyżej pokazuje, jak wygląda zegar w różnych trybach wyświetlania, a także krótki film pokazujący go w trybie przewijania.
Chociaż kod nie jest ładny, jest ładny i stabilny. Z przyjemnością wyślę go każdemu, kto o to poprosi, i umieści go w Internecie, gdy będzie lepiej zorganizowany i skomentowany.
Aplikacja internetowa
Następny obrazek pokazuje, jak wygląda interfejs WWW do zegara. Dostępne są również strony konfiguracji i sterowania, które znacznie ułatwiają grę z zegarem bez zbytniego wciskania przycisków:-).
Krok 8: Co dalej?
Dostępny jest dekoder metadanych Pythona shareport, więc myślę, że dodam trochę kodu, aby wyświetlić informacje, takie jak tytuł i wykonawca, podczas odtwarzania muzyki. Byłoby również dość łatwo obliczyć czas wschodu i zachodu słońca, aby wyświetlacz mógł być automatycznie rozjaśniany i przyciemniany, zamiast ustawiać go ręcznie. Może dodanie funkcji radia internetowego też byłoby zabawne. Przewijany wyświetlacz mógłby być również bardziej konfigurowalny.
Zalecana:
Zegar WiFi, zegar i stacja pogodowa, sterowanie Blynk: 5 kroków (ze zdjęciami)
Zegar WiFi, timer i stacja pogodowa, sterowanie Blynk: jest to zegar cyfrowy Morphing (dzięki Hari Wiguna za koncepcję i kod morfingu), jest to również zegar analogowy, stacja raportowania pogody i minutnik kuchenny. Jest kontrolowany w całości przez Aplikacja Blynk na smartfonie przez Wi-Fi.Aplikacja umożliwia
ESP8266 Zegar sieciowy bez zegara RTC - Nodemcu NTP Zegar bez RTC - PROJEKT ZEGAR INTERNETOWY: 4 kroki
ESP8266 Zegar sieciowy bez zegara RTC | Nodemcu NTP Zegar bez RTC | PROJEKT ZEGARA INTERNETOWEGO: W projekcie będzie wykonywany projekt zegara bez RTC, będzie pobierał czas z internetu za pomocą wifi i wyświetli go na wyświetlaczu st7735
Drukowany w 3D zegar z powrotem do przyszłości: 71 kroków (ze zdjęciami)
Zegar obwodu drukowanego 3D z powrotem do przyszłości: Przedni lewy plik LED.stl był nieprawidłowy i został zaktualizowany. Zegar obwodu czasu wyświetli następujące informacje za pomocą wyświetlaczy LED. Czas docelowy - (Góra-czerwony)Czas docelowy to obszar, w którym wyświetlana jest stała data i godzina. Użyj tego są
Jak tworzyć artefakty z przyszłości w molo 9: 11 kroków (ze zdjęciami)
Jak tworzyć artefakty z przyszłości w molo 9: Przede wszystkim, czym są artefakty z przyszłości? Wyobraź sobie, że możesz zabrać ekspedycję archeologa w przyszłość, aby zebrać przedmioty i fragmenty tekstu lub zdjęć, aby zrozumieć, co przyniesie codzienne życie być jak za 10, 20 lub 50 lat. Arty
Gniazda przyszłości Aka In-wall USB Charger: 7 kroków (ze zdjęciami)
Gniazda przyszłości Aka podtynkowa ładowarka USB: Twój iPhone nie żyje, ktoś uciekł z ładowarką do iPoda, gdyby tylko był tam, gdzie przyszłość i wszystkie gniazdka były USB! Z tej instrukcji dowiesz się, jak przekonwertować standardowe gniazdko na wbudowaną ładowarkę USB. I