Innholdsfortegnelse:

Kan jeg bruke TinyLiDAR i Scratch ?: 3 trinn
Kan jeg bruke TinyLiDAR i Scratch ?: 3 trinn

Video: Kan jeg bruke TinyLiDAR i Scratch ?: 3 trinn

Video: Kan jeg bruke TinyLiDAR i Scratch ?: 3 trinn
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, November
Anonim
Kan jeg bruke TinyLiDAR i… Scratch?
Kan jeg bruke TinyLiDAR i… Scratch?

Vi får av og til forespørsler om å spørre om tinyLiDAR vil fungere på deres spesielle databehandlingsplattform. Selv om tinyLiDAR ble designet som en brukervennlig LiDAR -sensor for Arduino UNO, er det ingenting som hindrer den i å bli brukt på andre plattformer som Raspberry Pi (som vist i forrige instruerbare her). Det vil si at hvis plattformen har en I2C -buss og kan støtte klokkestrekningsfunksjonen til I2C -spesifikasjonen. Så - hva om brettet ditt ikke engang støtter I2C? - husk på at klokken strekker seg … Vel, det ville være et utfordrende scenario, men det eksisterer faktisk for det ultra populære visuelle programmeringsspråket kalt "Scratch".

Google det hvis du ikke har hørt om det før, men i et nøtteskall er det et flott førstespråk for alle å tenke på programmeringsområdet. Scratch ble opprettet av MIT Media Lab og har eksistert i over 16 år nå. Det er språket for å lære barn å kode rundt om i verden. Alle kan begynne å bruke det gratis - ettersom det normalt kjører på skrivebordet i en nettleser. Sjekk det ut her hvis du vil.

TL; DR versjon

JA! Med en ny funksjon kalt "Ultrasonic Emulation Mode" i tinyLiDAR f/w versjon 1.3.9

Trinn 1: Skrap hva?

Det er mange smaker av Scratch i naturen nå. Robotikkentusiaster har en tendens til å bruke GPIO -fokuserte versjoner som ScratchGPIO eller andre modded versjoner som ScratchX som kan gjøres for å støtte enhver "eksperimentell maskinvare". Alle disse er flotte for avanserte brukere, men de vanlige versjonene som er installert som standard på pi, vil være vårt fokus for denne instruerbare siden de har ganske begrensede maskinvarealternativer.

Pi's Raspbian Stretch Desktop leveres med to versjoner av Scratch forhåndsinstallert. Nemlig "Scratch" og "Scratch 2". Vi vil bruke den første aka "Scratch 1.4 (NuScratch)" og vil bruke den "offline" slik at vi kan bruke GPIO -serverfunksjonen.

Du kan laste ned det offisielle pi -skrivebordsbildet her.

Uansett grunn bestemte Scratch-skaperne å støtte bare noen få av de mest tilgjengelige sensorene fra store selskaper som Lego etc. Interessant nok bestemte de seg også for å legge til støtte for HC-SR04. Dette er selvfølgelig den allestedsnærværende ultralydavstandssensoren som ganske enkelt sender ut en enkelt pulsbredde som er proporsjonal med den målte avstanden.

Målenøyaktigheten kan variere litt avhengig av lufttemperatur, fuktighet og målmateriale som nevnt her, her og her. Men generelt kan omtrent hvilken som helst plattform måle pulsbreddeutgangen til denne enheten.

Trinn 2: Ny funksjon

Ny funksjon
Ny funksjon

Å sende ut nøyaktige pulser i mikrosekundskala er ikke et problem for oss på tinyLiDAR, ettersom vi har ekstra maskinvare-timere med høy oppløsning inne i den innebygde 32-biters mikroenheten. tinyLiDAR kalibrerer også alltid automatisk for temperaturen når den slås på, så det er ikke nødvendig med ytterligere justeringer for driftsmiljøet.

La oss gjøre det

Ok - vi kunne, så vi la bare til en ny funksjon i tinyLiDAR (fra fastvare 1.3.9) kalt "Ultrasonic Emulation Mode". Du får tilgang til den ved å bruke "u" -kommandoen fra den oppdaterte tinyLiDAR GUI -terminalen.

Hvis du bruker det, vil det endre innstillingene i ikke-flyktig minne, så det vil få tinyLiDAR til å se ut som en generisk ultralydsensor selv etter at du har slått den av. Du kan endre den tilbake til normal I2C -modus ved å trykke på tilbakestillingsknappen og sende kommandoen "az". Ytterligere detaljer er i brukerhåndboken.

For å gjøre livet enda enklere, gjør vi tinyLiDAR -sensoren tilgjengelig forhåndsinnstilt til denne nye ultralydemuleringsmodusen fra nettstedet vårt. Bare bestill "-u" -versjonen.

Se Ma, ingen lodding

Ingen lodding og heller ikke brødbrett er nødvendig, ettersom de medfølgende "Grove to Female 4pin" -kablene kobles direkte til Raspberry pi header pins. Utløserpinnen er den gule ledningen og ekkopinnen er den hvite ledningen. Svart og rødt er selvfølgelig for makt. Se hovedbildet ovenfor for detaljer.

Btw, vi gikk et skritt videre og fikk den gule pinnen til å oppføre seg som PING))) sensoren som bruker en enkelt ledning for både trigger- og ekkosignalene.

På grunn av dette kan du nå ta målinger med tinyLiDAR ved å bruke standard "PING" ultralydskisse som leveres med hver Arduino IDE uten noen kodeendringer! Du kan også prøve det uten forsinkelse.

Selvfølgelig kan du angi parametere som høy nøyaktighet, lang avstand osv. For LiDAR -målingene dine før du velger "u" -kommandoen, og den vil deretter ta disse målingene hver gang den ser utløserpinnen falle som vist i diagrammet ovenfor.

Fare, Will Robinson

Vær oppmerksom på at ultralydsensoren SR04 trenger noen motstander for å forhindre at +5v -forsyningen skader din pi. Men siden tinyLiDAR kjører innfødt fra +3.3v, er det ikke behov for noen motstander for å koble til pi:)

Trinn 3: Koder det

Koder det
Koder det
Koder det
Koder det

Så hva er egentlig koden vi trenger for tinyLiDAR for å fungere i Scratch?

Godt du spurte!

Det er bare å dra noen få enkle kringkastingsblokker som vist på bildene ovenfor.

For å aktivere GPIO -pinnene kan vi utstede "broadcast gpioserveron". For å konfigurere triggerpinnen utsteder vi "broadcast config16out". Neste kan vi konfigurere ekkopinnen med "broadcast config26in" og deretter starte målingene med "broadcast ultrasonictrigger16echo26". Dette vil føre til at målinger blir tatt kontinuerlig ved omtrent 140 ms kadence. Du kan lese de målte dataene ved å bruke senseblokken "ultrasonic distance sensor value".

Vel, det er det for nå, takk for at du leser, og sjekk ut det morsomme lille Scratch -demo -programmet (delt her) vi lagde kalt "tinyLiDAR_catch_me" og … Scratch On!;)

Anbefalt: