Spisu treści:
- Krok 1: Pssst, jaka jest różnica między nauką obywatelską a „nauką oficjalną”?
- Krok 2: Co to jest Arduino?
- Krok 3: Narzędzia i materiały
- Krok 4: Jakich rodzajów czujników możemy używać?
- Krok 5: Czujniki cyfrowe! Część 1: łatwe
- Krok 6: Projekt 1: Cyfrowy czujnik przechyłu
- Krok 7: Czujniki cyfrowe! Część 2: PWM i komunikacja szeregowa
- Krok 8: Projekt 2: Cyfrowy czujnik szeregowy temperatury i wilgotności
- Krok 9: Czujniki analogowe
- Krok 10: Projekt 3: LED jako czujnik światła
- Krok 11: Wizualizacja danych: Arduino IDE
- Krok 12: Wizualizacja danych: Excel! Część 1
- Krok 13: Wizualizacja danych: Excel! Część 2
- Krok 14: Idź naprzód i zmierz wszystkie rzeczy
Wideo: Używanie Arduino do nauki obywatelskiej!: 14 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
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?
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
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ć?
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
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
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
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
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
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
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
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
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
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
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:
Używanie Pythona do nauki układów klawiatury innych niż angielski: 8 kroków
Używanie Pythona do nauki układów klawiatury innych niż angielski: Cześć, jestem Julien! Jestem studentem informatyki i dzisiaj pokażę Ci, jak używać Pythona, aby nauczyć się układu klawiatury w języku innym niż angielski. W dzisiejszych czasach dużo nauki języków odbywa się online, a jedna rzecz, którą ludzie mogą zrozumieć
HeadBot – samobalansujący robot do nauki i pomocy w zakresie STEM: 7 kroków (ze zdjęciami)
HeadBot – samobalansujący robot do uczenia się i docierania do przedmiotów STEM: Headbot – wysoki na dwie stopy, samobalansujący robot – jest pomysłem South Eugene Robotics Team (SERT, FRC 2521), konkurencyjnego zespołu robotyki szkół średnich w PIERWSZEJ Konkurs robotyki z Eugene w stanie Oregon. Ten popularny robot terenowy sprawia, że re
Crazy Circuits: system nauki elektroniki typu open source: 8 kroków (ze zdjęciami)
Crazy Circuits: system nauki elektroniki typu open source: rynek edukacyjny i domowy jest zalany modułowymi systemami „uczenia się” elektroniki przeznaczonymi do nauczania dzieci i dorosłych kluczowych pojęć STEM i STEAM. Produkty takie jak LittleBits czy Snapcircuits zdają się dominować w każdym przewodniku po prezentach świątecznych lub blogu dla rodziców
Obwód Learn NANO: Jedna płytka drukowana. Łatwe do nauki. Nieskończone możliwości.: 12 kroków (ze zdjęciami)
Obwód Learn NANO: Jedna płytka drukowana. Łatwe do nauki. Nieskończone możliwości.: Rozpoczęcie pracy w świecie elektroniki i robotyki może na początku być dość trudne. Na początku jest wiele rzeczy, których należy się nauczyć (projektowanie obwodów, lutowanie, programowanie, dobór odpowiednich elementów elektronicznych itp.) i gdy coś pójdzie nie tak
Roomblock: platforma do nauki nawigacji ROS z Roomba, Raspberry Pi i RPLIDAR: 9 kroków (ze zdjęciami)
Roomblock: platforma do nauki nawigacji ROS z Roomba, Raspberry Pi i RPLIDAR: Co to jest? to platforma robota składająca się z Roomby, Raspberry Pi 2, czujnika laserowego (RPLIDAR) i mobilnej baterii. Ramkę montażową można wykonać na drukarkach 3D. System nawigacji ROS umożliwia wykonanie mapy pomieszczeń i korzystanie z