Мазмұны:

Шахмат роботы Raspberry Pi Lynxmotion AL5D қол: 6 қадам
Шахмат роботы Raspberry Pi Lynxmotion AL5D қол: 6 қадам

Бейне: Шахмат роботы Raspberry Pi Lynxmotion AL5D қол: 6 қадам

Бейне: Шахмат роботы Raspberry Pi Lynxmotion AL5D қол: 6 қадам
Бейне: Chess Robot Raspberry Pi and Robot Arm 2024, Қараша
Anonim
Image
Image

Бұл шахмат роботын жасаңыз және оның барлығын жеңетінін көріңіз!

Егер сіз қолды қалай жасау керектігі туралы нұсқауларды орындасаңыз және компьютерлік бағдарламалау мен 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 каналыма жазылу арқылы алыңыз, содан кейін осы нұсқаулықтың жоғарғы жағындағы «Таңдаулылар» түймесін басып, содан кейін осы нұсқаулыққа түсініктеме жариялаңыз, мен жауап беремін.

Ұсынылған: