«Малинка» — один из наиболее популярных одноплатников, который, собственно, и положил начало экспансии одноплатных ПК на рынок. На основе Raspberry Pi различных версий созданы десятки тысяч проектов, от just for fun до промышленных систем. Под катом расскажем про новые идеи, которые, возможно, кто‑то из читателей Хабра захочет повторить.
«Малиновые» часы со светодиодами
Производители не перестают удивлять нас, когда дело доходит до крутых носимых устройств на базе Raspberry Pi. В текущем проекте задействована печатная плата для наручных часов, которая создана производителем и разработчиком Кимом Полссоном. Она оснащена микропроцессором Raspberry Pi RP2040, который применяется в Raspberry Pi Pico. Для отслеживания времени установлено кольцо RGB‑светодиодов.
По словам Паулссона, проект был создан в качестве демонстрации возможностей «малинки». Основа всего здесь круглая печатная плата диаметром 28,5 мм, предназначенная, одновременно, и для использования в качестве циферблата наручных часов. Есть и аккумулятор, что позволяет носить часы на руке, а не держать их постоянно подключенными к источнику питания при помощи USB‑кабеля.
Часы отображают при помощи светодиодов часы, минуты и секунды. К сожалению, проект еще не доведен до логического завершения, разработчику еще предстоит этап создания дизайна корпуса. Плата, кстати, без накопителя, так что в ней используется Winbond 25Q1281VSQ для хранения данных.
В ходе тестов часы проработали долгое время — сбоев не было. Так что теперь разработчик планирует перейти к финальной части проекта.
Raspberry Pi Etch A Sketch
Тут все понятно — на базе «малинки» создали робота, который способен создавать отличные рисунки на Etch A Sketch. Честно говоря, непонятно, как это приспособление называется на русском — «волшебная доска»?
А вот робот может создать настоящий шедевр, прямо, как по запросу из «Я, робот» (фильма, а не книги, конечно). Raspberry Pi 4 управляет доской Etch A Sketch, приводя в движение пару шаговых двигателей. Они крепятся к ручкам Etch A Sketch с помощью адаптеров, напечатанных на 3D‑принтере.
Чтобы добиться такой реализации, Тилтону пришлось разработать программу, которая могла бы взять существующее изображение и перенести его в файл, который Pi мог бы использовать. Чтобы изображения идеально подходили, Тилтон определил, что при размере рабочей области 153 x 107 мм и ширине линии 0,5 мм разрешение Etch A Sketch составляет примерно 300 x 214. Для этого разработчику также потребовалось повозиться с подгонкой приводов прибора.
Одноплатник преобразует изображения из сети в картинки с нужным разрешением для рисования на доске. Далее идет преобразование изображения из цветного в черно-белое, и в итоге выполняется рисунок.
Таблица для подсчета очков
Еще один интересный проект, который может использоваться как в спортзале, где идет какое‑то соревнование, так и в домашних условиях. Поскольку все проекты из представленных в подборке базируются на «малинке», то и этот не является исключением. Единственное — переключение результатов ведется при помощи беспроводного контроллера.
Результаты отображаются с помощью светодиодов, которые расположены в виде четырех семисегментных дисплеев. Они управляются посредством Raspberry Pi Pico, который получает входной сигнал с помощью приемника 433 МГц. Это позволяет беспроводному пульту дистанционного управления управлять табло в режиме реального времени. Вот так все это выглядит на практике.
Подробнее проект расписан вот здесь с большим вниманием к каждой детали. В нем также задействуются Arduino IDE, в качестве ЯП — MicroPython, CircuitPython или C.
Модульный робот StoRPer
Нам очень нравятся разного рода роботы, а вам? Интересный проект ровера разработан на базе Raspberry Pi. Его можно без проблем собрать в домашних условиях — если, конечно, у вас есть навыки пайки, работы с электроникой и т. п.
Главное здесь, кроме «малинки» — шасси, которое, одновременно, и кастомная плата. К ней можно подключать разные модули. Например, колеса, сенсоры, датчики и т. п. Корпуса для них, шины и т. п. можно печатать на 3D‑принтере. Вот так это выглядит и работает.
Дизайн был вдохновлен полноприводной игрушечной машинкой 1980-х годов под названием Stomper. Именно отсюда StoRPer получил свое название и идею поддержки полного привода. Хотя вы можете приобрести готовые модули у Hinchliffe, проект имеет открытый исходный код, поэтому каждый может модифицировать его по своему усмотрению.
Код пишется на MicroPython и предоставляет достаточно информации для программирования направления движения ровера и дополнительных действий.
Беспроводный модуль в винтажном контроллере
Речь о добавлении Bluetooth к контроллеру для Atari 2600. Многие утверждают, что лучший способ насладиться ретро‑играми — использовать оригинальное оборудование. Но можно поступить иначе — использовать винтажные девайсы и одновременно экспериментировать с современным оборудованием.
Автор текущего проекта решил использовать Pico для поддержки Bluetooth и подключил его к исходному порту контроллера Atari. Reogen также объяснил, что порт выдает напряжение 5 В, поэтому внешний источник питания даже не нужен.
Пока что установка была протестирована только на его старом Atari 2600 с использованием контроллера Xbox Series X. Однако в планах — протестировать аппаратное обеспечение с использованием других устройств. Вот ссылочка на оригинальный проект.
Что же, на сегодня все. Ну а если у вас есть собственная идея, которую вы реализовали — расскажите о ней в комментариях, всем нам будет интересно!
Комментарии (31)
NotSlow
27.05.2024 13:13+2Про скетч-рисовалку более подробно, если кому интересно:
voldemar_d
27.05.2024 13:13+3Здесь RPI - не из пушки по воробьям? Какого-нибудь Arduino на такие проекты не хватит?
Biga
27.05.2024 13:13Если часы получают время из интернета по wifi, то на ардуине такое сложновато будет.
voldemar_d
27.05.2024 13:13Сам такое не делал, но вот навскидку один из результатов поиска - WiFi web client.
juramehanik
27.05.2024 13:13Авторам подобных diy проектов цель решить задачу для написиния статьи, цели оптимально прешить с точки зрения техничечких ресурсов скорее всего не стоит. В целом логично, ведь преждевременная оптимизация - зло.
alextrof94
27.05.2024 13:13Тут же половина на микроконтроллере от распберри, а не на полноценном одноплатнике. Я бы это относил не к "малиновским" проектам, а, действительно, к "ардуиновским".
voldemar_d
27.05.2024 13:13+1В текущем проекте задействована печатная плата для наручных часов... Она оснащена микропроцессором Raspberry Pi RP2040, который применяется в Raspberry Pi Pico.
Неслабый такой МК. 133 МГц, 256 кб памяти и т.д. ИМХО, на всех перечисленных задача здесь бы спокойно Arduino Uno или ProMicro справился.
withkittens
27.05.2024 13:13Ну так и Pico справляется. И стоит $4. Ардуино - $24, Pro Micro - $8 (если я правильный нашёл). То есть идея в том, чтобы использовать более слабый и более дорогой мк только потому, что он тоже может? :)
voldemar_d
27.05.2024 13:13+1Я ProMicro покупал за 300 рублей, если 10 штук брать. Где можно Pico купить за $4 с доставкой, дадите ссылку?
использовать более слабый
Энергопотребление у Pico тоже меньше, чем у ProMicro?
gudvinr
27.05.2024 13:13На али платы с RP2040 можно купить меньше чем за 200₽
Энергопотребление у Pico тоже меньше, чем у ProMicro?
Если энергопотребление критично, то скорее всего вы будете в сон отправлять МК и изредка просыпаться. Или сильно уменьшать частоту.
RP2040 умеет в 2 режима сна, в которых потребление меньше 1.4мА.
voldemar_d
27.05.2024 13:13На али платы с RP2040 можно купить меньше чем за 200₽
Вижу, что их там много разных. Есть даже с 2-ядерным процессором. Ну что ж, неплохо.
Если энергопотребление критично, то скорее всего вы будете в сон отправлять МК и изредка просыпаться. Или сильно уменьшать частоту.
Ну вот вопрос, насколько больше потребляет процессор с частотой 133 МГц по сравнению с 16 МГц.
Более серьезный вопрос - сколько уже есть готовых библиотек для RP2040 по сравнению с Arduino. Где-нибудь есть список?
Вижу, что под него можно писать на MicroPython. Там реально внутри интерпретатор языка запускается, который во время работы исполняет код на питоне? Или код все-таки в машинные коды компилируется?
gudvinr
27.05.2024 13:13+1Есть даже с 2-ядерным процессором
RP Foundation делает только один вид МК (на момент комментария), это RP2040 с двумя Cortex M0+, правда никто не мешает не пользоваться одним или вторым ядром.
Ну вот вопрос, насколько больше потребляет процессор с частотой 133 МГц по сравнению с 16 МГц.
Если важно именно энергопотребление - вы скорее всего итак знаете что и зачем вам надо. Обычно в DIY люди используют то что у них есть на руках и/или то, с чем им в кайф работать. Остальное вторично.
Более серьезный вопрос - сколько уже есть готовых библиотек для RP2040 по сравнению с Arduino.
Столько же, сколько в Arduino, никто не мешает поставить arduino core для Pico и пользоваться им.
Вижу, что под него можно писать на MicroPython.
Можно на чём угодно писать, код для RP2040 компилируется самым обычным gcc-arm-none-eabi.
Там реально внутри интерпретатор языка запускается, который во время работы исполняет код на питоне? Или код все-таки в машинные коды компилируется?
MicroPython и так и так может работать
voldemar_d
27.05.2024 13:13RP Foundation делает только один вид МК
Понял. Просто какие-то продавцы явно пишут про 2-core, а какие-то нет.
Обычно в DIY люди используют то что у них есть на руках и/или то, с чем им в кайф работать. Остальное вторично.
Согласен.
никто не мешает поставить arduino core для Pico и пользоваться им
Сложный вопрос. В некоторых библиотеках явно используются номера портов ввода/вывода, и не во всех можно переопределить номера пинов. Надо подробнее поизучать этот вопрос.
Про остальное почитаю подробнее сам, спасибо. Про то, как прикрутить поддержку к Arduino IDE, уже нашел. Видимо, надо купить такой МК и попробовать самому.
withkittens
27.05.2024 13:13Посмотрите ещё в сторону ESP32-C3 - очень симпатичные платки на RISC-V.
voldemar_d
27.05.2024 13:13Возможно. Пока что мне Arduino Pro Micro хватает, а изучать что-то еще время найти сложно.
voldemar_d
27.05.2024 13:13Собственно, есть статья-сравнение. Про энергопотребление там тоже сказано. У Arduino меньше, но не на порядок.
zbot
27.05.2024 13:13в принципе получить список доступных библиотек не сложно, достаточно поставить ардуино-ide версии 2.х.х выбрать плату raspberry pi pico ну и удивится количеству доступных.
Микропитон для этой платы конечно неплох, и именно интерпретатор на этой плате исполняет его код, но СИ как всегда лучше и быстрее на порядки. (хотя конечно кто-то может со мной и поспорить)
Ядер в этом rp2040 всегда 2, частота легко меняется со 133 Мгц до 400+ Мгц, но на частотах более 360 Мгц у меня завелось только 3 процессора из 10. А так в принципе спокойно и без существенного нагрева процессор работает на 300+ Мгц.
При этом разгон делается не какими-то хитрыми трюками, а штатными средствами.
Единственный минус - математика с плавающей точкой на этом процессоре отсутствует. Но! наличие блоков PIO это просто фантастика!
В итоге при цене чуть дешевле чем какая-либо ардуино нано (170-190 руб против 180-200 руб) получаем значительно более мощный микроконтроллер.
P.S. прошивается плата простым подключением к USB с зажатой кнопкой boot (ну или при зажатой кнопке boot нажатием кнопки reset если последняя есть на борту конечно) далее просто забрасываем на подключившийся накопитель файл прошивки хххх.uf2
gudvinr
RP2040 (и Pico, основанный на этом MCU) - это не одноплатник и относится к Raspberry Pi (т.е. семейству одноплатников) так же как автор этой статьи к хорошим авторам. То есть никак.
kalapanga
Замечание некорректное. Автор нигде в статье не называет RP2040 и Pico одноплатниками. Слово "одноплатник" упоминается всего два раза - во общем вступлении к статье и в описании проекта с рисовалкой, в котором используется как раз классический одноплатник Raspberry Pi.
А если автор все эти устройства называет "малинками", не вижу в этом ничего плохого, так как всё это продукты Raspberry Pi Fundation.
gudvinr
Он называет одноплатники малинками
И потом ссылается на это же название в контексте Pico, которая есть продукт Raspberry Pi Foundation, но не одноплатник
LinaRSH
Меня больше зацепил момент, где микроконтроллер называют микропроцессором
zbot
по моему грань между ними весьма условная, например если микроконтроллер изображает из себя микропроцессор (в режиме эмуляции последнего) можно ли его считать микропроцессором? Ну, а если RISC ядро изображает из себя CISC микропроцессор?
nafikovr
Микроконтроллер включает в себя микропроцессор, но еще он включает в себя устройства ввода-вывода.
zbot
т.е. если я правильно тебя понимаю, процессоры включающие в себя графическое ядро или к примеру контролеры шины PCI-e следует рассматривать как микроконтроллеры?
nafikovr
Ну... Компьютер не такой уж и микро, а шина это не совсем устройство.
zbot
ну по хорошему если к этому RP-pico (основанному на RP2040) добавить десяток резисторов HDMI разьем и SD картридер то вполне себе одноплатник с MS-DOS и 8088 процессором на борту получится (правда в режиме эмуляции, но тем не менее :-) ).
Yuri0128
Ну... Памяти не хватит - надоть 640 кбайт.... Ага и еще плюс еще на сам эмулятор.
zbot
для загрузки самого доса достаточно, а так еще микросхему psram можно повесить.
Все это реализовано в проекте pico-xt - https://github.com/xrip/pico-xt