Sommario:

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

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

Video: Come realizzare un robot fai-da-te per evitare ostacoli Arduino a casa: 4 passaggi
Video: PROGETTO Arduino: Progetto Mark#1 - Robot car fatto in casa 2024, Dicembre
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: