Inhaltsverzeichnis:

Kann ich TinyLiDAR in Scratch verwenden? - Gunook
Kann ich TinyLiDAR in Scratch verwenden? - Gunook

Video: Kann ich TinyLiDAR in Scratch verwenden? - Gunook

Video: Kann ich TinyLiDAR in Scratch verwenden? - Gunook
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, Dezember
Anonim
Kann ich TinyLiDAR in… Scratch verwenden?
Kann ich TinyLiDAR in… Scratch verwenden?

Wir erhalten hin und wieder Anfragen, ob tinyLiDAR auf ihrer jeweiligen Computerplattform funktioniert. Obwohl tinyLiDAR als einfach zu verwendender LiDAR-Sensor für das Arduino UNO entwickelt wurde, steht ihm nichts im Wege, auf anderen Plattformen wie dem Raspberry Pi verwendet zu werden (wie in der vorherigen Anleitung hier gezeigt). Das heißt, wenn die Plattform über einen I2C-Bus verfügt und die Clock-Stretching-Funktion der I2C-Spezifikation unterstützen kann. Also - was ist, wenn Ihr Board nicht einmal I2C unterstützt? - vergiss das zeitraubende Zeug… Nun, das wäre ein herausforderndes Szenario, aber in Wirklichkeit existiert es tatsächlich für die ultra-populäre visuelle Programmiersprache namens "Scratch".

Google es, wenn du noch nie davon gehört hast, aber kurz gesagt, es ist eine großartige Erstsprache für jeden, um sich in die Programmierwelt einzuarbeiten. Scratch wurde vom MIT Media Lab entwickelt und gibt es seit über 16 Jahren. Es ist die Goto-Sprache, um Kindern auf der ganzen Welt das Programmieren beizubringen. Jeder kann es kostenlos nutzen – da es normalerweise auf Ihrem Desktop in einem Webbrowser ausgeführt wird. Schau mal hier, wenn du magst.

TL;DR-Version

JAWOHL! Mit einer neuen Funktion namens "Ultrasonic Emulation Mode" in tinyLiDAR f/w Version 1.3.9

Schritt 1: Was kratzen?

Es gibt jetzt viele Geschmacksrichtungen von Scratch in freier Wildbahn. Robotik-Enthusiasten neigen dazu, die GPIO-fokussierten Versionen wie ScratchGPIO oder andere modifizierte Versionen wie ScratchX zu verwenden, die so gestaltet werden können, dass sie jede "experimentelle Hardware" unterstützen. All dies sind großartig für fortgeschrittene Benutzer, aber die Mainstream-Versionen, die standardmäßig auf dem Pi installiert sind, werden unser Fokus für dieses anweisbare sein, da sie eher begrenzte Hardwareoptionen haben.

Auf dem Raspbian Stretch Desktop des pi sind zwei Versionen von Scratch vorinstalliert. Nämlich "Scratch" und "Scratch 2". Wir werden das erste alias "Scratch 1.4 (NuScratch)" verwenden und es "offline" verwenden, damit wir die GPIO-Serverfunktion nutzen können.

Sie können das offizielle Pi-Desktop-Image hier herunterladen.

Aus irgendeinem Grund haben sich die Entwickler von Scratch dazu entschieden, nur einige der am häufigsten verfügbaren Sensoren von großen Unternehmen wie Lego usw. zu unterstützen. Interessanterweise haben sie sich jedoch auch entschieden, den HC-SR04 zu unterstützen. Dies ist natürlich der allgegenwärtige Ultraschall-Abstandssensor, der einfach eine einzelne Impulsbreite ausgibt, die proportional zum gemessenen Abstand ist.

Die Messgenauigkeit kann je nach Lufttemperatur, Luftfeuchtigkeit und Zielmaterial wie hier, hier und hier erwähnt etwas variieren. Aber im Allgemeinen kann fast jede Plattform die Pulsbreitenausgabe dieses Geräts messen.

Schritt 2: Neue Funktion

Neue Funktion
Neue Funktion

Die Ausgabe präziser Impulse im Mikrosekundenbereich ist für uns auf tinyLiDAR kein Problem, da wir hochauflösende Hardware-Timer im integrierten 32-Bit-Mikro haben. TinyLiDAR kalibriert sich beim Hochfahren auch immer automatisch auf die Temperatur, sodass keine weiteren Anpassungen an die Betriebsumgebung erforderlich sind.

Lass es uns tun

Okay - wir könnten, also haben wir tinyLiDAR (ab Firmware 1.3.9) um eine neue Funktion namens "Ultrasonic Emulation Mode" erweitert. Sie können darauf zugreifen, indem Sie den Befehl "u" des aktualisierten tinyLiDAR-GUI-Terminals verwenden.

Wenn Sie es verwenden, werden die Einstellungen im nichtflüchtigen Speicher geändert, sodass tinyLiDAR auch nach dem Ausschalten wie ein generischer Ultraschallsensor aussieht. Sie können ihn wieder in den normalen I2C-Modus zurückversetzen, indem Sie die Reset-Taste drücken und den Befehl "az" ausgeben. Weitere Details finden Sie in der Bedienungsanleitung.

Um das Leben noch einfacher zu machen, stellen wir den tinyLiDAR-Sensor auf unserer Website voreingestellt für diesen neuen Ultraschall-Emulationsmodus zur Verfügung. Bestellen Sie einfach die "-u"-Version.

Schau Ma, kein Löten

Es wird kein Löten und auch kein Steckbrett benötigt, da die mitgelieferten "Grove to Female 4pin" -Kabel direkt in die Raspberry Pi-Header-Pins gesteckt werden. Der Trigger-Pin ist der gelbe Draht und der Echo-Pin ist der weiße Draht. Schwarz und Rot stehen natürlich für Macht. Details finden Sie im Hauptbild oben.

Übrigens, wir sind noch einen Schritt weiter gegangen und haben den gelben Stift dazu gebracht, sich wie der PING)))-Sensor zu verhalten, der sowohl für die Trigger- als auch für die Echosignale ein einziges Kabel verwendet.

Aus diesem Grund können Sie jetzt mit tinyLiDAR Messungen mit der standardmäßigen "PING" -Ultraschallskizze durchführen, die mit jeder Arduino-IDE ohne Codeänderungen geliefert wird! Sie können es auch ohne Verzögerung ausprobieren.

Natürlich können Sie Parameter wie hohe Genauigkeit, große Entfernung usw. Ihrer LiDAR-Messungen einstellen, bevor Sie den Befehl "u" auswählen, und es werden diese Messungen dann jedes Mal durchgeführt, wenn der Triggerstift fällt, wie im obigen Diagramm gezeigt.

Gefahr, Will Robinson

Beachten Sie, dass der Ultraschallsensor SR04 einige Widerstände benötigt, um zu verhindern, dass die +5-V-Versorgung Ihren Pi beschädigt. Aber da tinyLiDAR nativ ab +3,3 V läuft, sind keine Widerstände für die Verbindung mit dem Pi erforderlich:)

Schritt 3: Codieren

Codieren
Codieren
Codieren
Codieren

Also, was genau ist der Code, den wir brauchen, damit tinyLiDAR in Scratch funktioniert?

Schön, dass Sie gefragt haben!

Es ist nur eine Frage des Ziehens einiger einfacher Broadcast-Blöcke, wie in den obigen Bildern gezeigt.

Um die GPIO-Pins zu aktivieren, können wir den "broadcast gpioserveron" ausgeben. Um den Trigger-Pin zu konfigurieren, geben wir den "broadcast config16out" aus. Als nächstes können wir den Echo-Pin mit "broadcast config26in" konfigurieren und dann die Messungen mit "broadcast ultraschalltrigger16echo26" starten. Dies führt dazu, dass kontinuierlich Messungen mit einer Trittfrequenz von etwa 140 ms durchgeführt werden. Sie können die gemessenen Daten mit dem Sensorblock "Ultraschall-Distanzsensorwert" auslesen.

Nun, das war's für den Moment, danke fürs Lesen und schau dir unbedingt das lustige kleine Scratch-Demoprogramm (hier geteilt) an, das wir mit dem Namen "tinyLiDAR_catch_me" und …Scratch On gemacht haben!;)

Empfohlen: