Innehållsförteckning:

Kan jag använda TinyLiDAR In Scratch ?: 3 steg
Kan jag använda TinyLiDAR In Scratch ?: 3 steg

Video: Kan jag använda TinyLiDAR In Scratch ?: 3 steg

Video: Kan jag använda TinyLiDAR In Scratch ?: 3 steg
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, November
Anonim
Kan jag använda TinyLiDAR In … Scratch?
Kan jag använda TinyLiDAR In … Scratch?

Vi får förfrågningar då och då för att fråga om tinyLiDAR kommer att fungera på just deras datorplattform. Även om tinyLiDAR var utformad som en lättanvänd LiDAR -sensor för Arduino UNO, finns det inget som hindrar den från att användas på andra plattformar som Raspberry Pi (som visas i föregående instruerbara här). Det vill säga om plattformen har en I2C -buss och kan stödja klocksträckningsfunktionen i I2C -specifikationen. Så - vad händer om din styrelse inte ens stöder I2C? - tänk på att klockan sträcker ut saker … Tja, det skulle vara ett utmanande scenario men i verkligheten finns det faktiskt för det ultra populära visuella programmeringsspråket som kallas "Scratch".

Googla om du inte har hört talas om det förut, men i ett nötskal är det ett bra förstaspråk för alla att tänka på programmeringsområdet. Scratch skapades av MIT Media Lab och har funnits i över 16 år nu. Det är språket för att lära barn att koda runt om i världen. Vem som helst kan börja använda det gratis - eftersom det normalt körs på skrivbordet i en webbläsare. Kolla in det här om du vill.

TL; DR -version

JA! Med en ny funktion som kallas "Ultrasonic Emulation Mode" i tinyLiDAR f/w version 1.3.9

Steg 1: Skrapa vad?

Det finns många smaker av Scratch i naturen nu. Robotentusiaster tenderar att använda de GPIO -fokuserade versionerna som ScratchGPIO eller andra modderade versioner som ScratchX som kan göras för att stödja någon "experimentell hårdvara". Alla dessa är bra för avancerade användare, men de vanliga versionerna som är installerade som standard på pi kommer att vara vårt fokus för detta instruerbara eftersom de har ganska begränsade maskinvarualternativ.

Pi: s Raspbian Stretch Desktop levereras med två versioner av Scratch förinstallerad. Nämligen "Scratch" och "Scratch 2". Vi kommer att använda den första aka "Scratch 1.4 (NuScratch)" och kommer att använda den "offline" så att vi kan använda GPIO -serverfunktionen.

Du kan ladda ner den officiella pi -skrivbordsbilden här.

Av vilken anledning som helst, beslutade Scratch-skaparna att stödja bara några av de vanligaste sensorerna från stora företag som Lego etc. Intressant nog bestämde de sig också för att lägga till stöd för HC-SR04. Detta är naturligtvis den allestädes närvarande ultraljudsavståndssensorn som helt enkelt matar ut en enda pulsbredd som är proportionell mot det uppmätta avståndet.

Mätnoggrannheten kan variera lite beroende på lufttemperatur, luftfuktighet och målmaterial som nämns här, här och här. Men i allmänhet kan nästan vilken plattform som helst mäta pulsbreddsutmatningen för denna enhet.

Steg 2: Ny funktion

Ny funktion
Ny funktion

Att mata ut exakta pulser i mikrosekundskala är inte ett problem för oss på tinyLiDAR eftersom vi har lediga högupplösta hårdvarutimers inuti den inbyggda 32-bitars mikro. tinyLiDAR kalibrerar också alltid automatiskt för temperaturen när den startar så inga ytterligare justeringar behövs för driftsmiljön.

Vi gör det

Okej - vi kunde så vi lade bara till en ny funktion till tinyLiDAR (från firmware 1.3.9) som kallas "Ultrasonic Emulation Mode". Du kan komma åt den med kommandot "u" från den uppdaterade tinyLiDAR GUI -terminalen.

Om du använder det ändras inställningarna i icke-flyktigt minne så att det kommer att få tinyLiDAR att se ut som en generisk ultraljudssensor även efter att du kopplat ur den. Du kan ändra det tillbaka till normalt I2C -läge genom att trycka på återställningsknappen och skicka kommandot "az". Ytterligare detaljer finns i bruksanvisningen.

För att göra livet ännu enklare gör vi den lillaLiDAR -sensorn tillgänglig förinställd för detta nya ultraljudsemuleringsläge från vår webbplats. Beställ bara "-u" -versionen.

Se Ma, ingen lödning

Ingen lödning och ingen brödbräda behövs eftersom de medföljande "Grove to Female 4pin" -kablarna kommer att anslutas direkt till Raspberry pi header pins. Utlösaren är den gula tråden och ekostiftet är den vita tråden. Svart och rött är naturligtvis för kraft. Se huvudbilden ovan för detaljer.

Btw, vi gick ett steg längre och fick den gula stift att bete sig som PING))) sensorn som använder en enda tråd för både trigger och ekosignaler.

På grund av detta kan du nu göra mätningar med tinyLiDAR med standard "PING" ultraljudsskiss som levereras med varje Arduino IDE utan några kodändringar! Du kan också prova utan dröjsmål.

Naturligtvis kan du ställa in parametrar som hög noggrannhet, långdistans etc för dina LiDAR -mätningar innan du väljer "u" -kommandot och det kommer sedan att ta dessa mätningar varje gång den ser utlösningspinnen falla som visas i diagrammet ovan.

Fara, Will Robinson

Observera att SR04 ultraljudssensorn behöver några motstånd för att förhindra att +5v -försörjningen skadar din pi. Men eftersom tinyLiDAR körs inbyggt från +3.3v, behöver du inte använda några motstånd för att ansluta till pi:)

Steg 3: Kodning av det

Kodar det
Kodar det
Kodar det
Kodar det

Så vad är då koden vi behöver för tinyLiDAR att fungera i Scratch?

Kul att du frågade!

Det är bara att dra några enkla sändningsblock som visas på bilderna ovan.

För att aktivera GPIO -stiften kan vi utfärda "broadcast gpioserveron". Sedan för att konfigurera triggerpinnen utfärdar vi "broadcast config16out". Därefter kan vi konfigurera ekostiftet med "broadcast config26in" och sedan starta mätningarna med "broadcast ultrasonictrigger16echo26". Detta kommer att göra att mätningar görs kontinuerligt med cirka 140 ms kadens. Du kan läsa de uppmätta data med hjälp av avkänningsblocket "ultraljudsavståndssensorvärde".

Tja, det är det för nu, tack för att du läser och se till att kolla in det roliga lilla Scratch -demoprogrammet (delat här) som vi gjorde som heter "tinyLiDAR_catch_me" och … Scratch On!;)

Rekommenderad: