Էլեկտրոնային շախմատային տախտակի 4x4 ցուցադրում/ Arduino Mega + RFID Reader + Hall-effect սենսորներով. 7 քայլ
Էլեկտրոնային շախմատային տախտակի 4x4 ցուցադրում/ Arduino Mega + RFID Reader + Hall-effect սենսորներով. 7 քայլ
Anonim
Էլեկտրոնային շախմատային տախտակի 4x4 ցուցադրություն/ Arduino Mega + RFID Reader + Hall-effect սենսորներով
Էլեկտրոնային շախմատային տախտակի 4x4 ցուցադրություն/ Arduino Mega + RFID Reader + Hall-effect սենսորներով

Բարև պատրաստողներ, Ես Թահիր Միրիևն եմ, Մերձավոր Արևելքի տեխնիկական համալսարանի 2018 թ. Շրջանավարտ, Անկարա/ Թուրքիա: Ես մասնագիտացել եմ Կիրառական մաթեմատիկա առարկայի մեջ, բայց ես միշտ սիրում էի իրեր պատրաստել, հատկապես, երբ այն ներառում էր էլեկտրոնիկայի, դիզայնի և ծրագրավորման ձեռքի աշխատանք: Նախատիպավորման յուրահատուկ դասընթացի շնորհիվ, որն առաջարկվել է մեր արդյունաբերական դիզայնի բաժնում, ես հնարավորություն ունեցա իսկապես հետաքրքիր բան պատրաստել: Նախագիծը կարող է դիտվել որպես Projectամկետային ծրագիր, որը տևել է մի ամբողջ կիսամյակ (4 ամիս): Ուսանողներին հանձնարարվեց խնդիր գտնել արդեն գոյություն ունեցող ապրանքների/ցուցադրությունների նախագծման ստեղծագործական մոտեցում և իրականացնել իրենց գաղափարները Arduino միկրոկոնտրոլերների և սենսորների միջոցով: Ես մտածում էի շախմատի մասին, և հաջող նախագծերի վերաբերյալ որոշ հետազոտություններ կատարելուց հետո նկատեցի, որ նախորդ նախագծերում ստեղծողները հիմնականում օգտագործում էին պատրաստի շախմատային շարժիչներ (որտեղ յուրաքանչյուր գործչի բոլոր շարժումները ծրագրված էին առանցքում), ինչպես նաև Raspberry Pi- ն, որոշ MUX 'e, LED- ների և եղեգի անջատիչներ: Իմ նախագծում, չնայած, ես որոշեցի ազատվել շախմատային շարժիչի առումով ցանկացած արտաքին ծրագրակազմից և ստեղծագործական լուծում գտնել Նկարի ճանաչման խնդրին `օգտագործելով RFID ընթերցող, Hall-effect սենսորներ և Arduino Mega:

Քայլ 1. Ի՞նչ է գործչի ճանաչման խնդիրը և ինչպես եմ այն լուծել

Ի՞նչ է գործչի ճանաչման խնդիրը և ինչպես եմ այն լուծել
Ի՞նչ է գործչի ճանաչման խնդիրը և ինչպես եմ այն լուծել

Պարզ ասած ՝ ենթադրենք, որ դուք ունեք «ուղեղ» = միկրոկառավարիչով շախմատային տախտակ, և դուք պետք է ստիպեք ձեր տախտակին հասկանալ, թե որ ֆիգուրն եք պահել ձեր ձեռքում և որտեղ եք տեղադրել այն: Սա Գծապատկերների ճանաչման խնդիրն է: Այս խնդրի լուծումը չնչին է, երբ դու ունես շախմատային շարժիչ, որի բոլոր խաղաքարերը կանգնած են տախտակի վրա իրենց սկզբնական դիրքերի վրա: Նախքան բացատրելը, թե ինչու է այդպես, թույլ տվեք մի քանի նկատառում անել:

Նրանց համար, ովքեր ոգևորված են, թե ինչպես են այստեղ աշխատում, ես պետք է պարզաբանում տամ, թե ինչու են մեզ պետք եղեգնուտային անջատիչներ (կամ իմ դեպքում ես օգտագործել եմ Hall-effect սենսորներ). սալիկի վրա գտնվող քառակուսի (ենթադրելով, որ յուրաքանչյուր քառակուսի տակ կա եղեգի անջատիչ) սենսորից վերև մագնիսական դաշտի առկայության/բացակայության պատճառով կարող եք ձեր վերահսկիչին հասկացնել ՝ արդյոք հրապարակում կանգնած կտոր չկա/չկա:. Այնուամենայնիվ, այն դեռ ոչինչ չի ասում միկրոկառավարիչին, թե կոնկրետ որ կտորն է կանգնած հրապարակում: Այն միայն ասում է, որ քառակուսու վրա կտոր կա/չկա: Այս պահին մենք դեմ առ դեմ կանգնած ենք Գծապատկեր ճանաչման խնդրին, որը կարող է լուծվել շախմատային շարժիչի միջոցով, երբ բոլոր խաղաքարերը տեղադրված են իրենց սկզբնական դիրքերում, երբ շախմատային խաղը սկսվում է: Այս կերպ միկրոկառավարիչը «գիտի», թե որտեղ է գտնվում յուրաքանչյուր կտոր հենց սկզբից ՝ բոլոր հասցեները ամրագրված հիշողության մեջ: Այնուամենայնիվ, սա մեզ հսկայական սահմանափակում է բերում. Դուք չեք կարող ընտրել, ասենք, ցանկացած քանակի կտոր և դրանք պատահաբար տեղադրել տախտակի վրա և սկսել խաղի վերլուծությունը: Միշտ պետք է սկսել սկզբից, բոլոր կտորները պետք է ի սկզբանե լինեն տախտակի վրա, քանի որ սա միկրոկոնտրոլերի միակ միջոցն է ՝ հետևելու դրանց գտնվելու վայրին, երբ կտորը բարձրացնում և դնում ես ինչ -որ այլ քառակուսու վրա: Ըստ էության, սա այն խնդիրն էր, որը ես նկատեցի և որոշեցի աշխատել:

Իմ լուծումը բավականին պարզ էր, չնայած ստեղծագործական: Ես տեղադրեցի RFID ընթերցիչ տախտակի առջևի մասում: Միևնույն ժամանակ, ես ոչ միայն մագնիս եմ ամրացրել կտորների տակ, այլև RFID պիտակ, որի յուրաքանչյուր կտոր ունի յուրահատուկ ID: Հետևաբար, նախքան որևէ կերպար տեղադրելը ցանկացած ցանկալի քառակուսիի վրա, նախ կարող եք կտորը պահել RFID ընթերցողին մոտ և թողնել, որ այն կարդա ID- ն, նույնականացնի կտորը, պահի այն հիշողության մեջ, այնուհետև կարող եք տեղադրել այն, որտեղ ցանկանում եք: Բացի այդ, եղեգի անջատիչների օգտագործման փոխարեն, սխեմայի դիզայնը պարզեցնելու համար, ես օգտագործեցի դահլիճի էֆեկտների սենսորներ, որոնք աշխատում են նմանապես ՝ 0 կամ 1-ը միկրոկոնտրոլերին որպես թվային տվյալներ ուղարկելու միակ տարբերությամբ, ինչը նշանակում է «կա» կամ «չկա» համապատասխանաբար հրապարակի վրա որևէ կտոր: Ես ավելացրի նաև LED- ները (ցավոք, ոչ միևնույն գույնի, չունեին), այնպես որ կտորը բարձրացնելիս բոլոր քառակուսի տեղերը, որտեղ կարելի էր տեղադրել բարձրացված կտորը, լուսավորվեն: Մտածեք այն որպես կրթական պրակտիկա շախմատ սովորողների համար:)

Ի վերջո, ես կցանկանայի նշել, որ չնայած այն բանին, որ ես օգտագործել եմ մի քանի տեխնիկա, նախագիծը մնում է պարզ և հասկանալի, ոչ խորապես մշակված կամ չափազանց բարդ: Ես չունեի բավարար ժամանակ 8x8 շախմատային տախտակի հետ աշխատելու համար (նաև այն պատճառով, որ Թուրքիայում 64 դահլիճի էֆեկտիվ սենսորներ ծախսատար են, ես ծածկեցի նախագծի հետ կապված բոլոր ծախսերը), այդ իսկ պատճառով ես կատարեցի 4x4 ցուցադրական տարբերակ ՝ փորձարկված երկու կտորով ՝ գրավ և գրավ Թագուհի: Շախմատային շարժիչ օգտագործելու փոխարեն, ես գրեցի Arduino- ի աղբյուրի կոդը, որը ստեղծում է այն ամենը, ինչ կտեսնեք ստորև ներկայացված տեսանյութում:

Քայլ 2: Ինչպես են գործերն աշխատում

Image
Image

Նախքան նախագծի իրականացման փուլային բացատրությանը անցնելը, կարծում եմ, որ ավելի լավ կլինի դիտել պատկերազարդ տեսանյութ և ինչ-որ ինտուիտիվ պատկերացում կազմել, թե ինչի մասին եմ խոսում:

Նշում #1. Կարմիր LED- ներից մեկը (առաջինը շարքում/ ձախից աջ) այրվել է, հոգ չէ:

Նշում #2. Չնայած լայնորեն կիրառվող, իմ փորձից կարող եմ ասել, որ RFID տեխնոլոգիան ամենալավ գաղափարը չէ DIY ծրագրերում օգտագործելու համար (իհարկե, եթե ունեք այլընտրանքներ): Մինչև ամեն ինչ աշխատելը, ես բազմաթիվ փորձություններ արեցի ՝ շախմատի կտորները ընթերցողին մոտ տեղադրելով և սպասելով, մինչև այն ճիշտ կարդա ID- ն: Դրա համար պետք է ստեղծվի սերիական նավահանգիստ, որովհետև այն, թե ինչպես է RFID ընթերցողը կարդում ID- ն, պարզապես գլխացավանք է: Պետք է ինքնուրույն փորձել հարցը հասկանալու համար: Եթե ավելի շատ օգնության կարիք ունեք, խնդրում եմ ինձ ուղարկել նամակ ([email protected]) կամ ավելացնել skype- ով (tahir.miriyev9r1), որպեսզի մենք կարողանանք զրույց կազմակերպել և ամեն ինչ մանրամասն քննարկել, ես ամեն ինչ մանրամասն կբացատրեմ:

Քայլ 3: Գործիքներ և բաղադրիչներ

Գործիքներ և բաղադրիչներ
Գործիքներ և բաղադրիչներ
Գործիքներ և բաղադրիչներ
Գործիքներ և բաղադրիչներ
Գործիքներ և բաղադրիչներ
Գործիքներ և բաղադրիչներ

Ահա այն բոլոր գործիքների ցանկը, որոնք ես օգտագործել եմ նախագծի համար. Էլեկտրոնային բաղադրիչներ.

  • Հացաթուղթ (x1)
  • Omnidirectional A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Hall ազդեցության տվիչներ (x16)
  • Հիմնական 5 մմ LED (x16)
  • Jumper լարերը
  • 125 կՀց RFID ընթերցող և ալեհավաք (x1)
  • Arduino Mega (x1)
  • RFID 3M պիտակներ (x2)

Այլ նյութեր

  • Պլեքսիգլաս
  • Փայլուն թուղթ
  • կարճ տախտակներ (փայտե)
  • Ակրիլային ներկ (մուգ կանաչ և կրեմ) x2
  • Նիհար ստվարաթուղթ
  • 10 մմ կլոր մագնիսներ (x2)
  • Գրավատուն և թագուհու կտորներ
  • Ironոդման երկաթ և զոդման նյութեր

Քայլ 4: Սխեմատիկա (փխրունացում)

Սխեմատիկա (ֆրիտզինգ)
Սխեմատիկա (ֆրիտզինգ)

Սխեմաները մի փոքր բարդ են, ես գիտեմ, բայց գաղափարը պետք է հստակ լինի: Առաջին անգամն էր, որ ես օգտագործում էի Fritzing- ը (ի դեպ, խիստ խորհուրդ է տրվում), հավանաբար կապերը կարող էին ավելի ճշգրիտ կազմվել: Ամեն դեպքում, ես նշեցի ամեն ինչ սխեմատիկայի ներսում: Նշում. Fritzing- ի տվյալների բազայում բաղադրիչների շարքում ես չկարողացա գտնել RDIF Reader- ի ճշգրիտ մոդելը: Իմ օգտագործած մոդելը 125Khz RFID մոդուլ է ՝ UART: Youtube- ում կարող եք գտնել ձեռնարկներ այն մասին, թե ինչպես կարգավորել այս մոդուլը Arduino- ով:

Քայլ 5: Գործընթաց

Ընթացք
Ընթացք

Timeամանակն է բացատրել, թե ինչպես են ստեղծվել իրերը: Խնդրում ենք հետևել քայլ առ քայլ նկարագրությանը.

1. Վերցրեք 21x21 սմ ստվարաթուղթ, ինչպես նաև լրացուցիչ ստվարաթուղթ `տախտակի վերին հատվածի պատերը կտրելու և սոսնձելու համար, որպեսզի A ք C 1 1 3 3 4 թվարկված 16 քառակուսիներ պատրաստվեն: Քանի որ ստվարաթուղթը բարակ է, կարող եք յուրաքանչյուր քառակուսու մեջ կպցնել դահլիճի էֆեկտի 16 սենսոր ՝ յուրաքանչյուրը 3 ոտքով և 16 լուսադիոդով ՝ 2-ական ոտքով:

2. Բաղադրիչները դնելուց հետո ձեզ հարկավոր է մի փոքր զոդում կատարել, Hall-effect սենսորների ոտքերը և LED- ները դեպի լարերը միացնել: Այս պահին ես խորհուրդ կտայի խելացի կերպով ընտրել գունավոր լարերը, որպեսզի չշփոթվեք LED- ների, ինչպես նաև Hall -effect սենսորների VCC, GND և PIN ոտքերի հետ: Իհարկե, կարելի է տպել PCB սենսորներով և նույնիսկ WS2812 տիպի LED- ների արդեն զոդված, բայց ես որոշեցի նախագիծը պարզ պահել և կատարել «ձեռքի աշխատանք»: Այս պահին ձեզ մնում է միայն պատրաստել լարեր և տվիչներ: Fritzing սխեմայից հաջորդող փուլերում կարող եք տեսնել, թե որտեղ պետք է ամրացնել յուրաքանչյուր մետաղալարի ծայրը: Շուտով, նրանցից ոմանք անմիջապես կուղղվեն Arduino Mega- ի PIN- ներին (Arduino- ում դրանք բավարար են), մյուսները `տախտակին, և բոլոր GND- ները կարող են զոդվել մեկ լարի վրա (ընդհանուր լեզու ստեղծելով), որը հետագայում պետք է միացված լինի Arduino- ի տախտակի GND- ին: Այստեղ մեկ կարևոր նշում. Hall- ի էֆեկտի սենսորները OMNIDIRECTIONAL են, ինչը նշանակում է, որ կարևոր չէ, թե մագնիսի որ բևեռը կպահվի սենսորին մոտ, այն կուղարկի 0 տվյալներ, մինչդեռ մոտակայքում կա որոշ մագնիսական դաշտ և 1, երբ չկա, այսինքն ՝ մագնիսը սենսորից հեռու է (քան ենթադրենք 5 սմ):

3. Պատրաստեք նմանատիպ 21x21 սմ ստվարաթուղթ և դրա վրա ամրացրեք Arduino Mega- ն և երկար տախտակը: Կարող եք նաև նորից կտրել ստվարաթղթից ցանկացած ցանկալի բարձրության 4 պատ, և դրանք ուղղահայաց սոսնձել 21x21 սմ քառակուսի տախտակների այդ երկու շերտերով: Այնուհետև հետևեք Fritzing Schematics- ին ՝ ամեն ինչ կարգավորելու համար: Դուք նաև կարող եք կարգավորել RFID ընթերցողը LED- ների և Hall-effect սենսորների հետ աշխատելուց հետո:

4. Ստուգեք, թե արդյոք աշխատում են բոլոր LED- ները և տվիչները, ազդանշաններ ուղարկելով հիմնական կոդերի միջոցով: Մի խուսափեք այս քայլից, քանի որ դա թույլ կտա ձեզ ստուգել, թե արդյոք ամեն ինչ ճիշտ է աշխատում և անցնել տախտակի հետագա կառուցմանը:

5. Պատրաստեք գրավատուն և թագուհուն ՝ ներքևում ամրացված 10 սմ շառավղով երկու մագնիսներով, ինչպես նաև կլոր RFID պիտակներով: Ավելի ուշ, դուք պետք է կարդաք այդ պիտակների ID- ները Arduino IDE- ի Serial Screen- ից:

6. Եթե ամեն ինչ հիանալի է աշխատում, կարող եք սկսել հիմնական կոդը և փորձել ամեն ինչ:

7 (ըստ ցանկության): Դուք կարող եք ինչ -որ գեղարվեստական աշխատանք կատարել փայտի հետ, որը ձեր ցուցադրությանը կտա ավելի բնական տեսք: Դա կախված է ձեր կամքից և երևակայությունից:

Քայլ 6: Որոշ լուսանկարներ և տեսանյութեր տարբեր փուլերից

Image
Image
Որոշ լուսանկարներ և տեսանյութեր տարբեր փուլերից
Որոշ լուսանկարներ և տեսանյութեր տարբեր փուլերից
Որոշ լուսանկարներ և տեսանյութեր տարբեր փուլերից
Որոշ լուսանկարներ և տեսանյութեր տարբեր փուլերից

Քայլ 7: Աղբյուրի կոդ

Աղբյուրի ծածկագիր
Աղբյուրի ծածկագիր

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

Նշում. Նման իրական շախմատի տախտակին, ես վերացականորեն համարակալեցի քառակուսիները որպես A1, A2, A3, A4, B1,…, C1,…, D1,.., D4: Այնուամենայնիվ, ծածկագրում գործնական չէ օգտագործել այս նշումը: Հետևաբար, ես օգտագործեցի զանգվածներ և քառակուսիները ներկայացրեցի համապատասխանաբար որպես 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33:

Շնորհակալություն ուշադրության համար! Փորձարկեք ամեն ինչ և ազատ եղեք մեկնաբանություններում գրելու իմ բաց թողած սխալների, բարելավումների, առաջարկների և այլնի մասին: Անհամբեր սպասում եմ նախագծի վերաբերյալ որոշ կարծիքների: Եթե ծրագրի հետ կապված որևէ տեսակի օգնության կարիք ունեք, ուղարկեք ինձ ([email protected]) կամ ավելացրեք skype- ով (tahir.miriyev9r1), որպեսզի կարողանանք զրույց կազմակերպել և ամեն ինչ մանրամասն քննարկել: Ամենայն բարիք: