Проект. Секундомер со стартом по датчику движения. Обучение.
- Войдите на сайт для отправки комментариев
Привет!
Мне тут подарили стартовый комплект ардуино Уно. И в поисках его применения я вспомнил об одной задаче, которую именно сейчас мне здорово было бы разрешить.
Конечно, можно было бы все это вывесить просто в "ищу исполнителя", но интересно понять, как оно все работает. Тем более с программированием знаком (правда не на сях), с электроникой знаком. Издалека. Да.
Нужно сделать секундомер, который будет считать секунды и десятые от пересечения линии старта до повторного ее пересечения. На третье пересечение сбросит все на нули и начнет новый замер.
Итак.
за готовое решение готов заплатить.
за помощь в конкретных вопросах - огромное спасибо. Сейчас проблема в том, что датчик выдает постоянно "движение detected".
Платформа Arduino Uno v3
PIR Motion Sensor HC-SR501
Итак, проблема первая: датчик постоянно детектит движение (на cериал мониторе постоянно "Motion Detected")
Датчик PIR Motion Sensor HC-SR501 подключен к GND, Ардуино вход 2, 5V
Я бы вместо датчика движения использовал инфракрасный передатчик и приемник....так точнее да и проще ...
Спасибо, поменяю на ИК. Тем не менее не понятно, почему врет датчик. Брак?
Подтяни вход 2 на минус через резистор 10КОм
Спасибо, поменяю на ИК. Тем не менее не понятно, почему врет датчик. Брак?
1. Затупите чувствительность.
2. Такой датчик не подходит вооооообще для єтих целей. Отловить десятые секунды - нужно прибавлять чувствительность, но тогда начнет срабатывать на все на свете и постоянно сигналить. Да и угол действия такого датчика 80-180 градусов. Попробуйте лазерный датчик.
Подтяни вход 2 на минус через резистор 10КОм
Помогло, спасибо!
Лазерный датчик заказал, спасибо за ссылку, Okmor!
Какие преимущества и недостатки между "инфракрасным передатчиком с приемником" и "лазерным датчиком" для этого проекта? Цена? Точность? Простота реализации?
И еще вопрос. Нужно заказывать 7 сегменты. Желательно с высотой буквы не меньше 10 см. Есть тут какие подводные камни или в схеме ничего не меняется от размера и только вопрос цены самих дисплеев имеет место быть?
Лазерный датчик думаю не подходит для вашего проекта.... так как вам нужно мониторить всю ширину трека а это датчик макс. 1.5м может...
Самый простой и дешевый способ это фоторезистор и лазерная указка.
Оба варинта не измеряют расстояние (поэтому точность тут не при чём), а определяют наличие-отсутствие препятствия по отражению светового потока. ИК-вариант имеет "дальность действия" до 30 см, а лазерный - до полутора метров. Возможно, для ваших целей не подойдёт ни один из этих вариантов, в том виде, как они выполнены (на одгной плате и приёмник и излучатель). Фотофиниш, в моём понимании, должен иметь отдельный излучатель со своим питанием, который направляет прямой луч на приёмник, подключённый к контроллеру. В этом варианте лазерный вариант имеет преимущество по удобству наведения на приёмник и по ширине зоны финиша (если это критично), хотя и дороже по стоимости.
ЗЫ. Про лазерную указку то я изабыл )) Указка-фотосенсор - нормальный вариант!
Фиксироваться должно пересечение ворот шириной 1 метр.
Указка и фотосенсор должны быть расположены на разных сторонах "ворот" и при установке нуждаются в регулировке. Еще и питание указке необходимо.
Лазерному же датчику никакой "напарник" на другой стороне ворот не нужен, правильно?
Нужен.... так как сигнал должен от чего то отразится..... хотя этим отрожателем может и стать мотоциклист :-))
Нужен.... так как сигнал должен от чего то отразится..... хотя этим отрожателем может и стать мотоциклист :-))
Ну да, я это и имел в виду, что пересекающий ворота и будет отражателем.
Сегодня проект прошел первые боевые испытания.
В качестве датчика был применен фоторезистор и лазерная указка, как и советовали выше.
Из минусов этого решения:
за 2 с хвостиком часа заездов сели батарейки в двух указках. Можно и указку, конечно, запитать как и саму Ардуину от пауэр-банка, но есть еще и второй недостаток - указка периодически теряла резистор. Уж очень стабильны должны быть обе стороны "ворот". Ни на миллиметр в сторону. Ну и яркое солнце пришлось изолировать "козырьком" в виде трубки над датчиком. Не красиво :)
Поэтому жду с алиэкспресса лазерный датчик и буду пробовать с ним.
Код написал вот такой (добавил комменты, которыми объяснял другу, как это работает):
Еще приложил бы схему (пусть она и простейшая, но может кому-то и пригодится), но пока не нашел софтинку, что бы оформить схему в удобоворимом для форума виде (может кто подскажет?)
Акромя лазерного датчика необходимы следующие доработки:
Светофор. Кто-то находится на кругу - горит красный, если же трасса свободна для прохождения - горит зеленый. Тут проблем возникнуть не должно.
Больший циферблат (в настоящее время используется двустрочный 1602 LСD c IIC/I2C). Но это не удобно. С одной стороны зрителям не видно, с другой - самому участнику нужно остановиться ровно около экрана (я расположил его на треноге от фотокамеры в паре метров вперед от ворот старт/финиш). Т.е. хочется получить большие цифры, но, по возможности, что бы это было не сильно сложнее, чем данная реализация (4 провода, библиотека и команда Print :) ). 7-segment сантиметров на 10 или может кто-то еще что-то посоветует? 7-segment опять же идет в разрез с далекими планами.
А именно:
Из далеких планов - лучшее время как и отставание от него у текущего участника постоянно находится на экране, лидерборд , номера участников (пока ума не приложу как их отличать, может по сигналу с блютюз телефона или еще что), сохранение результатов где-то в сети. Да и мало ли можно еще придумать :)
Пока все :)
Интерестно, что это за фигня?
Расстояние можно подлечить фокусировкой и установкой катафота на противоположной стороне плюс козырек. Инфракрасный диапазон немного видно на камеру смартфона.
Также интерестно модулирован ли сигнал в этом датчике.
Относительно индикации, предлагаю использовать старый LCD монитор. Благо, такой можно на барахолке купить за 10$-20$. Вот пример использования.
Или вот:
Интерестно, что это за фигня?
Расстояние можно подлечить фокусировкой и установкой катафота на противоположной стороне плюс козырек. Инфракрасный диапазон немного видно на камеру смартфона.
Также интерестно модулирован ли сигнал в этом датчике.
Пришел лазерный датчик. Срабатывает на расстоянии до 30 см. Иногда вообще перестает срабатывать. Рестарт Ардуино восстанавливает его работоспособность. А надо бы хотя бы сантиметров 50-70 строгого срабатывания.
Вот эта цитата выше про катафот, фокусировку с козырьком - это про лазерный датчик? Можно по-подробнее? Как осуществляется фокусировка? Что даст катафот или если перефразировать вопрос - каков принцип работы этого лазерного датчика?
Может имеет смысл заменить его на http://www.elecrow.com/water-proof-integrated-ultrasonic-ranging-module-jsnb02-p-1202.html ?
Относительно старой схемы (с лазерной указкой и и фоторезистором) тоже вопрос. Вернее относительно самой указки. Имеет ли она свойство "садиться"? Т.е. при стабильном питании со временем уменьшать интенсивность свечения, улавливаемого фоторезистором?
Скорее всего там нет лазера, а светодиод с линзой фокусировки (тот, что поменьше). Надо увидеть луч света, а его можно посмотреть через камеру телефона. Возможно конструктив позволяет двигать линзу и таким образом сфокусировать луч.
Вместо катафота можно использовать светоотражающую пленку из автомагазина. Козырек надо для прикрытия от засвета солнцем.
Я дико извиняюсь, что толкнул вас на эту покупку, но только смелым покоряются моря.
Лазерная указка тоже не выход. Пятно очень маленькое и подвержено засвету. Можно использовать вот такую схему из инфракрасного светодиода+линза+козырек и приемник. Схема особенна тем, что сигнал модулирован и это не допускает ложных срабатываний.
Такой датчик стоит на пульте от телевизора, но там жуткие задержки ибо телевизору важно знать не только факт нажатия на кнопку, но и на какую кнопку вы нажали. Если не использовать библиотек, то задержки будут очень маленикие не более сотых секунды.
Для фокусировки передатчика я использовал трубку от пищевой пленки и старую линзу вклееную в эту трубку. Фокусировал используюя камеру мобильного телефона.
Чесно слово я не думал, что вы сразу закажете этот датчик.
О чем речь?! Я очень благодарен за любую информацию по теме!
Идея с фокусировкой, катафотом и козырьком нравится поменьше, чем просто вариант с одним датчиком вроде указанного выше утразвукового. Ведь если я правильно понимаю, то при малейшем изменении угла датчика эта фокусировка может сбиваться. Опять же, обязательное наличие второй, светоотражающей, части ворот мне не очень нравится. По крайней мере, хотелось бы этого избежать.
Наверное, попробую все же этот "ультразвук", тем более он есть в наличии в соседнем магазине :)
Катафот он потому и катафот, что отражает свет к источнику в не зависимости от угла падения. Самоклеющаяся пленка состоит из миллионов микроскопических ячеек.
Ультразвуковой датчик имеет задержки. Скорость звука 340 м/с. Предел измерения ультразвукового датчика 4 или 12м в зависимости от модификации. Тоесть, в идеальном случае можно сделать 85 замеров в секунду. Сюда надо добавить модуляцию сигнала, длительность импульса и время срабатывания. Думаю, что чаще чем 5-10 раз в секунду измерять не получится.
Думаю, что чаще чем 5-10 раз в секунду измерять не получится.
Я понял. Но на данной стадии точность 0,2с меня устраивает. Куда важнее не иметь привязки ко второй половине ворот. Хотя, скорее всего я попробую реализовать оба варианта и посмотрю, что на практике удобнее, дешевле и проще в изготовлении.
А если выбирать между http://www.ittgroup.ee/en/sensors-and-accessories/508-ir-distance-sensor-gp2y0a60szlf-10-150-cm.html? и тем ульрасоником?
Ультразвуковые датчики зависают, если расстояние больше измеряемого и помогает только сброс по питанию. Есть которые не зависают, но мне такие не попадались, ибо жадный платит дважды.
Вот нарыл немного дешевле
Вот нарыл немного дешевле
Да, о подобном датчике я выше и писал. Сегодня купил и подключил. Пока результат - лучший из всех опробованных датчиков. Но все равно сохраняются ложные срабатывания, а иногда - не срабатывает. Но это надеюсь решить программно.
Теперь проблема в том, что при отсутствии помех датчик выдает значение 80-100. При проезде через ворота - 200-500 и больше (чем ближе к датчику - тем больше). Выставляю срабатывать на 200 - ложные срабатывания. Ставлю больше - ожидаемо не улавливает некоторые пересечения, которые потенциально должен ловить. Бракованный датчик? Или что может служить причиной скачков значений на выходе датчика? Солнце, отражения или еще что? Есть идея поставить напротив датчика черную стенку (тряпичную или деревяшку, окршенную матовой краской). Но это все интуитивно, ибо физика процесса не понятна...
Все давно решено - и лучшее решение это с алиэкспрес на 20 метров-решаете вопрос с питанием на 14 воль и вуаля.450 рупий
Черный инфракрасный датчик один луч сигнализации фотоэлектрические инфракрасный детектор главная двери системы безопасности
Всем привет.
Как успехи?