INHOUDSOPGAWE:

Skaakrobot Framboos Pi Lynxmotion AL5D -arm: 6 stappe
Skaakrobot Framboos Pi Lynxmotion AL5D -arm: 6 stappe

Video: Skaakrobot Framboos Pi Lynxmotion AL5D -arm: 6 stappe

Video: Skaakrobot Framboos Pi Lynxmotion AL5D -arm: 6 stappe
Video: Raspberry PI 4B, Простая установка Supervised Home Assistant на RaspiOS 64 - Обновление октябрь 2022 2024, November
Anonim
Image
Image

Bou hierdie skaakrobot en sien hoe dit almal klop!

Dit is redelik maklik om te bou as u die instruksies kan volg om die arm te bou, en as u ten minste 'n basiese kennis van rekenaarprogrammering en Linux het.

Die mens, wat wit speel, beweeg. Dit word deur die stelsel vir visuele herkenning opgespoor. Die robot dink dan na en maak sy beweging. En so aan …

Miskien is die nuutste ding in hierdie robot die kode vir bewegingherkenning. Hierdie visiekode is ook bruikbaar vir skaakrobotte wat op baie ander maniere gebou is (soos my skaakrobot met LEGO build).

Omdat die beweging van die mens deur 'n visiestelsel erken word, is geen spesiale skaakbord -hardeware (soos rietskakelaars, of wat ook al) nodig nie.

My kode is beskikbaar vir persoonlike gebruik.

Stap 1: Vereistes

Die hardeware -bou
Die hardeware -bou

Die hele kode is in Python geskryf, wat onder meer op 'n Raspberry Pi werk.

Die Raspberry Pi is 'n klein, goedkoop (ongeveer $ 40) enkelbordrekenaar wat ontwikkel is deur die Raspberry Pi Foundation. Die oorspronklike model het baie meer gewild geword as wat verwag is, en word verkoop vir gebruik soos robotika

My robot gebruik 'n Raspberry Pi, en die robotarm is gebou uit 'n kit: Lynxmotion AL5D. Die kit kom met 'n servo -beheerbord. (Die skakel wat ek so pas gegee het, is na die Amerikaanse webwerf van RobotShop; klik op een van die vlae regs bo op hul webwerfbladsye vir u land, byvoorbeeld die Verenigde Koninkryk).

U benodig ook 'n tafel, 'n kamera, beligting, 'n sleutelbord, 'n skerm en 'n wyser (byvoorbeeld muis). En natuurlik, skaakstukke en 'n bord. Ek beskryf al hierdie dinge in meer detail in die daaropvolgende stappe.

Stap 2: Die hardeware -opbou

Die hardeware -bou
Die hardeware -bou

Soos ek voorheen aangedui het, werk die hart van die visie -kode met verskillende konstruksies.

Hierdie gebou gebruik 'n robotarmstel van Lynxmotion, die AL5D. Die kit bevat 'n SSC-32U servobestuurderbord wat gebruik word om die motors in die arm te beheer.

Ek het die AL5D gekies, want die arm moet herhaalde akkurate bewegings kan maak en nie wegdryf nie. Die gryp moet tussen stukke kan kom en die arm moet tot by die ander kant van die bord kan kom. Ek moes nog 'n paar wysigings aanbring soos hieronder uiteengesit.

Die Raspberry Pi wat ek gebruik, is 'n Raspberry Pi 3 Model B+. Dit praat met die SSC-32U-bord via 'n USB-verbinding.

EDIT: Die Raspberry Pi 4 is nou beskikbaar. U benodig:

  • 'N USB-C-kragbron van 15 W-ons beveel die amptelike Raspberry Pi USB-C-kragtoevoer aan
  • 'N MicroSD-kaart gelaai met NOOBS, die sagteware wat die bedryfstelsel installeer (koop 'n vooraf gelaaide SD-kaart saam met u Raspberry Pi, of laai NOOBS af om self 'n kaart te laai)
  • 'N Toetsenbord en muis (sien later)
  • 'N Kabel om aan te sluit op 'n skerm via 'n Raspberry Pi 4 se mikro -HDMI -poort

Ek moes die robotarm verder bereik, en daarom het ek 'n paar klein wysigings aangebring met behulp van ekstra Lynxmotion -onderdele wat by RobotShop gekoop kan word:

1. Vervang die 4,5 duim buis deur 'n 6 duim een-Lynxmotion onderdeel AT-04, produkkode RB-Lyn-115.

2. Het probeer om 'n ekstra stel vere te gebruik, maar het teruggekeer na een paar toe ek item 3 hieronder geïmplementeer het

3. Verleng die hoogte met 'n afstandhouer van 1 duim-Lynxmotion onderdeel HUB-16, produkkode RB-Lyn-336.

4. Verleng die grypreikwydte met behulp van ekstra grypblokkies wat met 'n paar ekstra LEGO -stukke wat ek gehad het, en rekkies (!) Vasgemaak het. Dit werk baie goed, want dit bied buigsaamheid by die opheffing van stukke.

Hierdie wysigings kan in die prent hierbo aan die regterkant gesien word.

Daar is 'n kamera bo die skaakbord gemonteer. Dit word gebruik om die mens se beweging te bepaal.

Stap 3: Die sagteware wat die robot beweeg

Al die kode is in Python 2. Inverse kinematiese kode is nodig om die verskillende motors korrek te beweeg sodat skaakstukke verskuif kan word. Ek gebruik biblioteekkode van Lynxmotion, wat die motor in twee dimensies ondersteun en dit bygevoeg het met my eie kode vir 3 dimensies, grijperhoek en beweging van die grijper.

Ons het dan 'n kode wat stukke kan skuif, stukke neem, kasteel, ondersteuning en passant, ensovoorts.

Die skaakmotor is Stockfish - wat enige mens kan klop! "Stockfish is een van die sterkste skaakmotors ter wêreld. Dit is ook baie sterker as die beste menslike skaak -grootmeesters."

Die kode om die skaakmotor aan te dryf, te bevestig dat 'n beweging geldig is, ensovoorts is ChessBoard.py

Ek gebruik 'n kode van https://chess.fortherapy.co.uk om daarmee te werk. My kode (hierbo) koppel dan daarmee!

Stap 4: Die sagteware wat die beweging van die mens herken

Ek het dit breedvoerig beskryf in die Instructable vir my Chess Robot Lego -konstruksie - so ek hoef dit nie hier te herhaal nie!

My 'swart' stukke was oorspronklik bruin, maar ek het dit mat swart geverf (met 'bordbordverf'), wat die algoritme beter laat werk onder meer veranderlike beligtingstoestande.

Stap 5: Kamera, ligte, sleutelbord, tafel, skerm

Kamera, ligte, sleutelbord, tafel, skerm
Kamera, ligte, sleutelbord, tafel, skerm
Kamera, ligte, sleutelbord, tafel, skerm
Kamera, ligte, sleutelbord, tafel, skerm

Dit is dieselfde as in my Chess Robot Lego -konstruksie, so ek hoef dit nie hier te herhaal nie.

Behalwe dat ek hierdie keer 'n ander en aansienlik beter luidspreker gebruik het, 'n Lenrui Bluetooth -luidspreker, wat ek via USB aan die RPi koppel.

Beskikbaar by amazon.com, amazon.co.uk en ander winkels.

Ek gebruik ook nou 'n ander kamera - 'n HP Webcam HD 2300, aangesien ek nie die vorige kamera betroubaar kon laat optree nie.

Die algoritmes werk die beste as die skaakbord 'n kleur het wat ver van die kleur van die stukke is! In my robot is die stukke spierwit en bruin, en die skaakbord is met die hand gemaak in kaart, en is 'n ligte groen met min verskil tussen die "swart" en "wit" blokkies.

Die algoritmes benodig 'n spesifieke oriëntasie van die kamera aan boord. Lewer kommentaar hieronder as u 'n probleem ondervind. Die arm het 'n beperkte reikwydte, en die vierkante grootte moet dus 3,5 cm wees.

Stap 6: Verkry die sagteware

1. Stokvis

As u Raspbian op u RPi gebruik, kan u die Stockfish 7 -enjin gebruik - dit is gratis. Hardloop net:

sudo apt-get installeer stockfish

2. ChessBoard.py Kry dit hier.

3. Kode gebaseer op https://chess.fortherapy.co.uk/home/a-wooden-chess… Kom saam met my kode.

4. Python 2D Inverse Kinematics -biblioteek -

5. My kode wat al die kode hierbo aanroep en wat die robot laat beweeg, en my visie -kode. Kry dit van my deur eers in te teken op my YouTube -kanaal, klik dan op die 'gunsteling' -knoppie bo -aan hierdie instruksie en plaas dan 'n opmerking op hierdie instruksie, en ek sal reageer.

Aanbeveel: