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

TECHNO BROTHER

2 018 постов 13 454 подписчика

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

170

Ретропонедельник №107 Рентгенметр ДП-5В

Начинаем рабочую неделю с очередного экспоната в музее советской бытовой техники. Хотя постойте, техника вполне себе военная. Встречайте - ДП-5В (надеюсь он НИКОГДА не пригодится)

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

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

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Внутри сам прибор в чехле и разные аксессуары.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Приятная мелочь - окошко для просмотра серийного номера, достаточно только открыть ящик.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

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

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Крышки чехла - на шарнирах.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Сам датчик. Имеет поворотную обойму на три положения. Окно открыто - измерения бета+гамма. Окно закрыто - измерение гаммы. Контрольный источник - проверка прибора. Это важное отличие гражданских дозиметров от военных - в военных есть маленький радиоактивный контрольный источник, который позволяет определить его работоспособность на месте. В ДП-5В, в отличии от предыдущих моделей, контрольный источник намертво закреплен в обойме, и его потерять нельзя. Из-за наличия КИ прибор надобно утилизировать через спецведомство (Радон)

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Внутри две трубки Гейгера - разной чувствительности для разных диапазонов.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Табличка-шпаргалка нормативов по уровню зараженности. это МИЛЛИ рентгены. Для перевода в микрорентгены нужно умножить х1000

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

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

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Используется 3 элемента - один для подсветки, два для работы прибора. Для использования с элементами АА попросил выточить переходники.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

В комплекте есть адаптер для питания прибора от 12/24В, чтобы можно было запитать от бортовой сети автомобиля.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Клеммы пропаяны.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

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

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

"голенький" прибор без чехла

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Инструкция

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

В СССР не было понятия "коммерческая тайна" - все было государственное, народное. Поэтому документация часто содержала все необходимое для ремонта, в т.ч. схему

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Этот прибор я купил много лет назад на сайте дельтарезерв, судя по формуляру - его переконсервировали в 2002 году.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Поверку он прошел, хоть и 20 лет назад

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост

Что хочу сказать для ЛЛ. Если у вас нет дозиметра и вы хотите купить хоть какой-то то НЕ ПОКУПАЙТЕ ВОЕННЫЕ ПРИБОРЫ. Для бытовых нужд ДП-5В БЕСПОЛЕЗЕН. Он невероятно дубовый и хоть что-то начинает показывать от 50 мкР/ч. Он рассчитан на ядерную войну, и будет полезен при тех уровнях излечения, в которых бытовые приборы просто зашкалит.

Если вам нужен бытовой дозиметр - покупайте БЫТОВОЙ (Радекс, соекс, белла и т.д. У меня радекс 1503).

Так как военные приборы в продаже не поступали, то интересно бы понять, а сколько он стоил? И тут нам поможет коробка от ДП-5ВБ (Б-бытовой?), цена около 100 рублей.

Ретропонедельник №107 Рентгенметр ДП-5В Сделано в СССР, Техника, Дозиметр, Электроника, Военная техника, Познавательно, Изобретения, Длиннопост
Показать полностью 20
6

NASA запускает собственную стриминговую платформу

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

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

Стриминговый сервис будет доступен на iOS и Android. Также им можно пользоваться в браузерах и сервисах вроде Apple TV.

Ещё больше технологий тут - https://t.me/TechTalksZone

Жёлтая и со зверушками. Представлена необычная видеокарта Sapphire Radeon RX 7600 Party Animals Edition

Жёлтая и со зверушками. Представлена необычная видеокарта Sapphire Radeon RX 7600 Party Animals Edition Разработка, Sega, Nintendo

Жёлтая и со зверушками. Представлена необычная видеокарта Sapphire Radeon RX 7600 Party Animals Edition

Компания Sapphire представила необычную видеокарту Radeon RX 7600 Party Animals Edition. Выделяется она в первую очередь дизайном.

Как можно видеть, адаптер брендирован в стилистике игры Party Animals. При этом оформление тут такое, что карта может приглянуться далеко не только поклонникам этой игры.

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

Что касается остального, технически это обычная RX 7600 с её 8 ГБ памяти и 128-разрядной шиной
Ещё больше технологий тут - https://t.me/TechTalksZone

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

Самый большой круизный лайнер в мире скоро отправится в первый рейс1

Самый большой круизный лайнер в мире скоро отправится в первый рейс Изобретения, Техника, Технологии, Корабль, Авиация, Судно, Разработка

Новый круизный лайнер Icon of the Seas компании Royal Caribbean International поражает воображение даже видавших виды туристов не только размерами, но и оснащением. Буквально недавно он сошел на воду с одной из финских верфей и уже в начале 2024 года отправится в первый коммерческий рейс. Имея длину 365 метров и вес 250 000 тонн, это судно станет самым крупным пассажирским кораблем за всю историю человечества.

Гигантский корабль располагает 20 палубами, способными вместить 5610 пассажиров. Кроме того, численность команды и обслуживающего персонала составляет 2350 человек. Для развлечения отдыхающих предусмотрены 10 бассейнов с гидромассажем, 6 водных горок и семь обычных бассейнов. При этом один из них станет самым большим бассейном, устроенным когда-либо на корабле. На одной из палуб оборудован «Центральный парк», где будут высажены несколько тысяч цветущих растений.

Когда первое удивление от увиденного проходит, наступает момент осознания, что такой круизный корабль не так хорош, как можно подумать. Самые категоричные участники интернет-дискуссий уже назвали судно «чудовищем» из-за огромного урона окружающей среде. Согласно статистическим данным, крупный пассажирский корабль выбрасывает CO2 больше, чем 12 000 легковых автомобилей.
Ещё больше технологий тут - https://t.me/TechTalksZone

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

Подарок от КГБ СССР в полном комплекте

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

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

И вот неплохой вариант подвернулся в Пермском крае - купил, получил посылку, смотрим что внутри.

Надписи на латинице и на коробке логотип внешнеторгового объединения "Машприборинторг".

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

А внутри экспортная модификация портативного радиоприемника "Сокол".

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

Портативный транзисторный радиоприемник "Сокол" выпускался на Московском радиозаводе с 1963 года. В комплекте есть зарядное устройство для аккумуляторной батареи.

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

Приемник 4 класса, супергетеродин на семи транзисторах, работает в диапазонах СВ и ДВ. Согласно документов приемник выпущен 30 июня 1967 года.

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

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

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

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

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

На задней панели переключатель диапазонов и разъем подключения зарядной колодки.

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

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

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

Мой экземпляр снабжен памятной табличкой, которая гласит: " В день 50-летия Октября от КГБ при СМ СССР тов. Желватых М.И." Может благодаря тому, что это был памятный подарок, он и сохранился практически в первозданном виде и комплектации. Из перечисленного, в комплекте не хватает только батареи типа "Крона" )

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост

В батарейном отсеке обнаружилась даже аккумуляторная батарея 7Д-0.1, а на задней панели горделивая надпись "Made in USSR".
Думаю в ближайшее время проведу испытания на работоспособность.

Подарок от КГБ СССР в полном комплекте Техника, Сделано в СССР, Радио, СССР, 60-е, Длиннопост
Показать полностью 10

Убийца твиттера

Убийца твиттера Разработка, Технологии, Интернет, Инновации, ChatGPT

Threads от Meta уже набрал 100 миллионов пользователей всего за 5 дней работы. Всё это благодаря тому, что в новую соцсеть пользователей начали зазывать блоггеры из Instagram, а регистрации как таковой нет - достаточно уже иметь аккаунт Instagram и нажать "зарегистрироваться". Проблем у соцсети тоже хватает: приложение крайне скудное, нет и пятой части функций Twitter, нельзя посмотреть только тех, на кого подписался, есть лишь общая лента из всего, что Meta считает важным для вас, а обычные люди там мало пишут - посты попадаются только от блоггеров.

Технически большой плюс - это поддержка взаимодействия с федеративными сетями вроде Mastodon, но это может быть временным благом, как случилось с поддержкой Jabber в самом Facebook (её просто в какой-то момент убрали, а ведь тоже была федеративная сеть). В остальном же просто надо понимать, что пространства для улучшения продукта много, в Евросоюзе приложение ещё даже не запустили из-за GDPR, а в России доступ есть только через VPN. Рекорд со 100 миллионами за 5 дней - безусловно, круто, теперь главное чтобы антирекорд по неактивным пользователям соцсеть также не заработала, ведь эти 100 миллионов - это пока что люди которые захотели посмотреть на новинку, а не те, кто регулярно ею будет пользоваться.
Еще больше технологий тут - https://t.me/TechTalksZone

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

Атлетичный робопес Unitree Go2 получил поддержку ChatGPT и сможет поболтать со своим хозяином

Атлетичный робопес Unitree Go2 получил поддержку ChatGPT и сможет поболтать со своим хозяином Технологии, Изобретения, Разработка, Техника, Инновации

Китайская компания Unitree объявила о начале продаж робопса Go2. Робот может стать не просто игрушкой, но и компаньоном во время спортивных пробежек. Его возможности позволяют развивать скорость до 9 км/ч в стандартной версии или до 12,6 км/ч в версии Pro, что соответствует довольному бодрому темпу бега. Сам робопес весит всего 15 килограммов, а его высота не превышает 40 сантиметров. При этом не совсем понятно, где у робота нос, а где хвост.

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

В Pro-версии нашел реализацию и речевой движок с поддержкой GPT. Это позволят человеку вести с робопсом диалоги на естественном для себя языке. Робот пытается интерпретировать действия пользователя и стремится помочь ему. При этом на фоне аналога от Boston Dynamics Go2 выглядит вполне доступным.

За бюджетную версию робопса компания просит 1600 долларов, а за версию Pro — 2800 долларов. За отдельную плату можно докупить контроллер, руку-манипулятор и другое дополнительное оборудование, расширяющее функционал робота.
Ещё больше технологий тут - https://t.me/TechTalksZone

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

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом?

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Я, как и многие мои читатели, очень люблю игры. Уже довольно обширное число моих статей было посвящено ремонту и моддингу самых разных игровых консолей — как китайских «нонеймов», так и брендовых PSP и PS Vita! Однако, меня тянет к железу не только желание отремонтировать и поставить в строй «устаревшие» девайсы, но и мания делать и созидать что-то своё! А ещё я очень люблю программировать игры и графику сам. Недавно я загорелся идеей разработать с нуля свой портативный «тетрис»: от схемы и разводки платы, до написания прошивки и игр под нее. Что получается, когда программист, который поставил электронику практически во главе своей жизни, пытается сделать свое устройство? Читайте в статье!

❯ Как я к этому вообще пришел?


Проекты разработки самодельных игровых приставок стали очень популярны к нашему времени. Если раньше embedded-разработка была достаточно дорогой и доступной лишь для избранных, то сейчас на рынке можно найти все что хочешь — и мощные микроконтроллеры с кучей периферии за 300 рублей, и готовые дисплейные модули по 250 рублей, и макетные платы с удобными dupont коннекторами за весьма скромные деньги.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Собрать свой гаджет в пределах одной-двух тысяч рублей стало вполне реальным. Люди собирают себе самые разные устройства, а игровые приставки — одна из самых популярных тем. Однако, для многих людей, которые только начинают знакомится с миром embedded-электроники, собрать консоль в своем корпусе с Raspberry Pi на борту и RetroPie в качестве оболочки — за счастье.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу


Однако есть определенная категория электронщиков, к которой отношусь и я — нам нужно делать всё с нуля! Свои проекты я стараюсь реализовывать на самопальных фреймворках/движках, точно также я мыслю и в подходе электроники — ну не могу я использовать чужие решения и стараюсь разобраться в вопросе сам. За моей спиной есть весьма интересные демки. Например, это моя игрушка с незамысловатым названием «ралли-кубок ТАЗов», которую я написал за неделю с нуля (рендерер, звук, ввод, редактор уровней — все свое) в 2022 году:

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу


Вот так, с любовью программировать игры, я и пришел к мысли сделать свою консоль, так как вижу её именно я. Только без чужих библиотек и наработок, но не прям уж bare metal. Сел я и начал думать, на чём же мы будем строить наш игровой девайс!

❯ Из чего будем делать?


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

Характеристики моего девайса следующие:

  1. Процессор: двухядерный ARM микроконтроллер RP2040 на частоте 133мгц, построенный на архитектуре Cortex-M3. Сам процессор распаян на плате Raspberry Pi Pico.

  2. ОЗУ: 260 килобайт SRAM, встроена в процессор. Немного, но если грамотно распоряжаться ресурсами — то хватит.

  3. ПЗУ: 2Мб SPI Flash-памяти, также распаяны на плате.

  4. Дисплей: 1.8" TFT-матрица с разрешением 128x160. Выбор разрешения обусловлен производительностью будущей консоли — процессор банально не сможет заполнять матрицу с относительно высоким разрешением.

  5. Ввод: 6 кнопок, 4 из которых — направление, 2 — действий. В будущем могут добавиться еще несколько.

  6. Звук: динамик. Пока не знаю, с чего рулить будем — возможно, возьмем «железный» ШИМ-контроллер процессора, а возможно прикрутим внешний ЦАП с i2s.

  7. Питание: 3.7в аккумулятор BL-4C. Да, да, тот самый с Nokia и современных кнопочников! Аккумулятора, емкостью в 800мАч должно хватать хотя-бы на 4-5 часов игры. При этом зарядка АКБ обеспечивается модулем TP4056.


Весьма неплохо для самоделки, согласны? Как я уже говорил раннее, эти характеристики примерно соответствуют мобильным телефонам 2004-2006 годов — Nokia 6600, Sony Ericsson K510i, Samsung D800. Отличие лишь в ОЗУ (в телефонах её 2-4 мегабайта) и периферийных модулях типа контроллера дисплея.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу


На фото E398 — мобилка 2004 года выпуска, но она здесь не просто так. :)

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

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



RPi Pico я решил выбрать, поскольку информации про них достаточно мало, характеристики хорошие и пока что никто особо ничего на них не делал, тем более в рунете. А ещё у них очень удобное и простое SDK, практически bare-metal. ESP32, например, работает на FreeRTOS и имеет кучу библиотек, здесь же API простое и понятное.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Закупаем все необходимое и начинаем творить!

❯ Графика


В первую очередь нам нужно подключить дисплей и что-нибудь на него вывести. Заодно и SPI погоняем на незнакомом чипсете, благо работа с ним очень простая — задаем конфигурацию пинам (gpio_set_function), настраиваем SPI-контроллер и можно посылать данные.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу


SPI у RP2040 работает на частоте вплоть до ~60мгц — это достойная скорость передачи, в том числе и для быстрого вывода графики. На самом деле, SPI даже предпочтительнее чем параллельный 8080-интерфейс для использования в микроконтроллерах: дело не только в количестве занимаемых пинов, но и в возможности использования DMA!

В подобных проектах всегда нужно делать так, чтобы дисплей можно было при необходимости поменять, а желательно вообще научить работать его с несколькими контроллерами: разные дисплеи одной диагонали могут использовать разные контроллеры. В моём случае, этоST7735. Для разрешений 240x320 используются ILI9325, ILI9341, ST7789. Команды инициализации дисплея честно позаимствованы, но именно в этом нет ничего зазорного — сама система команд относительно стандартизирована, отличается лишь первичная настройка питания, гамма-коррекции и т. д — часто init sequence вставляет сам производитель в даташит.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



После инициализации дисплея пробуем что-нибудь вывести. Да, все работает без проблем. Пару важных нюансов: ST7735 требует посаженный на землю CS, в воздухе его оставлять нельзя, как некоторые ILI (вы ведь навряд ли будете вешать несколько устройств на одну шину с дисплеем, когда есть вторая?) и логическое состояние 1 на пине RESET (в воздухе и «на земле» он будет висеть в постоянном ресете).

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Для полустатичной графики, можно обойтись лишь командами дисплея — например, тут есть удобные функции для заливки прямоугольников (setArea и пишем цвет без остановки) или скроллинга. Сделано это для более слабых микроконтроллеров. Нам они не подойдут — выделяем память под фреймбуфер/бэкбуфер и настраиваем канал DMA для разгрузки процессора в процессе передачи данных:

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Саму картинку подготавливает процессор: именно он рисует картинки и он же делает их прозрачными. На него ложится основная работа, однако мы можем ему помочь разгрузиться, если отдадим передачу уже подготовленного кадра на дисплей на DMA (Direct Memory Access) — устройство в микроконтроллере, которое позволяет процессору настроить параметры передачи данных, а DMA их будет сам копировать из памяти или в память. Таким образом, можно реализовать асинхронное копирование нескольких блоков ОЗУ, или, как в моем случае — передачу буфера кадра на дисплей, пока процессор готовит следующий. Чем больше разрешение — тем больше эффекта от DMA!

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Кроме того, важно выбрать формат цвета для нашего дисплея: я выбрал 2-х байтный RGB565 (5 бит красный, 6 бит зеленый, 5 бит синий). Это экономичный формат который выглядит красивее палитровой графики и кушает не так уж и много драгоценной памяти. Кроме того, на данный момент мы умеем отрисовывать изображения произвольных размеров с прозрачностью — вместо альфа-канала здесь используется так называемый colorkey — концепция, очень близкая к хромакею, только она берет в качестве трафарета конкретный цвет. В нашем случае это «255 0 255» (ярко розовый).

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



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

❯ Ввод


Теперь нам нужно как-то управлять нашим девайсом. Для этого пора сделать реализовать геймпад: в рамках этой статьи, я собрал его на макетке.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Кидаем общий минус на все кнопки, а второй вывод размыкателя кидаем на соответствующие пины GPIO. Я выбрал предпоследние т. к. на них ничего важного не висит, текущая конфигурация занимает 6 пинов. На фото выглядит не очень красиво — на то она и макетка.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



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

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу

Есть ещё способ реализации больших клавиатур и геймпадов: когда все кнопки вешаются на пару линий, где на выходе каждой кнопки есть резистор определенного номинала. ЦАП микроконтроллера считывает это значение (допустим — 1024 это вверх, а 2048 — вниз) и таким образом определяет текущую нажатую кнопку. Таким раньше любили промышлять китайцы, из-за чего нельзя было нажать одновременно вверх и вправо, или вниз и влево и т. п.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу

❯ Пишем игру


Теперь у нас есть минимально-необходимая основа для написания игры. Первой игрой для своей консоли я решил написать классический шутер в космосе — летаем на кораблике и сбиваем врагов, попутно уворачиваясь от их пулек. Заодно проверим консоль на стабильность.
Писать я её решил в классическом C-стиле, как и принято в embedded-мире: без std и тем более stl, без ООП и виртуальных методов, аллокаций по минимуму. В общем, примерно как писали игры под GBA! В первую очередь, подготавливаем спрайты нашей игры, прямо в пейнте, а затем конвертируем их в представление обычного массива байтов в виде header-файла. На первых порах это удобнее, чем делать свой ассет-пул:

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Архитектуру я организовал в виде нескольких подфункций, каждая из которых занимается своим стейтом (world/menu) и своими объектами (playerUpdate) и их отдельные версии для отрисовки. Сами игровые объекты я описал в виде структур, а центральным объектом сделал CWorld.

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу


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

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Единственные аллокации, что я использовал — это для пулов с пулями, и с врагами. Оба пула четко ограничены — до 8 врагов на экране, и до 16 пулек — вполне хватает. Динамические аллокации помогли мне найти серьезную ошибку в коде — в один из моментов игра просто валилась с Out Of Memory. После того, как я немного поменял условия и делал аллокейты тех же самых объектов каждый кадр — игра переставала крашится. Причина оказалась простая — невнимательность (вместо >= было >), по итогу при отрисовке спрайтов за пределами экрана, программа сама начинала портить вунтренние структуры аллокатара и самой игры (проявлялось в глюках и телепортациях). После фикса, все заработало как нужно. :)


Ну и для основной части геймплея с выстрелами и столкновениями, я предусмотрел несколько функций, которые спавнят игровые объекты и сами управляют пулом. Противники обновляются как обычно, для коллизий используется AABB (axis aligned bounding box, ну или его 2D-подмножество в виде rect vs rect).

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



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

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



Ниже выкладываю принципиальную схему устройства, она очень простая, поэтому смысла делить ее на несколько листов нет. Разводить учился, читая сервис-мануалы и схемы :)

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу

❯ Заключение


Полная цена сборки прототипа составила:

  • Raspberry Pi Pico — 557 рублей (но я брал на Яндекс Маркете, на «алике» дешевле — около 300 рублей).

  • Дисплей — 380 рублей, заказывал на «алике».

  • Макетка — 80 рублей, в местном радиомагазине.

  • Кнопки. По 5 или 10 рублей штучка, пусть будет 60 рублей.


По итогу, прототип мне обошелся в 1077 рублей. Бюджетненько, да, с учетом того, что можно сделать еще дешевле? Я тут так подумал, у меня есть желание развивать и поддерживать консоль в будущем и под консоль уже можно делать что-то своё… может, если вам будет интересно, делать их на заказ? Соберу вам по себестоимости (до 1.000 рублей) + доставка, если хочется попрограммировать под что-то маленькое, но самому паять не хочется. Мне было бы очень приятно. Пишите в личку или комменты, если вас заинтересовало бы такое! :)

Сам себе игровая консоль: как я сделал свой «тетрис» с нуля. Что происходит, когда программист встречается с железом? Гаджеты, Gamedev, Разработка, Своими руками, Raspberry pi, Самоделки, Железо, 2D, Игры, Консоли, Видео, Без звука, Длиннопост, Авторская неделя на Пикабу



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

Однако, это далеко не конец проекта! У нас ещё много работы: нужно развести и протравить полноценную плату, реализовать звук и API для сторонних игр, придумать корпус и распечатать его 3D-принтере. Кстати, я ведь обещал что скоро будут и другие интересные проекты с 3D-принтером: как минимум, мы доделаем предыдущий проект игровой консоли из планшета с нерабочим тачскрином и RPi Pico.

Пост подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!

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