Mundarija:
- 1 -qadam: talablar
- 2 -qadam: Uskuna tuzilishi
- 3 -qadam: Robotni harakatga keltiruvchi dastur
- 4 -qadam: Inson harakatini tan oladigan dastur
- 5 -qadam: Kamera, chiroqlar, klaviatura, stol, displey
- 6 -qadam: Dasturiy ta'minotni olish
Video: Shaxmat roboti Raspberry Pi Lynxmotion AL5D qo'l: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Bu shaxmat robotini yarating va u hammani mag'lub etayotganini ko'ring!
Agar siz qo'lni qanday qurish bo'yicha ko'rsatmalarga amal qilsangiz va kompyuter dasturlash va Linux haqida hech bo'lmaganda boshlang'ich ma'lumotga ega bo'lsangiz, qurish juda oson.
Odam oq rangda o'ynab, harakat qiladi. Bu vizual aniqlash tizimi yordamida aniqlanadi. Keyin robot mulohaza yuritadi va keyin harakat qiladi. Va hokazo …
Ehtimol, bu robotdagi eng yangi narsa - bu harakatni aniqlash kodi. Bu ko'rish kodi boshqa yo'llar bilan qurilgan shaxmat robotlari uchun ham ishlatilishi mumkin (masalan, mening shaxmat robotim LEGO qurilgan).
Insonning harakatini ko'rish tizimi aniqlaganligi uchun shaxmat taxtasi uchun maxsus asboblar kerak emas (masalan, qamish kalitlari va boshqalar).
Mening kodim shaxsiy foydalanish uchun mavjud.
1 -qadam: talablar
Barcha kod Python -da yozilgan, u boshqa narsalar qatorida Raspberry Pi -da ishlaydi.
Raspberry Pi-Raspberry Pi jamg'armasi tomonidan ishlab chiqilgan kichik, arzon (taxminan 40 dollar) bitta taxtali kompyuter. Asl model kutilganidan ancha mashhur bo'lib ketdi, robototexnika kabi maqsadlarda sotildi
Mening robotim Raspberry Pi -dan foydalanadi va robot qo'li komplektdan qurilgan: Lynxmotion AL5D. To'plam servo boshqaruv paneli bilan birga keladi. (Men bergan havola RobotShop -ning AQShdagi saytiga tegishli; sizning saytingiz sahifalarining yuqori o'ng burchagidagi bayroqlardan birini bosing, masalan, Buyuk Britaniya).
Shuningdek, sizga stol, kamera, yorug'lik, klaviatura, ekran va ko'rsatgich qurilmasi (masalan, sichqoncha) kerak bo'ladi. Va, albatta, shaxmat bo'laklari va taxta. Men bularning barchasini keyingi bosqichlarda batafsilroq tasvirlab beraman.
2 -qadam: Uskuna tuzilishi
Yuqorida aytib o'tganimdek, ko'rish kodining yuragi turli xil tuzilmalar bilan ishlaydi.
Ushbu qurilishda Lynxmotion, AL5D robotlashtirilgan qo'l to'plami ishlatiladi. To'plamga qo'lda motorlarni boshqarish uchun ishlatiladigan SSC-32U servo boshqaruv paneli kiradi.
Men AL5D ni tanladim, chunki qo'l bir necha marta aniq harakatlarni amalga oshirishi va chetga burilmasligi kerak. Tutqich qismlar orasiga kira olishi kerak, qo'l esa taxtaning narigi tomoniga yetishi kerak. Men hali ham quyida batafsilroq bo'lgani kabi ba'zi o'zgartirishlarni kiritishim kerak edi.
Men foydalanadigan Raspberry Pi - bu Raspberry Pi 3 Model B+. Bu USB ulanishi orqali SSC-32U kartasi bilan gaplashadi.
EDIT: Raspberry Pi 4 endi mavjud. Sizga kerak bo'ladi:
- 15W USB-C quvvat manbai-Raspberry Pi USB-C rasmiy quvvat manbasini tavsiya qilamiz
- Operatsion tizimni o'rnatuvchi dasturiy ta'minot NOOBS o'rnatilgan microSD karta (Raspberry Pi bilan birga oldindan yuklangan SD-kartani sotib oling yoki kartani o'zingiz yuklash uchun NOOBS-ni yuklab oling)
- Klaviatura va sichqoncha (keyinroq qarang)
- Raspberry Pi 4 -ning micro HDMI porti orqali displeyga ulanish uchun kabel
Menga robot qo'lini yaqinroq tutishim kerak edi, shuning uchun RobotShop -dan sotib olinadigan qo'shimcha Lynxmotion qismlari yordamida unga biroz o'zgartirish kiritdim:
1. 4,5 dyuymli naychani 6 dyuymli Lynxmotion qismi AT-04 bilan almashtirildi, mahsulot kodi RB-Lyn-115.
2. Qo'shimcha buloqlar to'plamidan foydalanishga harakat qildim, lekin quyida 3 -bandni amalga oshirganimda bir juftga qaytdim
3. Balandligi 1 dyuymli ajratuvchi-Lynxmotion qismi HUB-16, mahsulot kodi RB-Lyn-336 yordamida kengaytirildi.
4. LEGO -ning zaxira qismlari va elastik tasmalar bilan biriktirilgan zaxira ushlagichlar yordamida ushlagichning masofasi kengaytirildi (!) Bu juda yaxshi ishlaydi, chunki u bo'laklarni ko'tarishda moslashuvchanlikni ta'minlaydi.
Ushbu o'zgarishlarni o'ngdagi yuqoridagi rasmda ko'rish mumkin.
Shaxmat taxtasi ustida kamera o'rnatilgan. Bu odamning harakatini aniqlash uchun ishlatiladi.
3 -qadam: Robotni harakatga keltiruvchi dastur
Hamma kod Python 2 da yozilgan. Har xil dvigatellarni shaxmat qismlarini siljitish uchun ularni to'g'ri harakatlantirish uchun teskari kinematik kod kerak. Men Lynxmotion kutubxona kodini ishlataman, u dvigatellarni ikki o'lchovli harakatlantirishni qo'llab -quvvatlaydi va bunga o'z o'lchamim bilan 3 o'lchov, tutqich burchagi va ushlagich jag'ining harakati qo'shiladi.
Shunday qilib, bizda bo'laklarni ko'chiradigan, bo'laklarni oladigan, qal'ani qo'llab -quvvatlaydigan va hokazo kodlar mavjud.
Shaxmat dvigateli - Stockfish - har qanday odamni mag'lub eta oladi! "Stockfish - dunyodagi eng kuchli shaxmat dvigatellaridan biri. U, shuningdek, eng yaxshi inson shaxmat grossmeysterlariga qaraganda ancha kuchli".
Shaxmat dvigatelini boshqaradigan kod, harakatning to'g'riligini tasdiqlash va boshqalar ChessBoard.py
Men bu bilan bog'lanish uchun https://chess.fortherapy.co.uk saytidan ba'zi kodlardan foydalanaman. Mening kodim (yuqoridagi) keyin bu bilan interfeys!
4 -qadam: Inson harakatini tan oladigan dastur
Men buni Lego shaxmat robotim uchun ko'rsatmalarda batafsil tasvirlab berdim - shuning uchun uni bu erda takrorlashning hojati yo'q!
Mening "qora" bo'laklarim dastlab jigarrang edi, lekin men ularni mat qora rangga bo'yadim ("doska bo'yog'i" bilan), bu algoritm yorug'lik o'zgaruvchan sharoitda yaxshiroq ishlashini ta'minlaydi.
5 -qadam: Kamera, chiroqlar, klaviatura, stol, displey
Bular Lego shaxmat robotimdagi kabi, shuning uchun ularni bu erda takrorlashning hojati yo'q.
Bu safar men RPi -ga USB orqali ulanadigan, boshqa va sezilarli darajada yaxshiroq bo'lgan, Lenrui Bluetooth dinamikidan foydalandim.
Amazon.com, amazon.co.uk va boshqa savdo nuqtalarida mavjud.
Bundan tashqari, men boshqa kameradan foydalanmoqdaman - HP Webcam HD 2300, chunki oldingi kamerani ishonchli ishlashiga yo'l qo'ymadim.
Agar shaxmat taxtasi bo'laklarning rangidan ancha uzoqda bo'lsa, algoritmlar eng yaxshi ishlaydi! Mening robotimdagi bo'laklar oq va jigarrang, shaxmat taxtasi qo'lda kartochkada, och yashil rangda, "qora" va "oq" kvadratlar o'rtasida unchalik farq yo'q.
Algoritmlarga kameraning aniq yo'nalishi kerak. Agar sizda muammo bo'lsa, quyida izoh qoldiring. Qo'lning cheklangan chegarasi bor, shuning uchun kvadrat kattaligi 3,5 sm bo'lishi kerak.
6 -qadam: Dasturiy ta'minotni olish
1. Baliq
Agar siz Raspbian -ni RPi -da ishlatsangiz, Stockfish 7 dvigatelidan foydalanishingiz mumkin - bu bepul. Yugur:
sudo apt-get stockfish-ni o'rnating
2. ChessBoard.py Buni shu erdan oling.
3. https://chess.fortherapy.co.uk/home/a-wooden-chess… ga asoslangan kod Mening kodim bilan birga keladi.
4. Python 2D teskari kinematika kutubxonasi -
5. Yuqoridagi barcha kodni chaqiradigan va robotni harakatlarni bajarishga majburlaydigan mening kodim va ko'rish kodim. Buni mendan oling, avval mening YouTube kanalimga obuna bo'ling, so'ngra ushbu ko'rsatmaning yuqori qismidagi "Sevimli" tugmachasini bosing va keyin ushbu ko'rsatmaga sharh yozing, men javob beraman.
Tavsiya:
LEGO va Raspberry Pi -dan tayyorlangan shaxmat robot: 6 qadam
Shaxmat roboti LEGO va Raspberry Pi bilan yaratilgan: bu shaxmat robot bilan do'stlaringizni hayratda qoldiring! Agar siz ilgari LEGO robotlarini yaratgan bo'lsangiz va kompyuter dasturlash va Linux haqida hech bo'lmaganda boshlang'ich bilimga ega bo'lsangiz, robotni o'zi bajaradi va vizual tanishni ishlatadi
Cho'ntak shaxmat: 4 qadam
Cho'ntak shaxmat: bu shaxmat! Sizning cho'ntagingizda. Ushbu loyiha ilon, pac-man, tetris va hatto shaxmat kabi kichik o'yinlarni boshqaradigan kichik qurilma yaratishga qaratilgan
Shaxmat so'zlari: 7 qadam (rasmlar bilan)
Og'zaki so'zlar shaxmat donalari: Men o'z ovozimdan foydalanib, juda shaxsiy shaxmat buyumlarini yasadim. Har bir bo'lak o'z nomini aytayotganda qilgan ovozim shakliga asoslangan. Bu to'liq to'plam emas, chunki boshqa tomon ham xuddi shunday bo'lishi kerak, lekin raqibimning ovozi bilan.
Oddiy Arduino shaxmat soati: 5 qadam
Oddiy Arduino shaxmat soati: Men Arduino bilan shaxmat soati qilishni o'ylaganimda, maqsad oddiy dasturlash yordamida sinfsiz va AVR registri bilan ishlash edi. Amaldagi baza Arduino Reference edi. Eng qiyin narsa - taymerni faqat … yordamida o'zgartirish
Raqamli shaxmat - shaxmat o'yiningizni onlayn kuzatib boring: 5 qadam
Raqamli shaxmat - shaxmat o'yiningizni onlayn kuzatib boring: Men yoshligimdan ko'p shaxmat o'ynaganman va Internetda shaxmat o'ynash uchun juda ko'p veb -saytlar mavjud bo'lgani uchun men hech qachon veb -sayt topmaganman. bu siz o'ynayotgan shaxmat o'yiningizni kuzatib boradi