Cuprins:
- Pasul 1: Cerințe
- Pasul 2: Construirea hardware-ului
- Pasul 3: Software-ul care mută robotul
- Pasul 4: Software-ul care recunoaște mișcarea umană
- Pasul 5: aparat de fotografiat, lumini, tastatură, masă, afișaj
- Pasul 6: Obținerea software-ului
Video: Șah Robot Raspberry Pi Lynxmotion AL5D Arm: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
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
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
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
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:
Robot de șah realizat cu LEGO și Raspberry Pi: 6 pași
Robot de șah realizat cu LEGO și Raspberry Pi: Uimiți-vă prietenii cu acest robot de șah! Nu este prea dificil de construit dacă ați creat roboți LEGO înainte și dacă aveți cel puțin cunoștințe elementare despre programarea computerelor și Linux. Robotul își face propriile mișcări și folosește recunoașterea vizuală
Șah de buzunar: 4 pași
Șah de buzunar: Este șah! În buzunar. Acest proiect își propune să creeze un dispozitiv mic care poate rula jocuri mici, cum ar fi șarpe, pac-man, tetris și chiar șah
Piese de șah vorbite: 7 pași (cu imagini)
Piese de șah vorbite: am făcut câteva piese de șah foarte personale folosind vocea mea. Fiecare piesă se bazează pe forma sunetului pe care l-am făcut în timp ce-i spuneam numele. Nu este un set complet, deoarece cealaltă parte ar trebui făcută în același mod, ci cu vocea adversarului meu
Ceas de șah Arduino simplu: 5 pași
Ceas de șah Arduino simplu: Când m-am gândit să fac un ceas de șah cu Arduino, scopul a fost să construiesc folosind o programare simplă fără clasa de utilizare și să lucrez cu registrul AVR. Baza utilizată a fost Arduino Reference. Cel mai dificil lucru a fost să manipulezi cronometrul folosind doar
Șah digital - Urmăriți-vă jocul de șah online: 5 pași
Șah digital - Urmăriți-vă jocul de șah online: Am jucat o mulțime de șah încă de când eram tânăr și, din moment ce internetul are o cantitate imensă de site-uri web pentru a juca șah împotriva computerelor sau a adversarilor live, nu am găsit niciodată un site web care vă urmărește jocul de șah în care jucați de fapt