Sadržaj:

Šahovski robot Raspberry Pi Lynxmotion AL5D Ruka: 6 koraka
Šahovski robot Raspberry Pi Lynxmotion AL5D Ruka: 6 koraka

Video: Šahovski robot Raspberry Pi Lynxmotion AL5D Ruka: 6 koraka

Video: Šahovski robot Raspberry Pi Lynxmotion AL5D Ruka: 6 koraka
Video: Robotic arm test (Lynxmotion AL5B) 2024, Decembar
Anonim
Image
Image

Izgradite ovog šahovskog robota i vidite kako će pobijediti sve!

Prilično je lako izgraditi ako slijedite upute o tome kako izgraditi ruku i ako imate barem osnovno znanje o računalnom programiranju i Linuxu.

Čovek, igrajući se belog, pravi potez. To otkriva sistem vizuelnog 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 pokreta. Ovaj kôd vizije može se koristiti i za šahovske robote napravljene na mnoge druge načine (poput mog šahovskog robota s LEGO gradnjom).

Budući da ljudski potez prepoznaje sistem za vid, nije potreban poseban hardver za šahovsku ploču (poput trstičnih prekidača ili bilo čega drugog).

Moj kôd je dostupan za ličnu upotrebu.

Korak 1: Zahtjevi

Konstrukcija hardvera
Konstrukcija hardvera

Sav kod je napisan na Pythonu, koji će, između ostalog, raditi na Raspberry Pi -u.

Raspberry Pi je mali, jeftin (oko 40 USD) jednokrilni računar razvijen od strane Raspberry Pi Foundation. Originalni 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 je napravljena od kompleta: Lynxmotion AL5D. Komplet dolazi sa servo upravljačkom pločom. (Link koji sam upravo dao je na američku web stranicu RobotShop -a; kliknite na jednu od zastavica u gornjem desnom kutu stranica njihove web stranice za vašu državu, npr. UK).

Trebat će vam i stol, kamera, osvjetljenje, tastatura, ekran i pokazivački uređaj (npr. Miš). I naravno, šahovske figure i tabla. Sve ove stvari detaljnije opisujem u narednim koracima.

Korak 2: Izgradnja hardvera

Konstrukcija hardvera
Konstrukcija hardvera

Kao što sam ranije naznačio, srce koda vizije će raditi 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.

Izabrao sam AL5D jer ruka mora biti u stanju da pravi ponovljene precizne pokrete i da se ne odmiče. Hvatač mora biti u mogućnosti prolaziti između komada, a ruka mora biti u mogućnosti dohvatiti do krajnje strane daske. I dalje sam morao 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 sistem (kupite unaprijed učitanu SD karticu zajedno s Raspberry Pi-om ili preuzmite NOOBS da biste sami učitali karticu)
  • Tastatura i miš (pogledajte kasnije)
  • Kabel za povezivanje s ekranom putem mikro HDMI porta Raspberry Pi 4

Trebao mi je 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 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 sam se vratio na jedan par kada sam implementirao stavku 3 ispod

3. Produžite visinu pomoću odstojnika od 1 inča-Lynxmotion dio HUB-16, šifra proizvoda RB-Lyn-336.

4. Produžen doseg hvataljki pomoću rezervnih jastučića 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 izmjene se 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 je napisan na Pythonu 2. Inverzna kinematička šifra potrebna je za pravilno premještanje različitih motora tako da se šahovske figure mogu pomicati. Koristim bibliotečki kôd 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 prolazne 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

Koristim neki kod sa https://chess.fortherapy.co.uk za povezivanje s tim. Moj kôd (gore) tada se povezuje s tim!

Korak 4: Softver koji prepoznaje ljudski pokret

Ovo sam detaljno opisao u uputstvu za moju Lego verziju šahovskog robota - pa ne moram to ponavljati ovdje!

Moji "crni" delovi su prvobitno bili smeđi, ali sam ih ofarbao u mat crno (sa "bojom na tabli"), što čini da algoritam radi bolje u promenljivijim uslovima osvetljenja.

Korak 5: Kamera, svjetla, tastatura, stol, ekran

Kamera, svjetla, tastatura, sto, ekran
Kamera, svjetla, tastatura, sto, ekran
Kamera, svjetla, tastatura, sto, ekran
Kamera, svjetla, tastatura, sto, ekran

Oni su isti kao u mojoj Lego verziji šahovskog robota, pa ih ne moram ovdje ponavljati.

Osim što sam ovaj put koristio drugačiji i znatno bolji zvučnik, Lenrui Bluetooth zvučnik, koji povezujem 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 navesti prethodnu kameru da se ponaša pouzdano.

Algoritmi najbolje funkcioniraju ako šahovska ploča ima boju koja je daleko od boje figura! U mom robotu, figure su prljavo bijele i smeđe, a šahovska ploča ručno izrađena u kartonu i svijetlozelena je s malom razlikom između "crnog" i "bijelog" kvadrata.

Algoritmi trebaju posebnu orijentaciju kamere na ploču. Molimo vas da u nastavku napišete komentar ako imate problem. Ruka ima ograničen doseg, pa bi kvadratna veličina trebala biti 3,5 cm.

Korak 6: Dobivanje softvera

1. Stoka

Ako pokrećete Raspbian na svom RPi -u, možete koristiti Stockfish 7 engine - besplatan je. Samo pokrenite:

sudo apt-get install stockfish

2. ChessBoard.py Preuzmite ovo odavde.

3. Kôd zasnovan na https://chess.fortherapy.co.uk/home/a-wooden-chess… Dolazi s mojim kodom.

4. Python 2D inverzna kinematička biblioteka -

5. Moj kôd koji poziva sve gore navedene kodove i koji tjera robota na poteze, i moj kôd za vid. Dobijte ovo od mene tako što ćete se prvo pretplatiti na moj YouTube kanal, zatim kliknuti na dugme "Omiljeno" pri vrhu ovog uputstva, a zatim objaviti komentar na ovom uputstvu, a ja ću vam odgovoriti.

Preporučuje se: