Sommario:

Q-Bot - il risolutore del cubo di Rubik open source: 7 passaggi (con immagini)
Q-Bot - il risolutore del cubo di Rubik open source: 7 passaggi (con immagini)

Video: Q-Bot - il risolutore del cubo di Rubik open source: 7 passaggi (con immagini)

Video: Q-Bot - il risolutore del cubo di Rubik open source: 7 passaggi (con immagini)
Video: He Almost Got BANNED For a Free Rubik’s Cube! 2024, Luglio
Anonim
Image
Image
Immagine
Immagine

Immagina di avere un cubo di Rubik strapazzato, conosci quel puzzle degli anni '80 che tutti hanno ma nessuno sa davvero come risolverlo e vuoi riportarlo nel suo schema originale. Fortunatamente in questi giorni è molto facile trovare istruzioni per la risoluzione. Quindi, vai online guarda un video e impara a girare i lati per portarti gioia. Dopo averlo fatto un paio di volte, però, ti renderai conto che manca qualcosa. Un buco dentro che non può essere riempito. Gli ingegneri/maker/hacker dentro di te semplicemente non possono essere soddisfatti di risolvere qualcosa di così sorprendente in un modo così semplice. Non sarebbe molto più poetico se tu avessi una macchina che risolvesse tutto per te? Se avessi costruito qualcosa di cui tutti i tuoi amici sarebbero rimasti stupiti? Posso garantirti che non c'è niente di meglio che guardare la tua creazione fare miracoli e risolvere un cubo di Rubik. Quindi, vieni e unisciti a me nel meraviglioso viaggio di costruzione di Q-Bot, il risolutore di cubi di Rubik open source che sicuramente non batterà nessun record mondiale, ma ti darà ore di gioia (dopo ovviamente aver attraversato tutte le frustrazioni durante il processo edilizio).

Passaggio 1: progettazione dell'hardware

Il risolutore completo è stato progettato con CAD in Catia. In questo modo è stato possibile trovare e correggere la maggior parte degli errori di progettazione prima di produrre qualsiasi componente fisico. La maggior parte del risolutore è stata stampata in 3D in PLA utilizzando una stampante prusa MK3. Inoltre, è stato utilizzato il seguente hardware:

  • 8 pezzi di asta in alluminio da 8 mm (lunghezza 10 cm)
  • 8 cuscinetti a sfere lineari (LM8UU)
  • poco meno di 2 m di cinghia dentata GT2 da 6 mm + alcune pulegge
  • 6 motori passo-passo bipolari NEMA 17
  • 6 driver passo-passo Polulu 4988
  • un Arudino Mega come controller del progetto
  • un alimentatore da 12 V 3A
  • un convertitore step-down per alimentare in sicurezza l'arduino
  • alcune viti e connettori
  • un po' di compensato per la base

Descrizione dell'hardware

Questa sezione descrive brevemente come funziona anche il Q-Bot e dove vengono utilizzati i componenti sopra menzionati. Di seguito puoi vedere un rendering del modello CAD completamente assemblato.

Il Q-bot funziona con quattro motori collegati direttamente al cubo di Rubik con pinze stampate in 3D. Ciò significa che è possibile girare direttamente a sinistra, a destra, davanti e dietro. Se è necessario ruotare il lato superiore o inferiore, l'intero cubo deve essere ruotato e quindi due dei motori devono essere allontanati. Questo viene fatto attaccando ciascuno dei motori di presa su slitte azionate da un altro motore passo-passo e una cinghia di distribuzione lungo un sistema di binari lineari. Il sistema di binari è costituito da due 8 cuscinetti a sfera montati nelle cavità della slitta e l'intera slitta scorre su due alberi in alluminio da 8 mm. Sotto puoi vedere il sottoassieme di un asse del risolutore.

Gli assi x e y sono sostanzialmente identici differiscono solo per l'altezza del punto di montaggio della cinghia, questo in modo che non ci siano collisioni tra le due cinghie quando sono completamente assemblate.

Immagine
Immagine

Passaggio 2: scegliere i motori giusti

Naturalmente, la selezione dei motori giusti è molto importante qui. La parte principale è che devono essere abbastanza forti da poter girare un cubo di Rubik. L'unico problema qui è che nessun produttore di cubi di Rubik fornisce una coppia nominale. Quindi, ho dovuto improvvisare e fare le mie misurazioni.

Generalmente la coppia è definita dalla forza diretta perpendicolarmente alla posizione del punto di rotazione alla distanza r:

Immagine
Immagine
Immagine
Immagine

Quindi, se potessi in qualche modo misurare la forza applicata al cubo, potrei calcolare la coppia. Che è esattamente quello che ho fatto. Ho fissato il mio cubo a uno scaffale in modo che solo un lato potesse muoversi. Che una corda è stata legata attorno al cubo e una borsa attaccata sul fondo. Ora non restava che aumentare lentamente il peso nel sacco fino a far girare il cubo. Per la mancanza di pesi precisi ho usato le patate e le ho misurate in seguito. Non è il metodo più scientifico ma poiché non sto cercando di trovare la coppia minima è abbastanza sufficiente.

Immagine
Immagine

Ho fatto le misurazioni tre volte e ho preso il valore più alto solo per essere sicuro. Il peso risultante era di 0,52 kg. Ora, grazie a Sir Isaac Newton, sappiamo che la Forza è uguale alla massa per l'accelerazione.

Immagine
Immagine

L'accelerazione, in questo caso, è l'accelerazione gravitazionale. Quindi la coppia richiesta è data da

Immagine
Immagine

Inserendo tutti i valori, inclusa metà della diagonale del cubo di Rubik, si scopre finalmente la coppia richiesta.

Immagine
Immagine

Sono andato con motori passo-passo in grado di applicare fino a 0,4 Nm, il che è probabilmente eccessivo, ma volevo essere al sicuro.

Passaggio 3: costruzione della base

La base è costituita da una scatola di legno molto semplice e ospita tutta l'elettronica necessaria. È dotato di una spina per accendere e spegnere la macchina, un LED per indicare se è accesa, una porta USB B e una presa per l'alimentazione da collegare. È stato costruito utilizzando compensato da 15 mm, alcune viti e un po' di colla.

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Passaggio 4: assemblaggio dell'hardware

Ora con tutte le parti necessarie, inclusa la base, il Q-bot era pronto per essere assemblato. Le parti personalizzate sono state stampate in 3D e adattate dove necessario. È possibile scaricare tutti i file CAD alla fine di questo ible. L'assemblaggio includeva il montaggio di tutte le parti stampate in 3D con le parti acquistate, l'estensione dei cavi del motore e l'avvitamento di tutte le parti alla base. Inoltre, ho messo delle guaine attorno ai cavi del motore, solo per rendere l'aspetto un po' più ordinato, e ho aggiunto connettori JST alle loro estremità.

Per evidenziare l'importanza della base che ho costruito, ecco uno scatto prima e dopo di come appariva l'assemblaggio. Riordinare un po' tutto può fare una grande differenza.

Immagine
Immagine
Immagine
Immagine

Passaggio 5: elettronica

Per quanto riguarda l'elettronica il progetto è piuttosto semplice. C'è un alimentatore principale da 12V, che può fornire fino a 3A di corrente, che alimenta i motori. Un modulo step-down viene utilizzato per alimentare in sicurezza Arduino ed è stato progettato uno shield personalizzato per Arduino che ospita tutti i driver del motore passo-passo. I driver rendono il controllo dei motori molto più semplice. Guidare un motore passo-passo richiede una sequenza di controllo specifica, ma utilizzando i driver del motore abbiamo solo bisogno di generare un impulso alto per ogni passo che il motore deve girare. Inoltre, allo shield sono stati aggiunti alcuni connettori jst per facilitare il collegamento dei motori. Lo shield per Arduino è stato inizialmente costruito su un pezzo di perfboard e dopo essersi assicurati che tutto funzionasse come doveva è stato prodotto da jlc pcb.

Ecco il prima e il dopo del prototipo e del pcb realizzato.

Immagine
Immagine
Immagine
Immagine

Passaggio 6: software e interfaccia seriale

Il Q-Bot è diviso in due parti. Da un lato c'è l'hardware che viene controllato da Arduino, dall'altro c'è un software che calcola il percorso di risoluzione del cubo in base allo scramble corrente. Il firmware in esecuzione su Arduino è stato scritto da me, ma per mantenere breve questa guida non entrerò nei dettagli qui. Se desideri dargli un'occhiata e giocarci un po', il link al mio repository git verrà fornito alla fine di questo documento. Il software che calcola la soluzione funziona su una macchina Windows ed è stato scritto da un mio collega, di nuovo i collegamenti al suo codice sorgente si trovano alla fine di questo ible. Le due parti comunicano utilizzando una semplice interfaccia seriale. Calcola la soluzione in base all'algoritmo a due fasi di Kociemba. Il software di risoluzione invia un comando composto da due byte al risolutore e attende che restituisca un "ACK". In questo modo il risolutore può essere testato ed eseguito il debug utilizzando un semplice monitor seriale. Il set di istruzioni completo è disponibile di seguito.

Immagine
Immagine

I comandi per far girare ogni motore per un passo sono una soluzione per un problema in cui alcuni degli stepper eseguirebbero casualmente piccoli salti all'accensione. Per compensare ciò, i motori possono essere regolati nella loro posizione iniziale prima del processo di risoluzione.

Passaggio 7: conclusione

Dopo otto mesi di sviluppo, parolacce, pressioni sulla tastiera e balli, il Q-bot è finalmente arrivato a un punto in cui è stato risolto con successo il suo primo cubo di Rubik. Lo scramble del cubo doveva essere inserito manualmente nel software di controllo, ma tutto ha funzionato bene.

Ho aggiunto un supporto per una webcam un paio di settimane dopo e il mio college ha adattato il software per leggere automaticamente il cubo dalle immagini scattate. Tuttavia, questo non è ancora stato testato bene e necessita ancora di alcuni miglioramenti.

Immagine
Immagine

Se questa istruzione ha suscitato il tuo interesse, non esitare e inizia a costruire la tua versione personale del Q-bot. All'inizio potrebbe sembrare scoraggiante, ma ne vale davvero la pena e se potessi farlo, puoi farlo anche tu.

Risorse:

Codice sorgente del firmware:

github.com/Axodarap/QBot_firmware

Codice sorgente del software di controllo

github.com/waldhube16/Qbot_SW

Consigliato: