Tartalomjegyzék:

Sakkrobot Raspberry Pi Lynxmotion AL5D Kar: 6 lépés
Sakkrobot Raspberry Pi Lynxmotion AL5D Kar: 6 lépés

Videó: Sakkrobot Raspberry Pi Lynxmotion AL5D Kar: 6 lépés

Videó: Sakkrobot Raspberry Pi Lynxmotion AL5D Kar: 6 lépés
Videó: Experiment with joystick and robot arm 2024, November
Anonim
Image
Image

Építsd meg ezt a sakkrobotot, és nézd meg, hogyan ver mindenkit!

Elég könnyű felépíteni, ha követi a kar felépítésére vonatkozó utasításokat, és ha legalább elemi ismeretekkel rendelkezik a számítógépes programozásról és a Linuxról.

A fehérrel játszó ember mozog. Ezt a vizuális felismerő rendszer észleli. A robot ekkor elgondolkodik, majd megmozdul. Stb …

Talán a legújszerűbb dolog ebben a robotban a mozgásfelismerés kódja. Ez a látáskód használható sok más módon épített sakkrobotok esetében is (például a LEGO építésű sakkrobotom).

Mivel az emberi lépést látórendszer ismeri fel, nincs szükség speciális sakktábla hardverre (például nádkapcsolókra vagy bármi másra).

A kódom személyes használatra elérhető.

1. lépés: Követelmények

A hardver felépítése
A hardver felépítése

Az összes kód Pythonban van írva, amely többek között Raspberry Pi -n is fut.

A Raspberry Pi egy kicsi, olcsó (körülbelül 40 dollár) egylapos számítógép, amelyet a Raspberry Pi Foundation fejlesztett ki. Az eredeti modell a vártnál sokkal népszerűbb lett, és olyan célokra értékesítették, mint a robotika

A robotom Raspberry Pi -t használ, és a robotkar egy készletből épül fel: Lynxmotion AL5D. A készlet szervo vezérlőpanelt tartalmaz. (Az imént megadott link a RobotShop amerikai webhelyére mutat; kattintson az egyik zászlóra az Ön országának megfelelő oldalak jobb felső sarkában (pl. Egyesült Királyság).

Szüksége lesz asztalra, kamerára, világításra, billentyűzetre, képernyőre és mutatóeszközre (pl. Egér) is. És persze sakkfigurák és tábla. Mindezeket részletesebben leírom a következő lépésekben.

2. lépés: A hardver felépítése

A hardver felépítése
A hardver felépítése

Amint korábban jeleztem, a látáskód szíve különféle konstrukciókkal fog működni.

Ez a konstrukció a Lynxmotion, az AL5D robotkar készletét használja. A készlethez tartozik az SSC-32U szervo vezérlőkártya, amely a karban lévő motorok vezérlésére szolgál.

Azért választottam az AL5D -t, mert a karnak képesnek kell lennie ismételt pontos mozdulatok elvégzésére, és nem sodródhat le. A markolónak képesnek kell lennie a darabok közé kerülni, a karnak pedig el kell érnie a tábla túlsó oldalát. Még módosítanom kellett az alábbiakban részletezettek szerint.

Az általam használt Raspberry Pi egy Raspberry Pi 3 B+modell. Ez USB-kapcsolaton keresztül beszél az SSC-32U kártyával.

EDIT: A Raspberry Pi 4 már elérhető. Szüksége lesz:

  • 15 W-os USB-C tápegység-a hivatalos Raspberry Pi USB-C tápegységet ajánljuk
  • MicroSD-kártya NOOBS-szal, az operációs rendszert telepítő szoftverrel (vásároljon előre feltöltött SD-kártyát a Raspberry Pi-vel együtt, vagy töltse le a NOOBS-t, hogy saját maga töltsön be egy kártyát)
  • Billentyűzet és egér (lásd később)
  • Kábel, amely a Raspberry Pi 4 mikro HDMI portján keresztül csatlakoztatható a kijelzőhöz

Szükségem volt további nyúlásra a robotkaron, ezért kisebb módosításokat végeztem rajta, további Lynxmotion alkatrészek használatával, amelyek megvásárolhatók a RobotShop -tól:

1. A 4,5 hüvelykes csövet 6 hüvelykesre cserélte-Lynxmotion AT-04 alkatrész, RB-Lyn-115 termékkód.

2. Próbáltam további rugókészletet használni, de visszatértem egy párhoz, amikor megvalósítottam az alábbi 3. pontot

3. Meghosszabbította a magasságot 1 hüvelykes távtartóval-Lynxmotion HUB-16 alkatrész, RB-Lyn-336 termékkód.

4. Meghosszabbította a markolat elérését a tartalék LEGO darabok által rögzített tartalék fogópárnák és rugalmas szalagok (!) Segítségével. Ez nagyon jól működik, mivel rugalmasságot nyújt a darabok emelésekor.

Ezek a módosítások a jobb oldali képen láthatók.

A sakktábla fölé kamera van felszerelve. Ez határozza meg az ember mozgását.

3. lépés: A robotot mozgató szoftver

Minden kód Python 2 -ben van írva. Inverz kinematikai kódra van szükség a különböző motorok helyes mozgatásához, hogy a sakkfigurák mozgathatók legyenek. A Lynxmotion könyvtári kódját használom, amely támogatja a motorok kétdimenziós mozgatását, és ehhez hozzáadtam a saját kódomat a 3 dimenziókhoz, a fogószöghez és a fogópofa mozgásához.

Tehát van egy kódunk, amely darabokat mozgat, darabokat vesz, kastélyt, támogatást és így tovább.

A sakk motorja Stockfish - amely minden embert meg tud verni! "A Stockfish a világ egyik legerősebb sakkmotorja. Sokkal erősebb is, mint a legjobb emberi sakknagymesterek."

A sakkmotor hajtására, a lépés érvényesítésére vonatkozó kód, és így tovább, a ChessBoard.py

A https://chess.fortherapy.co.uk webhelyről származó kódot használok az interfészhez. A kódom (fent) akkor kapcsolódik ehhez!

4. lépés: A szoftver, amely felismeri az ember mozgását

Ezt részletesen leírtam az Instructable for My Chess Robot Lego konstrukcióban - tehát nem kell itt megismételnem!

A "fekete" darabjaim eredetileg barna színűek voltak, de matt feketére festettem őket ("táblafestékkel"), ami miatt az algoritmus jobban működik változó fényviszonyok mellett.

5. lépés: Kamera, fények, billentyűzet, asztal, kijelző

Kamera, fények, billentyűzet, asztal, kijelző
Kamera, fények, billentyűzet, asztal, kijelző
Kamera, fények, billentyűzet, asztal, kijelző
Kamera, fények, billentyűzet, asztal, kijelző

Ezek ugyanazok, mint a Sakk Robot Lego konstrukciómban, így itt nem kell ismételnem őket.

Kivéve, hogy ezúttal más és lényegesen jobb hangszórót használtam, egy Lenrui Bluetooth hangszórót, amelyet USB -n keresztül csatlakoztatok az RPi -hez.

Kapható az amazon.com, az amazon.co.uk és más üzletekben.

Továbbá most egy másik kamerát használok - egy HP Webcam HD 2300 -at, mivel nem tudtam rávenni az előző kamerát a megbízható viselkedésre.

Az algoritmusok akkor működnek a legjobban, ha a sakktábla színe messze van a darabok színétől! Az én robotomban a darabok törtfehér és barna színűek, a sakktábla kézzel készített, kartonból készült, világos zöld színű, kevés különbséggel a "fekete" és "fehér" négyzetek között.

Az algoritmusoknak szükségük van a kamera meghatározott tájolására. Kérjük, írjon megjegyzést alább, ha problémája van. A kar korlátozottan elérhető, így a négyzetméretnek 3,5 cm -nek kell lennie.

6. lépés: A szoftver beszerzése

1. Állományhal

Ha Raspbian -ot futtat RPi -jén, használhatja a Stockfish 7 motort - ingyenes. Csak fuss:

sudo apt-get install stockfish

2. ChessBoard.py Ezt innen szerezze be.

3. A kód a https://chess.fortherapy.co.uk/home/a-wooden-chess… alapján jön.

4. Python 2D Inverse Kinematics könyvtár -

5. Az én kódom, amely meghívja a fenti kódot, és a robotot mozgatja, és a látás kódom. Szerezze meg ezt tőlem úgy, hogy először feliratkozik a YouTube -csatornámra, majd rákattint a "Kedvenc" gombra ennek az utasításnak a tetején, majd megjegyzést tesz közzé az utasításban, és válaszolok.

Ajánlott: