Съдържание:

Използване на Arduino за Citizen Science!: 14 стъпки (със снимки)
Използване на Arduino за Citizen Science!: 14 стъпки (със снимки)

Видео: Използване на Arduino за Citizen Science!: 14 стъпки (със снимки)

Видео: Използване на Arduino за Citizen Science!: 14 стъпки (със снимки)
Видео: LDmicro 11: Serial LCD Temperature Controller (Microcontroller PLC Ladder Programming with LDmicro) 2024, Юни
Anonim
Image
Image
Pssst, Каква е разликата между Citizen Science и
Pssst, Каква е разликата между Citizen Science и

Науката ни позволява да задаваме най -належащите си въпроси и да изследваме всякакви любопитства. С известна мисъл, упорит труд и търпение можем да използваме нашите изследвания, за да изградим по -добро разбиране и оценяване на сложния и красив свят около нас.

Този урок ще ви научи как да използвате микроконтролер Arduino (uno), как да използвате различни видове сензори и как да събирате и визуализирате данни. По пътя ще изградим три проекта: превключвател за накланяне, сензор за температура и влажност и сензор за светлина!

Ниво на трудност: Начинаещ

Време за четене: 20 мин

Време за изграждане: Зависи от вашия проект! (Проектите в този урок отнемат около 15 - 20 минути)

Стъпка 1: Pssst, Каква е разликата между Citizen Science и „официалната наука“?

Най -голямата разлика е, че науката за гражданите е, както обичам да казвам, „ръчно вълнообразна“, което означава, че има много грешки и несигурности и няма строг процес за тяхното идентифициране. Поради това заключенията, постигнати чрез гражданската наука, са много по-малко точни от научните науки и не бива да се разчита на тях за вземане на сериозни/променящи живота/животозастрашаващи твърдения или решения.*

Като се има предвид това, гражданската наука е чудесен начин за изграждане на фундаментално разбиране за всякакви завладяващи научни явления и е достатъчно добър за повечето ежедневни приложения.

*Ако се занимавате с гражданска наука и откриете нещо потенциално опасно (например високи нива на олово във вода), информирайте своя преподавател (ако е приложимо) и се свържете със съответните органи и професионалисти за помощ.

Стъпка 2: Какво е Arduino ??

Какво е Arduino ??
Какво е Arduino ??
Какво е Arduino ??
Какво е Arduino ??
Какво е Arduino ??
Какво е Arduino ??
Какво е Arduino ??
Какво е Arduino ??

Arduino е платка за микроконтролер и интегрирана среда за развитие ("IDE"), което е фантастичен начин да се каже "програма за кодиране". За начинаещи силно препоръчвам дъските Arduino Uno, защото са супер здрави, надеждни и мощни.

Платките Arduino са добър избор за граждански научни проекти, тъй като имат много входни щифтове за четене както в аналогови, така и в цифрови сензори (ще разберем повече за това по -късно).

Разбира се, можете да използвате други микроконтролери за граждански науки в зависимост от вашите (или вашите ученици) нужди, способности и ниво на комфорт. Ето преглед на микроконтролерите, които ще ви помогнат да решите кое е най -доброто за вас!

За да мигате или да програмирате платка Arduino, включете я през USB, след което:

1. Изберете типа Arduino, който използвате под Инструменти -> Платки. (Снимка 2)

2. Изберете порта (известен също като мястото, където е свързан към вашия компютър). (Снимка 3)

3. Щракнете върху бутона Качване и проверете дали качването завършва. (Снимка 4)

Стъпка 3: Инструменти и материали

Инструменти и материали
Инструменти и материали

Ако тепърва започвате, получаването на комплект е бърз и лесен начин да получите куп части наведнъж. Комплектът, който използвам в този урок, е Elegoo Arduino Starter Kit.*

Инструменти

  • Arduino Uno
  • USB кабел от A до B (известен още като кабел за принтер)
  • Джъмперни проводници

    • 3 мъжки към мъжки
    • 3 мъжки към женски
  • Платка

    По избор, но препоръчително да направи живота ви по -лесен и по -забавен:)

Материали

За проектите, обхванати в този урок, ще ви трябват тези части от Stargo Kit на Elegoo Arduino:

  • Превключвател за накланяне
  • DTH11 Сензор за температура и влажност
  • LED
  • Резистор 100 ома

*Пълно разкриване: Купувам същите комплекти за работилници, но комплектът, използван в този урок, е дарен от прекрасните хора в Elegoo.

Стъпка 4: Какви сензори можем да използваме?

Какви сензори можем да използваме?
Какви сензори можем да използваме?

Когато проектираме научен експеримент, обикновено започваме с въпрос: Колко CO2 поемат растенията за един ден? Каква е силата на удара при скок? Какво е съзнание ??

Въз основа на нашия въпрос можем след това да идентифицираме какво искаме да измерим и да направим известно проучване, за да разберем какъв сензор можем да използваме за събиране на данни (въпреки че може да е малко трудно да съберем данни за този последен въпрос!).

Когато работите с електроника, има два основни типа сигнали от сензорни данни: цифров и аналогов. На снимката първите два реда части са цифрови сензори, докато горните два реда са аналогови.

Има много различни видове цифрови сензори и някои са по -предизвикателни за работа от други. Когато правите изследвания за вашия граждански научен проект, винаги проверявайте как сензорът извежда данни (srsly tho) и се уверете, че можете да намерите (Arduino) библиотека за този конкретен сензор.

В трите проекта, обхванати в този урок, ще използваме два типа цифрови сензори и един аналогов сензор. Нека се научим!

Стъпка 5: Цифрови сензори! Част 1: Лесните

Цифрови сензори! Част 1: Лесните!
Цифрови сензори! Част 1: Лесните!
Цифрови сензори! Част 1: Лесните!
Цифрови сензори! Част 1: Лесните!

Повечето сензори, които ще използвате, извеждат цифров сигнал, който е или включен, или изключен.* Използваме двоични числа, за да представим тези две състояния: сигнал за включване се дава с 1 или True, докато Off е 0, или False. Ако трябва да нарисуваме картина на това как изглежда двоичен сигнал, това би било квадратна вълна като тази на снимка 2.

Има някои цифрови сензори, като ключове, които са супер лесни и ясни за измерване, защото или бутонът е натиснат и получаваме сигнал (1), или не е натиснат и нямаме сигнал (0). Сензорите, изобразени в долния ред на първата снимка, са прости типове включване/изключване. Сензорите в горния ред са малко по -сложни и са покрити след първия ни проект.

Първите два проекта в този урок ще ви научат как да използвате и двата типа! Напред за изграждане на първия ни проект !!

*Включено означава електрически сигнал под формата на електрически ток и напрежение. Изключено означава, че няма електрически сигнал!

Стъпка 6: Проект 1: Цифров сензор с превключвател за накланяне

Проект 1: Цифров сензор с превключвател за накланяне
Проект 1: Цифров сензор с превключвател за накланяне
Проект 1: Цифров сензор с превключвател за накланяне
Проект 1: Цифров сензор с превключвател за накланяне
Проект 1: Цифров сензор с превключвател за накланяне
Проект 1: Цифров сензор с превключвател за накланяне

За този първи проект, нека използваме превключвател за накланяне, този черен цилиндричен сензор с два крака! няма значение.

Стъпка 2: Напишете скица, която чете и отпечатва състоянието на Digital Pin 13

Или можете просто да използвате моя!

Ако тепърва започвате да кодирате, прочетете коментарите, за да разберете по -добре как работи скицата и опитайте да промените някои неща, за да видите какво се случва! Добре е да разбивате нещата, това е чудесен начин да се научите! Винаги можете да изтеглите отново файла и да започнете отначало:)

Стъпка 3: За да видите вашите данни на живо, щракнете върху бутона Serial Monitor (снимка 2)

.. ааа и това е! Вече можете да използвате превключвателя за наклон за измерване на ориентацията! Настройте го, за да извикате котето си, когато преобърне нещо, или го използвайте, за да следите как се движат клоните на дърветата по време на бури!.. и вероятно има други приложения между тези две крайности.

Стъпка 7: Цифрови сензори! Част 2: ШИМ и серийна комуникация

Цифрови сензори! Част 2: ШИМ и серийна комуникация
Цифрови сензори! Част 2: ШИМ и серийна комуникация
Цифрови сензори! Част 2: ШИМ и серийна комуникация
Цифрови сензори! Част 2: ШИМ и серийна комуникация
Цифрови сензори! Част 2: ШИМ и серийна комуникация
Цифрови сензори! Част 2: ШИМ и серийна комуникация

Има много начини за създаване на по -сложни цифрови сигнали! Един метод се нарича Pulse Width Modulation ("PWM"), който е фантастичен начин да се каже сигнал, който е включен за определен период от време и изключен за определен период от време. Сервомоторите (които могат да се използват за измерване на позицията) и ултразвуковите сензори са примери за сензори, които използват ШИМ сигнали.

Има и сензори, които използват серийна комуникация за изпращане на данни по един бит или двоична цифра наведнъж. Тези сензори изискват известно запознаване с четенето на технически листове и могат да бъдат доста трудни, ако тепърва започвате. За щастие, обикновените серийни сензори ще имат библиотеки с кодове* и примерни програми, от които можете да изтеглите, така че все още можете да комбинирате нещо функционално. Повече подробности за протоколите за серийна комуникация са извън обхвата на този урок, но тук е чудесен ресурс за серийната комуникация от SparkFun, за да научите повече!

За този примерен проект, нека използваме датчика за температура и влажност (DHT11)! Това е малък син квадрат с дупки и 3 щифта.

Първо ще ни трябват няколко специални библиотеки за сензора DHT11: библиотеката DHT11 и библиотеката Adafruit Unified Sensor. За да инсталирате тези библиотеки (и повечето други библиотеки на Arduino):

Стъпка 1: Отворете библиотечния мениджър на Arduino, като отидете на Sketch -> Библиотеки -> управление на библиотеката (Снимка 2)

Стъпка 2: Инсталирайте и активирайте DHT библиотеката, като потърсите „DHT“и след това щракнете върху Инсталиране за „DHT Arduino Library“(Снимка 3)

Стъпка 3: Инсталирайте и активирайте библиотеката Adafruit Unified Sensor, като потърсите „Adafruit Unified Sensor“и щракнете върху install.

Стъпка 4: Вмъкнете DHT библиотеката във вашата отворена скица, като отидете на Sketch -> Libraries и щракнете върху „DHT Arduino Library. (Снимка 4) Това ще вмъкне няколко нови реда в горната част на вашата скица, което означава, че нашата библиотеката вече е активна и готова за използване! (Снимка 5)

*Точно като любимата ви местна библиотека, библиотеките с кодове са богатство от знания и упорита работа на други хора, които можем да използваме, за да улесним живота си, да!

Стъпка 8: Проект 2: Цифров сериен сензор за температура и влажност

Проект 2: Цифров сериен сензор за температура и влажност
Проект 2: Цифров сериен сензор за температура и влажност
Проект 2: Цифров сериен сензор за температура и влажност
Проект 2: Цифров сериен сензор за температура и влажност
Проект 2: Цифров сериен сензор за температура и влажност
Проект 2: Цифров сериен сензор за температура и влажност
Проект 2: Цифров сериен сензор за температура и влажност
Проект 2: Цифров сериен сензор за температура и влажност

Вземете 3 проводника от мъжки към женски от стартовия комплект Elegoo Arduino и ние сме готови!

Стъпка 1: С щифтовете на заглавката обърнати към вас, свържете най -десния щифт на заглавката на DHT11 към щифт за заземяване на Arduino ("GND").

Стъпка 2: Свържете средния щифт на заглавката към изходния щифт на Arduino 5V.

Стъпка 3: Свържете най -левия щифт на заглавката към Arduino Digital Pin 2

Стъпка 4: Накрая прочетете DHT библиотеката и опитайте да напишете скица! Ооо, можете да използвате моя или DHT примерна скица в Arduino -> Примери!

Когато го стартирате, излезте и измервайте температурата и влажността на всички неща!.. Като дъх на животно, оранжерия или любимото ви място за катерене по различно време на годината, за да намерите * перфектната * изпращаща температура.

Стъпка 9: Аналогови сензори

Аналогови сензори!
Аналогови сензори!
Аналогови сензори!
Аналогови сензори!

След трудното потапяне в цифровите сензори, аналоговите сензори могат да изглеждат като бриз! Аналоговите сигнали са непрекъснат сигнал, както е показано на втората снимка. По -голямата част от физическия свят съществува в аналогов режим (например температура, възраст, налягане и т.н.), но тъй като компютрите са цифрови*, повечето сензори ще извеждат цифров сигнал. Някои микроконтролери, като платките Arduino, също могат да четат в аналогови сигнали **.

За повечето аналогови сензори ние даваме мощност на сензора, след което отчитаме аналоговия сигнал, използвайки щифтовете за аналогов вход. За този тест ще използваме още по -опростена настройка за измерване на напрежението в светодиода, когато го осветим.

*Компютрите използват цифрови сигнали за съхраняване и предаване на информация. Това е така, защото цифровите сигнали са по -лесни за откриване и са по -надеждни, тъй като всичко, за което трябва да се притесняваме, е да получим или не сигнал, а не да се притесняваме за качеството/точността на сигнала.

** За да прочетете аналогов сигнал на цифрово устройство, трябва да използваме аналогово-цифров или ADC конвертор, който приближава аналоговия сигнал, като сравнява входа с известно напрежение на устройството, след което брои колко дълго необходими за достигане на входното напрежение. За повече информация това е полезен сайт.

Стъпка 10: Проект 3: LED като светлинен сензор

Проект 3: LED като светлинен сензор!
Проект 3: LED като светлинен сензор!
Проект 3: LED като светлинен сензор!
Проект 3: LED като светлинен сензор!

Вземете светодиод (всеки цвят с изключение на бял), резистор от 100 ома и 2 джъмперни кабела. О, и макет!

Стъпка 1: Поставете светодиода в дъската с по -дългия крак от дясната страна.

Стъпка 2: Свържете джъмпер проводник от Arduino Analog Pin A0 и по -дългия LED крак

Стъпка 3: Свържете резистора между по -късия LED крак и отрицателната захранваща шина на платката (до синята линия).

Стъпка 4: Свържете щифта Arduino GND към отрицателната шина за захранване на макета.

Стъпка 5: Напишете скица, която се чете в Analog Pin A0 и отпечатва на серийния монитор

Ето примерен код, за да започнете.

Стъпка 11: Визуализиране на данни: Arduino IDE

Визуализиране на данни: Arduino IDE!
Визуализиране на данни: Arduino IDE!
Визуализиране на данни: Arduino IDE!
Визуализиране на данни: Arduino IDE!

Arduino IDE идва с вградени инструменти за визуализиране на данни. Вече проучихме основите на серийния монитор, който ни позволява да отпечатваме стойностите на сензора. Ако искате да запазите и анализирате данните си, копирайте изхода директно от серийния монитор и го поставете в текстов редактор, електронна таблица или друг инструмент за анализ на данни.

Вторият инструмент, който можем да използваме, за да видим данните си в програмата Arduino, е серийният плотер, визуална версия (известна още като графика) на серийния монитор. За да използвате серийния плотер, отидете на Инструменти Сериен плотер. Графиката на снимка 2 е изходът на светодиода като светлинен сензор от проект 3!*

Сюжетът ще се мащабира автоматично и докато използвате Serial.println () за вашите сензори, той също ще отпечатва всички ваши сензори в различни цветове. Ура! Това е!

*Ако погледнете в края, има супер интересен вълнов модел, който вероятно се дължи на променливия ток ("AC") в нашите светлини!

Стъпка 12: Визуализиране на данни: Excel! Част 1

Визуализиране на данни: Excel! Част 1
Визуализиране на данни: Excel! Част 1
Визуализиране на данни: Excel! Част 1
Визуализиране на данни: Excel! Част 1
Визуализиране на данни: Excel! Част 1
Визуализиране на данни: Excel! Част 1
Визуализиране на данни: Excel! Част 1
Визуализиране на данни: Excel! Част 1

За по-сериозен анализ на данни има супер готина (и безплатна!) Добавка за Excel, наречена Data Streamer*, която можете да изтеглите тук.

Тази добавка чете от серийния порт, така че можем да използваме точно същата техника на кодиране на отпечатване на данни към сериен, за да получим данни директно в Excel.. по дяволите да !!

Как да използвате добавката Data Streamer:

1. След като го инсталирате (или ако имате O365), щракнете върху раздела Data Streamer (най -вдясно) в Excel.

2. Включете вашия Arduino и кликнете върху „Свързване на устройство“, след което изберете Arduino от падащото меню. (Снимка 1)

3. Щракнете върху „Стартиране на данни“, за да започнете събирането на данни! (Снимка 2) Ще видите, че се отварят три нови листа: „Data In“, „Data Out“и „Settings“.

Активните данни се отпечатват в листа Data In. (Снимка 3) Всеки ред съответства на показанията на сензора, като най -новата стойност е отпечатана в последния ред.

По подразбиране получаваме само 15 реда данни, но можете да промените това, като отидете в „Настройки“. Можем да съберем до 500 реда (ограничението се дължи на честотната лента на Excel - във фонов режим се случва много!).

*Пълно разкриване: Въпреки че този урок не е свързан, аз работя с екипа на Microsoft Hacking STEM, който разработи тази добавка.

Стъпка 13: Визуализиране на данни: Excel! Част 2

Визуализиране на данни: Excel! Част 2
Визуализиране на данни: Excel! Част 2
Визуализиране на данни: Excel! Част 2
Визуализиране на данни: Excel! Част 2
Визуализиране на данни: Excel! Част 2
Визуализиране на данни: Excel! Част 2

4. Добавете парцел от вашите данни! Направете анализ на данните! Скатерните графики ви показват как показанията на сензора се променят с течение на времето, което е същото, което видяхме в серийния плотер на Arduino.

За да добавите Scatter Plot:

Отидете на Вмъкване -> Диаграми -> Скатер. Когато графиката се появи, щракнете с десния бутон върху нея и изберете „Избор на данни“, след което Добавяне. Искаме нашите данни да се показват на оста y, с "време"* на оста x. За да направите това, щракнете върху стрелката до оста y, отидете на листа Data In и изберете всички входящи сензорни данни (Снимка 2).

Също така можем да правим изчисления и сравнения в Excel! За да напишете формула, щракнете върху празна клетка и въведете знак за равенство ("="), след това изчислението, което искате да направите. Има много вградени команди като средна, максимална и минимална.

За да използвате команда, въведете знака за равенство, името на командата и отворена скоба, след това изберете данните, които анализирате, и затворете скобите (Снимка 3)

5. За да изпратите повече от една колона с данни (AKA повече от един сензор), отпечатайте стойностите на същия ред, разделени със запетая, с последен празен нов ред, като този:

Serial.print (sensorReading1);

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

*Ако искате действителното време да е по оста x, изберете времевата отметка в колона А на листа с данни за стойностите на оста x във вашия график за разсейване. Така или иначе, ще видим данните си, тъй като се променят с течение на времето.

Стъпка 14: Продължете напред и измерете всички неща

Продължете напред и измерете всички неща !!
Продължете напред и измерете всички неща !!
Продължете напред и измерете всички неща !!
Продължете напред и измерете всички неща !!
Продължете напред и измерете всички неща !!
Продължете напред и измерете всички неща !!

Добре хора, това е всичко! Време е да вървим навън и нагоре! Използвайте това като основа, за да започнете да изследвате сензори, кодиране на Arduino и анализ на данни, за да се справите с вашите въпроси, любопитства и любими мистерии в този голям, красив свят.

Запомнете: има много хора, които да ви помогнат по пътя, така че, моля, оставете коментар, ако имате въпрос!

Нуждаете се от още идеи? Ето как да направите превключвател за промяна на състоянието на носене, дистанционен температурен сензор със слънчева енергия и индустриален мащаб, свързан с интернет!

Харесвате този урок и искате да видите повече? Подкрепете нашите проекти на Patreon!:Д

Препоръчано: