Cuprins:

Șah Robot Raspberry Pi Lynxmotion AL5D Arm: 6 pași
Șah Robot Raspberry Pi Lynxmotion AL5D Arm: 6 pași

Video: Șah Robot Raspberry Pi Lynxmotion AL5D Arm: 6 pași

Video: Șah Robot Raspberry Pi Lynxmotion AL5D Arm: 6 pași
Video: Lynxmotion Robot Arm Record a Pattern 2024, Noiembrie
Anonim
Image
Image

Construiește acest robot de șah și vezi cum bate toată lumea!

Este destul de ușor de construit dacă puteți urma instrucțiunile despre cum să construiți brațul și dacă aveți cel puțin cunoștințe elementare despre programarea computerelor și Linux.

Omul, jucând alb, face o mișcare. Acest lucru este detectat de sistemul de recunoaștere vizuală. Robotul se gândește apoi și apoi își face mișcarea. Si asa mai departe …

Poate că cel mai nou lucru al acestui robot este codul pentru recunoașterea mutării. Acest cod de viziune poate fi utilizat și pentru roboții de șah construiți în multe alte moduri (cum ar fi robotul meu de șah cu construcție LEGO).

Deoarece mișcarea omului este recunoscută de un sistem de viziune, nu este nevoie de hardware special pentru tablă de șah (cum ar fi comutatoarele reed sau altceva).

Codul meu este disponibil pentru uz personal.

Pasul 1: Cerințe

Construcția hardware
Construcția hardware

Tot codul este scris în Python, care va rula, printre altele, pe un Raspberry Pi.

Raspberry Pi este un computer single-board mic, ieftin (în jur de 40 USD) dezvoltat de Raspberry Pi Foundation. Modelul original a devenit mult mai popular decât se anticipase, vândându-se pentru utilizări precum robotica

Robotul meu folosește un Raspberry Pi, iar brațul robotului este construit dintr-un kit: Lynxmotion AL5D. Kitul vine cu o placă servo controler. (Link-ul pe care tocmai l-am dat este către site-ul RobotShop din SUA; faceți clic pe unul dintre steagurile din partea dreaptă sus a paginilor site-ului lor pentru țara dvs., de exemplu, Marea Britanie).

De asemenea, veți avea nevoie de o masă, o cameră, iluminat, o tastatură, ecran și dispozitiv de indicare (de exemplu, mouse-ul). Și, desigur, piese de șah și o tablă. Descriu toate aceste lucruri mai detaliat în etapele următoare.

Pasul 2: Construirea hardware-ului

Construcția hardware
Construcția hardware

După cum am indicat anterior, inima codului de viziune va funcționa cu o varietate de versiuni.

Această versiune folosește un kit de brațe robotizate de la Lynxmotion, AL5D. Cu kitul este inclusă o placă servo controler SSC-32U, care este utilizată pentru a controla motoarele din braț.

Am ales AL5D pentru că brațul trebuie să poată face mișcări precise repetate și să nu se îndepărteze. Apucătorul trebuie să poată intra între bucăți, iar brațul trebuie să poată ajunge până la partea îndepărtată a scândurii. Mai aveam nevoie să fac câteva modificări, așa cum se detaliază mai jos.

Raspberry Pi pe care îl folosesc este un Raspberry Pi 3 Model B +. Aceasta vorbește cu placa SSC-32U printr-o conexiune USB.

EDIT: Raspberry Pi 4 este acum disponibil. Veți avea nevoie de:

  • O sursă de alimentare USB-C de 15W - vă recomandăm sursa de alimentare oficială USB-C Raspberry Pi
  • Un card microSD încărcat cu NOOBS, software-ul care instalează sistemul de operare (cumpărați un card SD preîncărcat împreună cu Raspberry Pi sau descărcați NOOBS pentru a încărca singur un card)
  • O tastatură și un mouse (vezi mai târziu)
  • Un cablu pentru conectarea la un ecran prin intermediul unui port micro HDMI al Raspberry Pi 4

Aveam nevoie de o acoperire suplimentară asupra brațului robotului, așa că am făcut câteva modificări minore, folosind piese suplimentare Lynxmotion care pot fi cumpărate de la RobotShop:

1. Înlocuit tubul de 4,5 inch cu unul de 6 inch - partea Lynxmotion AT-04, cod produs RB-Lyn-115.

2. Am încercat folosind un set suplimentar de arcuri, dar am revenit la o pereche când am implementat articolul 3 de mai jos

3. Extinderea înălțimii folosind un distanțier de 1 inch - partea Lynxmotion HUB-16, cod produs RB-Lyn-336.

4. Extinderea capacului de prindere folosind tampoane de prindere de rezervă atașate de unele piese LEGO de rezervă pe care le aveam și benzi elastice (!) Acest lucru funcționează foarte bine, deoarece introduce flexibilitate la ridicarea pieselor.

Aceste modificări pot fi văzute în imaginea de mai sus din dreapta.

Există o cameră montată deasupra tabloului de șah. Aceasta este utilizată pentru a determina mișcarea omului.

Pasul 3: Software-ul care mută robotul

Tot codul este scris în Python 2. Este necesar un cod cinematic invers pentru a deplasa corect diferitele motoare astfel încât să poată fi mutate piesele de șah. Folosesc codul bibliotecii de la Lynxmotion, care acceptă mutarea motoarelor în două dimensiuni și am adăugat la asta cu propriul cod pentru 3 dimensiuni, unghiul de prindere și mișcarea maxilarului de prindere.

Deci, avem apoi cod care va muta bucăți, va lua bucăți, castel, suport în pas și așa mai departe.

Motorul de șah este Stockfish - care poate învinge orice om! "Stockfish este unul dintre cele mai puternice motoare de șah din lume. Este, de asemenea, mult mai puternic decât cei mai buni maeștri de șah umani."

Codul pentru a conduce motorul de șah, pentru a valida faptul că o mutare este validă și așa mai departe este ChessBoard.py

Folosesc niște cod de la https://chess.fortherapy.co.uk pentru a interacționa cu asta. Codul meu (de mai sus) se interfață cu acesta!

Pasul 4: Software-ul care recunoaște mișcarea umană

Am descris acest lucru în detaliu în Instrucțiunile pentru construcția mea de robot de șah Lego - deci nu trebuie să o repet aici!

Piesele mele „negre” erau inițial maro, dar le-am vopsit în negru mat (cu „vopsea pentru tablă”), ceea ce face ca algoritmul să funcționeze mai bine în condiții de iluminare mai variabile.

Pasul 5: aparat de fotografiat, lumini, tastatură, masă, afișaj

Aparat foto, lumini, tastatură, masă, afișaj
Aparat foto, lumini, tastatură, masă, afișaj
Aparat foto, lumini, tastatură, masă, afișaj
Aparat foto, lumini, tastatură, masă, afișaj

Acestea sunt aceleași ca și în construcția mea de robot de șah Lego, așa că nu trebuie să le repet aici.

Cu excepția faptului că de data aceasta am folosit un difuzor diferit și semnificativ mai bun, un difuzor Lenrui Bluetooth, pe care îl conectez la RPi prin USB.

Disponibil de pe amazon.com, amazon.co.uk și alte puncte de vânzare.

De asemenea, acum folosesc o cameră diferită - o cameră Web HP HD 2300, deoarece nu am putut face ca camera anterioară să se comporte în mod fiabil.

Algoritmii funcționează cel mai bine dacă tabla de șah are o culoare care este departe de culoarea pieselor! În robotul meu, piesele sunt alb-maroniu și maro, iar tabla de șah este făcută manual în cărți și este de un verde deschis, cu puține diferențe între pătratele „negre” și „albe”.

Algoritmii au nevoie de o anumită orientare a camerei spre bord. Vă rugăm să comentați mai jos dacă aveți o problemă. Brațul are o acoperire limitată, astfel încât dimensiunea pătrată ar trebui să fie de 3,5 cm.

Pasul 6: Obținerea software-ului

1. Stockfish

Dacă rulați Raspbian pe RPi, puteți utiliza motorul Stockfish 7 - este gratuit. Pur și simplu alergați:

sudo apt-get install stockfish

2. ChessBoard.py Obțineți acest lucru de aici.

3. Cod bazat pe https://chess.fortherapy.co.uk/home/a-wooden-chess… Vine împreună cu codul meu.

4. Biblioteca Python 2D Inverse Kinematics -

5. Codul meu care invocă tot codul de mai sus și care îl face pe robot să facă mișcările și codul meu de viziune. Obțineți acest lucru de la mine abonându-vă mai întâi la canalul meu YouTube, apoi făcând clic pe butonul „Favorite” din partea de sus a acestui instructabil și apoi postând un comentariu la acest instructabil și voi răspunde.

Recomandat: