Spedizione gratuita da 74,95 € NL (99,95 € BE/DE)

Consegna veloce con DHL

Ordinato prima delle XNUMX:XNUMX = Spedito oggi

Restituzione entro XNUMX giorni*


Paese

In questo progetto ti mostrerò come creare il tuo radar Arduino.

Questo è un progetto intermedio/avanzato.

Quando il tuo progetto è assemblato, gli oggetti verranno visualizzati fino a 50 cm dal sensore. Se modifichi il codice, il radar può rilevare oggetti fino a 5 metri.

Per questo progetto sono necessari due programmi diversi Arduino IDE en Processando† Il linguaggio utilizzato da Processing è java, quindi tienilo a mente.

  • Livello – Avanzato/Esperto 65% 65%
  • Durata – 30/45 Min 40% 40%
  • Costi – € 49.75 euro completo 40% 40%

Passaggio 1: forniture

1X Arduino UNO

1X paneboard

Cavi jumper 4X m/m

4 cavi jumper f/m

Servo 1X180

1XHC-SR04

Supporto 1X HC-SR04

Passaggio 2: costruisci e cabla

Ora mettiamo insieme il progetto.

Inizi inviando i 5V da Arduino alla breadboard. Quindi si passa dalla breadboard alla porta positiva del servo e del sensore.

Fatto ciò, passa dal GND del servo e del sensore al GND dell'Arduino.

Infine, collegare il cavo del servocomando al pin 9, il pin dell'eco al pin 6 e il pin del trigger al pin 7.

Passaggio 3: programmazione

 

Ora che hai finito di cablare e costruire il tuo radar Arduino, puoi iniziare a programmare il Arduino Uno.

Per questo codice è necessario inserire un file include.

Un file Libreria o Include spesso contiene codice che può essere spesso riutilizzato in altri schizzi. Le biblioteche sono spesso una raccolta di funzioni correlate finalizzate a una particolare applicazione. Ad esempio per controllare una striscia con LED, funzioni matematiche speciali o ad esempio per controllare uno schermo LCD.

Per questo progetto useremo il file include servo, se non lo includi il tuo Arduino non sarà in grado di controllare il servo e il tuo sonar non funzionerà.

Puoi copiare e incollare il codice qui sotto. Ti consigliamo di copiare tu stesso il codice poiché ne imparerai di più.

   leftRightServo.write(leftRightPos);

      for (indice = 0; indice<=numLetture;indice++) {         

        digitalWrite(trigPin, BASSO);

        ritardoMicrosecondi(2);

        digitalWrite(trigPin, ALTO);                        

        ritardoMicrosecondi(10);                              

        digitalWrite(trigPin, BASSO);                          

        impulsoTempo = impulsoIn(echoPin, ALTO);             

        distanza = tempo di impulso/13;                           

        totale = totale + distanza;                       

        ritardo (10);

      }

    media = totale/num letture;                              

    if (indice >= numLetture) {                             

      indice = 0;

      totale = 0;

    }

    se(media >= 300){

      media = 300;

    }

    Serial.print("X");                                       

    Serial.print(Pos.DestraSinistra);                             

    Serial.print("V");                                        

    Serial.println (media);                                

  }

 

  for(leftRightPos = 180; leftRightPos > 0; leftRightPos–) {

    leftRightServo.write(leftRightPos);

    for (indice = 0; indice<=numLetture;indice++) {

      digitalWrite(trigPin, BASSO);

      ritardoMicrosecondi(2);

      digitalWrite(trigPin, ALTO);

      ritardoMicrosecondi(10);

      digitalWrite(trigPin, BASSO);

      impulsoTempo = impulsoIn(echoPin, ALTO);

      distanza = tempo di impulso/13;

      totale = totale + distanza;

      ritardo (10);

    }

    media = totale/num letture;

    if (indice >= numLetture) {

      indice = 0;

      totale = 0;

    }

    if( media >= 300){

      media = 300;

    }

    Serial.print("X");

    Serial.print(Pos.DestraSinistra);

    Serial.print("V");

    Serial.println (media);

   }

}

Dopo aver inserito il codice nell'IDE di Arduino, puoi inserire il codice qui sotto in Elaborazione.


importazione elaborazione.seriale.*;   

porta seriale arduino;                

galleggiante x, y;                      

raggio int = 350;              

int w = 300;                   

grado int = 0;                

int valore = 0;                  

intmotion = 0;                

int[] nuovoValore = nuovo int[181]; 

int[] vecchioValore = nuovo int[181];

Font mio Font;                 

int radarDist = 0;            

int firstRun = 0;              

void setup () {

 

dimensione (750, 450);

sfondo (0);

mioFont = createFont("verdana", 12);

testoFont(mioFont);

arduinoport = new Serial(questo, "COM10", 9600);

 

}

 

 

vuoto disegnare() {

riempimento(0);                             

noColpo();                        

ellisse(raggio, raggio, 750, 750);

rectMode(CENTRO);                  

retto(350,402,800,100);             

se (grado >= 179) {             

movimento = 1;                      

}

se (grado <= 1) {                 

movimento = 0;                       

}

 

corsaPeso(7);                    

se(movimento == 0) {                   

for (int i = 0; i <= 20; i++) { 

tratto(0, (10*i), 0);          

line(raggio, raggio, raggio + cos(radianti(gradi+(180+i))))*w, raggio + sin(radianti(gradi+(180+i))))*w);

}

} Else {                            

for (int i = 20; i >= 0; i–) {   

corsa(0,200-(10*i), 0);       

line(raggio, raggio, raggio + cos(radianti(gradi+(180+i))))*w, raggio + sin(radianti(gradi+(180+i))))*w);

}

}

 

noColpo();                         

 

riempimento(0,50,0);                       

iniziareForma();                        

for (int i = 0; i <180; i ++) {    

x = raggio + cos(radianti((180+i)))*((oldValue[i]));

y = raggio + sin(radianti((180+i))))*((oldValue[i]));

vertice(x, y);                    

}

forma finale();                          

 

riempimento(0,110,0);

iniziareForma();

for (int i = 0; i <180; i ++) {

x = raggio + cos(radianti((180+i)))*(nuovoValore[i]);

y = raggio + sin(radianti((180+i))))*(nuovoValore[i]);

vertice(x, y);

}

forma finale();

 

riempimento(0,170,0);

iniziareForma();

for (int i = 0; i <180; i ++) {

x = raggio + cos(radianti((180+i))))*((nuovoValore[i]+vecchioValore[i])/2);

y = raggio + sin(radianti((180+i))))*((nuovoValore[i]+vecchioValore[i])/2);

vertice(x, y);

}

forma finale();

 

se (prima esecuzione >= 360) {

corsa(150,0,0);

corsaPeso(1);

noRiempimento();

for (int i = 0; i <180; i ++) {

if (oldValue[i] – newValue[i] > 35 || newValue[i] – oldValue[i] > 35) {

x = raggio + cos(radianti((180+i)))*(nuovoValore[i]);

y = raggio + sin(radianti((180+i))))*(nuovoValore[i]);

ellisse(x, y, 10, 10);

}

}

}

 

for (int i = 0; i <= 5; i++){

noRiempimento();

corsaPeso(1);

tratto(0, 255-(30*i), 0);

ellisse(raggio, raggio, (120*i), (120*i));

riempimento(0, 100, 0);

}

for (int i = 0; i <= 6; i++) {

corsaPeso(1);

tratto(0, 55, 0);

line(raggio, raggio, raggio + cos(radianti(180+(30*i)))*w, raggio + sin(radianti(180+(30*i)))*w);

riempimento(0, 55, 0);

noColpo();

se (180+(30*i) >= 300) {

text(Integer.toString(180+(30*i)), (radius+10) + cos(radianti(180+(30*i)))*(w+10), (radius+10) + sin(radianti (180+(30*i)))*(w+10), 25,50);

} Else {

text(Integer.toString(180+(30*i)), raggio + cos(radianti(180+(30*i))))*w, raggio + sin(radianti(180+(30*i)))* w, 60,40);

}

}

noColpo();

riempimento(0);

retto(350,402,800,100);

riempimento(0, 100, 0);

text("Gradi: "+Integer.toString(gradi), 100, 380, 100, 50);           

text("Codice schermo radar", 540, 380, 250, 50);

riempimento(0);

retto(70,60,150,100);

riempimento(0, 100, 0);

text("Tasto schermo:", 100, 50, 150, 50);

riempimento(0,50,0);

retto(30,53,10,10);

text("Prima scansione", 115, 70, 150, 50);

riempimento(0,110,0);

retto(30,73,10,10);

text("Seconda scansione", 115, 90, 150, 50);

riempimento(0,170,0);

retto(30,93,10,10);

text("Media", 115, 110, 150, 50);

riempimento(0, 255, 0);

testo("10", 455, 375, 200, 200);

riempimento(0, 255, 0);

testo("20", 455, 310, 200, 200);

riempimento(0, 255, 0);

testo("30", 455, 250, 200, 200);

riempimento(0, 255, 0);

testo("40", 455, 190, 200, 200);

riempimento(0, 255, 0);

testo("50", 455, 130, 200, 200);

}

 

 

void serialEvent(Serial arduinoport) {

Stringa xString = arduinoport.readStringUntil('\n'); 

se (xString != nullo) { 

xStringa = taglia(xStringa);

Stringa getX = xString.substring(1, xString.indexOf("V"));

Stringa getV = xString.substring(xString.indexOf("V")+1, xString.length());

grado = Intero.parseInt(getX);

valore = Intero.parseInt(getV);

vecchioValore[grado] = nuovoValore[grado];

nuovoValore[grado] = valore; 

primaEsegui++;

se (prima esecuzione > 330) {

prima esecuzione = 333;

}

}

}

L'apprezzamento di www.electronicsvoorjou.nl at Recensioni WebwinkelKeur è 9.3 / 10 basato su 5005 recensioni.