Съдържание:
- Стъпка 1: Предистория
- Стъпка 2: Основни хардуерни компоненти
- Стъпка 3: Съберете всичко заедно
- Стъпка 4: Персонализирана печатна платка
- Стъпка 5: Приложението
- Стъпка 6: Настройване на Raspberry Pi
- Стъпка 7: Софтуер
- Стъпка 8: Какво следва?
Видео: Часовник „Назад към бъдещето“: 8 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Този проект започна живота като будилник за сина ми. Направих го да изглежда като времевата верига от Назад към бъдещето. Дисплеят може да показва часа в различни формати, включително този от филмите, разбира се. Той може да се конфигурира чрез бутоните в горната част на корпуса, но и чрез уеб страница, обслужвана от Raspberry Pi Zero вътре. В един от режимите на показване той ще показва местното време (от моята метеорологична станция, задвижвана от Arduino), както и прогнозата и всички ежедневни напомняния, конфигурирани чрез уеб интерфейса. Той също така има аудио благодарение на DAC и ще предава музика чрез протокола AirPlay. Звукът на алармата може да бъде всеки аудио файл, който изберете. Той автоматично ще затъмнява и осветява дисплея в определени часове на деня (например призори и здрач).
Стъпка 1: Предистория
Миналата година търсех нов проект на Arduino, току -що завърших първия си такъв, домашна метеорологична станция. Моят 11-годишен син току-що беше гледал филмите „Завръщане в бъдещето“за първи път, затова си помислих, че би било забавно да му построя будилник, който прилича на часовата верига в Delorean за рождения му ден. Това не е нова идея, има доста подобни проекти там (този например), затова си помислих, че би бил хубав проект да се поуча от другите и да придобия някои нови умения.
Първата версия работи доста добре (не беше готова за рождения му ден: свърших го до Коледа), но станах доста амбициозен в това, което исках да направя, и установих, че скицата ми продължава да се влива в ограничението на паметта на Arduino. Имах и няколко малки външни хардуерни модула (WiFi, MP3 плейър, аудио усилвател, RTC и т.н.), така че всичко стана малко тромаво. В крайна сметка реших да премина към платформа на Raspberry Pi, която опрости хардуера и ми позволи да опаковам много повече функционалност и функции.
Стъпка 2: Основни хардуерни компоненти
Вътре в кутията
Ето електронните компоненти, които използвах. Повечето от тях бяха източници от Core Electronics в Австралия, но, разбира се, те са лесно достъпни и другаде:
- 4 x Четири четвърт буквено -цифров дисплей -жълто -зелен
- Raspberry Pi Zero W
- Pimoroni pHAT DAC за Raspberry Pi Zero
- Аудио усилвател (PAM8403 IC)
- Захранване на Raspberry Pi 3+
- 4 x джъмперна жица - 0,1 ", 5 -пинов, 12"
- 40 пинов (2 x 20) лентов кабел
- Raspberry Pi GPIO мъжка заглавка
- Raspberry Pi Модел B - Заглушена заглавка GPIO (2X20)
- Заглавка за подреждане на GPIO за Pi A+/B+/PI 2/PI 3 - изключително дълъг 2X20
- 4 x 5 пинов мъжки заглавие
- 2 малки 3W високоговорителя
- 2 x коаксиални кабела за аналогово аудио свързване DAC към усилвател
- Veraboard или персонализирана печатна платка за обработка на Rpi към усилвател, LED, бутони
- 5 x моментни бутони
- 4 x двупосочни винтови клемни блока, монтирани на печатни платки
Кутията
- Части от MDF, винтове и болтове, за да направите "шасито"
- Зелен оцветен перспекс, местен доставчик
- Стирол, лепило за моделиране, спрей боя (алуминиев цвят) от местен магазин за хобита
-
Стикери (файлът е достъпен при поискване - отпечатан от Redbubble)
Стъпка 3: Съберете всичко заедно
Светодиодният дисплей за часовника се състои от буквено-цифрови дисплеи със 16x14 сегмента, за щастие същия брой знаци като времевата верига Назад към бъдещето. Докато само първите три знака трябва да бъдат буквено-цифрови, а останалите може да са 7-сегментни цифрови дисплеи, за да подражават на филмовия реквизит, реших да ги направя всички буквено-цифрови, за да позволят известна гъвкавост в това, което може да се покаже, и да ги поддържа всички в същото. Четирите раници Adafruit са чудесно решение тук и могат да се изпълняват на I2C шината на Raspberry Pi. Повече информация за тези устройства и как да ги свържете можете да намерите тук на уебсайта на Adafruit. Единственото леко нестандартно нещо, което трябваше да направя, беше да променя адресите на три от тях, така че всяка раница да е уникална.
За да възпроизвеждам аудио (в стерео), включих Pimoroni pHAT DAC и 2 x 3W стерео аудио усилвател, базиран на чипа PAM8403. PHAT DAC е наистина лесен за свързване с Pi. Сложих 2 x 20 пинов мъжки хедър на Pi и GPIO заглавен шапка на DAC, така че да могат да бъдат свързани един върху друг. Щифтовете за мъжки заглавки преминават през горната част на DAC, което ми позволява да пусна лентов кабел с женски съединители, първоначално до пробив на Raspberry Pi за тестване на макет, но в крайна сметка до обвит хедър на персонализирана печатна платка.
За аудио усилвателя има много възможности (включително просто да вземете чипа и да сглобите свой собствен). Този има възможност да заглуши изхода, като просто промени състоянието на един от щифтовете (високото е включено, ниското е изключено) и го свързах, за да може това да се контролира от Pi. При първоначалните ми опити да свържа това, открих доста фонов шум, когато аудиото беше включено. След много игра с заземяването, в крайна сметка се опитах да преместя входното захранващо напрежение от 5V на Pi на 3.3V и това го поправи. Предполагам, че има доста шум, генериран от различните цифрови сигнали, които летят наоколо, но изглежда, че захранването от 3.3V е някак изолирано.
Други връзки включват аналоговия звук от DAC към усилвателя (тук използвах коаксиален кабел, за да управлявам улавянето на шума) и извеждане на аудио към чифт малки 3W високоговорители, които се вписват в кутията. Има и GPIO връзки за четирите моментни превключвателя в горната част на кутията и свързах моментен бутон към щифтовете "RUN" за твърдо нулиране (вижте раздела Допълнителни връзки на тази страница). Бутонът за нулиране е монтиран извън полезрението в задната част на корпуса. Ето диаграма, показваща връзките:
Стъпка 4: Персонализирана печатна платка
Въпреки че няма нищо твърде сложно в схемата, има доста окабеляване и макетът може да изглежда като спагети доста бързо. Затова проектирах печатна платка, за да държа всичко под контрол. Това е едностранна дъска за домашно приготвяне и имам приятел, който да ми помогне да го направя. След като беше направен и свързан, осъзнах, че забравих да включа връзки за клемните блокове за аудиото и по -късно направих промяна, за да преместя захранването на аудио усилвателя от 5V на 3.3V, така че не е идеално и трябваше да се включа някои Veroboard, за да позволят аудио връзките. Също така, изводите на платката за аудио усилвател са на нестандартно разделяне (те дори варират между пиновете), така че връзката за това към основната печатна платка е малко ужасна с 11 къси ~ 1 см свързващи проводника.
Ако направих друга платка, бих включил всички тези модификации и също така бих сменил конектора за четирите бутона с нещо малко по -хубаво. DAC и Pi ще се подреждат точно отгоре, така че не е необходим лентов кабел. Диаграмата по -горе показва как може да изглежда.
Стъпка 5: Приложението
Исках да направя заграждение, което да прилича на един ред от времевата верига на филма. Три реда светодиодни дисплеи биха били твърде много за будилник и биха увеличили значително разходите. Мислех да направя корпуса от алуминий, но нямам никакви умения в тази област. През живота си съм направил доста пластмасови модели и имам известен опит в дървообработването, затова реших да направя рамка, използваща MDF, за да монтирам светодиодите и високоговорителите и да фиксирам перспективата отпред, след което да я покрия с 5-страничен стирен кутия с рамка отпред, боядисана в алуминиева метална спрей боя. Пластмасата и боята са получени от местен магазин за модели. Разгледах отблизо етикетите на реквизита на филма и направих всичко възможно да копирам цветовете, вида и размера на шрифта. Използвах Photoshop за изграждане на етикетите и ги разпечатах като стикери от Redbubble.
Изображенията по -горе показват:
- Предната част на шасито от MDF. 4-те LED раници са монтирани отпред с оцветени в зелено стъкло
- Вътре в кутията. Всички раници са монтирани и подредени, Raspberry Pi и персонализирана печатна платка, високоговорители от двете страни.
- Окабеляването е инсталирано и външната обвивка е готова за продължаване. Това беше малко стискане!
Стъпка 6: Настройване на Raspberry Pi
Имах някои проблеми със съвместимостта с Raspbian Stretch (което можеше да бъде разрешимо, ако бях упорит), но Джеси работи добре с него, затова реших да продължа с това.
Настроих Pi като безглавна единица с VNC и SSH достъп. Това можеше да стане, без никога да включвам клавиатура или монитор, но просто взех назаем телевизора и изтрих клавиатурата, и доста бързо се оправих. От този момент нататък аз почти използвах VNC.
Кодът на часовника ми използва Python 2.7.9 и разчита на доста библиотеки, изброени по -долу. Освен това използвам уеб сървър Flask и MQTT за дистанционно управление и Shairplay за поточно предаване на музика. Просто следвах бележките за инсталиране онлайн за всички тези и нямах никакви проблеми. Ето библиотеките на python и други пакети и т.н., които трябваше да инсталирам с връзки към бележки за инсталиране или просто командата, която трябва да изпълните, за да я получите:
Библиотеки на Python
- Adafruit_LED_Раница
- Rpi. GPIO (apt-get install python-rpi.gpio)
- alsaaudio
- paho.mqtt.client (pip install paho-mqtt)
- колба (apt-get install python-flask)
Други пакети и др
- комар (apt-get инсталирайте комар)
- shairport
- Уебсайтът на Pimoroni има добра документация за настройка на DAC, така че просто се справих с това.
Стъпка 7: Софтуер
Кодът на часовника е написан на Python и използва нишки, за да пусне алармата и случайни звуци във фонов режим, без да блокира актуализациите на дисплея. Използвах библиотеката ConfigParser и конфигурационният файл, който поддържа, се чете и записва от кода на часовника, както и от уеб приложението Flask, така че винаги, когато конфигурацията се променя чрез уеб интерфейса или часовника, тя се синхронизира. Софтуерът за часовник включва и MQTT брокер, който позволява да се управлява дистанционно режима на дисплея и заглушаването. Моят скрит мотив е в крайна сметка да напиша приложение за iOS за дистанционното управление, но уеб интерфейсът работи достатъчно добре засега.
Първото изображение по -горе показва как изглежда часовникът в различните му режими на показване и има кратко видео, което го показва в режим на превъртане.
Въпреки че кодът не е красив за гледане, той е хубав и стабилен. Щастлив съм да го изпратя на всеки, който го поиска и ще го пусне онлайн, когато е по -добре организиран и коментиран.
Уеб приложението
Следващото изображение показва как изглежда уеб интерфейсът към часовника. Има и страници за конфигуриране и за контрол, които правят много по-лесно да играете с часовника, без много натискане на бутони:-).
Стъпка 8: Какво следва?
Наличен е декодер на метаданни за споделяне на Python, така че мисля, че ще добавя код за показване на информация като заглавие и изпълнител, когато се пуска музика. Също така би било доста лесно да се изчислят времето на изгрев и залез слънце, така че дисплеят да може автоматично да се осветява и затъмнява, вместо да се настройва ръчно. Може би добавянето на функция за интернет радио също би било забавно. Скролиращият дисплей също може да бъде по -конфигуриран.
Препоръчано:
Обратно към бъдещето Антигравитационна капка вода - Seeeduino Lotus: 5 стъпки
Обратно към бъдещето Антигравитационна капка вода - Seeeduino Lotus: StoryTime е като порой, тласкащ хората напред. Има ли момент, в който искате да стоите неподвижно или да се върнете назад? Погледнете внимателно водната капка. Капва ли надолу или върви нагоре? Работата е вдъхновена от феномена на визуалната персисия
ESP8266 Мрежов часовник без RTC - Nodemcu NTP Часовник Няма RTC - ИНТЕРНЕТЕН ЧАСОВНИК ПРОЕКТ: 4 стъпки
ESP8266 Мрежов часовник без RTC | Nodemcu NTP Часовник Няма RTC | ИНТЕРНЕТЕН ЧАСОВНИК ПРОЕКТ: В проекта ще се прави часовник проект без RTC, ще отнеме време от интернет с помощта на wifi и ще го покаже на дисплея st7735
3D отпечатано обратно към бъдещето TIme Circuit Clock: 71 стъпки (със снимки)
3D отпечатано обратно към бъдещия часовник TIme Circuit Clock: Файлът LED.stl отпред вляво е неправилен и е актуализиран. Часовникът на часовата верига ще показва следното чрез LED дисплеите. (Горе-червено) Часът на местоназначението е област, която показва фиксирана дата и час. Използвайте това са
Как да направим артефакти от бъдещето на Кей 9:11 Стъпки (със снимки)
Как да направим артефакти от бъдещето на кей 9: Първо, какво представляват артефактите от бъдещето? Представете си, че можете да заведете експедиция на археолог в бъдещето, за да съберете предмети и фрагменти от текст или снимки, за да разберете какво ще бъде ежедневието ще бъде след 10, 20 или 50 години. Арти
Изходи на бъдещето Aka Вградено USB зарядно устройство: 7 стъпки (със снимки)
Изходи на бъдещето Aka In-wall USB зарядно устройство: Вашият Iphone е мъртъв, някой е избягал с вашето Ipod зарядно за стена, само ако бъдещето и всички контакти бяха USB! Тази инструкция ще ви покаже как да преобразувате стандартен контакт в вградено USB зарядно устройство. Аз