Оглавление:
- Шаг 1. Справочная информация
- Шаг 2: Основные аппаратные компоненты
- Шаг 3: Собираем все вместе
- Шаг 4: нестандартная печатная плата
- Шаг 5: Корпус
- Шаг 6: Настройка Raspberry Pi
- Шаг 7: Программное обеспечение
- Шаг 8: Что дальше?
Видео: Часы назад в будущее: 8 шагов (с картинками)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Этот проект начинал жизнь как будильник для моего сына. Я сделал его похожим на временную схему из «Назад в будущее». Дисплей может показывать время в разных форматах, в том числе, конечно, из фильмов. Его можно настроить с помощью кнопок в верхней части корпуса, а также через веб-страницу, обслуживаемую Raspberry Pi Zero внутри. В одном из режимов отображения он будет показывать местную погоду (с моей метеостанции на базе Arduino), а также прогноз и любые ежедневные напоминания, настроенные через веб-интерфейс. Он также имеет аудио благодаря ЦАП и будет передавать музыку по протоколу AirPlay. Звуковым сигналом может быть любой аудиофайл по вашему выбору. Он автоматически уменьшает яркость и яркость дисплея в определенное время дня (например, рассвет и сумерки).
Шаг 1. Справочная информация
В прошлом году я искал новый проект Arduino, только что завершив свой первый проект - домашнюю метеостанцию. Мой 11-летний сын только что впервые посмотрел фильм «Назад в будущее», поэтому я подумал, что было бы забавно соорудить ему будильник, который выглядел бы как временная схема в «Делориане» на его день рождения. Это не новая идея, существует довольно много похожих проектов (например, этот), поэтому я подумал, что было бы неплохо поучиться у других и приобрести новые навыки.
Первая версия работала довольно хорошо (она не была готова к его дню рождения: я сделал это к Рождеству), но я очень амбициозно подошел к тому, что я хотел, и обнаружил, что мой скетч продолжал выходить за пределы памяти Arduino. У меня также было несколько небольших внешних аппаратных модулей (WiFi, MP3-плеер, аудиоусилитель, RTC и т. Д.), Так что все это становилось немного громоздким. В конце концов, я решил перейти на платформу Raspberry Pi, которая упростила оборудование и позволила мне упаковать гораздо больше функций и возможностей.
Шаг 2: Основные аппаратные компоненты
Внутри коробки
Вот электронные компоненты, которые я использовал. Большинство из них были источниками из Core Electronics в Австралии, но, конечно же, они легко доступны и в других местах:
- 4 четырехбуквенных буквенно-цифровых дисплея - желто-зеленый
- Малина 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 Model B - закрытый заголовок GPIO (2X20)
- Заголовок стекирования GPIO для Pi A + / B + / PI 2 / PI 3 - сверхдлинный 2X20
- 4 x 5-контактный штекер
- 2 маленьких динамика мощностью 3 Вт
- 2 коаксиальных кабеля для аналогового аудио подключения ЦАП к усилителю
- Veraboard или специальная печатная плата для обработки Rpi на усилитель, светодиод, кнопки
- 5 кнопочных переключателей мгновенного действия
- 4 x 2-контактных винтовых клеммных колодки для монтажа на печатную плату
Коробка
- Кусочки МДФ, шурупы и болты для изготовления «шасси»
- Зеленый тонированный плексиглас, местный поставщик
- Стирол, клей для моделирования, аэрозольная краска (цвет алюминия) из местного магазина для хобби.
-
Наклейки (файл предоставляется по запросу - распечатаны Redbubble)
Шаг 3: Собираем все вместе
Светодиодный дисплей для часов состоит из 16x14-сегментных буквенно-цифровых дисплеев, которые, к счастью, содержат такое же количество символов, как и схема времени «Назад в будущее». Хотя только первые три символа должны быть буквенно-цифровыми, а остальные могут быть 7-сегментными цифровыми дисплеями, чтобы имитировать опору фильма, я решил сделать их все буквенно-цифровыми, чтобы обеспечить некоторую гибкость в отображении, и чтобы они все выглядели одинаково. тем же. Рюкзаки для квадроциклов Adafruit - отличное решение здесь и могут работать на шине I2C Raspberry Pi. Более подробную информацию об этих устройствах и о том, как их подключить, можно найти здесь, на веб-сайте Adafruit. Единственное, что мне пришлось сделать немного нестандартно, - это изменить адреса трех из них, чтобы каждый рюкзак был уникальным.
Для воспроизведения звука (в стерео) я включил ЦАП Pimoroni pHAT и стерео аудиоусилитель 2 x 3 Вт на базе микросхемы PAM8403. PHAT DAC действительно легко подключить к Pi. Я установил штекерный разъем 2 x 20 контактов на Pi и стековый заголовок GPIO на ЦАП, чтобы их можно было соединить друг с другом. Штырьки штекерного разъема проходят через верхнюю часть ЦАП, что позволяет мне пропустить ленточный кабель с разъемами-розетками, сначала к прорыву Raspberry Pi для тестирования макетной платы, но в конечном итоге к закрытому заголовку на заказной печатной плате.
Для аудиоусилителя существует множество вариантов (включая просто получение чипа и сборку собственного). У этого есть возможность отключить выход, просто изменив состояние одного из контактов (высокий уровень включен, низкий уровень выключен), и я подключил его, чтобы им можно было управлять с Pi. В моих первых попытках подключить это, я обнаружил довольно много фонового шума, когда звук был включен. После долгих экспериментов с заземлением я в конце концов попытался изменить входное напряжение питания с 5 В на Pi до 3,3 В, и это исправило. Я предполагаю, что существует довольно много шума, создаваемого различными цифровыми сигналами, летающими вокруг, но кажется, что источник питания 3,3 В каким-то образом изолирован.
Другие соединения включают аналоговый звук от ЦАП к усилителю (здесь я использовал коаксиальный кабель, чтобы помочь управлять шумоподавлением) и вывод звука на пару небольших динамиков мощностью 3 Вт, которые помещаются в корпус. Есть также соединения GPIO для четырех переключателей мгновенного действия в верхней части коробки, и я подключил кнопку мгновенного действия к контактам «RUN» для жесткого сброса (см. Раздел «Дополнительные подключения» на этой странице). Кнопка сброса находится вне поля зрения на задней части корпуса. Вот диаграмма, показывающая соединения:
Шаг 4: нестандартная печатная плата
Хотя в схеме нет ничего слишком сложного, там довольно много проводки, и макетная плата может довольно быстро выглядеть как спагетти. Поэтому я разработал печатную плату, чтобы держать все под контролем. Это односторонняя доска для домашнего приготовления, и у меня есть друг, который помог ей сделать. После того, как это было сделано и подключено, я понял, что забыл включить соединения для клеммных колодок для аудио, и позже я внес изменения, чтобы переместить питание аудиоусилителя с 5 В на 3,3 В, так что это не идеально, и мне пришлось прибегнуть к какой-нибудь Veroboard, чтобы разрешить аудиоподключения. Кроме того, распиновка платы аудиоусилителя имеет нестандартное разделение (они даже различаются между контактами), поэтому подключение для этого к основной плате немного ужасно с 11 короткими соединительными проводами длиной ~ 1 см.
Если бы я сделал другую плату, я бы включил все эти модификации, а также изменил бы разъем для четырех кнопок на что-то более приятное. ЦАП и Pi будут складываться прямо сверху, поэтому ленточный кабель не потребуется. На схеме выше показано, как это может выглядеть.
Шаг 5: Корпус
Я хотел сделать корпус, похожий на один ряд схемы времени фильма. Три ряда светодиодных дисплеев было бы слишком много для будильника и значительно увеличили бы стоимость. Я думал сделать корпус из алюминия, но у меня нет никаких навыков в этой области. Я сделал довольно много пластиковых моделей в своей жизни, и у меня есть некоторый опыт работы с деревом, поэтому я решил сделать раму из МДФ, чтобы установить светодиоды и динамики и прикрепить плексиглас к передней части, а затем покрыть ее 5-сторонним стиролом. коробка с лицевой панелью, окрашенная аэрозольной краской «алюминий металлик». Пластик и краска были приобретены в местном модельном магазине. Я внимательно изучил надписи на опоре фильма и постарался скопировать цвета, тип и размер шрифта. Я использовал Photoshop для создания этикеток и распечатал их в виде наклеек от Redbubble.
На изображениях выше показано:
- Передняя часть шасси МДФ. Четыре светодиодных рюкзака крепятся спереди из плексигласа зеленого оттенка.
- Внутри коробки. Все рюкзаки установлены и выстроены в линию, Raspberry Pi и пользовательская печатная плата, динамики по бокам.
- Электропроводка установлена, внешняя оболочка готова к работе. Это было немного затруднительно!
Шаг 6: Настройка Raspberry Pi
У меня были некоторые проблемы совместимости с Raspbian Stretch (которые, возможно, были бы решены, если бы я упорствовал), но Джесси отлично справляется с этим, поэтому я решил пойти с этим.
Я настроил Pi как безголовое устройство с доступом по VNC и SSH. Это можно было сделать, даже не подключая клавиатуру или монитор, но я просто одолжил телевизор, нашел клавиатуру и довольно быстро избавился от нее. С тех пор я в значительной степени использовал VNC.
В моем коде часов используется Python 2.7.9 и довольно много библиотек, перечисленных ниже. Кроме того, я использую веб-сервер Flask и MQTT для удаленного управления и Shairplay для потоковой передачи музыки. Я просто следил за инструкциями по установке для всего этого, и у меня не было никаких проблем. Вот библиотеки python и другие пакеты и т. Д., Которые мне нужно было установить, со ссылками на примечания по установке или просто командой, которую нужно запустить, чтобы получить ее:
Библиотеки Python
- Adafruit_LED_Backpack
- Rpi. GPIO (apt-get install python-rpi.gpio)
- alsaaudio
- paho.mqtt.client (pip install paho-mqtt)
- колба (apt-get install python-flask)
Другие пакеты и т. Д
- москит (apt-get install mosquito)
- Shairport
- На веб-сайте Pimoroni есть хорошая документация по настройке DAC, так что я просто воспользовался этим.
Шаг 7: Программное обеспечение
Код часов был написан на Python и использует потоки для воспроизведения будильника и случайных звуковых сигналов в фоновом режиме, не блокируя обновления дисплея. Я использовал библиотеку ConfigParser, и файл конфигурации, который она поддерживает, считывается и записывается кодом часов, а также веб-приложением Flask, так что всякий раз, когда конфигурация изменяется через веб-интерфейс или часы, она синхронизируется. Программное обеспечение часов также включает брокера MQTT, позволяющего управлять режимом отображения и отключением звука удаленно. Мой скрытый мотив - в конечном итоге написать приложение iOS для пульта дистанционного управления, но веб-интерфейс пока работает достаточно хорошо.
На первом изображении выше показано, как часы выглядят в различных режимах отображения, и есть короткое видео, показывающее их в режиме прокрутки.
Хотя код выглядит некрасиво, он красив и стабилен. Я с радостью отправлю его всем, кто его запросит, и выложу в Интернет, когда он будет лучше организован и прокомментирован.
Веб-приложение
На следующем изображении показано, как выглядит веб-интерфейс часов. Также есть страницы настройки и управления, которые значительно упрощают игру с часами без большого количества нажатий на кнопки:-).
Шаг 8: Что дальше?
Доступен декодер метаданных общего порта Python, поэтому я думаю, что добавлю код для отображения информации, такой как название и исполнитель, при воспроизведении музыки. Также было бы довольно легко рассчитать время восхода и захода солнца, чтобы дисплей можно было автоматически увеличивать и уменьшать яркость, а не настраивать его вручную. Может быть, добавление функции интернет-радио тоже будет интересно. Прокрутка дисплея также может быть более настраиваемой.
Рекомендуемые:
Назад в будущее Антигравитационная капля воды - Seeeduino Lotus: 5 шагов
Назад в будущее Антигравитационная капля воды - Seeeduino Lotus: StoryTime похожа на поток, толкающий людей вперед. Есть ли момент, когда вы хотите, чтобы время остановилось или пошло вспять? Посмотрите внимательно на каплю воды. Капает она вниз или поднимается? Работа вдохновлена феноменом визуального пер
Хрустальный шар: загляните в свое будущее !: 7 шагов
Crystal Ball: See Into Your Future !: Хотите узнать секреты вселенной? Что ж, нельзя! Однако вы можете узнать, что ждет вас в будущем, сделав свой собственный хрустальный шар. Я имею в виду, что тут терять? Если я смогу сделать такой, то и ты сможешь, используя ЖК-монитор, приклад
Преобразование телевидения в ретро-будущее: 6 шагов (с изображениями)
Преобразование телевизора в ретро-будущее: это ранний цветной портативный телевизор, который я переработал с помощью более современной (но почти устаревшей) панели ЖК-телевизора. Он довольно тонкий и настенный, и я переделал оригинальные элементы управления телевизором, сохранив оригинальные поворотные кнопки, нажимаемые кнопками
Пульт дистанционного управления Bluetooth «Ретро будущее»: 9 шагов (с изображениями)
Пульт дистанционного управления Bluetooth «Ретро Будущее»: мне всегда нравился внешний вид «мира завтрашнего дня». мы были представлены в научно-фантастических и концептуальных продуктах середины века. Ладно, это неправда. Когда я был молод, я думал, что трикодеры из «Звездного пути» уродливы и неуклюжи, но
Жуткие часы с вращением назад, сделанные из двигателя кассетного плеера: 7 шагов (с изображениями)
Жуткие часы с вращением назад, сделанные из двигателя кассетного плеера: это реквизит, который я сделала для дома с привидениями в начальной школе моей дочери, которым я управляю вместе с мужем. Часы построены из дешевых часов благотворительного магазина и кассетного плеера старого ребенка. Он показывает тринадцать часов и вращение минутной стрелки