Kazalo:

Uporaba Arduina za Citizen Science!: 14 korakov (s slikami)
Uporaba Arduina za Citizen Science!: 14 korakov (s slikami)

Video: Uporaba Arduina za Citizen Science!: 14 korakov (s slikami)

Video: Uporaba Arduina za Citizen Science!: 14 korakov (s slikami)
Video: 97% Owned: The Money System | Finance Documentary Film (Netflix) 2024, Junij
Anonim
Image
Image
Pssst, Kakšna je razlika med Citizen Science in
Pssst, Kakšna je razlika med Citizen Science in

Znanost nam omogoča, da postavljamo najbolj pereča vprašanja in raziskujemo vse vrste zanimivosti. Z nekaj razmišljanja, trdega dela in potrpljenja lahko s svojimi raziskavami zgradimo boljše razumevanje in spoštovanje kompleksnega in lepega sveta okoli nas.

Ta vadnica vas bo naučila, kako uporabljati mikrokrmilnik Arduino (uno), kako uporabljati različne vrste senzorjev ter kako zbirati in vizualizirati podatke. Med potjo bomo zgradili tri projekte: stikalo za nagib, senzor temperature in vlažnosti ter senzor svetlobe!

Stopnja težavnosti: Začetnik

Čas branja: 20 min

Čas izdelave: Odvisno od vašega projekta! (Projekti v tej vadnici trajajo približno 15-20 minut)

1. korak: Pssst, kakšna je razlika med državljansko znanostjo in "uradno znanostjo"?

Največja razlika je v tem, da je državljanska znanost, kot rad rečem, "ročno valovita", kar pomeni, da obstaja veliko napak in negotovosti in ni strogega postopka za njihovo identifikacijo. Zaradi tega so sklepi, ki jih je dosegla državljanska znanost, veliko manj natančni kot naravoslovni in se nanje ne bi smeli zanašati pri sprejemanju resnih/življenjsko nevarnih/življenjsko nevarnih trditev ali odločitev.*

Kot rečeno, je državljanska znanost odličen način za izgradnjo temeljnega razumevanja vseh vrst fascinantnih znanstvenih pojavov in je dovolj dobra za večino vsakodnevnih aplikacij.

*Če se ukvarjate z državljansko znanostjo in odkrijete nekaj potencialno nevarnega (na primer visoke ravni svinca v vodi), obvestite svojega vzgojitelja (če je primerno) in se za pomoč obrnite na ustrezne organe in strokovnjake.

2. korak: Kaj je Arduino ??

Kaj je Arduino ??
Kaj je Arduino ??
Kaj je Arduino ??
Kaj je Arduino ??
Kaj je Arduino ??
Kaj je Arduino ??
Kaj je Arduino ??
Kaj je Arduino ??

Arduino je plošča za mikrokrmilnik in integrirano razvojno okolje ("IDE"), kar je domišljijski način, da rečemo "program za kodiranje". Za začetnike toplo priporočam plošče Arduino Uno, ker so super robustne, zanesljive in zmogljive.

Arduino plošče so dobra izbira za državljanske znanstvene projekte, saj imajo veliko vhodnih zatičev za branje v analognih in digitalnih senzorjih (o tem bomo govorili kasneje).

Seveda lahko za državljanske znanosti uporabite druge mikrokrmilnike, odvisno od vaših (ali vaših študentov) potreb, sposobnosti in ravni udobja. Tukaj je pregled mikrokrmilnikov, ki vam bodo pomagali pri odločitvi, kaj je za vas najboljše!

Če želite utripati ali programirati ploščo Arduino, jo priključite prek USB -ja in nato:

1. Izberite vrsto Arduina, ki ga uporabljate, pod Orodja -> Plošče. (Fotografija 2)

2. Izberite vrata (tudi tam, kjer je povezana z računalnikom). (Fotografija 3)

3. Kliknite gumb Naloži in preverite, ali se nalaganje konča. (Fotografija 4)

3. korak: Orodja in materiali

Orodja in materiali
Orodja in materiali

Če šele začenjate, je nakup hiter in enostaven način, da naenkrat dobite kup delov. Komplet, ki ga uporabljam v tej vadnici, je Elegoo Arduino Starter Kit.*

Orodja

  • Arduino Uno
  • Kabel USB A do B (znan tudi kot tiskalniški kabel)
  • Mostične žice

    • 3 moški na moškega
    • 3 od samca do samice
  • Ogledna plošča

    Neobvezno, vendar priporočljivo, da vam olajša in zabavi življenje:)

Materiali

Za projekte, zajete v tej vadnici, boste potrebovali te dele iz začetnega kompleta Elegoo Arduino:

  • Nagibno stikalo
  • Senzor temperature in vlažnosti DTH11
  • LED
  • 100 ohmski upor

*Popolno razkritje: te iste komplete kupujem za delavnice, vendar so komplet, uporabljen v tej vadnici, podarili ljubki ljudje v Elegoou.

4. korak: Kakšne vrste senzorjev lahko uporabimo?

Kakšne vrste senzorjev lahko uporabimo?
Kakšne vrste senzorjev lahko uporabimo?

Pri načrtovanju znanstvenega eksperimenta običajno začnemo z vprašanjem: Koliko CO2 rastline absorbirajo na dan? Kolikšna je udarna sila skoka? Kaj je zavest ??

Na podlagi našega vprašanja lahko nato ugotovimo, kaj želimo izmeriti, in opraviti nekaj raziskav, da ugotovimo, kateri senzor lahko uporabimo za zbiranje podatkov (čeprav bi bilo pri zbiranju podatkov za to zadnje vprašanje morda malo težavno!).

Pri delu z elektroniko obstajata dve glavni vrsti podatkovnih signalov senzorjev: digitalni in analogni. Na fotografiji sta prvi dve vrsti delov vsi digitalni senzorji, zgornji dve vrstici pa analogni.

Obstaja veliko različnih vrst digitalnih senzorjev, z nekaterimi pa je delo zahtevnejše od drugih. Ko raziskujete za svoj znanstveni projekt za državljane, vedno preverite, kako senzor oddaja podatke (srsly tho) in se prepričajte, da najdete knjižnico (Arduino) za ta posebni senzor.

V treh projektih, zajetih v tej vadnici, bomo uporabili dve vrsti digitalnih senzorjev in en analogni senzor. Naučimo se!

5. korak: Digitalni senzorji! 1. del: Enostavno

Digitalni senzorji! 1. del: Enostavno!
Digitalni senzorji! 1. del: Enostavno!
Digitalni senzorji! 1. del: Enostavno!
Digitalni senzorji! 1. del: Enostavno!

Večina senzorjev, ki jih boste uporabili, oddaja digitalni signal, ki je vklopljen ali izklopljen.* Za predstavitev teh dveh stanj uporabljamo binarne številke: signal za vklop je 1 ali True, medtem ko je Off 0, ali napačno. Če bi narisali sliko, kako izgleda binarni signal, bi bil to kvadratni val, kot je tisti na fotografiji 2.

Obstaja nekaj digitalnih senzorjev, kot so stikala, ki jih je zelo enostavno in preprosto izmeriti, ker bodisi pritisnemo gumb in dobimo signal (1), bodisi ni pritisnjen in nimamo signala (0). Tipala, prikazana v spodnji vrstici prve fotografije, so preprosta. Senzorji v zgornji vrsti so nekoliko bolj zapleteni in so pokriti po našem prvem projektu.

Prva dva projekta v tej vadnici vas bosta naučila uporabljati obe vrsti! Naprej za izgradnjo našega prvega projekta !!

*Vklop pomeni električni signal v obliki električnega toka in napetosti. Izklop pomeni brez električnega signala!

Korak 6: Projekt 1: Digitalni senzor stikala za nagib

Projekt 1: Digitalni senzor stikala za nagib
Projekt 1: Digitalni senzor stikala za nagib
Projekt 1: Digitalni senzor stikala za nagib
Projekt 1: Digitalni senzor stikala za nagib
Projekt 1: Digitalni senzor stikala za nagib
Projekt 1: Digitalni senzor stikala za nagib

Za ta prvi projekt uporabimo stikalo za nagib, tisti črni cilindrični senzor z dvema nogama! 1. korak: Vstavite eno nogo stikala za nagib v Arduino Digital Pin 13, drugo nogo pa v zatič GND tik ob zatiču 13. Usmerjenost ni važno.

2. korak: Napišite skico, ki prebere in natisne stanje digitalnega zatiča 13

Ali pa uporabite samo mojega!

Če šele začenjate s kodiranjem, preberite komentarje, da boste bolje razumeli, kako skica deluje, in poskusite nekaj spremeniti, da vidite, kaj se zgodi! V redu je razbijati stvari, to je odličen način za učenje! Vedno lahko znova naložite datoteko in začnete znova:)

3. korak: Če si želite ogledati podatke v živo, kliknite gumb Serijski monitor (fotografija 2)

..aaa in to je to! Sedaj lahko uporabite nagibno stikalo za merjenje orientacije! Nastavite ga tako, da pokliče vašo muco, ko nekaj prevrne, ali pa z njo spremljajte gibanje drevesnih vej med nevihtami!.. in med tema dvema skrajnostma so verjetno še druge aplikacije.

7. korak: Digitalni senzorji! 2. del: PWM in serijska komunikacija

Digitalni senzorji! 2. del: PWM in serijska komunikacija
Digitalni senzorji! 2. del: PWM in serijska komunikacija
Digitalni senzorji! 2. del: PWM in serijska komunikacija
Digitalni senzorji! 2. del: PWM in serijska komunikacija
Digitalni senzorji! 2. del: PWM in serijska komunikacija
Digitalni senzorji! 2. del: PWM in serijska komunikacija

Obstaja veliko načinov za ustvarjanje bolj zapletenih digitalnih signalov! Ena metoda se imenuje Pulse Width Modulation ("PWM"), ki je domišljijski način povedati signal, ki je vklopljen za določen čas in izklopljen za določen čas. Servo motorji (ki jih je mogoče uporabiti za merjenje položaja) in ultrazvočni senzorji so primeri senzorjev, ki uporabljajo signale PWM.

Obstajajo tudi senzorji, ki uporabljajo serijsko komunikacijo za pošiljanje podatkov po en bit ali binarno številko naenkrat. Ti senzorji zahtevajo nekaj poznavanja branja podatkovnih listov in so lahko precej zapleteni, če šele začenjate. Na srečo bodo običajni serijski senzorji imeli knjižnice kod* in vzorčne programe, iz katerih boste lahko še vedno združili nekaj funkcionalnega. Več podrobnosti o protokolih serijske komunikacije presega obseg te vadnice, vendar je tukaj odličen vir o serijski komunikaciji iz SparkFuna, če želite izvedeti več!

Za ta vzorčni projekt uporabimo senzor temperature in vlažnosti (DHT11)! To je mali modri kvadrat z luknjami in 3 zatiči.

Najprej bomo za senzor DHT11 potrebovali nekaj posebnih knjižnic: knjižnico DHT11 in knjižnico Adafruit Unified Sensor. Če želite namestiti te knjižnice (in večino drugih knjižnic Arduino):

1. korak: Odprite upravitelja knjižnice Arduino tako, da odprete Sketch -> Knjižnice -> upravljate knjižnico (Fotografija 2)

Korak: Namestite in aktivirajte knjižnico DHT tako, da poiščete »DHT« in nato kliknete Namesti za »Knjižnico DHT Arduino« (Fotografija 3)

3. korak: Namestite in aktivirajte knjižnico Adafruit Unified Sensor tako, da poiščete »Adafruit Unified Sensor« in kliknete namesti.

4. korak: V odprto skico vstavite knjižnico DHT tako, da odprete Sketch -> Libraries in kliknete na "DHT Arduino Library. (Fotografija 4) To bo vstavilo nekaj novih vrstic na vrhu skice, kar pomeni, da knjižnica je zdaj aktivna in pripravljena za uporabo! (Fotografija 5)

*Tako kot vaša priljubljena lokalna knjižnica, so knjižnice kod bogate z znanjem in trdim delom drugih ljudi, s katerimi si olajšamo življenje, ja!

Korak 8: Projekt 2: Digitalni serijski senzor temperature in vlažnosti

Projekt 2: Digitalni serijski senzor temperature in vlažnosti
Projekt 2: Digitalni serijski senzor temperature in vlažnosti
Projekt 2: Digitalni serijski senzor temperature in vlažnosti
Projekt 2: Digitalni serijski senzor temperature in vlažnosti
Projekt 2: Digitalni serijski senzor temperature in vlažnosti
Projekt 2: Digitalni serijski senzor temperature in vlažnosti
Projekt 2: Digitalni serijski senzor temperature in vlažnosti
Projekt 2: Digitalni serijski senzor temperature in vlažnosti

Vzemite 3 moške in ženske mostičke iz Elegoo Arduino Starter Kit in pripravljeni smo!

Korak 1: S zatiči glave obrnjeni proti vam, skrajni desni zatič glave na DHT11 priključite na ozemljitveni zatič Arduino ("GND").

Korak: Priključite srednji zatič glave na izhodni zatič Arduino 5V.

Korak: Priključite skrajni levi zatič glave na Arduino Digital Pin 2

4. korak: Na koncu preberite knjižnico DHT in se preizkusite v pisanju skice! Oooor lahko uporabite moj ali DHT testni skico v Arduinu -> Primeri!

Ko ga zaženete, pojdite naprej in izmerite temperaturo in vlažnost vseh stvari!.. Kot dih živali, rastlinjak ali vaše najljubše plezališče v različnih letnih časih, da najdete * popolno * temperaturo pošiljanja.

9. korak: Analogni senzorji

Analogni senzorji!
Analogni senzorji!
Analogni senzorji!
Analogni senzorji!

Po težkem potopu v digitalne senzorje se lahko zdijo analogni senzorji kot vetrič! Analogni signali so neprekinjen signal, kot je prikazano na 2. fotografiji. Večina fizičnega sveta obstaja v analognem (npr. Temperatura, starost, tlak itd.), Ker pa so računalniki digitalni*, bo večina senzorjev oddajala digitalni signal. Nekateri mikrokrmilniki, na primer Arduino plošče, lahko berejo tudi analogne signale **.

Za večino analognih senzorjev podamo moč senzorja, nato z analognimi vhodnimi zatiči preberemo analogni signal. Za ta test bomo uporabili še enostavnejšo nastavitev za merjenje napetosti na LED, ko nanjo prižgemo luč.

*Računalniki uporabljajo digitalne signale za shranjevanje in prenos informacij. To je zato, ker je digitalne signale lažje zaznati in so bolj zanesljivi, saj moramo skrbeti le za to, ali dobimo signal ali ne, in ne za kakovost/natančnost signala.

** Za branje analognega signala na digitalni napravi moramo uporabiti analogno-digitalni pretvornik ali ADC pretvornik, ki analogni signal približa s primerjavo vhoda z znano napetostjo na napravi, nato pa šteje, kako dolgo traja da doseže vhodno napetost. Za več informacij je to uporabno spletno mesto.

10. korak: 3. projekt: LED kot svetlobni senzor

Projekt 3: LED kot svetlobni senzor!
Projekt 3: LED kot svetlobni senzor!
Projekt 3: LED kot svetlobni senzor!
Projekt 3: LED kot svetlobni senzor!

Vzemite LED (katere koli barve, razen bele), 100 ohmski upor in 2 mostična kabla. Oh, in načrt!

1. korak: Vstavite LED v mizo z daljšo nogo na desni strani.

2. korak: Priključite mostični kabel iz Arduino Analog Pin Pin A0 in daljše LED noge

3. korak: Priključite upor med krajšo LED diodo in negativno napajalno tirnico na desni plošči (poleg modre črte).

4. korak: Priključite zatič Arduino GND na negativno vodilo na plošči.

5. korak: Napišite skico, ki se glasi na analognem pin A0 in natisne na serijski monitor

Tukaj je vzorčna koda za začetek.

11. korak: Vizualizacija podatkov: Arduino IDE

Vizualizacija podatkov: Arduino IDE!
Vizualizacija podatkov: Arduino IDE!
Vizualizacija podatkov: Arduino IDE!
Vizualizacija podatkov: Arduino IDE!

Arduino IDE ima vgrajena orodja za vizualizacijo podatkov. Že smo raziskali osnove serijskega monitorja, ki nam omogoča tiskanje vrednosti senzorjev. Če želite shraniti in analizirati svoje podatke, kopirajte izhod neposredno iz serijskega monitorja in ga prilepite v urejevalnik besedila, preglednico ali drugo orodje za analizo podatkov.

Drugo orodje, s katerim lahko vidimo svoje podatke v programu Arduino, je serijski ploter, vizualna različica (znana tudi kot graf) serijskega monitorja. Za uporabo serijskega ploterja pojdite na Orodja Serijski ploter. Graf na fotografiji 2 je izhod LED kot svetlobnega senzorja iz projekta 3!*

Načrt se samodejno prilagodi in dokler za svoje senzorje uporabljate Serial.println (), bo tudi natisnil vse vaše senzorje v različnih barvah. Ura! To je to!

*Če pogledate na konec, obstaja super zanimiv vzorec valov, ki je verjetno posledica izmeničnega toka ("AC") v naših zgornjih lučeh!

12. korak: Vizualizacija podatkov: Excel! 1. del

Vizualizacija podatkov: Excel! 1. del
Vizualizacija podatkov: Excel! 1. del
Vizualizacija podatkov: Excel! 1. del
Vizualizacija podatkov: Excel! 1. del
Vizualizacija podatkov: Excel! 1. del
Vizualizacija podatkov: Excel! 1. del
Vizualizacija podatkov: Excel! 1. del
Vizualizacija podatkov: Excel! 1. del

Za resnejšo analizo podatkov obstaja super kul (in brezplačen!) Dodatek za Excel, imenovan Data Streamer*, ki ga lahko prenesete tukaj.

Ta dodatek bere iz serijskih vrat, zato lahko uporabimo popolnoma isto tehniko kodiranja tiskanja podatkov v serijo, da podatke dobimo neposredno v Excel.

Kako uporabljati dodatek Data Streamer:

1. Ko ga namestite (ali če imate O365), kliknite zavihek Data Streamer (skrajno desno) v Excelu.

2. Priključite svoj Arduino in kliknite »Poveži napravo«, nato v spustnem meniju izberite Arduino. (Fotografija 1)

3. Kliknite "Začni podatke" za začetek zbiranja podatkov! (Fotografija 2) Odprli se bodo trije novi listi: "Data In", "Data Out" in "Settings".

Podatki v živo so natisnjeni na listu Data In. (Fotografija 3) Vsaka vrstica ustreza odčitku senzorja, pri čemer je najnovejša vrednost natisnjena v zadnji vrstici.

Privzeto dobimo le 15 vrstic podatkov, vendar to lahko spremenite tako, da odprete »Nastavitve«. Zberemo lahko do 500 vrstic (omejitev je posledica Excelove pasovne širine - v ozadju se veliko dogaja!).

*Popolno razkritje: Čeprav ta vadnica ni povezana, delam z ekipo Microsoft Hacking STEM, ki je razvila ta dodatek.

13. korak: Vizualizacija podatkov: Excel! 2. del

Vizualizacija podatkov: Excel! 2. del
Vizualizacija podatkov: Excel! 2. del
Vizualizacija podatkov: Excel! 2. del
Vizualizacija podatkov: Excel! 2. del
Vizualizacija podatkov: Excel! 2. del
Vizualizacija podatkov: Excel! 2. del

4. Dodajte ploskev svojih podatkov! Naredite analizo podatkov! Razpršeni grafikoni vam pokažejo, kako se odčitki senzorjev s časom spreminjajo, kar smo videli tudi pri serijskem ploterju Arduino.

Če želite dodati razpršilno ploskev:

Pojdite na Vstavi -> Karte -> Razpršilec. Ko se ploskev prikaže, z desno miškino tipko kliknite nanjo in izberite »Izberi podatke«, nato pa Dodaj. Želimo, da so naši podatki prikazani na osi y, z "časom"* na osi x. Če želite to narediti, kliknite puščico poleg osi y, pojdite na list Podatki in izberite vse dohodne podatke senzorja (fotografija 2).

Izračune in primerjave lahko naredimo tudi v Excelu! Če želite napisati formulo, kliknite prazno celico in vnesite znak enakosti ("="), nato pa izračun, ki ga želite narediti. Obstaja veliko vgrajenih ukazov, kot so povprečni, največji in najmanjši.

Če želite uporabiti ukaz, vnesite znak enakosti, ime ukaza in odprte oklepaje, nato izberite podatke, ki jih analizirate, in zaprite oklepaje (Slika 3)

5. Če želite poslati več stolpcev podatkov (AKA več kot en senzor), natisnite vrednosti v isto vrstico, ločeno z vejico, s končno prazno novo vrstico, na primer:

Serial.print (sensorReading1);

Serial.print (","); Serial.print (sensorReading2); Serial.print (","); Serial.println ();

*Če želite, da je dejanski čas na osi x, izberite časovni žig v stolpcu A na listu z informacijami za vrednosti osi x v vašem razpršilu. Kakorkoli, naše podatke bomo videli, ko se bodo sčasoma spreminjali.

Korak 14: Pojdi naprej in izmeri vse stvari !

Pojdi naprej in izmeri vse stvari !!
Pojdi naprej in izmeri vse stvari !!
Pojdi naprej in izmeri vse stvari !!
Pojdi naprej in izmeri vse stvari !!
Pojdi naprej in izmeri vse stvari !!
Pojdi naprej in izmeri vse stvari !!

V redu ljudje, to je vse! Čas je, da greste navzgor in navzgor! Uporabite to kot podlago za začetek raziskovanja senzorjev, kodiranja Arduino in analize podatkov za reševanje vaših vprašanj, zanimivosti in priljubljenih skrivnosti v tem velikem, lepem svetu.

Ne pozabite: na poti vas čaka veliko ljudi, zato pustite komentar, če imate vprašanje!

Potrebujete več idej? Tukaj je opisano, kako narediti stikalo za spreminjanje stanja nosljivosti, daljinsko temperaturno tipalo na sončno energijo in industrijsko lestvico, povezano z internetom!

Všeč vam je ta vadnica in želite videti več? Podprite naše projekte na Patreonu!: D

Priporočena: