Мазмұны:
- 1 -қадам: талаптар
- 2 -қадам: аппараттық құралдарды құрастыру
- 3 -қадам: роботты жылжытатын бағдарлама
- 4 -қадам: Адамның қозғалысын танитын бағдарлама
- 5 -қадам: Камера, шамдар, пернетақта, үстел, дисплей
- 6 -қадам: Бағдарламалық қамтамасыз етуді алу
Бейне: Шахмат роботы Raspberry Pi Lynxmotion AL5D қол: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл шахмат роботын жасаңыз және оның барлығын жеңетінін көріңіз!
Егер сіз қолды қалай жасау керектігі туралы нұсқауларды орындасаңыз және компьютерлік бағдарламалау мен Linux туралы қарапайым білімге ие болсаңыз, оны құру өте оңай.
Ақ ойнаған адам қимыл жасайды. Бұл визуалды тану жүйесі арқылы анықталады. Содан кейін робот ойланады, содан кейін қозғалысын жасайды. Және тағы басқа …
Мүмкін, бұл роботтағы ең жаңа нәрсе - бұл қозғалысты тану коды. Бұл көру коды басқа әдістермен жасалған шахмат роботтары үшін де қолдануға болады (мысалы, менің шахмат роботым LEGO құрастырылған).
Адамның қозғалысы көру жүйесімен танылатындықтан, шахмат тақтасының арнайы жабдықтары қажет емес (мысалы, қамыс қосқыштары немесе басқалары).
Менің кодым жеке пайдалануға арналған.
1 -қадам: талаптар
Барлық код Python -да жазылған, ол басқалармен қатар Raspberry Pi -де жұмыс істейді.
Raspberry Pi-Raspberry Pi Foundation жасаған шағын, қымбат емес (шамамен 40 доллар) бір тақталы компьютер. Түпнұсқа модель робототехника сияқты мақсаттарда сатылатыннан әлдеқайда танымал болды
Менің роботым Raspberry Pi пайдаланады, ал роботтың қолы жиынтықтан жасалған: Lynxmotion AL5D. Жинақ серво контроллер тақтасымен бірге келеді. (Мен берген сілтеме RobotShop -тың АҚШ сайтына сілтеме болып табылады; сіздің ел үшін сайт беттерінің оң жақ жоғарғы жағындағы жалаушалардың бірін басыңыз, мысалы Ұлыбритания).
Сондай -ақ, сізге үстел, камера, жарықтандыру, пернетақта, экран және меңзегіш құрылғы қажет (мысалы, тышқан). Әрине, шахмат фигуралары мен тақта. Мен мұның бәрін келесі қадамдарда толығырақ сипаттаймын.
2 -қадам: аппараттық құралдарды құрастыру
Мен бұрын айтқанымдай, көру кодының жүрегі әр түрлі құрылымдармен жұмыс істейді.
Бұл құрылымда Lynxmotion, AL5D роботтық қол жиынтығы қолданылады. Жинаққа SSC-32U серво-контроллер тақтасы кіреді, ол біліктегі қозғалтқыштарды басқаруға арналған.
Мен AL5D -ді таңдадым, себебі білек бірнеше рет дәл қимыл жасай алады және ауытқымайды. Тұтқыш бөліктердің арасына кіруі керек, ал қолы тақтаның шетіне жетуі керек. Маған төменде егжей -тегжейлі кейбір өзгерістер енгізу қажет болды.
Мен қолданатын Raspberry Pi - бұл Raspberry Pi 3 моделі B+. Бұл USB қосылымы арқылы SSC-32U тақтасымен сөйлеседі.
EDIT: Raspberry Pi 4 енді қол жетімді. Сізге қажет:
- 15 Вт USB-C қуат көзі-біз ресми Raspberry Pi USB-C қуат көзін ұсынамыз
- Операциялық жүйені орнататын NOOBS жүктелген microSD картасы (Raspberry Pi-мен бірге алдын ала жүктелген SD картасын сатып алыңыз немесе картаны өзіңіз жүктеу үшін NOOBS жүктеңіз)
- Пернетақта мен тінтуір (кейінірек қараңыз)
- Raspberry Pi 4 микро HDMI порты арқылы дисплейге қосылатын кабель
Маған роботтың қолына жету керек болды, сондықтан мен RobotShop -тан сатып алуға болатын қосымша Lynxmotion бөлшектерін қолдана отырып, оған біраз өзгерістер енгіздім:
1. 4,5 дюймдік түтікті 6 дюймдік Lynxmotion бөлігімен ауыстырды AT-04, өнім коды RB-Lyn-115.
2. Қосымша серіппелер жиынтығын қолдануға тырыстым, бірақ мен төмендегі 3 -тармақты орындаған кезде бір жұпқа оралдым
3. Биіктігі 1 дюймдік аралық-Lynxmotion бөлігі HUB-16, өнім коды RB-Lyn-336 көмегімен ұзартылды.
4. Менде LEGO қосалқы бөлшектері мен серпімді белдеулермен бекітілген қосалқы жастықшалар көмегімен ұстағыштың кеңеюі кеңейтілді (!) Бұл өте жақсы жұмыс істейді, себебі ол бөлшектерді көтеру кезінде икемділікті енгізеді.
Бұл өзгерістерді жоғарыдағы суреттен оң жақта көруге болады.
Шахмат тақтасының үстіне камера орнатылған. Бұл адамның қозғалысын анықтау үшін қолданылады.
3 -қадам: роботты жылжытатын бағдарлама
Барлық код Python 2 -де жазылған. Шахмат фигураларын жылжыту үшін әр түрлі қозғалтқыштарды дұрыс жылжыту үшін кері кинематикалық код қажет. Мен қозғалтқыштарды екі өлшемде жылжытуды қолдайтын Lynxmotion кітапханалық кодын қолданамын және оған 3 өлшемді, ұстағыш бұрышы мен жақ сүйегінің қозғалысы үшін өз кодыммен қостым.
Сонымен, бізде бөліктерді жылжытатын, бөлшектерді алатын, құлыптайтын, қолдау көрсететін және т.
Шахмат қозғалтқышы - Stockfish, ол кез келген адамды жеңе алады! «Стокфиш - әлемдегі ең мықты шахмат қозғалтқыштарының бірі. Ол сонымен қатар адамның ең жақсы шахмат гроссмейстерлерінен әлдеқайда күшті».
Шахмат қозғалтқышын басқаратын код, қозғалыстың дұрыстығын растайды, және т.б. ChessBoard.py
Мен интерфейс үшін https://chess.fortherapy.co.uk сайтынан кейбір кодты қолданамын. Менің кодым (жоғарыда) онымен интерфейс жасайды!
4 -қадам: Адамның қозғалысын танитын бағдарлама
Мен мұны Lego шахмат роботына арналған нұсқаулықта егжей -тегжейлі сипаттадым - сондықтан оны мұнда қайталаудың қажеті жоқ!
Менің «қара» бөліктерім бастапқыда қоңыр түсті, бірақ мен оларды күңгірт қара түске боядым («тақта бояумен»), бұл алгоритм жарықтандырудың ауыспалы жағдайында жақсы жұмыс жасайды.
5 -қадам: Камера, шамдар, пернетақта, үстел, дисплей
Бұл менің Lego шахмат роботындағыдай, сондықтан оларды мұнда қайталаудың қажеті жоқ.
Бұл жолы мен RPi -ге USB арқылы қосылатын басқа және айтарлықтай жақсы динамикті, Lenrui Bluetooth динамигін қолдандым.
Amazon.com, amazon.co.uk және басқа сауда нүктелерінде қол жетімді.
Сонымен қатар мен қазір басқа камераны қолданамын - HP Webcam HD 2300, себебі мен алдыңғы камераны сенімді ұстай алмадым.
Алгоритмдер шахмат тақтасының түсі фигуралардың түсінен ұзақ болса жақсы жұмыс істейді! Менің роботымда фигуралар ақшыл-қоңыр және шахмат тақтасы қолдан жасалған, ашық жасыл, «қара» мен «ақ» квадраттардың айырмашылығы жоқ.
Алгоритмдерге камераның нақты бағыты қажет. Егер сізде мәселе туындаса, төменде түсініктеме беріңіз. Қолдың қолы шектеулі, сондықтан шаршы өлшемі 3,5 см болуы керек.
6 -қадам: Бағдарламалық қамтамасыз етуді алу
1. Балық балықтары
Егер сіз Raspi -ді RPi -де іске қоссаңыз, Stockfish 7 қозғалтқышын пайдалануға болады - бұл тегін. Тек жүгір:
sudo apt-get stockfish орнатыңыз
2. ChessBoard.py Мұны мына жерден алыңыз.
3. https://chess.fortherapy.co.uk/home/a-wooden-chess… негізделген код Менің кодыммен бірге келеді.
4. Python 2D кері кинематика кітапханасы -
5. Жоғарыдағы барлық кодты шақыратын және роботты қимыл жасауға мәжбүрлейтін менің кодым және менің көру коды. Мұны алдымен менің YouTube каналыма жазылу арқылы алыңыз, содан кейін осы нұсқаулықтың жоғарғы жағындағы «Таңдаулылар» түймесін басып, содан кейін осы нұсқаулыққа түсініктеме жариялаңыз, мен жауап беремін.
Ұсынылған:
Шахмат роботы LEGO мен Raspberry Pi -ден жасалған: 6 қадам
Шахмат роботы LEGO мен Raspberry Pi көмегімен жасалған: Бұл шахмат роботымен достарыңызды таң қалдырыңыз! Егер сіз LEGO роботтарын бұрын жасаған болсаңыз және компьютерлік бағдарламалау мен Linux туралы қарапайым білімге ие болсаңыз, оны құру қиын емес
Цифрлық шахмат - Онлайн шахмат ойынын бақылаңыз: 5 қадам
Цифрлық шахмат - шахмат ойынын онлайн қадағалаңыз: Мен жас кезімнен көп шахмат ойнадым, ал компьютерде немесе тірі қарсыластарда шахмат ойнауға арналған көптеген веб -сайттар болғандықтан, мен ешқашан веб -сайт таппадым. бұл сіз ойнайтын шахмат ойынын бақылайды
4 DOF механикалық қол роботы Arduino басқарады: 6 қадам
4 DOF механикалық қол роботы Arduino басқарады: Жақында мен бұл жинақты aliexpress -тен сатып алдым, бірақ мен осы модельге сәйкес келетін нұсқаулық таба алмадым. Осылайша, оны екі рет дерлік құрастырып, серво орнатудың дұрыс бұрыштарын анықтау үшін көптеген тәжірибелер жасау керек
Май роботы: экзистенциалды дағдарысы бар Arduino роботы: 6 қадам (суреттермен)
Сары май роботы: экзистенциалды дағдарысы бар Arduino роботы: Бұл жоба «Рик пен Морти» анимациялық сериясына негізделген. Эпизодтардың бірінде Рик робот жасайды, оның жалғыз мақсаты - май әкелу. Брюсфейдің (Брюссель инженерлік факультетінің) студенттері ретінде бізде механикаға тапсырма бар
Үшінші қол ++: электроника мен басқа да нәзік жұмыстарға арналған көп мақсатты көмекші қол.: 14 қадам (суреттермен)
Үшінші қол ++: электроника мен басқа да нәзік жұмыстарға арналған көп қолданыстағы көмекші қол: Мен бұрын электронды дүкендерде сатылатын үшінші қолды/көмекші қолды қолдандым және олардың ыңғайлылығына наразы болдым. Мен клиптерді дәл өзім қалаған жерге ала алмадым немесе орнатуға қажет уақыттан көп уақыт кетті