Ultraschall-Hindernis zu vermeiden-Roboter (12 / 16 schritt)

Schritt 12: Kontrolle und Probleme des Moduls HCSR-04


Pinbelegung

GND - Gemeinsamkeiten

Dieser Pin verbindet auf den Boden des Schaltplans Netto

VCC - Stromschiene

Dieser Pin muss an die Stromleitung der unsere Schaltung gebunden werden, die - in meinem Fall von 5V Buck-Konverters bereitgestellt wird.

TRIG - Trigger-Pins

Der Benutzer muss bieten eine Mikrosekunde lang Impuls auf diese PIN-Nummer, dann warten, bis das Echo auf die Echo-Pin zu kommen. Beachten Sie, dass Echo ist hoch in den ersten zehn Millisekunden, stellen Sie sicher, dass Sie warten, die sich bei Initialisierung. Diese Pin wird behauptet, dann Programm muss warten, bis eine steigende Flanke und starten einen Timer, TMR1. Die WASTE_10_US(); ist ein Makro ich schrieb, es besteht genügend "NOP" Montage-Anleitung zu eine Gesamtzeit von 10 Mikrosekunden zu verschwenden. Zählen wird gestoppt, wenn der Echo-Puls wieder niedriger geht. Von der Zahl im Zähler Register wissen wir den Zeitaufwand für den Sound von eventuellen Hindernis wieder. Wir wissen, dass die Geschwindigkeit des Schalls - können wir den Abstand berechnen!

ECHO - Echo-pin

Diese Pin wird verwendet, um die reflektierten Schallwellen zu erkennen. Ich habe es mit einer Pin, die nur für den Fall - Interrupt, hat verbunden, sondern es dient im einfachen Eingabemodus. Eine steigende Flanke hält den zuvor genannten Zähler und speichert es in eine Variable, die kurz nach verarbeitet wird.

Ein kleiner Trick, um die PIC-s-Leben leichter machen

Das Timing der Impulse entnehmen Sie bitte dem Datenblatt dieses Moduls. Wie bereits erwähnt, müssen Sie warten, die ersten ca. 100 ms, dann geben 10 Mikrosekunden Triggerimpulse am Pin TRIG. Ein 8-Zyklus Ausbruch aus dem Sender "Speaker" ergibt so einen Impuls zu geben. Dann müssen wir warten, bis ein Echo zu kommen. Das Echo ist vom Empfänger erfasst und umgewandelt in einen Impuls mit variabler Länge auf der ECHO-Pin. Die Länge dieses Echo-Impuls ist direkt proportional mit der Entfernung zum Hindernis. Das Datenblatt gibt eine einfache Formel für diese Berechnung:

Abstand [cm] = t [Mikrosekunden] gemessen / 58

Dadurch wird den Abstand in Zentimetern zurückgegeben. Ich teilen nur durch 5,8, also der Abstand in Millimetern zurückgegeben wird. Da ich nicht unbedingt extrem präzise Messungen benötigen, werde ich eine kleine Drehung hier hinzufügen. Ich möchte nur Hindernisse zu vermeiden, mich interessiert nicht, wie weit sie sind, so gibt es keine Verwendung zur Berechnung der Entfernung in doppelter Variablentypen. Diese Art von Berechnungen nehmen eine lange Zeit, die in diesem Fall völlig unnötig ist. Also lasst uns ein wenig die Berechnungen zu vereinfachen. Wir wissen, dass die empfangenen Impulslänge in Mikrosekunden benötigt wird, um herauszufinden, die Entfernung. Unsere Zeitbasis ist jedoch keine sehr Runde eins, 83,33 [ns]. Also, statt die Anzahl der TMR1, Multiplikation mit der Zeitbasis, die Länge in Mikrosekunden, bekommen dann dividiert sie durch 5.8 um den Abstand in Millimetern, tun wir etwas einfacher und dümmer. Wir etablieren eine einzelne TMR1 Graf womit in Millimetern:

1 Count = 83,33 [ns] = 0.08333 [uns], die durch 5,8 Ergebnisse in 0,014 [mm] für jeden TMR1 eingeteilt [Count]

Dies vorausgeschickt, können wir Folgendes schreiben:

1 [count] .......................... 0,014 [mm]

x [Count] y [mm]

und weiter schreibt die folgende Formel:

y [mm] = (X * 0,014) / 1 = X * 0,014 = X / 71.42

So wissen wir, dass wir den Abstand zum Hindernis erhalten können, indem man TMR1 Graf mit 71.42. Dies ist jedoch noch ein Präzisions-Kalkül, die sehr lange dauert, so dass wir schauen und erkennen, dass dies das nicht weit von 64, eine schöne "Runde" Zahl ist. Teilung mit den Potenzen von 2 Software ist sehr einfach, über gleich sechs Schaltzeiten möglich ist. Byte Verschiebung ist eine native Anweisung des PIC, und es ist sehr sehr schnell im Vergleich zu einer doppelten Division. Also, lasst uns Runde 71.42 bis 64 und nur Shift TMR1 links 6 Mal eine Vorstellung darüber, wie nahe ein Hindernis zu bekommen!

Mal sehen, den Unterschied, die, den diesen Trick bei einer 8000 (z. B.) Zählung gibt:

Original: 8000 / 71.42 = 112 [mm]

knifflig: 8000 / 64 = (8000 >> 6) = 125 [mm]

Der Fehler beträgt also rund 10 %, nicht viel im Vergleich zu die riesige Menge an Zeit, die wir gerade gespeichert!

Probleme

Ich habe keine Probleme während der Arbeit mit diesem Modul, das einzige, was geschehen war, dass das Kabel zwischen dem Bild und der ECHO-Pin blieb getrennt und die PIC wartete endlos auf Kanten auf, dass der Stift, getroffen. Dies war leicht zu fangen, da die rote LED, die zu jeder Sekunde schaltet nicht mehr. Ich wusste sofort, dass das Programm fror, und der einzige Ort, den es einfrieren kann diese Wartezeit für Rand-Routine ist. Problem gelöst, nach einer Minute!

Noch eins: diese Dinge funktionieren mit 5 [V], also mit nur 4,8 [V] bei voller Ladung bedeutet, dass wir es zu weit dehnen. Wenn die Spannung nicht ausreicht um das Echo zu fangen, hängt die MCU, warten auf das ECHO zu kommen!

In Verbindung stehende Artikel

Wie erstelle ich ein Hindernis zu vermeiden-Roboter

Wie erstelle ich ein Hindernis zu vermeiden-Roboter

Hindernis vermeiden Roboter ist ein einfacher Roboter, die von einem Arduino betrieben wird und was sie tut ist, dass es nur durchstreift um und vermeidet Hindernisse. Es erkennt die Hindernisse mit ein Ultraschallsensor HC-SR04 mit anderen Worten we
Hindernis zu vermeiden Roboter mittels Ultraschall mit Evive (Arduino powered embedded Plattform)

Hindernis zu vermeiden Roboter mittels Ultraschall mit Evive (Arduino powered embedded Plattform)

Wir haben ein Hindernis vermeiden Roboter mit Evive gebaut. Im Gegensatz zu anderen haben wir unsere Ultraschall-Sensor auf einem Servo montiert. Damit der Roboter nach einer Kollision erkennen, welche Richtung analysiert ist das beste, Abstand in ve
Hindernis zu vermeiden Roboter

Hindernis zu vermeiden Roboter

ich habe gesehen, viele Hindernisse vermeiden Roboter baut Online-auch hier bei Instructables, also beschloss ich, ein instructable tun mich und so viele visuelle und schriftliche Informationen wie möglich. Viele des Hindernisses Vermeidung von Robot
Hindernis zu vermeiden Roboter V2

Hindernis zu vermeiden Roboter V2

ich habe vor kurzem ein instructable auf ein einfaches Hindernis Roboter zu vermeiden. In diesem instructable ich wird werden die Umsetzung eines verschiebbare Pings))) Sensor, im Gegensatz zu den vorherigen Roboter, dessen Sensor war stationär. Ich
Hindernis zu vermeiden Roboter mit Arduino

Hindernis zu vermeiden Roboter mit Arduino

HINDERNIS - VERMEIDUNG VON ROBOTEREin Hindernis vermeiden Roboter ist, kann ein Hindernis zu vermeiden, indem Sie mit Ultraschallsensor und Navigieren in seinen eigenen Weg. Mit einem Steckbrett angeschlossen an den Roboter können Sie innerhalb kurze
Roboter-Hindernis zu vermeiden.

Roboter-Hindernis zu vermeiden.

HINDERNIS ZU VERMEIDEN ROBOTERFINANZIERT; INTEL KENIA IN ZUSAMMENARBEIT MIT DER SOCIETY OF ENGINEERING STUDENTEN AUTOMATION CLUB JKUAT.PROJEKTMITARBEITER:1 ANTONY KARIUKI2 ERIC KINYANJUI3 EMMANUEL KINYANJUIPROJEKT INSTRUCTABLE:ANFORDERUNGEN:1 INTEL G
YourDuino: Grundlegende Arduino-kompatible Kollision vermeiden Roboter

YourDuino: Grundlegende Arduino-kompatible Kollision vermeiden Roboter

Wie man einen grundlegenden Arduino-kompatible Zusammenstoß-Vermeidung von Roboter zu bauenHinweis: Finden Sie die verfügbaren Arduino Software Test Skizzen und Kollisionsvermeidung Software hier (klicken)Hinweis: Du musst später haben die Arduino "I
Arduino Wand vermeiden Roboter

Arduino Wand vermeiden Roboter

Diese instructable nimmt sehr wenig in Bezug auf Vorwissen.Gibt es Bereiche, die Sie fühlen könnte verbessert werden oder zu klären, wenden Sie sich bitte frei, Nachricht oder einen Kommentar und ich werde aktualisieren.Hier sind die Details, die Sie
DIY-autonome Zeilenverfolgung mit Hindernis vermeiden Roboter (Rover)

DIY-autonome Zeilenverfolgung mit Hindernis vermeiden Roboter (Rover)

WARNUNG: IHR COMPUTER HELLIGKEIT LOW ZU MACHEN, WEIL DIESES PROJEKT EIN HOHES MAß AN AWESOMENESS EMITTIERT, DIE IHRE AUGEN BESCHÄDIGEN KÖNNEN :D 3:)Dieses Projekt nahm an RoboCup 2015 Ägypten lokalen Wettbewerb und gewann "Best Design Award" mit
Selbst Hindernis vermeiden Roboter

Selbst Hindernis vermeiden Roboter

Es ist ein selbst Hindernis Roboter zu vermeiden. Es nutzt zwei Ping Sensoren für Hinderniserkennung. Es nutzt ein Adafruit L293D Motor Schild an vier hohes Drehmoment 12 Volt Motoren macht. Es auch ein Arduino UNO R3 Feawtures als einen Mikrocontrol
How to Build Hindernis vermeiden Roboter für Anfänger mit Arduino Tutorial

How to Build Hindernis vermeiden Roboter für Anfänger mit Arduino Tutorial

Dieses Tutorial ist für alle, die erste Schritte mit Arduino. Wir bauen ein Hindernis, Roboter, der ein Ultraschallsensor HC SR-04 verwendet zur Erkennung von Objekten und 2 kontinuierliche (360 Grad) Servos verdrahtet, um eine externe Batterie-Verso
Wie erstelle ich ein Hindernisse vermeiden Roboter - Arduino Stil

Wie erstelle ich ein Hindernisse vermeiden Roboter - Arduino Stil

du wolltest schon immer zu einer von diesen coolen Robotern, die grundsätzlich jedes Objekt vermeiden können. Doch Sie nicht genug Geld haben, um eine wirklich teuren diejenigen kaufen, mit bereits geschnittene Teile wo alle Materialien wo für Sie da
Wie erstelle ich ein Hindernis vermeiden Roboter

Wie erstelle ich ein Hindernis vermeiden Roboter

Hindernis Roboter mit Motorräder Hinderniserkennung und Motortreiber zu vermeiden.Schritt 1: Dinge, die wir brauchen we need :-1 eine Gared dc mortorposition2 eine alte Smartphone alte Flip-Cover3 Kleber4 einige Drähte5 Hindernis positionert Schaltun
Wie erstelle ich ein Hindernis zu vermeiden Arduino Roboter

Wie erstelle ich ein Hindernis zu vermeiden Arduino Roboter

Hallo an alle! In dieser Instructable werde ich Ihnen zeigen, wie erstelle ich einen Roboter ähnlich wie die "Mobile Arduino experimentelle Plattform" (MAEP), die ich gemacht. Es ist ausgestattet mit zwei Motoren, die den Roboter und die Fähigke