Spisu treści:

Używanie Arduino do nauki obywatelskiej!: 14 kroków (ze zdjęciami)
Używanie Arduino do nauki obywatelskiej!: 14 kroków (ze zdjęciami)

Wideo: Używanie Arduino do nauki obywatelskiej!: 14 kroków (ze zdjęciami)

Wideo: Używanie Arduino do nauki obywatelskiej!: 14 kroków (ze zdjęciami)
Wideo: ILU POLICJANTÓW POTRZEBA ABY OBEZWŁADNIĆ OJCA BEZ SPRZĘTU 2024, Czerwiec
Anonim
Image
Image
Pssst, jaka jest różnica między nauką obywatelską a
Pssst, jaka jest różnica między nauką obywatelską a

Nauka pozwala nam zadawać najbardziej palące pytania i odkrywać wszelkiego rodzaju ciekawostki. Przy odrobinie przemyśleń, ciężkiej pracy i cierpliwości możemy wykorzystać nasze poszukiwania, aby lepiej zrozumieć i docenić złożony i piękny świat wokół nas.

Ten samouczek nauczy Cię, jak korzystać z mikrokontrolera Arduino (uno), jak korzystać z różnych typów czujników oraz jak zbierać i wizualizować dane. Po drodze zbudujemy trzy projekty: przełącznik przechyłu, czujnik temperatury i wilgotności oraz czujnik światła!

Poziom trudności: początkujący

Czas czytania: 20 minut

Czas budowy: zależy od Twojego projektu! (Projekty w tym samouczku zajmują około 15-20 minut)

Krok 1: Pssst, jaka jest różnica między nauką obywatelską a „nauką oficjalną”?

Największą różnicą jest to, że nauka obywatelska jest, jak lubię to powtarzać, „falowaniem rąk”, co oznacza, że istnieje wiele błędów i niepewności, a nie ma rygorystycznego procesu ich identyfikacji. Z tego powodu wnioski wyciągnięte z nauki obywatelskiej są znacznie mniej dokładne niż nauki ścisłe i nie należy na nich polegać przy formułowaniu poważnych/zmieniających życie/zagrażających życiu twierdzeń lub decyzji*.

Biorąc to pod uwagę, nauka obywatelska jest świetnym sposobem na zbudowanie fundamentalnego zrozumienia wszelkiego rodzaju fascynujących zjawisk naukowych i jest wystarczająco dobra dla większości codziennych zastosowań.

*Jeśli zajmujesz się nauką obywatelską i odkryjesz coś potencjalnie niebezpiecznego (np. wysoki poziom ołowiu w wodzie), poinformuj swojego edukatora (jeśli dotyczy) i skontaktuj się z odpowiednimi władzami i specjalistami w celu uzyskania pomocy.

Krok 2: Co to jest Arduino?

Co to jest Arduino?
Co to jest Arduino?
Co to jest Arduino?
Co to jest Arduino?
Co to jest Arduino?
Co to jest Arduino?
Co to jest Arduino?
Co to jest Arduino?

Arduino to płyta mikrokontrolera i zintegrowane środowisko programistyczne ("IDE"), co jest fantazyjnym określeniem "program kodujący". Początkującym bardzo polecam płytki Arduino Uno, ponieważ są super wytrzymałe, niezawodne i wydajne.

Płyty Arduino są dobrym wyborem dla projektów nauki obywatelskiej, ponieważ mają wiele pinów wejściowych do odczytu zarówno w czujnikach analogowych, jak i cyfrowych (więcej o tym później).

Oczywiście możesz używać innych mikrokontrolerów do nauki obywatelskiej w zależności od potrzeb, umiejętności i poziomu komfortu Twoich (lub Twoich uczniów). Oto przegląd mikrokontrolerów, który pomoże Ci zdecydować, co jest dla Ciebie najlepsze!

Aby sflashować lub zaprogramować płytkę Arduino, podłącz ją przez USB, a następnie:

1. Wybierz typ Arduino, którego używasz w Narzędzia -> Płytki. (Zdjęcie 2)

2. Wybierz port (czyli miejsce, w którym jest podłączony do komputera). (Zdjęcie 3)

3. Kliknij przycisk Prześlij i sprawdź, czy przesyłanie zostało zakończone. (Zdjęcie 4)

Krok 3: Narzędzia i materiały

Narzędzia i materiały
Narzędzia i materiały

Jeśli dopiero zaczynasz, zakup zestawu to szybki i łatwy sposób na zdobycie wielu części na raz. Zestaw, którego używam w tym samouczku, to zestaw startowy Elegoo Arduino.*

Narzędzia

  • Arduino Uno
  • Kabel USB A do B (inaczej kabel drukarki)
  • Przewody połączeniowe

    • 3 męskie na męskie
    • 3 mężczyzn do kobiet
  • Deska do krojenia chleba

    Opcjonalne, ale zalecane, aby Twoje życie było łatwiejsze i przyjemniejsze:)

Materiały

W przypadku projektów omówionych w tym samouczku potrzebne będą następujące części z zestawu startowego Elegoo Arduino:

  • Przełącznik przechyłu
  • Czujnik temperatury i wilgotności DTH11
  • PROWADZONY
  • Rezystor 100 Ohm

*Pełne ujawnienie: kupuję te same zestawy na warsztaty, ale zestaw użyty w tym samouczku został podarowany przez uroczych ludzi z Elegoo.

Krok 4: Jakich rodzajów czujników możemy używać?

Jakich rodzajów czujników możemy używać?
Jakich rodzajów czujników możemy używać?

Projektując eksperyment naukowy, zwykle zaczynamy od pytania: Ile CO2 pochłaniają rośliny w ciągu dnia? Jaka jest siła uderzenia skoku? Czym jest świadomość?

Na podstawie naszego pytania możemy następnie określić, co chcemy zmierzyć i przeprowadzić badania, aby dowiedzieć się, jakiego czujnika możemy użyć do zbierania danych (chociaż zebranie danych dla tego ostatniego pytania może być trochę trudne!).

Podczas pracy z elektroniką istnieją dwa główne typy sygnałów danych czujnika: cyfrowe i analogowe. Na zdjęciu pierwsze dwa rzędy części to wszystkie czujniki cyfrowe, podczas gdy dwa górne rzędy są analogowe.

Istnieje wiele różnych typów czujników cyfrowych, a niektóre z nich są trudniejsze w obsłudze niż inne. Podczas prowadzenia badań dla projektu nauki obywatelskiej zawsze sprawdzaj, w jaki sposób czujnik wysyła dane (srsly tho) i upewnij się, że możesz znaleźć bibliotekę (Arduino) dla tego konkretnego czujnika.

W trzech projektach omówionych w tym samouczku użyjemy dwóch typów czujników cyfrowych i jednego czujnika analogowego. Zacznijmy się uczyć!

Krok 5: Czujniki cyfrowe! Część 1: łatwe

Czujniki cyfrowe! Część 1: łatwe!
Czujniki cyfrowe! Część 1: łatwe!
Czujniki cyfrowe! Część 1: łatwe!
Czujniki cyfrowe! Część 1: łatwe!

Większość czujników, z których będziesz korzystać, wysyła sygnał cyfrowy, który jest sygnałem włączonym lub wyłączonym.* Używamy liczb binarnych do reprezentowania tych dwóch stanów: sygnał włączony jest podawany jako 1 lub True, a Off to 0, lub Fałsz. Gdybyśmy mieli narysować obraz tego, jak wygląda sygnał binarny, byłaby to fala prostokątna, taka jak na Zdjęciu 2.

Istnieje kilka czujników cyfrowych, takich jak przełączniki, które są bardzo łatwe i proste do zmierzenia, ponieważ albo przycisk jest wciśnięty i otrzymujemy sygnał (1), albo nie jest wciśnięty i nie mamy sygnału (0). Czujniki przedstawione w dolnym rzędzie pierwszego zdjęcia są prostymi typami włączania/wyłączania. Czujniki w górnym rzędzie są nieco bardziej złożone i zostały omówione po naszym pierwszym projekcie.

Pierwsze dwa projekty w tym samouczku nauczą Cię, jak korzystać z obu typów! Dalej, aby zbudować nasz pierwszy projekt!!

*On oznacza sygnał elektryczny w postaci prądu i napięcia elektrycznego. Off oznacza brak sygnału elektrycznego!

Krok 6: Projekt 1: Cyfrowy czujnik przechyłu

Projekt 1: Cyfrowy czujnik przechyłu
Projekt 1: Cyfrowy czujnik przechyłu
Projekt 1: Cyfrowy czujnik przechyłu
Projekt 1: Cyfrowy czujnik przechyłu
Projekt 1: Cyfrowy czujnik przechyłu
Projekt 1: Cyfrowy czujnik przechyłu

W tym pierwszym projekcie użyjmy przełącznika przechyłu, czarnego cylindrycznego czujnika z dwiema nogami! Krok 1: Włóż jedną nogę przełącznika przechyłu do pinu cyfrowego Arduino 13, a drugą nogę do pinu GND tuż obok pinu 13. Orientacja nie ma znaczenia.

Krok 2: Napisz szkic, który wczytuje i drukuje stan cyfrowego pinu 13

Lub możesz po prostu użyć mojego!

Jeśli dopiero zaczynasz kodować, przeczytaj komentarze, aby lepiej zrozumieć, jak działa szkic i spróbuj zmienić niektóre rzeczy, aby zobaczyć, co się stanie! Nic nie szkodzi, to świetny sposób na naukę! Zawsze możesz ponownie pobrać plik i zacząć od nowa:)

Krok 3: Aby zobaczyć dane na żywo, kliknij przycisk Monitor szeregowy (zdjęcie 2)

…aaa i to wszystko! Możesz teraz użyć przełącznika pochylenia, aby zmierzyć orientację! Ustaw go, aby zawołał kotka, gdy coś przewróci, lub użyj go, aby śledzić, jak poruszają się gałęzie drzew podczas burzy!.. i prawdopodobnie są inne zastosowania pomiędzy tymi dwoma skrajnościami.

Krok 7: Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa

Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa
Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa
Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa
Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa
Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa
Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa

Istnieje wiele sposobów na tworzenie bardziej złożonych sygnałów cyfrowych! Jedna metoda nazywa się modulacją szerokości impulsu ("PWM"), co jest fantazyjnym sposobem powiedzenia, że sygnał jest włączony przez określony czas i wyłączony przez określony czas. Serwomotory (które mogą służyć do pomiaru położenia) oraz czujniki ultradźwiękowe to przykłady czujników wykorzystujących sygnały PWM.

Istnieją również czujniki, które wykorzystują komunikację szeregową do przesyłania danych jednobitowych lub binarnych. Te czujniki wymagają pewnej znajomości czytania arkuszy danych i mogą być dość trudne, jeśli dopiero zaczynasz. Na szczęście popularne czujniki szeregowe będą miały biblioteki kodu* i przykładowe programy, z których można czerpać, dzięki czemu nadal można połączyć coś funkcjonalnego. Więcej szczegółów na temat protokołów komunikacji szeregowej wykracza poza zakres tego samouczka, ale tutaj jest świetne źródło informacji na temat komunikacji szeregowej od SparkFun, aby dowiedzieć się więcej!

Do tego przykładowego projektu wykorzystajmy czujnik temperatury i wilgotności (DHT11)! Jest to mały niebieski kwadrat z otworami i 3 pinami.

Najpierw będziemy potrzebować kilku specjalnych bibliotek dla czujnika DHT11: biblioteki DHT11 i biblioteki Adafruit Unified Sensor. Aby zainstalować te biblioteki (i większość innych bibliotek Arduino):

Krok 1: Otwórz menedżera biblioteki Arduino, przechodząc do Szkic -> Biblioteki -> zarządzaj biblioteką (zdjęcie 2)

Krok 2: Zainstaluj i aktywuj bibliotekę DHT, wyszukując „DHT”, a następnie klikając Zainstaluj dla „Biblioteki DHT Arduino” (zdjęcie 3)

Krok 3: Zainstaluj i aktywuj bibliotekę Adafruit Unified Sensor, wyszukując „Adafruit Unified Sensor” i klikając „Zainstaluj”.

Krok 4: Wstaw bibliotekę DHT do otwartego szkicu, przechodząc do Szkic -> Biblioteki i klikając „Biblioteka DHT Arduino. (Zdjęcie 4) Spowoduje to wstawienie kilku nowych linii na górze szkicu, co oznacza, że nasz biblioteka jest już aktywna i gotowa do użycia (zdjęcie 5)

*Podobnie jak twoja ulubiona lokalna biblioteka, biblioteki kodu są bogactwem wiedzy i ciężkiej pracy innych ludzi, które możemy wykorzystać, aby ułatwić nam życie, tak!

Krok 8: Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności

Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności

Chwyć 3 przewody połączeniowe męskie-żeńskie z zestawu startowego Elegoo Arduino i gotowe!

Krok 1: Z kołkami nagłówka skierowanymi do siebie, podłącz skrajny prawy styk nagłówka na DHT11 do styku uziemienia Arduino („GND”).

Krok 2: Podłącz środkowy pin nagłówka do pinu wyjściowego Arduino 5V.

Krok 3: Podłącz skrajny lewy pin nagłówka do Arduino Digital Pin 2

Krok 4: Na koniec przeczytaj bibliotekę DHT i spróbuj swoich sił w pisaniu szkicu! Oooor możesz użyć mojego lub przykładowego szkicu testowego DHT w Arduino -> Przykłady!

Kiedy już go uruchomisz, idź i zmierz temperaturę i wilgotność wszystkich rzeczy!.. Jak oddech zwierzęcia, szklarnia lub ulubione miejsce do wspinaczki o różnych porach roku, aby znaleźć *idealną* temperaturę wysyłania.

Krok 9: Czujniki analogowe

Czujniki analogowe!
Czujniki analogowe!
Czujniki analogowe!
Czujniki analogowe!

Po trudnym zanurzeniu się w czujnikach cyfrowych, czujniki analogowe mogą wydawać się bardzo proste! Sygnały analogowe są sygnałami ciągłymi, jak pokazano na drugim zdjęciu. Większość świata fizycznego istnieje w postaci analogowej (np. temperatura, wiek, ciśnienie itp.), ale ponieważ komputery są cyfrowe*, większość czujników wysyła sygnał cyfrowy. Niektóre mikrokontrolery, np. płytki Arduino, potrafią również odczytywać sygnały analogowe**.

W przypadku większości czujników analogowych podajemy moc czujnika, a następnie odczytujemy sygnał analogowy za pomocą pinów Analog Input. W tym teście użyjemy jeszcze prostszej konfiguracji do pomiaru napięcia na diodzie LED, gdy oświetlimy ją światłem.

*Komputery używają sygnałów cyfrowych do przechowywania i przesyłania informacji. Dzieje się tak, ponieważ sygnały cyfrowe są łatwiejsze do wykrycia i są bardziej niezawodne, ponieważ musimy się martwić tylko o uzyskanie sygnału lub jego brak, a nie o jakość/dokładność sygnału.

** Aby odczytać sygnał analogowy na urządzeniu cyfrowym, musimy użyć przetwornika analogowo-cyfrowego lub ADC, który przybliża sygnał analogowy, porównując sygnał wejściowy ze znanym napięciem urządzenia, a następnie zliczając, jak długo to trwa trwa, aby osiągnąć napięcie wejściowe. Aby uzyskać więcej informacji, ta strona jest pomocna.

Krok 10: Projekt 3: LED jako czujnik światła

Projekt 3: LED jako czujnik światła!
Projekt 3: LED jako czujnik światła!
Projekt 3: LED jako czujnik światła!
Projekt 3: LED jako czujnik światła!

Chwyć diodę LED (dowolny kolor z wyjątkiem białego), rezystor 100 omów i 2 kable połączeniowe. Och, i deska do krojenia chleba!

Krok 1: Włóż diodę LED do płytki stykowej z dłuższą nogą po prawej stronie.

Krok 2: Podłącz przewód połączeniowy z Arduino Analog Pin A0 i dłuższą nogę LED

Krok 3: Podłącz rezystor między krótszą nogą LED a ujemną szyną zasilania płytki stykowej (obok niebieskiej linii).

Krok 4: Podłącz pin Arduino GND do ujemnej szyny zasilającej na płytce stykowej.

Krok 5: Napisz szkic, który odczytuje pin analogowy A0 i zostanie wydrukowany na monitorze szeregowym

Oto przykładowy kod na dobry początek.

Krok 11: Wizualizacja danych: Arduino IDE

Wizualizacja danych: Arduino IDE!
Wizualizacja danych: Arduino IDE!
Wizualizacja danych: Arduino IDE!
Wizualizacja danych: Arduino IDE!

Arduino IDE ma wbudowane narzędzia do wizualizacji danych. Zbadaliśmy już podstawy monitora szeregowego, który pozwala nam drukować wartości czujników. Jeśli chcesz zapisać i przeanalizować dane, skopiuj dane wyjściowe bezpośrednio z Monitora szeregowego i wklej je do edytora tekstu, arkusza kalkulacyjnego lub innego narzędzia do analizy danych.

Drugim narzędziem, którego możemy użyć do zobaczenia naszych danych w programie Arduino, jest Serial Plotter, wizualna wersja (aka wykres) Serial Monitor. Aby użyć plotera szeregowego, przejdź do menu Narzędzia Ploter szeregowy. Wykres na zdjęciu 2 to wyjście diody LED jako czujnika światła z Projektu 3!*

Wykres będzie automatycznie skalowany i tak długo, jak używasz Serial.println() dla swoich czujników, będzie również drukował wszystkie czujniki w różnych kolorach. Hurra! Otóż to!

*Jeśli spojrzysz na koniec, zobaczysz bardzo interesujący wzór fali, który prawdopodobnie jest spowodowany prądem przemiennym („AC”) w naszych lampach sufitowych!

Krok 12: Wizualizacja danych: Excel! Część 1

Wizualizacja danych: Excel! Część 1
Wizualizacja danych: Excel! Część 1
Wizualizacja danych: Excel! Część 1
Wizualizacja danych: Excel! Część 1
Wizualizacja danych: Excel! Część 1
Wizualizacja danych: Excel! Część 1
Wizualizacja danych: Excel! Część 1
Wizualizacja danych: Excel! Część 1

Do poważniejszej analizy danych dostępny jest super fajny (i darmowy!) dodatek do programu Excel o nazwie Data Streamer*, który można pobrać tutaj.

Ten dodatek odczytuje z portu szeregowego, więc możemy użyć dokładnie tej samej techniki kodowania, co drukowanie danych do portu szeregowego, aby uzyskać dane bezpośrednio do Excela.. do cholery!

Jak korzystać z dodatku Data Streamer:

1. Po zainstalowaniu (lub jeśli masz O365), kliknij kartę Data Streamer (z prawej strony) w programie Excel.

2. Podłącz Arduino i kliknij „Podłącz urządzenie”, a następnie wybierz Arduino z menu rozwijanego. (Zdjęcie 1)

3. Kliknij „Rozpocznij dane”, aby rozpocząć zbieranie danych! (Zdjęcie 2) Zobaczysz trzy nowe arkusze: "Wprowadzanie danych", "Wyprowadzanie danych" i "Ustawienia".

Aktualne dane są drukowane w arkuszu Data In. (Zdjęcie 3) Każdy wiersz odpowiada odczytowi czujnika, z najnowszą wartością wydrukowaną w ostatnim wierszu.

Domyślnie otrzymujemy tylko 15 wierszy danych, ale możesz to zmienić, przechodząc do „Ustawienia”. Możemy zebrać do 500 wierszy (limit wynika z przepustowości Excela – w tle dużo się dzieje!).

*Pełne ujawnienie: Chociaż ten samouczek nie jest powiązany, pracuję z zespołem Microsoft Hacking STEM, który opracował ten dodatek.

Krok 13: Wizualizacja danych: Excel! Część 2

Wizualizacja danych: Excel! Część 2
Wizualizacja danych: Excel! Część 2
Wizualizacja danych: Excel! Część 2
Wizualizacja danych: Excel! Część 2
Wizualizacja danych: Excel! Część 2
Wizualizacja danych: Excel! Część 2

4. Dodaj działkę swoich danych! Zrób trochę analizy danych! Wykresy punktowe pokazują, jak odczyty czujników zmieniają się w czasie, co jest tym samym, co widzieliśmy w ploterze szeregowym Arduino.

Aby dodać wykres punktowy:

Przejdź do Wstaw -> Wykresy -> Rozpraszanie. Gdy pojawi się wykres, kliknij go prawym przyciskiem myszy i wybierz „Wybierz dane”, a następnie Dodaj. Chcemy, aby nasze dane były wyświetlane na osi y, z „czasem”* na osi x. Aby to zrobić, kliknij strzałkę obok osi y, przejdź do arkusza Data In i wybierz wszystkie przychodzące dane czujnika (zdjęcie 2).

Możemy również wykonać obliczenia i porównania w Excelu! Aby napisać formułę, kliknij pustą komórkę i wpisz znak równości ("="), a następnie obliczenie, które chcesz wykonać. Istnieje wiele wbudowanych poleceń, takich jak średnia, maksymalna i minimalna.

Aby użyć polecenia, wpisz znak równości, nazwę polecenia i otwarty nawias, a następnie wybierz analizowane dane i zamknij nawiasy (zdjęcie 3)

5. Aby wysłać więcej niż jedną kolumnę danych (czyli więcej niż jeden czujnik), wydrukuj wartości w tym samym wierszu, oddzielone przecinkiem, z ostatnią pustą nową linią, w następujący sposób:

Serial.print(odczyt czujnika1);

Serial.print(", "); Serial.print(odczyt czujnika2); Serial.print(", "); Serial.println();

*Jeśli chcesz, aby rzeczywisty czas znajdował się na osi x, wybierz znacznik czasu w kolumnie A w arkuszu Wejście danych dla wartości osi x na wykresie punktowym. Tak czy inaczej, będziemy widzieć nasze dane, które zmieniają się w czasie.

Krok 14: Idź naprzód i zmierz wszystkie rzeczy

Idź naprzód i zmierz wszystkie rzeczy !!
Idź naprzód i zmierz wszystkie rzeczy !!
Idź naprzód i zmierz wszystkie rzeczy !!
Idź naprzód i zmierz wszystkie rzeczy !!
Idź naprzód i zmierz wszystkie rzeczy !!
Idź naprzód i zmierz wszystkie rzeczy !!

Dobra ludzie, to wszystko! Czas iść na zewnątrz i w górę! Wykorzystaj to jako podstawę do rozpoczęcia odkrywania czujników, kodowania Arduino i analizy danych, aby rozwiązać swoje pytania, ciekawostki i ulubione tajemnice tego wielkiego, pięknego świata.

Pamiętaj: jest wielu ludzi, którzy mogą Ci pomóc, więc zostaw komentarz, jeśli masz pytanie!

Potrzebujesz więcej pomysłów? Oto jak zrobić przełącznik zmiany stanu do noszenia, zasilany energią słoneczną zdalny czujnik temperatury i połączoną z Internetem wagę przemysłową!

Podoba Ci się ten samouczek i chcesz zobaczyć więcej? Wspieraj nasze projekty na Patreon!:D

Zalecana: