Sommario:

Il RADbot: 7 passaggi
Il RADbot: 7 passaggi

Video: Il RADbot: 7 passaggi

Video: Il RADbot: 7 passaggi
Video: Haydut filmi Türkçe dublaj 2024, Novembre
Anonim
Il RADbot
Il RADbot

Un progetto di Jackson Breakell, Tyler McCubbins e Jakob Thaler per EF 230

Su Marte, gli astronauti saranno soggetti a una serie di pericoli, che vanno dalle temperature estreme alle tempeste di polvere. Un fattore spesso trascurato, tuttavia, è il pericolo rappresentato dai potenti radioisotopi che risiedono sulla superficie del pianeta. Il RADbot fornisce assistenza all'esplorazione degli astronauti sulla superficie di Marte identificando campioni di roccia con attività elevate durante il viaggio e dispone anche di funzioni di sicurezza programmate che utilizzano i suoi sensori di dislivello, sensori di luce, sensori di paraurti e una telecamera, prevenendo danni al robot sullo spietato terreno marziano. Oltre ad avvertire gli astronauti di possibili pericoli radioattivi sulla superficie, la funzione di localizzazione del campione radioattivo del robot potrebbe essere implementata come strumento per identificare aree che potrebbero contenere grandi depositi di uranio e altri attinidi. Gli astronauti potrebbero estrarre questi elementi, arricchirli a sufficienza e usarli in reattori nucleari e generatori termoelettrici, che potrebbero aiutare ad alimentare una colonia permanente e autosufficiente sul pianeta.

A differenza del tipico rover su Marte, il nostro design presenta componenti standard e un prezzo ragionevole. Se hai i fondi e la voglia, puoi persino costruirne uno tu stesso seguendo questa guida. Continua a leggere per imparare a creare il tuo RADbot.

Passaggio 1: acquisire le parti e i materiali necessari

Acquisire parti e materiali necessari
Acquisire parti e materiali necessari
Acquisire parti e materiali necessari
Acquisire parti e materiali necessari
Acquisire parti e materiali necessari
Acquisire parti e materiali necessari

Di cosa avrai bisogno per iniziare (immagini posizionate nell'ordine in cui sono elencate)

1. Un Roomba (qualsiasi modello più recente)

2. Un contatore Geiger-Mueller

3. Un Raspberry Pi

4. Una fotocamera a bordo con una presa USB

5. Un cavo da micro USB a USB

6. Un cavo da USB a USB

7. Un campione radioattivo di attività sufficiente (~5μSv o superiore)

8. Un computer con Matlab installato

9. Adesivo (preferibilmente nastro adesivo per una facile rimozione)

Passaggio 2: configurazione della fotocamera e del contatore Geiger-Muller

Configurazione della fotocamera e del contatore Geiger-Muller
Configurazione della fotocamera e del contatore Geiger-Muller

Ora che hai tutti i materiali necessari per creare il RADbot, inizieremo semplicemente posizionando la telecamera in modo che possa leggere l'attività sul bancone. Posiziona il contatore Geiger-Muller il più vicino possibile all'estremità del Roomba e assicurati che il suo sensore non sia bloccato. Fissa saldamente il bancone in posizione con l'adesivo che hai scelto e procedi a montare la videocamera di fronte ad esso. Posiziona la videocamera il più vicino possibile al display del bancone per evitare che input esterni influenzino il programma e fissala in posizione quando ti senti a tuo agio. Tuttavia, ti consigliamo di conservare per ultimo il fissaggio della fotocamera, perché, una volta terminato il codice, puoi visualizzare un'immagine dalla fotocamera sul tuo computer, consentendoti di posizionare la fotocamera in base al suo campo visivo. Una volta che sia la fotocamera che il contatore sono saldamente in posizione, collega la fotocamera a uno degli ingressi USB del Raspberry Pi con il cavo da USB a USB e collega il Raspberry Pi a Roomba con il cavo da micro USB a USB.

Passaggio 3: connettiti al tuo Roomba e crea il codice del sensore di luce

Connettiti al tuo Roomba e crea il codice del sensore di luce
Connettiti al tuo Roomba e crea il codice del sensore di luce

Innanzitutto, scarica la casella degli strumenti Roomba dal sito Web EF 230 e assicurati di inserirla nelle cartelle specificate. Per connetterti al tuo Roomba, fai semplicemente riferimento all'adesivo attaccato al Raspberry Pi e inserisci "r=roomba(x)" nella finestra di comando, senza le virgolette, e dove x sta per il numero di Roomba. Il Roomba dovrebbe riprodurre una melodia e il pulsante di pulizia dovrebbe visualizzare un anello verde attorno ad esso. Inizia il tuo codice con un'istruzione "while" e fai riferimento ai sensori di luce come appaiono nell'elenco dei sensori. Aprire l'elenco dei sensori digitando "r.testSensors" nella finestra di comando.

In base al colore del nostro oggetto, che determina la quantità di luce riflessa, imposta i requisiti per l'esecuzione dell'istruzione while come funzione >. Nel nostro caso, impostiamo il sensore di luce anteriore per eseguire il codice nell'istruzione while se la lettura sui sensori di luce centrale sinistro o destro era >25. Per l'istruzione eseguibile, impostare la velocità di Roomba per rallentare digitando "r.setDriveVelocity(x, y)" dove xey sono rispettivamente le velocità delle ruote sinistra e destra. Inserire un'istruzione "else", in modo che Roomba non rallenti per valori non specificati, e immettere nuovamente il comando di impostazione della velocità di azionamento, tranne che con una velocità diversa. Termina l'istruzione while con un "end". Questo segmento di codice farà avvicinare Roomba all'oggetto e rallenterà una volta raggiunto un certo intervallo per ridurre al minimo l'impatto.

In allegato c'è uno screenshot del nostro codice, ma sentiti libero di modificarlo per adattarlo al meglio ai parametri della tua missione.

Passaggio 4: crea un codice paraurti

Crea codice paraurti
Crea codice paraurti

Poiché Roomba sta rallentando, ridurrà al minimo l'impatto che ha sull'oggetto, anche se non così tanto da non attivare il paraurti fisico. Per questo segmento di codice, inizia di nuovo con un ciclo "while" e imposta la sua espressione su true. Per l'istruzione, impostare la variabile T uguale all'output del paraurti, 0 o 1, per falso e vero. Puoi usare "T=r.getBumpers" per questo. T verrà emesso come una struttura. Immettere un'istruzione "if" e impostare la sua espressione per la sottostruttura T.front su uguale a 1 e impostare l'istruzione per impostare la velocità dell'unità a 0, utilizzando "r.setDriveVelocity(x, y)" o "r.stop ". Inserisci una "pausa" in modo che Roomba possa muoversi dopo che la condizione nel codice successivo è soddisfatta. Aggiungi un "altro" e imposta la sua istruzione per impostare la velocità di guida sulla normale velocità di crociera di Roomba.

In allegato c'è uno screenshot del nostro codice, ma sentiti libero di modificarlo per adattarlo al meglio ai parametri della tua missione.

Passaggio 5: creare codice per leggere la schermata del contatore, interpretarlo e ritirarsi dalla fonte

Crea codice per leggere la schermata del contatore, interpretarlo e ritirarti dalla fonte
Crea codice per leggere la schermata del contatore, interpretarlo e ritirarti dalla fonte

Al centro del nostro progetto c'è il contatore Geiger-Muller e il seguente segmento di codice viene utilizzato per determinare cosa significano i dati sullo schermo utilizzando la fotocamera. Dato che lo schermo del nostro contatore cambia colore in base all'attività della sorgente, imposteremo la telecamera per interpretare il colore dello schermo. Inizia il tuo codice impostando una variabile uguale al comando "r.getImage". La variabile conterrà una matrice 3D di valori di colore dell'immagine scattata in rosso, verde e blu. Imposta variabili uguali alle medie di queste rispettive matrici di colore utilizzando il comando "mean(mean(img1(:,:, x)))" dove x è un numero intero compreso tra 1 e 3. 1, 2 e 3 rappresentano il rosso, il verde e blu rispettivamente. Come con tutti i comandi a cui si fa riferimento, non includere le virgolette.

Mettere in pausa il programma per 20 secondi utilizzando "pause(20)" in modo che il contatore possa ottenere una lettura accurata del campione, quindi iniziare un'istruzione "if". Il nostro Roomba ha emesso più volte un segnale acustico utilizzando "r.beep" prima di visualizzare un menu con il testo "Radioisotopo trovato! Attenzione!" questo può essere ottenuto con il comando "waitfor(helpdlg({'texthere'})". Dopo aver fatto clic su OK, Roomba continuerà a seguire il resto del codice nell'istruzione "if". Fare in modo che Roomba guidi il campione utilizzando una combinazione dei comandi "r.moveDistance" e "r.turnAngle". Assicurati di terminare l'istruzione if con "end".

In allegato c'è uno screenshot del nostro codice, ma sentiti libero di modificarlo per adattarlo al meglio ai parametri della tua missione.

Passaggio 6: creare un codice sensore di dislivello

Crea un codice sensore di dislivello
Crea un codice sensore di dislivello

Per creare un codice per utilizzare i sensori di dislivello integrati di Roomba, iniziare con un ciclo "while" e impostare la sua espressione su true. Imposta una variabile in modo che sia uguale a "r.getCliffSensors" e questo risulterà in una struttura. Avvia un'istruzione "if" e imposta le variabili "X.leftFront" e "X.rightFront" dalla struttura in modo che siano maggiori di un valore predeterminato, dove "X" è la variabile su cui hai scelto il comando "r.getCliffSensors" essere uguale a. Nel nostro caso, abbiamo usato 1000, poiché un pezzo di carta bianca è stato usato per rappresentare una scogliera e, quando i sensori si sono avvicinati alla carta, i valori sono cresciuti ben oltre 1000, assicurando che il codice verrà eseguito solo quando viene rilevata una scogliera. Aggiungi il comando "break" dopo, quindi inserisci un'istruzione "else". Per l'istruzione "else", che verrà eseguita se non viene rilevata alcuna scogliera, impostare la velocità di guida sulla normale velocità di crociera per ciascuna ruota. Se Roomba rileva una scogliera, verrà eseguita la "interruzione" e quindi verrà eseguito il codice al di fuori del ciclo while. Dopo aver posizionato la "fine" per il ciclo "if" e "while", imposta Roomba in modo che si sposti all'indietro utilizzando il comando di spostamento della distanza. Per avvertire gli astronauti che c'è una scogliera nelle vicinanze, imposta le velocità di guida di ciascuna ruota, xey nel comando velocità di guida, su a e -a, dove a è un numero reale. Ciò farà girare il Roomba, avvisando l'astronauta della scogliera.

In allegato c'è uno screenshot del nostro codice, ma sentiti libero di modificarlo per adattarlo al meglio ai parametri della tua missione.

Passaggio 7: conclusione

Conclusione
Conclusione

L'obiettivo finale del RADbot su Marte è assistere gli astronauti nella loro esplorazione e colonizzazione del pianeta rosso. Identificando campioni radioattivi sulla superficie, le nostre speranze sono che il robot, o il rover, in questo caso, possa davvero proteggere gli astronauti e aiutare a identificare le fonti di energia per le loro basi. Dopo aver seguito tutti questi passaggi, e forse con alcuni tentativi ed errori, il tuo RADbot dovrebbe essere attivo e funzionante. Posiziona il campione radioattivo da qualche parte all'interno della tua area di test, esegui il tuo codice e osserva il rover fare ciò per cui è stato progettato. Goditi il tuo RADbot!

-Il team RADbot EF230

Consigliato: