Sadržaj:
- Korak 1: Zahtjevi
- Korak 2: Izgradnja hardvera
- Korak 3: Softver koji pokreće robota
- Korak 4: Softver koji prepoznaje ljudski pokret
- Korak 5: Kamera, svjetla, tipkovnica, stol, zaslon
- Korak 6: Dobivanje softvera
Video: Šahovski robot Raspberry Pi Lynxmotion AL5D Ruka: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Izgradite ovog šahovskog robota i vidite kako će pobijediti sve!
Prilično je jednostavno izgraditi ako možete slijediti upute o tome kako izgraditi ruku i ako imate barem elementarno znanje o računalnom programiranju i Linuxu.
Čovjek, igrajući bijelo, čini potez. To otkriva sustav vizualnog prepoznavanja. Robot tada razmišlja, a zatim se kreće. I tako dalje …
Možda najnovija stvar u ovom robotu je kôd za prepoznavanje poteza. Ovaj kôd vizije također se može koristiti za šahovske robote izrađene na mnoge druge načine (poput mog šahovskog robota s LEGO gradnjom).
Budući da ljudski potez prepoznaje sustav za vid, nije potreban nikakav poseban hardver za šahovsku ploču (poput trstičnih prekidača ili bilo čega drugog).
Moj kôd je dostupan za osobnu upotrebu.
Korak 1: Zahtjevi
Sav kôd je napisan na Pythonu, koji će, između ostalog, raditi na Raspberry Pi -u.
Raspberry Pi je malo, jeftino (oko 40 USD) jednokrilno računalo koje je razvila Zaklada Raspberry Pi. Izvorni model postao je daleko popularniji nego što se očekivalo, prodavajući se za namjene poput robotike
Moj robot koristi Raspberry Pi, a ruka robota izrađena je od kompleta: Lynxmotion AL5D. Komplet dolazi s pločom servo upravljača. (Veza koju sam upravo dao je na američku web stranicu RobotShopa; kliknite na jednu od zastavica u gornjem desnom kutu stranica njihove web stranice za vašu državu, npr. UK).
Također će vam trebati stol, kamera, osvjetljenje, tipkovnica, zaslon i pokazivački uređaj (npr. Miš). I naravno, šahovske figure i tabla. Sve ove stvari detaljnije opisujem u sljedećim koracima.
Korak 2: Izgradnja hardvera
Kao što sam ranije naznačio, srce koda vizije radit će s različitim nadogradnjama.
Ova konstrukcija koristi komplet robotskih ruku iz Lynxmotion -a, AL5D. U kompletu je i ploča za servo upravljač SSC-32U, koja se koristi za upravljanje motorima u ruci.
Odabrao sam AL5D jer ruka mora biti u stanju ponavljati točne pokrete i ne odmicati. Hvatač mora biti sposoban probijati se između komada, a ruka mora biti u mogućnosti doći do krajnje strane daske. Morao sam još napraviti neke izmjene kako je dolje navedeno.
Raspberry Pi koji koristim je Raspberry Pi 3 Model B+. Ovo razgovara sa pločom SSC-32U putem USB veze.
EDIT: Raspberry Pi 4 je sada dostupan. Trebat će vam:
- Napajanje USB-C od 15 W-preporučujemo službeno napajanje Raspberry Pi USB-C
- MicroSD kartica napunjena NOOBS-om, softverom koji instalira operativni sustav (kupite unaprijed učitanu SD karticu zajedno s Raspberry Pi-om ili preuzmite NOOBS da biste sami učitali karticu)
- Tipkovnica i miš (vidi kasnije)
- Kabel za povezivanje s zaslonom putem mikro HDMI priključka Raspberry Pi 4
Trebao sam daljnji zahvat na robotskoj ruci, pa sam je napravio neke manje izmjene, koristeći dodatne Lynxmotion dijelove koji se mogu kupiti u RobotShopu:
1. Zamijenjena je cijev od 4,5 inča sa cijelom od 6 inča-Lynxmotion dio AT-04, šifra proizvoda RB-Lyn-115.
2. Pokušao sam koristiti dodatni set opruga, ali vratio sam se na jedan par kada sam implementirao donju stavku 3
3. Povećali visinu razmakom od 1 inča-Lynxmotion dio HUB-16, šifra proizvoda RB-Lyn-336.
4. Prošireni doseg hvataljki pomoću rezervnih uložaka hvataljki pričvršćenih nekim rezervnim LEGO komadima koje sam imao i elastičnim trakama (!) Ovo funkcionira vrlo dobro jer uvodi fleksibilnost pri podizanju komada.
Ove se izmjene mogu vidjeti na gornjoj slici desno.
Iznad šahovske ploče postavljena je kamera. Ovo se koristi za određivanje kretanja čovjeka.
Korak 3: Softver koji pokreće robota
Sav kôd napisan je na Pythonu 2. Inverzna kinematička šifra potrebna je za pravilno kretanje različitih motora tako da se šahovske figure mogu pomicati. Koristim knjižnični kod iz Lynxmotion -a koji podržava pomicanje motora u dvije dimenzije i tome sam dodao svoj kôd za 3 dimenzije, kut hvataljke i kretanje čeljusti hvataljke.
Dakle, tada imamo kôd koji će pomicati komade, uzimati komade, zamak, podržavati en passant itd.
Šahovski motor je Stockfish - koji može pobijediti svakog čovjeka! "Stockfish je jedan od najjačih šahovskih motora na svijetu. Također je mnogo jači od najboljih ljudskih šahovskih velemajstora."
Kôd za pokretanje šahovske mašine, provjeru valjanosti poteza i tako dalje je ChessBoard.py
Za povezivanje s tim koristim neki kôd s https://chess.fortherapy.co.uk. Moj kôd (gore) tada se povezuje s tim!
Korak 4: Softver koji prepoznaje ljudski pokret
To sam detaljno opisao u uputama za moju Lego verziju šahovskog robota - pa ne moram to ponavljati ovdje!
Moji su "crni" komadi izvorno bili smeđi, ali obojala sam ih u mat crno ("bojom za ploču"), što čini da algoritam bolje radi u promjenjivijim uvjetima osvjetljenja.
Korak 5: Kamera, svjetla, tipkovnica, stol, zaslon
Oni su isti kao u mojoj Lego verziji šahovskog robota, pa ih ne moram ovdje ponavljati.
Osim što sam ovaj put upotrijebio drugačiji i znatno bolji zvučnik, Lenrui Bluetooth zvučnik, koji spajam na RPi putem USB -a.
Dostupno na amazon.com, amazon.co.uk i drugim prodajnim mjestima.
Također sada koristim drugu kameru - HP web kameru HD 2300 jer nisam mogao postići da se prethodna kamera pouzdano ponaša.
Algoritmi najbolje funkcioniraju ako šahovska ploča ima boju koja je daleko od boje figura! U mom robotu figure su prljavobijele i smeđe, a šahovska ploča ručno izrađena u kartonu i svijetlozelena je s malom razlikom između "crnih" i "bijelih" kvadrata.
Algoritmi trebaju posebnu orijentaciju kamere prema ploči. U nastavku napišite komentar ako imate problema. Ruka ima ograničen doseg, pa bi veličina kvadrata trebala biti 3,5 cm.
Korak 6: Dobivanje softvera
1. Stočna riba
Ako pokrećete Raspbian na svom RPi -u, možete koristiti Stockfish 7 engine - besplatan je. Samo trči:
sudo apt-get install stockfish
2. ChessBoard.py Preuzmite ovo odavde.
3. Kôd temeljen na https://chess.fortherapy.co.uk/home/a-wooden-chess… Dolazi s mojim kodom.
4. Python 2D inverzna kinematička knjižnica -
5. Moj kôd koji poziva sve gore navedene kodove i koji tjera robota na poteze, i moj kôd vida. Dobijte ovo od mene tako što ćete se najprije pretplatiti na moj YouTube kanal, zatim kliknuti na gumb "Omiljeno" pri vrhu ovog Instructable -a, a zatim objaviti komentar na ovom Instructable -u, i ja ću vam odgovoriti.
Preporučeni:
Arduino šahovski sat: 6 koraka
Arduino šahovski sat: Nisam mogao pronaći upute za dobar Arduino šahovski sat pa sam umjesto toga izgradio svoj koji ću ovdje opisati
Šahovski robot napravljen s LEGO -om i Raspberry Pi: 6 koraka
Šahovski robot napravljen s LEGO -om i Raspberry Pi: Zadivite svoje prijatelje ovim šahovskim robotom! Nije previše teško izgraditi ako ste već radili LEGO robote i ako imate barem osnovno znanje o računalnom programiranju i Linuxu. Robot čini vlastite poteze i koristi vizualno prepoznavanje
Jednostavan Arduino šahovski sat: 5 koraka
Jednostavni Arduino šahovski sat: Kad sam razmišljao raditi šahovski sat s Arduinom, cilj je bio izgraditi pomoću jednostavnog programiranja bez klase upotrebe i raditi s AVR registrom. Korištena je baza Arduino Reference. Najteže je bilo manipulirati odbrojavanjem koristeći samo
Treća ruka ++: višenamjenska ruka za pomoć u elektronici i drugim osjetljivim radovima .: 14 koraka (sa slikama)
Treća ruka ++: višenamjenska ruka za pomoć u elektronici i drugim osjetljivim poslovima. U prošlosti sam koristio treće ruke/ruke pomoći u lancima elektroničke trgovine i bio sam frustriran njihovom upotrebljivošću. Nikada nisam mogao dobiti isječke točno tamo gdje sam ih želio ili je trebalo više vremena nego što je stvarno potrebno za postavljanje
LED šahovski set - jednostavna verzija: 12 koraka
LED šahovska garnitura-jednostavna verzija: Tetranitrate je ranije objavio izvrsne upute o tome kako napraviti LED šahovsku garnituru ovdje: https: //www.instructables.com/id/LED-Chess-Set/Našao sam to putem BoingBoinga, ali nisam mogao ' Neću se mučiti s izradom takvog izgleda. Samo sam htio jednu