Sisällysluettelo:
- Vaihe 1: Vaatimukset
- Vaihe 2: Laitteiston rakentaminen
- Vaihe 3: Ohjelmisto, joka liikuttaa robottia
- Vaihe 4: Ohjelmisto, joka tunnistaa ihmisen liikkeen
- Vaihe 5: Kamera, valot, näppäimistö, pöytä, näyttö
- Vaihe 6: Ohjelmiston hankkiminen
Video: Shakkirobotti Vadelma Pi Lynxmotion AL5D Arm: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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
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
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ö
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:
Helppo asennus IR -kaukosäädin LIRC: n avulla Vadelma PI: lle (RPi) - heinäkuu 2019 [Osa 1]: 7 vaihetta
Helppo asennus IR -kaukosäädin LIRC: n avulla Raspberry PI: lle (RPi) - heinäkuu 2019 [Osa 1]: Pitkän etsinnän jälkeen olin yllättynyt ja hämmentynyt ristiriitaisista tiedoista, jotka koskevat IR -kaukosäätimen asentamista RPi -projektilleni. Luulin sen olevan helppoa, mutta Linux InfraRed Controlin (LIRC) asentaminen on ollut ongelmallista jo pitkään
Kodinkoneiden vadelma PI -pohjainen virtamittari: 14 vaihetta
Kodinkoneiden Raspberry PI -pohjainen virtamittari: Tämä oli pieni projekti, jonka tein seuratakseni yksittäisten laitteiden virrankulutusta ympäri taloa ja näyttämään kaavioita niiden virrankulutuksesta ajan mittaan. Se on itse asiassa yksi helpoimmista Raspberry PI -pohjaisista projekteista, joita olen tehnyt, ei juottamista tai hakkerointia
Langaton ovikello - (Vadelma PI ja Amazon Dash): 4 vaihetta (kuvilla)
Langaton ovikello - (Vadelma PI ja Amazon Dash): Mitä se tekee? (katso video) Kun painiketta painetaan, Raspberry löytää uuden laitteen kirjautuvan langattomaan verkkoon. Tällä tavalla se tunnistaa painetun painikkeen ja välittää tämän tiedon matkapuhelimeesi (tai laitteeseesi)
Cocktail -kone, jossa on GUI -vadelma: 7 vaihetta (kuvilla)
Cocktail -kone, jossa on graafinen käyttöliittymä Vadelma: Pidätkö tekniikasta ja juhlista? Tämä projekti on tehty sinua varten! Tässä opetusohjelmassa luomme automaattisen cocktailkoneen, jossa on graafinen käyttöliittymä. Kaikki vadelman ohjaama! EDIT: Tein uuden helpommaksi ja halvemmaksi tästä linkistä
Shakkirobotti LEGOlla ja Raspberry Pi: 6 askelta
Shakkirobotti LEGOn ja Raspberry Pi: n avulla: Yllätä ystäväsi tällä shakkirobotilla! Sen rakentaminen ei ole liian vaikeaa, jos olet tehnyt LEGO -robotteja aikaisemmin ja jos sinulla on ainakin perustiedot tietokoneohjelmoinnista ja Linuxista. Robotti tekee omat liikkeensä ja käyttää visuaalista tunnistusta