Turinys:

Šachmatų robotas „Raspberry Pi Lynxmotion AL5D“: 6 žingsniai
Šachmatų robotas „Raspberry Pi Lynxmotion AL5D“: 6 žingsniai

Video: Šachmatų robotas „Raspberry Pi Lynxmotion AL5D“: 6 žingsniai

Video: Šachmatų robotas „Raspberry Pi Lynxmotion AL5D“: 6 žingsniai
Video: robotic arm playing chess 2024, Liepa
Anonim
Image
Image

Sukurkite šį šachmatų robotą ir pamatykite, kaip jis įveikė visus!

Tai gana lengva sukurti, jei galite laikytis instrukcijų, kaip sukurti ranką, ir jei turite bent elementarių žinių apie kompiuterių programavimą ir „Linux“.

Žmogus, žaisdamas baltai, daro judesį. Tai nustato vizualinio atpažinimo sistema. Tada robotas susimąsto ir tada juda. Ir taip toliau …

Galbūt pats naujausias dalykas šiame robote yra judesio atpažinimo kodas. Šis vizijos kodas taip pat gali būti naudojamas šachmatų robotams, pastatytiems daugeliu kitų būdų (pvz., Mano šachmatų robotui su „LEGO build“).

Kadangi žmogaus judesį atpažįsta regėjimo sistema, nereikia jokios specialios šachmatų lentos techninės įrangos (pvz., Nendrinių jungiklių ar pan.).

Mano kodas galimas asmeniniam naudojimui.

1 žingsnis: Reikalavimai

Aparatūros kūrimas
Aparatūros kūrimas

Visas kodas parašytas „Python“, kuris, be kita ko, veiks su „Raspberry Pi“.

„Raspberry Pi“yra mažas, nebrangus (apie 40 USD) vienos plokštės kompiuteris, sukurtas „Raspberry Pi Foundation“. Originalus modelis tapo daug populiaresnis nei tikėtasi, parduodamas tokioms reikmėms kaip robotika

Mano robotas naudoja „Raspberry Pi“, o roboto ranka pagaminta iš komplekto: „Lynxmotion AL5D“. Komplekte yra servo valdiklio plokštė. (Ką tik daviau nuorodą į „RobotShop“JAV svetainę; spustelėkite vieną iš vėliavėlių jų šalies puslapių viršuje, dešinėje, pvz., JK).

Jums taip pat reikės stalo, fotoaparato, apšvietimo, klaviatūros, ekrano ir žymeklio (pvz., Pelės). Ir, žinoma, šachmatų figūros ir lenta. Tolesnius veiksmus išsamiau aprašysiu visus šiuos dalykus.

2 žingsnis: Aparatūros kūrimas

Aparatūros kūrimas
Aparatūros kūrimas

Kaip jau minėjau, regėjimo kodo širdis veiks su įvairiomis konstrukcijomis.

Ši konstrukcija naudoja „Lynxmotion“, AL5D, robotų rankų komplektą. Į komplektą įeina SSC-32U servo valdiklio plokštė, naudojama rankos varikliams valdyti.

Pasirinkau AL5D, nes ranka turi sugebėti pakartoti tikslius judesius ir nenukrypti. Griebtuvas turi sugebėti patekti tarp gabalų, o ranka - iki tolimos lentos pusės. Man vis tiek reikėjo atlikti kai kuriuos pakeitimus, kaip aprašyta žemiau.

„Raspberry Pi“, kurį naudoju, yra „Raspberry Pi 3“modelis B+. Tai kalbama su SSC-32U plokšte per USB jungtį.

Redaguoti: Raspberry Pi 4 dabar yra prieinamas. Jums reikės:

  • 15 W USB-C maitinimo šaltinis-rekomenduojame oficialų Raspberry Pi USB-C maitinimo šaltinį
  • „MicroSD“kortelė, įkrauta NOOBS, programinė įranga, kuri įdiegia operacinę sistemą (kartu su „Raspberry Pi“nusipirkite iš anksto įdėtą SD kortelę arba atsisiųskite „NOOBS“, kad galėtumėte patys įkelti kortelę)
  • Klaviatūra ir pelė (žr. Vėliau)
  • Kabelis, skirtas prijungti prie ekrano per „Raspberry Pi 4“mikro HDMI prievadą

Man reikėjo toliau pasiekti roboto ranką, todėl padariau keletą nedidelių pakeitimų, naudodamas papildomas „Lynxmotion“dalis, kurias galima nusipirkti iš „RobotShop“:

1. 4,5 colio vamzdelį pakeitė 6 colių-„Lynxmotion“dalis AT-04, produkto kodas RB-Lyn-115.

2. Bandžiau naudoti papildomą spyruoklių rinkinį, bet grįžau prie vienos poros, kai įgyvendinau 3 punktą

3. Padidintas aukštis naudojant 1 colio tarpiklį-„Lynxmotion“dalį HUB-16, produkto kodas RB-Lyn-336.

4. Išplėstas griebtuvo pasiekiamumas naudojant atsargines griebtuvų pagalvėles, pritvirtintas prie kai kurių mano turimų atsarginių LEGO detalių, ir elastines juostas (!) Tai veikia labai gerai, nes suteikia lankstumo keliant gabalus.

Šiuos pakeitimus galima pamatyti aukščiau esančiame paveikslėlyje dešinėje.

Virš šachmatų lentos sumontuota kamera. Tai naudojama žmogaus judėjimui nustatyti.

3 žingsnis: programinė įranga, kuri perkelia robotą

Visas kodas parašytas „Python 2“. Atvirkštinės kinematikos kodas reikalingas tam, kad būtų galima teisingai perkelti įvairius variklius, kad būtų galima perkelti šachmatų figūras. Aš naudoju bibliotekos kodą iš „Lynxmotion“, kuris palaiko variklių judėjimą dviem matmenimis, ir prie to pridėjau savo kodą 3 matmenims, griebtuvo kampui ir griebtuvo žandikaulio judėjimui.

Taigi, mes turime kodą, kuris perkelia gabalus, paima gabalus, pilį, palaiko en passant ir pan.

Šachmatų variklis yra „Stockfish“- kuris gali įveikti bet kurį žmogų! "" Stockfish "yra vienas stipriausių šachmatų variklių pasaulyje. Jis taip pat yra daug stipresnis už geriausius žmonių šachmatų grandus."

„ChessBoard.py“yra šachmatų variklio varymo, judėjimo galiojimo patvirtinimo kodas ir pan.

Aš naudoju tam tikrą kodą iš https://chess.fortherapy.co.uk, kad su juo sąveikau. Mano kodas (aukščiau) tada su juo sąveikauja!

4 žingsnis: programinė įranga, atpažįstanti žmogaus judesį

Aš tai išsamiai aprašiau „Instructable for my Chess Robot Lego“konstrukcijoje - todėl man nereikia to kartoti!

Mano „juodieji“kūriniai iš pradžių buvo rudi, bet aš juos nudažiau matine juoda spalva („lentos dažais“), todėl algoritmas geriau veikia esant labiau kintančioms apšvietimo sąlygoms.

5 veiksmas: fotoaparatas, žibintai, klaviatūra, stalas, ekranas

Fotoaparatas, žibintai, klaviatūra, stalas, ekranas
Fotoaparatas, žibintai, klaviatūra, stalas, ekranas
Fotoaparatas, žibintai, klaviatūra, stalas, ekranas
Fotoaparatas, žibintai, klaviatūra, stalas, ekranas

Jie yra tokie patys kaip mano šachmatų robotų „Lego“konstrukcijoje, todėl man nereikia jų čia kartoti.

Išskyrus tai, kad šį kartą naudojau kitokį ir žymiai geresnį garsiakalbį - „Lenrui Bluetooth“garsiakalbį, kurį prijungiu prie RPi per USB.

Galima įsigyti iš amazon.com, amazon.co.uk ir kitų prekybos vietų.

Taip pat dabar naudoju kitą fotoaparatą - „HP Webcam HD 2300“, nes negalėjau priversti ankstesnės kameros veikti patikimai.

Algoritmai geriausiai veikia, jei šachmatų lentos spalva yra toli nuo figūrų spalvos! Mano roboto figūros yra balkšvos ir rudos spalvos, o šachmatų lenta yra rankų darbo iš kortelės ir yra šviesiai žalios spalvos, nedaug skirtumo tarp „juodųjų“ir „baltųjų“kvadratų.

Algoritmams reikia tam tikros kameros orientacijos į lentą. Jei turite problemų, pakomentuokite žemiau. Ranka pasiekiama ribotai, todėl kvadrato dydis turėtų būti 3,5 cm.

6 žingsnis: gaukite programinę įrangą

1. Žuvys

Jei naudojate „Raspbian“savo RPi, galite naudoti „Stockfish 7“variklį - tai nemokama. Tiesiog bėk:

sudo apt-get install stockfish

2. ChessBoard.py Gaukite tai iš čia.

3. Kodas, pagrįstas https://chess.fortherapy.co.uk/home/a-wooden-chess… Ateina su mano kodu.

4. „Python 2D Inverse Kinematics“biblioteka -

5. Mano kodas, kuris iškviečia visą aukščiau esantį kodą ir kuris priverčia robotą atlikti judesius, ir mano regėjimo kodas. Gaukite tai iš manęs, pirmiausia užsiprenumeravę mano „YouTube“kanalą, tada spustelėję mygtuką „Mėgstamiausia“, esantį šios instrukcijos viršuje, tada paskelbę komentarą šioje instrukcijoje, ir aš atsakysiu.

Rekomenduojamas: