Sisällysluettelo:

Shakkirobotti Vadelma Pi Lynxmotion AL5D Arm: 6 vaihetta
Shakkirobotti Vadelma Pi Lynxmotion AL5D Arm: 6 vaihetta

Video: Shakkirobotti Vadelma Pi Lynxmotion AL5D Arm: 6 vaihetta

Video: Shakkirobotti Vadelma Pi Lynxmotion AL5D Arm: 6 vaihetta
Video: Удивительный карманный компьютер «сделай сам» geeekpi raspberry pi 4 алюминиевый чехол для NAS 2024, Heinäkuu
Anonim
Image
Image

Rakenna tämä shakkirobotti ja näe sen voittavan kaikki!

Se on melko helppo rakentaa, jos pystyt noudattamaan varren rakentamisen ohjeita ja jos sinulla on ainakin perustiedot tietokoneohjelmoinnista ja Linuxista.

Ihminen, joka pelaa valkoista, tekee liikkeen. Visuaalinen tunnistusjärjestelmä havaitsee tämän. Sitten robotti pohtii ja tekee sitten liikkeen. Ja niin edelleen …

Ehkä uusin asia tässä robotissa on liikkeen tunnistuksen koodi. Tätä visio -koodia voidaan käyttää myös shakkiroboteissa, jotka on rakennettu monilla muilla tavoilla (kuten minun shakkirobotillani, jossa on LEGO -rakenne).

Koska visiojärjestelmä tunnistaa ihmisen liikkeen, mitään erityistä shakkilaudan laitteistoa (kuten ruoko -kytkimiä tai mitä tahansa) ei tarvita.

Koodini on käytettävissä henkilökohtaiseen käyttöön.

Vaihe 1: Vaatimukset

Laitteiston rakentaminen
Laitteiston rakentaminen

Kaikki koodit on kirjoitettu Pythonilla, joka toimii muun muassa Raspberry Pi: llä.

Raspberry Pi on pieni, edullinen (noin 40 dollaria) yksilevyinen tietokone, jonka on kehittänyt Raspberry Pi Foundation. Alkuperäisestä mallista tuli odotettua suositumpi, ja se myytiin esimerkiksi robotiikkaan

Robottini käyttää Raspberry Pi: tä, ja robotin varsi on rakennettu sarjasta: Lynxmotion AL5D. Sarja sisältää servo -ohjainkortin. (Linkki, jonka juuri annoin, on RobotShopin Yhdysvaltain sivustolle; napsauta jotakin lippua niiden sivujen oikeassa yläkulmassa maasi mukaan, esimerkiksi Yhdistynyt kuningaskunta).

Tarvitset myös pöydän, kameran, valaistuksen, näppäimistön, näytön ja osoitinlaitteen (esim. Hiiren). Ja tietysti shakkinappulat ja lauta. Kuvaan kaikkia näitä asioita tarkemmin seuraavissa vaiheissa.

Vaihe 2: Laitteiston rakentaminen

Laitteiston rakentaminen
Laitteiston rakentaminen

Kuten aiemmin mainitsin, visio -koodin sydän toimii erilaisilla rakenteilla.

Tämä rakenne käyttää Lynxmotionin, AL5D: n, robotti käsivarresarjaa. Paketin mukana tulee SSC-32U-servo-ohjainkortti, jota käytetään ohjaamaan käsivarren moottoreita.

Valitsin AL5D: n, koska käsivarren on kyettävä tekemään toistuvia tarkkoja liikkeitä, eikä se saa ajautua pois. Tarttimen on kyettävä pääsemään kappaleiden väliin ja käsivarren on ulotuttava laudan kaukaiselle puolelle. Minun piti vielä tehdä joitain muutoksia alla kuvatulla tavalla.

Raspberry Pi, jota käytän, on Raspberry Pi 3 Model B+. Tämä puhuu SSC-32U-kortille USB-liitännän kautta.

EDIT: Raspberry Pi 4 on nyt saatavilla, ja tarvitset:

  • 15 W: n USB-C-virtalähde-suosittelemme virallista Raspberry Pi USB-C -virtalähdettä
  • MicroSD-kortti, joka on ladattu NOOBS-ohjelmistolla, joka asentaa käyttöjärjestelmän (osta esiladattu SD-kortti Raspberry Pi -laitteesi kanssa tai lataa NOOBS ladataksesi kortin itse)
  • Näppäimistö ja hiiri (katso myöhemmin)
  • Kaapeli, joka liitetään näyttöön Raspberry Pi 4: n mikro -HDMI -portin kautta

Tarvitsin pidemmän ulottuvuuden robotin varteen, joten tein siihen pieniä muutoksia käyttämällä muita Lynxmotion -osia, joita voi ostaa RobotShopista:

1. Korvattiin 4,5 tuuman putki 6 tuuman Lynxmotion-osalla AT-04, tuotekoodi RB-Lyn-115.

2. Yritin käyttää lisäjousia, mutta palasin yhteen pariin, kun otin käyttöön kohdan 3 alla

3. Pidennetty korkeutta käyttämällä 1 tuuman välikappaletta-Lynxmotion-osa HUB-16, tuotekoodi RB-Lyn-336.

4. Laajennetut tarttumavarat käyttämällä vara -tarttumistyynyjä, jotka on kiinnitetty joihinkin vara -LEGO -osiin ja kuminauhoihin (!) Tämä toimii erittäin hyvin, koska se tuo joustavuutta kappaleita nostettaessa.

Nämä muutokset näkyvät yllä olevassa kuvassa oikealla.

Shakkitaulun yläpuolelle on asennettu kamera. Tätä käytetään määrittämään ihmisen liike.

Vaihe 3: Ohjelmisto, joka liikuttaa robottia

Kaikki koodit on kirjoitettu Python 2: lla. Käänteinen kinematiikkakoodi tarvitaan eri moottorien siirtämiseksi oikein, jotta shakkipaloja voidaan siirtää. Käytän Lynxmotionin kirjastokoodia, joka tukee moottorien siirtämistä kahdessa ulottuvuudessa, ja olen lisännyt siihen oman koodini 3 -ulotteisuuksille, tarttumiskulmalle ja tartuntaleuan liikkeelle.

Joten meillä on sitten koodi, joka siirtää kappaleita, ottaa palasia, linnan, tukee en passantia ja niin edelleen.

Shakkimoottori on Stockfish - joka voi voittaa kaikki ihmiset! "Stockfish on yksi maailman vahvimmista shakkimoottoreista. Se on myös paljon vahvempi kuin ihmisen parhaat shakkimestarit."

ChessBoard.py

Käytän jotain koodia osoitteesta https://chess.fortherapy.co.uk liittymään siihen. Koodini (yllä) on sitten rajapinnassa sen kanssa!

Vaihe 4: Ohjelmisto, joka tunnistaa ihmisen liikkeen

Olen kuvannut tämän yksityiskohtaisesti Chess Robot Lego -rakennukseni Instructable -ohjelmassa - joten minun ei tarvitse toistaa sitä täällä!

"Mustat" palaseni olivat alun perin ruskeita, mutta maalasin ne mattamustaksi ("liitutaulumaalilla"), mikä tekee algoritmista toimivan paremmin vaihtelevissa valaistusolosuhteissa.

Vaihe 5: Kamera, valot, näppäimistö, pöytä, näyttö

Kamera, valot, näppäimistö, pöytä, näyttö
Kamera, valot, näppäimistö, pöytä, näyttö
Kamera, valot, näppäimistö, pöytä, näyttö
Kamera, valot, näppäimistö, pöytä, näyttö

Nämä ovat samat kuin shakkirobotti Lego -rakenteessani, joten minun ei tarvitse toistaa niitä täällä.

Paitsi, että tällä kertaa käytin erilaista ja huomattavasti parempaa kaiutinta, Lenrui Bluetooth -kaiutinta, jonka yhdistan RPi: hen USB: n kautta.

Saatavilla osoitteesta amazon.com, amazon.co.uk ja muista myyntipisteistä.

Lisäksi käytän nyt toista kameraa - HP Webcam HD 2300, koska en saanut edellistä kameraa toimimaan luotettavasti.

Algoritmit toimivat parhaiten, jos shakkilaudalla on väri, joka on kaukana kappaleiden väristä! Robotissani palaset ovat luonnonvalkoisia ja ruskeita, ja shakkilauta on käsintehty kortista, ja se on vaaleanvihreä, jossa on vain vähän eroa "mustan" ja "valkoisen" neliön välillä.

Algoritmit tarvitsevat kameran erityisen suunnan alukselle. Kommentoi alle, jos sinulla on ongelma. Varren ulottuvuus on rajoitettu, joten neliön koon tulisi olla 3,5 cm.

Vaihe 6: Ohjelmiston hankkiminen

1. Kantakala

Jos käytät Raspbiania RPi: lläsi, voit käyttää Stockfish 7 -moottoria - se on ilmainen. Juokse:

sudo apt-get install stockfish

2. ChessBoard.py Hanki tämä täältä.

3. Koodi perustuu osoitteeseen https://chess.fortherapy.co.uk/home/a-wooden-chess… Mukana koodini.

4. Python 2D Inverse Kinematics -kirjasto -

5. Oma koodini, joka kutsuu kaiken yllä olevan koodin ja joka saa robotin tekemään liikkeet, ja minun visio -koodini. Hanki tämä minulta tilaamalla ensin YouTube -kanavani, napsauttamalla sitten tämän suosituksen yläosassa olevaa "Suosikki" -painiketta ja lähettämällä sitten kommentti tähän Instructable -palveluun, niin vastaan.

Suositeltava: