Я просто случайно встретил Arduino с датчиками. Конечно, после игры с blink и аналогом меня осенила идея купить собственную плату. После быстрого просмотра списка готовых плат я открыл eBay и заказал Funduino Mega2560 (Arduino Mega 2560 Analog) и несколько устройств для нее.
Среди наиболее интересных автобусов был цветной TFT-дисплей 320×240 с 16-битными каналами и резистивным сенсорным экраном. Как выяснилось позже, экран должен был подключаться к Mega через плату-адаптер, но поскольку этот момент был упущен, адаптер не был заказан, а жажда приключений заставила меня паять, и штекер "папа" был желанным. Штекер. Мама. В итоге, с серьезной кучей кабелей и определенным количеством нейронов, экран запустился, стандартная библиотека подхватилась и эксперимент начался. На самом деле, последний результат объясняется ниже.
Теперь она стала "мамой".
Было совершенно грустно иметь ультразвуковой датчик и цветной экран, который занимается только экспортом расстояний и текстовых цен. Поэтому идея графического изображения "образца" датчика была лишь вопросом времени. Современные радиолокационные промышленные станции могут размещать антенну на платформе и поворачивать ее ось для получения двухмерных характеристик. Я не придумал ничего другого, я просто приклеил ультразвуковой датчик Sergenda с помощью термоклея.
Мне нужен лазер мощностью 10 МВт, и — я боюсь мух.
Поэтому.Радар. Чтобы сделать его более стабильным, я решил наклеить его на стеклянную подложку. Этого было достаточно для экспериментов и повторений. Итак, еще раз о принципах работы. Сервер вращается влево и вправо и поворачивает установленный на нем датчик расстояния. Каждый момент изменения угла наклона серв сопровождается рабочим импульсом от датчика. Другими словами, каждый угол производства услуг соответствует различному знаку датчика. Кроме того, эти данные преобразуются в читаемую форму библиотеки ультразвуковых датчиков, при этом точки на экране проектируются в соответствии с углом и знаками датчика. Небольшая анимация для наглядного представления принципа работы.
Сам код был максимально упрощен. Однако в более стабильной версии были добавлены ошибки для исправления ошибок. Периодически ультразвуковые датчики предоставляют экстремальные данные. Например, добавьте 2000 мм к текущей цене. Поэтому, анализируя соседние данные, код исправляет ошибки.
Однако не обошлось и без проблем. В конце концов, для серверов с ультразвуковыми датчиками само собой разумеется наличие блока питания USB. Мне пришлось питать дополнительную плату от 9-вольтового источника питания. Но даже в этом случае ультразвуковой датчик давал неверные данные, а его диапазон измерений был ограничен глубиной 50 см. При этом не учитывается масса шума, добавляемая к конечным данным детектора. В конечном итоге, источником помех оказался двигатель Servia, который при вращении создавал серьезные помехи для ультразвукового датчика. В результате сервопривод питался от второго источника питания, и только отрицательный провод был подключен к общей цепи. Несмотря на все измерения, в данных датчиков и на экране присутствовал ощутимый шум.