Inhaltsverzeichnis:

Projekt 3: SonarDuino - Gunook
Projekt 3: SonarDuino - Gunook

Video: Projekt 3: SonarDuino - Gunook

Video: Projekt 3: SonarDuino - Gunook
Video: Arduino with Sound Sensor and LED (Tutorial) 2024, November
Anonim
Image
Image

Lieber Hobbybastler, In diesem Projekt werden wir die Möglichkeit untersuchen, ein 360-Grad-Radarsystem zur Objekterkennung zu haben. Wenn Sie dieses Modul separat einstellen, kann Ihr Fortbewegungsroboter die Grenzen seiner Umgebung erkennen. Es kann auch bei Dunkelheit als Navigationshilfe dienen, aber nur, wenn Sie langsam genug gehen;p

Schritt 1: Was Sie brauchen

Bereiten Sie die Ultraschallsensorhalterung vor
Bereiten Sie die Ultraschallsensorhalterung vor

Um diesen Build zu erstellen, müssen Sie Folgendes kaufen:

Arduino Nano:

Prototyping-Boards: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSwN ~Zbl232:rk:13:pf:0

Servomotoren:

Ultraschallsensoren: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~IAAOSw--xbD5Fp:rk:2:pf:0

Schritt 2: Dokumentation

Wie einige von Ihnen vielleicht bereits wissen, ist dieses Projekt von einem anderen Open-Source-Projekt namens „Arduino Radar Project“inspiriert, das von Dejan aus „How to Mechatronics“unter folgendem Link erstellt wurde: https://howtomechatronics.com/projects/arduino -Radar-Projekt/

Ein weiterer Punkt, der Dokumentation erfordert, besteht darin, die folgenden beiden Bibliotheken in Ihre Entwicklungsumgebung herunterzuladen:

Adafruit-GFX-Bibliothek:

Adafruit_SSD1306:

Um den C-Code wirklich zu verstehen, müssen Sie jedoch einige Dokumentationen zu den beiden oben genannten Bibliotheken erstellen. Abgesehen davon haben die Funktionen, die ich in meinem Code verwendet habe, Namen, die verraten, was sie tun.

Schritt 3: Bereiten Sie die Ultraschallsensorhalterung vor

Bereiten Sie die Ultraschallsensorhalterung vor
Bereiten Sie die Ultraschallsensorhalterung vor
Bereiten Sie die Ultraschallsensorhalterung vor
Bereiten Sie die Ultraschallsensorhalterung vor
Bereiten Sie die Ultraschallsensorhalterung vor
Bereiten Sie die Ultraschallsensorhalterung vor

Nehmen Sie ein beliebiges Stück Pappe und schneiden Sie es entsprechend den Abmessungen der am Sensor angebrachten Anschlusskabel wie im ersten Bild gezeigt zu. Danach falten Sie dieses zuletzt und kleben es auf den Servomotorträger. Danach kleben Sie die beiden Ultraschallsensoren gemäß dem letzten Bild. Beachten Sie, dass der Header der Sensoren so gelötet werden sollte, dass die Kabel vor dem Sensor nach außen geführt werden. Dadurch können sich die Sensorkabel nicht gegenseitig stören, wenn die 360-Grad-Drehung implementiert wird.

Schritt 4: Montieren Sie alles in eine Prototyping-Platine

Montieren Sie alles in eine Prototyping-Platine
Montieren Sie alles in eine Prototyping-Platine
Montieren Sie alles in eine Prototyping-Platine
Montieren Sie alles in eine Prototyping-Platine
Montieren Sie alles in eine Prototyping-Platine
Montieren Sie alles in eine Prototyping-Platine

In diesem Schritt beginnen Sie damit, den im vorherigen Schritt vorbereiteten Header in den entsprechenden Servomotor zu montieren. Sobald der Servomotor sorgfältig daran gewöhnt ist, montieren Sie alles zusammen in eine Prototyping-Platine. Sie beginnen mit dem Löten des Arduino Nano und kleben dann das Servo direkt daneben. Zum Schluss löten Sie das kleine OLED-Display am anderen Rand der Platine an.

Schritt 5: Herstellen der endgültigen Verbindungen

