Satura rādītājs:
- 1. darbība. Prasības
- 2. darbība. Aparatūras veidošana
- 3. darbība: programmatūra, kas pārvieto robotu
- 4. solis: programmatūra, kas atpazīst cilvēka kustību
- 5. darbība: kamera, gaismas, tastatūra, galds, displejs
- 6. darbība: programmatūras iegūšana
Video: Šaha robots Raspberry Pi Lynxmotion AL5D Arm: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
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
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
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
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:
Šaha robots, kas izgatavots ar LEGO un Raspberry Pi: 6 soļi
Šaha robots, kas izgatavots ar LEGO un Raspberry Pi: Pārsteidziet savus draugus ar šo šaha robotu! To būvēt nav pārāk grūti, ja esat jau iepriekš izgatavojis LEGO robotus un ja jums ir vismaz elementāras zināšanas par datorprogrammēšanu un Linux. Robots veic savas kustības un izmanto vizuālo atpazīšanu
Runātie šaha gabali: 7 soļi (ar attēliem)
Runātie šaha gabali: izmantojot balsi, es izveidoju dažus ļoti personiskus šaha gabalus. Katra gabala pamatā ir skaņas forma, ko es radīju, sakot tā nosaukumu. Tas nav pilnīgs komplekts, jo otra puse jādara tāpat, bet ar pretinieka balsi
Vienkāršs Arduino šaha pulkstenis: 5 soļi
Vienkāršs Arduino šaha pulkstenis: Kad es domāju izveidot šaha pulksteni ar Arduino, mērķis bija izveidot, izmantojot vienkāršu programmēšanu bez lietošanas klases, un strādāt ar AVR reģistru. Izmantotā bāze bija Arduino Reference. Visgrūtākais bija manipulēt ar taimeri, izmantojot tikai
Digitālais šahs - izsekojiet savai šaha spēlei tiešsaistē: 5 soļi
Digitālais šahs - izsekojiet savu šaha spēli tiešsaistē: kopš jaunības esmu spēlējis daudz šaha, un, tā kā tīmeklī ir milzīgs daudzums vietņu, kurās var spēlēt šahu pret datoriem vai pretiniekiem, es nekad neesmu atradis vietni kas izseko jūsu šaha spēli, kurā jūs faktiski spēlējat
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst