Sommario:
- Passaggio 1: requisiti
- Passaggio 2: la costruzione dell'hardware
- Passaggio 3: il software che muove il robot
- Passaggio 4: il software che riconosce il movimento dell'essere umano
- Passaggio 5: fotocamera, luci, tastiera, tavolo, display
- Passaggio 6: ottenere il software
Video: Robot per scacchi Raspberry Pi Lynxmotion AL5D Arm: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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
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
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
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:
Robot degli scacchi realizzato con LEGO e Raspberry Pi: 6 passaggi
Robot per scacchi realizzato con LEGO e Raspberry Pi: stupisci i tuoi amici con questo robot per scacchi! Non è troppo difficile da costruire se hai già realizzato robot LEGO e se hai almeno una conoscenza elementare della programmazione dei computer e di Linux. Il robot fa le sue mosse e usa il riconoscimento vi
Scacchi tascabili: 4 passaggi
Scacchi tascabili: sono gli scacchi! Nella tua tasca. Questo progetto mira a creare un piccolo dispositivo in grado di eseguire piccoli giochi come snake, pac-man, tetris e persino scacchi
Pezzi degli scacchi di parole pronunciate: 7 passaggi (con immagini)
Pezzi degli scacchi con parole pronunciate: ho realizzato alcuni pezzi degli scacchi molto personali usando la mia voce. Ogni pezzo si basa sulla forma del suono che ho prodotto mentre ne pronunciavo il nome. Non è un set completo, poiché l'altro lato dovrebbe essere fatto allo stesso modo, ma con la voce del mio avversario
Semplice orologio per scacchi Arduino: 5 passaggi
Simple Arduino Chess Clock: Quando ho pensato di fare un Chess Clock con Arduino, l'obiettivo era quello di costruire usando una programmazione semplice senza usare la classe e lavorare con il registro AVR. La base utilizzata era Arduino Reference. La cosa più difficile è stata manipolare il timer usando solo
Scacchi digitali - Tieni traccia della tua partita di scacchi online: 5 passaggi
Scacchi digitali - Tieni traccia della tua partita di scacchi online: ho giocato molto a scacchi sin da quando ero giovane, e dal momento che il web ha un'enorme quantità di siti web su cui giocare a scacchi contro computer o avversari dal vivo, non ho mai trovato un sito web che tiene traccia della partita a scacchi in cui stai effettivamente giocando