Inhoudsopgave:

Kan ik TinyLiDAR gebruiken in Scratch? - Ajarnpa
Kan ik TinyLiDAR gebruiken in Scratch? - Ajarnpa

Video: Kan ik TinyLiDAR gebruiken in Scratch? - Ajarnpa

Video: Kan ik TinyLiDAR gebruiken in Scratch? - Ajarnpa
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, November
Anonim
Kan ik TinyLiDAR gebruiken in … Scratch?
Kan ik TinyLiDAR gebruiken in … Scratch?

We krijgen zo nu en dan verzoeken om te vragen of tinyLiDAR op hun specifieke computerplatform zal werken. Hoewel tinyLiDAR is ontworpen als een eenvoudig te gebruiken LiDAR-sensor voor de Arduino UNO, is er niets dat het gebruik op andere platforms zoals de Raspberry Pi weerhoudt (zoals weergegeven in de vorige instructable hier). Dat wil zeggen, als het platform een I2C-bus heeft en de klokuitrekkende functie van de I2C-specificatie kan ondersteunen. Dus - wat als je bord niet eens I2C ondersteunt? - laat staan de klok die dingen uitrekt … Nou, dat zou een uitdagend scenario zijn, maar in werkelijkheid bestaat het echt voor de ultra populaire visuele programmeertaal genaamd "Scratch".

Google het als je er nog nooit van hebt gehoord, maar in een notendop, het is een geweldige eerste taal voor iedereen om hun geest in het programmeerrijk te krijgen. Scratch is gemaakt door het MIT Media Lab en bestaat al meer dan 16 jaar. Het is de goto-taal om kinderen over de hele wereld te leren coderen. Iedereen kan het gratis gaan gebruiken - omdat het normaal gesproken op uw bureaublad in een webbrowser wordt uitgevoerd. Bekijk het hier als je wilt.

TL;DR-versie

JA! Met een nieuwe functie genaamd "Ultrasonic Emulation Mode" in tinyLiDAR f/w versie 1.3.9

Stap 1: Kras wat?

Er zijn nu veel smaken van Scratch in het wild. Liefhebbers van robotica gebruiken meestal de GPIO-gerichte versies zoals ScratchGPIO of andere gemodificeerde versies zoals ScratchX die kunnen worden gemaakt om elke 'experimentele hardware' te ondersteunen. Al deze zijn geweldig voor geavanceerde gebruikers, maar de mainstream-versies die standaard op de pi zijn geïnstalleerd, zullen onze focus zijn voor deze instructable, omdat ze vrij beperkte hardware-opties hebben.

De Raspbian Stretch Desktop van de pi wordt geleverd met twee vooraf geïnstalleerde versies van Scratch. Namelijk "Scratch" en "Scratch 2". We zullen de eerste gebruiken, ook bekend als "Scratch 1.4 (NuScratch)" en zullen deze "offline" gebruiken, zodat we de GPIO-serverfunctie kunnen gebruiken.

Je kunt de officiële pi-desktopafbeelding hier downloaden.

Om wat voor reden dan ook, hebben de makers van Scratch besloten om slechts enkele van de meest algemeen beschikbare sensoren van grote bedrijven zoals Lego enz. te ondersteunen. Interessant is echter dat ze ook besloten om ondersteuning toe te voegen voor de HC-SR04. Dit is natuurlijk de alomtegenwoordige ultrasone afstandssensor die eenvoudig een enkele pulsbreedte uitvoert die evenredig is met de gemeten afstand.

De meetnauwkeurigheid kan een beetje variëren afhankelijk van luchttemperatuur, vochtigheid en doelmateriaal zoals hier, hier en hier vermeld. Maar over het algemeen kan vrijwel elk platform de pulsbreedte-uitgang van dit apparaat meten.

Stap 2: Nieuwe functie

Nieuwe functie
Nieuwe functie

Het uitvoeren van nauwkeurige pulsen op microsecondeschaal is geen probleem voor ons op tinyLiDAR, aangezien we reserve hardwaretimers met hoge resolutie in de ingebouwde 32-bits micro hebben. tinyLiDAR kalibreert ook altijd automatisch voor temperatuur tijdens het opstarten, dus er zijn geen verdere aanpassingen nodig voor de werkomgeving.

Laten we het doen

Oké - dat zou kunnen, dus hebben we zojuist een nieuwe functie toegevoegd aan tinyLiDAR (vanaf firmware 1.3.9), genaamd de "Ultrasonic Emulation Mode". U kunt het openen door de opdracht "u" te gebruiken in de bijgewerkte tinyLiDAR GUI Terminal.

Als u het gebruikt, worden de instellingen in het niet-vluchtige geheugen gewijzigd, zodat tinyLiDAR er net zo uitziet als een generieke ultrasone sensor, zelfs nadat u het hebt uitgeschakeld. U kunt het terugzetten naar de normale I2C-modus door op de reset-knop te drukken en het "az"-commando te geven. Verdere details staan in de gebruikershandleiding.

Om het leven nog eenvoudiger te maken, stellen we de tinyLiDAR-sensor vooraf beschikbaar voor deze nieuwe ultrasone emulatiemodus vanaf onze website. Bestel gewoon de "-u" versie.

Kijk mam, niet solderen

Er is geen solderen en ook geen breadboard nodig, omdat de meegeleverde "Grove to Female 4pin" -kabels rechtstreeks in de Raspberry pi-headerpinnen kunnen worden gestoken. De triggerpin is de gele draad en de echopin is de witte draad. Zwart en rood zijn natuurlijk voor macht. Raadpleeg de hoofdafbeelding hierboven voor details.

Trouwens, we gingen nog een stap verder en lieten de gele pin zich gedragen als de PING)))-sensor die een enkele draad gebruikt voor zowel de trigger- als de echosignalen.

Hierdoor kunt u nu metingen uitvoeren met tinyLiDAR met behulp van de standaard "PING" ultrasone schets die bij elke Arduino IDE wordt geleverd zonder enige codewijziging! Je kunt het ook zonder vertraging proberen.

Natuurlijk kunt u parameters zoals hoge nauwkeurigheid, lange afstand enz. van uw LiDAR-metingen instellen voordat u het "u" -commando selecteert, en het zal die metingen dan uitvoeren elke keer dat het de triggerpin ziet vallen, zoals weergegeven in het bovenstaande diagram.

Gevaar, Will Robinson

Merk op dat de SR04 ultrasone sensor enkele weerstanden nodig heeft om te voorkomen dat de +5v-voeding uw pi beschadigt. Maar aangezien tinyLiDAR native draait vanaf +3.3v, zijn er geen weerstanden nodig om te communiceren met de pi:)

Stap 3: Coderen

Het coderen
Het coderen
Het coderen
Het coderen

Wat is dan precies de code die we nodig hebben om tinyLiDAR in Scratch te laten werken?

Leuk dat je het vraagt!

Het is slechts een kwestie van een paar eenvoudige uitzendblokken slepen, zoals in de bovenstaande afbeeldingen wordt getoond.

Om de GPIO-pinnen in te schakelen, kunnen we de "broadcast gpioserveron" uitgeven. Om de trigger-pin te configureren, geven we de "broadcast config16out" uit. Vervolgens kunnen we de echo-pin configureren door "broadcast config26in" en vervolgens de metingen starten door "broadcast ultrasonictrigger16echo26". Dit zorgt ervoor dat er continu metingen worden uitgevoerd met een cadans van ongeveer 140 ms. U kunt de gemeten gegevens uitlezen door het detectieblok "ultrasone afstandssensorwaarde" te gebruiken.

Nou, dat was het voor nu, bedankt voor het lezen en kijk zeker eens naar het leuke kleine Scratch-demoprogramma (hier gedeeld) dat we hebben gemaakt, genaamd "tinyLiDAR_catch_me" en … Scratch On!;)

Aanbevolen: