Kazalo:
- 1. korak: Zahteve
- 2. korak: Zgradba strojne opreme
- 3. korak: Programska oprema, ki premika robota
- 4. korak: Programska oprema, ki prepozna človekovo potezo
- 5. korak: Kamera, luči, tipkovnica, miza, zaslon
- 6. korak: Pridobitev programske opreme
Video: Šahovski robot Raspberry Pi Lynxmotion AL5D Roka: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Zgradite tega šahovskega robota in si oglejte, kako bo premagal vse!
Zgraditi ga je precej enostavno, če sledite navodilom, kako sestaviti roko, in če imate vsaj osnovno znanje o računalniškem programiranju in Linuxu.
Človek, ki igra belo, naredi korak. To zazna sistem vizualnega prepoznavanja. Robot nato premisli in se nato premakne. In tako naprej …
Morda najbolj nova stvar pri tem robotu je koda za prepoznavanje premikov. Ta koda vizije je uporabna tudi za šahovske robote, izdelane na številne druge načine (na primer moj šahovski robot z LEGO gradnjo).
Ker človekovo potezo prepozna sistem vida, ni potrebna nobena posebna strojna oprema za šahovnico (na primer trstična stikala ali karkoli drugega).
Moja koda je na voljo za osebno uporabo.
1. korak: Zahteve
Vsa koda je napisana v Pythonu, ki bo med drugim deloval na Raspberry Pi.
Raspberry Pi je majhen, poceni računalnik z eno ploščo (približno 40 USD), ki ga je razvila Fundacija Raspberry Pi. Prvotni model je postal veliko bolj priljubljen, kot je bilo pričakovano, prodajal pa se je za uporabo, kot je robotika
Moj robot uporablja Raspberry Pi, robotska roka pa je sestavljena iz kompleta: Lynxmotion AL5D. Komplet vsebuje servo krmilno ploščo. (Povezava, ki sem jo pravkar dal, je do ameriškega spletnega mesta RobotShop; kliknite eno od zastavic v zgornjem desnem kotu strani njihovega spletnega mesta za vašo državo, npr. Združeno kraljestvo).
Potrebovali boste tudi mizo, kamero, osvetlitev, tipkovnico, zaslon in kazalno napravo (npr. Miško). In seveda šahovske figure in tabla. Vse te stvari podrobneje opišem v naslednjih korakih.
2. korak: Zgradba strojne opreme
Kot sem že omenil, bo srce kode vida delovalo z različnimi zgradbami.
Ta zgradba uporablja robotski komplet rok Lynxmotion, AL5D. Kompletu je priložena servo krmilna plošča SSC-32U, ki se uporablja za krmiljenje motorjev v roki.
Za AL5D sem se odločil, ker mora roka imeti možnost ponavljati natančne gibe in se ne odmakniti. Grabež mora biti sposoben priti med kosi, roka pa mora segati do skrajne strani deske. Še vedno sem moral narediti nekaj sprememb, kot je opisano spodaj.
Raspberry Pi, ki ga uporabljam, je Raspberry Pi 3 Model B+. To se poveže s ploščo SSC-32U prek povezave USB.
EDIT: Zdaj je na voljo Raspberry Pi 4. Potrebovali boste:
- 15W napajalnik USB-C-priporočamo uradni napajalnik Raspberry Pi USB-C
- Kartica microSD, naložena z NOOBS, programsko opremo, ki namesti operacijski sistem (kupite vnaprej naloženo kartico SD skupaj z Raspberry Pi ali prenesite NOOBS, če želite sami naložiti kartico)
- Tipkovnica in miška (glej kasneje)
- Kabel za povezavo z zaslonom prek vrat HDMI za Raspberry Pi 4
Potreboval sem nadaljnji doseg roke robota, zato sem jo naredil nekaj manjših sprememb z uporabo dodatnih delov Lynxmotion, ki jih je mogoče kupiti pri RobotShopu:
1. 4,5-palčno cev zamenjal s 6-palčno-Lynxmotion del AT-04, oznaka izdelka RB-Lyn-115.
2. Poskusil sem z dodatnim kompletom vzmeti, vendar sem se vrnil k enemu paru, ko sem uveljavil spodnji del 3
3. Z 1-palčnim distančnikom povečajte višino-Lynxmotion del HUB-16, oznaka izdelka RB-Lyn-336.
4. Povečajte doseg prijemala z rezervnimi prijemalnimi prijemali, pritrjenimi z nekaj rezervnimi kosi LEGO, ki sem jih imel, in z elastičnimi trakovi (!) To deluje zelo dobro, saj prinaša prilagodljivost pri dvigovanju kosov.
Te spremembe lahko vidite na zgornji sliki na desni.
Nad šahovnico je nameščena kamera. To se uporablja za določanje človekovega gibanja.
3. korak: Programska oprema, ki premika robota
Vsa koda je napisana v Pythonu 2. Inverzna kinematična koda je potrebna za pravilno premikanje različnih motorjev, tako da je mogoče premikati šahovske figure. Uporabljam knjižnično kodo podjetja Lynxmotion, ki podpira premikanje motorjev v dveh dimenzijah in sem k temu dodala še svojo kodo za 3 dimenzije, kot prijemala in premikanje čeljusti prijemala.
Torej imamo potem kodo, ki premakne kose, vzame kose, grad, podpira en passant itd.
Šahovski motor je Stockfish - ki lahko premaga vsakega človeka! "Stockfish je eden najmočnejših šahovskih motorjev na svetu. Prav tako je veliko močnejši od najboljših človeških šahovskih velemojstrov."
Koda za pogon šahovskega motorja, potrditev veljavnosti poteze itd. Je ChessBoard.py
Za vmesnik uporabljam nekaj kode s https://chess.fortherapy.co.uk. Moja koda (zgoraj) se nato poveže s tem!
4. korak: Programska oprema, ki prepozna človekovo potezo
To sem podrobno opisal v navodilih za izdelavo Lego šahovskega robota - zato mi tega ni treba ponavljati tukaj!
Moji "črni" kosi so bili prvotno rjavi, vendar sem jih pobarval v črno mat (z "barvo za tablo"), zaradi česar algoritem bolje deluje v spremenljivejših svetlobnih pogojih.
5. korak: Kamera, luči, tipkovnica, miza, zaslon
Ti so enaki kot v moji Lego verziji šahovskega robota, zato mi jih tukaj ni treba ponavljati.
Le da sem tokrat uporabil drugačen in bistveno boljši zvočnik, Lenrui Bluetooth zvočnik, ki ga povežem z RPi preko USB -ja.
Na voljo na amazon.com, amazon.co.uk in drugih prodajnih mestih.
Zdaj uporabljam tudi drugo kamero - HP Webcam HD 2300, saj prejšnje kamere nisem mogel zanesljivo obnašati.
Algoritmi najbolje delujejo, če ima šahovnica barvo, ki je daleč od barve figur! V mojem robotu so kosi umazano bele in rjave barve, šahovska deska pa je ročno izdelana iz kartona in je svetlo zelena z majhno razliko med "črnimi" in "belimi" kvadrati.
Algoritmi potrebujejo posebno usmerjenost kamere na ploščo. Prosimo, komentirajte spodaj, če imate težave. Roka ima omejen doseg, zato mora biti kvadratna velikost 3,5 cm.
6. korak: Pridobitev programske opreme
1. Nakladnica
Če zaženete Raspbian na svojem RPi -ju, lahko uporabite motor Stockfish 7 - brezplačen je. Samo zaženite:
sudo apt-get install stockfish
2. ChessBoard.py To dobite od tukaj.
3. Koda, ki temelji na https://chess.fortherapy.co.uk/home/a-wooden-chess… Prihaja z mojo kodo.
4. Knjižnica inverzne kinematike Python 2D -
5. Moja koda, ki prikliče vso zgornjo kodo in ki robot naredi, ter moja koda vida. Pridobite to od mene, tako da se najprej naročite na moj kanal v YouTubu, nato kliknete gumb »Priljubljeno« na vrhu tega navodila in nato objavite komentar v tem navodilu, jaz pa bom odgovoril.
Priporočena:
Šahovski robot narejen iz LEGO in Raspberry Pi: 6 korakov
Šahovski robot narejen z LEGO in Raspberry Pi: Presenetite svoje prijatelje s tem šahovskim robotom! Zgraditi ga ni težko, če ste že izdelovali LEGO robote in če imate vsaj osnovno znanje o računalniškem programiranju in Linuxu. Robot se sam premika in uporablja vizualno prepoznavo
Roka UStepper Robot 4: 5 korakov
UStepper Robot Arm 4: To je četrta ponovitev moje robotske roke, ki sem jo razvil kot aplikacijo za našo krmilno ploščo koračnih uStepper. Ker ima robot 3 koračne motorje in servo za aktiviranje (v osnovni konfiguraciji), ni omejen na uStepper,
Digitalni šah - Sledite svoji šahovski igri na spletu: 5 korakov
Digitalni šah - Sledite svoji šahovski igri na spletu: Že od malih nog igram veliko šaha, in ker ima splet ogromno spletnih mest za igranje šaha proti računalnikom ali živim nasprotnikom, nikoli nisem našel spletnega mesta ki sledi vaši šahovski igri, v kateri pravzaprav igrate
Tretja roka ++: večnamenska roka za pomoč pri elektroniki in drugih občutljivih delih .: 14 korakov (s slikami)
Tretja roka ++: večnamenska roka za pomoč pri elektroniki in drugih občutljivih delih. Posnetkov nikoli nisem mogel dobiti točno tam, kjer sem jih želel, ali pa je trajalo več časa, kot bi bilo v resnici za namestitev
LED šahovski komplet - preprosta različica: 12 korakov
LED šahovska garnitura-preprosta različica: Tetranitrat je prej objavil odlično navodilo, kako narediti LED šahovsko garnituro: https: //www.instructables.com/id/LED-Chess-Set/ Našel sem jo prek BoingBoinga, vendar je nisem mogel ne boš motil pri izdelavi takega, ki je izgledal tako bliskovito. Hotel sem samo eno