Забабахал ультразвуковую локальную систему позиционирования для мобильных роботов. Рабочая зона: 32 кв.м. Точность: +-5 см. Я допустил некоторые ошибки по незнанию и переделывать что-либо было поздно, но в статье постарался предостеречь читателей от их повторения. Полную документацию под моим авторством можно прочитать на ВикиВерситете. Если что-то расписал недостаточно понятно - комментируйте, я дополню статью Огромное спасибо форумчанам Megakoteyka, NR55RU, Unixon за помощь и ответы на мои глупые вопросы на старте проекта. Спасибо магазину Амперка за возможность быстро купить абсолютно любые комплектующие, когда время решает всё. Единственная деталь, которой в Амперке не нашлось, это плата расширения для Дуни, на которой установлены винтовые клеммные колодки - золотая вещь! Не подумывали наладить производство таких?
Да, при использовании текущей конфигурации (3 спутника) система может определять положение робота в пространстве, но с очень значительной ошибкой, поэтому этот функционал я даже нигде не описывал. Так что необходимо, чтобы робот был в одной плоскости со спутниками. Ну или добавлять еще один спутник - тогда можно и спутники на потолок крепить (следовательно, преграды меньше мешают), и летающих роботов отслеживать. Этим займусь с осени Посторонние предметы еще как мешают - звук не способен проходить через хоть сколько-нибудь существенные преграды. Рабочую область можно увеличить с помощью увеличения числа спутников, ведь системе главное получить значения задержки от 3 любых спутников.
В статье описана причина, почему невозможно использовать радиоканал. С ИК-датчиками всё аналогично: скорость света это примерно 300 млн м/с, поэтому задержка прохождения светового луча от передатчика к приемнику настолько мала, что ни одна Arduino не справится с её замером. Например, задержка до объекта (приёмника), расположенного в 5 метрах от передатчика: 5 м / 300 000 000 м/с = 1.6(6)^-8 c А степень "-9" это уже наносекунды. Если я не ошибаюсь, то Arduino способна считать только каждую четвертую микросекунду, а это секунда в степени "-6". Так что свет нам здесь не помощник
Готовые датчики на ИК основаны на регистрации отраженного сигнала. В связи с этим возникают вопросы к материалам поверхностей. Для измерения расстояния таким датчиком луч должен быть достаточно точно ориентирован относительно приемника. Плюс возможная засветка любым теплым объектом или каким-нибудь инфракрасным пультом. Причем подозреваю, что там все основано совсем не на измерении времени распространения инфракрасного излучения в пространстве. Так что не для данного случая штука. Кроме того тут интересна сама модель функционирования системы, как у систем GPS. Такую на дешевых компонентах в радио или оптическом диапазоне электромагнитного излучения не построишь. Точности измерения не хватит.
Там несколько различные принципы определения расстояния до преграды (объекта). УЗ дальномеры используют время задержки (т.е. результат мы получаем умножив время задержки на скорость звука), а ИК - угол приема сигнала (т.е. триангуляция).