Перейти к содержанию

Проекты

MyRoverWeb

Веб приложение для управления игрушечным роботом доставщиком по Bluetooth Low Energy прямо из браузера. Интерфейс позволяет найти доступный ровер, подключиться к нему и отправлять команды движения и управления светом бе…

2024Архивный

О проекте

Веб-приложение для управления игрушечным роботом-доставщиком по Bluetooth Low Energy прямо из браузера. Интерфейс позволяет найти доступный ровер, подключиться к нему и отправлять команды движения и управления светом без установки нативного приложения.

Содержание

Возможности

  • Поиск BLE-устройств с именем Rover Toy XXX или Yandex Delivery Robot
  • Подключение к роботу по GATT из браузера
  • Управление движением: вперед, назад, влево, вправо
  • Остановка по отпусканию кнопки управления
  • Включение и выключение света на роботе
  • Легкий браузерный интерфейс без установки отдельного приложения

Стек

  • JavaScript
  • React 18
  • Create React App
  • Web Bluetooth API
  • Bluetooth Low Energy (BLE, GATT)
  • GitHub Pages для деплоя

Как работает приложение

  1. Пользователь нажимает кнопку поиска ровера.
  2. Приложение вызывает navigator.bluetooth.requestDevice() и открывает системное окно выбора BLE-устройства.
  3. После выбора вычисляются UUID сервиса и характеристики на основе имени устройства.
  4. Браузер подключается к GATT-серверу робота и получает характеристику управления.
  5. При нажатии на кнопки интерфейса приложение отправляет в характеристику байтовые команды движения и света.

Приложение рассчитано на управление одним выбранным ровером за сессию.

Требования к браузеру и устройству

  • Компьютер или Android-устройство с поддержкой Bluetooth Low Energy
  • Браузер с поддержкой Web Bluetooth API
  • Доступ к сайту в безопасном контексте: https:// или http://localhost для локальной разработки
  • Включенный Bluetooth и разрешение на доступ к нему в браузере
  • Включенный и доступный для подключения робот

Почему нужен браузер на Chromium

Этот проект использует Web Bluetooth API, а именно:

  • navigator.bluetooth.requestDevice()
  • device.gatt.connect()
  • чтение GATT-сервиса и запись в BLE-характеристику

Приложение зависит от реализации Web Bluetooth внутри браузерного движка. В коде проекта нет нативного слоя или отдельного desktop-клиента: вся работа с BLE идет через браузерный JavaScript API.

Нужен браузер, в котором реализован Web Bluetooth. Для проекта рекомендуется использовать браузер на движке Chromium, например Google Chrome или Microsoft Edge. Если в браузере отсутствует объект navigator.bluetooth, приложение не сможет ни открыть окно выбора устройства, ни подключиться к роверу.

Быстрый старт

npm ci
npm start

После запуска приложение будет доступно по адресу http://localhost:3000.

Сборка production-версии

npm run build

Деплой на GitHub Pages

npm run deploy

Сценарий использования

  1. Включите робота и убедитесь, что он доступен по BLE.
  2. Откройте приложение в Chrome или Edge.
  3. Нажмите Найти ровер.
  4. Выберите устройство Rover Toy XXX или Yandex Delivery Robot в системном окне браузера.
  5. Нажмите на найденный ровер в интерфейсе, чтобы подключиться.
  6. Управляйте движением кнопками-стрелками.
  7. Отпустите кнопку, чтобы отправить команду остановки.
  8. Используйте кнопку лампы для включения и выключения света.

BLE-протокол управления

Имена устройств

  • Rover Toy XXX
  • Yandex Delivery Robot

UUID

  • Сервис: 0000170d-XXXX-1000-8000-00805f9b34fb
  • Характеристика: 00002a60-XXXX-1000-8000-00805f9b34fb

Где XXXX:

  • номер ровера в формате из четырех цифр для устройств Rover Toy
  • 0000 для устройства Yandex Delivery Robot

Команды

  • 0x04 - движение вперед
  • 0x05 - движение назад
  • 0x02 - поворот влево
  • 0x01 - поворот вправо
  • 0x03 - включить свет
  • 0x06 - выключить свет
  • 0x00 - стоп

Структура проекта

  • src/App.js - корневой компонент приложения
  • src/components/FindRovers.js - поиск доступных роверов и переход к управлению
  • src/components/RoverControl.js - экран управления движением и светом
  • src/bluetooth.js - логика поиска, подключения и отправки BLE-команд

Полезные материалы


Links

Граф связей

Как эта работа связана с другими

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

Колёсико мыши меняет масштаб, а сам граф можно перетаскивать как карту.

ПостСтатьяПроект
100%
MyRoverWeb. Открыть работуКак превратить игрушечного робота-доставщика в ровер с беспроводным управлением через мобильное приложение. Открыть работу⚠️ Очень важное объявление по поводу роверов ⚠️ 💬 Сегодня я разослал всем свои…. Открыть работу👀 Фото не для слабонервных 🐦‍⬛️ Маленький ровер со всеми внутренностями наруж…. Открыть работу👋 Вот и наступил вечер среды Тараканы в моей голове говорят, что это лучшее вр…. Открыть работу👋 Когда я впервые модернизировал игрушечный ровер, то написал приложение тольк…. Открыть работу👋 После того, как я опубликовал свою статью на Хабре, где модифицировал игруше…. Открыть работу🤒 Боли пост, хотя… Несмотря на то, что изначально приложение для ровера я писа…. Открыть работу🥳 Свершилось, товарищи! 🥳 Я дописал и опубликовал веб-приложение My Rover, с…. Открыть работу🥳 Урааааа 🥳 Приложение под Android для управления роверами прошло модерацию и…. Открыть работу🫢 Из чего же, из чего же, из чего же сделаны наши... роверы Подробно весь проц…. Открыть работуА вот и долгожданный анбоксинг/обзор/реакция на новый радиоуправляемый игрушечн…. Открыть работуА вот и обещанное мной продолжение. В прошлом посте я рассказал, как написал ст…. Открыть работуА вот и ответ на вопрос 😉 Я купил портативный лазерный гравер, чтобы выжигать…. Открыть работуА вот так теперь выглядит само приложение 🤩 🔝 Вместо изображения ровера на эк…. Открыть работуА помните, ребята из Яндекса подарили мне радиоуправляемую модель ровера на Нов…. Открыть работуВсем привет ❤️ Так как вот на этот пост вы активно ставили реакции в виде ⚡️, к…. Открыть работуВсем привет 👋 Вот тут я рассказывал, в каких городах сейчас находятся модифици…. Открыть работуВсем привет 👋 Мне наконец-то пришли моторчики с планетарными редукторами. На д…. Открыть работуВсем привет 🤘 Вчера ещё один модифицированный ровер доехал до своего получател…. Открыть работуМилоты пост 😍 Иногда ты просто модифицируешь игрушечные роверы, пишешь научные…. Открыть работуМне написали из Яндекса В декабре уже прошлого года Яндекс выпустил радиоуправл…. Открыть работуМой комментарий под игрушечным роботом-доставщиком на Яндекс.Маркете, в котором…. Открыть работуНаконец-то я допилил и протестировал порт приложения для операционной системы A…. Открыть работуПомните, недавно я писал, что со мной связались ребята из Яндекса и решили пода…. Открыть работуПосмотрите, какая красота 😍 Уже совсем скоро с помощью них начнут ездить ваши…. Открыть работуПоставил моторы с редукторами на свой ровер 🚗 Несмотря на то, что ровер стал о…. Открыть работуПривет, айотовчане 👋 Сегодня случилось кое-что очень приятное, и я просто не м…. Открыть работуС гордостью заявляю, что теперь один модифицированный игрушечный ровер есть в с…. Открыть работуDeliveryRobotApp. Открыть работуDeliveryRobotFirmware. Открыть работу