Сообщество - TECHNO BROTHER
Добавить пост

TECHNO BROTHER

1 672 поста 12 556 подписчиков

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

Вы жаловались, что не хватает авторского контента? Получайте!

Открой для себя способ, как превратить обычный чат Telegram в центр управления всеми устройствами вокруг тебя – от Ардуино до умного дома! В этом ролике я раскрою все секреты создания мощного Telegram-бота, который станет твоим незаменимым помощником. Ты узнаешь, как легко и просто можно управлять устройствами, получать данные с датчиков в реальном времени и автоматизировать повседневные задачи, не выходя из любимого мессенджера. Неважно, профи ты или только начинаешь свой путь в мире DIY и программирования – этот гайд откроет тебе двери в захватывающий мир технологий!

Как происходит ремонт двигателя на морском торговом судне ?

Как происходит ремонт двигателя на морском торговом судне ? Инженер, Судно, Безопасность, Запчасти, Техника, Море, Длиннопост

демонтированные старые запчасти из дизель генератора

⌚ Время чтения 2 минуты

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

Оно происходит практически постоянно и напрямую связано с его отработанным временем, моточасами.

Как происходит ремонт двигателя на морском торговом судне ? Инженер, Судно, Безопасность, Запчасти, Техника, Море, Длиннопост

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

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

Как происходит ремонт двигателя на морском торговом судне ? Инженер, Судно, Безопасность, Запчасти, Техника, Море, Длиннопост

Кто производит данный ремонт ?

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

В другой фирме могут сказать делать данную работу самостоятельно без посторонней помощи. Приятного тут конечно мало, но никуда не деться.

Как происходит ремонт двигателя на морском торговом судне ? Инженер, Судно, Безопасность, Запчасти, Техника, Море, Длиннопост

Картер дизеля

Как происходит ремонт двигателя на морском торговом судне ? Инженер, Судно, Безопасность, Запчасти, Техника, Море, Длиннопост

По итогу бригада должна предоставить двигатель к тестовым испытаниям, сказав что все готово. Ответственный (обычно это третий механик) проверяет что все системы и составляющие их механизмы готовы к тестовым запускам. Далее в присутствии старшего комсостава машинного отделения и рабочей бригады производится старт дизель генератора на холостой ход, предварительно прокрутив его так называемым вало_проворачивающим устройством без подачи топлива (убедиться, что вращение идет свободно без каких-либо заклиниваний). Затем двигатель поэтапно вводится в работу параллельно мониторятся все параметры. Как правило всегда выявляются мелкие недочеты которые сразу на месте устраняются. После успешных испытаний старший механик подписывает все необходимые документы, принимает выполненную работу и уставший/изнеможенный наконец-то идет отдыхать) Стармехи отзовитесь сколько вас тут)

Друзья хочу напомнить, что тут веду свой морской канал в онлайн режиме прямо с судна и моментально отвечаю на все вопросы🌊 Поддержите подпиской👨🏻‍🔧 по братски)

Показать полностью 5
TECHNO BROTHER

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях!

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Пожалуй, немалая часть моих читателей так или иначе интересуется DIY-тематикой. И в различных самодельных девайсах порой есть необходимость вывести какую-либо информацию на дисплей, будь это текст, графики или даже какая-то анимация! Для разных задач существуют самые разные дисплеи и в сегодняшнем материале я хотел бы систематизировать и собрать подробнейший гайд об использовании дисплеев с нерабочих мобильных телефонов: какие бывают протоколы и шины данных, как читать схемы устройств и определять контроллеры дисплеев, какие дисплеи стандартизированы, а какие придётся реверсить самому и как быть с подсветкой. В практической части статьи мы подключим дисплей используя протокол MIPI DBI к RP2040 с использованием DMA. Интересно? Тогда добро пожаловать в статью!

❯ Виды дисплеев и их протоколы


Пожалуй, ЖК-дисплеи с самого момента их появления стали основным инструментом для вывода информации и взаимодействия с пользователями. Первые ЖК-панели были монохромными и требовали отдельный драйвер, который занимался выводом изображения на экран и формированием необходимых для его работы напряжений.

Сейчас же всё гораздо проще и каждый любитель DIY-электроники может и сам подключить дисплейчик к своему проекту и использовать в необходимых ему целях. Ведь не зря написаны десятки библиотек по типу AdaFruit LCD, которые упрощают задачу программисту и дают ему возможность оперировать готовыми и простыми операциями по типу «вывести линию» или «отрисовать изображение». Однако, готовые библиотеки — это, конечно, здорово, но они не всегда дают понимание о том, как работают такие дисплеи на программном и аппаратном уровне. И первая часть статьи как раз и будет посвящена этому.

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

  • Параллельная шина 8080 — одна из самых простых и понятных шин данных, как в теории, так и на практике. Суть её очень простая: на каждый бит отводится по одной сигнальной линии, плюс две дополнительные линии для сообщения статуса передачи: RD означает запрос чтения, а WR — запрос на запись. Большинство дисплеев использует девятый, неявный бит D/C, который сообщает контроллеру, задаём ли мы номер команды, или уже пишем аргументы для этой команды. Что самое приятное — шина по сути стандартизирована и во многих дисплеях команды на старт записи в видеопамять, а также получение ID-контроллера идентичны. Шина бывает 8-битной и 16-битной (её состояние задаётся битами IM0..IM2 и используется не только для подключения дисплеев, но и микросхем параллельной флэш-памяти, ОЗУ и т. д. Такие шины используются в дисплеях с разрешением до 480x320.

  • SPI — шина, которая наверняка знакома большинству моих читателей. Достаточно простая — у нас есть две сигнальные линии с входным (MISO) и выходным (MOSI) битом, плюс сигнал тактирования, который согласовывает передачу данных. Таким образом, шина получается полнодуплексной. Фактически, каждый байт передаётся по одному биту через одну сигнальную линию, что, по сравнению с 8080, заставляет повышать тактовую частоту контроллера SPI, но при этом занимает гораздо меньше пинов самого МК или процессора. В программном плане, большинство дисплеев представленных в различных интернет-магазинах полностью совместимы с дисплеями 8080, ведь SPI — просто один из режимов работы. Единственный нюанс — из SPI дисплея не всегда можно вычитать ID-контроллера и вообще что-либо читать из регистров дисплея.

  • I2C — относительно редко используемая шина для дисплеев из-за её невысокой производительности, однако, тем не менее, очень подходящая для МК (благодаря использованию только двух сигнальных линий — SDA для данных и SCL для тактирования. Даже чипселект здесь программный благодаря тому, что каждое устройство имеет собственный адрес!), однако её можно найти в дисплеях некоторых телефонов из самого начала 2000-х годов.

  • TTL/параллельный RGB — тут, в общем-то, меня упрекали пару раз из-за того, что я продолжаю называть её TTL, но так сложилось исторически — даже в даташитах эту шину называют именно так. С логической точки зрения она очень простая: у нас есть 16/24 сигнальные линии, где 5 (или 8) бит используются для красного и синего канала и 6 (или опять же 8) бит используются для зеленого цвета (т. е. в 16-битном цвете у нас RGB565, а в 24-битном — RGB888). К ним идут сигналы HSYNC для горизонтальной синхронизации и VSYNC для вертикальной. Вообще, необязательно использовать все сигнальные линии предоставляемые дисплеем — можно использовать, например, RGB332 и использовать всего 8 сигнальных линий. Однако для отображения картинки, необходимо строго соблюдать тайминги синхронизации, иначе дисплей будет просто показывать белый цвет. Помимо цифрового варианта, бывает также аналоговый, очень похожий на телевизионный RGB или VGA. Такие дисплеи обычно используются для матриц до 1024x768 включительно.

  • MIPI DSI — протокол, используемый для дисплеев высокого разрешения — от 480x800 и выше, его можно встретить в большинстве современных смартфонов и планшетов. Кроме того, такие дисплеи используют относительно мало пинов — по два на каждый канал LVDS (обычно в смартфоне около двух-четырех каналов) + две сигнальные линии на тактирование. Звучит всё хорошо? Как-бы не так: протокол дифференциальный и на каждый канал (т. е. логический бит) приходится по две сигнальные линии — одна с положительная, а вторая отрицательная. Затем одна вычитается из другой и получается окончательный сигнал, а сделано это для уменьшения помех от передачи данных по нескольким линиям с очень высокой тактовой частотой без увеличения битности шины.

  • LVDS/eDP — Протоколы, используемые в матрицах ноутбуков, телевизоров и иногда планшетов. На физическом уровне близки к DSI, на программном — если честно, не знаю, но наслышан о некой стандартизации и высоком уровне совместимости. Даже «неродные» ноутбучные матрицы вполне «заводятся», максимум после перепрошивки родной EEPROM, даже если дисплей другого разрешения!


В списке выше, мы рассмотрели несколько популярных аппаратных шин для дисплеев. В данной статье, мы разберемся в программных особенностях таких дисплеев и узнаем, где взять по дисплею одного из следующих типов: SPI, I2C, а также 8080.

❯ Виды дисплеев и их протоколы


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

У рассматриваемых нами дисплеев есть собственная видеопамять, благодаря чему нет необходимости соблюдать тайминги, а также общий набор команд (или аппаратных регистров), которые мы можем записывать и тем самым менять поведение дисплея. Если мы просто подадим питание на дисплей и попытаемся что-то вывести — у нас ничего не выйдет, поскольку при каждом аппаратном RESET'е, состояние большинства регистров, кроме SleepOn и PowerOn не определено и может содержать в себе любой «мусор». Для корректной работы дисплея, нам необходимо послать определенный набор команд, называемый инициализацией, который установит настройки драйвера дисплея, такие как контраст, параметры цветности, направление развертки изображения из VRAM и т. д. Пожалуй, стоит сразу отметить, что некоторые люди называют регистры дисплея командами — это означает одно и тоже!

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Пример инициализации. На самом деле, не все люди делают такую простыню из вывозов функций чтения/записи регистров дисплея, поскольку это кушает драгоценный ROM. На AVR, например, команды инициализации можно хранить в ROM и читать из PROGMEM.

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

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Набор команд для контроллеров дисплеев частично стандартизирован спецификацией MIPI DBI, которая описывает и закрепляет некоторые конкретные адреса регистров, общие для всех контроллеров дисплея. К ним относится, например, установка «окна» для записи (0x2B и 0x2A), sleepout (0x11) и некоторые другие. Проприетарными командами остаются настройки питания, развертки, контраста и самого драйвера дисплея. Ну и всяческие LUT, а также палитровые режимы (если они есть) тоже проприетарные.

Пример одной из таких стандартизированных команд:

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Почти во всех дисплеях есть разделение отправляемых байтов на команду (или выборка номера регистра для чтения/записи) и на данные. Как обработать текущий байт определяет отдельный пин (или бит, в зависимости от конфигурации дисплея), называемый D/C (Data/Command), иногда также можно встретить названиеRS. Обычно, при записи команды, D/C должен быть на низком уровне, при записи данных, соответственно, на высоком. Суть простая: записываем номер команды (или регистра) при низком D/C, а затем дописываем необходимые аргументы (или конфигурацию регистра) при высоком уровне D/C.
Примерно так:

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Касательно сброса, то в дисплеях обычно существуют два вида этого процесса: аппаратный сброс через соответствующий пин и программный с помощью специальной команды. Пин RESET никогда нельзя оставлять в «воздухе» (т. е. не подключенным) в надежде что «да состояние пинов МК после ресета известно, мусора на шине явно не будет». Мусора может и не будет, а вот дисплей упадет в вечный ресет, поскольку ожидает перехода сигнала RESET в высокий уровень. Тоже самое касается и пина CS, отвечающий за выбор устройства на шине. Если вам не нужен CS и у вас висит только одно устройство на шине — просто притяните его к массе. Некоторые контроллеры (например, ILI9325) адекватно реагируют на CS «в воздухе», некоторые — нет. Только после того, как RESET оказался на высоком уровне, дисплей начнёт принимать команды:

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Переходим конкретно в выводу данных. Для начала вывода изображения на дисплей, нам необходимо выполнить команду 0x2C, которая переведет контроллер дисплея в режим записи данных в видеопамять. После этого, нам остаётся лишь установить высокий уровень на пине D/C и просто слать непрерывный поток пикселей. Контроллер дисплея сам инкрементирует координаты на дисплее и после того, как координаты выйдут за границы нужной области, дисплей сам их переведет в изначальные. Таким образом, достаточно лишь один раз проинициализировать дисплей и просто гонять в него данные, например, с помощью DMA.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Всё просто и понятно :)

❯ Дисплеи с шиной 8080


Пожалуй, подобные дисплеи найти проще всего, поскольку они использовались в большинстве кнопочных телефонов из нулевых. Такие экранчики можно встретить во многих моделях Nokia, Samsung, LG, Fly, Sony Ericsson и большинстве китайских телефонов. С поиском распиновки и разводкой таких дисплеев всё относительно просто и одновременно сложно: на некоторые модели телефонов (например, почти на все Nokia) можно свободно найти схему в гугле и узнать распиновку коннектора дисплея… однако этот коннектор сначала надо сдуть и развести на breakout-плате, или под микроскопом вывести перемычки. В некоторых случаях (например, Siemens S-серии), дисплей просто прижимался к контактам на плате, а сами контакты имели более чем паябельный шаг.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Из схемы на Nokia N70. Этот дисплей применялся во многих Symbian-смартфонах Nokia тех лет: N-Gage/N-Gage QD, N70, N72, 6600 и некоторых других.

Но особо удобными можно считать дисплеи с паябельными шлейфами с большим шагом пинов — такие можно встретить в некоторых телефонах Samsung и большинстве китайских телефонов. Пытливый читатель спросит «так это ж китаец, где ты на него схему будешь искать?». И вот тут, китайские производители нас приятно порадуют, поскольку за редким исключением, такие дисплеи имеют стандартизированную распиновку: лично мне известны матрицы 37 Pin, 39 Pin и 44 Pin. Как найти для них распиновку? Пишем на «алике» или «таобао» 37 pin lcd tft и смотрим: в описании продавец частенько прилагает распиновку (правда учтите, что 37 pin не имеет пинов IM для настройки ширины шины, а 16-битный интерфейс может быть слишком прожорилвый по числу пинов):

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост
Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

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

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Распиновка на Fly IQ239. На нижней части изображения, вы можете увидеть, что такие, безусловно, здоровенные дисплеи можно купить за копейки и сейчас :)

Но задумывались ли вы когда-нибудь, откуда на тачскринах в дисплеях с «али» взялись кнопки «домой», «сообщения», «телефон»? Это ведь те самые дисплеи, которые использовались в «ноклах», просто припаянные к удобной плате! :) Кроме того, на китайские дисплеи без проблем можно найти даташит: обычно они используют контроллеры от ST или ILI, в зависимости от разрешения дисплея.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост
Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

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

Концептуально, аппаратная реализация протокола одновременно простая и понятна любому: программа устанавливает состояние каждого бита передаваемого байта на сигнальных линиях D0..D7 (либо D00..D15, если шина у нас 16-битная), а затем просто «дёргает» линию RD (Read или чтение), либо WR (Write или запись) по переходу из низкого уровня в высокий, благодаря чему контроллер дисплея понимает, что байт (или слово в случае 16-битного интерфейса) можно «забирать» с шины. По переходу из высокого уровня в низкий, контроллер снова переходит в режим ожидания следующего байта с шины.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Где взять такие дисплейчики? Да почти везде! Но лучше всего брать дисплеи с китайчиков, которые можно развести на вот таких breakout-платах, которые можно заказать на алике за пару сотен рублей.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Обратите внимание на то, как по свински припаивают подсветку на некоторых дисплеях. И это завод! Лучше сразу прозвоните прежде чем подавать питание. Я, вот, забыл, понадеялся на производителя и по итогу сжёг подсветку :(

Другой вопрос, где искать на них информацию? Помимо схем, можно просто поискать на алике «37 pin lcd tft», «39 pin tft lcd», «24 pin tft lcd» и т. п. Обычно продавцы сами выкладывают распиновку и даже прикладывают ID контроллера дисплея. Поскольку иногда различия в распиновках всё же попадаются, обращайте внимание на то, куда у вас идут дорожки от подсветки и от резистивного тачскрина (если есть), а также вызванивайте все пины с массой — это поможет подобрать правильную распиновку без логического анализатора. Вот, например, дисплейчик из китайской нерабочей реплики Nokia 130 с здоровым 2.4" дисплеем… казалось бы, вообще не понятно что за дисплей, однако воспользовавшись смекалкой, мы находим его распиновку!

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост
Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

❯ SPI-дисплеи


SPI-дисплеи в телефонах встречались относительно редко. В основном, подобные дисплейчики можно было найти в моделях начала 2000х годов: сименсах, моторолах, ранних сонериках T-серии и Nokia на S40. Иногда SPI-дисплеи можно встретить в современных кнопочных телефонах — обычно они имеют шлейф с менее чем 15 пинами, как некоторые модели Fly. Обычно контроллер дисплея поддерживал сразу несколько аппаратных шин, а производитель телефона ещё на этапе установки шлейфа к контроллеру дисплея замыкал необходимые IM-пины выбирая необходимую шину, поэтому программный протокол фактически идентичен дисплеям с шиной 8080.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Несомненным плюсом SPI-дисплеев можно назвать малое число пинов для работы с матрицей: достаточно всего два (плюс сигнал D/C, если дисплей не 9-битный), если повесить RESET на VIO, либо три (четыре), если хотите управлять аппаратным RESET вручную. Но есть и, в некоторой степени, минусы: например, не все микроконтроллеры умеют работать в 9-битном режиме и возможно последний бит придётся досылать «ногодрыгом» (что ломает любую возможность реализации DMA).

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Многие дисплеи с этим интерфейсом задокументированы ещё в начале 2000х годов на известных форумах и сайтах, таких как VRTP, Радиокот и easyelectronics, поэтому проблем с их подключением не возникнет даже у новичка. Даже такой крутой и уважаемый дядька, как @DIHALT, когда-то писал полезный материал об использовании FSMC в STM32.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Достать их новыми можно и сейчас: различные магазины запчастей для телефонов бывают продают их по 20-30-40 рублей… Я недавно себе целую коробочку накупил, в том числе и просто для ремонта смартфонов для будущих статей :)

❯ I2C-дисплеи


Дисплеи с такой шиной — настоящая редкость и обычно попадались в телефонах самого начала нулевых годов с низким разрешением дисплея. Из известных мне — Ericsson'ы и ранние Sony Ericsson T-серии, ODM Motorola (головастики например) и… пожалуй всё.
Казалось бы, разве I2C может быть полезен для работы с дисплеями, где требуется активный вывод графики? Ведь он совсем медленный! Однако, даже он может пригодится для некоторых проектов, а в большинстве МК частенько попадается аппаратный TWI.

Кроме того, I2C дисплейчики удобно отлаживать: благодаря тому, что периферийное устройство должно отрапортовать ACK (состояние успешности получения байта) мастер-устройству, можно сразу определить обрыв линий до дисплея. Но какой-то конкретной информации по ним я не смогу написать — они все совсем разные :( Правда, полезным линком поделюсь, ребята с форума VRTP собрали хорошую таблицу с различными контроллерами дисплеев, где бывают и i2c!

❯ Подсветка


Отдельного радела стоит тема подсветки дисплеев. По первой может показаться, что тут всё просто: современным дисплеями достаточно 5В, а на старых можно замерить напряжение бустера на живом девайсе и смастерить свой DC-DC повышающий преобразователь, или взять, например, уже готовый драйвер, как известный в определенных кругах LTYN. На самом деле и тут есть свои нюансы.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Итак, каким образом реализована подсветка в том или ином устройстве? Обычно её реализация заключается в последовательном соединении двух и более светодиодов, которые формируют небольшую ленту под рассеивающей плёнкой. На современных китайских дисплейчиках, для работы в полную яркость достаточно всего лишь 5В источника питания + токоограничивающего резистора. Но что самое приятное, подсветка в таких дисплеях способна работать и при 3.3В, пусть менее ярко, но всё равно вполне читабельно.

Если вы делаете портативное маломощное устройство, работающее от одного Li-Ion аккумулятора, то достаточно лишь пустить 3.3В с линейного стабилизатора, который формирует напряжение VSYS для микроконтроллера. Таким образом, у вас будет стабильная подсветка среднего уровня яркости. В качестве альтернативного «бомж» варианта, когда нет возможности собрать нормальный драйвер подсветки, можно попробовать подключить светодиоды напрямую к АКБ, но при разряде дисплей будет потихоньку «тухнуть». Ещё один «бомж» вариант — разобрать дисплейный модуль, порезать дорожки на ленте и соединить пару светодиодов параллельно, выведя их через отверстие, откуда выходит шлейф дисплея, однако в таком случае, потребление подсветки заметно увеличится.

Правильным выходом будет взять с того-же телефона бустер подсветки с индуктивностью и иной необходимой обвязкой, и собрать бустер самому. Особой популярностью когда-то пользовались вышеупомянутые LTYN из телефонов Samsung (это маркировка известного драйвера LT1937). Уровнем подсветки на подобных бустерах телефоны управляют с помощью встроенного ШИМ-контроллера, чем можете воспользоваться и вы :)

❯ Запускаем дисплейчик на практике


В первой части статьи, я постарался ввести вас в курс дела и кратко рассказать о том, как работают такие дисплейчики «под капотом». Как видите — с теоретической точки зрения, ничего сложного нет: пересылаем данные на дисплей, да вовремя дёргаем пин D/C. Но какого же это на практике?


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

В качестве МК, мы возьмём мой любимый RP2040, который, по моему мнению, незаслуженно обделен вниманием. Время от времени я делаю всякие прикольные девайсы на базе этого МК, поэтому крайне рекомендую его всем моим читателям :)

Давайте же перейдем к практической части статьи!
Обычно при создании проекта, я просто клонирую с гита RPi сэмплы с уже готовыми файлами CMake, беру hello world, конфигурирую CMakeLists.txt и пишу свою программу. На малинке пока что нет такого удобного способа создания проекта, как idf.py create-project :)
Само собой, для удобства отладки я всегда включаю встроенную в чипсет эмуляцию UART через USB.

if (TARGET tinyusb_device)
add_executable(hello_usb
main.cpp
)

# pull in common dependencies
target_link_libraries(hello_usb pico_stdlib hardware_spi)

# enable usb output, disable uart output
pico_enable_stdio_usb(hello_usb 1)
pico_enable_stdio_uart(hello_usb 0)

# create map/bin/hex/uf2 file etc.
pico_add_extra_outputs(hello_usb)

# add url via pico_set_program_url
example_auto_set_url(hello_usb)
elseif(PICO_ON_DEVICE)
message(WARNING "not building hello_usb because TinyUSB submodule is not initialized in the SDK")
endif()

И инициализирую USB-стек и биндинги stdout к нему:

stdio_init_all();
sleep_ms(1000);

Задержка здесь важна, иначе девайс отказывается определятся в системе. Переходим, собственно, к разводке дисплея. Для работы нам достаточно лишь питания, подсветки, общей массы и четырёх сигнальных линий: MOSI, CLK, DC, RESET. На CS я обычно ставлю перемычку с массой, т. к обычно не вешаю что-то ещё на одну шину с дисплеем.

Переходим к инициализации дисплея. Наш экранчик работает на базе контроллера ST7735R и имеет разрешение 128x160. Сначала, назначаем функции для пинов и дёргаем RESET:

gpio_set_function(LCM_SPI_CLK, GPIO_FUNC_SPI);
gpio_set_function(LCM_SPI_MOSI, GPIO_FUNC_SPI);

// HW reset
gpio_init(LCM_RESET);
gpio_set_dir(LCM_RESET, true);
gpio_put(LCM_RESET, false);
sleep_ms(400);
gpio_put(LCM_RESET, true);

gpio_init(LCM_DC);
gpio_set_dir(LCM_DC, true);

spi_init(spi0, 105535000);

Весьма негусто скажете вы? Ну, с минорными изменениями, здесь заработает дисплейчик любого разрешения, даже 480x320! Переходим к фактической инициализации:

void lcmCommand(unsigned char byte)
{
gpio_put(LCM_DC, 0);
spi_write_blocking(spi0, &byte, sizeof(byte));
}

void lcmData(unsigned char byte)
{
gpio_put(LCM_DC, 1);
spi_write_blocking(spi0, &byte, sizeof(byte));
}

...

lcmCommand(0x11);
sleep_ms(120);
lcmCommand(0xB1);
lcmData(0x01);
lcmData(0x2C);
lcmData(0x2D);
lcmCommand(0xB2);
lcmData(0x01);
lcmData(0x2C);
lcmData(0x2D);
lcmCommand(0xB3);
lcmData(0x01);
lcmData(0x2C);
lcmData(0x2D);
lcmData(0x01);
lcmData(0x2C);
lcmData(0x2D);

lcmCommand(0xB4);
lcmData(0x07);

lcmCommand(0xC0);
lcmData(0xA2);
lcmData(0x02);
lcmData(0x84);
lcmCommand(0xC1);
lcmData(0xC5);
lcmCommand(0xC2);
lcmData(0x0A);
lcmData(0x00);
lcmCommand(0xC3);
lcmData(0x8A);
lcmData(0x2A);
lcmCommand(0xC4);
lcmData(0x8A);
lcmData(0xEE);

lcmCommand(0xC5);//VCOM
lcmData(0x0E);
lcmCommand(0x36);//MX, MY, RGB mode
lcmData(0xC8);

lcmCommand(0xe0);
lcmData(0x02);
lcmData(0x1c);
lcmData(0x07);
lcmData(0x12);
lcmData(0x37);
lcmData(0x32);
lcmData(0x29);
lcmData(0x2d);
lcmData(0x29);
lcmData(0x25);
lcmData(0x2b);
lcmData(0x39);
lcmData(0x00);
lcmData(0x01);
lcmData(0x03);
lcmData(0x10);
lcmCommand(0xe1);
lcmData(0x03);
lcmData(0x1d);
lcmData(0x07);
lcmData(0x06);
lcmData(0x2e);
lcmData(0x2c);
lcmData(0x29);
lcmData(0x2d);
lcmData(0x2e);
lcmData(0x2e);
lcmData(0x37);
lcmData(0x3f);
lcmData(0x00);
lcmData(0x00);
lcmData(0x02);
lcmData(0x10);
lcmCommand(0x2A);
lcmData(0x00);
lcmData(0x02);
lcmData(0x00);
lcmData(0x81);

lcmCommand(0x2B);
lcmData(0x00);
lcmData(0x01);
lcmData(0x00);
lcmData(0xA0);
lcmCommand(0x3A);//65k mode
lcmData(0x05);
lcmCommand(0x29);//Display on

// Set viewport
lcmCommand(0x2A);
lcmData(0 >> 8);
lcmData(0 & 0xFF);
lcmData(128 >> 8);
lcmData(128 & 0xFF);

lcmCommand(0x2B);
lcmData(0 >> 8);
lcmData(0 & 0xFF);
lcmData(160 >> 8);
lcmData(160 & 0xFF);

Прошиваем наш МК и смотрим что получилось. Видим шум на экране? Значит дисплей инициализирован верно!

После инициализации дисплея, мы можем выводить на него данные! Дабы дать возможность процессору заниматься другими делами во время передачи картинки на дисплей, мы настроим один из DMA-каналов. DMA-контроллер занимается пересылкой данных из ОЗУ в другой участок ОЗУ (аппаратный memcpy) или периферию. Как раз для второго случая, т. е. пересылки данных в контроллер SPI, мы и будем использовать DMA!

Аллокейтим фреймбуфер, куда мы будем выводить нашу картинку и настраивает DMA-канал:

int backBufSize = LCM_WIDTH * LCM_HEIGHT * 2 + 1;
backBuffer = (byte*)malloc(backBufSize);

printf("LCM: Setting up DMA channel...\n");
bulkDMAChannel = dma_claim_unused_channel(true);
cfg = dma_channel_get_default_config(bulkDMAChannel);
channel_config_set_transfer_data_size(&cfg, DMA_SIZE_8);
channel_config_set_dreq(&cfg, spi_get_dreq(spi0, true));

Переходим к выводу изображения на дисплей. Для того, чтобы просто установить цвет пикселя в любых координатах экрана, достаточно лишь посчитать смещение от начала указателя на фреймбуфер к определенным координатам экрана. Формула очень простая и понятная: ширина дисплея * Y-координата + x координата и результат предыдущих операций помноженный на число байт в одном пикселе.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

__inline void pixelAt(short x, short y, short color)
{
if(x < 0 || y < 0 || x >= LCM_WIDTH || y >= LCM_HEIGHT)
return;

byte* col = (byte*)&color;
*((short*)&backBuffer[(y * 128 + x) * 2]) = color;
}

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

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

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

А вот как с этим всем работать:

stdio_init_all();

sleep_ms(1000);


printf("LCM test by monobogdan\n");


lcmInitInterface();

lcmAllocBackBuffer();

lcmInit();


grDrawBitmapTransparent((void*)&pikabu, PIKABU_WIDTH, PIKABU_HEIGHT, 0, 0);

lcmFlush();


while(1)

{


}

Запускаем и...

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Можно сделать чуть комплекснее, добавив альфа-блендинг и аффинные трансформации (возможность поворота и скейла картинок), но пока-что такой задачи не стоит. Ну что, всё очень просто и понятно? :) Пример прошивки можно найти на моём GitHub!

Производительность такого способ на RP2040 можно увидеть вот в этом видосе (на Пикабу не смог залить из-за ограничения на число медиа-элементов). Обратите внимание, что подход предложенный выше больше подходит именно для динамического вывода изображения без dirty-регионов. Он подойдет для игровых консолей, камер, анимаций или устройств с выводом динамической информации по типу осциллографов. Если вам нужно обновлять картинку реже, например, если вы делаете умные часы с плеером, то нет необходимости занимать довольно большой объем ОЗУ фреймбуфером, ведь вы можете писать напрямую в видеопамять. Тут уже решать в зависимости от конкретной ситуации именно вам :)

❯ Заключение


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

Был ли для вас материал полезен? Пишите в комментариях.

Полезный материал?
Всего голосов:
Какие дисплейчики подключали?
Всего голосов:

❯ Важное объявление для читателей касательно будущей рубрики

Друзья! Я, как и многие мои читатели, помимо программирования и железа обожаю тачки! Особенно те тачки, где что-то нужно доделывать самому… и речь, конечно-же, о ТАЗах! Я долго думал, но всё же решился: сейчас я коплю на будущий интересный проект, связанный с ультрабюджетным электронным дооснащением автомобиля, который старше меня в полтора раза — скорее всего, речь пойдет о ВАЗ 2108/2109/21099, причём не исключено что карбюраторной! В планах довольно крутой проект, заключающийся в следующем: мы спроектируем очень дешевый бортовой компьютер (т.е панель) для управления автомобилем на базе дешевого Б/У планшета за пару сотен рублей. Планшет будет связан с управляющим МК через UART (о подобной коммуникации через хардварные протоколы я уже писал целых две статьи: сам себе Linux смартфон, превращаем планшет с нерабочим тачскрином в игровую консоль), и с планшета мы сможем не только управлять основными системами машины (стеклоподъемники, центральный замок и соленоид багажника), но и собирать и пытаться примерно посчитать некоторую информацию о расходе, километраже и стабильности работы двигателя на карбюраторной(!) машине без электронных систем с завода!

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

В наши задачи будет входить не только проектирование аппаратной части такого оснащения, но и разработка симпатичного интерфейса для самой панели, дабы было не хуже чем в BMW :D Всеми схемами, исходным кодом и инструкциями я буду делится с вами в каждой статье и, как обычно, расскажу обо всех деталях реализации во всех подробностях! У меня уже есть некоторые идеи и наработки. Собственно, почему-б и не попробовать? Будет новая рубрика в блоге: апгрейд автомобилей глазами электронщика и прожженного программера.

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, C++, Raspberry Pi, Arduino, Дисплей, Экран, 2D, Графика, Embedded, Своими руками, Микроконтроллеры, Код, Электроника, Железо, Длиннопост

Фото не моё, из интернета

Если вам нравятся мои статьи, вас интересует развитие такой рубрики и у вас есть желание и возможность — можете помочь проекту копеечкой с помощью формы доната ниже. Пикабу позволяет остаться анонимным и донатить даже без регистрации. Сейчас у меня есть 40 тысяч рублей личных накоплений, на покупку самой машины планирую выделить 70-80 тысяч рублей (я живу в Краснодарском крае, так что здесь ещё есть шансы найти что-то +- живое за такие деньги), так что остаётся собрать около 30-35 тысяч рублей. За каждую копейку я готов отчитаться (по факту покупки машины я сделаю пост с фотографиями авто, ДКП, а также оглашу фронт будущих работ и сразу начну заниматься проектом).

Интересный проект с тазиком?
Всего голосов:
Показать полностью 25 3

Ремонт часов "Электроника 2-08"

Привет, Пикабу!

Я тут немного приболел, и по сему случаю руки наконец-то дошли до ремонта многолетних "долгов". Да и опыта в ремонте за эти годы поднабрался, так что, приступим.

Будем восстанавливать в рабочее состояние недоремонтированные мной в 2016 году часы "Электроника 2-08". Часы принадлежали моему деду и исправно служили с 1988 по 2016 год. Вот они:

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

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

Подключив часы к сети, убеждаемся, что глюки никуда не ушли:

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

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

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

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

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

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

После чего проверяем мегаомметром с пределом 200 МОм сопротивление в разных близких точках платы:

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

Везде больше 200 МОм. Порядок.

После чистки глюк с засветом первого разряда убрался:

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

Кроме чистки поменял кварц на более крупный (с ним проще запускается генерация):

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

Ну и, на всякий случай, зашунтировал микросхему генератора сигналов керамикой:

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

Возможно, это лишнее, но хуже точно не будет.

Архитектура этих часов - "стандартная" для СССР: они собраны на трёх микросхемах 176-й серии: ИЕ18 - это генератор сигналов на основе кварца, ИЕ13 - собственно, часы с будильником, ИД3 - двоично-десятичный дешифратор для вывода времени на вакуумный индикатор. Зарубежных аналогов этих микросхем, кстати, не существует. Это полностью отечественная разработка.

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

Часы стали работать нормально, поэтому собираем их обратно в корпус и ставим на полку, работать следующие 20+ лет :)

Ремонт часов "Электроника 2-08" Реставрация, Ретро, Сделано в СССР, Электроника, Ремонт техники, Ламповые часы, Винтаж, Познавательно, Длиннопост

Пикабу канефоледымный :)

P.S. Эта статья в формате видео: https://dzen.ru/video/watch/65e755abaf6b8a158ff0627c

P.P.S. Напоминаю, что с приходом тепла буду заниматься восстановлением исторической системы освещения вокруг одного из панельных домов в Москве, в связи с чем крайне нуждаюсь в Ваших донатах :) Подробнее: https://dzen.ru/b/ZcJAa0IDw2fWR-Of

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

Ретропонедельник № 138 Телевизор Рекорд-Б

Телевизоры в нашем виртуальном музее кучно пошли. Сегодня у нас Рекорд-Б. Телевизор с 1959 года выпускал Александровский радиозавод.

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

''Рекорд-Б'' представляет собой супергетеродинный 12 канальный, 16 ламповый настольный телевизионный приемник. Телевизор имеет кинескоп типа 35ЛК2Б с ионной ловушкой и с размером изображения 280х210 мм. Четкость изображения 500 линий. Чувствительность 200 мкВ. Телевизор питается от сети 127 или 220 вольт. Потребляемая мощность 140 Вт. Габаритные размеры телевизора 590х470х540 мм. Масса 30 кг. Цена телевизора 236 рублей 80 коп.

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

Именная табличка высечена из латуни

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

Селектор каналов

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

Серебристая декоративная пластинка из алюминия, покрашенная серебрянкой

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

Индуктивности с намоткой типа "универсаль" для минимизации собственной емкости катушки.

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

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

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

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

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост
Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

Не спешите включать найденную на чердаке старую технику. Часто изоляция проводов потеряла эластичность и выглядит как-то так:

Ретропонедельник № 138 Телевизор Рекорд-Б Электроника, Техника, Сделано в СССР, Телевизор, Александров, Виртуальный музей, Длиннопост

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

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

Контроллер теплого пола

Устройство и принцип работы контроллера теплого пола. Разобрал, показал, рассказал. Постарался объяснять максимально просто, чтоб было понятно всем.

Оживляем контроллер машиниста от ушедшего в историю электропоезда

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Приветствую всех!

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

И вот наконец в мои руки попал не просто какой-то контроллер, а очень примечательный экземпляр — от «концептуальной» электрички ЭМ2И, коих в наши дни уже не осталось.

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

❯ Суть такова


Так получилось, что ко мне в руки попал контроллер от старого электропоезда ЭМ2И. И, само собой, напрашивалось единственное верное решение — подключить его к Trainz или «Метрострою».

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Безусловно, кое-что всё же существует. Есть такая штука как Raildriver, которая даже нативно поддерживается в Trainz, однако в России оказалось реальнее достать настоящий контроллер, нежели её.

Немного про электропоезда ЭМ2И

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Прежде чем начать разбираться с подключением, поговорим о том, что это вообще была за электричка.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

ЭМ2И являются детищем более старых проектов — ЭМ1 и ЭМ2. Все эти поезда — глубокие модернизации куда более старых ЭР2. Серия была предназначена для эксплуатации на линии в Домодедово в качестве экспрессов.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Электропоезд обладал целым рядом нововведений — новые сцепные устройства, полупантографы, электронная система управления. Выпускались они на Московском локомотиворемонтном заводе, а запчасти для них поставляло некое ЗАО «Спецремонт».

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Увы, с самого начала история этих электричек пошла не в их пользу — уже на испытаниях выяснилось, что многие характеристики не соответствовали заявленным, а в конструкции имелось немало фатальных недостатков. Эксплуатировались необычные поезда совсем недолго, в первой половине нулевых, а большую часть своего существования они стояли в депо или на базах запаса и тихонечко гнили. Проект вышел крайне неоднозначным: стоили машины очень дорого (практически как новые ЭД4М), имели небольшой срок службы (ведь ходовая часть осталась от старых ЭРок), а также были крайне ненадёжными и неудобными в ремонте. В итоге от их использования довольно быстро отказались, а в 2019-2020 годах все машины (точнее, то, что от них осталось за долгие годы стояния на открытом воздухе и постепенного разграбления вандалами) были порезаны на металлолом.

Впрочем, многие (как и я) до сих пор жалеют, что не успели прокатиться на этом неудачном, но всё же весьма интересном МВПС.

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


Ну что же, переходим к нашей железке. Ко мне в руки попал контроллер машиниста КМ-4А, снятый с одного из списанных таких поездов. Скручен он был ещё много лет назад, отчего он не успел сгнить, пострадать от рук вандалов или стать собственностью охотников за драгметаллами.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

А вот и подопытный экземпляр. На нём две ручки — реверс и непосредственно управление. Также имеется тумблер.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Позиции.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Разъём для связи девайса с внешним миром — DB37F. Закреплён он на обычном куске фанерки.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Наклейка того самого «Спецремонта».

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Вдалеке видно тот самый прижимной механизм.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Нужное усилие обеспечивается двумя мощными пружинами.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

По бокам находятся толстые стальные пластины, в которые вкручиваются стойки и вставляются валы. Из-за их толщины (десять миллиметров) скромный по размерам контроллер имеет весьма внушительную массу — чуть больше семи килограммов.

Кулачки


Контроллер внутри очень похож на командоаппарат.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост
Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Вот для примера положение кулачков в разных позициях ручки.

Реверс


Начнём, наверное, с самого простого — с ручки реверса.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Вот положение этих двух деталей при нулевой позиции реверса.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

А вот — когда включён реверс, а ручка повёрнута на ход или тормоз.

Распиновка


Чтобы разобраться с работой самого контроллера, пришлось выяснить распиновку, благо проблем с её определением не возникло. Она здесь оказалась вот такая:

  1. Пятый кулачок (нормально разомкнутый контакт)

  2. Четвёртый кулачок (нормально разомкнутый контакт)

  3. Третий кулачок (нормально разомкнутый контакт)

  4. Второй кулачок (нормально разомкнутый контакт)

  5. Первый кулачок (нормально разомкнутый контакт)

  6. Третий кулачок (нормально замкнутый контакт)

  7. Второй кулачок (нормально замкнутый контакт)

  8. Назад

  9. Вперёд

  10. Ничего

  11. Вперёд

  12. Назад

  13. Второй кулачок (нормально замкнутый контакт)

  14. Третий кулачок (нормально замкнутый контакт)

  15. Первый кулачок (нормально разомкнутый контакт)

  16. Второй кулачок (нормально разомкнутый контакт)

  17. Третий кулачок (нормально разомкнутый контакт)

  18. Четвёртый кулачок (нормально разомкнутый контакт)

  19. Пятый кулачок (нормально разомкнутый контакт)

  20. Ничего

  21. Ничего

  22. Ничего

  23. Ничего

  24. Ничего

  25. Ничего

  26. Ничего

  27. Ничего

  28. ЗАП/ОТП

  29. ЗАП/ОТП

  30. Ничего

  31. Ничего

  32. Ничего

  33. Ничего

  34. Ничего

  35. Ничего

  36. Ничего

  37. Ничего


Далее берём мультиметр и выясняем, какие контакты в какой позиции замкнуты.

Далее объединяем всё в одну таблицу:

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Подключение к ПК


Для того, чтобы связать контроллер с компьютером, понадобится всего-ничего — плата на самом дешёвом МК с поддержкой USB HID в лице Raspberry Pico, вилка DB37 и немного проводков...

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


Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

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

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

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

Друг познается в чате

«Чат на чат» — новое развлекательное шоу RUTUBE. В нем два известных гостя соревнуются, у кого смешнее друзья. Звезды создают групповые чаты с близкими людьми и в каждом раунде присылают им забавные челленджи и задания. Команда, которая окажется креативнее, побеждает.

Смотрите выпуски шоу только на RUTUBE!

Реклама ООО «РУФОРМ», ИНН: 7714886605

Из MT3608 в повышающе-понижающие DC-DC с током до 2А

Отличная работа, все прочитано!