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

Cricket Scoreboard- ը ՝ օգտագործելով NodeMCU: 9 քայլ (նկարներով)
Cricket Scoreboard- ը ՝ օգտագործելով NodeMCU: 9 քայլ (նկարներով)

Video: Cricket Scoreboard- ը ՝ օգտագործելով NodeMCU: 9 քայլ (նկարներով)

Video: Cricket Scoreboard- ը ՝ օգտագործելով NodeMCU: 9 քայլ (նկարներով)
Video: How To - MadMax on Windows Chia Mining Pool Plotting Setup Guide + RAMDISK and RAID0 Benchmark 1.2.0 2024, Նոյեմբեր
Anonim
Image
Image
Ծրագիրը
Ծրագիրը

Բարեւ Ձեզ! Ես վերջերս ծանոթացա IoT (Իրերի ինտերնետ) աշխարհին, երբ հանդիպեցի այս ոլորտում ամենահայտնի սարքին ՝ ESP8266- ին: Ինձ ապշեցրեց հնարավորությունների վերջնական թիվը, որոնք բացվել էին այս փոքրիկ և էժան սարքի միջոցով: Քանի որ ես այս պահին նոր եմ, որոշեցի նախագիծ կազմել ՝ օգտագործելով այն և սովորել այդ ճանապարհին: Այսպիսով, ես սկսեցի ինտերնետում որոնել նախագծեր և գաղափարներ:

Ես հանդիպեցի մի զարմանահրաշ նախագծի, որը կոչվում էր Arduino Cricket Score Ticker, W. A. Smith. Այս նախագծում Arduino- ն Ethernet Shield- ի և SD քարտի հետ միասին օգտագործվում է Cricbuzz- ից ծղրիդների կենդանի միավորներ ցուցադրելու համար: Այս նախագիծը ինձ մտածեց:

Ես Հնդկաստանից եմ և Հնդկաստանը լսելուց հետո առաջին բանը, որ գալիս է մտքիս, ծղրիդն է: Այստեղ ծղրիդը կրոն է: Երբեմն դժվար է դառնում նստել հեռուստացույցի առջև ՝ ամբողջ հանդիպմանը հետևելու համար: Այսպիսով, ինչու՞ չպատրաստել մի բան, որը դիտումը դարձնում է հեշտ, անլար և շարժական: Նվիրված փոքրիկ սարք, որը ցույց է տալիս բավարար տեղեկատվություն ՝ ձեզ միայն մի հայացքով պահելու համար:

Crղրիդի երկրպագու չե՞ք: Ոչ մի խնդիր! Կոդը պարունակում է XML վերլուծիչ, որը կարող է օգտագործվել ցանկացած XML ֆայլից տվյալներ ստանալու համար: Տվյալները ստանալու համար պարզապես օգտագործեք ճիշտ գործառույթները:

Քայլ 1: Planրագիրը

Ծրագիրը
Ծրագիրը

Theրագիրը նախատեսում է օգտագործել NodeMCU զարգացման խորհուրդը (ESP-12E մոդուլով) ինտերնետ մուտք գործելու և Cricbuzz- ից պահանջելու XML ծածկագիրը, որը պարունակում է ընթացիկ/առաջիկա հանդիպումների մասին ամբողջ տեղեկատվությունը: Այս կոդը պահվում է SD քարտի վրա որպես.xml ֆայլ: Այնուհետև ֆայլը կարդացվում է SD քարտից ՝ XML ծածկագրից պահանջվող տվյալները վերլուծելու համար: Ես կօգտագործեմ W. A. Smith- ի ծածկագիրը ՝ տեղեկատվությունը վերլուծելու համար: Նրա ջանքերի շնորհիվ: Ստուգեք նրա նախագիծը, եթե ցանկանում եք նույնը կատարել Arduino- ի և Ethernet Shield- ի միջոցով:

Իմ գաղափարն է այն հնարավորինս փոքրացնել, կառուցել անհատական PCB և պատյան դրա համար: Առայժմ եկեք նախատիպ պատրաստենք: Բայց նախ, եկեք ծանոթանանք այս նախագծում օգտագործվող բաղադրիչներին:

Եկեք սկսենք

Քայլ 2: OLED էկրան

OLED էկրան
OLED էկրան
OLED էկրան
OLED էկրան

Ես որոշեցի գնալ OLED էկրանով, քանի որ այն փոքր է, և դրանք մատչելի են էժան գնով: Ես օգտագործում եմ 0.96 դյույմանոց էկրան, որը բավարար կլինի համընկնումների մասին տեղեկությունները ցուցադրելու համար: Կարող եք օգտագործել ցանկացած չափի էկրան:

Էկրանը, որը ես օգտագործում եմ, մոնոխրոմ է ՝ SSD1306 վարորդով և I2C (2-լար) ինտերֆեյսով: Հասանելի են նաև ցուցադրման SPI տարբերակները: Դրանք վարելը հեշտ գործ է: Ներբեռնեք SSD1306 և GFX գրադարանները, որոնք անհրաժեշտ են ցուցադրումները գործարկելու համար: Շնորհակալություն Ադաֆրուտին այս գրադարանները գրելու համար:

Կապերը շատ պարզ են:

  • GND- ից GND
  • ԵԿՀ -ից մինչև 3.3 Վ
  • SCL- ից D1
  • SDA- ից D2:

Քայլ 3: SD քարտ և ադապտեր

SD քարտ և ադապտեր
SD քարտ և ադապտեր

SD քարտը պահում է XML ֆայլը Cricbuzz- ից մինչև ամբողջ տեղեկատվության վերլուծությունը: Անհրաժեշտ տեղեկատվությունը ցուցադրելուց հետո ֆայլը ջնջվում է: 10 - 20 կԲ XML ֆայլ պահելու համար SD քարտի օգտագործումը մի փոքր չափազանցնում է, բայց դա շատ ավելի հեշտ և հեշտ է դարձնում վերլուծությունը:

Կարող է օգտագործվել ցանկացած հիշողության քարտ: Ես ընտրել եմ միկրո SD քարտը դրա փոքր ձևի գործոնի համար: Դուք կարող եք ուղղակիորեն միացնել մետաղալարերը SD քարտին, սակայն ճեղքման տախտակի օգտագործումը հեշտացնում է աշխատանքը: Պետք է նշել, որ բոլոր SD քարտերը նախատեսված են 3.3 Վ լարման վրա աշխատելու համար: Սա նշանակում է, որ ոչ միայն այն պետք է սնուցվի 3.3 Վ -ի միջոցով, այլ նաև միկրոկառավարիչի և SD քարտի միջև հաղորդակցությունը պետք է լինի 3.3 Վ տրամաբանական մակարդակ: 3.3 Վ -ից բարձր լարումը կսպանի: Մենք դրա մասին չենք անհանգստանա NodeMCU- ի մասով, քանի որ NodeMCU- ն ինքնին աշխատում է 3.3 Վ լարման վրա, ինչը լավ է: Եթե պլանավորում եք օգտագործել 5V տրամաբանական մակարդակով որևէ այլ միկրոկառավարիչ, համոզվեք, որ ձեր ջարդման տախտակին տեղադրված է մակարդակի փոխարկիչ (ինչպես ցույց է տրված նկարում): Այն հիմնականում փոխակերպում կամ «տեղափոխում» է 5 Վ -ը միկրոկոնտրոլերից SD քարտի համար հարմար 3.3V: 3.3V- ի հետ միասին մակարդակի փոխարկիչի օգտագործումը (ինչպես ես արեցի) չի ազդում դրա աշխատանքի վրա:

SD քարտը օգտագործում է SPI ինտերֆեյսը հաղորդակցության համար: CS կամ Chip Select քորոցը կարող է միացված լինել GPIO- ի ցանկացած կապում: Ես ընտրեցի GPIO15 (D8): Պարզապես անհրաժեշտ փոփոխություններ կատարեք ծածկագրում, եթե GPIO15- ից բացի այլ քորոց եք օգտագործել

  • SCK- ից D5
  • MISO- ից D6
  • MOSI- ից D7
  • CS- ից D8
  • ԵԿՀ -ից մինչև 3.3 Վ
  • GND- ից GND

Ձևաչափեք ձեր SD քարտը

Գրադարանը, որը մենք օգտագործելու ենք, աջակցում է FAT16 կամ FAT32 ֆայլային համակարգերին: Համոզվեք, որ SD քարտը ձևաչափում եք ճիշտ ձևաչափի:

Քայլ 4: Ստեղնաշարի պատրաստում

Ստեղնաշարի պատրաստում
Ստեղնաշարի պատրաստում
Ստեղնաշարի պատրաստում
Ստեղնաշարի պատրաստում
Ստեղնաշարի պատրաստում
Ստեղնաշարի պատրաստում

Ես ցանկանում եմ նախագիծը պահել հնարավորինս փոքր: Այսպիսով, ես որոշեցի առանձին տախտակ պատրաստել ստեղնաշարի համար և հետագայում այն տեղադրել հիմնական տախտակի վերևում: Սա որոշակի տարածք կխնայի:

Կարելի է գնել պատրաստի առանցքային մատրիցա, բայց ես ունեի մոտակայքում դրված կոճակներ: Բացի այդ, ես ուզում էի այն հնարավորինս փոքր դարձնել: Տողերի և սյուների միացման տիպիկ դասավորությանը կպահանջվի ընդհանուր առմամբ 6 GPIO կապում ՝ 3 x 3 մատրիցայի համար: Սա բավականին շատ է ՝ հաշվի առնելով, որ OLED էկրանն ու SD քարտը նույնպես միացված կլինեն:

Երբ կասկածի տակ եք, դուրս հանեք Google- ից: Դա այն է, ինչ ես արեցի և գտա մի միջոց, որին կպահանջվի ընդամենը 1 կապ ՝ ամբողջ մատրիցան վերահսկելու համար: Սա հնարավոր է դառնում օգտագործելով Լարման բաժանարար մատրիցը: Ռեզիստորները միացված են յուրաքանչյուր տողի և սյունակի միջև: Երբ ստեղնը սեղմվում է, ռեզիստորների որոշակի համադրություն միանում է իրար հաջորդաբար, ինչը ստեղծում է լարման բաժանարար: Տե՛ս սխեմայի սխեման: Տարբեր լարումը կկարդա միկրոկոնտրոլերը: Յուրաքանչյուր ստեղն արտադրում է տարբեր լարում, և դրանով իսկ հեշտությամբ կարելի է պարզել, թե որ բանալին է սեղմվել `կարդալով մատրիցի ելքային լարումը: Քանի որ մենք ցանկանում ենք կարդալ լարման տարբեր մակարդակներ և այժմ պարզապես բարձր և ցածր, մեզ անհրաժեշտ կլինի անալոգային քորոց: Բարեբախտաբար, NodeMCU- ում կա մեկ անալոգային պին, որը պիտակավորված է որպես A0: Խնդիրը լուծված է:

Եթե ցանկանում եք մատրիցա գնել, ստուգեք գծապատկերում ներկայացված ներքին կապերը: Կարող է օգտագործվել ցանկացած չափսերի մատրիցա: Համոզվեք, որ տողերի միջև օգտագործում եք 2.2kΩ դիմադրություն, իսկ սյուների միջև `680Ω:

Միացնելով կոճակները

1 և 2 քորոցները ներքին կապ ունեն: Նույնը 3 և 4 կապում, երբ կոճակը սեղմված է, բոլոր կապումներն իրար միացված են: Անջատիչներին մի տախտակի վրա անջատիչների միացման մասին պատկերացում կազմելու համար ուղղեք նկարը:

Ես միացրել եմ 3-փին արական վերնագիր, որպեսզի այն հետագայում միացվի գլխավոր տախտակին:

Քայլ 5: Ամեն ինչ միասին հավաքելը

Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը

Կարող եք պլանավորել բաղադրիչները տեղադրել այնտեղ, որտեղ ցանկանում եք: Դրա վրա ոչ մի սահմանափակում չկա: Ես ձեզ ցույց կտամ, թե ինչպես դա արեցի այն կոմպակտ դարձնելու համար, քանի որ ցանկանում էի մի բան, որը կհամապատասխանի ափի մեջ: Այն կարող է մի փոքր խառնաշփոթ լինել, այնպես որ փորձեք իմ ճանապարհը, եթե ձեզ հարմար է զոդումը: Ես որոշեցի տախտակի երկու կողմերը համալրել այնպես, ինչպես երկշերտ PCB- ն կլիներ: NodeMCU և SD քարտերի բեկման տախտակ մի կողմից, իսկ OLED և ստեղնաշար ՝ մյուս կողմից:

SD քարտի ճեղքումը պարզապես տեղավորվում է երկու կին վերնագրերի միջև, որոնք նախատեսված են NodeMCU- ի համար: Ես ապամոնտաժեցի անկյունագծով արական վերնագրերը, որոնց հետ գալիս էր ճեղքման տախտակը, պտտեցի այն և նորից զոդեցի այնպես, որ կապումներն ուղղահայաց իջնեն ներքև, ինչպես ցույց է տրված նկարում: SD քարտի բնիկ մուտք գործելը դառնում է ավելի հեշտ:

Ես ճկեցի 4-փեղանի կին գլխի կապումներն աջ անկյան տակ և այն կպցրեցի շերտի տախտակի պղնձե կողմում, ինչպես ցույց է տրված նկարում:

Կարճ միացումներից խուսափելու համար ծածկեք զոդման հանգույցները ստեղնաշարի տակ: Ավելացրեք կոշտ փրփուրի բարակ կտոր (մոտ 5 մմ հաստությամբ) ստեղնաշարի և մայր տախտակի միջև `լրացուցիչ պաշտպանության և կոշտության համար: Ի վերջո, միացրեք ստեղնաշարը, որը մենք պատրաստել էինք ավելի վաղ: Aոդման եզր ունեցող ծայրը, անշուշտ, կդյուրացնի ձեր աշխատանքը: Դա խառնաշփոթ աշխատանք էր ՝ հնարավորինս կոմպակտ դարձնելով, բայց ի վերջո հաջողվեց դա անել:

Սարքը միացնելուց առաջ կրկնակի ստուգեք ձեր բոլոր կապերը ցանկացած կարճ միացման համար:

Քայլ 6: Ստեղնաշարի տեղադրում

Ստեղնաշարի տեղադրում
Ստեղնաշարի տեղադրում

Բոլոր կապերը ստուգելուց հետո դուք պատրաստ եք առաջին անգամ միացնել ձեր սարքը: Մատներս խաչած Կախարդական ծուխ չկա՞: Շնորհավոր!

Այժմ մենք պատրաստ ենք կարգավորել ստեղնաշարը: Հիշեցրեք ստեղնաշարի աշխատանքը: Յուրաքանչյուր ստեղն կտա տարբեր լարում, որը սնվում է NodeMCU- ի անալոգային քորոցով: ESP-12E- ն ունի 10-բիթանոց անալոգային թվային փոխարկիչ (ADC): 2 -ը, որը բարձրացվել է 10 -ի, կտա 1024. Սա նշանակում է, որ մենք 0 -ից 1024 -ի սահմանում կստանանք յուրաքանչյուր սեղմված բանալին: Եկեք տեսնենք, թե ինչ ընթերցումներ ենք ստանում: Բայց նախ, մենք պետք է գրենք մի փոքր ծրագիր `այդ արժեքները ստանալու համար: Բացեք Arduino IDE- ն, պատճենեք տեղադրեք հետևյալ ծածկագիրը և վերբեռնեք այն NodeMCU- ում:

int ստեղնախումբ = A0;

void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serial.println (r); }

  • Բացեք Սերիայի մոնիտորը: Baud փոխարժեքը սահմանեք 115200:
  • Այժմ սեղմեք ցանկացած կոճակ: Դուք պետք է անընդհատ կարդալ սերիական մոնիտորի վրա: Փոքր տատանումները նորմալ են: Դրանք կհոգան հիմնական ծածկագրում: Նույնը արեք յուրաքանչյուր բանալու համար:
  • Յուրաքանչյուր բանալին պետք է ունենա տարբեր ընթերցում:
  • Նշեք բոլոր արժեքները: Նրանք մեզ ավելի ուշ պետք կգան:

Քայլ 7: Եկեք ծածկագրենք

Եկեք ծածկագրենք
Եկեք ծածկագրենք
Եկեք ծածկագրենք
Եկեք ծածկագրենք
Եկեք ծածկագրենք
Եկեք ծածկագրենք

Ներբեռնեք ստորև ներկայացված Scoreboard.ino ֆայլը ձեր համակարգչում և բացեք այն Arduino IDE- ի միջոցով:

Վերբեռնելուց առաջ

1) Սահմանեք խաղատախտակի թարմացման ժամանակը: Օրինակ ՝ 15 լ 15 վայրկյանի համար:

2) Մուտքագրեք երթուղիչի SSID- ը և գաղտնաբառը, որպեսզի ցանկանաք միանալ:

3) Կատարեք անհրաժեշտ փոփոխություններ, եթե ընտրեցիք միացնել SD քարտի քորոցը GPIO15- ից տարբերվող քորոցին:

4) Հիշու՞մ եք այն արժեքները, որոնք մենք նշել ենք բոլոր բանալիների համար: Յուրաքանչյուր արժեքի համար մենք պետք է նշանակենք հիմնական համար: Ես ձեզ պատմել էի նաև ընթերցման տատանումների մասին: Դա տեղի է ունենում այն պատճառով, որ անջատիչ կոնտակտները կատարյալ չեն: Երկարաժամկետ հեռանկարում այս արժեքը կարող է շեղվել ընթացիկ արժեքից `շփումների ծերացման պատճառով, ինչը լրացուցիչ դիմադրություն է հաղորդում շղթայում` դրանով իսկ փոխելով լարումը: Մենք կարող ենք այս խնդիրը լուծել օրենսգրքում:

Մենք կավելացնենք 5 -ի մարժայով արժեքի վերին և ստորին սահման: Օրինակ, ես ստացա 617 -ի ընթերցում 1 -ին բանալու համար:

  • Դրանից հանեք 5 -ը: 617 - 5 = 612. Սա ստորին սահմանն է:
  • Այժմ դրան ավելացրեք 5 -ը: 617 + 5 = 622. Սա վերին սահմանն է:
  • Ոլորեք մինչև ծածկագրի վերջը: Լրացրեք ծածկագրի երկու արժեքների համար նախատեսված տարածությունը, ինչպես ցույց է տրված նկարում:
  • Դա արեք յուրաքանչյուր 9 արժեքի դիմաց:

եթե (r> 612 && r <622) {keyNumber = 1; }

Ինչ է սա նշանակում?

ԵԹԵ ընթերցումը (r) մեծ է 612 -ից և փոքր է 622 -ից, ապա սեղմվում է 1 ստեղնը: 612 -ից 622 -ի միջև ընկած ցանկացած արժեք կդիտվի որպես առանցքային 1. Սա լուծում է ընթերցման տատանման խնդիրը:

Քայլ 8: Գործի կառուցում

Գործի կառուցում
Գործի կառուցում
Գործի կառուցում
Գործի կառուցում
Գործի կառուցում
Գործի կառուցում
Գործի կառուցում
Գործի կառուցում

Սա ամբողջովին ընտրովի չէ: Ես կարծում էի, որ նախագիծը կոկիկ և ամբողջական տեսք կունենա ՝ շուրջը պատյանով: Այս աշխատանքի համար համապատասխան գործիքներ չունենալով, դա ինձ համար հսկայական խնդիր կլիներ: Գործը կառուցված է ակրիլով:

Պատրաստեց կտորները սոսնձման համար ՝ եզրերը հարթելով հղկաթղթի միջոցով: Բոլոր կտորները միասին միացնելու համար ես օգտագործեցի Ֆևի Կվիկը (գերծանրքաշային սոսինձ): Սուպեր սոսինձը սպիտակ մնացորդ է թողնում բուժվելուց հետո: Այսպիսով, կիրառեք այն միայն հոդերի միջև: Սուպեր սոսինձով աշխատելիս պետք է արագ և ճշգրիտ լինել, քանի որ այն արագորեն ամրանում է: Ակրիլային ցեմենտը լավագույնս համապատասխանում է այս աշխատանքին:

Փոքր բացում կատարեց ՝ USB պորտին մուտք գործելու համար ՝ օգտագործելով ֆայլ: Այն պետք է բավականաչափ մեծ լինի USB լարը տեղադրելու համար:

Ստեղծեց 3x3 ցանց ՝ առջևի կափարիչի վրա, կոճակները սեղմելու համար: Սա կդարձնի սեղմել կոճակները դժվար հասանելի: Այս խնդիրը լուծելու համար ես կտրեցի քառակուսի կտորներ յուրաքանչյուր բանալու համար, որպեսզի նրանց կոճակները այժմ երկարացվեն մինչև մակերեսը:

Այսքան մանրացնելուց, կտրելուց, ամրացնելուց և կարգավորելուց հետո վերջապես արվեց:

Քայլ 9: Funվարճացեք:

Զվարճանալ!
Զվարճանալ!

Ի վերջո, ամբողջ ծանր աշխատանքը կատարված է: Միացրեք ձեր մինի ցուցատախտակը և եղեք արդիացված խաղի հետ:

Միացումից հետո այն նախ միանում է մուտքի կետին: Նախնականացնում է SD քարտը: Եթե SD քարտը նախաստորագրված չէ, այն ցույց կտա սխալ:

Բոլոր հանդիպումների ցանկը կցուցադրվի խաղի համարի հետ միասին:

Ընտրեք համընկնումի համարը `օգտագործելով ստեղնաշարը:

Հաշիվները կցուցադրվեն: Կարող եք հարմարեցնել այն, ինչ ցանկանում եք տեսնել էկրանին: Ես շատ չէի խորանա ծածկագիրը բացատրելու մեջ: Դուք կարող եք մանրամասն բացատրություն գտնել այստեղ, թե ինչպես է աշխատում վերլուծությունը:

Մենյու վերադառնալու համար պահեք BACK (Բանալին 8) կոճակը, մինչև «Միավորների բեռնումը …» էջը ցուցադրվի:

Ապագա պլաններ

  • Նախագծեք անհատական PCB ESP8266 12-E մոդուլով:
  • Ավելացրեք վերալիցքավորվող մարտկոց:
  • Բարելավեք կոդը նոր հնարավորություններով:

Հուսով եմ, որ ձեզ դուր եկավ կառուցվածքը: Պատրաստեք այն ինքներդ և զվարճացեք: Միշտ կա բարելավման և սովորելու շատ տեղ: Եկեք ձեր սեփական գաղափարներով: Ազատորեն մեկնաբանեք կառուցվածքի վերաբերյալ ցանկացած առաջարկ: Շնորհակալ եմ, որ մինչև վերջ մնացիք:

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