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