Satura rādītājs:

Šaha robots Raspberry Pi Lynxmotion AL5D Arm: 6 soļi
Šaha robots Raspberry Pi Lynxmotion AL5D Arm: 6 soļi

Video: Šaha robots Raspberry Pi Lynxmotion AL5D Arm: 6 soļi

Video: Šaha robots Raspberry Pi Lynxmotion AL5D Arm: 6 soļi
Video: LynxMotion Robotic Arm Demo 2024, Novembris
Anonim
Image
Image

Izveidojiet šo šaha robotu un redziet, kā tas uzvar visus!

To ir diezgan viegli izveidot, ja varat izpildīt instrukcijas, kā izveidot roku, un ja jums ir vismaz elementāras zināšanas par datorprogrammēšanu un Linux.

Cilvēks, spēlējot baltu, veic gājienu. To nosaka vizuālās atpazīšanas sistēma. Pēc tam robots pārdomā un pēc tam veic savu kustību. Un tā tālāk …

Varbūt visjaunākā lieta šajā robotā ir kustību atpazīšanas kods. Šis redzes kods ir izmantojams arī šaha robotiem, kas būvēti daudzos citos veidos (piemēram, manam šaha robotam ar LEGO būvējumu).

Tā kā cilvēka gājienu atpazīst redzes sistēma, nav nepieciešama īpaša šaha dēļa aparatūra (piemēram, niedru slēdži vai kas cits).

Mans kods ir pieejams personiskai lietošanai.

1. darbība. Prasības

Aparatūras būve
Aparatūras būve

Viss kods ir rakstīts Python, kas cita starpā darbosies ar Raspberry Pi.

Raspberry Pi ir mazs, lēts (aptuveni 40 USD) vienas plates dators, ko izstrādājis Raspberry Pi Foundation. Oriģinālais modelis kļuva daudz populārāks, nekā paredzēts, pārdodot tādām vajadzībām kā robotika

Mans robots izmanto Raspberry Pi, un robota roka ir veidota no komplekta: Lynxmotion AL5D. Komplektā ir servo kontroliera plate. (Tikko norādītā saite ir uz RobotShop ASV vietni; noklikšķiniet uz viena no karogiem jūsu vietnes lapu augšējā labajā stūrī, kas attiecas uz jūsu valsti, piemēram, Lielbritāniju).

Jums būs nepieciešams arī galds, kamera, apgaismojums, tastatūra, ekrāns un rādītājierīce (piemēram, pele). Un, protams, šaha figūras un dēlis. Tālāk aprakstīšu visas šīs lietas sīkāk.

2. darbība. Aparatūras veidošana

Aparatūras būve
Aparatūras būve

Kā jau iepriekš norādīju, redzes koda sirds darbosies ar dažādām būvēm.

Šajā būvē tiek izmantots robotu roku komplekts no Lynxmotion, AL5D. Komplektā ietilpst SSC-32U servo kontrollera plate, ko izmanto, lai kontrolētu rokas motorus.

Es izvēlējos AL5D, jo rokai jāspēj atkārtot precīzas kustības un nenovirzīties. Grābējam ir jāspēj iekļūt starp gabaliem, un rokai jāspēj sasniegt tāfeles tālo pusi. Man joprojām bija jāveic dažas izmaiņas, kā aprakstīts zemāk.

Raspberry Pi, kuru izmantoju, ir Raspberry Pi 3 modelis B+. Tas runā ar SSC-32U plati, izmantojot USB savienojumu.

EDIT: Raspberry Pi 4 tagad ir pieejams. Jums būs nepieciešams:

  • 15 W USB-C barošanas avots-mēs iesakām oficiālo Raspberry Pi USB-C barošanas avotu
  • MicroSD karte, kas ielādēta ar NOOBS, programmatūru, kas instalē operētājsistēmu (kopā ar Raspberry Pi iegādājieties iepriekš ielādētu SD karti vai lejupielādējiet NOOBS, lai pats ielādētu karti)
  • Tastatūra un pele (skatīt vēlāk)
  • Kabelis, lai izveidotu savienojumu ar displeju, izmantojot Raspberry Pi 4 mikro HDMI portu

Man vajadzēja tālāk sasniegt robota roku, tāpēc es tajā veicu nelielas izmaiņas, izmantojot papildu Lynxmotion detaļas, kuras var iegādāties vietnē RobotShop:

1. Aizstāja 4,5 collu cauruli ar 6 collu vienu-Lynxmotion detaļu AT-04, produkta kods RB-Lyn-115.

2. Mēģināju izmantot papildu atsperu komplektu, bet atgriezos pie viena pāra, kad ieviesu 3. punktu

3. Palielināts augstums, izmantojot 1 collu starpliku-Lynxmotion daļa HUB-16, produkta kods RB-Lyn-336.

4. Paplašināta satvērēja sasniedzamība, izmantojot rezerves satvērēja spilventiņus, kas piestiprināti pie dažiem maniem rezerves LEGO gabaliem, un elastīgās lentes (!) Tas darbojas ļoti labi, jo rada elastību, paceļot gabalus.

Šīs izmaiņas var redzēt attēlā labajā pusē.

Virs šaha dēļa ir uzstādīta kamera. To izmanto, lai noteiktu cilvēka kustību.

3. darbība: programmatūra, kas pārvieto robotu

Viss kods ir rakstīts programmā Python 2. Inversā kinemātikas kods ir nepieciešams, lai pareizi pārvietotu dažādus motorus tā, lai varētu pārvietot šaha figūras. Es izmantoju bibliotēkas kodu no Lynxmotion, kas atbalsta motoru pārvietošanu divās dimensijās, un tam pievienoju savu kodu trīs dimensijām, satvērēja leņķim un satvērēja žokļa kustībai.

Tātad, mums ir kods, kas pārvietos gabalus, paņem gabalus, pili, atbalsta en passant utt.

Šaha dzinējs ir Stockfish - kas spēj pārspēt jebkuru cilvēku! "Stockfish ir viens no spēcīgākajiem šaha dzinējiem pasaulē. Tas ir arī daudz spēcīgāks par labākajiem cilvēku šaha lielmeistariem."

Kods šaha dzinēja vadīšanai, gājiena derīguma apstiprināšanai un tā tālāk ir ChessBoard.py

Es izmantoju kādu kodu no vietnes https://chess.fortherapy.co.uk, lai ar to saskartos. Mans kods (iepriekš) saskan ar to!

4. solis: programmatūra, kas atpazīst cilvēka kustību

Es to detalizēti esmu aprakstījis Instructable for my Chess Robot Lego build - tāpēc man tas šeit nav jāatkārto!

Mani "melnie" gabali sākotnēji bija brūni, bet es tos krāsoju matēti melnā krāsā (ar "tāfeles krāsu"), kas ļauj algoritmam labāk darboties mainīgākos apgaismojuma apstākļos.

5. darbība: kamera, gaismas, tastatūra, galds, displejs

Kamera, gaismas, tastatūra, galds, displejs
Kamera, gaismas, tastatūra, galds, displejs
Kamera, gaismas, tastatūra, galds, displejs
Kamera, gaismas, tastatūra, galds, displejs

Tie ir tādi paši kā manā šaha robota Lego konstrukcijā, tāpēc man tie šeit nav jāatkārto.

Izņemot to, ka šoreiz izmantoju citu un ievērojami labāku skaļruni - Lenrui Bluetooth skaļruni, kuru savienoju ar RPi, izmantojot USB.

Pieejams amazon.com, amazon.co.uk un citās tirdzniecības vietās.

Arī es tagad izmantoju citu kameru - HP Webcam HD 2300, jo nevarēju panākt, lai iepriekšējā kamera darbotos droši.

Algoritmi vislabāk darbojas, ja šaha galdam ir krāsa, kas ir tālu no gabalu krāsas! Manā robotā gabali ir gandrīz balti un brūni, un šaha dēlis ir ar rokām darināts kartītē, un tas ir gaiši zaļš, ar nelielu atšķirību starp "melno" un "balto" kvadrātu.

Algoritmiem ir nepieciešama īpaša kameras orientācija. Lūdzu, komentējiet tālāk, ja jums rodas problēma. Rokas sasniedzamība ir ierobežota, un tāpēc kvadrāta izmēram jābūt 3,5 cm.

6. darbība: programmatūras iegūšana

1. Stāvi

Ja savā RPi palaižat Raspbian, varat izmantot Stockfish 7 dzinēju - tas ir bez maksas. Vienkārši skrien:

sudo apt-get install stockfish

2. ChessBoard.py Iegūstiet to no šejienes.

3. Kods, kura pamatā ir https://chess.fortherapy.co.uk/home/a-wooden-chess…. Kopā ar manu kodu.

4. Python 2D apgrieztās kinemātikas bibliotēka -

5. Mans kods, kas izsauc visu iepriekš minēto kodu un liek robotam veikt kustības, un mans redzes kods. Iegūstiet to no manis, vispirms abonējot manu YouTube kanālu, pēc tam noklikšķinot uz pogas "Izlase" šīs instrukcijas augšdaļā un pēc tam ievietojot komentāru šajā instrukcijā, un es atbildēšu.

Ieteicams: