Բովանդակություն:

Arduino Hot Wheels Speed Track Մաս 2 - Կոդ ՝ 5 քայլ
Arduino Hot Wheels Speed Track Մաս 2 - Կոդ ՝ 5 քայլ

Video: Arduino Hot Wheels Speed Track Մաս 2 - Կոդ ՝ 5 քայլ

Video: Arduino Hot Wheels Speed Track Մաս 2 - Կոդ ՝ 5 քայլ
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Նոյեմբեր
Anonim
Image
Image

Այս նախագծի առաջին մասում մենք կառուցեցինք նախատիպի սարքավորումները 2 տախտակների վրա:

Եվ այս մասում մենք կանդրադառնանք ծածկագրին, թե ինչպես է այն աշխատում, այնուհետև կփորձարկենք այն:

Համոզվեք, որ դիտեք վերը նշված տեսանյութը ՝ կոդի ամբողջական վերանայման և աշխատանքային ծածկագրի ցուցադրման համար:

Քայլ 1: Երկու վարպետ և ստրուկ նույն կոդում

Կոդը 2 մասից է, բայց նույն ֆայլի ներսում: Ես օգտագործում եմ #define և #ifdef որոշելու համար, թե որ ծածկագիրը կկազմվի կամ անտեսվի, որպեսզի կարողանամ առանձնացնել ցանկացած ծածկագիր, որը միայն MASTER breadboard- ի համար է, և ծածկագիրը ՝ SLAVE breadboard- ի համար:

Հիմնականում, եթե սահմանված MASTER- ը գտնվի, ապա ցանկացած ծածկագիր, որը գտնվում է MASTER ծածկագրի բլոկի ներսում, կկազմվի, և այդ բլոկից դուրս գտնվող ցանկացած ծածկագիր կհեռացվի կազմման ժամանակ:

#ifdef MASTER

// Վարպետի հատուկ կոդը այստեղ է

#այլ

#սահմանի ՍՐԱՎ

// Ստրուկի հատուկ կոդը այստեղ է

#էնդիֆ

Ես նաև օգտագործում եմ նույն տեխնիկան ՝ #SLAVE- ը սահմանելիս, երբ MASTER- ը կազմվում է, այնպես որ դուք միայն պետք է անհանգստանաք MASTER- ի սահմանման կամ այն, որ SLAVE- ը միացված չլինի:

Քայլ 2. BLUETOOTH մոդուլներ Խոսեք սերիական ընթերցման և գրման միջոցով

Այս նախագծում միայն SLAVE breadboard- ը խոսում է MASTER breadboard- ի հետ: ՎԱՐՊԵՏԸ երբեք հետ չի խոսում, նա միայն լսում է, այնուհետև գործում է մուտքագրված տվյալների վրա:

Մոդուլները խոսում և լսում են `օգտագործելով Arduino կոդավորման էկոհամակարգում կառուցված Serial դասը:

Bluetooth մոդուլները հաղորդակցվում են 38400 baud- ի վրա, այնպես որ կոդի երկու ուղիներն էլ նախաստորագրում են իրենց Սերիական հաղորդակցությունը ՝ օգտագործելով.

Serial.begin (38400);

Իսկ SLAVE- ն օգտագործում է.

Serial.write (տվյալները ՝ այստեղ);

ՎԱՐՊԵՏԻ հետ խոսելու համար, և ՎԱՐՊԵՏՆ օգտագործում է.

տվյալներ = Serial.read ();

Սերիալային հոսքին լսելու և դրա բովանդակությունը կարդալու և փոփոխականի ներսում պահելու համար:

Քայլ 3: Controlեղի վերահսկում

SLAVE- ը MASTER- ին ասում է, թե արդյոք նա մրցավազքում ավելի շատ է կամ պատրաստ ռեժիմում `իր միկրոհսկիչին միացված կանաչ կոճակի միջոցով: Պատրաստ ռեժիմում IR սենսորները ոչինչ չեն անում, և MASTER- ը էկրանին ցույց կտա 8 գծիկ ՝ նշելով, որ այն պատրաստի ռեժիմում է:

Երբ SLAVE- ն ասում է ՎԱՐՊԵՏԻՆ, որ մրցավազք է սկսվելու, SLAVE- ն սկսում է հարցում անցկացնել իր կողմում գտնվող IR սենսորների միջոցով (մրցուղու սկիզբը), որպեսզի մեքենաները տակից անցնեն:

Յուրաքանչյուր մեքենա անցնում է յուրաքանչյուր IR սենսորի տակ, այն ուղարկում է A (մեքենա 1) կամ B (մեքենա 2) ՎԱՐՊԵՏԻՆ:

Երբ MASTER- ը ստանում է A կամ B, այն հնարավորություն է տալիս ժամաչափը տվյալ մեքենայի համար, այնուհետև սպասում է, որ մեքենան ավարտի գծում անցնի համապատասխան IR սենսորի տակով:

Displayուցադրումը թարմացվում է յուրաքանչյուր 50ms- ով `յուրաքանչյուր մեքենայի ընթացիկ ժամանակը վայրկյաններով ցուցադրելու համար` 2 տասնորդական նիշով:

Երբ երկու մեքենաներն էլ դուրս գան վերջնագծին, ՎԱՐՊԵՏԸ որոշում է, թե որ մեքենան է եղել ամենաարագը և ցուցադրում է այդ ժամանակը էկրանին `նշելով հաղթողին:

Քայլ 4: Մնացած օրենսգիրքը

Մնացած ծածկագիրը պարզապես օգտակար կոդ է, որը կամ վերահսկում է 8 թվանշանի էկրանին տվյալների ցուցադրումը, կամ կարգավորում է կոճակը սեղմելու տրամաբանությունը և այլն:

Այս նախագծի ներածական հատվածի տեսանյութի վերջում ես ցույց եմ տալիս 2 տախտակների վրա աշխատող կոդի օրինակ, այնպես որ համոզվեք, որ դա ստուգեք:

Դուք կարող եք այս ծրագրի կոդը վերցնել իմ github ռեպոյից:

Քայլ 5: Ի՞նչ է հաջորդը:

Այսքանը առայժմ… 3 -րդ մասում մենք կանդրադառնանք բաղադրիչները հացաթղթից հանելու և ավելի մշտական բանի վրա… լարված մնացեք:

Հուսով եմ, որ դուք վայելում եք այս նախագիծը:

Հետևեք ինձ ՝

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Խորհուրդ ենք տալիս: