Kostenloser Versand ab 74,95 € NL (99,95 € BE / DE)

Bestellt vor 16:00 Uhr morgen Zuhause

Express bestellt vor 11:30 Uhr = heute Abend Zuhause*

14 Tag Kostenlos Rückkehr *

Logo Electronics für Sie


In diesem Projekt zeige ich Ihnen, wie Sie selbst ein Arduino-Radar herstellen.

Dies ist ein fortgeschrittenes Projekt.

Wenn Ihr Projekt zusammengestellt ist, werden Objekte bis zu 50 cm vom Sensor entfernt angezeigt. Wenn Sie den Code ändern, kann das Radar Objekte bis zu 5 Metern erkennen.

Für dieses Projekt benötigen Sie zwei verschiedene Programme Arduino IDE en In Bearbeitung. Die von Processing verwendete Sprache ist Java. Denken Sie also daran.

  • Level - Fortgeschritten / Experte 65% 65%
  • Dauer - 30/45 min 40% 40%
  • Kosten - 49.75 € abgeschlossen 40% 40%

Schritt 1: Anforderungen

1X Arduino UNO

1X Steckbrett

4X m / m Überbrückungskabel

4X f / m Überbrückungskabel

1X 180 Servo

1X HC-SR04

1X HC-SR04 Halter

Schritt 2: Bauen und Verkabeln

Jetzt werden wir das Projekt zusammenstellen.

Sie beginnen, indem Sie die 5V vom Arduino an das Steckbrett senden. Dann gehen Sie vom Steckbrett zum Plus-Port des Servos und des Sensors.

Sobald Sie dies getan haben, gehen Sie vom GND des Servos und des Sensors zum GND des Arduino.

Schließen Sie abschließend das Servosteuerungskabel an Pin 9, den Echo-Pin an Pin 6 und den Trigpin an Pin 7 an.

Schritt 3: Programmierung

 

Nachdem Sie die Verkabelung und den Bau Ihres Arduino-Radars abgeschlossen haben, können Sie mit der Programmierung des Arduino Uno beginnen.

Für diesen Code müssen wir eine Include-Datei einfügen.

Eine Bibliothek oder Include-Datei enthält häufig Code, der häufig in anderen Skizzen wiederverwendet werden kann. Oft sind Bibliotheken (Bibliotheken) eine Sammlung verwandter Funktionen, die auf eine bestimmte Anwendung abzielen. Zum Beispiel zur Steuerung eines Streifens mit LEDs, speziellen mathematischen Funktionen oder zum Beispiel zur Steuerung eines LCD-Bildschirms.

Für dieses Projekt verwenden wir die Include-Servodatei. Wenn Sie sie nicht einfügen, können Sie das Arduino-Servo nicht steuern, und Ihr Sonar funktioniert nicht.

Sie können den folgenden Code kopieren und einfügen. Wir empfehlen, dass Sie den Code selbst kopieren, wenn Sie mehr daraus lernen.

   leftRightServo.write (leftRightPos);

      for (index = 0; index <= numReadings; index ++) {         

        digitalWrite (trigPin, LOW);

        delayMicroseconds (2);

        digitalWrite (trigPin, HIGH);                        

        delayMicroseconds (10);                              

        digitalWrite (trigPin, LOW);                          

        pulsTime = pulsIn (echoPin, HIGH);             

        Entfernung = Pulszeit / 13;                           

        gesamt = gesamt + entfernung;                       

        Verzögerung (10);

      }

    Durchschnitt = Gesamt / AnzahlReadings;                              

    if (index> = numReadings) {                             

      index = 0;

      gesamt = 0;

    }

    if (Durchschnitt> = 300) {

      Durchschnitt = 300;

    }

    Serial.print ("X");                                       

    Serial.print (leftRightPos);                             

    Serial.print ("V");                                        

    Serial.println (Durchschnitt);                                

  }

 

  für (leftRightPos = 180; leftRightPos> 0; leftRightPos–) {

    leftRightServo.write (leftRightPos);

    for (index = 0; index <= numReadings; index ++) {

      digitalWrite (trigPin, LOW);

      delayMicroseconds (2);

      digitalWrite (trigPin, HIGH);

      delayMicroseconds (10);

      digitalWrite (trigPin, LOW);

      pulsTime = pulsIn (echoPin, HIGH);

      Entfernung = Pulszeit / 13;

      gesamt = gesamt + entfernung;

      Verzögerung (10);

    }

    Durchschnitt = Gesamt / AnzahlReadings;

    if (index> = numReadings) {

      index = 0;

      gesamt = 0;

    }

    if (Durchschnitt> = 300) {

      Durchschnitt = 300;

    }

    Serial.print ("X");

    Serial.print (leftRightPos);

    Serial.print ("V");

    Serial.println (Durchschnitt);

   }

}

Nachdem Sie den Code in die Arduino IDE eingegeben haben, können Sie den folgenden Code unter Verarbeitung eingeben.


import process.serial. *;   

Serieller Arduinoport;                

Schwimmer x, y;                      

int Radius = 350;              

intw = 300;                   

int Grad = 0;                

int-Wert = 0;                  

Intmotion = 0;                

int [] newValue = new int [181]; 

int [] oldValue = new int [181];

PFont myFont;                 

int RadarDist = 0;            

int firstRun = 0;              

void setup () {

 

Größe (750, 450);

Hintergrund (0);

myFont = createFont ("verdana", 12);

textFont (myFont);

arduinoport = new Serial (dies ist "COM10", 9600);

 

}

 

 

void draw () {

füllen (0);                             

noStroke ();                        

Ellipse (Radius, Radius 750, 750);

rectMode (CENTER);                  

rect (350,402,800,100);             

if (Grad> = 179) {             

Bewegung = 1;                      

}

if (Grad <= 1) {                 

Bewegung = 0;                       

}

 

Schlaganfallgewicht (7);                    

wenn (Bewegung == 0) {                   

für (int i = 0; i <= 20; i ++) { 

Strich (0, (10 · i), 0);          

Linie (Radius, Radius, Radius + cos (Bogenmaß (Grad + (180 + i))) * w, Radius + sin (Bogenmaß (Grad + (180 + i))) * w);

}

} Else {                            

für (int i = 20, i> = 0, i–) {   

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

Linie (Radius, Radius, Radius + cos (Bogenmaß (Grad + (180 + i))) * w, Radius + sin (Bogenmaß (Grad + (180 + i))) * w);

}

}

 

noStroke ();                         

 

füllen (0,50,0);                       

beginShape ();                        

für (int i = 0; i <180; i ++) {    

x = Radius + cos (Bogenmaß ((180 + i))) * ((alter Wert [i]));

y = Radius + sin (Bogenmaß ((180 + i))) * ((alter Wert [i]));

Scheitelpunkt (x, y);                    

}

endShape ();                          

 

füllen (0,110,0);

beginShape ();

für (int i = 0; i <180; i ++) {

x = Radius + cos (Bogenmaß ((180 + i))) * (neuer Wert [i]);

y = Radius + sin (Bogenmaß ((180 + i))) * (neuer Wert [i]);

Scheitelpunkt (x, y);

}

endShape ();

 

füllen (0,170,0);

beginShape ();

für (int i = 0; i <180; i ++) {

x = Radius + cos (Bogenmaß ((180 + i))) * ((neuer Wert [i] + alter Wert [i]) / 2);

y = Radius + sin (Bogenmaß ((180 + i))) * ((neuer Wert [i] + alter Wert [i]) / 2);

Scheitelpunkt (x, y);

}

endShape ();

 

if (firstRun> = 360) {

Hub (150,0,0);

Schlaganfallgewicht (1);

noFill ();

für (int i = 0; i <180; i ++) {

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

x = Radius + cos (Bogenmaß ((180 + i))) * (neuer Wert [i]);

y = Radius + sin (Bogenmaß ((180 + i))) * (neuer Wert [i]);

Ellipse (x, y, 10, 10);

}

}

}

 

für (int i = 0; i <= 5; i ++) {

noFill ();

Schlaganfallgewicht (1);

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

Ellipse (Radius, Radius, (120 * i), (120 * i));

füllen (0, 100, 0);

}

für (int i = 0; i <= 6; i ++) {

Schlaganfallgewicht (1);

Schlaganfall (0, 55);

Linie (Radius, Radius, Radius + cos (Bogenmaß (180+ (30 * i))) * w, Radius + sin (Bogenmaß (180+ (30 * i))) * w);

füllen (0, 55, 0);

noStroke ();

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

Text (Integer.toString (180+ (30 * i)), (Radius + 10) + cos (Bogenmaß (180+ (30 * i))) * (w + 10), (Radius + 10) + sin (Bogenmaß) (180+ (30 * i)) * (w + 10), 25,50);

} Else {

Text (Integer.toString (180+ (30 * i))), Radius + cos (Bogenmaß (180+ (30 * i))) * w, Radius + sin (Bogenmaß (180+ (30 * i))) * w 60,40, XNUMX);

}

}

noStroke ();

füllen (0);

rect (350,402,800,100);

füllen (0, 100, 0);

Text ("Grad:" + Integer.toString (Grad), 100, 380, 100, 50);           

Text ("Radarbildschirmcode", 540, 380, 250, 50);

füllen (0);

rect (70,60,150,100);

füllen (0, 100, 0);

Text ("Bildschirmtaste:", 100, 50, 150, 50);

füllen (0,50,0);

rect (30,53,10,10);

Text ("First Sweep", 115, 70, 150, 50);

füllen (0,110,0);

rect (30,73,10,10);

Text ("Zweiter Sweep", 115, 90, 150, 50);

füllen (0,170,0);

rect (30,93,10,10);

Text ("Durchschnitt", 115, 110, 150, 50);

füllen (0, 255, 0);

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

füllen (0, 255, 0);

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

füllen (0, 255, 0);

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

füllen (0, 255, 0);

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

füllen (0, 255, 0);

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

}

 

 

void serialEvent(Serieller Arduinoport) {

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

if (xString! = null) { 

xString = trim (xString);

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

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

Grad = Integer.parseInt (getX);

value = Integer.parseInt (getV);

oldValue [Grad] = newValue [Grad];

newValue [Grad] = Wert; 

firstRun ++;

if (firstRun> 330) {

firstRun = 333;

}

}

}

Erkundigen Sie sich nach den Möglichkeiten
Wir werden Sie so schnell wie möglich kontaktieren

SENDEN
Close-link
Die Bewertung von www.elektronicavoorjou.nl bei Webshop Keurmerk Kundenbewertungen ist 9.2 / 10 basierend auf 987 Bewertungen.