Сообщество - TECHNO BROTHER

TECHNO BROTHER

2 085 постов 13 667 подписчиков

Популярные теги в сообществе:

410

Самый суровый магнитный ключ

Думаю, многим из нас хорошо известно, что в ныне применяемых домофонных ключах, хоть их иногда называют магнитными, никаких магнитов на деле нет.

Но так было далеко не всегда. В девяностые, когда электронные замки стали постепенно распространяться, существовало огромное количество совершенно экзотических типов ключей. И вот ко мне в руки попал очередной крайне интересный экземпляр, устройством которого стоит поделиться.

Итак, в сегодняшней статье поговорим о ферритовых домофонных ключах. Узнаем, как же они считываются, как устроена панель. Традиционно будет много интересного.

❯ О чём я?


Ещё каких-то тридцать лет назад привычные ныне нам ключи вроде Touch Memory были полнейшей экзотикой. Многие производители придумывали свои собственные, ни с чем больше несовместимые форматы ключей. И если какие-то (вроде оптических) были у многих, то отдельные производители изобретали нечто совершенно невероятное, например, упомянутые ферритовые ключи.

Эти штуки выпускались фирмой «Сейф-Сервис» и использовались в домофонах, устанавливавшихся исключительно в Москве. На тот момент такие ключи были весьма прогрессивными, как минимум, их требовалось только прикладывать, а не вставлять, так что не было риска, что в щель считывателя напихают какую-то дрянь. Сами панели тоже были весьма кондовыми и защищёнными от вандализма. Увы, на этом достоинства данной системы заканчивались: блок управления на стандартной логике нещадно тупил, при поломке трубки найти замену было проблематично, не было поддержки кодов. Ну а что было дальше — давайте разбираться.

❯ Что это вообще за «Сейф-Сервис»?


Как уже было упомянуто, нигде за пределами Москвы таких домофонов я ни разу не видел. Так что, возможно, кто-то увидит такой девайс впервые.

Модификаций их было много, объединяет их только одно — обо всех из них нет практически никакой информации.

Самыми распространёнными стали вот такие экземпляры, модели УЗП-200. В самой панели практически ничего нет, только кнопки, считыватель, динамик и микрофон. Благодаря толстому металлу и герконовой клавиатуре штука совершенно неубиваемая. Управлялось всё это платой на дискретной логике. Работало это откровенно плохо, по словам тех, у кого стояла такая панель, можно было, например, просто нажать несколько кнопок сразу, и дверь открывалась.
Позже блоки управления стали менять на микроконтроллерные, глюков стало поменьше.

Много позже, уже в нулевые годы, появились более новые панели, уже изначально основанные на микроконтроллере. А вот ключи остались всё те же, ферритовые.

Ещё одна панель в похожем корпусе, но с семисегментным дисплеем.

Нечто, напоминающее Vizit. На деле же это всё тот же Сейф-Сервис. Ввиду использования в этой модели RFID-ключа особого интереса не представляет.

Иногда можно увидеть и модернизацию старых панелей под новые ключи, как, например, тут, где вместо ферритового считывателя стоит заглушка с лузой под ТМ-ключи.

А иногда — довольно таки новую панель со старыми ключами. С чем связано такое решение, мне неведомо.

❯ Обзор оборудования


Ну что же, самое время посмотреть, что же у нас есть.

А досталась мне вот такая панель неизвестной модели. Изначально было заявлено, что она нерабочая, но мне удалось её оживить.

Итак, на передней части типичные для такого девайса кнопки, считыватель ключей. Дисплея нет, на его месте стоит табличка обслуживающей организации.

Обратная сторона. Когда-то тут была крышка, но до наших дней она не дожила. Тут две платы, одна из которых отвечает за считыватель, другая — за управление. К счастью, этой модели внешний блок не нужен, так что даже есть надежды увидеть аппарат в работе.

Девайс выполнен на базе МК PIC16F819. Прошивка защищена от чтения, увы.

❯ Ключи


Теперь очередь ключей. В сообществе домофонщиков такие ключи называют «тапками» из-за характерной формы.

А вот и наш экземпляр.

Вообще, эта система очень похожа на рассмотренный мною ранее считыватель для ключей из Doom. Тем не менее, устроено оно совершенно иначе. Если те ключи были на основе магнитных точек и матрицы датчиков, то эти — индукционные.

Внутри каждого ключа находятся посадочные места под ферритовые вставки, которые располагаются определённым образом, в считывателе же находится группа катушек. Эти сменные элементы — именно ферриты, к ферромагнетикам они не прилипают.

❯ Внутренности


Ну что же, теперь взглянем, как устроена панель.

Плата управления считывателем. На ней мелкий PIC, мультиплексор, два компаратора, куча резисторов. Для чего нужен второй разъём, так и осталось невыясненным.
По всему блоку была разбросана какая-то коричневая дрянь, напоминающая ошмётки конденсатора. Судя по следам пайки ножек синего электролита, именно его предшественник и бахнул.

А вот и сам считыватель. Представляет он собой пластмассовую ванночку, куда помещена плата с катушками, всё это залито эпоксидкой. По центру постоянный магнит.

Открутив два винта, этот модуль можно вообще вытащить.

Корпус панели без платы. Судя по отсутствию динамика и микрофона, это всё же не домофон, а кодовая панель. Впрочем, в нашем случае это не так критично.

Кнопки отвратительные, если в каком-нибудь Цифрале или Факториале продавить их нереально, то тут слишком сильное нажатие приводит к тому, что кнопка просто западает. Это и стало причиной замены — несколько клавиш залипли и панель не реагировала на нажатия. Ремонтируется просто — зажимаем кнопку и выгибаем торчащую пластину обратно.

Обратная сторона платы. Тут ничего примечательного.

❯ Считыватель


Ну что же, теперь разберёмся, как работает считыватель.
Изначально я думал, что там что-то на базе колебательного контура: феррит при поднесении к катушкам меняет их индуктивность, отчего меняется резонансная частота контура. Но два счетверённых компаратора намекали, что всё куда интереснее.

На просторах нашёл упоминание, что эти ключи были запатентованной технологией компании Сейф-Сервис. И вот, после продолжительного гугления была найдена ссылка на какой-то заплесневелый сайт, где и был размещён патент на данное изделие. Именно он и оказался самым информативным документом вообще из всего, что удалось найти по данной технологии ключей. Увы, все иллюстрации давно протухли, но текст остался. Так что сейчас я постараюсь попонятнее объяснить, как работает это устройство.

Внутри залитого эпоксидкой блока находятся три основных компонента: цепь включения замка, катушка возбуждения (которых, судя по конфигурации ячеек в ключе, две штуки) и группа катушек детектирования.

Когда к домофону прикладывают ключ, схема включения, состоящая из постоянного магнита (который с обратной стороны торчит из эпоксидки) и датчика Холла, подаёт контроллеру сигнал на считывание. После этого в катушке возбуждения начинает течь переменный ток высокой частоты.

Рядом с катушкой возбуждения находится пара катушек декодирования, которые соединены со входами компаратора. При поднесении ключа магнитопровод замыкается, и на выходе катушек декодирования появляется сигнал определённой (в зависимости от гнезда, в котором лежит ферритовая вставка) фазы. Если же обе ячейки пусты, то сигнал в катушках не появляется вообще. Зная, что подаётся на катушку возбуждения и что было снято с выходов компараторов, управляющий МК может определить, в каких ячейках ключа лежат ферритовые вставки. После того, как ключ убран, сигнал с датчика Холла цепи включения замка пропадает и генератор выключается.

❯ Про надёжность ключей


Как уже было сказано, практически бесконтактный считыватель был очень большим прорывом в девяностые, так как испортить его было не так уж и просто.

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

Также довелось слышать о герконовом варианте подобного домофона. В ключе были постоянные магнитики, а внутри считывателя стояли герконы. Увы, ни железки на опыты, ни даже фотографий найти мне не удалось.

❯ Вот как-то так


Как и в случае с «Факториалами», на просторах очень мало информации по этим панелям. В поиске находятся лишь мусорные SEO-тексты, за написание которых, по-хорошему, надо пожизненно лишать клавиатуры. Я даже так и не смог прописать этот ключ, так как понять, как войти в режим программирования на этом устройстве, решительно непонятно.

Тем не менее, посмотреть, что внутри, и попробовать запустить это устройство было крайне интересно.

Удивительно, но до сих пор в Москве полно подъездов, где стоят такие панели. Так что, даже с учётом постоянных замен, ключи эти уйдут в историю ещё очень нескоро.

Такие дела.

Ссылки:


Другие мои посты про ключи, домофоны, считыватели и прочие подобные устройства:

____________________________________________

Эта статья поддерживается командой Timeweb Cloud

Показать полностью 16
27

ATtiny45 Arduino IDE

ATtiny45 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny45 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

Характеристики:

  • Высокопроизводительный, экономичный 8-разр. AVR-микроконтроллер

  • Усовершенствованная RISC-архитектура
    — Обширный набор из 120 инструкций большинство которых выполняются за один цикл
    — 32 x 8 универсальных регистров общего назначения
    — Полностью статическая работа

  • Энергонезависимые памяти программ и данных
    — Внутрисистемно программируемая флэш-память программ размером 4 кбайт с износостойкостью 10 тыс. циклов запись/стирание
    — 256 байт внутрисистемно-программируемого ЭСППЗУ с износостойкостью 100 тыс. циклов записи/стирания
    — 256 байт внутреннего статического ОЗУ
    — Программируемые биты защиты флэш-памяти и ЭСППЗУ

  • Отличительные особенности периферийных устройств
    — 8-разр. таймер-счетчик с предделителем и двумя каналами ШИМ
    — 8-разр. высокоскоростной таймер-счетчик с отдельным предварительным делителем 2 высокочастотных выхода ШИМ с отдельными регистрами задания порога сравнения

  • Программируемый генератор паузы
    — Универсальный последовательный интерфейс с отдельным детектором условия старт
    — 10-разр. АЦП

  • 4 несимметричных канала

  • 2 дифференциальных канала с программируемым усилением (1x, 20x)
    — Программируемый сторожевой таймер с отдельным встроенным генератором
    — Встроенный аналоговый компаратор

  • Специальные функции микроконтроллера
    — Встроенная отладочная система debugWIRE
    — Внутрисистемное программирование через порт SPI
    — Внешние и внутренние источники прерываний
    — Экономичные режимы: холостой ход (Idle), уменьшение шумов АЦП (ADC Noise Reduction) и пониженная мощность (Power-down)
    — Усовершенствованная схема сброса при подаче питания
    — Программируемая схема контроля напряжения питания
    — Встроенный калиброванный генератор

  • Ввод-вывод и корпуса
    — Шесть программируемых линий ввода-вывода
    — 8-выв. корпус PDIP и 8-выв. SOIC

  • Рабочее напряжение
    — 1.8 — 5.5В для ATtiny45V
    — 2.7 — 5.5В для ATtiny45

  • Градации по быстродействию
    — ATtiny45V: 0 — 4 МГц при 1.8 — 5.5В, 0 — 10 МГц при 2.7 — 5.5В
    — ATtiny45: 0 — 10 МГц при 2.7 — 5.5В, 0 — 20 МГц при 4.5 — 5.5В

  • Малый потребляемый ток
    — Активный режим: 1 МГц, 1.8В: 450 мкА
    — Режим пониженной мощности: 0.1 мкА при 1.8В

Микроконтроллер ATtiny45 отлично подходит для маленьких и дешевых проектов, а поддержка средой программирования Arduino IDE заметно упрощает работу с микроконтроллером.

Для поддержки ATtiny45 в Arduino IDE необходимо выполнить несколько простых операций:

  • Добавление поддержки платы

Откройте в Arduino IDE вкладку Файл > Настройки и добавьте ссылку для менеджера плат

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-...

Далее перейдите во вкладку Инструменты > Плата > Менеджер плат

Выберите и установите пакет новых плат ATtiny45, ATtiny85, ATtiny44, ATtiny84

Далее в Инструменты > Плата выберите плату ATtiny45.

Установите параметры платы как показано на скриншоте:

  • Для прошивки скетча  Вам понадобится программатор USBAsp

Схема подключения

Распиновка программатора USBAsp

Для удобства использования и прошивки микроконтроллера ATtiny45 можно воспользоваться отладочной платой HW-260.

В настройках платы нужно выбрать поддержку Attiny45 и установить частоту  8 MHz internal, остальные параметры менять не нужно. Далее необходимо выставить нужные фьюзы для микроконтроллера, чтобы он всегда работал на выбранной Вами частоте. Для этого в настройках Arduino IDE выберите программатор USBasb и нажмите Инструменты > Записать загрузчик. Эту операцию необходимо проводить всего один и снова повторить если Вы будете менять частоту работы микроконтроллера.

Для загрузки скетча в настройках Arduino IDE выберите программатор USBasb и во вкладке Скетч нажмите на Загрузить через программатор (или просто нажать кнопку — Загрузить)

Для примера, можно загрузить простой скетч мигания светодиода, к выводу 3 (PB4) контроллера подключите светодиод через резистор 200 Ом.

void setup() {

pinMode(4, OUTPUT);

void loop() {

digitalWrite(4, HIGH);

delay(1000);

digitalWrite(4, LOW);

delay(1000);

}

После загрузки скетча, светодиод начнет мигать.

Для нормальной работы микроконтроллера необходимо подать напряжение VCC через резистор 10 кОм на вход RST микроконтроллера.

Примеры использования

ЧАСЫ ATTINY45+DS3231 С КНОПКАМИ КОРРЕКЦИИ ВРЕМЕНИ

ПРОСТОЕ РЕЛЕ ВРЕМЕНИ 0…99 МИН

Кнопками (+/-) можно задавать время от 1 до 99 минут, при установки времени таймера сразу же активируется реле, при обнулении таймера реле отключает нагрузку.

DHT11 ДАТЧИК ТЕМПЕРАТУРЫ И ВЛАЖНОСТИ

ВОЛЬТМЕТР 0…5 В

3.3V

1.8 V

ЧАСЫ С БОЛЬШИМИ ЦИФРАМИ И ДАТЧИКОМ ТЕМПЕРАТУРЫ ATTINY45+LCD1602_I2C+DS18B20+DS3231

Скетчи - http://rcl-radio.ru/?p=129389

Показать полностью 24
29

Самодельный шлифовальный станок по стеклу для витражного дела. Часть 3. Электрическая, водная, общая доводка

Шлифовальная машина перед работой.

Шлифовальная машина перед работой.

Продолжение. Начало - Изучение аналогов и постановка задачи, скелетно-механическая часть. Здесь, приступаем к сборочно-электромонтажным работам.

Напомню, применил двигатель ДАСМ-2, 120/60 Вт, 2900/425 об/мин. Двухскоростной, от старинной стиральной машины-полуавтомата.

Схема включения примененного электромотора.

Схема включения примененного электромотора.

Общая электрическая схема станка.

Общая электрическая схема станка.

Схема электрическая принципиальная станка. У мотора задействована только большая скорость. Применена возможность реверса направления вращения. Включение подсветки может быть в двух режимах – вместе с мотором или непрерывное, пока станок включен в сеть. Подача воды включена постоянно пока работает большой мотор. Переключатель задействованный для включения питания однотипный с остальными – трехпозиционный. Среднее положение – «Выключение», переключение в любую сторону – «Включение».

Электрическая коробка, доработка.

Электрическая коробка, доработка.

Электрический «шкафчик» - распаечная коробка из магазина электротоваров. Пластик на боках, там, где как раз было удобно установить выключатели, довольно мягкий еще и с преогромными дырками для кабелей. Пришлось усилить пластинкой из текстолита.

Электрический шкафчик на станке, установлены крупные элементы.

Электрический шкафчик на станке, установлены крупные элементы.

Лампа подсветки рабочего места.

Лампа подсветки рабочего места.

Для освещения рабочего места, была применена светодиодная лампа с отражателем. Разделанные концы проводов просто припаяны к Т-образным клеммам, место пайки и место разделки изолировано термотрубками и для пущей герметичности залито термоклеем. Крепится лампа на станке, жестяным хомутиком вокруг ее цилиндрической части.

Крепление рабочего стола.

Крепление рабочего стола.

Крепление мотора выполнено за нижнюю крышку, шестью винтами М5.

Крепление мотора выполнено за нижнюю крышку, шестью винтами М5.

Шайба-стопор-гайка – все как у людей.

Шайба-стопор-гайка – все как у людей.

Испытания электрической части.

Испытания электрической части.

Все временное окультурил – приходи кума любоваться!

Все временное окультурил – приходи кума любоваться!

Для подачи воды к инструменту приобрел миниатюрный наружный насос-помпу для аквариума и комнатных фонтанчиков с питанием -12 вольт.

Схема установки насоса

Насос представляет собой единый миниатюрный блок с двумя штуцерами. Устанавливаться снаружи насос должен определенным образом так, чтобы при выключении он оставался заполненным водой. При последующем включении насос эту воду переместит по шлангам дальше, подсасывая из бака следующую порцию. В случае если насос окажется не заполненным водой, при включении он будет просто перебалтывать воздух внутри.

Неправильная установка насоса. При выключении насоса шланги на высоте h окажутся без воды.

Неправильная установка насоса. При выключении насоса шланги на высоте h окажутся без воды.

Примененная установка насоса. При выключении насоса колено на высоту Н (без учета других гидравлических эффектов) будет заполнено водой.

Примененная установка насоса. При выключении насоса колено на высоту Н (без учета других гидравлических эффектов) будет заполнено водой.

Первая, испытательная установка нового насоса.

Первая, испытательная установка нового насоса.

Для проверки работоспособности и настройки, насос был установлен «на живую нитку» при помощи обрезков силиконового шланга подходящего диаметра и загогулины из старой шариковой ручки разогретой строительным феном и отформованной в горячем состоянии.

Главной проблемой работы станка с новым насосом оказалась чрезмерная его производительность – из выходного шланга била довольно сильная струя воды разбрызгиваясь и заливая все вокруг. Уменьшение напряжения питания не дало существенного эффекта – снижение напряжения до 5 вольт несколько уменьшало производительность, затем насос просто переставал работать. Эксперименты показали, что уменьшение сечения шлангов уменьшают также и ток потребляемый двигателем насоса и такая регулировка весьма удобна и эффективна. Более того, она предусмотрена штатно в некоторых аналогичных моделях насосов.

Применен готовый блок питания – зарядное устройство от старого мобильного телефона с напряжением питания на холостом ходу около 7 В. К его розеточным ножкам припаяны провода, соединения изолированы термотрубкой, остальное очевидно.

Блок питания имеет незначительный  вес и довольно уютно устроился среди проводов. Более, он никак не закреплен.

Блок питания имеет незначительный  вес и довольно уютно устроился среди проводов. Более, он никак не закреплен.

Рабочее размещение насоса.

Рабочее размещение насоса.

Экспериментальное размещение насоса претерпело значительную переделку – шланг и сам насос препятствовал доступу к выключателю сзади станка. Шланги удлинились, насос преотлично поместился в небольшой нише позади электрической коробки. Выходной шланг частично передавливается бельевой прищепкой. Здесь можно применить и более эстетичный краник, например, из аквариумных принадлежностей или "кран Гофмана". Следует только помнить, что вода здесь с мельчайшими частичками стекла и лучше предпочесть краны «наружные» вроде как в медицинской капельнице.

Вид на собранный станок.

Вид на собранный станок.

Кронштейн для удерживания шланга подачи воды, сделан из полосочки нержавеющей стали, силиконовый шланг закреплен на нем капроновыми стяжками. Конструкция позволяет весьма точно направлять струю воды в нужное место. Губка удерживается в углу небольшого отбойника привинченного к рабочему столу и слегка прижата к вращающемуся инструменту. Ее функция - в предотвращении разбрызгивании воды.

Вид на омываемый водой инструмент.

Вид на омываемый водой инструмент.

Отверстие в углу рабочего стола, позволяет задействовать кусок шланга диаметром 12 мм. Им можно спустить или добавить воды не разбирая конструкцию.

Отверстие в углу рабочего стола, позволяет задействовать кусок шланга диаметром 12 мм. Им можно спустить или добавить воды не разбирая конструкцию.

Что получилось.

Обзор рабочего стола, паче чаяний, оказался вполне пристойным, мотор сверху не доставляет особых неудобств, работать удобно. Единственный минус конструкции - сложновато менять рабочий инструмент, для этого приходится сливать воду и вытаскивать заполненную емкость, однако, смена инструмента очень нечаста и с этим вполне можно смириться. Сверлильный патрон для инструмента не ржавеет, хотя невредно периодически пшикнуть в него проникающей смазки. Станок при работе стоит как влитой – большая масса, никакой вибрации. Шумит тоже весьма умеренно, работать комфортно. Мощности мотора хватает с избытком, он не греется даже при длительной работе. Металлический рабочий стол из мягкой нержавейки не царапает обычное оконное и витражное стекло, но некоторые специальные сорта стекол (например, светофильтры) все же оказываются мягче и в подобных работах действовать нужно осмысленно и вдумчиво. Шлам в большом глубоком корыте хорошо оседает, воду приходится менять только после больших крупных работ. 

Babay Mazay, зима, 2018 г.

Показать полностью 19
20

ATtiny45 + TEA5767 + TM1637 (FM radio)

TEA5767 производимая компанией NXP применяется для конструирования низковольтных FM-радио тюнеров. В составеTEA5767 имеются внутренние цепи выделения промежуточной частоты и демодуляции принимаемого сигнала, что позволяет обходиться минимальным набором внешних компонентов.

Технические параметры TEA5767:

  • Напряжение питания от 2,5 до  5 В

  • Потребляемый ток при Uпит = 5 В 12,8 мА

  • Чувствительность 2 мкВ

  • Отношение сигнал/шум  54 дБ

  • Разделение между стереоканалами 24 дБ

  • Коэффициент гармоник 0,4 %

  • Диапазон принимаемых частот от 76 МГц до 108 МГц

  • Шины управления: I2C или 3-х проводная

Используя радио модуль, индикатор и микроконтроллер ATtiny45 можно собрать простое FM-радио.

Радио приемник управляется всего одной кнопкой, которая позволяет по кругу переключать заранее записанные каналы. Частота канала выводится на индикаторный модуль TM1637. К выходу модуля радиоприемника необходимо подключить любой маломощный усилитель, например можно использовать модуль усилителя PAM8403 с регулятором громкости.

Последний выбранный канал сохраняется в энергонезависимой памяти.

Перед прошивкой микроконтроллера рекомендую ознакомится со статьей — http://rcl-radio.ru/?p=129389 (общие сведения о микроконтроллере ATtiny45, прошивка при помощи Arduino IDE).

Перед загрузкой скетча необходимо записать в него выбранные для радио каналы:

float ch[]={104.4, 101.9, 102.5, 88.0, 101.5, 105.0, 103.9, 105.7};

и указать кол-во выбранных каналов:

#define CH 8

Усилитель PAM8403

Скетч - http://rcl-radio.ru/?p=129530

Показать полностью 4
38

ЧАСЫ-БУДИЛЬНИК НА VDF1602 + DS3231 + DS18B20 (Arduino IDE)

Часы-будильник основаны на микроконтроллере Atmega8, содержит часы реального времени DS3231, цифровой датчик температуры DS18B20, датчик освещенности в виде фоторезистора, зуммер для сигнала будильника, четыре кнопки управления и дисплей VDF1602.

Дисплей VDF1602 (16T202DA1E) выполнен на базе вакуумно-люминесцентного индикатора, который может отображать ASCII символы в 2 строки (16 знаков в 1 строке) каждый символ в виде матрицы 5х7 пикселей.

Дисплей 16T202DA1E программно полностью совместим с дисплеем LCD1602 контроллере HD44780.

Для правильной работы базе вакуумно-люминесцентного индикатора требуется два источника питания, это питание сеток и анодов напряжением 12-27 В и питание катода (нити накала) переменным напряжением от 1,2 до 5 В (в зависимости от типа ВЛИ). В дисплее 16T202DA1E все необходимые источники для правильной работы ВЛИ уже встроены в плату, поэтому для питания дисплея Вам понадобится только одно напряжение в 5 В. Так же в отличии от LCD1602 в дисплее 16T202DA1E нет вывода Vo (регулировка контрастности), что делает подключение дисплея к Arduino Nano еще проще.

Распиновка дисплея

На дисплей выводится следующая информация

  1. Текущее время

  2. День недели (рус)

  3. Время будильника

  4. Индикатор работы будильника

  5. Температура

  6. Дата и месяц

Кнопки управления:

  • SET_ALARM — коррекция времени будильника, первое нажатие коррекция часа, второе — минут

  • SET_TIME — коррекция (установка) времени часов, при нажатии на кнопку меняются параметры времени для корректировки (часы, минуты, секунды(обнуление), дата, месяц, день недели)

  • SET_UP — Плюс изменение параметра часов и будильника

  • SET_DW — Минус изменение параметра часов и будильника

В режиме вывода времени кнопки SET_UP и SET_DW позволяют отключать и включать режим будильника, а при сигнале будильника кнопки SET_UP и SET_DW отключают сигнал будильника но при этом не меняют режим работы будильника. Если не нажимать кнопки SET_UP и SET_DW то сигнал будильника будет звучать 1 минуту.

Так как дисплей VDF1602 имеет функцию программного изменения яркости свечения символов, то в схеме используется датчик освещенности (фоторезистор). Датчик освещенности меняет яркость свечения символов дисплея в зависимости от освещенности.

Датчик температуры DS18B20 рекомендуется выносить за корпус уст-ва, так как дисплей VDF1602 при работе имеет небольшой нагрев.

Время будильника и режим работы будильника сохраняются в энергонезависимой памяти.

  • Красными точками на схеме указаны пины подключения программатора, как прошить прошивку описано в — http://rcl-radio.ru/?p=82486

  • Более подробно о дисплеи VDF1602 описано в — http://rcl-radio.ru/?p=129034

Скетч - http://rcl-radio.ru/?p=129553

Показать полностью 13
23

Модуль BT201 + STM32 (Arduino)

Модуль BT201 5.0 Bluetooth представляет собой единый чип 4-в-1, который поддерживает Bluetooth, USB-флешку и TF-карту.

Функции:

  • Поддержка Bluetooth-аудио, передача данных BLE, воспроизведение U-диска, воспроизведение TF-карты, SPIFLASH. Поддержка декодирования форматов MP3, WAV, WMA, FLAC, AAC, APE.

  • 16-битный стерео ЦАП с усилителем для наушников, отношение сигнал/шум >= 95 дБ

  • Последовательный порт управления командой AT. Поддержка изменения скорости передачи данных для изменения имени Bluetooth, указания воспроизведения устройства и передачи данных мобильного телефона.

  • Поддержка двухрежимной передачи данных BLE и SPP, в то же время может воспроизводить звук Bluetooth, без конфликтов.

  • Поддержка вызова Bluetooth, много кнопочного управления, последней музыки, следующей музыки, воспроизведения паузы, регулировки громкости и других простых функций.

  • Поддержка получения полного имени файла последовательного порта воспроизведения, указанного пути воспроизведения, цикла или одиночного воспроизведения.

  • Поддержка функции записи 128KBS. Запись на TF-карту или U-диск, запись, удаление, воспроизведение и т. д.

При тестировании модуля BT201 был выбран микроконтроллер STM32 (плата разработчика STM32F103C8T6), так он содержит несколько UART портов, один будет использован для вывода информации в монитор порта, другой (Serial3) для отправки АТ команд в модуль BT201.

Как прошивать STM32 в среде Arduino IDE написано в — http://rcl-radio.ru/?p=68376

Так как STM32 прошивается через переходник USB to COM (RS232) YP-01 на чипе PL2303HX, в котором имеются 2 источника напряжения, то напряжение 3,3 В будут использованы для питания STM32, а напряжение 5 В для питания модуля BT201.

Подключения STM32 к USB to COM и BT201

Тестовый скетч

void setup(){ Serial.begin(115200); Serial3.begin(115200); Serial.println(); delay(500); }  void loop(){ if (Serial.available() > 0) { String str = Serial.readString(); Serial.println(str); Serial3.print(str+"\r\n"); }  if (Serial3.available() > 0) { String str = Serial3.readString(); Serial.println(str); } }

Команды управления отсылаете через монитор порта, и они пересылаются на модуль BT201.
Все, что приходит с модуля (ответы, сообщения и т.д.), пишется в монитор порта.

Список АТ команд —BT201 Module _KT1025A_B_User Manual _V2.3.pdf

Список основных АТ команд:

  • AT+CB  — стоп\паузы

  • AT+CC — следующий трек

  • AT+CD — предыдущий трек

  • AT+CE — громкость +++

  • AT+CF — громкость —

  • AT+CA15 — громкость уровень 15 (0-30)

  • AT+CM01 — Bluetooth

  • AT+CM02 — USB

Ниже показан пример управления модулем BT201 при помощи STM32 и нескольких кнопок, режимы работы и другая информация отображается на дисплее 0.96′ I2C 128X64 OLED.

Дисплей 0.96′ I2C 128X64 OLED на контроллере SSD1306 имеет разрешение 128х64 пиксел и подключается к микроконтроллеру по интерфейсу I2C.

Параметры дисплея SSD1306:

  • Технология дисплея: OLED

  • Разрешение дисплея: 128 на 64 точки

  • Диагональ дисплея: 0,96 дюйма

  • Угол обзора: 160°

  • Напряжение питания: 2.8 В ~ 5.5 В

  • Мощность: 0,08 Вт

  • Габариты: 27.3 мм х 27.8 мм х 3.7 мм

Кнопки управления:

  • PLAY / STOP — воспроизведение \ пауза в режиме Bluetooth и USB

  • >>> — следующий трек (файл, ролик) в режиме Bluetooth и USB

  • <<< — предыдущий трек (файл, ролик) в режиме Bluetooth и USB

  • Bluetooth \ USB — кнопка выбора Bluetooth или USB

  • VOLUME UP — громкость прибавить на 1 ед.

  • VOLUME WD — громкость удавить на 1 ед.

Меню Bluetooth

  1. Bluetooth

  2. Режим работы:

    1. not connected — нет соединения

    2. connected — соединение установлено

    3. play — воспроизвидение

  3. Уровень громкости

Меню USB

  1. USB

  2. Номер воспроизводимого файла (кол-во файлов на носителе*)

  3. Время звучания воспроизводимого файла

  4. текущее время проигрывания файла

  5. Уровень громкости

*Звуковые файлы на USB устройстве должны быть записаны й в корень файловой системы.

Подключения STM32, кнопок и дисплея

** Подключение кнопок

Подключения STM32 к  BT201

Скетч - http://rcl-radio.ru/?p=129611

Показать полностью 11 1
651

Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения



Размер экрана — краеугольный камень мира современных смартфонов. Кто-то считает, что дисплеи должны становиться только больше, а рамки — меньше, кто-то любит «средние» дисплеи диагональю в 5+", ну а кто-то остаётся ярым поклонником и приверженцем компактных смартфонов с крошечными дисплейчиками. В наше время, купить новый смартфон с относительно небольшим дисплеем за приемлемые деньги почти нереально — самые бюджетные модели будут слишком тормозными для современного пользователя. Некоторое время назад, я купил себе бюджетный крошечный смартфон 2012 года выпуска — Samsung Galaxy Pocket, причём всего за 100 рублей. Конечно же мне захотелось довести его до ума — а доводить пришлось руками и навыками прожженного программера! Какой смартфон можно получить за 100 рублей? Читаем в статье!

Минутка предыстории

С самого появления смартфонов на рынке, весь мир шагал к тотальному увеличению дисплеев и уменьшению рамок. В какой-то момент, большие смартфоны даже получили отдельное название — падфоны или смартпэды. Такой ход событий было не трудно предугадать: ведь производители дисплейных матриц осваивали всё более и более высокие разрешения и предлагали больше вариантов производителям смартфонов.



Однако несмотря на всеобщее засилие больших «лопат», в мире всё ещё оставались поклонники маленьких и компактных телефонов, которыми очень удобно пользоваться одной рукой. Сейчас подобные устройства представляют только небольшие бренды, известные достаточно в узких кругах — в основном, их можно купить на маркетплейсах, в обычных салонах связи их не найти. Мне известно о нескольких подобных устройствах, которые сейчас присутствуют на рынке. Первый из них «закос» под iPhone — Soyes XS11:



Но тут уж, если честно, хочется назвать такой смартфон не просто компактным, а совсем малюсеньким. На нём вполне удобно выполнять задачи звонилки, но совсем неудобно набирать текст — поэтому под наши задачи, он не особо подходит. Кроме того, эти девайсы работают на базе бюджетного смартфонного железа 6-7 летней давности, поэтому их производительность будет достаточно невысокой по меркам современного пользователя. Конечно же есть и более серьёзные варианты — например, компания Unihertz (да, тот самый продолжатель идей BlackBerry) делает смартфоны Jelly 2: дисплей с диагональю 3", Helio P61 под капотом и Android 11 на борту. Вот только цена, мягко говоря, кусачая — 18 тысяч рублей на момент написания статьи. Это слишком дорого!

Но если душа прямо таки лежит к компактным смартфонам, почему бы не обратиться к рынку Б/У устройств и не присмотреть что-то из… прошлого десятилетия? А вариантов ведь реально много — тут и LG Optimus L3 (3.2"), и Samsung Galaxy Pocket Neo (2.8"), Samsung Galaxy Star (3"), Samsung Galaxy Fame (3.5"), Samsung Galaxy Young. Все перечисленные девайсы стоят реально копейки — можно купить живой вариант до 400-500 рублей!



Я решил взять себе целых два смартфона: Samsung Galaxy Mini и Samsung Galaxy Pocket первого поколения. Оба достались мне в одном лоте за 2.000 рублей (с 20 телефонами) и обошлись мне по сто рублей, причём оба смартфона были рабочими! Чуть позже я докупил отдельно Galaxy Star (250 рублей), Galaxy Fame (250 рублей) и Galaxy Pocket Neo (~400 рублей) для полноты коллекции — вышло совсем недорого. Итак, что за характеристики мы получаем в смартфоне за 100 рублей:

  • Android: 2.3 Gingerbread.

  • Чипсет: Broadcom BCM21553 с одним ядром Cortex-A5 на частоте 832мгц. Видеочип: VideoCore IV, он же использовался в Raspberry Pi.

  • ОЗУ: 256 мегабайт (предположительно — DDR1).

  • Встроенная память: 3 гигабайта + слот для SD.

  • Дисплей: 2.8", 240x320, емкостной тачскрин.

  • Сеть: Поддержка 2G/3G. Об LTE и речи не идёт.



Выглядит не особо густо, да? И разрешение весьма низкое — большинство софта не запустится, а о клиентах современных сервисов и мечтать не приходится… или приходится?



Конечно же шаловливым ручкам захотелось вернуть жизнь этому миниатюрному красавцу и я решил использовать его как второй смартфон — при этом с клиентом ВК и музыкой, которые я запилил сам.

Разработка под старые версии Android

На самом деле, разработка под старые версии Android не особо отличается от современных версий системы. Кое-где приходится костылить, велосипедить и юзать AppCompat для реализации современных фишек на старых версий системы, но, будем честным, подобного и в последних версиях Android достаточно.

Даже сейчас нет никакой проблемы скачать последнюю версию Android Studio, подключить смартфон с включенной отладкой и отлаживать приложение прямо на девайсе — logcat тоже есть. Единственный нюанс — поиск драйверов и ручное закрытие приложений в таскменеджере, если вы деплоите под Android 2.x (Android Studio не умеет сам закрывать приложение, чтобы переустановить пакет).


В целом, за всё время разработки под старые устройства, я пришёл к следующим выводам:

  • Поскольку большинство устройств имеет одно ядро, для плавности интерфейса нужно минимизировать любую работу в фоне.

  • Взаимодействие с современными веб-сервисами может быть осложнено из-за отсутствия поддержки TLS1.2 и устаревших сертификатов (проверка сертификатов легко обходится специальным костылем, а вот TLS — нет).

  • У Android до 3.0 вся отрисовка интерфейса программная и она опять же, будет сказываться на скорости работы фоновых служб. Чем менее интерфейс комплексный, тем лучше.

  • Пушей нет — да, вообще. Однако это ничуть не помешает нам сделать уведомления практически в реальном времени с помощью… очередного костыля!



Допиливаем ВК

Я уже писал клиент ВК в рамках одной из прошлых статей. Теперь нам нужно довести его до ума — подогнать под разрешение экрана и переработать интерфейс для большей удобности, а также добавить недостающие разделы — я тот ещё любитель полистать мемчики, сидя в автобусе.

Честно сказать, вся концепция интерфейса требовала полной переработки — боковое меню банально очень неудобно использовать на подобных устройствах из-за малых размеров каждой строчки. Поэтому я решил не изобретать велосипед, а обратился к дизайнерам Apple и первоисточнику: официальному клиенту ВК для iOS 6, родом из 2012 года!



Приложение для Android выглядело +- также в те годы. Видите вкладки с разделами снизу? Они то нам и нужны — это самый удобный способ навигации на таких смартфонах! Накидав макет в layout'е, я приступил к реализации:



Изначально мне хотелось, чтобы всё приложение было плавным и анимированным: для этого я обратился к фреймворку анимаций Android. Суть очень простая — это обычный интерполятор значений от a до b за определенный промежуток времени. При этом мы не можем анимировать произвольное свойство — только те, который уже реализованы в системе (переход, поворот, масштабирование, альфа-канал). Более наглядно это можно представить вот так:



Да, это всё анимация :) Получаем примерно такой результат:

Обратите внимание, что запуск большого количества анимаций будет вызывать перерисовку даже в том случае, если элемент не видно на экране — от чего у нас будут дикие тормоза! Осторожнее с этим.

После этого, я решил доработать раздел с музыкой: я все еще пользуюсь грязными хаками для получения доступа к API музыки, поскольку «левым» клиентам такой возможности не дают. Публично его расписывать не буду, поскольку это скорее всего нелегально, да и сами ребята из ВК об этом знают (но не думаю, что будут применять какие-то санкции по отношению к «маленьким» разработчикам) — но если нужно, пишите в личку, расскажу всю концепцию.

Во первых, мне хотелось добавить возможность скачивать треки на внутреннюю память/флэшку. А во вторых, мне хотелось добавить фоновое воспроизведение — до этого возможность свернуть приложение и послушать музыку уже была, однако Android мог в любой момент прибить окно с музыкой и оставить нас с носом, остаётся только реализация в виде foreground-сервиса:

В Android есть два типа служб: background (фоновые) и foreground (видимые пользователю). Первый тип служб система может прибить когда угодно — например мало памяти или экономия заряда АКБ. А вот второй тип служб система не прибивает практически никогда, поскольку они обозначают выполнение важной операции в фоне — например скачивание файла или обновление системы. Однако у них есть одно ограничение — они должны быть привязаны к собственному уведомлению, которое нельзя закрыть. В процессе реализации возникло еще пару проблем — Wakelock'и (механизм, предотвращающий уход девайса в «сон») и WiFiLock'и (тоже самое, но для WiFi).

Точно таким же способом я реализовал механизм уведомлений — как я уже говорил раньше, пушей на старых смартфонах нет вообще ни в каком виде, поэтому пришлось реализовывать свой механизм «обновления»: каждые 3-5 секунд запрашиваем список последних 5 диалогов с сервера и сравниваем с предыдущим результатом, если есть новые сообщения — создаём нотификацию (листинг слишком длинный - пришлось перезалить на pastebin):

private NotificationCompat.Builder createMessageNotification(String sender, Stri - Pastebin.com

После этого, я начал рутинную работу по реализации интерфейса для данных с сервера — паблики, друзья, профили, лента и.т.п. В некотором смысле, реализация лента весьма занимательна: вообще, для очень больших списков существуют т.н виртуализация ListView — это когда ListView отображает только видимый пользователю кусок датасета (набора данных — например, список записей на стене) и на старых версиях Android она доступна. Однако мне было интересно реализовать вариант, который потреблял бы минимальное количество ОЗУ и где я точно знал бы, когда пользователь видит тот или иной фрагмент приложения. Поэтому я реализовал… пагинацию свайпами! Вот так привет из нулевых!

Для этого я использовал GestureDetector — встроенный в систему класс для обнаружения простых жестов — свайпов и.т.п. ВК при запросе ленты отдаёт специальную метку для получения следующей страницы новостей (поскольку она может динамически меняться и нужно хранить её стейт), мы эти метки просто сохраняем и переключаемся по странницам новостей с помощью обычных свайпов вправо-влево:


Выглядит весьма забавно.

Юзабельно ли всё это на деле?

Давайте смотреть, может ли юзать такой смартфон в наши дни. Берём наш девайс в руки, логинимся и оцениваем его производительность «вхолостую».



Работает весьма шустренько, учитывая что это бюджетник 2012 года. Как насчет нашего самопального клиента ВК? Смотрим:


Работает весьма бодро. Не сказать что также плавно, как последний айфон, но и совсем плохим результат явно не назвать!

Смартфонный функционал у девайса тоже вполне ничего: 1-2 SIM (в зависимости от версии), нормальная синхронизация контактов с ПК (однако Kies вроде-бы не работает на Windows 10, но есть vcf):



Встроенный почтовый клиент продолжает работать без каких либо проблем. Однако настраивать некоторые почтовые сервисы нужно вручную и с помощью «паролей приложений» — напрямую залогинится возможности нет. В случае «покета», придется поставить стоковый клиент из Android 2.3 вручную.
Мультимедийные возможности тоже радуют: встроенный плеер тачвиза мне всегда очень нравился. Есть и настройки эквалайзера.

Единственное, что откровенно подводит — браузер. Последним вариантом осталась Opera Mini 7 — она позволяет смотреть сайты, но не поддерживает динамический контент, только статику. Ну, зайти на википедию или почитать статью на Хабре хватит. Родной браузер уже не в состоянии что либо загрузить :(



Ну а в общем, производителньость смартфона весьма радует, согласитесь? Нельзя сказать, что он уж слишком тормозной — по крайней мере, современные ультрабюджетные смартфоны (до 4-5 тысяч рублей) зачастую показывают себя гораздо хуже чем и флагманы прошлых лет, и даже бюджетники!

Заключение

И всё таки, я считаю что мне удалось в каком-то смысле вдохнуть новую жизнь в старенький девайс. Если использовать подобный девайс как второй — на случай, если сел основной смартфон, то такой миниатюрный красаввчик может неождианно выручить даже в довольно сложной ситуации. Кроме того, эти смартфоны всеядны к аккумуляторам — достаточно подпаять + и — и они будут работать хоть от BL-4C.

Главная ценность Galaxy Pocket — в его компактных размерах. А поскольку по настоящему дешевых, маленьких и шустрых смартфонов становится всё меньше и меньше, то нам остаётся лишь продлять жизнь моделям прошлых лет! Есть ли в этом смысл и получил ли смартфон новую жизнь? Пишите в комментариях!


Клиент ВК можно сказать на 4pda. Там лежит самая последняя версия (для скачивания нужна регистрация на форуме). Если по каким-то причинам не хотите регистрироваться на форуме — я выложил актуальную версию в комментариях.


Эта статья поддерживается командой ITGLOBAL.COM

Мы — первый облачный провайдер в России, а также интегратор, поставщик ИТ-услуг, продуктов, сервисов и разработчик собственного ПО.

Наш сайт
Наш блог про виртуализацию и Enterprise IT
Истории успеха наших клиентов

Показать полностью 13 2
Отличная работа, все прочитано!