Съдържание:

Arduino Hot Wheels Speed Track Част #2 - Код: 5 стъпки
Arduino Hot Wheels Speed Track Част #2 - Код: 5 стъпки

Видео: Arduino Hot Wheels Speed Track Част #2 - Код: 5 стъпки

Видео: Arduino Hot Wheels Speed Track Част #2 - Код: 5 стъпки
Видео: HotWheels Speed Track - Part #2 - The code and Testing 2024, Ноември
Anonim
Image
Image

В първата част на този проект ние изградихме хардуера за прототипа на 2 платки.

В тази част ще разгледаме кода, как работи и след това ще го тестваме.

Не забравяйте да гледате видеото по -горе за целия преглед на кода и демонстрацията на работния код.

Стъпка 1: И MASTER, и SLAVE в същия код

Кодът е от 2 части, но в същия файл. Използвам #define и #ifdef, за да определя кой код ще бъде компилиран или игнориран, за да мога да отделя всеки код, който е само за мастерната платка и кода, който е само за SLAVE.

По принцип, ако се намери дефинираният MASTER, тогава всеки код, който се намира в кодовия блок MASTER, ще бъде компилиран и всеки код извън този блок ще бъде премахнат по време на компилация.

#ifdef MASTER

// Мастер специфичен код е тук

#иначе

#дефинирайте РАБ

// Тук е специфичен подчинен код

#endif

Аз също използвам същата техника за #дефиниране на SLAVE, когато MASTER се компилира, така че трябва само да се притеснявате за дефинирането на MASTER или да не активирате SLAVE за дефиниране.

Стъпка 2: Модулите BLUETOOTH говорят чрез последователно четене и запис

В този проект само платката SLAVE разговаря с основната платка MASTER. MASTER никога не отвръща, той само слуша и след това въздейства на входящите данни.

Модулите говорят и слушат, използвайки вградения сериен клас в екосистемата за кодиране Arduino.

Bluetooth модулите комуникират на 38400 бода, така че двата кодови пътя инициализират серийните си комуникации, използвайки:

Serial.begin (38400);

И SLAVE използва:

Serial.write (данните са тук);

За да говорите с MASTER и MASTER използва:

данни = Serial.read ();

За да слушате серийния поток и да четете съдържанието му и да го съхранявате в променлива.

Стъпка 3: Контролиране на расата

SLAVE казва на MASTER дали е в надпревара или готов режим чрез зеления бутон, свързан към неговия микроконтролер. В готов режим, IR сензорите не правят нищо и MASTER ще покаже 8 тирета на дисплея, за да покаже, че е в готов режим.

Когато SLAVE казва на MASTER, че състезанието ще започне, SLAVE започва да анкетира IR сензорите отстрани (началото на състезателната писта), за да преминават колите отдолу.

Тъй като всяка кола преминава под всеки IR сензор, тя изпраща A (кола 1) или B (кола 2) до MASTER.

Когато MASTER получи A или B, той активира таймера за тази конкретна кола и след това чака колата да премине под съответния IR сензор на финалната линия.

Дисплеят се актуализира на всеки 50 мс, за да покаже текущото време за всяка кола в секунди с 2 десетични знака.

След като и двата автомобила стигнат финалната линия, MASTER решава коя кола е най -бърза и мига този път на дисплея, за да посочи победителя.

Стъпка 4: Останалата част от кодекса

Останалата част от кода е просто помощен код, който или контролира показването на данни на 8 -цифрения дисплей, или управлява логиката за натискане на бутон и т.н.

В края на видеото в раздела за въвеждане на този проект показвам пример за кода, който се изпълнява на двете платки, така че не забравяйте да проверите това!

Можете да вземете кода за този проект от моето github репо.

Стъпка 5: Какво следва?

Това е всичко за сега … в част 3 ще разгледаме преместването на компонентите от макета и върху нещо по -постоянно … очаквайте!

Надявам се, че този проект ви харесва!

Следвайте ме на:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Препоръчано: