Sommario:

IL ROBOT EMOZIONALE PER EVITARE OSTACOLI: 11 Passi
IL ROBOT EMOZIONALE PER EVITARE OSTACOLI: 11 Passi

Video: IL ROBOT EMOZIONALE PER EVITARE OSTACOLI: 11 Passi

Video: IL ROBOT EMOZIONALE PER EVITARE OSTACOLI: 11 Passi
Video: I robot che rivoluzioneranno la società (e la nostra vita) 2024, Dicembre
Anonim
L'OSTACOLO EMOZIONALE CHE EVITA IL ROBOT
L'OSTACOLO EMOZIONALE CHE EVITA IL ROBOT

Il robot emotivo. Questo robot mostra emozioni con i neopixel (LED RGB) come tristezza, felicità, rabbia e paura, può anche evitare gli ostacoli e fare determinati movimenti durante la sua certa emozione. Il cervello di questo robot è un Arduino mega. tieni presente che questo è il mio primo robot programmato che abbia mai costruito e mi ha fatto innamorare della programmazione, il codice stesso è molto principiante e molto probabilmente potrebbe essere semplificato.

Passaggio 1: PARTI

PARTI
PARTI

-3,2 piedi di una striscia di neopixel

-HC-SR04 Sensore a ultrasuoni (o qualsiasi altro sensore a ultrasuoni)

-interruttore di inclinazione

-3 batteria agli ioni di litio da 3,7 V (18650)

-convertitore boost (spiegato in fase di potenza)

-fotoresistenza (qualsiasi valore)

-sensore audio analogico

-2 motori in corrente continua 6v

-l293d (driver del motore)

-foglio di plastica

-cartone

-ruota sterzante

Passaggio 2: Neopixel

Neopixel
Neopixel
Neopixel
Neopixel

A causa di come avevo un budget limitato, il modo più semplice ed economico per far prendere vita alle emozioni dei miei robot sono i neopixel, tutto ciò che hanno sono 3 ingressi e uscite. i tre pin sull'ingresso sono etichettati 5v, DIN (data in) e GND (massa); l'output è etichettato come input ma invece dei dati nel suo DO (data out). Il modo in cui si collegano questi led è di collegarli in parallelo tra loro, quindi 5v si collega a 5v sull'altro led e GND è collegato all'altro led GND, DO del primo led è collegato a DIN del secondo led e poi questo processo continua fino a quando non raggiungi la lunghezza della striscia led desiderata. Un'intera striscia di neopixel richiede solo un pin di uscita digitale dall'ingresso, questo perché DO e DIN sono collegati in una lunga catena, quindi condividono tutti i dati tra loro. Questo è necessario perché abbiamo bisogno di accendere e spegnere specifici led in momenti specifici. Un'istruzione utile su questo è NEOPIXEL HELP

Passaggio 3: lo schema

Lo schema
Lo schema

Il circuito è molto semplice poiché la maggior parte del robot è appena programmata, i motori funzionano a circa 7v con un driver motore l293d per controllare i motori per andare avanti o indietro. Le altre connessioni sono i sensori all'Arduino. E questo è tutto!

Passaggio 4: il codice

La prima cosa che ho fatto è stato scaricare le librerie necessarie per rendere un po' più semplice la codifica, le librerie che ho usato sono "FastLED.h" e "NewPing.h". Il led veloce è per i led e il nuovo ping è per i sensori ad ultrasuoni. La cosa successiva che ho fatto è stata creare tutte le definizioni per i pin che ho usato, dopodiché è stata configurata con void, qui è dove ho impostato le modalità dei pin e il neostrip "FastLED.addLeds(leds, NUM_LEDS);" ho definito NUM_LEDS come 56, poiché ho usato 56 led, le configurazioni dei led verranno spiegate nel passaggio frontale. Ho quindi creato un sacco di funzioni per far muovere il mio robot avanti e indietro e avere anche la sua certa emozione, dopodiché arrivo al ciclo del vuoto, è qui che chiamo tutte le mie funzioni in una certa sequenza che voglio, ad esempio, se volessi che il mio robot sorridesse, metterei smile();. Se volessi accendere un certo led, metterei leds[45] = CRGB::Green;, questo imposterà il led 45 verde. Quando metto il colore sul nero, significa semplicemente spento. Ora tieni presente che questo è uno dei miei primi programmi, quindi ovviamente non è perfetto, ma ha comunque funzionato.

IL CODICE

Passaggio 5: il viso

La faccia
La faccia

Per il viso ho usato 56 led che sono quasi una striscia di neopixel da 3,2 piedi. Ho tagliato la striscia in 7 strisce da 8 led, ho usato le prime 3 strisce per gli occhi e le ultime 4 per la bocca. Ho collegato le strisce in una sorta di connessione a forma di serpente, spero che capirai meglio con il diagramma. Quando ho finito il viso ho poi messo un sottile foglio di plastica (circa 2 mm di spessore) sopra le strisce led.

Passaggio 6: funzione felice

Funzione felice
Funzione felice

Questa funzione è la più semplice di tutte in quanto non utilizza alcun sensore, invece non appena accendi il bot, ti sorride immediatamente. Ma non solo sorride; quando sorride, è anche in modalità di evitamento degli ostacoli. La modalità di evitamento degli ostacoli è rappresentata nel mio codice come la funzione roam. La modalità di evitamento degli ostacoli o il roaming funziona utilizzando due sensori a ultrasuoni sul lato del robot, quando il sensore arriva a 30 cm da qualsiasi cosa, indietreggerebbe e andrebbe a destra o a sinistra a seconda del sensore più vicino all'oggetto.

Passaggio 7: funzione triste

Funzione triste
Funzione triste
Funzione triste
Funzione triste

Affinché il robot diventasse triste, ho dovuto pensare a un tratto della personalità di questo robot, quindi ho deciso di renderlo triste quando si trova in un ambiente buio. Per fare questo ho usato una fotoresistenza per rilevare la luce. Più scuro è l'ambiente, maggiore è la resistenza e più chiaro è l'ambiente, minore è la resistenza. Il circuito funziona come un partitore di tensione che è un circuito con due resistori collegati in serie a +5v e GND, nel punto medio della connessione del resistore si trova una tensione che può essere determinata da questa equazione: tensione di ingresso*(R2/R1+R2). quando l'Arduino Analog Pin legge questo valore converte la tensione in un intervallo da 0 a 1023.

Passaggio 8: funzione arrabbiata

Funzione arrabbiata
Funzione arrabbiata
Funzione arrabbiata
Funzione arrabbiata

Per far arrabbiare il robot ho deciso di capovolgerlo/rovesciarlo. Funziona usando un interruttore a inclinazione, e un interruttore a inclinazione è fondamentalmente un normale interruttore ma invece di avere un pulsante o un bilanciere, hai una sfera di mercurio che se inclinata di una certa angolazione collegherà i due contatti e si accenderà; quindi il valore di questo è 0 o 1, 0 per off e 1 per on. Quando il robot è arrabbiato, ignora anche la modalità di evitamento degli ostacoli e scaglia qualsiasi cosa in vista nella direzione in avanti, a causa della sua rabbia.

Passaggio 9: funzione spaventata

Funzione spaventata
Funzione spaventata
Funzione spaventata
Funzione spaventata

Per la funzione finale del robot è la funzione paura, che utilizza un sensore sonoro che è posizionato proprio sopra il robot. Ogni volta che il robot sente un rumore di carico, si spaventa e trema mentre torna indietro. Il sensore del suono funziona utilizzando un microfono a condensatore che è un microfono, quando rileva suoni o vibrazioni creerà una piccola tensione, solitamente circa 100mv, questa tensione viene poi amplificata e letta tramite il pin analogico dell'Arduino, maggiore è la tensione o più forte è il suono più alto è il valore analogico e viceversa.

Passaggio 10: alimentazione

Potenza
Potenza
Potenza
Potenza

Ora che hai costruito tutto il necessario per alimentarlo, inizialmente ho provato ad alimentarlo con 8 batterie AA, ma era troppo ingombrante e poco pratico. Ho quindi usato 3 batterie agli ioni di litio che contengono ciascuna circa 3,5 V, ho collegato una batteria a un convertitore boost che è un amplificatore di tensione, questo ha aumentato il mio 3,5 V a 5 V per alimentare l'Arduino, quindi ho usato due delle batterie e collegato direttamente ai motori e ai LED, questa non è una buona idea poiché la tensione non è stata regolata, ma non avevo un regolatore di tensione in giro, se provi a costruirlo ti consiglio di usare un regolatore di tensione che può fare 5v a circa 2-3 amp, un esempio di questo è l'LM78S05. Oppure puoi utilizzare l'LM7805 per alimentare Arduino e ottenere invece un convertitore step-down o un convertitore buck per abbassare la tensione e alimentare i LED e i motori.

Passaggio 11: divertiti!

Spero che costruirai questo robot e ti divertirai, spero anche che darai il tuo tocco personale a questo robot e creerai le tue emozioni per renderlo VIVO!!!

Consigliato: