Sommario:

Robot per scacchi Raspberry Pi Lynxmotion AL5D Arm: 6 passaggi
Robot per scacchi Raspberry Pi Lynxmotion AL5D Arm: 6 passaggi

Video: Robot per scacchi Raspberry Pi Lynxmotion AL5D Arm: 6 passaggi

Video: Robot per scacchi Raspberry Pi Lynxmotion AL5D Arm: 6 passaggi
Video: ITI Giua Cagliari Un Robot che gioca a DAMA è un passo avanti se usa Windows [1] 2024, Dicembre
Anonim
Image
Image

Costruisci questo robot degli scacchi e guardalo battere tutti!

È abbastanza facile da costruire se puoi seguire le istruzioni su come costruire il braccio e se hai almeno una conoscenza elementare della programmazione del computer e di Linux.

L'umano, giocando con il bianco, fa una mossa. Questo viene rilevato dal sistema di riconoscimento visivo. Il robot quindi riflette e poi fa la sua mossa. E così via …

Forse la cosa più nuova in questo robot è il codice per il riconoscimento delle mosse. Questo codice di visione è utilizzabile anche per i robot degli scacchi costruiti in molti altri modi (come il mio robot degli scacchi con build LEGO).

Poiché la mossa dell'essere umano è riconosciuta da un sistema di visione, non è necessario alcun hardware speciale per la scacchiera (come interruttori reed o altro).

Il mio codice è disponibile per uso personale.

Passaggio 1: requisiti

La struttura hardware
La struttura hardware

Tutto il codice è scritto in Python, che verrà eseguito, tra le altre cose, su un Raspberry Pi.

Il Raspberry Pi è un computer a scheda singola piccolo ed economico (circa $ 40) sviluppato dalla Raspberry Pi Foundation. Il modello originale è diventato molto più popolare del previsto, vendendo per usi come la robotica

Il mio robot utilizza un Raspberry Pi e il braccio del robot è costituito da un kit: Lynxmotion AL5D. Il kit viene fornito con una scheda di controllo servo. (Il link che ho appena fornito è al sito statunitense di RobotShop; fai clic su uno dei flag in alto a destra delle pagine del sito per il tuo paese, ad es. Regno Unito).

Avrai anche bisogno di un tavolo, una macchina fotografica, un'illuminazione, una tastiera, uno schermo e un dispositivo di puntamento (es. mouse). E, naturalmente, pezzi degli scacchi e una scacchiera. Descrivo tutte queste cose in modo più dettagliato nei passaggi successivi.

Passaggio 2: la costruzione dell'hardware

La struttura hardware
La struttura hardware

Come ho indicato in precedenza, il cuore del codice della visione funzionerà con una varietà di build.

Questa build utilizza un kit braccio robotico di Lynxmotion, l'AL5D. Incluso con il kit è una scheda servo controller SSC-32U, che viene utilizzata per controllare i motori nel braccio.

Ho scelto l'AL5D perché il braccio deve essere in grado di eseguire movimenti accurati ripetuti e non andare alla deriva. L'afferratore deve essere in grado di mettersi tra i pezzi e il braccio deve essere in grado di raggiungere il lato opposto del tabellone. Avevo ancora bisogno di apportare alcune modifiche come descritto di seguito.

Il Raspberry Pi che uso è un Raspberry Pi 3 Modello B+. Questo comunica con la scheda SSC-32U tramite una connessione USB.

EDIT: Il Raspberry Pi 4 è ora disponibile. Avrai bisogno di:

  • Un alimentatore USB-C da 15 W: consigliamo l'alimentatore USB-C Raspberry Pi ufficiale
  • Una scheda microSD caricata con NOOBS, il software che installa il sistema operativo (acquista una scheda SD precaricata insieme al tuo Raspberry Pi o scarica NOOBS per caricare una scheda tu stesso)
  • Una tastiera e un mouse (vedi più avanti)
  • Un cavo per il collegamento a un display tramite la porta micro HDMI di un Raspberry Pi 4

Avevo bisogno di una maggiore portata sul braccio del robot, quindi ho apportato alcune piccole modifiche, utilizzando parti Lynxmotion aggiuntive che possono essere acquistate da RobotShop:

1. Sostituito il tubo da 4,5 pollici con uno da 6 pollici - Lynxmotion parte AT-04, codice prodotto RB-Lyn-115.

2. Ho provato a utilizzare un set aggiuntivo di molle, ma sono tornato a una coppia quando ho implementato l'articolo 3 di seguito

3. Esteso l'altezza utilizzando un distanziatore da 1 pollice - Lynxmotion parte HUB-16, codice prodotto RB-Lyn-336.

4. Esteso il raggio di azione della pinza utilizzando cuscinetti di presa di ricambio attaccati da alcuni pezzi LEGO di scorta che avevo e fasce elastiche (!) Funziona molto bene, in quanto introduce flessibilità durante il sollevamento dei pezzi.

Queste modifiche possono essere viste nell'immagine in alto a destra.

C'è una telecamera montata sopra la scacchiera. Questo è usato per determinare la mossa dell'essere umano.

Passaggio 3: il software che muove il robot

Tutto il codice è scritto in Python 2. Il codice della cinematica inversa è necessario per spostare correttamente i vari motori in modo che i pezzi degli scacchi possano essere spostati. Uso il codice della libreria di Lynxmotion che supporta lo spostamento dei motori in due dimensioni e l'ho aggiunto con il mio codice per 3 dimensioni, angolo di presa e movimento della ganascia di presa.

Quindi, abbiamo un codice che sposterà pezzi, prenderà pezzi, arroccherà, supporterà en passant e così via.

Il motore degli scacchi è Stockfish, che può battere qualsiasi essere umano! "Lo stoccafisso è uno dei motori scacchistici più potenti al mondo. È anche molto più forte dei migliori maestri di scacchi umani."

Il codice per guidare il motore degli scacchi, convalidare che una mossa è valida e così via è ChessBoard.py

Uso del codice da https://chess.fortherapy.co.uk per interfacciarmi con quello. Il mio codice (sopra) quindi si interfaccia con quello!

Passaggio 4: il software che riconosce il movimento dell'essere umano

L'ho descritto in dettaglio nell'Instructable per la mia build di Chess Robot Lego, quindi non ho bisogno di ripeterlo qui!

I miei pezzi "neri" erano originariamente marroni, ma li ho dipinti di nero opaco (con "vernice per lavagna"), il che fa funzionare meglio l'algoritmo in condizioni di illuminazione più variabili.

Passaggio 5: fotocamera, luci, tastiera, tavolo, display

Fotocamera, luci, tastiera, tavolo, display
Fotocamera, luci, tastiera, tavolo, display
Fotocamera, luci, tastiera, tavolo, display
Fotocamera, luci, tastiera, tavolo, display

Questi sono gli stessi della mia build Chess Robot Lego, quindi non ho bisogno di ripeterli qui.

Tranne che questa volta ho usato un altoparlante diverso e significativamente migliore, un altoparlante Bluetooth Lenrui, che collego all'RPi tramite USB.

Disponibile su amazon.com, amazon.co.uk e altri punti vendita.

Inoltre, ora sto utilizzando una fotocamera diversa, una HP Webcam HD 2300, poiché non sono riuscito a far funzionare in modo affidabile la fotocamera precedente.

Gli algoritmi funzionano meglio se la scacchiera ha un colore molto lontano dal colore dei pezzi! Nel mio robot, i pezzi sono bianco sporco e marrone, e la scacchiera è fatta a mano in carta ed è di un verde chiaro con poca differenza tra i quadrati "nero" e "bianco".

Gli algoritmi necessitano di un particolare orientamento della telecamera a bordo. Si prega di commentare di seguito se si riscontra un problema. Il braccio ha una portata limitata, quindi la dimensione del quadrato dovrebbe essere di 3,5 cm.

Passaggio 6: ottenere il software

1. Stoccafisso

Se esegui Raspbian sul tuo RPi puoi utilizzare il motore Stockfish 7: è gratuito. Corri:

sudo apt-get install stoccafisso

2. ChessBoard.py Prendi questo da qui.

3. Codice basato su https://chess.fortherapy.co.uk/home/a-wooden-chess… Viene fornito con il mio codice.

4. Libreria Python 2D Inverse Kinematics -

5. Il mio codice che richiama tutto il codice sopra e che fa muovere il robot e il mio codice di visione. Ottieni questo da me iscrivendoti prima al mio canale YouTube, quindi facendo clic sul pulsante "Preferito" nella parte superiore di questo Instructable e quindi pubblicando un commento su questo Instructable e io risponderò.

Consigliato: