Алгоритм калибровки статичных лазеров

Список значимых переменных

  1. Флаг памяти калибровки
  2. Чувствительность
  3. Таймер начала калибровки
  4. Количество скалиброванных лазеров
  5. На каждый из 6 сенсоров отводятся поля под:
    5.1. Темное состояние
    5.2. Светлое состояние
    5.3. Граница срабатывания
    5.4. Калибровка окончена

Сброс значений

Сбрасывается флаг памяти калибровки.
Для всех сенсоров устанавливается:

  • темное состояние 0
  • светлое >4095
  • окончание калибровки false Кол-во скалиброванных лазеров - 0

##
##

Установка КТ

Включение подсветки кнопок

Включение синего цвета светодиодной ленты

Выключение лазеров

Ожидание 200мс

##

##

Замер КТ

Сброс таймера начала калибровки

Замер максимального значеня темного состояния для каждого сенсора за промежуток 1300мс

##
##

Включение лазеров

Включаются все лазеры

Ожидание 3000мс

##
##

Замер света

Сброс таймера начала калибровки

Ожидание 150мс

Для каждого сенсора одновременно, пока все не закончат калибровку:

Замер минимального значения светлого состояния за промежуток 4500мс

Пометка лазера как закончившего калибровку

##
##

Поддержание светлого состояния

Ожидание 14сек ±50мс чтобы закончили калибровку движущиеся лазеры

Выключение лазеров

##
##
##
##

Вычисление порогов срабатывания

Для всех сенсоров:

Дэльта = Свет - Тьма<br>
Если дэльта > 1000, то<br>
	Порог срабатывания = Тьма + Дэльта `*` Чувствительность `*` 0,01<br>
Иначе Порог = 0

##
##

Завершение калибровки

Выключение кнопок

Выключение светодиодной ленты

Запись значений калибровки в память

Отправка события завершения калибровки

Changelog

12.06.2018 epicstrike init

Posts

subscribe via RSS