Хронометраж для аматорських автоперегонів

Почалося все з того, що я захопився автоперегонами, подивившись, як мучаться організатори з вимірами часу (коли на колі одночасно 4 машини доводиться використовувати 4 секундоміра і не заплутатися, де чиє час), я запропонував свою допомогу. Так само було цікаво попрактикуватися у незнайомих технологіях. Що з цього вийшло — читайте далі.

Всі вихідні коди і схема доступні в кінці статті.

Завдання були наступні:
— максимальна простота, мінімум підключень і проводів;
— швидкість установки;
— на колі можуть бути кілька машин одночасно;
— машини йдуть у суворої послідовності, обігнати і змінити порядок не можуть;
— старт по перетину лінії.

Оскільки у мене був невеликий досвід використання Arduino, я взяв його за основу. Так само вирішив відмовитися від ноутбука і для мобільності замінити його додатком під Android, освоїмо незнайомий мені раннє мову Java.

Вибір запчастин

Датчик перетину лінії. Спочатку я хотів реалізувати всі одним блоком, який кріпився б з одного боку на старті\фініші і визначав перетин ультразвуковим датчиком відстані. Вдома це навіть працювало, але на вулиці все виявилося інакше. Показання датчика постійно стрибали і реагували на вітер і на все підряд крім машини. Вирішено було копати в сторону інфрачервоних променів.

Для того, щоб точно відрізняти світло інфрачервоного діода від автомобільних фар чи сонця, потрібно підбирати приймач з частотною модуляцією, чим займатися не хотілося. Вибір припав на готові датчики ABT-30m. У них все вже було реалізовано, наприклад, скло пропускало тільки інфрачервоне світло і відсікало світло фар і сонця. Стояли фокусуючі лінзи, потрібно було тільки підключитися до відповідного висновку датчика. Наскільки я зрозумів, такі датчики використовуються для охорони периметра в домашніх сигнализації. Забігаючи вперед скажу, що вибір виявився вдалим.



Акумулятор. Оскільки ABT-30m живиться від 12v і Arduino mini може харчуватися від 12v акумулятора, вирішено брати на 12v. Хотілося знайти мінімального розміру, щоб він помістився всередину корпусу пристрою, а не був додатковим блоком зовні. На ринку вдалося знайти тільки автомобільний акумулятор, який зовсім не підходив за розмірами і акумулятор від ДБЖ, який був теж досить великим: але на крайній випадок обидва могли б підійти.

У підсумку мені пощастило і я знайшов в китайському магазині акумулятор 12v і 4000mAh розміром в два сірникових коробка, що було дуже добре. Надалі з'ясувалося, що це «акумулятори від нокії», з'єднані послідовно в термоусадке:



Світлодіоди. Звичайні 12v rgb 10w:



Bluetooth. Стандартні модулі HC-06:



Збірка

Ось така схема вийшла. Arduino підключається до bluetooth на 5 і 6 ногах і працює через Software Serial. До 9,10,11 ніг підключаються rgb світлодіоди через транзистори, так як світлодіоди живляться від 12v, а arduino видає 5v. На 2 ногу заведений сигнал з датчика перетину, працює через переривання:




У результаті вийшло ось так. Один блок — це приймач (з купою дротів всередині) другий — передавач (всередині тільки акумулятор) і світлофор, зроблений з якогось ліхтарика з fixprise (в межах 3 кольорових світлодіода і розсіювач з якогось паперу). Кріпиться світлофор крокодильчика, а з'єднується з основним модулем звичайним патчкордом:






Мобільний додаток


Замість комп'ютера я вирішив виводити результати і управляти стартом з мобільного телефону на Android. Так само це був перший досвід розробки під цю платформу і перший досвід із Java. У результаті вийшло ось таке додаток:





Працює наступним чином. З різних боків дороги ставляться передавач і приймач, що підключається світлофор і вішається на зручне місце (встановлення дуже швидка). У додатку встановлюємо з'єднання з Arduino, додаємо учасників — в тому порядку, якому вони буду стартувати. Запускаємо їх в додатку.

Після натискання кнопки «старт» світлофор спалахує зеленим, а по перетину лінії починається відлік часу. Arduino посилає в додаток кількість мілісекунд з моменту її запуску і так з кожним перетином лінії. Потім по різниці між цими значеннями вираховується час заїзду. Затримки передачі даних стають не важливими.

Плани на майбутнє

Зробити синхронізацію в хмару, щоб можна було в реальному часі дивитися на великому моніторі результати або не виходячи з дому на сайті (дуже цікаво спробувати Meteor.JS). Так само потрібно виправити дрібні баги і зробити пристрій модульним, щоб можна було використовувати його для різних конфігурацій траси (старт і фініш в різних місцях, наприклад). Ще потрібно зробити індикацію учасника (напевно rfid мітки...)

Приблизна вартість

Інфрачервоні датчики ABT-30m (1350р)
Arduino mini (135р)
Bluetooth HC-05 (270р)
Транзистори IRF530 з N-каналом (40р * 3шт)
2 акумулятора 12V 4000mAh (820р * 2шт)
10w rgb світлодіоди (160р * 3шт)
Проводу, корпус, роз'єми

Загальна: ~4000р — 5000р

Всі вихідні коди відкриті і доступні в Bitbucket.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.