Skip to content
Vadim Cherenev edited this page Sep 2, 2016 · 3 revisions

Открытка в стиле "атомпанк"

Постановка задачи

Возникшая идея концепции "объединить будущее с прошлым" требовала соответствующих элементов для полноценной картины такого воображаемого мира. Бумажный вариант сразу же был отметен (какой уважающий себя человек будущего использует бумагу?), следующий возникший вариант - пластиковая открытка - оказался не оригинальным (во время охоты за идеями было обнаружено множество вариантов подобных приглашений - а желание удивить было очень велико). В итоге, вдохновение было найдено в технике 60х - форма, цвет да и общая концепция. Таким образом, появилась задача - изготовить приглашения с ЖК экранчиком, которые способны выводить изображение и текст.

Выбор компонентов

Два главных и самых дорогих компонента открытки с экранчиком - это экранчик и контроллер, чтобы им управлять. Определиться с дисплеем было не сложно. Выбор пал на экранчики от Nokia 6100. Во-первых, это единственный цветной дисплей с интерфейсом SPI, который я знаю, во-вторых, я с такими уже работал и знаю, как с ними общаться, в третьих, я знал, где можно достать необходимое количество таких дисплеев по дешевке. Чтобы определиться с контроллером, пришлось погуглить. В конце концов я остановился на stm32f030f4p6. Во-первых, это 32-битный ARM, во вторых у него неплохая аппаратная реализация SPI, позволяющая обмениваться данными на скорости до 6 Мбит и гибко устанавливать размер пакета, это важно, потому что выбранный дисплей использует нестандартный 9-ти битный пакет, где девятый бит означает передачу команды или данных. И, самое главное, его можно приобрести примерно за 50 центов за штуку.

Конструкция

Принципиальная схема

Конструкция устройства предельно простая, состоит из микроконтроллера, LCD, подключенного к контроллеру по SPI и генератора повышенного напряжения для подсветки дисплея. Так как это был мой первый опыт использования этого микроконтроллера, я на всякий случай предусмотрел RC-цепочку на сброс, кварцевый резонатор и подтяжку вывода BOOT0 на землю. В принципе можно было использовать внутренний генератор и оставить лишние выводы болтаться в воздухе. Главное, не забывайте подавать питание и на на VDDA (аналоговую часть контроллера), оно используется не только для АЦП, но и для внутреннего контроля напряжения питания и без него контроллер не работает. Подсветка дисплея требует около 7 вольт, поэтому для ее питания был собран обратноходовый преобразователь на элементах L1, Q1, D1, D2 и C1. Собственного генератора у преобразователя нет, импульсы, открывающие транзистор генерируются контроллером. Обратной связи не предусмотрено, ток через преобразователь не контролируется, максимальное напряжение на выходе ограничивается стабилитроном D2. Так как на тот момент никакой внятной конструкции корпуса не было придумано, плата была разведена максимально компактно и на одну сторону на случай, если придется делать их самостоятельно.

Внешний вид контроллера

После нескольких нескольких неудачных попыток самостоятельного изготовления плат, они были заказаны в "Резоните". Микроконтроллеры и разъемы для дисплея были заказаны в "Элитане", нужное количество дисплеев нашлось у продавцов запчастей для сотовых по 10р (sic!) за штуку. Теперь в Перми таких больше нет)) Вместо катушек в корпусе 1812 были взяты выводные советские.

Корпус

Сначала планировалось сделать для открытки картонный корпус-коробочку, пока я случайно не наткнулся в "Фикс прайсе" вот на такие жестяные шкатулки:

Жестяные шкатулки

Сначала я собирался разместить начинку в крышке, но ни к чему хорошему это не привело. Вскрыть крышку, прорезать отверстие для дисплея и закрыть все как было не оставив следов невозможно. Тогда было решено сделать панель, под которой разместить начинку. А в корешке "книги" идеально размещаются две пальчиковые батарейки. После изучения различных способов изготовления панелек (3д-печать, формовка из пластика и т.д.), было решено сделать их самостоятельно из подручных средств.

Основа для панелей была вырезана из фольгированного текстолита. Стамеской были вырублены отверстия для дисплея. К основе были припаяны различные "ништяки" из проволоки, листовой латуни и двухваттных резисторов МЛТ. Затем панельки были окрашены. Панель, установленная в корпус

Чтобы скрыть напечатанные на коробочках гламурные принты были заказанs наклейки из пленки. Собака с граммофоном взята с логотипа брэнда RCA Victor. Идея в том, что в будущем все посылают друг другу приглашения при помощи таких жестяных миникомпьютеров, которые выпускает фирма Mem-o-matic.

Наклейка

Прошивка

Прошивка выполняет две основных функции: генерирует импульсы для работы преобразователя напряжения для подсветки и выводит изображение на экранчик. Так как stm32f030f4p6 содержит всего 2 Кб оперативной памяти, ни о каком хранении видео или даже статических не может быть речи, все изображения генерируются программно. В прошивке реализован набор примитивных функций, позволяющих выводить точку в заданном месте, печатать символ, сдвигать часть экрана. Функции работают с выделенным буфером в памяти, данные из которого затем пересылаются контроллеру дисплея по протоколу SPI. Видеобуфер занимает всего 512 байт. Так как мы эмулируем монохромный кинескоп, можно использовать один бит на точку и выводить строки через одну. Так же пришлось уменьшить эффективный размер экрана до 128х128. Известно, что дисплеи для Nokia 6100 выпускались с различными типами контроллеров. Среди приобретенных были Philips PCF8833, Epson S1D15G00 и Epson S1D15G10. Кроме того. даже дисплеи сделанные на одном и том же контроллере отличались ориентацией экрана и контрастностью, так что пришлось по сути переписывать прошивку отдельно под каждый дисплей.