Обновление датчиков присутствия

Сразу небольшой дисклеймер. Датчиком я буду называть уже все свое устройство в сборе, а сенсором — именно LD-2410

В первую очередь все-таки захотелось получать больше данных от самого сенсора. Кроме банального присутствия в виде логической единице на пине, он умеет отдавать данные о расстоянии до «цели». Это и захотелось отдавать уже на выходе датчика. Проблема заключалась в том, что он выдавал эти данные непрерывно в UART так, что от них обалдевали даже терминальные программы в винде. А уж не сильно могучий CC2530 по моим прикидкам должен был вообще умереть. Но почитав, наконец-то мануал по 2530 я обнаружил, что можно настроить порт на работу с callback процедурой.

Сначала я просто решил переводить сенсор в режим настройки, чтобы он не флудил. Но оказалось, что лучше просто игнорировать слишком частые сообщения. В итоге родился такой алгоритм:

  1. Если на пине нет присутствия — просто игнорируем то, что идет в порт

  2. Если присутствие появилось, то мы будем читать порт с интервалом от 1 до 15 секунд. Интервал, конечно пользователь будет задавать сам.

b58c74d8aac5bce2b99e5304867e3c8f.png

Ну, а потом я случайно заказал сотню плат под свой любимый модуль с усилителем. Забыв о том, что для усилителя используется пин 0.7, которым я использовал для чтения напряжения с фоторезистора. Чтобы их не выкидывать, пришлось доработать прошивку и брать данные об освещенности опять же с сенсора.

d9052d3ab7d76e9a9a6b6fe1508950a3.jpg

В результате получилась такая платка. Это вариант для «стандартного» модуля E18-MS1-PSB. Фоторезистор тут остался, как и дополнительные 5 отверстий под сенсор LA-016 на 5.8 ГГц.

© Habrahabr.ru