Herstellen der letzten Verbindungen
Herstellen der letzten Verbindungen
Herstellen der letzten Verbindungen
Herstellen der letzten Verbindungen
Herstellen der letzten Verbindungen
Herstellen der letzten Verbindungen

Dieser Schritt schließt die Hardwareseite dieses Projekts ab. Sie müssen den bereitgestellten Schaltplänen folgen, um alle erforderlichen Verbindungen herzustellen.

Schritt 6: Booten des Programms

Booten des Programms
Booten des Programms

Es gibt zwei Codes, die Sie zum Booten benötigen

Arduino (C):

Verarbeitung (java):

Beim Ausführen des Codes haben Sie zwei Optionen zur Auswahl:

Option 1: Verwenden Sie das OLED-Display, dafür müssen Sie die Variable MODE im C-Code auf 0 setzen.

Option 2: Verwenden Sie Ihren Monitor, dafür müssen Sie die Variable MODE im C-Code auf 1 setzen. Außerdem müssen Sie die Processing-Entwicklungsumgebung herunterladen und installieren und die Radarschriftart von diesem Link herunterladen: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Und fügen Sie diese Datei zu Ihrer Verarbeitungscodedatei hinzu, damit Ihr Java-Code die Schriftart beim Aufruf erkennt.

Schritt 7: Den C-Code verstehen

Den C-Code verstehen
Den C-Code verstehen

Der Code besteht hauptsächlich aus zwei „for“-Schleifen. Einer ist mit dem Vorwärtspass korreliert, während der andere mit dem Rückwärtspass korreliert ist. In beiden wird die Hauptfunktion draw_scanner(), die die Radarlinien auf den Bildschirm zeichnet, viele Male aufgerufen. Nachdem ich mehrere Konfigurationen getestet hatte, kam ich zu dem Schluss, dass wir die weißen Radarlinien zum Zeitpunkt t mit denselben schwarzen Radarlinien zum Zeitpunkt t+1 überschreiben müssen, um sie zu löschen. Andernfalls würde jedes Mal ein Flackern auftreten, wenn Sie das Display mit der Funktion „clearDisplay()“reinigen, bevor Sie das neue Pixelraster verschieben. Da ich mich – aus Designgründen – mit 7 Linien beschäftigte, musste ich immer wieder ganzzahlige Arrays von 7 Elementen speichern und übergeben, wobei jedes Element für den Radius zwischen der Mitte des Radars und dem erkannten Objekt, falls vorhanden, steht. Vor diesem Hintergrund sollte der Rest des Codes einfach zu verstehen sein.

Schritt 8: Den Java-Code verstehen

In Processing musste ich den Funktionsaufruf für serialEvent() umgehen, der nur mit seriellen Ports namens COM funktioniert. Da ich an einem Mac arbeitete, kamen meine seriellen Ports unter einem anderen Namen. Davon abgesehen habe ich diese Funktion bei der Verarbeitung von "draw()" in die Hauptfunktion entpackt. In Bezug auf alles andere habe ich die Anwendung aktualisiert, um das vollständige Revolutionsdesign zu erfüllen. Schließlich habe ich alle gezeichneten Formen und Texte in Bezug auf die Breite des Bildschirms aktualisiert, damit das Endprodukt auf verschiedene Bildschirmauflösungen passt. Ich habe es persönlich sowohl für die Auflösungen 1000X1000 als auch 500X500 getestet und es hat gut funktioniert:).

Schritt 9: Fazit

Diese Arbeit kann auf 3 Ultraschallsensoren aufgerüstet werden, die jeweils 120 Blickwinkel abdecken, oder sogar 4 Sensoren (90 Grad * 4) -> schneller 360 Grad. Scan.

Sie können die Reichweite des Radars auch von 40 cm auf 60 cm oder sogar 80 cm erweitern. Ich habe die pulseIn-Funktion persönlich getestet und die TIMEOUT-Variable in Bezug auf 40 cm angepasst. Diese Variable hängt von vielen Faktoren ab, einschließlich der Länge des gesendeten Pulses und der Oberfläche des Objekts, an der der Puls reflektiert wird.

Schließlich, wie bereits erwähnt, besteht der nächste Schritt darin, RadarDuino in einen Fortbewegungsroboter zu integrieren, um den umgebenden Perimeter zu scannen.

Empfohlen: