Come realizzare un robot fai-da-te per evitare ostacoli Arduino a casa: 4 passaggi
Come realizzare un robot fai-da-te per evitare ostacoli Arduino a casa: 4 passaggi
Anonim
Image
Image

Ciao ragazzi, in questo Instructable farete un ostacolo evitando il robot. Questo Instructable prevede la costruzione di un robot con un sensore a ultrasuoni in grado di rilevare gli oggetti vicini e cambiare la loro direzione per evitare questi oggetti. Il sensore a ultrasuoni sarà collegato a un servomotore che scansiona costantemente sinistra e destra alla ricerca di oggetti sulla sua strada.

Quindi, senza ulteriori indugi, iniziamo!

Passaggio 1: cosa ti serve in questo progetto:

Cosa ti serve in questo progetto
Cosa ti serve in questo progetto
Cosa ti serve in questo progetto
Cosa ti serve in questo progetto

Ecco l'elenco delle parti:

1) Arduino Uno

2) Schermo del driver del motore

3) Motoriduttore, telaio e set di ruote

4) Servomotore

5) Sensore a ultrasuoni

6) Batteria agli ioni di litio (2x)

7) Portabatterie

8) Cavo ponticello maschio e femmina

9) Saldatore

10) Caricabatterie

Passaggio 2: schema elettrico

Schema elettrico
Schema elettrico

Lavorando:

Prima di iniziare a lavorare al progetto, è importante capire come funziona il sensore a ultrasuoni. Il principio alla base del funzionamento del sensore a ultrasuoni è il seguente:

Utilizzando un segnale di trigger esterno, il pin Trig sul sensore a ultrasuoni viene reso logico alto per almeno 10µs. Viene inviato un burst sonico dal modulo trasmettitore. Questo è composto da 8 impulsi di 40KHz.

I segnali ritornano dopo aver colpito una superficie e il ricevitore rileva questo segnale. Il pin Echo è alto dal momento dell'invio del segnale e della ricezione. Questo tempo può essere convertito in distanza utilizzando calcoli appropriati.

Lo scopo di questo progetto è implementare un ostacolo evitando il robot utilizzando un sensore a ultrasuoni e Arduino. Tutti i collegamenti sono realizzati come da schema elettrico. Il funzionamento del progetto è spiegato di seguito.

Quando il robot è acceso, entrambi i motori del robot funzioneranno normalmente e il robot si muoverà in avanti. Durante questo tempo, il sensore a ultrasuoni calcola continuamente la distanza tra il robot e la superficie riflettente.

Queste informazioni vengono elaborate da Arduino. Se la distanza tra il robot e l'ostacolo è inferiore a 15 cm, il robot si ferma e scansiona nelle direzioni sinistra e destra per una nuova distanza utilizzando il servomotore e il sensore a ultrasuoni. Se la distanza verso il lato sinistro è maggiore di quella del lato destro, il robot si preparerà per una svolta a sinistra. Ma prima fa un po' di retromarcia e poi attiva il motore della ruota sinistra in senso inverso.

Allo stesso modo, se la distanza destra è maggiore di quella sinistra, il Robot predispone la rotazione destra. Questo processo continua per sempre e il robot continua a muoversi senza urtare alcun ostacolo.

Passaggio 3: programmare Arduino UNO

#includere

#includere

#includere

# definisci TRIG_PIN A1

# definisce ECHO_PIN A0

# definisci MAX_DISTANCE 200

# define MAX_SPEED 255 // imposta la velocità dei motori DC

# definisci MAX_SPEED_OFFSET 20

NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotore motore3(3, MOTOR34_1KHZ);

AF_DCMotore motore4(4, MOTOR34_1KHZ); Servo mio servo;

booleano goesForward = false;

distanza int = 100; int speedSet = 0;

void setup() {

mioservo.attach(10);

mioservo.write(115); ritardo (2000); distanza = readPing(); ritardo(100); distanza = readPing(); ritardo(100); distanza = readPing(); ritardo(100); distanza = readPing(); ritardo(100); }

ciclo vuoto() {

int distanzaR = 0; distanza intL = 0; ritardo(40);

if (distanza <= 15) { moveStop(); ritardo(100); tornare indietro(); ritardo(300); moveStop(); ritardo(200); distanzaR = lookRight(); ritardo(200); distanzaL = lookLeft(); ritardo(200);

if (distanzaR >= distanzaL) {

Girare a destra(); moveStop(); } else { turnLeft(); moveStop(); } } else { moveForward(); } distanza = readPing(); }

int lookRight() {

mioservo.write(50); ritardo (500); int distanza = readPing(); ritardo(100); mioservo.write(115); distanza di ritorno; }

int lookLeft() {

mioservo.write(170); ritardo (500); int distanza = readPing(); ritardo(100); mioservo.write(115); distanza di ritorno; ritardo(100); }

int readPing() {

ritardo(70); int cm = sonar.ping_cm(); se (cm == 0) { cm = 250; } restituisce cm; }

void moveStop() {

motor3.run(RELEASE);

motor4.run(RELEASE); }

void moveForward() {

if (!va avanti) {

va avanti = vero;

motore3.run(AVANTI);

motor4.run(AVANTI); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // aumenta lentamente la velocità per evitare di scaricare le batterie troppo velocemente {

motor3.setSpeed(speedSet);

motor4.setSpeed(speedSet); ritardo(5); } } }

void moveBackward() {

va avanti = falso;

motore3.run(INDIETRO);

motor4.run(BACKWARD); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // aumentare lentamente la velocità per evitare di scaricare le batterie troppo velocemente {

motor3.setSpeed(speedSet);

motor4.setSpeed(speedSet); ritardo(5); } }

void turnRight() {

motore3.run(AVANTI);

motor4.run(BACKWARD); ritardo (500);

motore3.run(AVANTI);

motor4.run(AVANTI); }

void turnLeft() {

motore3.run(INDIETRO);

motor4.run(AVANTI); ritardo (500);

motore3.run(AVANTI);

motor4.run(AVANTI); }

1) Scarica e installa Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Scarica e incolla il file della libreria NewPing (libreria delle funzioni del sensore a ultrasuoni) nella cartella delle librerie di Arduino.

  1. Scarica il NewPing.rar qui sotto
  2. Estrailo nel percorso - C:\Arduino\libraries

3) Carica il codice sulla scheda Arduino tramite un cavo USB

Scarica il codice:

Passaggio 4: fantastico

Ora il tuo robot è pronto per evitare qualsiasi ostacolo…

Sarei felice di rispondere a qualsiasi domanda tu abbia

E-mail: [email protected]

Sito Web:

Iscriviti al mio canale YouTube:

Instagram:

Facebook:

Grazie:)

Consigliato: