Как я могу определить край стола?

11

Я новичок в создании роботов и только что получил свой первый Arduino, чтобы поиграть.

Я хочу сделать робота, который будет бродить по столу, и это будет длиться дольше, я думаю, если бы я мог сделать так, чтобы избежать падения со стола.

Каков будет лучший способ заставить его обнаружить край стола, чтобы я мог остановить его и развернуться? Это должно быть что-то надежное и желательно дешевое.

Также было бы лучше, если бы мне не нужно было добавлять дополнительные элементы в таблицу, чтобы я мог использовать их на любой поверхности (моя первая идея состояла в том, чтобы рисовать линии пути на столе и создать робота для следования за линиями, но я этого не делаю мне очень нравится эта идея).

Томас
источник

Ответы:

15

Решение Roomba для этой проблемы заключалось в добавлении датчиков утеса , которые на самом деле просто обращены вниз датчиками приближения :

Sharp GP2Y0A21YK инфракрасный датчик приближения.  Датчик имеет аналоговый выход, который изменяется от 3,1 В на 10 см до 0,4 В на 80 см.

Хотя этот метод, похоже, имеет проблемы с некоторыми поверхностями, такими как темные кафельные полы , похоже, что это не будет проблемой для вашего приложения.

Вы даже можете сделать его самостоятельно с помощью инфракрасного светодиода и инфракрасного фотодиода, например, этого совместимого с Arduino инфракрасного датчика приближения .

Вы также можете получить некоторые идеи от Tiny Wanderer - робота-настольного робота на предмет инструктажей .

Марк Бут
источник
7

Простой и дешевый способ - использовать сенсорный датчик, как усы. Контроллер просто следит за тем, соприкасается ли усы с землей, а если нет, то останавливается и удаляется от этого вискера.

Другой довольно дешевый метод - использовать набор ИК-дальномеров, направленных на землю. Затем контроллер контролирует значения, возвращаемые рейнджерами, и, если какое-либо из них превышает некоторый заранее заданный порог, робот останавливается и удаляется от этого датчика.

DaemonMaker
источник
Проблема с касанием заключается в том, что датчик может быть поврежден в результате удара предметом об пол. Надежность датчика является важной частью роботизированного дизайна.
Джей Биверс
3

Существует несколько разных подходов к решению этой проблемы:

  • Датчики расстояния
  • Сенсорный датчик
  • RFID метки по краю стола (или магниты)
  • Камера (с использованием обработки изображений будет сложнее, и Arduino, вероятно, не будет достаточно мощным для этого)

С помощью датчика расстояния вам необходимо проверить, является ли это цифровой или аналоговый сигнал, предоставляемый датчиком. Для вашего «датчика обрыва» вам, вероятно, будет хорошо с цифровым, так как вы сможете использовать датчик в качестве переключателя для обнаружения, когда расстояние превышает минимальное расстояние.

Если вы заинтересованы в аналоговых датчиках, чтобы предоставить больше информации (например, расстояние от стены), чем просто тумблер, вам необходимо проверить, какой диапазон на устройстве. Острый датчик, изображенный в ответе выше, предоставит вам напряжение, которое вам придется преобразовать в расстояние (оно имеет обратную зависимость от расстояния). Вам потребуется 3 датчика для покрытия того же диапазона расстояний, что и ультразвуковой датчик (например, ультразвуковой дальномер SRF08). Датчик измерения расстояния Sharp GP2D120 4-30 см для короткой дистанции, датчик измерения расстояния Sharp GP2Y0A02YK 20-150 см для средней дальности и датчик измерения расстояния Sharp GP2Y0A710K0F 100-550 см для датчика дальнего радиуса действия. У меня были проблемы с ультразвуковым датчиком, спадающим до нуля, поэтому вам необходимо запрограммировать оператор catch, если это исключение недопустимо в вашем приложении. С ультразвуковым дальномером SRF08 работать было намного проще, так как он был настроен производителем.

Том Бамбер
источник