ESPNTimberwolves offseason recap and early season preview: How will Edwards, Ball mesh?PunchKaduna CP orders investigation following viral extortion videoוואלהבכיר בנאט"ו על הדיווח לפיו איראן תתקוף מטרות באירופה: "ערוכים לכל איום"The Jerusalem PostTurkey slams Israel's 'untenable' claims after strikes on Syrian baseDaily MaverickKEY MAN: Malcolm in the middle: How Marx could swing key battles in SA’s favourBollywood HungamaKiara Advani to team up with Saif Ali Khan for Kanika Dhillon’s supernatural thriller: REPORTХабрREADME врёт: как я сделал open‑source линтер, который сверяет документацию с реальным репозиторием7sur7Isack Hadjar déclare forfait pour le GP des Pays-Basسكاي نيوز عربيةالسيسي وحفتر يبحثان استقرار ليبيا ودعم السلم والأمنColliderAnne Hathaway’s $80M Sci-Fi Thriller Crosses Major Box Office MilestoneRTL BoulevardFKA Twigs wint eerste rechtszaak over artiestennaamVarietyEmily Watson Says Growing Up in a Religious Cult Almost Stopped Her From Starring in ‘Breaking the Waves’: ‘I Was Like a Piece of Wire That Had Been Unplugged’
The Daily Newsstand · Free, Always
Wednesday, August 19, 2026

Покрути это колесо

Translate

В первую очередь статья (или статьи) написана ради комментариев, чтобы развлечь себя и читателя, но с надеждой получить какие‑то дельные советы и мнения по теме проекта.

Как это началось

Точкой старта работы над проектом можно считать день, когда Дедушка Мороз положил мне под ёлку набор «Робот‑автомобиль для Raspberry Pi 4B» от Keyestudio.

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

Распознавание объекта с помощью OpenCV

Распознавание объекта с помощью OpenCV

Управление передвижением робота в приложении

Управление передвижением робота в приложении

Информации о том, какая плата нужна для работы с набором на коробке не видно. На момент подарка у меня были только Raspberry Pi 1B и Raspberry Zero. Но Дедушка Мороз позаботился и об этом, узнав, что для работы с OpenCV нужен минимум Raspberry Pi 4B (4Gb). Без этого одноплатника собирать машинку не имеет смысла. Но держим в голове, что авторы проекта ориентируются на наличие малинки с 64-х битной разрядностью.

По итогу, субъективное отношение к набору подтолкнуло меня попробовать сделать что‑то своё с оглядкой на:

  1. Удобное расположение органов управления;

  2. Наличие видеопотока в приложении;

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

  4. Дешевизна конечного устройства.

С чего начал

Идея была простая: взять минимальный набор компонентов, чтобы покрутить колесо и иметь небольшой запас pin'ов на дополнительные датчики. Если представления о том, какое устройство будет основным не было, то за место устройства, отвечающего за связь, боролись ESP8266 и NRF24L01. Устройство NRF24L01 было в списке только по той причине, что на просторах интернета для управления чего‑либо чаще все используют какой‑то огромный пульт. Поскольку у этого способа связи есть ограничения, критичные для моей идеи, в итоге список компонентов у меня остался таким:

  1. Raspberry Pico

  2. ESP8266

  3. GOHJMY ESP-01 adapter board

Первая сборка из имеющихся компонентов

Первая сборка из имеющихся компонентов

На момент первой пробы уже выпустили Pico W, но у меня его не было, а бежать за ним я не спешил по причине, о которой скажу чуть позже. Задача у Raspberry Pico была простая: крутить колеса, а за связь с пользователем теперь отвечало ESP8266 с Wi‑Fi на борту. Протокол общения пользователя с машинкой был выбран UDP (по понятным причинам), а между устройствами — UART, о котором я вычитал в тот же вечер.

Схема общения пользователя с Raspberry Pico

Схема общения пользователя с Raspberry Pico

Соединить проводами два устройства проблем не составило, но была другая проблема в проекте на этом этапе. В комьюнити Arduino проекты пишутся на C, Python или Arduino C (в названии могу ошибаться), а у меня навыки только с языком PHP. И проект встал 🙂.

На чём писать и как работать

У PHP нет аналога MicroPython, по крайней мере я не нашел, да и погружаться в Python мне не хотелось. Для ESP8266 я нашел выход из ситуации. Под данную плату есть прошивка от Espressif, которая позволяет работать с устройством через AT‑команды, что не привязывает к языку. В ней оказалось всё необходимое на тот момент: включение и выключение Wi‑Fi, работа с UDP и запуск HTTP сервера. Но для Pico ничего подобного я не нашёл.

Встречал обзоры, в которых на замену Arduino IDE используют CLion, но к C душа не лежала. Для нового места работы мне нужно было познакомиться с Go. У Go есть прекрасный проект TinyGo, имеющий поддержку Raspberry Pico. По этой причине я не спешил обзаводиться платой Pico W или ESP32 DevKit v1, так как на тот момент поддержки Wi‑Fi/Bluetooth в TinyGo не было.

Таким образом, определившись с инструментами, я начал думать над тем, как работать с UART и что нужно для отправки AT‑команд в ESP8266. Пришлось прикупить USB‑TTL для написания первого кода.

Первое подключение TTL к Pico

Первое подключение TTL к Pico

Спустя неделю вечеров, установив GoLand, настроив плагин для работы с TinyGo и ознакомившись с синтаксисом языка, я добрался до работы с Serial. Получить понятный текст удалось не сразу, так как знаний про baud rate и понимания, что именно он виноват в этом, не было. И первые 10–15 минут я сражался с этой проблемой. Спустя некоторое время, удалось включить/выключить Wi‑Fi и принять собственную команду по UDP, отправляя её через программу UDP — Sender/Reciever.

Итог (промежуточный)

Только закончив работу над получением команд на Pico через UDP, я понял, что проект в такой компоновке устройств закончился. Перспектива такой машинки — ездить только по комнатам, а у меня — следовать за ней по пятам, словно с пультом управления на проводе. Поэтому на следующем этапе я начал сначала, но уже с другими компонентами.

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.