Rubik's Solver Problema ;(

Salve a tutti :slight_smile: Ieri in girovagando per Youtube , in cerca di un progetto per l'esame del 5 anno ITIS , ho visto vari progetti riguardo il "Rubick's Solver" : in sostanza un robot , tramite alcuni servo , un software adeguato , il quale riesce a risolvere il cubo di Rubik :slight_smile: come questo Arduino controlled Rubik's Cube Solver - YouTube :slight_smile:
Subito mi sono affrettato a cercare qualche progettino completo , dal quale prendere spunto , ma ahimè non ho trovato nulla :frowning: Se qualcuno ha conoscenze riguardo questo progetto vi chiedo umilmente aiuto :stuck_out_tongue:
Premetto anche che con la schedina Arduino sono alle prime armi , e so benissimo che il progetto del "Rubik's Solver" è abbastanza complicato .. Però sono pronto ad apprendere seguendo ogni vostro suggerimento :slight_smile:

Ciao , Grazie in anticipo , Mauro :slight_smile:

Ciao Mauro,
purtroppo non ti so proprio aiutare però ammiro la tua volontà di "partire prima" con il progetto per l'esame del 5° anno.
Ultimamente erano apparse moltissime richieste di aiuto per dei progetti (alcuni davvero particolari) da presentare a fine anno scolastico (quest'anno!!!).
Beh, in bocca al lupo!

Cris

Ultimamente erano apparse moltissime richieste di aiuto per dei progetti (alcuni davvero particolari) da presentare a fine anno scolastico (quest'anno!!!).

Del tipo? :slight_smile: Quali ti sono sembrati interessanti? Puoi darmi qualche link? Mi saresti molto d'aiuto :slight_smile:

Direi che sei un pò in ritardo per fare un progetto del genere ! Io ti consiglio di cambiare se non vuoi arrivare a mani nude.
Vai su instructable, scrivi arduino e ti escono 1000 progetti

Direi che sei un pò in ritardo per fare un progetto del genere ! Io ti consiglio di cambiare se non vuoi arrivare a mani nude.
Vai su instructable, scrivi arduino e ti escono 1000 progetti

O_O E' da pazzi preparare un progetto adesso per il 5 anno di "questo anno" , io intendo per il prossimo anno!! anno scolastico 2013/2014 :grin:

In linea di massima ti dovrebbero servire 4 servomotori e una telecamera che scannerizzi ad ogni passo tre facce ortogonali tra loro del cubo. Su internet c'è l'algoritmo per la risoluzione che puoi implementare sull'arduino quindi devi lavorare più che altro sulla parte di visione e meccanica.

O_O E' da pazzi preparare un progetto adesso per il 5 anno di "questo anno" , io intendo per il prossimo anno!! anno scolastico 2013/2014

Avevo capito male :grin: :grin:

Comunqnue, per quanto riguarda la parte meccanica non dovresti avere problemi, il gioco sta, come dice Summery, nell'algoritmo di risoluzione. O te lo crei tu (scelta migliore) o usi uno già esistente.

Gli algoritmi ne esistono già quindi è inutile perderci su tanto tempo anche perchè alla fine sarebbero uguali. Vedi ad esempio:

Per la parte meccanica dipende dalle tue abilità manuali mentre per la parte di scanning dipende da che sensori usi quindi è bene che scegli una soluzione.

Per ora mi sto dedicando al sensore di colori ... per identificare i colori di ogni faccia di ogni cubetto del cubo ( scusa il gioco di parole XD )

Presto comprerò Carrello il quale mi permette di fare ciò ..
Mi conviene?
Oppure me lo autocostruisco? ( Ho un idea vaga di come fare ) però se puoi indirizzarmi su qualche progetto che a te sembra al caso mio , opto per il risparmio XD

Gli algoritmi ne esistono già quindi è inutile perderci su tanto tempo anche perchè alla fine sarebbero uguali. Vedi ad esempio:
How to Solve a Rubik's Cube (with Pictures) - wikiHow
Per la parte meccanica dipende dalle tue abilità manuali mentre per la parte di scanning dipende da che sensori usi quindi è bene che scegli una soluzione.

Di quello che so del cubo di Rubik è che la soluzione sta in un paio di mosse uguali .. che ti portano prima o poi alla soluzione :slight_smile: perciò non mi sembra tanto difficile :slight_smile: Come hai detto tu ne copierò uno :sweat_smile:

Ho visto due diversi approcci nelle varie realizzazioni che ci sono in rete, riguardo alla parte di acquisizione dei colori ... il piu completo usa un'algoritmo di riconoscimento dei colori, mentre il piu semplice chiede all'utente di indicare a mano i colori della faccia presentata di volta in volta.

Per il riconoscimento dei colori, ci sono diversi sistemi ... un sensore di colore che si sposta sulle varie facce, un programma che acquisisce e discrimina tramite telecamera, una matrice di sensori di colore ... dipende da quanto vuoi complicarti la vita ( scherzo :wink: )

Mi riallaccio ad Etemenanki: c'è grossa differenza fra un qualcosa che risolve in autonomia il cubo ed un Arduino che esegue solo dei comandi inviati dal computer.
Nel video pubblicato qui sopra si vede che tutto è demandato all'utente/computer e che l'Arduino è solo un tramite per azionare i motori. C'è un software che chiede la disposizione dei colori delle facce e poi esegue i calcoli che portano alla soluzione. L'Arduino non fa altro che eseguirli.

Sarebbe più figo fare un qualcosa di totalmente autonomo che: riconosce le tessere delle facce (analisi dei colori), calcola le mosse, le esegue. Ma qui non serve più un Arduino, serve secondo me qualcosa di molto più potente.

leo72:
Mi riallaccio ad Etemenanki: c'è grossa differenza fra un qualcosa che risolve in autonomia il cubo ed un Arduino che esegue solo dei comandi inviati dal computer.
Nel video pubblicato qui sopra si vede che tutto è demandato all'utente/computer e che l'Arduino è solo un tramite per azionare i motori. C'è un software che chiede la disposizione dei colori delle facce e poi esegue i calcoli che portano alla soluzione. L'Arduino non fa altro che eseguirli.

Sarebbe più figo fare un qualcosa di totalmente autonomo che: riconosce le tessere delle facce (analisi dei colori), calcola le mosse, le esegue. Ma qui non serve più un Arduino, serve secondo me qualcosa di molto più potente.

una raspberry open cv ed una fotocamera, non dovrebbe essere affatto difficile lato software.
non so perchè io ho sempre problemi lato meccanica :.

Un' altra alternativa ad Arduino per il progetto che vuoi realizzare potrebbe essere lego Mindstorms:

Di questi se ne trovano un sacco di esempi sul web e alcuni anche ben documentati.
Spero di esserti stato di aiuto.

volevo fartelo notare anch io ma eri piú veloce.

http://tiltedtwister.com/tiltedtwister.html
http://tiltedtwister.com/tiltedtwister2.html

Qua le istruzioni e il programma per costruirselo:
http://tiltedtwister.com/ttdownload.html
http://tiltedtwister.com/tt2download.html

Ciao Uwe

Wow grazie :slight_smile: Ora guarderò tutto ;D

non ho letto tutto, però sicuramente arduino una telecamera non la regge, e non ha abbastanza ram per analizzare le foto.
Però, visto che le dimensioni del cubo sono note, puoi usare un led RGB per leggere i colori! in tal caso basta che fai una lettura di ogni quadratino, popoli la matrice in memoria, la risolvi salvandoti l'array di movimenti (di solito gli algoritmi sono ricorsivi e possono "tornare sui propri passi", per questo meglio non fare subito i passi "pensati"), farli eseguire dai servo.

Non c'è un modo per leggere tutta la faccia del cubo , senza andare ad analizzare tutti e 9 i cubi?

Io ho già pensato con il metodo del led RGB , dovrei semplicemente spostare la il sensore qua e la per fargli analizzare ogni cubetto .. :slight_smile: però se posso semplificare il tutto perché no?

Sapete qualche metodo? :wink:

Comunque ho visto gente usare "Il cellulare" come telecamera usando Arduino :slight_smile:

Volevo farvi notare Self-Solving Robot Rubik's Cube - YouTube
i colori li indica l'utente tramite la tastiera , e credo di avere un metodo per far funzionare il tutto usando il mio sensore... gli farò osservare tutti i cubetti facendo girare tutta la faccia del cubo ... e successivamente, alla fine di ogni giro , gli faccio osservare quello al centro :wink:
Però la cosa che non mi è ancora chiara , come faccio a stabilire l'algoritmo da fargli eseguire?