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

Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 քայլ
Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 քայլ

Video: Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 քայլ

Video: Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 քայլ
Video: Lynxmotion AL5D Robotic Arm Playing Chess 2024, Նոյեմբեր
Anonim
Image
Image

Կառուցեք այս շախմատային ռոբոտը և տեսեք, թե ինչպես է այն հաղթում բոլորին:

Բավականին հեշտ է կառուցել, եթե կարողանաք հետևել թև կառուցելու հրահանգներին և եթե ունեք համակարգչային ծրագրավորման և Linux- ի առնվազն տարրական գիտելիքներ:

Մարդը, սպիտակ խաղալով, քայլ է կատարում: Սա հայտնաբերվում է տեսողական ճանաչման համակարգով: Այնուհետև ռոբոտը խորհում է, իսկ հետո կատարում իր քայլը: Եվ այլն…

Այս ռոբոտի թերևս ամենավեպը շարժման ճանաչման կոդն է: Տեսողության այս ծածկագիրը կարող է օգտագործվել նաև շատ այլ եղանակներով կառուցված շախմատային ռոբոտների համար (օրինակ ՝ իմ շախմատային ռոբոտը LEGO կառուցվածքով):

Քանի որ մարդու քայլը ճանաչվում է տեսողության համակարգով, շախմատի տախտակի հատուկ սարքավորումներ (օրինակ ՝ եղեգի անջատիչներ կամ որևէ այլ բան) անհրաժեշտ չեն:

Իմ կոդը հասանելի է անձնական օգտագործման համար:

Քայլ 1: Պահանջներ

Սարքաշարի կառուցում
Սարքաշարի կառուցում

Ամբողջ ծածկագիրը գրված է Python- ում, որը, ի թիվս այլ բաների, կաշխատի Raspberry Pi- ով:

Raspberry Pi- ն փոքր, էժան (մոտ $ 40) մեկ տախտակ ունեցող համակարգիչ է, որը մշակվել է Raspberry Pi Foundation- ի կողմից: Օրիգինալ մոդելը շատ ավելի հայտնի դարձավ, քան ենթադրվում էր ՝ վաճառվելով ռոբոտաշինության համար

Իմ ռոբոտը օգտագործում է Raspberry Pi, իսկ ռոբոտի ձեռքը կառուցված է հավաքածուից ՝ Lynxmotion AL5D: Հավաքածուն գալիս է servo վերահսկիչ տախտակով: (Հղումը, որը ես պարզապես տվել եմ, RobotShop- ի ԱՄՆ կայքն է. Կտտացրեք ձեր երկրի կայքի էջերի վերևի դրոշներից մեկի վրա, օրինակ ՝ Միացյալ Թագավորություն):

Ձեզ նույնպես պետք է սեղան, տեսախցիկ, լուսավորություն, ստեղնաշար, էկրան և մատնանշող սարք (օրինակ ՝ մկնիկ): Եվ, իհարկե, շախմատի խաղաքարեր և տախտակ: Այս բոլոր բաները ես ավելի մանրամասն նկարագրում եմ հետագա քայլերում:

Քայլ 2: Սարքաշարի կառուցում

Սարքաշարի կառուցում
Սարքաշարի կառուցում

Ինչպես արդեն նշեցի, տեսողության կոդի սիրտը կաշխատի տարբեր կառուցվածքներով:

Այս կառուցվածքում օգտագործվում է Lynxmotion- ի, AL5D- ի ռոբոտային ձեռքի հավաքածու: Հավաքածուի հետ ներառված է SSC-32U servo վերահսկիչ տախտակը, որն օգտագործվում է թևի շարժիչները վերահսկելու համար:

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

Raspberry Pi- ն, որն օգտագործում եմ, Raspberry Pi 3 մոդել B+է: Սա խոսում է SSC-32U տախտակի հետ USB միացման միջոցով:

Խմբագրել. Raspberry Pi 4 -ն այժմ հասանելի է: Ձեզ անհրաժեշտ կլինի.

  • 15W USB-C սնուցման աղբյուր-խորհուրդ ենք տալիս պաշտոնական Raspberry Pi USB-C սնուցման աղբյուր
  • NOOBS- ով բեռնված microSD քարտ, օպերացիոն համակարգը տեղադրող ծրագրակազմ (գնեք նախապես բեռնված SD քարտ ՝ ձեր Raspberry Pi- ի հետ միասին, կամ ներբեռնեք NOOBS ՝ ինքնուրույն քարտ տեղադրելու համար)
  • Ստեղնաշար և մկնիկ (տես ավելի ուշ)
  • Մալուխ ՝ էկրանին միացնելու համար Raspberry Pi 4 -ի միկրո HDMI պորտի միջոցով

Ինձ ավելի շատ անհրաժեշտ էր ռոբոտի թևը, այնպես որ ես մի փոքր փոփոխություններ կատարեցի դրանում ՝ օգտագործելով լրացուցիչ Lynxmotion մասեր, որոնք կարելի է գնել RobotShop- ից.

1. 4.5 դյույմանոց խողովակը փոխարինեց 6 դյույմով-Lynxmotion մաս AT-04, ապրանքի կոդը ՝ RB-Lyn-115:

2. Փորձեցի օգտագործել զսպանակների լրացուցիչ հավաքածու, բայց վերադարձա մեկ զույգի, երբ կիրառեցի ստորև բերված 3 -րդ կետը

3. Երկարացրեք բարձրությունը ՝ օգտագործելով 1 դյույմ հեռավորություն-Lynxmotion մաս HUB-16, ապրանքի կոդը ՝ RB-Lyn-336:

4. Երկարացրեք բռնակին հասնելու հնարավորությունը `օգտագործելով պահեստային բարձիկներ, որոնք ամրացված են իմ ունեցած LEGO որոշ պահեստամասերի և առաձգական ժապավենների (!) Սա շատ լավ է աշխատում, քանի որ ճկունություն է ներդնում կտորներ բարձրացնելիս:

Այս փոփոխությունները կարելի է տեսնել աջ կողմում գտնվող վերևի պատկերում:

Շախմատի տախտակի վերևում տեղադրված է տեսախցիկ: Սա օգտագործվում է որոշելու մարդու քայլը:

Քայլ 3. Softwareրագրակազմը, որը շարժում է ռոբոտին

Ամբողջ ծածկագիրը գրված է Python 2 -ում: Տարբեր շարժիչները ճիշտ տեղաշարժելու համար անհրաժեշտ է հակադարձ կինեմատիկայի ծածկագիր, որպեսզի շախմատի խաղաքարերը տեղաշարժվեն: Ես օգտագործում եմ Lynxmotion- ի գրադարանային ծածկագիրը, որն աջակցում է շարժիչների շարժումը երկու հարթության վրա և դրան ավելացրել եմ իմ սեփական ծածկագրով `3 հարթության, բռնակման անկյունի և բռնակով ծնոտի շարժման համար:

Այսպիսով, մենք ունենք կոդ, որը կտեղափոխի կտորներ, կվերցնի կտորներ, ամրոց, կաջակցի և փոխանցում և այլն:

Շախմատային շարժիչը Stockfish- ն է, որը կարող է հաղթել ցանկացած մարդու: «Ստոկֆիշը աշխարհի ամենաուժեղ շախմատային շարժիչներից մեկն է: Այն նաև շատ ավելի ուժեղ է, քան շախմատի լավագույն մարդկային գրոսմայստերները»:

Շախմատային շարժիչ վարելու, վավերացնելու, որ քայլը վավեր է և այլն, ChessBoard.py- ն է:

Ես դրան միանալու համար օգտագործում եմ https://chess.fortherapy.co.uk- ի որոշ ծածկագիր: Իմ ծածկագիրը (վերևում) այնուհետև միջամտում է դրան:

Քայլ 4: Softwareրագրակազմ, որը ճանաչում է մարդու քայլը

Ես դա մանրամասն նկարագրել եմ Instructable for my Chess Robot Lego կառուցվածքում, այնպես որ ես կարիք չունեմ այստեղ կրկնելու:

Իմ «սև» կտորներն ի սկզբանե դարչնագույն էին, բայց ես դրանք ներկեցի սև -մուգ («գրատախտակի ներկով»), ինչը ստիպում է ալգորիթմն ավելի լավ աշխատել ավելի փոփոխական լուսավորության պայմաններում:

Քայլ 5: Տեսախցիկ, լույսեր, ստեղնաշար, սեղան, էկրան

Տեսախցիկ, լույսեր, ստեղնաշար, սեղան, էկրան
Տեսախցիկ, լույսեր, ստեղնաշար, սեղան, էկրան
Տեսախցիկ, լույսեր, ստեղնաշար, սեղան, էկրան
Տեսախցիկ, լույսեր, ստեղնաշար, սեղան, էկրան

Սրանք նույնն են, ինչ իմ Chess Robot Lego- ի կառուցվածքում, այնպես որ ես կարիք չունեմ դրանք այստեղ կրկնելու:

Բացառությամբ, որ այս անգամ ես օգտագործեցի մեկ այլ և զգալիորեն ավելի լավ բարձրախոս ՝ Lenrui Bluetooth բարձրախոս, որը RPi- ին միացնում եմ USB- ով:

Հասանելի է amazon.com, amazon.co.uk և այլ վաճառակետերից:

Բացի այդ, ես այժմ օգտագործում եմ այլ տեսախցիկ `HP Webcam HD 2300 HP, քանի որ ես չէի կարող ստիպել, որ նախորդ տեսախցիկը իրեն հուսալի պահի:

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

Ալգորիթմներին անհրաժեշտ է տեսախցիկի որոշակի կողմնորոշում `տախտակ նստելու համար: Խնդրում ենք մեկնաբանել ստորև, եթե խնդիր ունեք: Ձեռքը սահմանափակ հասանելիություն ունի, ուստի քառակուսի չափը պետք է լինի 3,5 սմ:

Քայլ 6: ingրագրակազմի ձեռքբերում

1. Թռչնամիս

Եթե Raspbian- ը գործարկում եք ձեր RPi- ով, կարող եք օգտագործել Stockfish 7 շարժիչը `անվճար է: Պարզապես գործարկեք.

sudo apt-get տեղադրել stockfish

2. ChessBoard.py Ստացեք սա այստեղից:

3. Կոդ ՝ հիմնված https://chess.fortherapy.co.uk/home/a-wooden-chess… Գալիս է իմ ծածկագրով:

4. Python 2D հակադարձ կինեմատիկայի գրադարան -

5. Իմ կոդը, որը վկայակոչում է վերը նշված բոլոր ծածկագրերը և որոնք ստիպում են ռոբոտին կատարել շարժումները, և իմ տեսողության կոդը: Ստացեք սա ինձանից ՝ նախ բաժանորդագրվելով իմ YouTube ալիքին, այնուհետև կտտացնելով «Սիրված» կոճակին ՝ այս հրահանգի վերևում, այնուհետև մեկնաբանություն տեղադրելով այս հրահանգին, և ես կպատասխանեմ:

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