Talaan ng mga Nilalaman:

Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Mga Hakbang
Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Mga Hakbang

Video: Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Mga Hakbang

Video: Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Mga Hakbang
Video: Lynxmotion AL5D Robotic Arm Playing Chess 2024, Hulyo
Anonim
Image
Image

Buuin ang chess robot na ito at makita itong talunin ang lahat!

Napakadaling bumuo kung maaari mong sundin ang mga tagubilin sa kung paano mabuo ang braso, at kung mayroon kang hindi bababa sa isang elementarya na kaalaman sa computer program at Linux.

Ang tao, naglalaro ng puti, ay gumagalaw. Nakita ito ng sistema ng pagkilala sa visual. Ang robot pagkatapos ay lumubog at pagkatapos ay gumagalaw. At iba pa …

Marahil ang pinaka-nobelang bagay sa robot na ito ay ang code para sa pagkilala sa paglipat. Ang vision code na ito ay magagamit din para sa mga robot ng chess na binuo sa maraming iba pang mga paraan (tulad ng aking chess robot na may LEGO build).

Dahil ang paglipat ng tao ay kinikilala ng isang sistema ng pangitain, walang espesyal na hardware ng chess board (tulad ng mga switch ng tambo, o anupaman) na kinakailangan.

Ang aking code ay magagamit para sa personal na paggamit.

Hakbang 1: Mga Kinakailangan

Ang Hardware Build
Ang Hardware Build

Ang lahat ng code ay nakasulat sa Python, na tatakbo, bukod sa iba pang mga bagay, isang Raspberry Pi.

Ang Raspberry Pi ay isang maliit, mura (halos $ 40) solong board computer na binuo ng Raspberry Pi Foundation. Ang orihinal na modelo ay naging mas tanyag kaysa sa inaasahan, pagbebenta para sa mga gamit tulad ng robotics

Gumagamit ang aking robot ng isang Raspberry Pi, at ang braso ng robot ay binuo mula sa isang kit: Lynxmotion AL5D. Ang kit ay may kasamang servo controller board. (Ang link na naibigay ko lang ay sa site ng RobotShop sa US; mag-click sa isa sa mga watawat sa kanang tuktok ng kanilang mga pahina ng site para sa iyong bansa, hal. UK).

Kakailanganin mo rin ang isang mesa, isang camera, ilaw, isang keyboard, screen at tumuturo na aparato (hal. Mouse). At syempre, mga piraso ng chess at isang board. Inilalarawan ko ang lahat ng mga bagay na ito nang mas detalyado sa mga kasunod na hakbang.

Hakbang 2: Ang Hardware Build

Ang Hardware Build
Ang Hardware Build

Tulad ng dati kong ipinahiwatig, ang puso ng vision code ay gagana sa iba't ibang mga build.

Ang build na ito ay gumagamit ng isang robotic arm kit mula sa Lynxmotion, ang AL5D. Kasama sa kit ay isang SSC-32U servo controller board, na ginagamit upang makontrol ang mga motor sa braso.

Pinili ko ang AL5D dahil ang braso ay dapat na gumawa ng paulit-ulit na tumpak na paggalaw at hindi naaanod. Ang tagahawak ay dapat na makakuha sa pagitan ng mga piraso at ang braso ay dapat maabot ang malayo sa gilid ng board. Kailangan ko pa ring gumawa ng ilang mga pagbabago tulad ng detalyado sa ibaba.

Ang Raspberry Pi na ginagamit ko ay isang Raspberry Pi 3 Model B +. Nakikipag-usap ito sa board ng SSC-32U sa pamamagitan ng isang koneksyon sa USB.

EDIT: Ang Raspberry Pi 4 ay magagamit na ngayon. Kakailanganin mo ang:

  • Isang 15W USB-C power supply - inirerekumenda namin ang opisyal na Raspberry Pi USB-C Power Supply
  • Isang microSD card na puno ng NOOBS, ang software na nag-install ng operating system (bumili ng isang paunang naka-load na SD card kasama ang iyong Raspberry Pi, o i-download ang NOOBS upang mai-load ang iyong card mismo)
  • Isang keyboard at mouse (tingnan sa paglaon)
  • Isang cable upang kumonekta sa isang display sa pamamagitan ng isang micro HDMI port ng Raspberry Pi 4

Kailangan ko ng karagdagang pag-abot sa braso ng robot, kaya gumawa ako ng kaunting mga pagbabago dito, gamit ang mga karagdagang bahagi ng Lynxmotion na mabibili mula sa RobotShop:

1. Pinalitan ang 4.5 pulgada na tubo ng isang 6 pulgada isa - Bahaging Lynxmotion AT-04, code ng produkto RB-Lyn-115.

2. Sinubukan gamit ang isang karagdagang hanay ng mga spring, ngunit bumalik sa isang pares nang ipinatupad ko ang item 3 sa ibaba

3. Pinalawak ang taas gamit ang isang 1 pulgadang spacer - Bahagi ng Lynxmotion na HUB-16, code ng produkto RB-Lyn-336.

4. Pinalawak ang abot ng gripper gamit ang ekstrang mga gripper pad na nakakabit ng ilang ekstrang mga piraso ng LEGO na mayroon ako at nababanat na mga banda (!) Gumagana ito nang maayos, dahil ipinakikilala nito ang kakayahang umangkop kapag nakakataas ng mga piraso.

Ang mga pagbabago na ito ay maaaring makita sa imahe sa itaas sa kanan.

Mayroong isang camera na naka-mount sa itaas ng chess board. Ginagamit ito upang matukoy ang paglipat ng tao.

Hakbang 3: Ang Software Aling Gumagalaw sa Robot

Ang lahat ng mga code ay nakasulat sa Python 2. Kailangan ng kabaligtaran na code ng kinematics upang mailipat nang tama ang iba`t ibang mga motor na maaaring ilipat ang mga piraso ng chess. Gumagamit ako ng code ng library mula sa Lynxmotion na sumusuporta sa paglipat ng mga motor sa dalawang sukat at naidagdag iyon sa aking sariling code para sa 3 dimensyon, anggulo ng gripper at paggalaw ng panga ng gripper.

Kaya, mayroon kaming code na kung saan ay ilipat ang mga piraso, kumuha ng mga piraso, kastilyo, suporta en passant, at iba pa.

Ang chess engine ay Stockfish - na maaaring talunin ang sinumang tao! "Ang Stockfish ay isa sa pinakamalakas na makina ng chess sa buong mundo. Malakas din ito kaysa sa pinakamahusay na mga grandmaster ng chess ng tao."

Ang code upang himukin ang chess engine, patunayan na ang isang paglipat ay wasto, at iba pa ay ChessBoard.py

Gumagamit ako ng ilang code mula sa https://chess.fortherapy.co.uk upang mai-interface iyon. Ang aking code (sa itaas) pagkatapos ay ang mga interface sa na!

Hakbang 4: Ang Software Aling Kinikilala ang Paglipat ng Tao

Inilarawan ko ito nang detalyado sa Instructable para sa aking Chess Robot Lego build - kaya hindi ko na kailangang ulitin ito dito!

Ang aking mga "itim" na piraso ay orihinal na kayumanggi, ngunit pininturahan ko sila ng matt black (na may "blackboard pintura"), na ginagawang mas mahusay ang algorithm sa ilalim ng mas maraming variable na mga kondisyon sa pag-iilaw.

Hakbang 5: Camera, Mga ilaw, Keyboard, Talahanayan, Display

Camera, Ilaw, Keyboard, Talahanayan, Ipakita
Camera, Ilaw, Keyboard, Talahanayan, Ipakita
Camera, Ilaw, Keyboard, Talahanayan, Ipakita
Camera, Ilaw, Keyboard, Talahanayan, Ipakita

Ito ay kapareho ng sa aking Chess Robot Lego build, kaya hindi ko na kailangang ulitin ang mga ito dito.

Maliban sa oras na ito gumamit ako ng iba at makabuluhang mas mahusay na speaker, isang Lenrui Bluetooth speaker, na kumokonekta sa RPi sa pamamagitan ng USB.

Magagamit mula sa amazon.com, amazon.co.uk at iba pang mga outlet.

Gumagamit din ako ngayon ng ibang camera - isang HP Webcam HD 2300, dahil hindi ko makuha ang dating camera na kumilos nang mapagkakatiwalaan.

Ang mga algorithm ay pinakamahusay na gagana kung ang chessboard ay may isang kulay na malayo sa kulay ng mga piraso! Sa aking robot, ang mga piraso ay maputi at kayumanggi, at ang chess board ay gawa sa kamay sa card, at isang ilaw na berde na may kaunting pagkakaiba sa pagitan ng "itim" at "puting" mga parisukat.

Ang mga algorithm ay nangangailangan ng isang partikular na oryentasyon ng camera upang makasakay. Mangyaring magkomento sa ibaba kung nagkakaroon ka ng isang isyu. Ang braso ay may limitadong abot, at sa gayon ang laki ng parisukat ay dapat na 3.5 cm.

Hakbang 6: Pagkuha ng Software

1. Stockfish

Kung nagpatakbo ka ng Raspbian sa iyong RPi maaari mong gamitin ang engine ng Stockfish 7 - libre ito. Patakbuhin lang:

sudo apt-get install stockfish

2. ChessBoard.py Kunin ito mula rito.

3. Code batay sa https://chess.fortherapy.co.uk/home/a-wooden-chess… Sumasama sa aking code.

4. Python 2D Inverse Kinematics library -

5. Ang aking code na nagsasabi sa lahat ng code sa itaas at kung aling nakakakuha ng robot upang gumalaw, at ang aking code sa paningin. Kunin ito sa akin sa pamamagitan ng unang pag-subscribe sa aking channel sa YouTube, pagkatapos ay pag-click sa pindutang "Paboritong" malapit sa tuktok ng Instructable na ito at pagkatapos ay mag-post ng isang puna sa Instructable na ito, at tutugon ako.

Inirerekumendang: