Подключение дисплея к ардуино уно: LCD 1602 подключение к Ардуино по i2c

Содержание

Подключение TFT ЖК дисплея к Arduino Uno – полное руководство

В этой статье мы рассмотрим подключение TFT ЖК дисплея (TFT LCD Shield) диагональю 2.4 дюйма, выполненного в виде шилда (расширения), к плате Arduino Uno. С помощью этого цветного ЖК дисплея TFT типа мы можем отображать символы, строки, блоки, изображения и т.д. Также мы можем использовать этот TFT Shield в различных устройствах на основе Arduino: охранные системы, автоматизация дома, игры и др.

Подключить TFT ЖК дисплей к плате Arduino достаточно просто. Нам будут необходимы плата Arduino, TFT Shield (дисплей) с диагональю 2.4 дюйма и библиотека Arduino IDE & TFT. В интернете можно найти много драйверов для TFT Shield’ов Arduino, но различные TFT ЖК дисплеи имеют различные встроенные драйверы. Таким образом, сначала необходимо идентифицировать драйвер TFT ЖК дисплея и затем установить подходящую библиотеку для него. В этом проекте мы будем использовать TFT ЖК дисплей (шилд) с драйвером ili9341.

Далее в статье представлена ссылка для скачивания необходимой библиотеки для этого драйвера (дисплея). Также, если интересно, можете прочитать статью про подключение обычного ЖК дисплея к плате Arduino.

Необходимые компоненты

Аппаратное обеспечение

  1. Плата Arduino Uno (купить на AliExpress).
  2. 2.4” TFT LCD display Shield (шилд TFT ЖК дисплея) (купить на AliExpress).
  3. USB кабель.

Программное обеспечение

Arduino IDE
TFT библиотека для Arduino (spfd5408)

Работа схемы

Вам в этом случае необходимо только вставить TFT Shield поверх платы Arduino как показано на рисунке. Данный TFT Shield совместим с Arduino UNO и Arduino mega.

Установка TFT library (библиотеки) в среду Arduino IDE

Шаг 1: Скачайте TFT library для Arduino по приведенной ссылке сделайте ее zip архивом (если она таковым не является): https://github.com/JoaoLopesF/SPFD5408.

Шаг 2: Скопируйте этот архив с библиотекой в папку библиотек Arduino в Program Files.

Шаг 3: Откройте Arduino IDE и выберите пункт меню Sketch -> Include Library -> Add .ZIP Library.

Затем откройте папку библиотек Arduino в Program Files (My Computer -> C: Drive -> Program Files -> Arduino -> libraries), куда вы скопировали zip архив с необходимой библиотекой на шаге 2 и выберите и откройте в ней заархивированную библиотеку SPFD5408-Master.

После открытия библиотеки SPFD5408 Master вы увидите что она установилась в Arduino IDE.

Шаг 4: Теперь в Arduino IDE выберите File -> Example -> SPFD5408-master -> spfd5408_graphictest. Откройте его, скомпилируйте и загрузите в плату Arduino.

Вы увидите результаты работы программы на TFT ЖК дисплее. Вы можете изменять этот файл по своему желанию чтобы он выполнял нужные вам задачи.

Примечание: аналогичные шаги можно использовать чтобы установить любую другую библиотеку в программную среду Arduino IDE.

Видео, демонстрирующее работу проекта

Загрузка… 5 566 просмотров

Подключение OLED l2C дисплея к Arduino UNO

#include <Wire.h>

#include <Arduino.h>

 

long speed[] = {

  50, 100, 200, 250, 400, 500, 800 };

const int speeds = sizeof(speed)/sizeof(speed[0]);

 

#define RESTORE_LATENCY  5    

bool delayFlag = false;

 

bool printAll = true;

bool header = true;

 

enum states {

  STOP, ONCE, CONT, HELP };

states state = STOP;

 

uint32_t startScan;

uint32_t stopScan;

 

void setup()

{

  Serial.begin(115200);

  Wire.begin();

  displayHelp();

}

 

 

void loop()

{

  switch (getCommand())

  {

  case ‘s’:

    state = ONCE;

    break;

  case ‘c’:

    state = CONT;

    break;

  case ‘d’:

    delayFlag = !delayFlag;

    Serial. print(F(«<delay=»));

    Serial.println(delayFlag?F(«5>»):F(«0>»));

    break;

  case ‘e’:

 

    break;

  case ‘h’:

    header = !header;

    Serial.print(F(«<header=»));

    Serial.println(header?F(«yes>»):F(«no>»));

    break;

  case ‘?’:

    state = HELP;

    break;

  case ‘p’:

    printAll = !printAll;

    Serial.print(F(«<print=»));

    Serial.println(printAll?F(«all>»):F(«found>»));

    break;

  case ‘q’:

    state = HELP;

    break;

  default:

    break;

  }

 

  switch(state)

  {

  case ONCE:

    I2Cscan();

    state = HELP;

    break;

  case CONT:

    I2Cscan();

    delay(1000);

    break;    

  case HELP:

    displayHelp();

    state = STOP;

    break;

  case STOP:

    break;

  default:

    break;

  }

}

 

char getCommand()

{

  char c = ‘\0’;

  if (Serial. available())

  {

    c = Serial.read();

  }

  return c;

}

 

void displayHelp()

{

  Serial.println(F(«\nArduino I2C Scanner — 0.1.03\n»));

  Serial.println(F(«\ts = single scan»));

  Serial.println(F(«\tc = continuous scan — 1 second delay»));

  Serial.println(F(«\tq = quit continuous scan»));

  Serial.println(F(«\td = toggle latency delay between successful tests.»));

  Serial.println(F(«\tp = toggle printAll — printFound.»));

  Serial.println(F(«\th = toggle header — noHeader.»));

  Serial.println(F(«\t? = help — this page»));

  Serial.println();

}

 

 

void I2Cscan()

{

  startScan = millis();

  uint8_t count = 0;

 

  if (header)

  {

    Serial.print(F(«TIME\tDEC\tHEX\t»));

    for (uint8_t s = 0; s < speeds; s++)

    {

      Serial.print(F(«\t»));

      Serial.print(speed[s]);

    }

    Serial. println(F(«\t[KHz]»));

    for (uint8_t s = 0; s < speeds + 5; s++)

    {

      Serial.print(F(«———«));

    }

    Serial.println();

  }

  for (uint8_t address = 8; address < 120; address++)

  {

    bool printLine = printAll;

    bool found[speeds];

    bool fnd = false;

 

    for (uint8_t s = 0; s < speeds ; s++)

    {

      TWBR = (F_CPU/(speed[s]*1000) — 16)/2;

      Wire.beginTransmission (address);

      found[s] = (Wire.endTransmission () == 0);

      fnd |= found[s];

      // give device 5 millis

      if (fnd && delayFlag) delay(RESTORE_LATENCY);

    }

 

    if (fnd) count++;

    printLine |= fnd;

 

    if (printLine)

    {

      Serial.print(millis());

      Serial.print(F(«\t»));

      Serial.print(address, DEC);

      Serial.print(F(«\t0x»));

      Serial.print(address, HEX);

      Serial. print(F(«\t»));

 

      for (uint8_t s = 0; s < speeds ; s++)

      {

        Serial.print(F(«\t»));

        Serial.print(found[s]? F(«V»):F(«.»));

      }

      Serial.println();

    }

  }

 

  stopScan = millis();

  if (header)

  {

    Serial.println();

    Serial.print(count);

    Serial.print(F(» devices found in «));

    Serial.print(stopScan — startScan);

    Serial.println(F(» milliseconds.»));

  }

}

Урок 23. Подключение сегментного дисплея TM1637 к Arduino.

Сегодня в уроке подключим семисегментный индикатор TM1637 к Arduino. Установим библиотеку TM1637.h и научимся выводить на дисплей цифры и некоторые символы.

Как устроен и из чего состоит модуль TM1637.

Характеристики Индикатора на TM1637:
• Напряжение питание: 5,5В
• Потребляемый ток 0.

2 — 80мА (в зависимости от горящих сегментов)
• Градаций яркости индикаторов — 8
• Размеры платы: 42×24мм
• Двух проводной последовательный интерфейс (CLK, DIO).

Фото модуля от магазина RobotDyn фронтальный вид.

Фото модуля от магазина RobotDyn вид с тыльной стороны.


Этот модуль собран на драйвере TM1637.
• Есть модули красного, синего, зелёного, белого цвета.
• Размеры 0,36” и 0,56”

В уроке будем использовать модуль TM1637 0,56”, зеленого цвета.


Возможности модуля TM1637:
• Зажигать сразу все знаки или по одному сегменту или символу,
• Выводить цифры от 0 до 9 и некоторые буквы. Смотри ниже.
• Цифры могут выводиться как с нулями слева, так и без них,
• 8 градаций изменения яркости.
• Вывод символа в определённую позицию (ячейку).

Отличие модуля индикатора на TM1637 от других – это его компактность, он не дорогой, и управление всего по двум проводам.

Подключение дисплея TM1637 к Arduino

Подключить дисплей можно к любым цифровым пинам Ардуино. В нашем случае будем подключать к Arduino NANO по схеме.

Arduino Nano [PIN 5V] — TM1637 Module[PIN 5V]

Arduino Nano [PIN GND] — TM1637 Module[PIN GND]

Arduino Nano [PIN 2] — TM1637 Module[PIN DIO]

Arduino Nano [PIN 3] — TM1637 Module[PIN CLK]

Установка и настройка библиотеки TM1637.h.

Установить библиотеку TM1637.h можно из менеджера библиотек. Для этого откроем Arduino IDE, перейдем в раздел Скетч-> Подключить библиотеку -> Управление библиотеками.

Затем в строке поиска наберем TM1637. И установим библиотеку Grove 4-Digit Display.

Вы также можете скачать библиотеку TM1637 внизу урока, в разделе «материалы для скачивания».

Настройка библиотеки TM1637 для вывода дополнительных символов.

Библиотека позволяет вывести цифры и некоторые символы на дисплей.

Для реализации простых проектов, таких как часы, индикаторы и счетчики, этого набора символов достаточно. Я реализовывал часы с выводом температуры и влажности: Arduino часы. Видео 2. Подключаем к Arduino TM1637 и датчик DHT11.

Для отображения температуры использовал символ «С» номер для вывода на индикатор 12и для отображения влажности использовал символ «F» номер для вывода на дисплей 15.

Но для некоторых проектов на Arduino не достаточно данного набора символов. Расширить его достаточно легко, для этого в файле TM1637. cpp библиотеки находим массив TubeTab[] и добавляем нужные коды символов.

Список добавленных символов в файле TM1637.cpp, библиотеки TM1637.

После чего данные символы можно использовать в своих проектах.

Если захочется закодировать свой символ, то можно использовать следующую таблицу:

После кодирования сегментов, установив нужные биты в байте, для сокращения записи можно перевести байт из двоичного в шестнадцатиричный формат, как — b00011110 -> 0x1E.


Пример кода для вывода информации на семисегментный индикатор с драйвером TM1637.

Пример 1. Вывод времени с мигающим двоеточием.

В данном примере выведем 4 цифры на индикатор TM1637, и научимся мигать двоеточием каждую секунду. Данный пример поможет вывести любую цифровую информацию: время, счётчики, показания с датчиков.

Пример 2. Вывод слов на модуль TM1637.

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

Пример 3. Выводданных с датчиком с символами.

Мы научились выводить цифры и слова на дисплей. Как же сделать динамическое изменение значений на дисплее. При этом добавлять символы для индикации различных данных.

Тут поможет нам посимвольный вывод данных на дисплей. Например, запись tm1637.display(0, 5) выводит первый символ на дисплей 5. Аналогично выводятся остальные 3 символа.

Для разделения числа на десятки и единицы, для нахождения единиц нужно найти остаток от деления на 10, и для получения десяток нужно число делить на 10.

И после числового значения выведем символ, например, для температуры символ «С».

Пример применим при выводе даты, времени и показаний с датчиков.

Появились вопросы или предложения не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке

Понравилась статья? Поделитесь ею с друзьями:

Файлы для скачивания

Пример 1. Вывод времени с мигающим двоеточием.ino1 Kb 1319 Скачать

Вы можете скачать файл.

Пример 2. Вывод слов на модуль TM1637.ino1 Kb 706 Скачать

Вы можете скачать файл.

Пример 3. Вывод данных с датчиком с символами.ino1 Kb 692 Скачать

Вы можете скачать файл.

скачать библиотеку TM1637 (Доп символы).zip11 Kb 1351 Скачать

Вы можете скачать файл.

datasheet-TM1637.pdf685 Kb 541 Скачать

Вы можете скачать файл.

TM1637.cpp (доп.символы).zip2 Kb 1066 Скачать

Вы можете скачать файл.

OLED дисплей 0.91″ 128×32, I2C, SSD1306 синий

Подключение OLED дисплея к ARDUINO UNO R3 и вывод Русского шрифта:


 

Arduino и LCD Nokia 5510. Подключение, пример использования

Наверное, каждый из нас помнит те времена, когда в моде были телефоны Nokia 3310, а затем и Nokia 5510. Сегодня, когда большинство из нас использует смартфоны с сенсорными дисплеями, старые и надежные Nokia пылятся на полках.

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Как и подобает любительской электронике, в интернете пару лет назад можно было найти информацию, как кому-то удалось подключить дисплей от Nokia к микроконтроллеру Atmegą. Это было сложно из-за плотно расположенных выводов дисплея.

Сегодня практически каждый из нас может себе позволить использование готового модуля без необходимости разборки старого телефона и трудоемкой пайки тонких контактов LCD дисплея.

Кроме того, в интернете можно найти не только модули с дисплеями от Nokia, но и модули от других производителей телефонов. В данной статье мы постараемся показать, как проще и быстрее подключить дисплей от Nokia 5110 к Arduino с помощью готовых библиотек.

Технические характеристики LCD Nokia 5110:

  • Напряжение питания: 2,7 — 3,3 В
  • Потребление тока: 6,0 — 7,7 мА
  • Разрешение: 48×84 пикселей
  • Драйвер: PCD8544
  • Размер: 45×45 мм

Подключение дисплея Nokia 5110 к Arduino

Прежде чем что-либо делать, мы должны сказать несколько слов о работе нашего дисплея. Так вот, согласно datasheet — дисплей питается напряжением 2,7-3,3 В. Кроме того, линия передачи данных работает от 3,3 В, в связи с чем мы можем использовать Arduino Pro или Arduino Pro mini 3,3 В.

Если мы хотим использовать Arduino Uno, или другую плату, мы должны каким — то образом уменьшить напряжение. По информации, доступной в интернете, а также из собственного опыта можно сказать, что линии данных дисплея можно подключить к логике с 5В . Дисплей будет работать, но его срок службы значительно сократится.

Лучшей идеей является использование ограничивающих резисторов. С помощью резисторов 10кОм и 1кОм мы можем спокойно подключить нашу Uno к LCD дисплею.

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

 

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

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

Распакуйте обе папки в папку libraries и перезапустить IDE.

 

Пример программы

Когда у нас уже все готово, время загрузить пример программы и начать пользоваться нашим дисплеем. Для этого из вкладки «Файл», затем «Примеры», выбираем имя скаченного примера для дисплея и выбираем “pcdtest”.

 

Здесь небольшое замечание, о котором следует упомянуть. Загружая библиотеку GFX, мы не найдем ее в IDE (нет примеров в Examples). Она требуется только для работы некоторых Adafruit библиотек.

Скомпелируем и загрузим проект в Arduino. Нашим глазам предстает логотип Adafruit, после чего произойдет переход к следующему экрану. Все заканчивается последовательность падающих звезд.

 

Библиотека GFX позволяет генерировать простые растровые изображения, текст и фигуры и подходит для различных дисплеев. Поскольку у нас монохромный дисплей, то мы можем отображать данные в двух цветах: черном или белом.

Здесь также следует отметить, что после каждого использования функции рисования мы должны вызвать функцию display(), которая выводит на экран то, что мы написали в программе.

Список всех доступных функций библиотеки GFX вместе с их объяснением и изображениями образцов можно найти на сайте learn.adafruit.com.

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

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

Однако вышеперечисленные возможности относятся только для рисования графики. Что делать, если мы хотим отобразить текст? Нет ничего проще, GFX позволяет отобразить текст и символы в двух размерах, а так же в нормальном и в виде негатива.

Мы должны признать, что Adafruit в очередной раз показал класс. Опубликованные библиотеки просты в использовании, не говоря уже об отличном описании. Тестовая программа также является достаточно легкой для понимания и анализа. Думаю, никто не должен иметь проблем с первым запуском дисплея и адаптацией его в соответствии со своими потребностями.

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

Сравним возможности LCD от Nokia 5510 и обычного LCD 2*16. Здесь мы видим одни плюсы. Мы можем отобразить, помимо текста также простые растровые изображения. Для подключения используется меньше проводов, а контраст мы можем регулировать программно.

Источник: http://akademia.nettigo.pl/nokia_lcd/

Блок питания 0…30 В / 3A

Набор для сборки регулируемого блока питания…

Как использовать ЖК-дисплей в Arduino


ЖК-дисплей может быть действительно полезной частью вашего решения, поскольку он может показывать значение от датчика напрямую, а также может отображать другие сообщения. Следующие документ дает вам краткое введение в ЖК-дисплеи Arduino с указанием того, как подключитесь и используйте с вашим Arduino, а также с Ozeki 10. Это руководство также содержит диаграмма и видео для лучшего понимания ЖК-дисплея Arduino.Итак, начнем прямо сейчас.

Что такое ЖК-дисплей?

Стенды для «жидкокристаллического дисплея». LCD — это технология плоских дисплеев обычно используется в телевизорах и компьютерных мониторах. Он также используется в экранах для мобильных устройств, таких как ноутбуки, планшеты и смартфоны.

Как работает ЖК-дисплей Arduino?

Он имеет 16 контактов, и первый слева направо — контакт заземления. Второй pin — это VCC, к которому мы подключаем вывод 5 В на плате Arduino.Далее идет контакт Vo, к которому мы можем прикрепить потенциометр для управления контрастностью дисплея. Затем вывод RS или вывод выбора регистра используется для выбора, будем ли мы отправлять команды или данные на ЖК-дисплей. Например, если вывод RS установлен в низкое состояние или ноль вольт, то мы отправляем команды на ЖК-дисплей, например: установите курсор на в определенном месте, очистите дисплей, выключите дисплей и т. д. И когда Вывод RS установлен в состояние High или 5 вольт, мы отправляем данные или символы на ЖК-дисплей.

Схема подключения ЖК-дисплея

Arduino

Рисунок 1 — Схема подключения ЖК-дисплея Arduino

Как использовать ЖК-дисплей Arduino в Ozeki

Подключения ЖК-дисплея могут отправлять символы на ЖК-дисплеи с любого подключения, добавленного к вашему программному обеспечению Ozeki. Это соединение поддерживает ЖК-дисплеи с разрешением HD44780 символов. Вы можете получить их в размерах 16×1, 16×2 и 20×4, которые представляют столбцы x строки. Попробуйте свой ЖК-дисплей, как вы можете видеть в третьем видео ниже.Для упрощения подключения попробуйте модуль дисплея Ozeki. Чтобы использовать ЖК-дисплей в Ozeki, вам сначала необходимо загрузить Ozeki Robot Developer. Озэки Robot Developer установит библиотеки Arduino, необходимые для эффективного использования этого датчика.

Скачать Ozeki Robot Developer

После установки Ozeki Robot Developer вам необходимо загрузить код управления ЖК-дисплеем. к вашему Arduino. Вы можете найти код и инструкции по загрузке на следующих страницах.Процесс загрузки состоит из двух шагов: сначала вам нужно отформатировать EEPROM Arduino, тогда вам нужно загрузить контрольный код. Процедура очень проста, требуется всего лишь несколько секунд.

Загрузите код ЖК-дисплея в Arduino Uno
Загрузите код ЖК-дисплея в Arduino Mega 2560
Загрузите код ЖК-дисплея в Arduino Nano
Загрузите код ЖК-дисплея в Ozeki Matrix
Загрузите код ЖК-дисплея в Raspberry Pi

Датчики Arduino и Ozeki будут обмениваться данными через порт USB с использованием протокола Ozeki LCD Display.Этот Протокол позволяет вам использовать датчик прямо на вашем ПК. Вы сможете управлять этим датчиком через Интернет. пользовательский интерфейс или вы сможете общаться с ним с помощью Ozeki Chat. Вы можете узнать больше об управлении чатом на следующей странице.

Как общаться с ЖК-дисплеем с помощью чата

Важно понимать управление чатом, потому что когда вы создаете робота, способ управления этим датчиком — отправка и получение сообщений.если ты откройте приложение Ozeki Robot Developer, вы увидите, кому вы можете написать C # .Net программа для работы с этим датчиком.

Шаги подключения

  1. Подключите ЖК-дисплей к Arduino, используя схему подключения
  2. Подключите плату Arduino к компьютеру
  3. Проверьте COM-порты в списке устройств Windows
  4. Откройте приложение Arduino на вашем компьютере
  5. Загрузить пример кода в микроконтроллер
  6. Откройте https: // localhost: 9515 в своем браузере
  7. Выберите ЖК-дисплей из списка подключений
  8. Записать тестовое сообщение на экран ЖК-дисплея

Обзор системы

Предлагаемая нами система состоит из ЖК-дисплея, подключенного к аналоговому порту. вашего Arduino.Arduino будет отвечать за чтение данных с этого устройства. в настоящее время. Мозг системы будет работать на ПК (рисунок 2). На ПК Озэки 10 смогут управлять общением. Вы можете легко запустить Ozeki 10 с помощью веб-браузера.

Рисунок 2 — Системная конфигурация ЖК-дисплея, подключенного к ПК с помощью Arduino

Предварительные требования

  • HD44780 ЖК-дисплей (16×1, 16×2 или 20×4)
  • Ozeki 10 установлен на вашем компьютере
  • Программируемая плата (Arduino Mega / Nano / Uno, Ozeki Display Modul или Raspberry Pi)
  • Если вы не используете Ozeki Display Modul, чем 1 кОм и 7.Требуется резистор 2 кОм
  • USB-кабель необходим между Arduino Mega / Nano / Uno, Ozeki Display Modul и вашим компьютером

Шаг 1. Подключите ЖК-дисплей к Arduino

Вы можете увидеть, как подключить HD44780 ЖК-дисплей к любой из следующих плат:

Ваш браузер не поддерживает видео тег.

После подключения подключите плату к компьютеру!

Шаг 2 — Загрузите код в микроконтроллер

(Вот код для загрузки)

Ваш браузер не поддерживает видео тег.

Шаг 3 — Запустите Ozeki 10, чтобы попробовать ЖК-дисплей

Ваш браузер не поддерживает видео тег.

Шаг 4. Настройте ЖК-дисплей в Ozeki 10

Чтобы настроить ЖК-дисплей (подключенный к Arduino) в Ozeki 10, который установлен на вашем компьютере, вам необходимо открыть графический интерфейс пользователя (GUI) Ozeki 10. Вы можете открыть графический интерфейс, введя URL-адрес компьютера в свой веб-браузер.Например, если у нашего ПК IP-адрес 192.168.1.5, мы бы введите http://192.168.1.5:9513 в наш веб-браузер.

Шаг 5. Ознакомьтесь с протоколом ЖК-дисплея

Контроллер ЖК-дисплея может связываться с Ozeki через следующий протокол.

Ссылки:
https://techterms.com

Home

Дополнительная информация


Как вывести сообщение на ЖК-дисплей с помощью последовательного монитора Ardunio

В этой статье мы собираемся связать аппаратное и программное обеспечение Arduino с ЖК-дисплеем.Мы собираемся отображать напечатанное сообщение на ЖК-дисплее 16/2 с помощью последовательного монитора, посмотреть, где вы можете собрать информацию о том, как работать с последовательным монитором и как работать с ЖК-дисплеем 16/2, а также получить удовольствие от технических знаний.

ТРЕБОВАНИЯ

  1. ЖК-дисплей 16/2
  2. Программное обеспечение Arduino
  3. Ардуино UNO R3
  4. Соединительные провода
  5. Хлебная доска
  6. Кабель передачи данных

Действия, которые необходимо выполнить

Шаг 1

Откройте программное обеспечение Arduino.У меня последняя версия программного обеспечения Arduino. Вы можете загрузить программное обеспечение Arduino с официального сайта Arduino www.Arduino.cc.

Шаг 2

Включите файл заголовка для жидкого кристалла. Обзор ЖК-дисплея 16/2 дан в моей статье «Работа с ЖК-дисплеем 16/2». Инструменты >> Включить библиотеку >> Жидкий кристалл.

Шаг 3

Запишите данные кодировки в программное обеспечение Arduino…

Шаг 4

Скомпилируйте и загрузите код в Arduino.

Шаг 5

Следуйте принципиальной схеме для подключения цепи. Вы также можете изменить контакты Arduino.

Шаг 6

Откройте последовательный монитор вашего программного обеспечения Arduino.

Шаг 7

Введите команду, которую вы хотите отобразить на ЖК-дисплее 16/2.

Шаг 8

Щелкните OK или ОТПРАВИТЬ, чтобы отправить параметр из последовательного монитора в последовательный монитор.

Шаг 9

Файл .hex Arduino будет искать плату Arduino, если она подключена к ноутбуку или системе. Если устройство найдено, оно загрузится и подаст команду на Arduino, а Arduino подает команду на отображение на ЖК-дисплее.

Шаг 10

Результат будет отображаться на ЖК-дисплее 16/2. Вы можете изменить свой вывод в соответствии с вашей командой в соответствии с вашими требованиями.

Сводка

В этой статье мы узнали, как работать с последовательным монитором Arduino, а также работать с ЖК-дисплеем 16×2 для отображения сообщения.

Взаимодействие Arduino с дисплеем ST7789 TFT

/ *

* Взаимодействие Arduino с дисплеем ST7789 TFT (240×240 пикселей).

* Пример графического теста.

* Это бесплатное программное обеспечение БЕЗ ГАРАНТИЙ.

* https://simple-circuit.com/

* /

/ ***************************** *******************************************

Это библиотека для нескольких дисплеев Adafruit на базе драйверов ST77 *.

Работает с 1,8-дюймовым TFT Breakout Adafruit с SD-картой

—-> http://www.adafruit.com/products/358

1.8-дюймовый TFT-экран

—-> https://www.adafruit.com/product/802

1.44-дюймовый TFT-экран

—-> https://www.adafruit.com/product/ 2088

, а также необработанный 1,8-дюймовый TFT-дисплей Adafruit

—-> http://www.adafruit.com/products/618

Ознакомьтесь с приведенными выше ссылками на наши руководства и схемы подключения.

Эти дисплеи используют SPI для связи, для интерфейса

требуются 4 или 5 контактов (RST не является обязательным).

Adafruit вкладывает время и ресурсы в предоставление этого открытого исходного кода,

, пожалуйста, поддержите Adafruit и оборудование с открытым исходным кодом, купив

продуктов у Adafruit!

Написано Лимором Фридом / Ladyada для Adafruit Industries.

Лицензия MIT, весь текст выше должен быть включен в любое повторное распространение

********************************* *************************************** /

#include // Базовая графическая библиотека

#include // Аппаратная библиотека для ST7789

#include // Библиотека SPI Arduino

// Подключения модуля TFT ST7789

#define TFT_CS 10 // определение вывода выбора микросхемы

#define TFT_DC 9 // определение вывода данных / команд

#define TFT_RST 8 // определение вывода сброса или установка на -1 и подключение к выводу сброса Arduino

// Инициализировать TFT-библиотеку Adafruit ST7789

Adafruit_ST7789 tft = Adafruit_ST7789 (TFT_CS, TFT_DC, TFT_RST);

с плавающей запятой p = 3.1415926;

пустая настройка (недействительна) {

Serial.begin (9600);

Serial.print (F («Hello! ST77xx TFT Test»));

// если на дисплее есть вывод CS, попробуйте SPI_MODE0

tft.init (240, 240, SPI_MODE2); // Инициализируем отображение ST7789 240×240 пикселей

// если экран перевернут, удалите эту команду

tft.setRotation (2);

Serial.println (F («Инициализировано»));

uint16_t time = millis ();

тфт.fillScreen (ST77XX_BLACK);

время = миллис () — время;

Serial.println (время, DEC);

задержка (500);

// большой блок текста

tft.fillScreen (ST77XX_BLACK);

testdrawtext («Lorem ipsum dolor sit amet, conctetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat.Nullam aliquet ultrices massa eu hendrerit. Ut sed nisi lorem. In vestibulum purus — мучитель imperdiet posuere. «, ST77XX_WHITE);

delay (1000);

// функция печати tft!

tftPrintTest ();

delay (4000);

// один пиксель

tft.drawPixel ( tft.width () / 2, tft.height () / 2, ST77XX_GREEN);

delay (500);

// тест прорисовки линии

testlines (ST77XX_YELLOW);

delay (500);

// оптимизированные строки

testfastlines (ST77XX_RED, ST77XX_BLUE);

задержка (500);

testdrawrects (ST77XX_GREEN); 9000X4

OWMOWMIN_GREEN

задержка (500);

tft.fillScreen (ST77XX_BLACK);

тестовых круга (10, ST77XX_BLUE);

тестовых кружков (10, ST77XX_WHITE);

задержка (500);

testroundrects ();

задержка (500);

тестовых треугольников ();

задержка (500);

медиа-кнопки ();

задержка (500);

Serial.println («готово»);

задержка (1000);

}

пустая петля () {

tft.invertDisplay (правда);

задержка (500);

tft.invertDisplay (ложь);

задержка (500);

}

пустые тестовые строки (цвет uint16_t) {

tft.fillScreen (ST77XX_BLACK);

для (int16_t x = 0; x

tft.drawLine (0, 0, x, tft.height () — 1, цвет);

задержка (0);

}

для (int16_t y = 0; y

tft.drawLine (0, 0, tft.width () — 1, y, цвет);

задержка (0);

}

tft.fillScreen (ST77XX_BLACK);

для (int16_t x = 0; x

tft.drawLine (tft.width () — 1, 0, x, tft.height () — 1, цвет) ;

задержка (0);

}

для (int16_t y = 0; y

tft.drawLine (tft.width () — 1, 0, 0, y, цвет);

задержка (0);

}

тонн фут.fillScreen (ST77XX_BLACK);

для (int16_t x = 0; x

tft.drawLine (0, tft.height () — 1, x, 0, color);

задержка (0);

}

для (int16_t y = 0; y

tft.drawLine (0, tft.height () — 1, tft.width () — 1, y , цвет);

задержка (0);

}

tft.fillScreen (ST77XX_BLACK);

для (int16_t x = 0; x

tft.drawLine (tft.width () — 1, tft.height () — 1, x, 0, цвет);

задержка (0);

}

для (int16_t y = 0; y

tft.drawLine (tft.width () — 1, tft.height () — 1, 0, y , цвет);

задержка (0);

}

}

void testdrawtext (char * text, uint16_t color) {

tft.setCursor (0, 0);

tft.setTextColor (цвет);

tft.setTextWrap (истина);

тфт.печать (текст);

}

void testfastlines (uint16_t color1, uint16_t color2) {

tft.fillScreen (ST77XX_BLACK);

для (int16_t y = 0; y

tft.drawFastHLine (0, y, tft.width (), color1);

}

для (int16_t x = 0; x

tft.drawFastVLine (x, 0, tft.height (), color2);

}

}

недействительных тестовых чертежей (цвет uint16_t) {

tft.fillScreen (ST77XX_BLACK);

для (int16_t x = 0; x

tft.drawRect (tft.width () / 2 -x / 2, tft.height () / 2 -x / 2, х, х, цвет);

}

}

void testfillrects (uint16_t color1, uint16_t color2) {

tft.fillScreen (ST77XX_BLACK);

для (int16_t x = tft.width () — 1; x> 6; x- = 6) {

tft.fillRect (tft.width () / 2 -x / 2, tft.height () / 2 -x / 2, x, x, цвет1);

тфт.drawRect (tft.width () / 2 -x / 2, tft.height () / 2 -x / 2, x, x, color2);

}

}

void testfillcircles (uint8_t radius, uint16_t color) {

for (int16_t x = radius; x

for (int16_t y = радиус; y

tft.fillCircle (x, y, radius, color);

}

}

}

void testdrawcircles (uint8_t radius, uint16_t color) {

for (int16_t x = 0; x

for (int16_t y = 0; y

tft.drawCircle (x, y, radius, color);

}

}

}

пустых тестовых треугольников () {

tft.fillScreen (ST77XX_BLACK);

int color = 0xF800;

int t;

int w = tft.width () / 2;

int x = tft.height () — 1;

int y = 0;

int z = tft.width ();

для (t = 0; t <= 15; t ++) {

tft.drawTriangle (w, y, y, x, z, x, цвет);

х- = 4;

y + = 4;

z- = 4;

цвет + = 100;

}

}

void testroundrects () {

tft.fillScreen (ST77XX_BLACK);

int color = 100;

int i;

int t;

для (t = 0; t <= 4; t + = 1) {

int x = 0;

int y = 0;

int w = tft.width () — 2;

int h = tft.высота () — 2;

для (i = 0; i <= 16; i + = 1) {

tft.drawRoundRect (x, y, w, h, 5, color);

х + = 2;

у + = 3;

w- = 4;

h- = 6;

цвет + = 1100;

}

цвет + = 100;

}

}

void tftPrintTest () {

tft.setTextWrap (false);

tft.fillScreen (ST77XX_BLACK);

tft.setCursor (0, 30);

тфт.setTextColor (ST77XX_RED);

tft.setTextSize (1);

tft.println («Привет, мир!»);

tft.setTextColor (ST77XX_YELLOW);

tft.setTextSize (2);

tft.println («Привет, мир!»);

tft.setTextColor (ST77XX_GREEN);

tft.setTextSize (3);

tft.println («Привет, мир!»);

tft.setTextColor (ST77XX_BLUE);

tft.setTextSize (4);

тфутов отпечатка (1234.567);

задержка (1500);

тфт.setCursor (0, 0);

tft.fillScreen (ST77XX_BLACK);

tft.setTextColor (ST77XX_WHITE);

tft.setTextSize (0);

tft.println («Привет, мир!»);

tft.setTextSize (1);

tft.setTextColor (ST77XX_GREEN);

т фут. Отпечатка (п, 6);

tft.println («Хотите пи?»);

tft.println («»);

тфутов отпечатка (8675309, HEX); // вывод 8,675,309 в HEX!

tft.println («Печатать HEX!»);

тфт.println («»);

tft.setTextColor (ST77XX_WHITE);

tft.println («Эскиз был»);

tft.println («работает на:»);

tft.setTextColor (ST77XX_MAGENTA);

т / фут отпечатка (миллис () / 1000);

tft.setTextColor (ST77XX_WHITE);

tft.print («секунды»);

}

void mediabuttons () {

// воспроизвести

tft.fillScreen (ST77XX_BLACK);

tft.fillRoundRect (25, 10, 78, 60, 8, ST77XX_WHITE);

тфт.fillTriangle (42, 20, 42, 60, 90, 40, ST77XX_RED);

задержка (500);

// пауза

tft.fillRoundRect (25, 90, 78, 60, 8, ST77XX_WHITE);

tft.fillRoundRect (39, 98, 20, 45, 5, ST77XX_GREEN);

tft.fillRoundRect (69, 98, 20, 45, 5, ST77XX_GREEN);

задержка (500);

// воспроизвести цвет

tft.fillTriangle (42, 20, 42, 60, 90, 40, ST77XX_BLUE);

задержка (50);

// цвет паузы

tft.fillRoundRect (39, 98, 20, 45, 5, ST77XX_RED);

tft.fillRoundRect (69, 98, 20, 45, 5, ST77XX_RED);

// воспроизвести цвет

tft.fillTriangle (42, 20, 42, 60, 90, 40, ST77XX_GREEN);

}

Как подключить ЖК-дисплей к ESP8266 NodeMCU

ЖК-дисплеи — это быстрый и недорогой способ отображения простой информации. В этом руководстве будет показано, как подключить ЖК-дисплей 16×2 с помощью I2C к набору разработчика ESP8266 NodeMCU.

ЖК-дисплей, который я собираюсь использовать, довольно распространен, и его можно купить на Amazon за пару долларов.Он использует I2C для связи с NodeMCU. I2C хорош тем, что для связи требуется всего два провода.

Электропроводка

Подключить ЖК-дисплей к комплекту разработчика NodeMCU довольно просто. Ниже приведена электрическая схема, и каждое подключение указано ниже.

  • Подключите контакт GND на ЖК-дисплее к одному из контактов GND на NodeMCU.
  • Подключите вывод VCC на ЖК-дисплее к выводу VIN на NodeMCU. Вывод VIN на NodeMCU напрямую связан с выводом 5V входящего USB-порта.Если вы планируете питать NodeMCU от чего-то другого, кроме USB, вам придется найти другой способ подать 5В на дисплей.
  • Подключите вывод SDA на ЖК-дисплее к выводу D2 на NodeMCU.
  • Подключите вывод SDL на ЖК-дисплее к выводу D1 на NodeMCU.

Код

Благодаря библиотеке LiquidCrystal_I2C связь с этими дисплеями проста. Сначала используйте диспетчер библиотек Arduino для установки библиотеки LiquidCrystal_I2C, если вы еще этого не сделали.

Ниже приведен весь набросок, необходимый для вывода на дисплей «Hello World». Я объясню подробности позже.

Первое, что мы делаем, это создаем объект LiquidCrystal_I2C и передаем ему адрес I2C, ширину в символах и высоту в символах. Адрес для NodeMCU, скорее всего, всегда равен 0x3F. Если применить эти инструкции к другим типам плат, адрес может быть другим. Arduino предоставляет пример скетча, который сканирует адреса I2C, если вам сложно его найти.

ЖК-дисплей сначала перемещает курсор туда, где вы хотите начать, а затем печатает несколько символов. В моем примере я хотел, чтобы HELLO и WORLD были сосредоточены на каждой строке. Для «HELLO» курсор должен быть на 5 символов справа и ноль символов вниз, поэтому я переместил его (5, 0). Для "МИРА" мне нужно было, чтобы он был на 5 символов вправо и на один символ вниз, поэтому я переместил его (5, 1).

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

Хотите узнать больше? Ознакомьтесь с другими руководствами по ESP8266:

С чего начать - Real Python

Микроконтроллеры

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

Платформа Arduino

Arduino - это платформа с открытым исходным кодом, состоящая из аппаратного и программного обеспечения, которая позволяет быстро разрабатывать проекты интерактивной электроники. Появление Arduino привлекло внимание профессионалов из самых разных отраслей, что способствовало зарождению Maker Movement.

С ростом популярности Maker Movement и концепции Интернета вещей, Arduino стала одной из основных платформ для электронного прототипирования и разработки MVP.

Arduino использует собственный язык программирования, похожий на C ++. Однако можно использовать Arduino с Python или другим языком программирования высокого уровня. Фактически, такие платформы, как Arduino, хорошо работают с Python, особенно для приложений, требующих интеграции с датчиками и другими физическими устройствами.

В целом, Arduino и Python могут способствовать созданию эффективной среды обучения, которая побуждает разработчиков заниматься проектированием электроники. Если вы уже знаете основы Python, вы сможете начать работу с Arduino, используя Python для управления им.

Платформа Arduino включает как аппаратные, так и программные продукты. В этом руководстве вы будете использовать оборудование Arduino и программное обеспечение Python, чтобы узнать об основных схемах, а также о цифровых и аналоговых входах и выходах.

Аппаратное обеспечение Arduino

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

  1. Arduino Uno или другая совместимая плата
  2. Стандартный светодиод любого цвета
  3. Кнопка A
  4. Потенциометр 10 кОм
  5. А Резистор 470 Ом
  6. Резистор 10 кОм
  7. Макет
  8. Перемычки разных цветов и размеров

Давайте подробнее рассмотрим некоторые из этих компонентов.

Component 1 - это Arduino Uno или другая совместимая плата. Arduino - это проект, который включает в себя множество плат и модулей для разных целей, и Arduino Uno - самый простой среди них. Это также самая используемая и наиболее документированная плата из всего семейства Arduino, поэтому это отличный выбор для разработчиков, которые только начинают работать с электроникой.

Примечание. Arduino - это открытая аппаратная платформа, поэтому есть много других поставщиков, которые продают совместимые платы, которые можно использовать для запуска примеров, которые вы видите здесь.В этом руководстве вы узнаете, как использовать Arduino Uno.

Компоненты 5 и 6 - это резисторы . Большинство резисторов идентифицируются цветными полосами в соответствии с цветовым кодом. Как правило, первые три цвета представляют значение резистора , а четвертый цвет представляет его допуск . Для резистора 470 Ом первые три цвета - желтый, фиолетовый и коричневый. Для резистора 10 кОм первые три цвета - коричневый, черный и оранжевый.

Компонент 7 - это макетная плата , которую вы используете для подключения всех других компонентов и сборки схем.Хотя макетная плата не требуется, рекомендуется получить ее, если вы собираетесь начать работать с Arduino.

Программное обеспечение Arduino

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

Arduino был разработан, чтобы позволить вам легко программировать платы. Как правило, вы выполните следующие действия:

  1. Подключите плату к ПК
  2. Установите и откройте Arduino IDE
  3. Сконфигурируйте настройки платы
  4. Напишите код
  5. Нажмите кнопку на IDE, чтобы загрузить программу на плату

Чтобы установить Arduino IDE на свой компьютер, загрузите соответствующую версию для своей операционной системы с веб-сайта Arduino.Инструкции по установке см. В документации:

  • Если вы используете Windows , используйте установщик Windows, чтобы убедиться, что вы загрузили необходимые драйверы для использования Arduino в Windows. Обратитесь к документации Arduino для получения более подробной информации.
  • Если вы используете Linux , возможно, вам придется добавить своего пользователя в некоторые группы, чтобы использовать последовательный порт для программирования Arduino. Этот процесс описан в руководстве по установке Arduino для Linux.
  • Если вы используете macOS , вы можете установить Arduino IDE, следуя руководству по установке Arduino для OS X.

Примечание: В этом руководстве вы будете использовать IDE Arduino, но Arduino также предоставляет веб-редактор, который позволит вам программировать платы Arduino с помощью браузера.

Теперь, когда вы установили IDE Arduino и собрали все необходимые компоненты, вы готовы приступить к работе с Arduino! Затем вы загрузите «Hello, World!» программу на вашу доску.

«Привет, мир!» С Arduino

IDE Arduino поставляется с несколькими примерами эскизов , которые вы можете использовать для изучения основ Arduino.Эскиз - это термин, который вы используете для обозначения программы, которую вы можете загрузить на доску. Поскольку к Arduino Uno нет подключенного дисплея, вам понадобится способ увидеть физический вывод вашей программы. Вы воспользуетесь примером эскиза Blink , чтобы заставить мигать встроенный светодиод на плате Arduino.

Загрузка эскиза примера Blink

Для начала подключите плату Arduino к компьютеру с помощью USB-кабеля и запустите Arduino IDE. Чтобы открыть пример скетча Blink, войдите в меню Файл и выберите Примеры , затем 01.Основы и, наконец, Blink :

Пример кода Blink будет загружен в новое окно IDE. Но прежде чем вы сможете загрузить набросок на плату, вам необходимо настроить IDE, выбрав плату и подключенный к ней порт.

Чтобы настроить плату, войдите в меню Tools и затем Board . Для Arduino Uno вы должны выбрать Arduino / Genuino Uno :

После выбора платы необходимо установить соответствующий порт.Снова войдите в меню инструментов и на этот раз выберите Порт :

Имена портов могут отличаться в зависимости от вашей операционной системы. В Windows порты будут называться COM4 , COM5 или что-то подобное. В macOS или Linux вы можете увидеть что-то вроде / dev / ttyACM0 или / dev / ttyUSB0 . Если у вас возникли проблемы с настройкой порта, загляните на страницу устранения неполадок Arduino.

После того, как вы настроили плату и порт, все готово для загрузки скетча в Arduino.Для этого вам просто нужно нажать кнопку Загрузить на панели инструментов IDE:

Когда вы нажимаете Загрузить , IDE компилирует скетч и загружает его на вашу плату. Если вы хотите проверить наличие ошибок, вы можете нажать Проверить перед Загрузить , что скомпилирует только ваш скетч.

USB-кабель обеспечивает последовательное соединение для загрузки программы и питания платы Arduino. Во время загрузки на плате будут мигать светодиоды.Через несколько секунд загруженная программа запустится, и вы увидите, что светодиодный индикатор мигает раз в секунду:

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

Подключение внешних компонентов

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

Хотя эти соединения обычно называются контактами , вы можете видеть, что это не совсем физические контакты. Скорее штыри - это отверстия в розетке, к которым можно подключить перемычки. На рисунке выше вы можете увидеть разные группы контактов:

  • Оранжевый прямоугольник: Это 13 цифровых контактов , которые можно использовать как входы или выходы.Они предназначены только для работы с цифровыми сигналами, которые имеют 2 разных уровня:
    1. Уровень 0: , представленный напряжением 0 В
    2. Уровень 1: представлен напряжением 5В
  • Зеленый прямоугольник: Это 6 аналоговых контактов , которые можно использовать в качестве аналоговых входов. Они предназначены для работы с произвольным напряжением от 0 до 5 В.
  • Синий прямоугольник: Это 5 контактов питания . В основном они используются для питания внешних компонентов.

Чтобы начать использовать внешние компоненты, вы подключите внешний светодиод, чтобы запустить пример скетча Blink. Встроенный светодиод подключен к цифровому выводу № 13 . Итак, давайте подключим к этому контакту внешний светодиод и проверим, мигает ли он. (Стандартный светодиод - это один из компонентов, которые вы видели в списке ранее.)

Прежде чем что-либо подключать к плате Arduino, рекомендуется отключить ее от компьютера. Отключив USB-кабель, вы сможете подключить светодиод к своей плате:

Обратите внимание, что на рисунке показана плата с цифровыми контактами, обращенными к вам.

Использование макета

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

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

Вы можете увидеть, какие отверстия связаны между собой, посмотрев на цветные линии.Вы будете использовать отверстия по бокам макета для питания схемы:

  • Подключите одно отверстие на красной линии к источнику питания.
  • Подключите одно отверстие на синей линии к земле.

Затем вы можете легко подключить компоненты к источнику питания или заземлению, просто используя другие отверстия на красной и синей линиях. Отверстия в середине макета соединены, как показано цветами. Вы будете использовать их для соединения компонентов схемы.Эти две внутренние секции разделены небольшим углублением, через которое вы можете подключать интегральные схемы (ИС).

Вы можете использовать макетную плату, чтобы собрать схему, используемую в скетче примера Blink:

Для этой схемы важно отметить, что светодиод должен быть подключен в соответствии с его полярностью, иначе он не будет работать. Положительный вывод светодиода называется анодом и обычно является более длинным. Отрицательный вывод называется катодом и короче.Если вы используете восстановленный компонент, то вы также можете идентифицировать клеммы по плоской стороне самого светодиода. Это укажет на положение отрицательной клеммы.

Когда вы подключаете светодиод к выводу Arduino, вам всегда понадобится резистор, чтобы ограничить его ток и избежать преждевременного выгорания светодиода. Здесь для этого используется резистор 470 Ом. Вы можете проследить за подключениями и убедиться, что схема такая же:

  • Резистор подключен к цифровому выводу 13 на плате Arduino.
  • Анод светодиода подключен к другому выводу резистора.
  • Катод светодиода подключен к земле (GND) через синюю линию отверстий.

Более подробное объяснение см. В разделе «Как использовать макетную плату».

После завершения подключения снова подключите Arduino к ПК и повторно запустите скетч Blink:

Поскольку оба светодиода подключены к цифровому выводу 13, они мигают вместе во время выполнения скетча.

«Привет, мир!» С Arduino и Python

В предыдущем разделе вы загрузили скетч Blink на свою плату Arduino.Эскизы Arduino написаны на языке, похожем на C ++, и компилируются и записываются во флеш-память микроконтроллера при нажатии Загрузить . Хотя вы можете использовать другой язык для непосредственного программирования микроконтроллера Arduino, это нетривиальная задача!

Однако есть несколько подходов, которые вы можете использовать для использования Arduino с Python или другими языками. Одна из идей - запустить основную программу на ПК и использовать последовательное соединение для связи с Arduino через USB-кабель.Скетч будет отвечать за чтение входных данных, отправку информации на ПК и получение обновлений с ПК для обновления выходов Arduino.

Чтобы управлять Arduino с ПК, вам нужно разработать протокол для связи между ПК и Arduino. Например, вы можете рассмотреть протокол с такими сообщениями:

  • ЗНАЧЕНИЕ КОНТАКТА 13 ВЫСОКОЕ: используется для сообщения ПК о состоянии цифровых входных контактов
  • SET PIN 11 LOW: используется для указания Arduino установить состояния выходных контактов

Определив протокол, вы можете написать скетч Arduino для отправки сообщений на ПК и обновления состояний контактов в соответствии с протоколом.На ПК вы можете написать программу для управления Arduino через последовательное соединение на основе разработанного вами протокола. Для этого вы можете использовать любой язык и библиотеки, которые вам нравятся, например Python и библиотеку PySerial.

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

IDE Arduino включает готовые эскизы, которые будут управлять Arduino через Python с протоколом Firmata. На стороне ПК есть реализации протокола на нескольких языках, включая Python. Чтобы начать работу с Firmata, давайте воспользуемся ею, чтобы реализовать «Hello, World!» программа.

Загрузка эскиза фирмы

Перед тем, как писать программу Python для управления Arduino, вы должны загрузить скетч Firmata, чтобы вы могли использовать этот протокол для управления платой.Эскиз доступен во встроенных примерах Arduino IDE. Чтобы открыть его, войдите в меню Файл , затем Примеры , затем Firmata и, наконец, StandardFirmata :

Скетч будет загружен в новое окно IDE. Чтобы загрузить его в Arduino, вы можете выполнить те же действия, что и раньше:

  1. Подключите кабель USB к ПК.
  2. Выберите соответствующую плату и порт в среде IDE.
  3. Нажмите Загрузить .

После завершения загрузки вы не заметите никакой активности на Arduino. Чтобы управлять им, вам все еще нужна программа, которая может связываться с платой через последовательное соединение. Для работы с протоколом Firmata в Python вам понадобится пакет pyFirmata, который можно установить с помощью pip :

После завершения установки вы можете запустить эквивалентное приложение Blink с использованием Python и Firmata:

  1импорт pyfirmata
 2импорт время
 3
 4board = pyfirmata.Ардуино ('/ dev / ttyACM0')
 5
 6 пока Верно:
 7 board.digital [13] .write (1)
 8 раз. Сон (1)
 9 board.digital [13] .write (0)
10 раз. Сон (1)
  

Вот как работает эта программа. Вы импортируете pyfirmata и используете его для установления последовательного соединения с платой Arduino, которая представлена ​​объектом board в строке 4. Вы также настраиваете порт в этой строке, передавая аргумент pyfirmata.Arduino () . Вы можете использовать Arduino IDE, чтобы найти порт.

board.digital - это список, элементы которого представляют собой цифровые выводы Arduino. Эти элементы имеют методы read () и write () , которые будут читать и записывать состояние контактов. Как и большинство программ для встраиваемых устройств, эта программа в основном состоит из бесконечного цикла:

  • В строке 7 включен цифровой вывод 13 , который включает светодиод на одну секунду.
  • В строке 9, этот вывод выключен, что выключает светодиод на одну секунду.

Теперь, когда вы знаете основы управления Arduino с помощью Python, давайте рассмотрим некоторые приложения для взаимодействия с его входами и выходами.

Чтение цифровых входов

Цифровые входы могут иметь только два возможных значения. В цепи каждое из этих значений представлено различным напряжением. В таблице ниже показано представление цифрового входа для стандартной платы Arduino Uno:

Значение уровень Напряжение
0 Низкий
1 Высокая 5 В

Для управления светодиодом вы будете использовать кнопку для отправки цифровых входных значений в Arduino.Кнопка должна подавать 0 В на плату, когда она отпущена, и 5 В на плату при нажатии. На рисунке ниже показано, как подключить кнопку к плате Arduino:

Вы можете заметить, что светодиод подключен к Arduino на цифровом выводе 13, как и раньше. Цифровой вывод 10 используется как цифровой вход. Чтобы подключить кнопку, вы должны использовать резистор 10 кОм, который действует как понижающий в этой цепи. Понижающий резистор гарантирует, что цифровой вход получит 0 В при отпускании кнопки.

Когда вы отпускаете кнопку, вы размыкаете соединение между двумя проводами на кнопке. Поскольку через резистор не протекает ток, контакт 10 просто подключается к земле (GND). Цифровой вход получает 0 В, что соответствует состоянию 0 (или low ). Когда вы нажимаете кнопку, вы прикладываете 5 В как к резистору, так и к цифровому входу. Через резистор протекает ток, и на цифровой вход подается напряжение 5 В, что соответствует состоянию 1 (или high ).

Вы также можете использовать макетную плату для сборки вышеуказанной схемы:

Теперь, когда вы собрали схему, вам нужно запустить программу на ПК, чтобы управлять ею с помощью Firmata. Эта программа включает светодиод в зависимости от состояния кнопки:

  1импорт pyfirmata
 2импорт время
 3
 4board = pyfirmata.Arduino ('/ dev / ttyACM0')
 5
 6it = pyfirmata.util.Iterator (доска)
 7it.start ()
 8
 9board.digital [10] .mode = pyfirmata.INPUT
10
11 пока Верно:
12 sw = доска.цифровой [10] .read ()
13, если sw имеет значение True:
14 board.digital [13] .write (1)
Еще 15:
16 board.digital [13] .write (0)
17 раз. Сон (0,1)
  

Давайте пройдемся по этой программе:

  • Строки 1 и 2 import pyfirmata и time .
  • Строка 4 использует pyfirmata.Arduino () для установки соединения с платой Arduino.
  • Строка 6 назначает итератор, который будет использоваться для чтения состояния входов схемы.
  • Строка 7 запускает итератор, который поддерживает выполнение цикла параллельно с вашим основным кодом. Цикл выполняет board.iterate () для обновления входных значений, полученных с платы Arduino.
  • Строка 9 устанавливает вывод 10 как цифровой вход с pyfirmata.INPUT . Это необходимо, поскольку по умолчанию в качестве выходов используются цифровые выводы.
  • Строка 11 запускает бесконечный цикл и . Этот цикл считывает состояние входного контакта, сохраняет его в sw и использует это значение для включения или выключения светодиода путем изменения значения контакта 13.
  • Строка 17 ждет 0,1 секунды между итерациями цикла и . В этом нет строгой необходимости, но это хороший прием, позволяющий избежать перегрузки процессора, который достигает 100% нагрузки, когда в цикле нет команды ожидания.

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

  1импорт pyfirmata
 2импорт время
 3
 4board = pyfirmata.Ардуино ('/ dev / ttyACM0')
 5
 6it = pyfirmata.util.Iterator (доска)
 7it.start ()
 8
 9digital_input = board.get_pin ('d: 10: i')
10led = доска.get_pin ('d: 13: o')
11
12 пока Верно:
13 sw = digital_input.read ()
14, если sw имеет значение True:
15 светодиодов. Запись (1)
Еще 16:
17 светодиодов. Запись (0)
18 раз. Сон (0,1)
  

В этой версии вы используете board.get_pin () для создания двух объектов. digital_input представляет состояние цифрового входа, а светодиод представляет состояние светодиода.При запуске этого метода необходимо передать строковый аргумент, состоящий из трех элементов, разделенных двоеточиями:

  1. Тип штифта ( a для аналогового или d для цифрового)
  2. Номер штифта
  3. Режим вывода ( i для входа или o для выхода)

Поскольку digital_input является цифровым входом, использующим контакт 10, вы передаете аргумент 'd: 10: i' .Состояние светодиода устанавливается на цифровой выход с помощью контакта 13, поэтому аргумент led равен 'd: 13: o' .

Когда вы используете board.get_pin () , нет необходимости явно настраивать контакт 10 в качестве входа, как вы делали раньше с pyfirmata.INPUT . После установки контактов вы можете получить доступ к состоянию цифрового входного контакта с помощью read () и установить состояние цифрового выходного контакта с помощью write () .

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

Чтение аналоговых входов

В отличие от цифровых входов, которые могут быть только включены или выключены, аналоговые входы используются для считывания значений в некотором диапазоне. На Arduino Uno напряжение на аналоговом входе находится в диапазоне от 0 В до 5 В.Соответствующие датчики используются для измерения физических величин, например расстояний. Эти датчики отвечают за кодирование этих физических величин в правильном диапазоне напряжений, чтобы они могли считываться Arduino.

Для считывания аналогового напряжения Arduino использует аналого-цифровой преобразователь (АЦП) , который преобразует входное напряжение в цифровое число с фиксированным количеством битов. Это определяет разрешение преобразования. Arduino Uno использует 10-битный АЦП и может определять 1024 различных уровня напряжения.

Диапазон напряжения аналогового входа кодируется числами от 0 до 1023. Когда подается 0 В, Arduino кодирует его до числа 0 . Когда подается напряжение 5 В, кодируется число 1023 . Все промежуточные значения напряжения кодируются пропорционально.

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

В этой схеме светодиод настроен так же, как и раньше.Концевые клеммы потенциометра подключены к заземлению (GND) и контактам 5 В. Таким образом, центральный вывод (курсор) может иметь любое напряжение в диапазоне от 0 В до 5 В в зависимости от его положения, которое подключено к Arduino на аналоговом выводе A0.

Используя макетную плату, можно собрать эту схему следующим образом:

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

  1импорт pyfirmata
 2импорт время
 3
 4board = pyfirmata.Ардуино ('/ dev / ttyACM0')
 5it = pyfirmata.util.Iterator (доска)
 6it.start ()
 7
 8analog_input = board.get_pin ('a: 0: i')
 9
10 пока правда:
11 аналоговое_значение = аналоговый_ввод.read ()
12 печать (аналоговое_значение)
13 time.sleep (0,1)
  

В строке 8 вы устанавливаете analog_input как аналоговый входной вывод A0 с аргументом 'a: 0: i' . Внутри бесконечного цикла while вы читаете это значение, сохраняете его в analog_value и выводите вывод на консоль с помощью print () .Когда вы перемещаете потенциометр во время работы программы, вы должны вывести примерно следующее:

  0,0
0,0293
0,1056
0,1838
0,2717
0,3705
0,4428
0,5064
0,5797
0,6315
0,6764
0,7243
0,7859
0,8446
0,9042
0,9677
1.0
1.0
  

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

Чтобы изменить частоту мигания светодиода, вы можете использовать analog_value , чтобы контролировать, как долго светодиод будет оставаться включенным или выключенным:

  1импорт pyfirmata
 2импорт время
 3
 4board = pyfirmata.Ардуино ('/ dev / ttyACM0')
 5it = pyfirmata.util.Iterator (доска)
 6it.start ()
 7
 8analog_input = board.get_pin ('a: 0: i')
 9led = доска.get_pin ('d: 13: o')
10
11 пока Верно:
12 аналоговое_значение = аналоговый_ввод.read ()
13, если analog_value не None:
14 задержка = аналоговое_значение + 0,01
15 светодиодов. Запись (1)
16 time.sleep (задержка)
17 светодиодов. Запись (0)
18 time.sleep (задержка)
19 еще:
20 раз. Сон (0,1)
  

Здесь вы вычисляете задержку как аналоговое_значение + 0.01 , чтобы избежать нулевой задержки . В противном случае обычно получается analog_value из None во время первых нескольких итераций. Чтобы избежать ошибки при запуске программы, вы используете условие в строке 13, чтобы проверить, равно ли analog_value None . Затем вы контролируете период мигания светодиода.

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

К настоящему времени вы узнали, как использовать цифровые входы, цифровые выходы и аналоговые входы в ваших схемах.В следующем разделе вы увидите, как использовать аналоговые выходы.

Использование аналоговых выходов

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

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

Не все цифровые выводы Arduino можно использовать в качестве выходов ШИМ. Те, которые можно идентифицировать, обозначены тильдой ( ~ ):

Некоторые устройства, в том числе некоторые двигатели, работают с ШИМ сигналами. Можно даже получить реальный аналоговый сигнал из сигнала ШИМ, если вы используете аналоговые фильтры.В предыдущем примере вы использовали цифровой выход для включения или выключения светодиода. В этом разделе вы будете использовать ШИМ для управления яркостью светодиода в соответствии со значением аналогового входа, заданным потенциометром.

Когда на светодиод подается сигнал ШИМ, его яркость изменяется в соответствии с рабочим циклом сигнала ШИМ. Вы собираетесь использовать следующую схему:

Эта схема идентична схеме, использованной в предыдущем разделе для проверки аналогового входа, за исключением одного отличия.Поскольку невозможно использовать ШИМ с контактом 13, цифровой выходной контакт, используемый для светодиода, - это контакт 11.

Вы можете использовать макетную плату для сборки схемы следующим образом:

Собрав схему, вы можете управлять светодиодом с помощью ШИМ с помощью следующей программы:

  1импорт pyfirmata
 2импорт время
 3
 4board = pyfirmata.Arduino ('/ dev / ttyACM0')
 5
 6it = pyfirmata.util.Iterator (доска)
 7it.start ()
 8
 9analog_input = board.get_pin ('a: 0: i')
10led = доска.get_pin ('d: 11: p')
11
12 пока Верно:
13 аналоговое_значение = аналоговый_вход.читать()
14, если analog_value не None:
15 led.write (аналоговое_значение)
16 раз. Сон (0,1)
  

Есть несколько отличий от программ, которые вы использовали ранее:

  1. В строке 10 вы устанавливаете led в режим ШИМ, передав аргумент 'd: 11: p' .
  2. В строке 15 вы вызываете led.write () с analog_value в качестве аргумента. Это значение от 0 до 1, считываемое с аналогового входа.

Здесь вы можете увидеть поведение светодиода при перемещении потенциометра:

Чтобы показать изменения в рабочем цикле, осциллограф подключается к контакту 11. Когда потенциометр находится в нулевом положении, вы можете видеть, что светодиод не горит, поскольку на выходе контакта 11 имеется 0 В. Когда вы поворачиваете потенциометр, светодиод становится ярче по мере увеличения рабочего цикла ШИМ. Когда вы поворачиваете потенциометр до упора, рабочий цикл достигает 100%. Светодиод горит постоянно с максимальной яркостью.

В этом примере вы рассмотрели основы использования Arduino и его цифровых и аналоговых входов и выходов. В следующем разделе вы увидите приложение для использования Arduino с Python для управления событиями на ПК.

Использование датчика для запуска уведомления

Firmata - хороший способ начать работу с Arduino с Python, но необходимость в ПК или другом устройстве для запуска приложения может быть дорогостоящим, и в некоторых случаях такой подход может оказаться непрактичным. Однако, когда необходимо собрать данные и отправить их на ПК с помощью внешних датчиков, Arduino и Firmata станут хорошей комбинацией.

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

Чтобы отобразить уведомление на ПК, вы собираетесь использовать Tkinter, стандартный набор инструментов Python GUI. При нажатии кнопки появится окно сообщения. Чтобы получить более подробное представление о Tkinter, ознакомьтесь с Python GUI Programming With Tkinter.

Вам нужно будет собрать ту же схему, что и в примере цифрового входа:

После сборки схемы используйте следующую программу для запуска уведомлений:

  1импорт pyfirmata
 2импорт время
 3импорт tkinter
 4 из окна сообщений импорта tkinter
 5
 6root = tkinter.Tk ()
 7root.withdraw ()
 8
 9board = pyfirmata.Arduino ('/ dev / ttyACM0')
10
11it = pyfirmata.util.Iterator (доска)
12it.start ()
13
14digital_input = board.get_pin ('d: 10: i')
15led = доска.get_pin ('д: 13: о')
16
17 пока Верно:
18 sw = digital_input.read ()
19, если sw имеет значение True:
20 светодиодов. Запись (1)
21 messagebox.showinfo («Уведомление», «Была нажата кнопка»)
22 root.update ()
23 светодиода. Запись (0)
24 time.sleep (0,1)
  

Эта программа аналогична программе, использованной в примере цифрового входа, с некоторыми изменениями:

  • Строки 3 и 4 импортируют библиотеки, необходимые для настройки Tkinter.
  • Строка 6 создает главное окно Tkinter.
  • Строка 7 указывает Tkinter не показывать главное окно на экране. В этом примере вам нужно только увидеть окно сообщения.
  • Строка 17 запускает цикл , а цикл :
    1. Когда вы нажимаете кнопку, включается светодиод, и messagebox.showinfo () отображает окно сообщения.
    2. Цикл приостанавливается, пока пользователь не нажмет OK . Таким образом, светодиод будет гореть, пока сообщение находится на экране.
    3. После нажатия пользователем ОК , root.update () очищает окно сообщения с экрана, и индикатор гаснет.

Чтобы расширить пример уведомления, вы даже можете использовать кнопку для отправки электронного письма при нажатии:

  1импорт pyfirmata
 2импорт время
 3импорт smtplib
 4импорт ssl
 5
 6def send_email ():
 7 порт = 465 # для SSL
 8 smtp_server = "smtp.gmail.com"
 9 sender_email = "<ваш адрес электронной почты>"
10 Receiver_email = "<адрес электронной почты получателя>"
11 пароль = "<пароль>"
12 message = "" "Тема: Уведомление Arduino \ n Переключатель был включен."" "
13
14 контекст = ssl.create_default_context ()
15 с smtplib.SMTP_SSL (smtp_server, port, context = context) в качестве сервера:
16 print («Отправка электронного письма»)
17 server.login (sender_email, пароль)
18 server.sendmail (sender_email, получатель_email, сообщение)
19
20board = pyfirmata.Arduino ('/ dev / ttyACM0')
21 год
22it = pyfirmata.util.Iterator (доска)
23it.start ()
24
25digital_input = доска.get_pin ('d: 10: i')
26 год
27 пока Верно:
28 sw = digital_input.read ()
29, если sw имеет значение True:
30 send_email ()
31 раз.сон (0,1)
  

Вы можете узнать больше о send_email () в разделе «Отправка писем с помощью Python». Здесь вы настраиваете функцию с учетными данными почтового сервера, которые будут использоваться для отправки электронного письма.

Примечание: Если вы используете учетную запись Gmail для отправки электронных писем, вам необходимо включить параметр Разрешить менее безопасные приложения . Для получения дополнительной информации о том, как это сделать, ознакомьтесь с отправкой писем с помощью Python.

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

Если вы хотите использовать Firmata для взаимодействия с более сложными приложениями, попробуйте некоторые из этих проектов:

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

Заключение

Платформы микроконтроллеров

находятся на подъеме благодаря растущей популярности Maker Movement и Интернета вещей.Платформы, такие как Arduino , особенно привлекают много внимания, поскольку они позволяют разработчикам, таким же, как вы, использовать свои навыки и погружаться в электронные проекты.

Вы научились:

  • Разработка приложений с Arduino и Python
  • Использовать протокол Firmata
  • Управление аналоговыми и цифровыми входами и выходами
  • Интеграция датчиков с приложениями Python более высокого уровня

Вы также увидели, что Firmata может быть очень интересной альтернативой для проектов, требующих ПК и зависящих от данных датчиков.Кроме того, это простой способ начать работу с Arduino, если вы уже знаете Python!

Дополнительная литература

Теперь, когда вы знаете основы управления Arduino с помощью Python, вы можете начать работу над более сложными приложениями. Есть несколько руководств, которые помогут вам разрабатывать интегрированные проекты. Вот несколько идей:

  • REST API: Они широко используются для интеграции различных приложений. Вы можете использовать REST с Arduino для создания API-интерфейсов, которые получают информацию от датчиков и отправляют команды исполнительным механизмам.Чтобы узнать о REST API, ознакомьтесь с Python REST API с Flask, Connexion и SQLAlchemy.

  • Альтернативный графический интерфейс: В этом руководстве вы использовали Tkinter для создания графического приложения. Однако есть и другие графические библиотеки для настольных приложений. Чтобы увидеть альтернативу, ознакомьтесь с разделом «Как создать приложение с графическим интерфейсом пользователя Python с помощью wxPython».

  • Threading: Бесконечный цикл и , который вы использовали в этом руководстве, является очень распространенной особенностью приложений Arduino.Однако использование потока для запуска основного цикла позволит вам одновременно выполнять другие задачи. Чтобы узнать, как использовать потоки, ознакомьтесь с «Введение в потоки в Python».

  • Обнаружение лиц: Приложения Интернета вещей обычно интегрируют алгоритмы машинного обучения и компьютерного зрения. С их помощью вы можете создать сигнал тревоги, который запускает уведомление, например, при обнаружении лиц на камере. Чтобы узнать больше о системах распознавания лиц, ознакомьтесь с традиционным распознаванием лиц с помощью Python.

Наконец, есть и другие способы использования Python в микроконтроллерах, помимо Firmata и Arduino:

  • pySerial: Arduino Uno не может запускать Python напрямую, но вы можете создать свой собственный эскиз Arduino и использовать pySerial для установления последовательного соединения.

Добавить комментарий

Ваш адрес email не будет опубликован.