Вітаю! Нещодавно колектив сайту FS вперше прийняв участь в RoboRace Львів! Для тих хто незнає що це, ось відео:

Основне завдання автомобіля проїхати дистанцію швидше за інших використовуючи лише власний інтелект алгоритм.

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

І так, все попорядку.

Підготовка

Ми, як справжні мейкери, взялись за розробку боліда завчасно, щоб було достатньо часу на відладку і тестування. За цілих 2 тижні. Цей час був неймовірним. Всі інші справи різко перестали бути важливими. Про харчування і сон ми взагалі забули.

Тиждень перший: ми перебрали багато шасі від іграшкових авто, в результаті було прийнято рішення переробити одну із наявних машинок. Але після того як цей неймовірно важливий елемент був готовий ми вирішили що це занадто просто і вирішили розділитись на дві команди. Готове шасі залишилось іншій команді. Ми знову без нічого(

На наступний день озброївшись професійною мишкою для ультимативного та якісного 3д моделювання ціною в 42 грн (так так, на 2 гривні більше ніж штани) і ноутбуком 2011р. в., мною було розроблено революційну 3д модель нашої мрії. В мене навіть вистачило натхнення видрукувати переднью вісь.

Для історії хочу відмітити, що цей концепт повинен був бути оснащений 200Вт двигуном (ми думали цього буде достатньо), який приводив би задню вісь в рух через саморобний редуктор, камерою для потокової обробки відео, і нейронною мережею замість алгоритму.

Як ви вже зрозуміли… Все було не так як очікувалось. Усі ідеї відійшли в закрама нашої тумбочки незакінчених проетів, коли ми зрозуміли, що залишилось не мало не багато, цілих 5 діб.

Тиждень другий: коли органи, якими природа нас наділила для сидіння почало інтенсивно нагрівати розуміння того, що часу обмаль, ми почали працювати. Вибору шасі було приділено забагато часу, тому ми взяли те що було.

Насправді розміру цього авто цілком достатній, але враховуючи що цій машинці років 15, і вона була курильщиком (через декілька хвилин роботи двигун починав диміти)... На змагання ми поїхали з іншою базою, але про все попорядку :D

Наступним етапом був вибір давачів, які повинні вимірювати відстань до бортів/суперників. Варіантів не так вже і багато: ультразвукові або оптичні. Вдаватися в порівняння в межах цієї статті ми небудемо)

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

Потім такий

А деколи навіть такий

На електоронній частині я зациклюватись небуду, тому переходимо до найцікавішої частини роботи. Код. Вірніше, варіації на тему...

Переривання, багатопотоковість і інші нікому непотрібні виї... кхм-кхм, штуки, були відкинуті одрузу. Лінійність наше все. Про розробку плати ніхто вже навіть не заїкався (ви ще пам’ятаєте про тумбочку ). Хоча, для чого придумувати велосипед, якщо під рукою є більше десятка ардуінок. Перші версії були на Uno, але після встановлення 5-и давачів портів почало різко бракувати. Мультиплексори і інші круті штуки ніхто не хотів вживлювати в схему, так як такого фаршу на мекетці і так вистачало:

Впринципі і для чого, акщо під рукою є тройка майже робочих Arduino MEGA, які трошки підгоріли на наших 3D принтерах. В більшості на живлення хитрим способом (вигорів стабілізатор) просочилося 12 чи 24 вольта. Після чого деякі порти повилітали, і камінь по незрозумілій причині почав трошки перегріватися. Вирішивши що це фіча для швидкого випаювання схеми, ми вчепили радіатор і забили)

Алгортим роботи простий: стінка пропала, повертай доки вона не появиться. Бидловерсії коду ми пропустимо (хоча тоді прийдетися відкидувати весь код) і залишимо вкінці лише дві більш-менш робочі.

На першій версії вона їде десь так:

На наступній отак.

Ах точно, забув розказати про трасу. Навідміну від наших друзів які використовують нікому непотрібну і загниваючу Unity для симуляції роботи, ми робили якісні, надійні і дуже замислуваті траси з шкільних парт, коробок і однієї шторинки від занавісок. Виглядало це приблизно ось так:

4.jpg6.jpg

Окремої уваги заслуговує вершина нашої інженерної думки, мегатраса біля кабінету воєнкома в універі:

1.jpg2.jpg

Ні, вона нікому не заважала працювати, адже збиратися почала після 23.00, коли в універі нідуші. І служила вірою і правдою до самої 4 ранку)

Ось так ми виглядали перед 4 ранку :D

3.jpg

Ну загалом, про підготовку уявлення ви отримали, перейдемо до змагань. Якщо коротко: «поїхали з тим що мали». Правда перед змаганнями ми переставили всю електроніку на іншу базу і машинка почала виглядати набагато впевненіше:

Насправді починалось все досить оптимістично, прибули в пункт призначення завчасно, розклали речі, оцінили трасу і відразу протестували як болід поводиться.

Ось тут нас качка і копнула. Навіть половину траси проїхати не вдається, машина поводиться дивно, не логічно. Перепробувавши декілька версій коду і перевіривши та замінивши всі з’єднання почали проводити дебаг прямо на трасі під час заїзду. Нажаль безпровідного давача в нас небуло і прийшлось бігати за машинкою з ноутбуком) І ось тут все стало зрозуміло. Стінки на трасі були оббиті вспіненим поліетиленом. А звукові хвилі відбиваються від нього лише під прямим кутом. При відхиленні в 10° ми не отримували відповіді що програмою вважалося як максилальа відстань до перешкоди.

Незважаючи на всі намагання, обманути фізику так і не вийшло. Авто навіть не пройшло кваліфікацію. Розбиті та демотивовані ми повертались додому. Нас тішило лише те, що наш викладач і наставник зі соєю командою виграв ті перегони.

Зараз, озброївшись добрим десятком синяків, досвідом який ми отримали на змаганнях, ми активно готуємось до наступних змагань, вчимо мат. частину і передивляємось відео. Думаємо, що в сонячній Одесі ми нарешті зможемо скласти конкуренцію іншим учасникам!

А на кінець, ось вам відео з того заходу:


Теги


Коментарі

Коментарі відсутні