Движущийся лазер (Motor, Moving)

Основное устройство, создающее в паре с LSensor систему “Движущийся лазер”
Подключение 12V, Wi-Fi
Поддержка LSensor с аналогичным поколением прошивки

Данное устройство может работать только в связке с LSensor, либо в декоративном режиме (требуется спец. прошивка) ##

##

Вид платы

Физические возможности

Подключение: - 12V - WiFi - UART

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

Функциональные возможности

Связь с сервером осуществляется через WebSocket по протоколу TCP с базовой handshake-инициализацией. Адрес сервера: 192.168.50.2

Список обрабатываемых WebSocket событий:

Событие Параметры Реакция
connect - Регистрация устройства
registered `id` - Порядковый номер движ. лазера (`DeviceId`) `:int` Подтверждение регистрации
calibration - Начало калибровки
step-calibration :int
1,2 - Выключение лазера
3 - Включение лазера на движение
0 - Завершение калибровки
Калибровка по событиям
moving-status-server Отправка текущего состояния
hstate state - Номер статуса игры :int
is_play - Игра запущена :boolean
level - Уровень сложности :int
Смена текущего статуса игры
set-ssid “Laser_maze” - SSID сети :string Изменение WiFi сети, к которой подключаться
link :int
0 - Выключение лазера и перемещение в центр маршрута движения
equal DeviceID- Сопряжение лазера
not equal DeviceId- Выключение лазера
Сопряжение с сенсором
linked - Подтверждение сопряжения
unlink :int
equal DeviceId,0 - номер лазера, на котором сбрасываем линковку
Сброс сопряжения
lightBeam id - Логический номер лазера* :string Включение лазера в одной точке
moveBeam id - Логический номер лазера* :string
value - Новая позиция лазера :int 1-499
Передвижение луча в заданный угол
setBeam id - Логический номер лазера* :string
value - Значение :int
<ul>1 - Включить с отслеживанием пересечений
2 - Включить</ul>cmdid - порядковый номер команды :int
gid - номер игры :int
speed - Скорость (3-30) :int
Включение лазера
confirmed-setBeam id - Логический номер лазера* :string
value - 0
cmdid - порядковый номер команды :int
Выключение лазера
scan-room val - 1
cmdid - порядковый номер команды :int
time - время сканирования (мс) :int
Начало сканирования комнаты
saveBeam side - Настраиваемый параметр:
<ul><li>L- левый угол :int 1-R</li><li>R- правый угол :int L-499</li><li>V- скорость движения :int 3-30</li></ul>
Изменение настроек устройства
zeroPoint - Калибровка по оптопаре
calibration-light - Калибровка по событиям (светлое состояние)
moving-calibrated - Завершение калибровки (успех)
moving-uncalibrated - Завершение калибровки (ошибка)
moving-save-position 0-23 - Номер пластины :int Сохранение пластины текущего угла
disconnected - Потеря связи с сервером
* - Логический номер лазера считается принадлежащим плате в случаях:
1. "m5" (где вместо 5 логический номер лазера)
2. "m0" - логический номер для всех движущихся лазеров
3. -1 - логический номер для всех устройств

Список отправляемых WebSocket событий:

Условие Событие Параметры
Подключение SocketIO register ip-:string - IP-адрес платы
did-:string- MAC-адрес
type-"moving7"- Тип устройства
serial-:int- Серийный номер устройства
version-:string- Версия прошивки
ssid-:string- Название первичной WiFi-сети
Запрос текущего состояния moving-status calibrating-:int 0-1- Калибруется по ZP
GameCalibrated-:int 0-1- Скалиброван ли лазер для игры
left-:int- Левый угол
right-:int- Правый угол
speed-:int 3-30- Скорость движения
current-:int- Текущее положение мотора
isMoving-:int 0-1- Флаг движения
isLighting-:int 0-1- Флаг свечения лазера
Отправка последовательности пластин
(в конце калибровки)
plate-positions PlateId-:int[]-Порядок номеров пластин
PlateLeft-:int 1-500- Последовательность левых границ пластин
PlateRight-:int 1-500- Последовательность правых границ пластин
Разрешение начать игру
(после вкл. лазера в 1 режиме)
confirm-setBeam dst-:string-ID сенсора
gid-:int- Номер игры
data.id-:string-ID сенсора
data.value - 1
data.cmdid - :int - Порядковый номер команды setBeam
Ошибка/Информационное сообщение errorMsg device.type-"moving7" - Тип устройства
device.did-:string - MAC-адрес платы
device.id-:int - Лог. номер устройства
device.ip-:string - IP-адрес платы
type-:string - Тип ошибки
error-:string - Текст ошибки

Список отправляемых WebSocket p2p событий:

Условие Получатель Событие Параметры
Смена направления движения (TODO: по запросу сенсора) linked LSensor moving-position id-:int- Номер устройства
serial-:int- Серийный номер
position-:int- Положение мотора
angle-:int- Положение мотора в % от левого угла к правому
Разрешение начать сканирование комнаты
(после вкл. лазера)
linked LSensor scan-room value - 1
cmdid - :int - Порядковый номер команды setBeam
time - :int - Время сканирования (мс)
Отправка последовательности пластин
(в конце калибровки)
linked LSensor plate-positions PlateId-:int[]-Порядок номеров пластин
PlateLeft-:int 1-500- Последовательность левых границ пластин
PlateRight-:int 1-500- Последовательность правых границ пластин

Changelog

08.02.2019 epicstrike add transition mode
04.02.2019 epicstrike edit beam control events
10.12.2018 epicstrike add set-beam speed
19.06.2018 epicstrike add links
17.06.2018 epicstrike init

Posts

subscribe via RSS