Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Raspberry + Программирование

С этим тегом используют

Raspberry pi IT Программист IT юмор Разработка Python Картинка с текстом Юмор Все
49 постов сначала свежее
11
Вопрос из ленты «Эксперты»
Leozol
Leozol
7 месяцев назад
Arduino & Pi

Кто-то разрабатывал автоматически открывающиеся ящики и дверцы?⁠⁠

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

С помощью ИИ сфантазировал макет:

Кто-то разрабатывал автоматически открывающиеся ящики и дверцы? Вопрос, Спроси Пикабу, Программирование, Нужен совет, Linux, Программа, Raspberry pi, Робототехника, Инженерия, Консультация, Arduino

Где слева дверца, а справа ящик. Сверху может быть экран или терминал с тачскрином.

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

На данном этапе, вижу модуль открытия ящика как нечто на шаговом двигателе с датчиком усилия. Моторчик с Али (видел там целые витрины продаются выдвижные для кроссовок, но это не совсем то)

Для управления всем хозяйством первая мысль - на основе Raspberry Pi  и шаговых двигателей, а радиометки детекции образцов в витрине использовать Bluetooth вместо RFID, так как для вторых нужно плотное касание, а для первых нет. Однако пока не знаю как сделать так чтобы они были без батареек, пассивными, чтобы их питанием не снабжать.

Конечная цель: без наличия человека иметь возможность демонстрировать образцы пользователям.

Кто-нибудь такое разрабатывал ? Критикуйте.

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

Показать полностью 1
[моё] Вопрос Спроси Пикабу Программирование Нужен совет Linux Программа Raspberry pi Робототехника Инженерия Консультация Arduino
9
2
AlwaysTrue
AlwaysTrue
8 месяцев назад

DIY конструктор с манипулятором⁠⁠

Конструктор для развития ребенка и собственного тоже. Для работы требует Raspberry Pi 4 версии и два аккумулятора 18650, которые в комплект поставки не входят. Начальные настройки можно скачать по ссылке в карточке товара еще до покупки, чтобы оценить сложность и собственные возможности. В дальнейшем можно писать дополнительные модули на Питоне (это вам не Арудуино, а уже серьезный подход). Конечно же продавец предлагает все инструкции по сборке и настройке. Этот конструктор позволит заинтересовать ребенка робототехникой и заложит неплохую базу в его светлое будущее.

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

Все что нужно:

Сам конструктор →

Raspberry Pi →

Аккумуляторы 18650 →

Зарядник для аккумуляторов →

UPD:

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН/Регистрационный номер: 7703380158

Показать полностью
Инженер Товары Технологии Инновации Своими руками Робот Программирование Python Raspberry pi Видео
1
2
EchoElectronic
EchoElectronic
9 месяцев назад

ТехноДайджест: от российских ноутбуков до дистанционной хирургии⁠⁠

Обзор последних достижений в области технологий: российские ноутбуки на Эльбрус, прорывы в телемедицине, инновации в лечении СДВГ и развитие ИИ в различных отраслях.

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

Железные новости

Россия

Автору тг-канала «Ажаль» показали прототип ноутбука на Эльбрус 2с3 от компании Промобит (Bitblaze).

В России начата разработка дизайна отечественного оборудования для электронного машиностроения.

Компания «Марс технологии» планирует в 2025 году запустить производство оборудования для создания частных сотовых сетей в ОЭЗ «Иннополис», ориентированное на крупных корпоративных заказчиков, в частности, предприятия нефтегазохимического комплекса и горнодобывающей отрасли.

Холдинг «Росэлектроника» (входит в Госкорпорацию Ростех) начал поставки отечественных измерителей параметров трансформаторных подстанций «Коэффициент-М-2022Ц» для мобильных электролабораторий, которые заменят ранее использовавшиеся иностранные аналоги и смогут работать в суровых климатических условиях.

Мир

Хирурги из Швейцарии успешно провели дистанционную эндоскопию на свинье в Гонконге на расстоянии 9300 км, используя магнитный эндоскоп, управляемый через игровой контроллер, что открывает перспективы для удаленных операций на людях в труднодоступных регионах.

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

В Южной Корее арестованы бывшие сотрудники Samsung Electronics по подозрению в краже и передаче Китаю технологий производства памяти DRAM, что нанесло компании предполагаемый ущерб в $3.2 млрд.

Немецкий производитель полупроводников Infineon объявил о технологическом прорыве в производстве чипов на основе нитрида галлия (GaN) на 300-миллиметровых пластинах, что позволит компании занять значительную долю растущего рынка GaN-чипов, объем которого к концу десятилетия достигнет нескольких миллиардов долларов.

Индия активно развивает собственную полупроводниковую промышленность, привлекая крупных производителей электроники (в частности, Apple) и инвестиции, с целью стать альтернативой Китаю в производстве чипов, планируя увеличить оборот отрасли с текущих $155 млрд до $500 млрд к концу десятилетия.

Новости ИИ

Россия

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

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

Компания Yadro совместно с Высшей школой цифровой культуры ИТМО запускает годовую образовательную программу Yadro AI School для студентов третьего курса бакалавриата и старше, направленную на углубленное изучение искусственного интеллекта, включающую курсы по Python, статистике, обработке естественного языка и глубокому обучению, с возможностью последующей стажировки в компании для лучших выпускников.

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

МТС Web Services (MWS), дочерняя компания ПАО «МТС», инвестирует более 1 миллиарда рублей до конца 2025 года в создание ИИ-облака — нового направления, которое предоставит компаниям инфраструктуру с графическими ускорителями (GPU) и ряд готовых сервисов для упрощения и ускорения внедрения искусственного интеллекта в бизнес-процессы.

Мир

OpenAI представила новую модель искусственного интеллекта o1 (кодовое название Strawberry), которая способна решать сложные задачи путем пошагового рассуждения.

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

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

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

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

Ведущий исследователь OpenAI по GPT-4o/GPT-5 уходит, чтобы основать собственную компанию.

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

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

  1. Действуйте как инженер-программист:

    • Попросите ИИ выступить в роли инженера-программиста.

    • Предоставьте все соответствующие файлы и попросите ИИ объяснить код.

    • Это помогает ИИ понять контекст и существующую кодовую базу.

  2. Действуйте как менеджер продукта:

    • Попросите ИИ выступить в роли менеджера продукта.

    • Четко опишите новую функцию, которую вы хотите разработать.

    • При необходимости попросите составить документ с требованиями к продукту.

  3. Действуйте как технический руководитель:

    • Для сложных функций сначала напишите псевдокод.

    • Это дает ИИ возможность еще раз просмотреть кодовую базу и ваши требования.

    • Помогает определить, какие файлы и разделы кода нужно изменить.

  4. Действуйте как разработчик:

    • Попросите ИИ написать реальный код на основе псевдокода и предыдущих шагов.

    • После завершения кодирования попросите ИИ создать сообщение для git commit.

Модели с Hugging Face

OpenVLA представляет собой набор открытых мультимодальных моделей с 7 миллиардами параметров, которые способны управлять роботами, принимая на вход языковые инструкции и визуальные данные.

Mini-Omni, новая open-source мультимодальная языковая модель, разработанная на основе метода Any Model Can Talk, предлагает возможности обработки речи в реальном времени, включая преобразование речи в речь без дополнительных моделей ASR или TTS, одновременную генерацию текста и аудио, а также потоковое воспроизведение

Raspberry Pi

Энтузиаст создал «умную» полку для своей коллекции виниловых пластинок, используя Raspberry Pi 4 и несколько ESP32 для управления светодиодными лентами, которые подсвечивают местоположение выбранной пластинки.

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

Студент-разработчик создал Mosaico — платформу, управляемую Raspberry Pi, которая позволяет оживлять Python-скрипты на LED-матрице, с возможностью тестирования в симуляторе без необходимости в реальном оборудовании.

Запуск Phi-3/Mistral 7B LLMs на Raspberry Pi 5: пошаговое руководство

Python

Транскрибация русской и английской речи с помощью Whisper и Python

LightAPI — новый легковесный фреймворк для быстрого создания API-эндпоинтов на Python, использующий нативные библиотеки и обеспечивающий простоту, производительность и асинхронность через SQLAlchemy и aiohttp.

PyJSX — библиотека, позволяющая писать JSX-подобный код непосредственно в Python.

Разработчик открыл исходный код своего инструмента для веб-скрапинга Stealth-Requests, который имитирует поведение браузера при отправке запросов, делая процесс сбора данных с веб-сайтов более эффективным и незаметным.

Разработана библиотека Dict Hash, позволяющий эффективно хешировать словари, DataFrame из Pandas и Polars, массивы NumPy и объекты Numba.

EasySubber автоматизирует создание субтитров для видеофайлов с использованием модели распознавания речи Whisper от OpenAI и FFmpeg для обработки аудио.

Meatie автоматически генерирует код для работы с REST API на основе аннотаций типов.

SyncStar — приложение для создания загрузочных USB-накопителей с выбранной операционной системой.

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

Linux

Выпущена версия KDE Plasma 6.1.5

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

Красота

Аналоговая драм-машина с цифровым управлением.

ТехноДайджест: от российских ноутбуков до дистанционной хирургии Технологии, Искусственный интеллект, Программирование, Инновации, Электроника, Raspberry pi, Python, Программист, Видео, Видео ВК, Длиннопост

Что посмотреть

В ожидании GPT-5: путешествие в сердце ИИ-революции

Погружение в мир искусственного интеллекта через призму путешествий по США и Японии, посещение конференции Hot Chips и размышления о будущем ИИ. От роста Waymo до ожидания GPT-5 — какова реальная экономика самоуправляемых автомобилей и что ждет индустрию в ближайшие годы?

Показать полностью 8 1
[моё] Технологии Искусственный интеллект Программирование Инновации Электроника Raspberry pi Python Программист Видео Видео ВК Длиннопост
1
3
EchoElectronic
EchoElectronic
9 месяцев назад

ТехноДайджест: железо, ИИ, Python⁠⁠

ТехноДайджест: железо, ИИ, Python Технологии, Программирование, Электроника, Искусственный интеллект, Raspberry pi, Инновации, Видео, Видео ВК, Длиннопост

Прогресс Intel в области процессоров и инвестиции Китая в полупроводниковую отрасль; Крупнейший в мире кластер для обучения ИИ от XAI; Новые модели и инструменты для работы с ИИ, обновления для Raspberry Pi, а также новые библиотеки Python.

Железные новости

Россия

В Зеленограде запускается образовательная программа по аппаратному программированию на отечественном микроконтроллере MIK32 Амур для школьников 7-11 классов, направленная на подготовку будущих специалистов в радиоэлектронной промышленности.

Российские специалисты из НИИ «Полюс» холдинга «Швабе» разработали первый отечественный высокоточный лазерный сканер для системы весогабаритного контроля автотранспорта, способный заменить иностранные аналоги.

Несмотря на усилия по импортозамещению, IT-инфраструктура российских компаний все еще на 75% состоит из зарубежных решений, при этом процесс замещения идет медленно и сопряжен с различными трудностями.

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

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

Компания Softline приобрела контрольный пакет акций крупнейшего российского производителя волоконных лазеров «ИРЭ-Полюс» у американской IPG Photonics за 4.5 млрд рублей, что позволит Softline расширить свое присутствие в промышленном, телекоммуникационном и медицинском секторах.

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

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

Интервью с Константином Трушкиным, заместителем директора по маркетингу и развитию компании МЦСТ, разработчиком российских процессоров Эльбрус.

Мир

Intel достигла значительного прогресса в разработке техпроцесса 18A (1.8нм), снизив плотность дефектов до уровня ниже 0.4 на кв.см, что приближает компанию к массовому производству процессоров нового поколения.

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

Европейская ассоциация полупроводниковой промышленности (ESIA) призывает ЕС ускорить оказание помощи отрасли, разработать обновленный пакет поддержки Chips Act 2.0 и назначить специального представителя по вопросам полупроводников для усиления конкурентоспособности европейского сектора микроэлектроники.

Правительство Пекина создало новый инвестиционный фонд в размере 8.5 млрд юаней (1.2 млрд долларов США) для поддержки полупроводниковой промышленности, что является частью масштабных усилий Китая по развитию отечественной микроэлектроники в условиях обострения торговых отношений с США.

Новости ИИ

Россия

Ученые ННГУ разработали метод оптимизации использования ресурсов микропроцессоров архитектуры RISC-V, что позволило значительно ускорить выполнение некоторых алгоритмов библиотеки OpenCV.

Мир

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

Компания XAI Илона Маска запустила Colossus – крупнейший в мире кластер для тренировки искусственного интеллекта, состоящий из 100 000 GPU NVIDIA H100, с планами по удвоению мощности в ближайшие месяцы.

ТехноДайджест: железо, ИИ, Python Технологии, Программирование, Электроника, Искусственный интеллект, Raspberry pi, Инновации, Видео, Видео ВК, Длиннопост

Стартап Safe Superintelligence (SSI), соучредителем которого является бывший главный научный сотрудник OpenAI Илья Суцкевер, привлек 1 миллиард долларов инвестиций для разработки безопасных систем искусственного интеллекта, превосходящих человеческие возможности.

Яндекс разработал новую end2end-модель генерации коротких видео YandexART (Vi), которая создает более плавные и связные пятисекундные видео по текстовому запросу, превзойдя предыдущий метод Deforum.

Microsoft Research обновил AutoGen Studio — низкокодовый инструмент для быстрого прототипирования, отладки и оценки многоагентных систем на основе LLM, доступный через веб-интерфейс и Python API.

Человек с аутизмом, СДВГ и биполярным расстройством 2-го типа создал сложную систему поддержки на основе технологий, включая кластер офлайн ИИ-компаньонов, как альтернативу традиционному медикаментозному лечению и уходу в специализированных учреждениях.

Разработчик-одиночка с ограниченными возможностями успешно использовал различные ИИ-сервисы для создания игры Isekaing: from Zero to Zero, компенсируя отсутствие навыков программирования и художественного оформления, а также ограниченный бюджет.

ТехноДайджест: железо, ИИ, Python Технологии, Программирование, Электроника, Искусственный интеллект, Raspberry pi, Инновации, Видео, Видео ВК, Длиннопост

Модели с Hugging Face

Mini-Omni — это новая открытая мультимодальная речевая модель, способная осуществлять ввод-вывод речи в реальном времени без дополнительных моделей ASR или TTS, основанная на методе Any Model Can Talk и LLM Qwen2-0.5B.

Yi-Coder — семейство специализированных open-source LLM для программирования с высокой производительностью, доступных в версиях 1.5 и 9 миллиардов параметров, обученных на обширном корпусе кода и способных работать с 52 языками программирования.

Исследователи представили OLMoE-1B-7B — языковую модель на основе смеси экспертов, которая, используя только 1 миллиард активных параметров из 7 миллиардов, демонстрирует производительность, превосходящую более крупные модели, включая Llama2-13B-Chat и DeepSeekMoE-16B.

Raspberry Pi

Устанавливаем и настраиваем Rathole для создания соединения между Raspberry Pi и Windows через удаленный сервер.

Мониторинг интернет-соединения на Raspberry Pi: Python-скрипт для автоматических уведомлений по почте.

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

BalanceHAT — новая плата расширения для Raspberry Pi Zero W, предназначенная для создания простых роботов и тестирования программного обеспечения Copper, с поддержкой управления двигателем постоянного тока, датчиками и питанием через USB-C.

ТехноДайджест: железо, ИИ, Python Технологии, Программирование, Электроника, Искусственный интеллект, Raspberry pi, Инновации, Видео, Видео ВК, Длиннопост

Библиотеки Python

Разработчик предлагает новый подход к созданию графиков с использованием простого API на основе NumPy, который превосходит Matplotlib по производительности и обеспечивает большую гибкость в манипулировании и отображении данных.

Автор представляет библиотеку great_tables для Python, позволяющую создавать привлекательные таблицы для публикаций и веб-страниц, и делится видео, документацией и репозиторием проекта.

Разработан новый шаблон cookiecutter-uv для быстрого запуска Python-проектов с использованием инструмента uv, включающий в себя современные инструменты для разработки, тестирования и публикации кода.

Reddit Stash — Python-скрипт для автоматического ежедневного резервного копирования сохраненных постов и комментариев с Reddit, включая их контекст, с сохранением в формате Markdown на Dropbox.

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

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

Linux

Выпущена версия Kazam 2.0 – многофункционального инструмента для Linux, предназначенного для записи экрана, трансляции, захвата изображений и оптического распознавания символов (OCR) с учетом возможностей искусственного интеллекта.

Что посмотреть

История развития компьютеров и программирования

История компьютеров берет начало в текстильной промышленности. Бэббидж теоретизировал, Лавлейс дополнял, Холлерит считал, Цузе развивал, Эйкен добавлял свои обороты, а потом Гейтс и Джобс продавали. Совершите путешествие из 1800-х годов в наши дни, наблюдая за развитием компьютеров.

Показать полностью 3 2
[моё] Технологии Программирование Электроника Искусственный интеллект Raspberry pi Инновации Видео Видео ВК Длиннопост
0
2
EchoElectronic
EchoElectronic
10 месяцев назад

ТехноДайджест: железо, ИИ, Python⁠⁠

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Энтузиаст создал портативный модульный мини-компьютер на базе Raspberry Pi 5; IBM прекращает научные исследования в Китае и планирует уволить более 1 тысячи сотрудников; Mozilla разрабатывает инструментарий распознавания речи Whisperfil; и многое другое.

Железные новости

Россия

Минфин выложил проект постановления, который запрещает госзакупки иностранного ПО и микросхем.

АРПЭ: В прошлом году контрактное производство электроники в России увеличилось на 40%.

Интервью с Константином Трушкиным, заместителем директора по маркетингу и развитию компании МЦСТ.

Банки ОАЭ начали ограничивать российские платежи за китайское оборудование.

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

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

Минпромторг РФ одобрил инициативу Союза «Русская электроника» о пересмотре принципов формирования цен на продукцию в рамках государственного оборонного заказа (ГОЗ).

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

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

Минпромторг РФ закупил европейское оборудование для печатных плат на сумму 249.2 млн рублей для расширения производственных мощностей НПП «Гамма».

Мир

SK Hynix объявила о создании DRAM шестого поколения.

IBM прекращает научные исследования в Китае и планирует уволить более 1 тысячи сотрудников.

Американская компания Qualcomm выкупает у французской Sequans Communications технологии 4G IoT, стоимость сделки не раскрыта и требует одобрения регулирующих органов; при этом Sequans сохранит право на использование технологии через лицензионное соглашение и права на свои разработки в области 5G.

Илон Маск представил суперкластер Cortex AI, состоящий из 50 000 графических процессоров NVIDIA H100, который обещает значительное улучшение вычислительных мощностей для задач в области искусственного интеллекта.

Plaud представила NotePin — носимое устройство с искусственным интеллектом, которое автоматически записывает, транскрибирует и суммирует голосовые заметки и телефонные разговоры.

Создана новая версия дисплея, которая отображает информацию в воздухе, используя полупрозрачное зеркало и ретрорефлекторы

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Floating display

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Основные оптические компоненты «воздушного» дисплея

Новости ИИ

Россия

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

Мир

Компания Mozilla разрабатывает инструментарий распознавания речи Whisperfile, который включает высокопроизводительную реализацию модели машинного обучения Whisper от OpenAI на основе whisper.cpp.

Исследователи из Google DeepMind воссоздали интерактивную версию игры DOOM в реальном времени с помощью диффузионной модели.

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Google DeepMind Doom

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

OpenAI ведет переговоры о привлечении финансирования, которое оценит компанию более чем в 100 миллиардов долларов.

OpenAI демонстрирует свою эффективность в разминификации кода, позволяя разработчикам легче анализировать и понимать сложные JavaScript-скрипты.

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Источник

OpenAI и Anthropic подписали соглашение с Институтом безопасности ИИ США, позволяющее проводить тестирование и оценку их моделей.

Raspberry Pi

Новый чип в Raspberry Pi 5 с 2 ГБ оперативной памяти снижает потребление энергии до 30%, что улучшает его энергоэффективность.

В микроконтроллере Raspberry Pi RP2350 обнаружен аппаратный баг, который вызывает некорректное поведение подтягивающих резисторов.

Создана система автоматической кормежки рыб, управляемая Raspberry Pi, которая позволяет удаленно кормить рыб и следить за ними через веб-камеру.

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Cистема автоматической кормежки рыб, управляемая Raspberry Pi

Энтузиаст создал портативный модульный мини-компьютер на базе Raspberry Pi 5.

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Источник

Создан проект, в котором Raspberry Pi используется как ключница с встроенной системой резервного копирования файлов.

ТехноДайджест: железо, ИИ, Python Технологии, Arduino, Raspberry pi, Python, Программирование, Микроконтроллеры, Искусственный интеллект, Электроника, Видео, Видео ВК, Длиннопост

Ключница на Raspberry Pi

Библиотеки Python

Представлен однострочный скрипт на Python для очистки и упрощения очистки CSV-файлов.

Представлен инструмент HTTPOut, который позволяет выполнять ваши скрипты на Python через URL, обеспечивая удобный способ управления кодом.

Picows — это высокопроизводительная библиотека с открытым исходным кодом на Python, предназначенная для создания соединения клиента и сервера, с помощью WebSocket

Библиотека Neutrino — безопасный и событийно-ориентированный низкоуровневый протокол, использующий зашифрованный UDP для передачи данных.

Что посмотреть

От кремния до малины: тайны рождения Raspberry Pi

Эксклюзивный репортаж с завода (с русскими субтитрами), где за десятилетие собрали почти 50 миллионов «малиновых» компьютеров, раскрывает секреты создания самого популярного одноплатника в мире.

Показать полностью 7 1
[моё] Технологии Arduino Raspberry pi Python Программирование Микроконтроллеры Искусственный интеллект Электроника Видео Видео ВК Длиннопост
0
278
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
1 год назад

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One⁠⁠

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

В своей жизни я обожаю как минимум три вещи: это C# (как и .NET в целом), интересное железо и одноплатные компьютеры. В Embedded-системах на Linux обычно принято писать код на C/C++ для решения чувствительных к производительности задач и интерпретируемых Lua/Python для быстрого прототипирования, которые стали популярны в встраиваемых устройствах сравнительно недавно. Однако о нативной разработке под одноплатники на C# практически ничего не слышно и я решил исправить это недоразумение! В сегодняшнем материале: рассмотрим, какие платформы .NET нам доступны на одноплатниках, научимся работать с GPIO и SPI в юзерспейсе, а также напишем практическое приложение, которое реализовывает драйвер дисплея и выводит на экран определенное изображение.

❯ Предисловие


Одноплатники уже давно вошли в повседневную жизнь многих DIY-щиков, сисадминов и людей, которые интересуются мини-компьютерами. Казалось бы, одну и ту же задачу можно решить несколькими методами на самых разных языках: кто-то предпочитает писать нативный код на тех же плюсах, а особо прожженные — на Plain-C и ассемблере, стараясь получить максимальную производительность, а кто-то хочет сразу перейти к реализации своего устройства не заморачиваясь с подробным изучением того, как чип работает «под капотом» и какие шины существуют, ограничиваясь использованием готовых библиотек.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Но я лично очень люблю C# за его максимальную гибкость, позволяющую оптимизировать некоторые обращения к памяти путем получения прямых указателей на данные, умеет в удобные темплейты, а также имеет механизм для маршаллинга (прямой импорт функций из библиотек, возможность создать нативный трамплин на управляемый делегат, возможность быстрого копирования из unmanaged в managed окружение и т. п.). Потому всегда думал: почему бы его не использовать в своих embedded-проектах на базе одноплатников?

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Сейчас .NET можно накатить на большинство современных одноплатников, за исключением самых слабых с 64Мб ОЗУ «бутербродом» на чипе (AllWinner F1C100s, AllWinner V3s, некоторые MStar и т. п.). Доступно два рантайма, которые предлагают разные профили и соответственно, разный функционал.

  • dotnet — официальный рантайм, который реализует профиль .NET Core (ой, простите, так уже не модно, теперь это просто .NET). Предоставляет весь современный базовый функционал дотнета вкупе с современными версиями самого C#, но в нём нет, например, Windows Forms для UI (если вы используете полноценные «иксы» и GTK), и System.Drawing для обработки графики и отрисовки текста. Это эталонная реализация дотнета и его можно без проблем накатить на любой одноплатник, для которого есть достаточно свежий Linux.

  • Mono — альтернативная реализация .NET Framework для Linux, ранее активно использовалась в Unity. В отличии от .NET Core, может работать и на более старых одноплатниках на прошлых версиях дистрибутивов Linux, в том числе и самой первой Raspberry Pi. Считается более медленной, чем dotnet, зато имеет значительно большую функциональность, почти идентичную фреймворку на Windows.


В сегодняшней статье мы будем писать программу на C# для OrangePi One, которая должна инициализировать дисплей из юзерспейса и выводить на него определенные данные. В качестве профиля используем .NET Framework 4 (да, я порой старомоден), а одноплатником выступит OrangePi One в стоковой конфигурации ядра, без правок devicetree, где по умолчанию у нас доступен spidev без аппаратных чипселектов, доступ к GPIO из /sys/ и i2cdev.

❯ Настраиваем окружение


Для начала нам нужен образ системы для нашего одноплатника. Какой — выбирать вам. Для большинства устройств на чипсетах AllWinner доступны образы с ядром 3.x, которые более стабильны, но не используют devicetree и не входят в мейнлайн и 5.x, так называемый мейнлайн, но там всё ещё есть некоторые нюансы. Я выбрал Ubuntu Xenial с ядром 5.3.5.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Теперь самое время накатить рантайм, что мы и делаем командой:

apt-get install mono-all

Обратите внимание, Mono громоздкий и с учетом всех зависимостей может устанавливаться минут 30, если у вас достаточно медленная флэшка. Всё, теперь устройство готово к запуску программ на дотнете, нашу программу можно запустить следующей командой:

mono assembly.exe

Давайте же перейдём к фактической реализации нашей программы и узнаем как работать с периферией устройства!

❯ GPIO


Начинаем с GPIO или «ногодрыга». В Linux есть удобный интерфейс, позволяющий экспортировать пины общего назначения в юзерспейс и рулить ими прямо из sysfs, в том числе и из терминала! Для реализации софтварного SPI или быстрого опроса цифровых пинов такой способ не подойдет — слишком большой оверхед, но для моргания светодиодами, обработки кнопок или… программного ногодрыга чипселектом — вполне подойдет :)

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Как я и говорил выше, GPIO сначала нужно сделать видимым в sysfs — т. е. экспортировать, путём записи номера нужного пина в «файл» /sys/class/gpio/export. Посчитать ID нужного пина можно с помощью простой формулы: (позиция буквы в алфавите — 1) * 32 + номер пина. То есть, для PA10 ID будет 10. При ошибке, системный вызов close выбросит ошибку, а поток в C# — IOException.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

После этого, по пути /sys/class/gpio/gpio10/ появится директория с файлами direction, куда нужно записать направление нашего пина («in» — ввод, «out» — вывод) и value, куда мы будем записывать или читать значение пина. Реализовать управление пином можно так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Да, всё так просто! Мигалка светодиодом в нашем случае будет выглядеть так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Переходим к чему посложнее, а именно к SPI из всё того-же юзерспейса!

❯ SPI


Для управления SPI нам потребуется вызов ioctl, который позволяет отправлять устройству различные пакеты с описанием команд. Для этого нам пригодится PInvoke:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Для каждой аппаратной шины SPI создаётся одно устройство spidev. В случае OrangePi One, по умолчанию экспортирована только одна шина (поскольку и SPI-контроллер на гребенке лишь один) — spidev0.0. Для начала открываем наше устройство для записи:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Драйвер spidev работает по принципу транзакций — вы посылаете IOCTL с запросом SPI_IOC_MESSAGE (в оригинале это макрос с возможностью послать сразу несколько транзакций в драйвер) и указателем на структуру spi_ioc_transfer с описанием отправляемых или получаемых данных, а драйвер уже сам решает что и когда отправить, при этом вызов ioctl — блокирующий, то есть управление в поток вернется только когда драйвер завершит работу. Но есть нюанс — драйвер SPI у чипсетов AllWinner не может отправлять более 128-байт (на AllWinner A10/A13 — 64-байт) данных за транзакцию, поэтому большой массив данных придётся разбивать на несколько мелких:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Уже в шоке от обилия указателей в коде на шарпе? :) Надеюсь, комментарии помогут вам разобраться.

Тоже самое и для чтения данных с шины, только вместо txBufPointer — rxBufPointer.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Пример работы прост до безобразия:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Имея GPIO и SPI уже можно переходить к реализации чего-то более конкретного!

❯ Дисплей


В качестве дисплея я буду использовать стандартную дешёвую 2.4" матрицу с разрешением 240x320 и контроллером ST7789 с интерфейсом SPI. Для использования дисплея с питанием 3.3В нужно поставить перемычку на позиции J1, как показано на фото ниже.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Для подключения такого дисплея, достаточно всего лишь 4 (5, если нужен чипселект) сигнальные линии на 40-пиновой гребенке RPi One, плюс один для ШИМ (если нужно регулировать подсветку) и два на питание. Обратите внимание, что лучше сдуть гребенку и паяться к одноплатнику напрямую — у меня из-за китайских дюпонтов постоянно помехи на дисплее и мусор на шине.

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

VCC -> 3.3V

GND -> Масса

CS -> PA9

RESET - PA10

D/C - PA20

MOSI - PC0

SCK - PC2

LED -> 3.3V

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Начинаем с подготовки необходимых GPIO. Для управления дисплеем всегда нужен аппаратный RESET и D/C (бит команда/данные). Чипселект необязателен (его можно кинуть на массу), если это будет единственное устройство на шине, однако в случае ST7789 почему-то в таком случае нужно использовать SPI MODE 3.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Переходим к реализации коммуникации с дисплеем. Здесь всё просто — ставим CS в низкий уровень, начиная транзакцию, устанавливаем D/C в низкий уровень в случае команды, либо высокий в случае данных и отправляем байт контроллеру, после чего устанавливаем чипселект обратно в высокий уровень.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Теперь дисплей нужно инициализировать. Здесь нужно сконфигурировать регистры контроллера дисплея для установки режима адресации, цветности и порядка байт в пикселях (BGR или RGB).

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Если всё сделано правильно — то после этого вы должны увидеть «мусор» на дисплее, поскольку состояние ОЗУ не определено после подачи питания на контроллер (но при сбросе содержимое DRAM останется на месте).

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

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

После этого, достаточно лишь непрерывно слать изображение на контроллер дисплея и всё будет работать!

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Поскольку ни один формат изображений не соответствовал моим требованиям (RGB565, без выравнивания), я быстренько накостылил конвертер в самопальный:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Загрузчик такого формата выглядит так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

А фактическое использование — так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

❯ Заключение

Как мы видим, писать программы для одноплатников на C# отнюдь не сложно и можно пользоваться всеми приятными фишками языка. Часть кода из этой статьи выдрана из моего сайд-проекта, о котором хочу рассказать вам в ближайшее время — поэтому местами код совсем не причесан, но надеюсь — всё было понятно :)

Также у меня есть канал в Telegram, куда я выкладываю посты с тематикой DIY, ремонта и моддинга, а также программирования под гаджеты прошлых лет и вовремя ссылки на новые статьи.

Показать полностью 22
[моё] Своими руками Гаджеты Orange Pi Raspberry Pi Программирование Net Код Embedded Ништяки Туториал Умный дом Дисплей Длиннопост
29
151
A.Kristina
A.Kristina
1 год назад
Интересный AliExpress
Серия DIY Электроника

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi⁠⁠

1) Доплеровский датчик движения за 33 рубля.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Доплеровский датчик движения RCWL-0516 — способен определять движение объектов (препятствий), которые полностью или частично отражают радиоволны (люди, животные, металлы и т.д.), даже если они находятся за деревом (дверью), стеной (гипс, бетон), пластиками, стеклами и т.д. Стоит такой 33 рубля. Ссылка на модуль

2) Wi-Fi модуль с антенной за 168 рублей

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Радиомодуль WiFi Serial ESP8266 необходим для того, чтобы управлять устройством дистанционно или чтобы снимать показания с сенсоров через интернет. Также он позволяет подключить гаджеты к социальным сетям или получать данные через API от веб-сервисов. Стоит набор на данный момент 168 руб. Ссылка

3) Переходник USB Type-C/DIP за 27 руб.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Переходая плата для проектов Arduino (Ардуино) для соединения электронных устройств. Плата содержит разъем USB type C и выводы на контакты шагом 2.54 мм. Стоит такой модуль на данный момент 27 руб. Ссылка

4) Разъём для наушников за 26 руб.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль для наушников 3,5 мм с контактами. Стоит 26 руб. Ссылка

5) Модуль защиты аккумуляторов за 26 руб.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

BMS-платы — платы, предназначенные для защиты аккумуляторов. Такие платы могут защищать аккумулятор от переразряда, больших токов потребления, коротких замыканий и тд. Стоит модуль на данный момент 26 руб. Ссылка

6) Понижающий стабилизатор

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Плата AMS1117- 3.3 позволяет понизить напряжение  4,6-12 вольт  в стабилизированное 3.3 вольта.Стоит такой 35 руб. Ссылка

7) Отсек для батареек

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Батарейный блок на 4 AA. Стоит около 70 руб.. Ссылка

8) USB светильник

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль USB светильника с 3 светодиодами. Стоит 1 штука 37 руб. Ссылка

9) Датчик напряжения

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль Voltage Sensor – специальный модуль, созданный для удобного измерения напряжения без пайки. На модуле реализован резистивный делитель напряжения с коэффициентом 1:5, то есть на входе модуля напряжение может изменяться от 0 до 25 В, а на выходе оно будет пропорционально распределено по отрезку от 0 до 5 В. Стоит такой 38 руб. Ссылка

10) Повышающий преобразователь

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль повышающего DC-DC преобразователя из 3.7В в 5В/8В/9В/12В. Стоит такой 39 руб. Ссылка

11) ИК-модуль

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль ИК приёмника KY-022 на базе VS1838B представляет собой высокочувствительный приёмник инфракрасных сигналов. Совместим с широким спектром устройств, позволяя управлять различной техникой (робототехникой) с помощью ИК-пульта. Стоит 39 руб. ссылка

12) Пищалка

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Пьезоизлучатель – это компактный модуль на плате, который преобразует электрические колебания в звук. Его отличие от обычного электромагнитного динамика состоит в том, что он может подключаться к микроконтроллеру Ардуино напрямую без использования электронного усилителя. В сравнении с активным пьезоизлучателем данный тип требует дополнительной установки генератора колебаний с частотой, находящейся внутри диапазона 2 – 5 кГц.

Питание на пассивный пьезоизлучатель можно подавать в диапазоне от 3.3 до 5 В. Если вы часто будете использовать пьезоизлучатель на максимальном пределе питания, это приведёт к искажению звука и быстрому износу модуля. Стоит такой 39 руб. Ссылка

13) Датчик уровня воды (жидкости)

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

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

14) Датчик вибрации

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль изготовлен на базе датчика вибрации SW-420, который представляет из себя два контакта, замыкающиеся металлическим шариком при встряске. Операционный усилитель LM393, установленный на плате и включенный по схеме компаратора, служит для устранения дребезга и реализации регулировки чувствительности датчика.Стоит такой 44 рубля. Ссылка

15) Индикатор ёмкости акб

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль с индикатором уровня зарядки АКБ 12.6V. Стоит 49 руб. Ссылка

16) Контроллер

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Эта плата построена на основе контроллера STM32F103C8T6, работающего на ядре ARM Cortex-M3, еще часто эту плату называют Maple Mini или Blue Pill. Мощное ядро способно работать на частоте до 72 МГц с производительностью до 1,25 DMips, то есть этот микроконтроллер мощнее типовой Arduino более чем в 5,5 раз. Всего у данного микроконтроллера 64 Кб памяти программ и 20 Кб ОЗУ - теперь можно не экономить на строках. Стоит такой 94 рубля. Ссылка

17) Модуль RTC часов

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

RTC DS3231 часы специально спроектированы для подключения к контроллеру Raspberry Pi, но они так же легко подключаются и работают с Ардуино. В RTC модуле можно настроить два будильника. Питание модуля DS3231, может находиться в пределах 2,5 - 5,5 В. Напряжение внешнего источника питания постоянно отслеживается микросхемой DS3231 и при падении ниже 2,5 В, часы переходят на питание от встроенной батареи. Стоит такой модуль около 160 руб. Ссылка

18) Вольтметр

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль вольтметра для различной робототехники и других электронных самоделок с синими цифрами. Стоит 54 руб. Ссылка

19) Контроллер

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Контроллер для сборки питания на основе элементов 18650. 5V 2.4A. Стоит такой около 107 руб. Ссылка

20) RFID-модуль

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Радиочастотная идентификация (RFID) — это технология бесконтактной идентификации объектов при помощи радиочастотного канала связи. Идентификация объектов производится по уникальному идентификатору, который имеет каждая электронная метка. Стоит такой набор 89 руб. Ссылка

21) Bluetooth модуль

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

JDY-62 -Bluetooth 4.0 стерео аудио модуль с рабочим напряжением 5В. Стоит 75 руб. Ссылка

22) Ультразвуковой дальномер

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Ультразвуковой датчик расстояния (дальномер) HC-SR04 - может измерять расстояние при помощи ультразвука. TX сенсор излучает ультразвуковой импульс, который отражается от препятствия и принимается RX сенсором. Расстояние вычисляется по времени прохождения ультразвука от TX передатчика -> препятствие -> к RX приемнику. Скорость звука при температуре 20° C составляет 1235 км/ч или 343 м/с. При программировании датчика расстояния? нужно полученный результат поделить на 2. Так как ультразвук сначала движется до препятствия, а потом отразившись от него движется назад. То есть он преодолевает одно и тоже расстояние 2 раза. Еще стоит учитывать влажность воздуха и его температуру, скорость ультразвука изменяется в зависимости от этих параметров. Стоит такой 62 рубля. Ссылка

23) Модуль GSM, GPRS

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Миниатюрный модуль GSM/GPRS сотовой связи на основе компонента SIM800L. Стандартный интерфейс управления компонента SIM800L предоставляет доступ к сервисам сетей GSM/GPRS 850/900/1800/1900МГц для отправки звонков, СМС сообщений и обмена цифровыми данными GPRS. Поставляется с встроенной антенной, также можно подключить дополнительные антенны для улучшения качества сигнала.

Управлять модулем можно при помощи персонального компьютера через преобразователь интерфейса USB-UART или непосредственно через UART модулем микроконтроллера самостоятельной разработки или Arduino, Raspberry Pi и аналогичными. Стоит такой 177 руб. Ссылка

24) Модуль камеры

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Камера для установки на различных роботов, машинок и тд. Стоит 102 рубля. Ссылка

25) Микрофон с усилителем MAX9814

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

МАХ9814 - это устройство которое состоит из электретного микрофона и малошумящего микрофонного усилителя с автоматической регулировкой усиления (АРУ). Коэффициент усиления arduino микрофона можно настроить при помощи входа GAIN. Если оставить вход не подключенным, то активируется максимальное усиление 60 дБ. При подключении к входу сигнала GND, получим усиление 50 дБ. И минимальное усиление в 40 дБ можно получить подав на вход Gain напряжение питания. Также можно отрегулировать соотношение Attack/Release - время срабатывания/время восстановления АРУ. Подключив пин AR к VDD получим соотношение 1:2000ms. Оставив вывод открытым, получим 1:4000ms. Подключив вход на GND, получим минимальное время спада 1:500ms. Время запуска АРУ не изменяется и всегда в пределах 30 мс. Стоит 130 руб. ссылка на микрофон.

Показать полностью 24
Электроника AliExpress Товары Китайские товары Arduino Робототехника Программирование Сборка Своими руками Raspberry pi Самоделки Модуль Датчик Длиннопост
2

Оформить подписку для бизнеса

Перейти
Партнёрский материал Реклама
specials
specials

Ваш бизнес заслуживает большего!⁠⁠

Оформляйте подписку Пикабу+ и получайте максимум возможностей:

Ваш бизнес заслуживает большего! Малый бизнес, Предпринимательство, Бизнес

О ПОДПИСКЕ

Малый бизнес Предпринимательство Бизнес
230
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
1 год назад

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

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях! Опрос, Гаджеты, Покупка, Программирование, 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
[моё] Опрос Гаджеты Покупка Программирование C++ Raspberry Pi Arduino Дисплей Экран 2D Графика Embedded Своими руками Микроконтроллеры Код Электроника Железо Длиннопост
12
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии