Оглавление:

Построение графика интенсивности света с использованием Arduino и Python Arduino Master Library: 5 шагов
Построение графика интенсивности света с использованием Arduino и Python Arduino Master Library: 5 шагов

Видео: Построение графика интенсивности света с использованием Arduino и Python Arduino Master Library: 5 шагов

Видео: Построение графика интенсивности света с использованием Arduino и Python Arduino Master Library: 5 шагов
Видео: Котика ударило током, 10 т. Вольт 2024, Ноябрь
Anonim
График интенсивности света с использованием Arduino и библиотеки Python Arduino Master
График интенсивности света с использованием Arduino и библиотеки Python Arduino Master

Arduino - это экономичный, но очень эффективный и функциональный инструмент, поэтому его программирование на Embedded C делает процесс создания проектов утомительным! Модуль Arduino_Master в Python упрощает это и позволяет нам выполнять вычисления, удалять ненужные значения и строить график для визуального представления данных.

Если вы еще не знаете об этом модуле, установите его с помощью команды pip install Arduino_Master

Не волнуйтесь, если вы не знаете, как использовать этот модуль, перейдите по этой ссылке => Arduino_Master

Однако код этого проекта всегда будет доступен в этом руководстве.

Запасы

Для этого проекта вам понадобится следующее:

  1. Ардуино
  2. Светозависимый резистор (LDR) и
  3. Python 3 установлен на вашем компьютере.

Шаг 1: построение вашей схемы:

Построение вашей схемы
Построение вашей схемы

Мы будем использовать вывод A1 Arduino для получения входных данных. Вы также можете использовать контакты 5V и GND Arduino вместо батареи. Выполните подключение следующим образом:

  1. Подключите один конец LDR к положительному выводу батареи 5 В или к выводу 5 В Arduino.
  2. Подключите другой конец LDR параллельно контакту A1 и отрицательной клемме аккумулятора или контакту GND Arduino.
  3. Используйте резистор, чтобы убедиться, что весь ток не течет на GND, что приведет к тому, что вы не получите достаточно сильный сигнал, чтобы его можно было обнаружить на клемме A1 Arduino. (Я использую резистор 10 кОм).

Шаг 2: Программирование вашего Arduino:

Модуль Arduino_Master использует Serial Monitor Arduino для отправки и получения данных. Преимущество использования этого модуля заключается в том, что после того, как вы запрограммируете свой Arduino, вы можете изменить только программу python для разных проектов, поскольку программирование на python сравнительно проще!

Код:

// Переменная LDR_1 используется для обозначения вывода A1 Arduino.

int LDR_1 = A1;

// Данные, полученные от A1, будут сохранены в LDR_Value_1.

float LDR_Value_1;

Строковый ввод;

установка void ()

{pinMode (LDR_1, ВХОД); // LDR_1 установлен как вход INPUT. Serial.begin (9600); // Скорость передачи данных установлена на 9600.}

пустой цикл ()

{if (Serial.available ()> 0) // если какой-либо ввод доступен в последовательном мониторе, продолжаем. {input = Serial.readString (); // Считываем ввод как строку. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) - коэффициент преобразования для получения значения в вольтах. Serial.println (LDR_Value_1); // Если ввод равен «ДАННЫЕ», то считываем ввод из LDR_1 и распечатываем его на последовательном мониторе. } иначе int i = 0; // если ввод не равен "DATA", ничего не делать! }

}

Шаг 3: Программирование Python для построения графиков данных из Arduino:

Каждый LDR будет иметь свои собственные значения сопротивления, и мы должны помнить, что электронные компоненты не всегда в точности идентичны в работе. Таким образом, сначала мы должны найти напряжение при разной интенсивности света.

Загрузите следующую программу в свою среду разработки Python и запустите ее:

Сделайте это для разной интенсивности света и с помощью графика сделайте вывод, например, если интенсивность меньше 1, в комнате слишком темно. При интенсивности от 1 до 2 в комнате довольно темно. При интенсивности больше 2 свет включается.

# Импорт модуля Arduino_Master

из импорта Arduino_Master *

# сбор данных

data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expected_type = 'num', limit = [0, 5])

# limit установлен на 5, так как мы используем батарею 5V.

# Построение значений

График (данные, stl = 'dark_background', label = 'Light Intensity')

Шаг 4: Заключительная программа по проверке интенсивности света в комнате

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

# Импорт модуля Arduino_Master

from Arduino_Master import # сбор данных data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expected_type = 'num', limit = [0, 5]) #classification data на основе заключения info = для i в диапазоне (len (data)): интенсивность = данные , если интенсивность 1 и интенсивность = 2: info.append ('Light ON') # Построение графика. compGraph (данные, информация, stl = 'dark_background', label1 = 'Интенсивность света', label2 = 'Состояние')

Шаг 5: Результат:

Результат
Результат

Программа займет минуту или две, так как вы читаете 50 мгновенных значений из Arduino.

Если вы хотите ускорить процесс, попробуйте изменить параметр lines функции ardata. Но помните, что чем меньше наблюдений, тем меньше будет качество данных.

Примечание. Если полный график на приведенном выше рисунке не виден, см. График над разделом «Введение».

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