Sommario:

Calciobalilla autonomo: 5 passaggi (con immagini)
Calciobalilla autonomo: 5 passaggi (con immagini)

Video: Calciobalilla autonomo: 5 passaggi (con immagini)

Video: Calciobalilla autonomo: 5 passaggi (con immagini)
Video: Calcio balilla, ecco 6 trucchi per vincere E stupire 2024, Luglio
Anonim
Calciobalilla autonomo
Calciobalilla autonomo
Calciobalilla autonomo
Calciobalilla autonomo
Calciobalilla autonomo
Calciobalilla autonomo

L'obiettivo principale del progetto era completare un prototipo funzionante per un biliardino autonomo (AFT), in cui un giocatore umano affronta un avversario robotico. Dal punto di vista umano del gioco, il biliardino è molto simile a un tavolo normale. I giocatori dal lato umano sono controllati tramite una serie di quattro maniglie che possono essere spostate dentro e fuori e ruotate per muovere i giocatori linearmente attraverso il campo di gioco e per calciare la palla verso la porta avversaria. Il lato autonomo è composto da:> Otto servomotori utilizzati per manipolare le maniglie del biliardino> Un microcontrollore per attivare i servomotori e comunicare con il computer> Una webcam montata sopra la testa per tracciare la palla e i giocatori> Un computer per elaborare le immagini della webcam, implementare l'intelligenza artificiale e comunicare con il microcontrollore I vincoli di budget per il prototipo hanno rallentato un po' il progetto e ne hanno mantenuto le funzionalità al minimo. Motori adeguati per muovere i giocatori a una velocità competitiva si sono rivelati molto costosi, quindi è stato necessario utilizzare servi di fascia bassa. Sebbene questa particolare implementazione fosse limitata da costi e tempo, un rapporto di trasmissione più ampio avrebbe reso un robot più veloce, sebbene farlo costerebbe più del prezzo base di $ 500 (prezzo senza alimentatore e computer).

Passaggio 1: assemblaggio della scheda di controllo del motore

Assemblaggio della scheda di controllo del motore
Assemblaggio della scheda di controllo del motore
Assemblaggio della scheda di controllo del motore
Assemblaggio della scheda di controllo del motore
Assemblaggio della scheda di controllo del motore
Assemblaggio della scheda di controllo del motore
Assemblaggio della scheda di controllo del motore
Assemblaggio della scheda di controllo del motore

Le immagini allegate sono uno schema completo del circuito e un'immagine del prodotto finale per la scheda di controllo del motore. Tutte queste parti richieste possono essere acquistate presso la maggior parte dei principali negozi di elettronica online (inclusi Digi-Key e Mouser. Come nota a margine, tutte le parti utilizzate qui erano attraverso fori e, quindi, le parti possono essere assemblate su una scheda prototipi/breadboard, o utilizzando il design PCB allegato. Un pacchetto molto più piccolo potrebbe essere creato utilizzando un numero di parti a montaggio superficiale. Quando abbiamo implementato, il design, abbiamo diviso i controlli del motore in 2 circuiti, anche se non c'è alcun vantaggio nel farlo se non qualsiasi particolare schema di cablaggio utilizzato. La piccola scheda blu implementa il circuito di controllo PWM, che è fondamentalmente solo un PIC-12F con clock con un codice specializzato.

Passaggio 2: assemblaggio del servomotore

Assemblaggio servomotore
Assemblaggio servomotore
Assemblaggio servomotore
Assemblaggio servomotore
Assemblaggio servomotore
Assemblaggio servomotore

Vengono utilizzati due diversi tipi di servo. Innanzitutto, il movimento laterale è controllato da un gruppo di quattro servi a coppia elevata: Robotis Dynamixel Tribotix AX-12. Questi quattro funzionano su una singola linea seriale e forniscono funzionalità sorprendenti. L'elevata coppia consente a questi servi di essere orientati in modo tale da fornire un'elevata velocità tangenziale per il movimento laterale. Siamo stati in grado di trovare un set di ingranaggi e tracce da 3,5 pollici per accompagnarli da Grainger al costo di circa $ 10 ciascuno. I servi forniscono protezione da sovraccarico di coppia, uno schema di indirizzamento servo individuale, comunicazioni rapide, monitoraggio della temperatura interna, comunicazioni bidirezionali, ecc. Lo svantaggio di questi servi è che sono costosi e non molto veloci (anche se il cambio li aiuta). Quindi, per ottenere un movimento più veloce per i calci, vengono utilizzati gli Hitec HS-81. Gli HS-81 sono relativamente economici, hanno una velocità angolare abbastanza elevata e sono facili da interfacciare (PWM standard). Tuttavia, gli HS-81 ruotano solo di 90 gradi (sebbene sia possibile - e non consigliato - tentare di modificarli a 180 gradi). Inoltre, hanno ingranaggi interni in nylon che si strappano facilmente se si tenta di modificare il servo. Varrebbe la pena trovare un servo rotante di 180 gradi che abbia questo tipo di velocità angolare. L'intero sistema è legato insieme con pezzi di pannelli di fibra a media densità (MDF) e pannelli di fibra ad alta densità (HDF). Questo è stato scelto per il suo basso costo (~ $ 5 per un foglio 6'x4'), facilità di taglio e capacità di interfacciarsi praticamente con qualsiasi superficie. Una soluzione più permanente sarebbe quella di lavorare le staffe in alluminio per tenere tutto insieme. Le viti che tengono in posizione i servi PWM sono viti a macchina standard (#10) con dadi esagonali che le tengono dall'altro lato. Viti a macchina metriche da 1 mm, lunghe circa 3/4 , tengono l'AX-12 nell'MDF che collega i due servi insieme. Un binario del cassetto a doppia azione tiene l'intero gruppo in basso e in linea con il binario.

Passaggio 3: software

Software
Software

L'ultimo passaggio consiste nell'installare tutto il software utilizzato sulla macchina. Questo è costituito da alcune singole parti di codice:> Il codice eseguito sul PC di elaborazione delle immagini> Il codice eseguito sul microcontrollore PIC-18F> Il codice eseguito su ciascuno dei microcontrollori PIC-12F Ci sono due prerequisiti da installare sull'elaborazione delle immagini PC. L'elaborazione delle immagini viene eseguita tramite Java Media Framework (JMF), disponibile tramite Sun qui. Disponibile anche tramite Sun, l'API di comunicazione Java viene utilizzata per comunicare con la scheda di controllo del motore, attraverso la porta seriale del computer. Il bello di usare Java è che *dovrebbe* funzionare su qualsiasi sistema operativo, anche se abbiamo usato Ubuntu, una distribuzione Linux. Contrariamente all'opinione comune, la velocità di elaborazione in Java non è male, specialmente nel looping di base (che l'analisi della visione usa parecchio). Come si vede nello screenshot, sia la palla che i giocatori avversari vengono tracciati ad ogni aggiornamento del frame. Inoltre, il contorno del tavolo si trova visivamente, motivo per cui è stato utilizzato il nastro dei pittori blu per creare un contorno visivo. I goal vengono registrati quando il computer non riesce a localizzare la palla per 10 frame consecutivi, indicando in genere che la palla è caduta in porta, fuori dalla superficie di gioco. Quando ciò accade, il software avvia un byte sonoro per applaudire se stesso o fischiare l'avversario, a seconda della direzione dell'obiettivo. Un sistema migliore, anche se non abbiamo avuto il tempo di implementarlo, sarebbe quello di utilizzare una semplice coppia emettitore/sensore a infrarossi per rilevare la palla che cade in porta. Tutto il software utilizzato in questo progetto è disponibile in un unico file zip, qui. Per compilare il codice Java, utilizzare il comando javac. Il codice PIC-18F e PIC-12F è distribuito con il software MPLAB di Microchip.

Passaggio 4: montaggio della webcam

Supporto per webcam
Supporto per webcam

È stata utilizzata una webcam Philips SPC-900NC, sebbene non sia consigliata. Le specifiche di questa fotocamera sono state falsificate dal personale tecnico o commerciale di Philips. Invece, qualsiasi webcam economica andrebbe bene, purché sia supportata dal sistema operativo. Per ulteriori informazioni sull'uso delle webcam sotto Linux, controlla questa pagina. Abbiamo misurato la distanza richiesta dalla lunghezza focale della webcam per adattare l'intero biliardino nell'inquadratura. Per questo modello di fotocamera, quel numero si è rivelato essere poco più di 5 piedi. Abbiamo utilizzato scaffalature disponibili presso i principali negozi di ferramenta per costruire un supporto per la fotocamera. Le scaffalature si estendono verso l'alto da ciascuno dei quattro angoli del tavolo e sono incrociate da staffe angolate in alluminio. È molto importante che la telecamera sia centrata e non abbia una rotazione angolare, poiché il software presuppone che gli assi x e y siano allineati al tavolo.

Passaggio 5: conclusione

Tutti i relativi file di progetto possono essere scaricati da questo sito. Un backup della maggior parte del contenuto del sito può essere trovato qui, sul mio host web personale. Ciò include il rapporto finale, che contiene un'analisi di marketing e le cose che vorremmo cambiare, i nostri obiettivi originali e un elenco di quali specifiche sono state effettivamente raggiunte. Il progetto NON vuole essere il giocatore più competitivo al mondo. È un buon strumento per mostrare più passaggi utilizzati nella progettazione di una tale bestia, nonché un prototipo decente di questo tipo di robot costruito a un costo incredibilmente basso. Ci sono altri robot simili nel mondo, e certamente molti di loro "batterebbero" questo robot. Questo progetto è stato progettato da un gruppo di quattro ingegneri elettrici/informatici presso la Georgia Tech come progetto di design senior. Nessun aiuto è stato ricevuto da ingegneri meccanici e non è stato utilizzato alcun finanziamento di terze parti. È stato un ottimo processo di apprendimento per tutti noi e un uso dignitoso del tempo del corso di progettazione senior. Vorrei ringraziare> Dr. James Hamblen, il nostro consulente di sezione, per il suo continuo aiuto nelle strategie tecniche> Dr. Jennifer Michaels, il professore principale, per non averci scoraggiato dal tentare un progetto più ambizioso> James Steinberg e Edgar Jones, gli amministratori senior del laboratorio di progettazione, per l'aiuto costante nell'ordinazione delle parti, nella risoluzione dei problemi e nel trovare le "cose interessanti" da inserire nel progetto a basso costo e alta funzionalità> E, naturalmente, gli altri tre membri del mio team, di cui niente di tutto questo sarebbe stato possibile: Michael Aeberhard, Evan Tarr e Nardis Walker.

Consigliato: