Схема v9.1 Статичные лучи

Аппаратная поддержка

Передатчик (лазер)

| Параметры | Управление | Функция | | ——– | ——– | ——– | | +4v 0.6A | passive | Pwr | | GND | D | Pwr |

Приёмник (сенсор)

| Параметры | Управление | Функция | | ——– | ——– | ——– | | INPUT PU +3.3v (24kΩ) | I | Значение освещенности | | GND | passive | Pwr |

Программная поддержка

Режимы работы

Режим луча Свечение Отслеживание
0 - -
1 Вкл. Вкл.
2 Вкл. -

Алгоритм калибровки

см. Калибровка статичных лучей

Причины выключения лазера

Причина Информирующее событие
Команда с сервера -
Начало/конец калибровки calibration_finished2
Завершение игры -
Пересечение луча beam_crossed
scan-result
Потеря связи с сервером -
Луч работает в режиме мигания -
Конец сканирования комнаты scan-result

Причины непересекаемости лазера

  • Лазер работает во 2 режиме
  • Запущена калибровка
  • Низкая чувствительность
  • Высокий уровень засветки сенсора сторонними источниками
  • Не пришел hstate с флагом is_play=1
  • Зависание контроллера
  • Лазер светит не в свой фотоприёмник
  • Пересечение луча произошло в первые 150мс после включения
  • Луч уже был пересечен и неправильно восстановился/зажегся (ошибка прошивки)

События

Входящие

Событие Данные Описание
setBeam id: int - логический номер луча
value: int - режим работы
int:int - интервал моргания(ms)
t:`int` - время свечения/скважность(ms)
off:int- задержка выполнения (ms)
Управление лучами
setSensetiv int 10-99 Настройка чувствительности
editDef Sensetiv: int 20-99 - Чувствительность
MinLDiff:`int` 50-2500 - Минимальная разница темно-светло
MinMS: int 50-3900 - Минимальное светлое значение
Конфиг. калибровки
start-game   Начало игры
end-game   Конец игры
scan-room val:
- 0. Остановить
- 1. Запустить
time: int- время сканирования (ms)
Сканирование комнаты
calibration   Начало калибровки
moving-status-server   Запрос текущей информации
hstate is_play: 1 Начало отслеживания пересечений

Исходящие

Событие Данные Инициатор Описание
calibration_finished2 hw.id: int - логический номер платы
dark: `int[8]` - значения темноты
light: `int[8]` - значения света
x: `int[8]` - пороговые значения срабатывания
Конец калибровки Результаты калибровки
calibrated-kt KT: `int[8]` - значения темноты Завершение замера Результаты КТ
now-status uptime: `hh:mm:ss.ms` - Время работы платы
rssi: `int` - уровень сигнала Wi-Fi
Sensors: `int[8]` - текущие значения освещенности
Calibration: `int[8]` - текущие пороговые значения
Lasers: `int[8]` - режимы работы лучей
Sensetiv: int - чувствительность
MinMS: int - мин. светлое состояние
MinLDiff: int - мин. разница свет-тьма
Запрос с сервера Текущее состояние
scan-result crossed: `int` - лог. номер пересеченного лазера Пересечение луча Результат сканирования комнаты
beam_crossed id: `int` - лог. номер пересеченного лазера Пересечение луча Сообщение о задевании луча

Выявленные баги

TODO

Posts

subscribe via RSS