Kazalo:
- 1. korak: Pssst, kakšna je razlika med državljansko znanostjo in "uradno znanostjo"?
- 2. korak: Kaj je Arduino ??
- 3. korak: Orodja in materiali
- 4. korak: Kakšne vrste senzorjev lahko uporabimo?
- 5. korak: Digitalni senzorji! 1. del: Enostavno
- Korak 6: Projekt 1: Digitalni senzor stikala za nagib
- 7. korak: Digitalni senzorji! 2. del: PWM in serijska komunikacija
- Korak 8: Projekt 2: Digitalni serijski senzor temperature in vlažnosti
- 9. korak: Analogni senzorji
- 10. korak: 3. projekt: LED kot svetlobni senzor
- 11. korak: Vizualizacija podatkov: Arduino IDE
- 12. korak: Vizualizacija podatkov: Excel! 1. del
- 13. korak: Vizualizacija podatkov: Excel! 2. del
- Korak 14: Pojdi naprej in izmeri vse stvari !
Video: Uporaba Arduina za Citizen Science!: 14 korakov (s slikami)
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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 ??
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
Č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?
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
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
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
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
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
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
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
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
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
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 !
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