Kazalo:

Šahovski robot Raspberry Pi Lynxmotion AL5D Roka: 6 korakov
Šahovski robot Raspberry Pi Lynxmotion AL5D Roka: 6 korakov

Video: Šahovski robot Raspberry Pi Lynxmotion AL5D Roka: 6 korakov

Video: Šahovski robot Raspberry Pi Lynxmotion AL5D Roka: 6 korakov
Video: Chinese chess robot - Rearrange 5 chess experiment . 2024, Julij
Anonim
Image
Image

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

Zgradba strojne opreme
Zgradba strojne opreme

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

Zgradba strojne opreme
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

Kamera, luči, tipkovnica, miza, zaslon
Kamera, luči, tipkovnica, miza, zaslon
Kamera, luči, tipkovnica, miza, zaslon
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: