Sensorer

Elektronisk lineal

7. - 9. klasse
Middel
Byg et kredsløb med en afstandssensor (sonar) og programmer den, så du har en elektronisk lineal.
Materialeliste
Det skal du bruge:

Afstandssensor

HC-SRO4

I denne opgave bruger vi en ultralydssensor til at måle afstanden hen til ting. Sensoren hedder HC-SRO4. På ultralydssensoren er der to rør, som vist på billedet.

Det ene rør bruges til at sende lydbølger ud (markeret med T for Transmitter) og det andet bruges til at modtage de samme lydbølger igen (markeret med R for Receiver). Lydbølgerne er ultrasoniske, dvs frekvensen er så høj, at man ikke selv kan høre dem. Sensoren virker ved, at man giver den et signal. Så sender den en lydbølge ud fra det ene rør. Hvis lydbølgen rammer en f.eks. en væg som er mellem 2 cm og 4 meter direkte foran ultralydssensoren, så vil lydbølgen blive reflekteret tilbage til modtagerrøret. Så vil sensoren outputte et elektrisk signal, som svarer til den tid, som det tog lydbølgen at blive sendt ud og komme tilbage igen. Da vi ved, hvad lydens hastighed er, så kan vi regne ud, hvor langt der var hen til væggen.

På sensoren er der 4 pins (kig på billedet ovenover). Vcc er sensorens forsyning og skal forbindes til 5 V. Den virker ikke så godt med 3.3 V, så det er vigtigt, at man forbinder til 5 V. Gnd er sensorens reference og skal forbindes til - på breadboardet. Trig er en pin, som bruges til at fortælle sensoren, at den skal starte en måling. Echo er den pin, som sensoren bruger til at fortælle, hvor lang tid det har taget lydbølgen at rejse frem og tilbage.

Opsætning

Kredsløbet skal sættes op som vist på billedet:

Vcc er forbundet til + på  siden med 5 V og GND er forbundet til - på breadboardet. Derfor skal vi også bruge en FireFly, da micro:bitten ikke selv har nogle pins med 5 V. Med Trig og Echo pins på sensoren kan man selv vælge hvilke pins på micro:bitten, de skal forbindes til. I det her forløb bliver Trig forbundet til P2 og Echo bliver (indirekte) forbundet til P1. Hvis du ændrer det, skal du huske at ændre det i koden også!

Echo er indirekte forbundet til P1 gennem tre modstande på 1 kΩ. Husk at sensoren er forsynet med 5 V. Derfor vil de signaler den sender ud også have en spænding på 5 V. Micro:bitten arbejder på 3.3 V og har derfor ikke så godt af, hvis man giver den en spænding, der er højere end 3.3 V. Derfor laver vi en spændingsdeler med de tre modstande og bruger spændingsdeleren til at regulere den spænding som micro:bitten får fra signalet, så den ikke er højere end 3.3 V.

 

Spændingsdeler_3_3V_bb_annoteret
Spændingsdeleren

På billedet er vist den spændingsdeler, vi bruger til at lave 5 V om til 3.3 V. Du kan selv prøve at regne efter ved at bruge den her formel:

    \[ V_{grøn} = V_{rød} \cdot \frac{R_{2}+R_{3}}{R_{1}+R_{2}+R_{3}}\]

Indsæt R_{1} = R_{2} = R_{3} = 1000 \; \Omega og V_{rød} = 5 \;\textrm{V} og kontroller med en lommeregner, at resultatet bliver 3.3 V. Du kan også prøve  med nogle andre værdier af modstande og stadigvæk få det samme resultat. Det vigtige ifølge formlen er bare forholdet imellem modstandene. Hvis du har en modstand med samme værdi som R2 + R3 kan du erstatte R2 og R3 med den.

Programmering

Nu har vi fået styr på alt det hardware, vi skal bruge i det her projekt. Nu mangler vi bare at programmere micro:bitten, så den forstår signalerne fra sensoren. Programmeringen af den elektroniske lineal er opdelt i tre niveauer af forskellige sværhedsgrader. Start med niveau 1. Det er det mest simple, så bliver det gradvist sværere.

 

Niveau 1 (simpelt)

Den letteste måde at aflæse sensoren på er ved at bruge en extension. I det her forløb bruger vi den extension, som hedder Sonar.

Man finder extensions ved at følge Advanced -> Extensions. I søgefeltet kan man så skrive sonar og trykke på den rubrik, som kommer op. Når man har gjort det kommer der en ny Sonar-menu op inde i MakeCode editoren.

Følg de her trin for at finde Sonar-udvidelsen.

simpel_sonar_draft

Billedet viser, hvordan man kan få resultater fra afstandssensoren. Den grå blok er fra udvidelsen Sonar. Her er det vigtigt at huske, at ping trig skal indstilles til den pin, som den er forbundet til på breadboardet. Det samme med echo. I det her forløb bruger vi P2 til ping trig og P1 til echo, men du kan også fint bruge nogle andre.

I programmet skriver vi resultatet ud til seriel-konsollen.

SerielKonsollen
Seriel - konsol

Når man sender data fra micro:bitten til ens computer, så gør man det serielt. Dataen ryger så igennem det USB-kabel, som forbinder din computer og micro:bitten. Hvis man skal have dataen vist på sin computer, så skal man bruge en konsol/terminal. Heldigvis er der en konsol indbygget i MakeCode. Den skulle gerne automatisk komme frem, når du lægger et program over på micro:bitten og når programmet indeholder seriel-kommandoer. Billedet til højre viser, den knap man skal trykke på for at se det data, som micro:bitten sender. Billedet under viser, hvordan dataen, som bliver sendt til seriel-konsollen kan se ud:

Nu kan vi aflæse sensorens data i seriel-konsollen.

 

 

 

Opgave 1

  1. Lav den elektroniske lineal og kontroller, at du kan aflæse sensorens data i konsollen.
  2. Prøv at kontrollere din elektroniske lineal med forskellige rigtige linealer. Passer målingerne?
    • Hvis målingerne ikke passer, kan man gange en justeringsfaktor på for at få resultaterne til at passe med rigtige linealer.
  3. Prøv at ændre enheden fra cm til m eller mm. Du kan også sende resultatet i alle tre enheder til computeren på én gang.
  4. Prøv at programmere en knap til at fryse resultatet fra afstandsensoren, når knappen bliver trykket. Hvad er fordelen ved det?

Niveau 2 (middel)

I denne opgave skal vi prøve at få data fra sensoren uden af bruge den indbyggede funktion i en extension.

Derfor skal vi selv styre sensoren. For at gøre det skal vi vide lidt om, hvordan lige præcis denne sensor fungerer. Det kan man godt finde ud af, hvis man læser i et stykke tekst, der kaldes et datablad. Det er som regel nemt at finde et datablad for en sensor, hvis man bare søger på sensorens navn i en søgemaskine.

Du kan selv prøve at finde databladet for sensoren eller du kan følge instruktioner her, hvor vi har samlet alt det vigtige information om sensoren for at få den til at fungere:

 

Puls_trig_hc_sro4
  • Først skal pinnen med Trig have en puls på 10 µs. Det vil sige, at vi skal skrive et digitalt 1-tal på Trig-pinnen, vente 10 µs og så skrive et digitalt 0 på Trig-pinnen. Du kan se, hvordan pulsen ser ud på billedet til højre:
  • Ret hurtigt efter vi har sendt en puls på Trig vil sensoren sende en puls tilbage på Echo-pinnen, ligesom der er vist på billedet nedenunder:

  • Længden af den puls, som bliver sendt tilbage svarer til tiden, som det har taget lyden at tilbagelægge afstanden fra sensoren hen til genstanden og tilbage igen. Vi kan måle længden af pulsen ved at bruge en funktion, som hedder pulse in. Pulse in findes hvis du følger Advanced -> Pins -> More. Det er en blok, som returner i µs, hvor lang tid en puls er enten høj eller lav. I vores tilfælde skal vi måle, hvor lang tid pulsen er høj og resultatet kan vi så gemme i en variabel. Husk at sætte pin til den pin, som du har forbundet til Echo-pinnen.

 

  • Nu har vi tiden, som det tager for lydbølgen at komme frem og tilbage. Nu mangler vi bare at konvertere resultatet til en afstand f.eks. i cm. Lydens hastighed i luft afhænger af temperaturen og trykket, men her kan vi godt regne med, at den er 343 m/s. Der er 100 cm på en meter og 1 milion µs på et sekund, så lydens hastighed i cm/µs er 0.0343 cm/µs. Vi skal også huske at dividere tiden med 2, fordi lydbølgen skal både frem og tilbage fra genstanden. Det giver følgende udtryk for at finde afstanden:

    \[ Afstand\; [\textrm{cm}] =  \frac{tid\; [ \mathrm{\mu} \textrm{s}]}{2} \cdot 0.0343\; \left[\frac{\textrm{cm}}{\mathrm{\mu} \textrm{s}}\right] \]

 

Opgave 1

  1. Lav den elektroniske lineal, hvor du ikke bruger en extension, men i stedet prøver selv at starte sensoren og læse outputtet fra sensoren.
  2. Prøv at kontrollere din elektroniske lineal med forskellige rigtige linealer. Passer målingerne?
    • Hvis målingerne ikke passer, kan man gange en justeringsfaktor på for at få resultaterne til at passe med rigtige linealer.
  3. Prøv at ændre enheden fra cm til m eller mm. Du kan også sende resultatet i alle tre enheder til computeren på én gang.
  4. Prøv at programmere en knap til at fryse resultatet fra afstandsensoren, når knappen bliver trykket. Hvad er fordelen ved det?

Niveau 3 (avanceret)

På niveau 3 er der to forskellige ting, som vi skal prøve at gøre. Den første opgave er prøve at tilpasse det signal, som vi får fra sensoren. Som du måske kan huske, så virker sensoren ved at bruge lydbølger og lydbølgernes hastighed afhænger af temperaturen. Før gik vi ud fra, at temperaturen altid var den samme, og at lydbølgernes hastighed derfor heller ikke ændrede sig. Nu skal vi prøve at tage højde for temperaturen for at få rigtigt præcise målinger.

Den anden opgave er at lave et filter. Et filter kan bruges til at få resultater, som ikke varierer alt for meget på kort tid.

 

Beregning ud fra temperaturen

Først skal vi finde lydens hastighed og gemme resultatet i en variabel, som man fx kan kalde "lyd hastighed". Lydens hastighed afhænger af temperaturen ifølge denne formel:

    \[ v_{luft} = 20.05 \cdot \sqrt{ t + 273,15 } \]

Formlen kan laves i MakeCode ved at bruge de forskellige matematikblokke.

For at se om resultatet er rigtigt, kan du printe tallet ud på LED-displayet eller du kan sende det til seriel-konsollen. Hvis det er 15 grader, så bliver lydens hastighed ifølge formlen omkring 340 m/s, og hvis det er 30 grader, så bliver lydens hastighed ifølge formlen omkring 350 m/s. Du kan også prøve bare at se, hvad temperaturen af micro:bitten er.

Når du har fundet lydens hastighed kan du beregne afstanden ud fra samme formel som vist tidligere:

    \[ Afstand\; [\textrm{cm}] =  \frac{tid\; [ \mathrm{\mu} \textrm{s}]}{2} \cdot v_{luft}\; \left[\frac{\textrm{cm}}{\mathrm{\mu} \textrm{s}}\right] \]

I den her formel har vi bare erstattet de 0.0343 med vores variabel, vluft, for lydens hastighed, som altså varierer med temperaturen.

Løbende Gennemsnit Filter

Om teknologiundervisning

En frivillig forening der tilbyder teknologiske fritidsaktiviteter

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed di am nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et ju sto duo dolores et ea rebum. Stet clita kasd gubergren, no sea

om-teknologiskolen

Kontakt

Har du brug for at vide mere om vores projekter?

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit

text-image-kontakt