Оглавление:

Использование Arduino для гражданской науки!: 14 шагов (с изображениями)
Использование Arduino для гражданской науки!: 14 шагов (с изображениями)

Видео: Использование Arduino для гражданской науки!: 14 шагов (с изображениями)

Видео: Использование Arduino для гражданской науки!: 14 шагов (с изображениями)
Видео: Как новичку работать с Arduino через Tinkercad? Уроки программирования Ардуино. 2024, Июнь
Anonim
Image
Image
Пссст, в чем разница между гражданской наукой и
Пссст, в чем разница между гражданской наукой и

Наука позволяет нам задавать самые насущные вопросы и исследовать всевозможные диковинки. Приложив некоторые размышления, упорный труд и терпение, мы можем использовать наши исследования, чтобы лучше понять и оценить сложный и красивый мир вокруг нас.

В этом руководстве вы узнаете, как использовать микроконтроллер Arduino (uno), как использовать различные типы датчиков, а также как собирать и визуализировать данные. Попутно построим три проекта: переключатель наклона, датчик температуры и влажности и датчик освещенности!

Уровень сложности: начальный

Время чтения: 20 мин.

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

Шаг 1: Pssst, в чем разница между гражданской наукой и «официальной наукой»?

Самая большая разница в том, что гражданская наука, как я люблю говорить, «волнистая рука», что означает, что существует множество ошибок и неопределенностей и нет строгого процесса их выявления. Из-за этого выводы, сделанные с помощью гражданской науки, гораздо менее точны, чем наука-наука, и на них нельзя полагаться при принятии серьезных / изменяющих жизнь / опасных для жизни заявлений или решений *.

При этом гражданская наука - отличный способ построить фундаментальное понимание всех видов увлекательных научных явлений, и ее достаточно для большинства повседневных приложений.

* Если вы занимаетесь гражданской наукой и обнаружите что-то потенциально опасное (например, высокий уровень свинца в воде), сообщите об этом своему преподавателю (если применимо) и обратитесь за помощью в соответствующие органы и профессионалов.

Шаг 2: что такое Arduino?

Что такое Ардуино?
Что такое Ардуино?
Что такое Ардуино?
Что такое Ардуино?
Что такое Ардуино?
Что такое Ардуино?
Что такое Ардуино?
Что такое Ардуино?

Arduino - это плата микроконтроллера и интегрированная среда разработки («IDE»), что является причудливым способом сказать «программа кодирования». Новичкам я настоятельно рекомендую платы Arduino Uno, потому что они сверхпрочные, надежные и мощные.

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

Конечно, вы можете использовать другие микроконтроллеры для гражданской науки в зависимости от ваших (или ваших учеников) потребностей, способностей и уровня комфорта. Вот обзор микроконтроллеров, который поможет вам решить, что лучше для вас!

Чтобы прошить или запрограммировать плату Arduino, подключите ее через USB, а затем:

1. Выберите тип используемой Arduino в меню «Инструменты» -> «Платы». (Фото 2)

2. Выберите порт (он же, где он подключен к вашему компьютеру). (Фото 3)

3. Нажмите кнопку «Загрузить» и убедитесь, что загрузка завершена. (Фото 4)

Шаг 3. Инструменты и материалы

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

Если вы только начинаете, покупка комплекта - это быстрый и простой способ получить сразу несколько запчастей. Набор, который я использую в этом уроке, - это стартовый комплект Elegoo Arduino. *

Инструменты

  • Ардуино Уно
  • Кабель USB A - B (он же кабель принтера)
  • Провода перемычки

    • 3 мужчин-мужчин
    • 3 мужчин-женщин
  • Макетная плата

    Необязательно, но рекомендуется, чтобы сделать вашу жизнь проще и веселее:)

Материалы

Для проектов, рассматриваемых в этом руководстве, вам потребуются эти части из стартового набора Elegoo Arduino:

  • Переключатель наклона
  • Датчик температуры и влажности DTH11
  • ВЕЛ
  • Резистор 100 Ом

* Полное раскрытие информации: я покупаю эти же комплекты для семинаров, но комплект, используемый в этом уроке, был подарен милыми людьми из Elegoo.

Шаг 4. Какие типы датчиков мы можем использовать?

Какие типы датчиков мы можем использовать?
Какие типы датчиков мы можем использовать?

Планируя научный эксперимент, мы обычно начинаем с вопроса: сколько СО2 растения поглощают за день? Какая сила удара у прыжка? Что такое сознание ??

Основываясь на нашем вопросе, мы можем затем определить, что мы хотим измерить, и провести некоторое исследование, чтобы выяснить, какой датчик мы можем использовать для сбора данных (хотя может быть немного сложно собрать данные для этого последнего вопроса!).

При работе с электроникой существует два основных типа сигналов данных датчиков: цифровой и аналоговый. На фото первые два ряда деталей представляют собой цифровые датчики, а два верхних ряда - аналоговые.

Существует много различных типов цифровых датчиков, и с некоторыми работать сложнее, чем с другими. Выполняя исследования для вашего проекта гражданской науки, всегда проверяйте, как датчик выдает данные (строго говоря), и убедитесь, что вы можете найти (Arduino) библиотеку для этого конкретного датчика.

В трех проектах, рассмотренных в этом руководстве, мы будем использовать два типа цифровых датчиков и один аналоговый датчик. Давайте учимся!

Шаг 5: Цифровые датчики! Часть 1: Легкие

Цифровые датчики! Часть 1: Легкие!
Цифровые датчики! Часть 1: Легкие!
Цифровые датчики! Часть 1: Легкие!
Цифровые датчики! Часть 1: Легкие!

Большинство датчиков, которые вы будете использовать, выводят цифровой сигнал, который является либо включенным, либо выключенным сигналом. * Мы используем двоичные числа для представления этих двух состояний: сигнал включения задается 1 или True, а Off - 0, или Ложь. Если бы мы изобразили, как выглядит двоичный сигнал, это была бы прямоугольная волна, как на фото 2.

Есть некоторые цифровые датчики, такие как переключатели, которые очень легко и просто измерить, потому что либо кнопка нажата, и мы получаем сигнал (1), либо она не нажимается, и у нас нет сигнала (0). Все датчики, изображенные в нижнем ряду первой фотографии, относятся к простым типам включения / выключения. Датчики в верхнем ряду немного сложнее и рассматриваются после нашего первого проекта.

Первые два проекта в этом руководстве научат вас использовать оба типа! Вперед к созданию нашего первого проекта !!

* Вкл. Означает электрический сигнал в виде электрического тока и напряжения. Выкл. Означает отсутствие электрического сигнала!

Шаг 6: Проект 1: Цифровой датчик переключателя наклона

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

Для этого первого проекта давайте воспользуемся переключателем наклона, этим черным цилиндрическим датчиком с двумя ножками! Шаг 1: Вставьте одну ножку переключателя наклона в цифровой контакт 13 Arduino, а другую ножку в контакт GND рядом с контактом 13. Ориентация. не имеет значения.

Шаг 2: Напишите эскиз, который считывает и распечатывает состояние цифрового контакта 13

Или вы можете просто использовать мою!

Если вы только начинаете программировать, прочтите комментарии, чтобы лучше понять, как работает скетч, и попробуйте изменить некоторые вещи, чтобы увидеть, что произойдет! Ломать вещи - это нормально, это отличный способ учиться! Вы всегда можете повторно скачать файл и начать заново:)

Шаг 3: Чтобы увидеть ваши данные в реальном времени, нажмите кнопку Serial Monitor (фото 2)

.. ааа и все! Теперь вы можете использовать переключатель наклона для измерения ориентации! Настройте его, чтобы он звал своего котенка, когда он что-то опрокидывает, или используйте его, чтобы отслеживать, как ветки деревьев двигаются во время шторма! … и, вероятно, между этими двумя крайностями есть и другие приложения.

Шаг 7: Цифровые датчики! Часть 2: ШИМ и последовательная связь

Цифровые датчики! Часть 2: ШИМ и последовательная связь
Цифровые датчики! Часть 2: ШИМ и последовательная связь
Цифровые датчики! Часть 2: ШИМ и последовательная связь
Цифровые датчики! Часть 2: ШИМ и последовательная связь
Цифровые датчики! Часть 2: ШИМ и последовательная связь
Цифровые датчики! Часть 2: ШИМ и последовательная связь

Есть много способов создать более сложные цифровые сигналы! Один метод называется широтно-импульсной модуляцией («ШИМ»), который представляет собой причудливый способ сказать сигнал, который включен в течение определенного времени и выключен в течение определенного времени. Серводвигатели (которые можно использовать для измерения положения) и ультразвуковые датчики являются примерами датчиков, использующих сигналы ШИМ.

Существуют также датчики, которые используют последовательную связь для передачи данных по одному биту или двоичной цифре за раз. Эти датчики требуют некоторого знакомства с чтением таблиц данных и могут быть довольно сложными, если вы только начинаете. К счастью, обычные датчики с последовательным интерфейсом будут иметь библиотеки кода * и примеры программ, чтобы вы могли собрать что-нибудь функциональное. Более подробная информация о протоколах последовательной связи выходит за рамки этого руководства, но вот отличный ресурс по последовательной связи от SparkFun, чтобы узнать больше!

В этом примере проекта воспользуемся датчиком температуры и влажности (DHT11)! Это маленький синий квадрат с отверстиями и 3 булавками.

Для начала нам понадобится пара специальных библиотек для датчика DHT11: библиотека DHT11 и библиотека Unified Sensor Adafruit. Чтобы установить эти библиотеки (и большинство других библиотек Arduino):

Шаг 1. Откройте менеджер библиотек Arduino, выбрав Sketch -> Libraries -> manage Library (Фото 2).

Шаг 2. Установите и активируйте библиотеку DHT, выполнив поиск по запросу «DHT» и нажав «Установить» для «Библиотеки DHT Arduino» (фото 3).

Шаг 3. Установите и активируйте библиотеку Unified Sensor Adafruit, выполнив поиск по запросу «Adafruit Unified Sensor» и нажав «Установить».

Шаг 4: Вставьте библиотеку DHT в открытый эскиз, перейдя в «Скетч -> Библиотеки» и щелкнув «Библиотека DHT Arduino» (фото 4). Это добавит пару новых линий вверху вашего эскиза, что означает, что наш библиотека теперь активна и готова к использованию! (Фото 5)

* Как и ваша любимая местная библиотека, библиотеки кода - это кладезь знаний и тяжелый труд других людей, которые мы можем использовать, чтобы облегчить себе жизнь, ура!

Шаг 8: Проект 2: Цифровой последовательный датчик температуры и влажности

Проект 2: Цифровой последовательный датчик температуры и влажности
Проект 2: Цифровой последовательный датчик температуры и влажности
Проект 2: Цифровой последовательный датчик температуры и влажности
Проект 2: Цифровой последовательный датчик температуры и влажности
Проект 2: Цифровой последовательный датчик температуры и влажности
Проект 2: Цифровой последовательный датчик температуры и влажности
Проект 2: Цифровой последовательный датчик температуры и влажности
Проект 2: Цифровой последовательный датчик температуры и влажности

Возьмите 3 перемычки «папа-мама» из стартового комплекта Elegoo Arduino, и мы готовы к работе!

Шаг 1. Повернув контакты разъема к себе, подключите крайний правый контакт разъема DHT11 к контакту заземления Arduino («GND»).

Шаг 2: Подключите средний контакт заголовка к выходному контакту Arduino 5V.

Шаг 3: Подключите крайний левый вывод заголовка к цифровому выводу 2 Arduino

Шаг 4: Наконец, прочтите библиотеку DHT и попробуйте свои силы в написании скетча! Оооо, вы можете использовать мой или тестовый пример эскиза DHT в Arduino -> Примеры!

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

Шаг 9: Аналоговые датчики

Аналоговые датчики!
Аналоговые датчики!
Аналоговые датчики!
Аналоговые датчики!

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

Для большинства аналоговых датчиков мы указываем мощность датчика, а затем считываем аналоговый сигнал с помощью контактов аналогового входа. Для этого теста мы будем использовать еще более простую установку для измерения напряжения на светодиоде, когда мы светим на него.

* Компьютеры используют цифровые сигналы для хранения и передачи информации. Это связано с тем, что цифровые сигналы легче обнаруживать и они более надежны, поскольку все, о чем нам нужно беспокоиться, это получить сигнал или нет, а не беспокоиться о качестве / точности сигнала.

** Чтобы считать аналоговый сигнал на цифровом устройстве, мы должны использовать аналого-цифровой или АЦП преобразователь, который аппроксимирует аналоговый сигнал, сравнивая входное напряжение с известным напряжением на устройстве, а затем подсчитывая, как долго он требуется для достижения входного напряжения. Для получения дополнительной информации это полезный сайт.

Шаг 10: Проект 3: Светодиод как датчик света

Проект 3: Светодиод как датчик света!
Проект 3: Светодиод как датчик света!
Проект 3: Светодиод как датчик света!
Проект 3: Светодиод как датчик света!

Возьмите светодиод (любого цвета, кроме белого), резистор на 100 Ом и 2 соединительных кабеля. Ах да, макет!

Шаг 1: Вставьте светодиод в макетную плату так, чтобы более длинная ножка находилась справа.

Шаг 2: Подключите перемычку от аналогового вывода A0 Arduino к более длинной ножке светодиода

Шаг 3: Подключите резистор между более короткой ножкой светодиода и отрицательной шиной питания макетной платы (рядом с синей линией).

Шаг 4: Подключите контакт Arduino GND к отрицательной шине питания на макетной плате.

Шаг 5: Напишите эскиз, который считывается на аналоговом выводе A0 и распечатывается на последовательном мониторе

Вот пример кода для начала.

Шаг 11: Визуализация данных: IDE Arduino

Визуализация данных: IDE Arduino!
Визуализация данных: IDE Arduino!
Визуализация данных: IDE Arduino!
Визуализация данных: IDE Arduino!

IDE Arduino поставляется со встроенными инструментами для визуализации данных. Мы уже изучили основы Serial Monitor, который позволяет нам печатать значения датчиков. Если вы хотите сохранить и проанализировать свои данные, скопируйте вывод прямо из Serial Monitor и вставьте в текстовый редактор, электронную таблицу или другой инструмент анализа данных.

Второй инструмент, который мы можем использовать для просмотра наших данных в программе Arduino, - это Serial Plotter, визуальная версия (также известная как график) Serial Monitor. Чтобы использовать последовательный плоттер, перейдите в Инструменты последовательного плоттера. График на Фото 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) Вы увидите, что открываются три новых листа: «Данные на входе», «Данные на выходе» и «Настройки».

Текущие данные печатаются на листе данных. (Фото 3) Каждая строка соответствует показаниям датчика, причем самое новое значение печатается в последней строке.

По умолчанию мы получаем только 15 строк данных, но вы можете изменить это, перейдя в «Настройки». Мы можем собрать до 500 строк (ограничение связано с пропускной способностью Excel - в фоновом режиме происходит много всего!).

* Полное раскрытие информации: хотя это руководство не является аффилированным лицом, я работаю с командой Microsoft Hacking STEM, которая разработала эту надстройку.

Шаг 13: Визуализация данных: Excel! Часть 2

Визуализация данных: Excel! Часть 2
Визуализация данных: Excel! Часть 2
Визуализация данных: Excel! Часть 2
Визуализация данных: Excel! Часть 2
Визуализация данных: Excel! Часть 2
Визуализация данных: Excel! Часть 2

4. Добавьте график ваших данных! Проведите анализ данных! Диаграммы разброса показывают, как показания датчика меняются со временем, что мы видели в последовательном плоттере Arduino.

Чтобы добавить диаграмму рассеяния:

Зайдите в Insert -> Charts -> Scatter. Когда появится график, щелкните его правой кнопкой мыши и выберите «Выбрать данные», затем «Добавить». Мы хотим, чтобы наши данные отображались на оси y, а «время» * - на оси x. Для этого щелкните стрелку рядом с осью Y, перейдите на лист «Входящие данные» и выберите все входящие данные датчиков (фото 2).

Мы также можем проводить расчеты и сравнения в Excel! Чтобы написать формулу, щелкните пустую ячейку и введите знак равенства ("="), а затем вычисление, которое вы хотите выполнить. Есть множество встроенных команд, таких как среднее, максимальное и минимальное.

Чтобы использовать команду, введите знак равенства, имя команды и открытую скобку, затем выберите данные, которые вы анализируете, и закройте скобки (фото 3).

5. Чтобы отправить более одного столбца данных (или более одного датчика), напечатайте значения в одной строке, разделенные запятой, с последней пустой новой строкой, например:

Serial.print (sensorReading1); серийный.

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

* Если вы хотите, чтобы фактическое время находилось на оси x, выберите отметку времени в столбце A на листе входных данных для значений оси x на диаграмме разброса. В любом случае, мы увидим, как наши данные меняются с течением времени.

Шаг 14: Идите вперед и измерьте все

Идите вперед и измерьте все!
Идите вперед и измерьте все!
Идите вперед и измерьте все!
Идите вперед и измерьте все!
Идите вперед и измерьте все!
Идите вперед и измерьте все!

Ладно, ребята, вот и все! Пора идти вперед и вверх! Используйте это как основу, чтобы начать изучать датчики, кодирование Arduino и анализ данных, чтобы решать свои вопросы, любопытства и любимые загадки в этом большом прекрасном мире.

Помните: есть много людей, которые могут помочь вам на этом пути, поэтому, пожалуйста, оставьте комментарий, если у вас есть вопрос!

Нужны еще идеи? Вот как сделать переносной переключатель изменения состояния, удаленный датчик температуры на солнечной энергии и промышленные весы с подключением к Интернету!

Понравился этот урок и вы хотите увидеть больше? Поддержите наши проекты на Patreon!: D

Рекомендуемые: