Трасса для машинок с измерением скорости

BlackBug Engineering

★★✩✩✩✩✩
10 Ноя 2019
47
66
Дети регулярно устраивают соревнования между собой - чья машинка быстрее и дальше уедет. Больше всего у них машинок Hot Wheels в масштабе 1:64, отсюда родилась идея сделать трассу и измерять скорость машинки, скатывая их с одинакового склона. Машинки все похожи, но разгоняются по разному. Сделали прототип из картона:
Когда начал продумывать, как измерять, то понял, что задача не столь примитивна и есть куча вопросов, которые и хотел бы здесь обсудить с вами:
1. Какие использовать датчики, и сколько?
2. Где размещать датчики?
3. Как сделать процесс игры более зрелищным и веселым?

Пока склоняюсь к реализации в виде наклонного желоба, сверху сервопривод, опускающий заслон. Внизу по одному датчику на каждый из двух желобов. В наличии есть только ИК-сенсоры, которые работают по разному в зависимости от цвета отражающей поверхности. Еще можно попробовать датчики освещенности, фотодиоды, но не будут ли они очень чувствительными к обычному свету и опять таки будут влиять на результат в зависимости от отражающей поверхности машинки. Также можно делать в конце трассы какую-то механику, дающую сигнал. Далее получаем разницу в срабатывании сервопривода и датчика внизу и делим на нее расстояние, обрабатываем естественно на Arduino выводим результаты на экранчик. Получаем, к сожалению, среднюю скорость, а не мгновенную в конце трассы. Чтобы получить мгновенную в конце, видимо, нужно ставить два датчика в конце на небольшом расстоянии.

Прошу поделиться вашими идеями и предложениями!!!
 

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
208
Как у Гайвера в хронографе (https://alexgyver.ru/source_chron_2/), только разместить светодиод и транзистор вертикально: допустим сверху транзистор, а светодиод снизу под трассой светит через дырочку залитую чем-нибудь прозрачным типа термоклея.
 
  • Лойс +1
Реакции: BlackBug Engineering

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
Датчиков, кмк, лучше ставить 2 на дорожку: один в начале мерного отрезка, другой в конце. Так должно быть надежней. Как догадываюсь, движение по наклонной плоскости, особенно в её начале все же далеко не линейно, машинка там ускоряется. Отсюда, кмк, мерный отрезок надо делать "с отступом" от начала трассы.

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

Проблемы: "дребезг" или по какому срабатыванию определять прохождение машинки. Дребезг особенно возможен, если у машинки есть боковой люфт и она может по-разному проходить над датчиком .. ну и опять же: особенности модельки. Грузовичок с прицепом гарантировано даст выхлоп между основным кузовом и прицепом..

Но, кмк, если немножко подумать и учесть особенности машинок, реализации трассы, то идея вполне решабельная.
 
  • Лойс +1
Реакции: BlackBug Engineering

BlackBug Engineering

★★✩✩✩✩✩
10 Ноя 2019
47
66
Датчиков, кмк, лучше ставить 2 на дорожку: один в начале мерного отрезка, другой в конце. Так должно быть надежней. Как догадываюсь, движение по наклонной плоскости, особенно в её начале все же далеко не линейно, машинка там ускоряется. Отсюда, кмк, мерный отрезок надо делать "с отступом" от начала трассы.

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

Проблемы: "дребезг" или по какому срабатыванию определять прохождение машинки. Дребезг особенно возможен, если у машинки есть боковой люфт и она может по-разному проходить над датчиком .. ну и опять же: особенности модельки. Грузовичок с прицепом гарантировано даст выхлоп между основным кузовом и прицепом..

Но, кмк, если немножко подумать и учесть особенности машинок, реализации трассы, то идея вполне решабельная.
Спасибо за комментарий! Как Вы думаете, что на табло выводить, как организовать игровой процесс? Запуск по кнопке или по таймеру?
 

BlackBug Engineering

★★✩✩✩✩✩
10 Ноя 2019
47
66
Как у Гайвера в хронографе (https://alexgyver.ru/source_chron_2/), только разместить светодиод и транзистор вертикально: допустим сверху транзистор, а светодиод снизу под трассой светит через дырочку залитую чем-нибудь прозрачным типа термоклея.
Спасибо за комментарий! Хочу по возможности использовать готовые сенсоры, чтобы меньше колхозить.
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
@BlackBug Engineering, никак не думаю. Это - ВАШ проект... "Запуск" возможен автоматически: сработал первый датчик - "время пошло", сработал второй - показали скорость .. до следующего срабатывания первого датчика.

Так автотаймер на разных Робофинистах работает, ежели вчё. Вышел спорстмен, да хоть бы в режиме тестирования, запустил самокатную тележку на трассу, пошел отсчет. Проехало круг (датчик один и тот же!) - вот Вам время прохождения трассы. Надо "сбросить"? Да не проблема - махнул 2 раза рукой перед датчиком - время маха и ждем следующего. Сбилась система и что-то там считает? махни один раз, она и остановится. И будет готова к следующему заезду.

Присмотритесь к разным соревнованиям .. просто там всё. :)
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Поставьте под трассу датчик на отражение ИК сигнала. На машинки снизу наклейте светоотражающую ленту одинаковой длинны для каждой машинки. По прерыванию с пина датчика засекайте время срабатывания, и отбоя датчика. Потом исходя из времени между событиями и длинной светоотражающей полосы получаете моментальную скорость на этом участке. Датчиков можно натыкать дофига, на каждом интересном отрезке трассы.
 
  • Лойс +1
Реакции: BlackBug Engineering

BlackBug Engineering

★★✩✩✩✩✩
10 Ноя 2019
47
66
Построил трассу из кабель-каналов, смакетировал решение на Arduino Uno

Обозначилась проблема со скоростью поворота сервоприводов. Поворот осуществляется с разной скоростью. Где успевает быстрее, та трасса получается более скоростная. Думаю, что есть два варианта юстировки:
1. напряжением питания не сервоприводе при помощи переменного сопротивления
2. программно покопаться с задержками и скорректировать скорость поворота
 
Изменено:

BlackBug Engineering

★★✩✩✩✩✩
10 Ноя 2019
47
66
Попробовал сервы двигать по чуть с задержками вот так:
C++:
  while (angle > 0) {
    angle--;
    servo1.write(angle);
    servo2.write(angle);
    delay(2);
  }
Двигаются слишком медленно...
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,263
1,302
Москва
Смочь можно ) а вопрос надо ли? Сгорает любая из 2-х ( не дай Бог конечно) но опять танцы с бубнами и синхронизация.. А когда работает только одна, то это все уходит вместе с начальной проблемой. Дел то в штифте и проволочке.
Но если синхронизировать, то надо придумать какой то высокотехнологичный способ. с теми же фото датчиками, которые будут измерять разность времени в движении серв. и потом просто внести ее. Или даже сами будут подбирать задержку
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Хм... Я бы вообще один соленоид поставил. ИМХО, серва там слишком расточительно, к тому же медленно. Оно же по дну машинки волочится и цепляется некоторое время, даже на видео это видно.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,263
1,302
Москва
Ну вот у меня этих серв... а соленойда ни одного ) тут у кого что есть. Хотя ты прав, тут нужно не выставлять точный угол, а убирать препятствие
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
724
148
посмотрел ролик
в чем прикол тупо скатывать машинки и замерять кто первый?
одна машинка постоянно будет первой всегда
 

BlackBug Engineering

★★✩✩✩✩✩
10 Ноя 2019
47
66
посмотрел ролик
в чем прикол тупо скатывать машинки и замерять кто первый?
одна машинка постоянно будет первой всегда
1. Измерение в миллисекундах позволяет измерять довольно точно, поэтому даже одна и та же машинка дает разное время в зависимости от того, как ее установить на старте
2. Машинок не мало, поэтому можно устраивать между ними целый чемпионат. Выставили все машинки в ряд :)
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
724
148
поэтому даже одна и та же машинка дает разное время в зависимости от того, как ее установить на старте
ну если ее ставить на разные места, то она и будет приходит соответственно

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

у меня давно в 90х была такая дорога на 2 машинки
тут вон тема есть, там автор в фикспрайсе присмотрел железную дорогу и паровозики, наверное и с машинками есть
 

Nick

✩✩✩✩✩✩✩
1 Авг 2018
35
5
Я думаю сервы можно оставить как есть. Я бы сделал трассу побольше.
Стоят машинки в начале их держат сервы, чуть дальше датчики и ещё через метр(например) датчики.
Нажимаем кнопку, машинки стартуют, проходят первые датчики начинается отсчёт времени далее машинки проходят последние датчики
отсчёт времени завершается.
Дальше всё проста.
Расстояние делим на время. (расстояние между датчиками).
Таким образом получаем:
1 замер скорости и времени у каждой машинки.
2 сервы никак не смогут повлиять на результат
3 без разницы кто стартует первым (можно опускать сервы и запускать вручную по очереди)
4 размер машинки (её длина) не будет мешать.
5 на финише (дисплее) можно показывать скорость время каждой машинки
по типу
1player 2player
speed: speed:
time: time:,
а затем сравнивать результаты и выводить информацию о победителе
1player WIN !!!
speed:
time:
Далее можно развить идею заездов на весь ваш автопарк с таблицей заездов игроков.
А если взять графический дисплей то можно ещё и красивости нарисовать=)
Как то так я всё
break;
 

BlackBug Engineering

★★✩✩✩✩✩
10 Ноя 2019
47
66
@Nick, Спасибо за полезный ответ. Сейчас облагораживаю, то, что собрал на скорую руку и надеюсь, что скоро смогу показать.