Обнаружение движущегося объекта, не являющегося человеком
Я хотел бы разработать систему, в которой я смогу заставить свет мигать, когда датчик движения обнаруживает движение нечеловеческого объекта, например автомобиля.
(Цель здесь в том, чтобы, когда машина движется позади меня в моей слепой зоне из-за угла стены на моем парковочном месте, я не врезался в нее задним ходом.)
Я изучил несколько руководств по использованию Arduino для обнаружения этого движения, но пока что я прочитал только о PIR (который обнаруживает только людей и животных).
http://www.instructables.com/id/DIY-Arduino-Motion-Sensor-Lighting-Control/?ALLSTEPS
Какой датчик лучше всего подойдет в этой ситуации или мне нужно пересмотреть свою систему?
(У меня нет намерения причинить вред кому-либо или чему-либо :) )
@Lipika, 👍1
Обсуждение6 ответов
Если ваш автомобиль движется в данный момент, то относительно вашего автомобиля все движется.
Автомобильные компании потратили миллиарды долларов, работая над этой проблемой. Не существует «датчика», который мог бы отличить один движущийся объект от заднего плана, который также движется.
Все существующие автомобильные системы, которые выполняют эту задачу, используют камеры и компьютеры с программным обеспечением, таким как OpenCV. Это не то, к чему может даже приблизиться Arduino.
Самое близкое, что вы можете получить, это «есть ли что-то в этой области, что находится на определенном расстоянии от меня», что вы можете сделать с помощью ультразвукового датчика «Ping». Он не будет различать движущуюся машину, столбик, ребенка или просто стену, к которой вы движетесь задним ходом.
Не хочу быть здесь мокрым одеялом, но, возможно, работа слишком проста для такого количества технологий. Разве правильно расположенное изогнутое зеркало не даст вам необходимую информацию?
Или установите датчик PIR за углом, где он сможет видеть автомобиль, и поставьте мигающий фонарь там, где вы сможете его видеть при движении задним ходом.
Я бы попробовал PIR-датчик, прежде чем списывать его со счетов. Он обнаруживает изменения в инфракрасном излучении от исходного базового уровня, который он считывает, поэтому всякий раз, когда окружающее тепло, которое он видит, изменяется на некий порог, он уведомляет вас. Они могут быть достаточно чувствительны, чтобы заметить проезжающую машину, как предполагают другие.
Более надежным решением может стать ультразвуковой датчик приближения, как упомянул Маженко. Вот один из них в качестве отправной точки: ультразвуковой датчик расстояния. Это будет лучше всего, если вы знаете, что автомобиль будет проезжать перед тем местом, куда вы направите датчик. Если трудно направить датчик в точку, где вы уверены, что автомобиль проедет, то именно здесь PIR будет иметь преимущества, так как он «видит» более широкую область.
Я бы использовал ультразвуковой датчик расстояния. Они довольно точны и широко используются для решения подобных задач. В ваших данных будут всевозможные шумы от разных поверхностей, от которых будет отражаться ультразвуковой звук.
Другим вариантом может быть инфракрасный датчик расстояния. Убедитесь, что вы нашли тот, у которого достаточно большой диапазон, потому что «обычный» датчик, используемый в примерах Arduino, достигает примерно 30 см. Они менее точны, но очень просты в использовании с Arduino. И если я правильно помню, у них меньше проблем с помехами, если вы используете их вместе.
ПИР-датчики созданы для обнаружения разницы в инфракрасном тепле, исходящем от кожи человека (по сравнению с тем, когда человека нет рядом). Так что я бы не рекомендовал их.
Я не уверен, почему никто не предложил микроволновый доплеровский датчик. Я не уверен, как он будет работать на открытом воздухе, но он предназначен для обнаружения движения независимо от того, человек это или нет. Эта ссылка содержит некоторую информацию об использовании дешевого микроволнового датчика с Arduino.
Вы можете использовать серводвигатель для поворота ультразвукового датчика на 180°:
- В функции
setup()
вашего кода сохраните расстояние для каждых 180° в массиве; - В функции
loop()
считайте расстояние каждого градуса и сравните с расстоянием в массиве.
Если значение изменилось, это означает, что объект был перемещен
- Можно ли измерить скорость акселерометром? Насколько точно?
- OVF в последовательном мониторе вместо данных
- Снять гравитацию с акселерометра MPU-6050
- Использование MPU-6050 без I2C
- Акселерометр ADXL345 не работает
- Скорость передачи данных ADXL345, похоже, больше зависит от скорости передачи данных, чем от фактической скорости передачи данных, которую я установил.
- Изменение скорости передачи данных не работает
- Как получить и интерпретировать данные цифрового акселерометра?
Вы имеете в виду, что пытаетесь обнаружить *движущийся автомобиль*, или ВЫ движущийся объект и пытаетесь обнаружить статический объект, который просто оказался автомобилем? Если это первое, разве горячий двигатель не сработает датчик PIR?, @CharlieHanson
Почему именно ограничение на нечеловеческих существ? Можно ли врезаться в человека задним ходом? Если да, то почему? Если вам нужно что-то, что чувствует разницу между движущимся неодушевленным объектом (например, автомобилем) и человеком, то наверняка такая система обнаружения также будет определять такие вещи, как собаки и кошки. Если только вы не собираетесь гуглить «детектор людей», мне кажется, что подойдет любой детектор расстояния. Конечно, вы не хотите врезаться задним ходом во что-либо, живое или нет., @Nick Gammon