Съдържание:
- Стъпка 1: И MASTER, и SLAVE в същия код
- Стъпка 2: Модулите BLUETOOTH говорят чрез последователно четене и запис
- Стъпка 3: Контролиране на расата
- Стъпка 4: Останалата част от кодекса
- Стъпка 5: Какво следва?
Видео: Arduino Hot Wheels Speed Track Част #2 - Код: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
В първата част на този проект ние изградихме хардуера за прототипа на 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/
Препоръчано:
Лесен BLE с много ниска мощност в Arduino, част 2 - Монитор за температура/влажност - Rev 3: 7 стъпки
Лесен BLE с много ниска мощност в Arduino, част 2 - Монитор за температура/влажност - Ред. 3: Актуализация: 23 ноември 2020 г. - Първа подмяна на 2 x AAA батерии от 15 януари 2019 г., т.е. 22 месеца за 2xAAA алкални Актуализация: 7 април 2019 г. - Ред. 3 на lp_BLE_TempHumidity, добавя графики за дата/час, използвайки pfodApp V3.0.362+и автоматично регулиране, когато
Arduino-tomation Част 5: LE TUNNEL DE CHAUFFE: 4 стъпки
Arduino-tomation Част 5: LE TUNNEL DE CHAUFFE: Преди два месеца реших да преустроя малка забравена система, съхранявана във военния дом на мястото, в което работя. Тази система е направена за загряване и затопляне на електронни устройства или каквото и да е, поставено на специална висока температура устойте на конвейерната лента. Затова създадох
Arduino-tomation Част 4: TRI DE BRIQUE: 5 стъпки
Arduino-tomation Част 4: TRI DE BRIQUE: В тази инструкция ще ви разкажа за друга машина, модернизирана и контролирана от клонираща дъска на Arduino, направена от Atmega1284p. Тази платка може да поддържа Ethernet щит и може да бъде контролирана от SCADA (AdvancedHMI, Unigo) или индустриален
Arduino LTC6804 BMS - Част 2: Балансова дъска: 5 стъпки
Arduino LTC6804 BMS - Част 2: Балансираща платка: Част 1 е тук Системата за управление на батерията (BMS) включва функционалност за усещане на важни параметри на батерията, включително напрежение на клетката, ток на батерията, температура на клетката и т.н. Ако някое от тях е извън предварително определен диапазон, опаковката може да бъде дискотека
Скоростна писта на Arduino Hot Wheels - Част 1 - Прототип: 4 стъпки
Скоростна писта на Arduino Hot Wheels - Част 1 - Прототип: Не бива да е изненада, че синът ми обича горещите колела и състезава колите си из цялата къща! Едно от любимите му неща е да се състезава с всичките си коли (вече над 100), за да определи коя е най -бързата кола. В момента той прави всичко на око и