Оглавление:
- Шаг 1: проекты
- Шаг 2. Установите плату DFRobot FireBeetle ESP32 в Arduino IDE
- Шаг 3. Установите общие библиотеки для проектов
- Шаг 4: крышка светодиодной матрицы 24x8
- Шаг 5: Проект 1: простые светодиодные матричные часы NTP с дисплеем военного времени или дисплеем AMPM
- Шаг 6: Проект 2: Отображение прогноза прохождения ISS,
- Шаг 7. Проект 3: простой движущийся знак сообщения с использованием MQTT
- Шаг 11: Ссылки…
Видео: 4 проекта в 1 с использованием DFRobot FireBeetle ESP32 и крышки LED Matrix: 11 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Я думал о создании инструкций для каждого из этих проектов - но в конце концов я решил, что на самом деле самая большая разница - это программное обеспечение для каждого проекта. Я подумал, что лучше просто сделать один большой инструктаж!
Аппаратное обеспечение одинаково для каждого проекта, и мы используем Arduino IDE для программирования устройства ESP32.
Итак, что такое оборудование: все оборудование было предоставлено моими друзьями из DFRobot, у них есть очень хорошие учебные пособия и простые в установке основные платы для этого. Также имейте хорошую систему поддержки и довольно быструю доставку в США.
Полное описание платы Firebeetle ESP32 и светодиодной матрицы были предоставлены DF Robot, представленные проекты и видео являются моими собственными.
Все эти проекты используют микроконтроллер DFRobot FireBeetle ESP32 IOT.
www.dfrobot.com/product-1590.html
Вики-страницу поддержки - с инструкциями по установке ядра платы можно найти здесь:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Нам также понадобится светодиодная матрица FireBeetle Covers 24x8 (СИНИЙ).
www.dfrobot.com/product-1595.html
Не люблю СИНИЕ светодиоды - у них тоже разные цвета.
ЗЕЛЕНЫЙ -
КРАСНЫЙ -
БЕЛЫЙ -
ЖЕЛТЫЙ -
Вам понадобится только одна светодиодная матрица - цвет на ваш выбор, все они работают одинаково.
Вики-страницу поддержки LED Matrix можно найти здесь:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Здесь мы находим ссылку на библиотеку Arduino.
github.com/Chocho2017/FireBeetleLEDMatrix
Подробнее об этом чуть позже….
Что-то, что необязательно, но может быть удобно, - это держатель батареи MicroUSB 3xAA.
www.dfrobot.com/product-1130.html
Итак, вот необходимое оборудование - каковы 4 проекта -
Шаг 1: проекты
Проект 1: простые светодиодные матричные часы NTP с дисплеем военного времени или AMPM, Эти часы будут подключаться к NTP (серверу времени), захватывать время и применять смещение, чтобы вы получали местное время. Время будет отображаться на светодиодной матрице. - Это очень простые часы, и очень простой 1-й проект.
Проект 2: Дисплей прогноза прохождения ISS, в этом проекте используется 2-е ядро процессора. Он покажет, насколько близко (в милях) находится МКС, когда ожидать следующего прохождения МКС в вашем местоположении (по времени UTC) и, возможно, сколько людей находится в космосе. Поскольку большая часть этой информации не меняется часто, мы используем 2-е ядро только для проверки обновлений прогнозов прохождения или количества людей в космосе каждые 15 минут. Таким образом мы можем предотвратить слишком много вызовов API к серверу. Этот проект немного сложнее, но все же довольно прост.
Проект 3: простой движущийся знак сообщения с использованием MQTT, я пересмотрел проект, который был разработан для мини-платы ESP8266 D1, и это светодиодная матрица 8x8. Идея состоит в том, чтобы подключиться к брокеру MQTT, отправить сообщение в тему, на которой находится устройство. слушать - и отображать это сообщение. Это довольно просто и очень просто сделать, когда все настроено. И есть несколько шагов, чтобы настроить клиентское программное обеспечение MQTT на настольном компьютере. После настройки MQTT представляет собой очень мощный протокол обмена сообщениями, используемый многими устройствами IoT для отправки и получения сообщений.
Проект 4: Дисплей метеостанции - основан на мини-метеостанции ESP8266 D1 производства Squix78 и ThingPulse. Мы берем наши данные из Wunderground и отображаем текущие условия и температуру в градусах Фаренгейта. Мы используем 2-е ядро ESP32 для обновления наших данных каждые 10 минут. Его также легко настроить.
ПРИМЕРЫ BOUNS MINI: в библиотеке (и скетчах выше) используется шрифт 8x4, библиотека также содержит шрифт 5x4, который я использовал для большинства этих мини-примеров BOUNS. Я могу отметить несколько проблем с мелким шрифтом, одна из которых, кажется, вызывает проблемы при использовании WIFI устройства. Это то, что я хочу изучить больше, но у меня было время. Другая проблема в том, что он не прокручивается, можно прокручивать только более крупный шрифт. Таким образом, ни один из этих примеров не использует WIFI - они просто обновляют дисплей, и подробнее об этом будет позже.
Давайте начнем…..
Шаг 2. Установите плату DFRobot FireBeetle ESP32 в Arduino IDE
Итак, я собираюсь порекомендовать вам DF Robot Wiki по установке ядра платы для Arduino IDE.
Это довольно просто сделать в современной среде IDE (1.8.x или лучше).
www.dfrobot.com/wiki/index.php/FireBeetle_…
Я обнаружил, что библиотека WiFi, встроенная в IDE Arduino, вызывает проблемы (PS любая другая библиотека WiFi, которая может быть установлена в вашем каталоге библиотеки, может вызывать или не вызывать проблемы). Единственный способ (или, по крайней мере, самый простой), который я нашел для решения проблемы, - это удалить библиотеку WiFi из каталога IDE. К сожалению, нет хорошего способа сказать вам, где он может быть установлен - это зависит от того, как установлена IDE и от какой ОС вы используете.
Что я сделал, так это обнаружил библиотеку WiFi, которая вызывает проблемы, и просто переместил каталог WiFi на рабочий стол… и перезапустил среду IDE. Таким образом, вы можете сохранить библиотеку на случай, если она вам понадобится для плат Arduino WIFI.
90% проблем, которые я видел, были связаны с вышеуказанной проблемой. Если вы получаете много ошибок компиляции, связанных с использованием WiFi из каталога Arduino IDE или каталога библиотеки Arduino, это ваша проблема.
Моя вторая проблема заключается в том, что иногда загрузка эскиза не может быть загружена - в этом случае мне просто нужно снова нажать кнопку загрузки, и это сработает.
И, наконец, если вы открыли последовательную консоль, а затем закрыли ее - FireBeetle зависает.
Я знаю, что DF Robot активно работает над ядром платы, и как раз за то короткое время, что у меня была плата, они выпустили новое ядро. К сожалению, это не решило проблему Wi-Fi, которая является моей самой большой проблемой.
* Espressif имеет «общий» менеджер ядра, который можно установить, ядро действительно включает плату FireBeetle ESP32, но у меня возникла проблема с тем, как пронумерованы контакты. Интересно то, что библиотека WiFi работает со встроенной библиотекой WiFi, поэтому я знаю, что решение этой проблемы не за горами.
Если вы хотите попробовать ядра Espressif, вы можете найти дополнительную информацию здесь:
github.com/espressif/arduino-esp32
Мне лично нравится, как работает ядро DF-Robot, даже с некоторыми проблемами, которые у меня возникают.
** ПРИМЕЧАНИЕ. Я использую LinuxMint 18, основанный на Ubuntu 16.04. Я думаю, я не пробовал это ни на одной другой машине, но я считаю, что проблема присутствует во всех операционных системах, основываясь на некоторых поисковых запросах в Интернете. **
Шаг 3. Установите общие библиотеки для проектов
Все эти проекты используют несколько общих библиотек, поэтому сделать этот шаг проще сейчас.
В зависимости от библиотеки вы можете найти ее в диспетчере библиотек - это, безусловно, самый простой способ установить библиотеку.
Другой распространенный способ - установка через zip-файл, который также работает. Но обычно я использую метод ручной установки. На веб-сайте Arduino есть хорошее руководство по трем методам.
www.arduino.cc/en/guide/libraries
Для этих библиотек я бы порекомендовал ручной метод - поскольку существует несколько разных библиотек с одинаковыми именами, при использовании диспетчера библиотек вы можете получить неправильный.
Все эти проекты используют WiFi Manager, чтобы упростить подключение к вашему Wi-Fi - я решил сделать это, чтобы, если вам нужно переместить свой проект, вам не нужно перепрограммировать плату. Это то, что я использую для плат ESP8266, и он работает хорошо - не идеально. Удачи в использовании. Библиотека была перенесена на использование ESP32 пользователем github по имени bbx10. (Этот менеджер также должен работать с платами ESP8266)
Для этого нам нужно установить три библиотеки.
WiFiManager -
Веб-сервер -
И, наконец, DNSServer -
Также для всех эскизов характерна библиотека DF Robot DFRobot_HT1632C для светодиодной матрицы.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Библиотеку можно найти здесь (опять же, я бы порекомендовал ручную установку)
github.com/Chocho2017/FireBeetleLEDMatrix
Особое замечание: в моем репозитории github - у меня есть пара слегка измененных библиотек DFRobot_HT1632C
github.com/kd8bxp/DFRobot-FireBeetle-ESP32…
Модификация предназначена для более мелкого шрифта и используется только для некоторых бонусных примеров. Вы можете использовать модифицированную библиотеку, и это не должно вызывать никаких проблем. Существует также немного измененная библиотека (прикрепленная к некоторым эскизам в виде вкладок), которая может выполнять растровые изображения.
Если вы решите использовать слегка измененную версию, вам необходимо переименовать каталог «modified-library» в FireBeetleLEDMatrix и переместить эту папку в каталог библиотеки Arduino. Вам не обязательно использовать эту версию для этих проектов, она необходима, если вы хотите попробовать некоторые из более мелких шрифтов из бонусных примеров.
Это общие библиотеки - мы будем устанавливать определенные библиотеки для каждого проекта.
Перейдем к светодиодной матрице….
Шаг 4: крышка светодиодной матрицы 24x8
Потому что мы будем следовать руководству DF Robot Tutorial для светодиодной матрицы.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Введение: Этот светодиодный матричный дисплей 24 × 8 специально разработан для серии FireBeetle. Он поддерживает режим низкого энергопотребления и прокручиваемый дисплей. Благодаря высокопроизводительному чипу драйвера светодиода HT1632C каждый светодиод имеет независимый регистр, что упрощает управление отдельно. Он включает в себя тактовую частоту RC с частотой 256 кГц, всего 5 мкА в режиме низкого энергопотребления, поддерживает регулировку яркости PWM по 16 шкалам. Этот продукт также работает с другим микроконтроллером Arduino, таким как Arduino UNO.
Технические характеристики:
- Рабочее напряжение: 3,3 ~ 5 В светодиод
- Цвет: один цвет (белый / синий / желтый / красный / зеленый)
- Чип привода: HT1632C
- Рабочий ток: 6 ~ 100 мА
- Низкое энергопотребление: 5uARC
- часы: 256 кГц
- Выбор микросхемы (CS): выбор D2, D3, D4, D5
- Поддержка прокрутки дисплея
PIN-коды по умолчанию:
- DATAD6
- WRD7 (обычно не используется)
- CSD2, D3, D4, D5 по выбору (D2 по умолчанию)
- RDD8
- VCC 5VUSB; 3.7VLipo Батарея
(Все эти проекты используют D2 для выбора вывода, это можно легко изменить при необходимости.)
На задней панели светодиодной матрицы вы увидите 4 маленьких переключателя, убедитесь, что вы выбрали только один из контактов CS. С помощью этих маленьких переключателей вы выбираете свой вывод CS, значение по умолчанию - D2.
В WIKI DF Robot есть пример кода, этот код также есть в примерах для библиотеки. (Я считаю)
Еще одно примечание: используйте номера Dx для ваших контактов - в противном случае номера контактов будут номерами / именами контактов ввода-вывода.
И это может вызвать у вас проблемы.
Установка точки:
X составляет от 0 до 23 (или, если вы думаете об этом как о электронной таблице, это столбцы).
Y составляет от 0 до 7 (или, если вы думаете об этом как о электронной таблице, это строки).
Библиотека предоставляет функцию уставки.
display.setPoint (x, y) это установит курсор в то место, где теперь вы можете распечатать сообщение.
display.print («Привет, мир», 40); // это заставит дисплей отображать «Hello World», начиная с точки x, y и прокручивая экран.
Также есть setPixel (x, y) и clrPixel (x, y) - setPixel включит один светодиод в местоположении x, y, а clrPixel выключит светодиод в местоположении x, y.
Есть еще кое-что, что может делать эта библиотека, и большинство из них включено в примеры.
(Я бы порекомендовал запустить и изменить примеры, чтобы увидеть, на что он способен).
* Одна вещь, которой, кажется, не хватает, - это рисование растровых изображений - библиотека действительно может это делать, но по какой-то причине это частная функция библиотеки. См. Некоторые из моих бонусных примеров для немного измененной версии библиотеки.
** Еще одна вещь, которую он включает в себя набор шрифтов 5x4, что приятно иметь шрифт меньшего размера - он закомментирован, как всегда, в библиотеке. Я раскомментировал его, и он заработал, но заметил несколько проблем с ним - самая большая, что он не прокручивается. И я заметил, что это, похоже, вызывает проблемы либо с Wi-Fi, либо, возможно, с другой библиотекой, которую я хотел использовать.
Однако одна из модифицированных библиотек, которые я включил, использует шрифт 5x4.
Переходим к проектам…..
Шаг 5: Проект 1: простые светодиодные матричные часы NTP с дисплеем военного времени или дисплеем AMPM
Проект 1: простые светодиодные матричные часы NTP с дисплеем военного времени или AMPM, Эти часы будут подключаться к NTP (серверу времени), захватывать время и применять смещение, чтобы вы получали местное время. Время будет отображаться на светодиодной матрице. - Это очень простые часы, и очень простой 1-й проект.
Прежде чем мы начнем с этого простого проекта, может быть хорошей идеей узнать, что такое NTP -
NTP - это интернет-протокол, используемый для синхронизации часов компьютеров по некоторой временной привязке. Это стандартный протокол. NTP означает протокол сетевого времени.
NTP использует UTC в качестве эталонного времени (UTC - это всемирное координированное время), оно эволюционировало от GMT (время по Гринвичу), и в некоторых кругах оно называется Zulu Time (военное время). UTC основан на квантовом резонансе атома цезия.
NTP является отказоустойчивым и хорошо масштабируемым, протокол отличается высокой точностью, используя разрешение менее наносекунды.
*
Часы по всемирному координированному времени не очень полезны для большинства людей, поэтому нам нужно настроить часы на местное время. К счастью, мы можем сделать это довольно легко. Итак, давайте начнем с этих простых часов NTP….
Во-первых, нам нужно установить библиотеку, которая упрощает общение с серверами NTP.
github.com/arduino-libraries/NTPClient (эта библиотека, вероятно, находится в диспетчере библиотек)
Вы пропустили шаг 3 - и не знаете, как установить библиотеки (?) Лучше вернитесь и прочтите шаг 3:-)
Вам нужно перейти на этот веб-сайт и указать ближайший к вам город в вашем часовом поясе.
www.epochconverter.com/timezones
Когда вы нажмете Enter, вы увидите «Результаты преобразования», и в результатах вы увидите свое смещение (разницу в GMT / UTC) в секундах (для меня это -14400).
В скетче dfrobot_firebeetle_led_matrix_ntp_clock в строке 66 вы увидите:
#define TIMEOFFSET -14400 // Найдите смещение часового пояса здесь https://www.epochconverter.com/timezones OFF Установить в секундах # define AMPM 1 // 1 = AM PM время, 0 = MILITARY / 24 HR Time
замените -14400 своим смещением. В следующей строке вы увидите AMPM 1 - это заставит часы отображать время в AM / PM - если вы предпочитаете видеть его через 24 часа, сделайте единицу равной нулю.
Затем загрузите эскиз на свою доску, подключитесь к точке доступа (менеджер Wi-Fi) и введите данные для своего Wi-Fi. ЕСЛИ вы уже сделали это, вы должны увидеть «подключенный» прокрутку по экрану, а через несколько секунд вы должны увидеть время.
Вот и все для этого проекта - простой и легкий в использовании…..
(Возможные улучшения: отображение месяца, дня и года, установка зуммера и сигналов тревоги - обычно управляйте тем, что вы видите через веб-страницу. Эта идея потребовала бы большого переписывания текущего простого эскиза)
Готов к другому простому проекту - Показать, где находится МКС - Прогнозы пройдены и сколько людей находится в космосе! (PS этот скетч действительно использует веб-страницу для управления тем, что отображается)…..
Шаг 6: Проект 2: Отображение прогноза прохождения ISS,
Проект 2: Дисплей прогноза прохождения ISS, в этом проекте используется 2-е ядро процессора. Он покажет, насколько близко (в милях) находится МКС, когда ожидать следующего прохождения МКС в вашем местоположении (по времени UTC) и, возможно, сколько людей находится в космосе. Поскольку большая часть этой информации не меняется часто, мы используем 2-е ядро только для проверки обновлений прогнозов прохождения или количества людей в космосе каждые 15 минут. Таким образом мы можем предотвратить слишком много вызовов API к серверу. Этот проект немного сложнее, но все же довольно прост.
Этот проект основан на одном из моих более ранних проектов, который можно найти здесь:
(Простая система уведомлений ISS) В этом случае я использовал ESP8266 со встроенным OLED-экраном (D-Duino). По большей части в этом проекте просто используется другая система отображения, я расширил ее, чтобы вы могли изменять то, что хотите видеть на лету, через веб-страницу. Итак, приступим….
Большая заслуга в простоте использования принадлежит https://open-notify.org, который имеет очень простой и легкий в использовании API. В API open-notify есть три вещи, которые могут отображаться: местоположение МКС по широте и долготе, передавать прогнозы на основе заданной широты и долготы. И наконец, сколько людей (и их имен) находится в космосе.
Нам потребуется установить еще одну библиотеку - библиотеку ArduinoJson.
github.com/bblanchon/ArduinoJson
Нам также нужен TimeLib.h, но я не уверен, откуда он у меня и включен ли он в IDE (извините)….
Так зачем предсказывать, где будет МКС - МКС содержит различное любительское радиооборудование, и когда оно находится "над головой", радиолюбитель может установить контакт с МКС, используя очень простые (и дешевые) радиоприемники. Я даже делал это в мобильном (за рулем машины). Вам действительно не нужно много, чтобы эта работа работала. Единственное, что вам нужно, - это знать, где он находится. И направление антенны в общем направлении помогает.
Строки 57, 58, 59 - это некоторые отображаемые переменные - если они установлены в 1, вы увидите дисплей, если они установлены в 0 (ноль), вы не увидите дисплей. (Эти переменные могут быть установлены в эскизе или обновлены с веб-страницы, которую создает firebeetle - подробнее об этом позже).
int locDis = 1; // Отображение местоположения ISSint pasDis = 0; // Отображение прогнозов прохождения int pplDis = 1; // Отображение людей в космосе
поэтому locDis будет отображать местоположение МКС по широте и долготе - он также показывает, сколько миль она находится.
pasDis получит прогнозы прохождения с open-notify.org и отобразит их.
и, наконец, pplDis отобразит имена и количество людей в космосе - это может быть очень длинным, это не так.
тоже часто меняются. (вы можете изменить их или оставить, это совершенно необязательно)
Также нам нужно знать нашу широту и долготу и нанести их на эскиз.
Это не обязательно должно быть точное широта / долгота, это может быть центр вашего города или совсем немного. След от МКС широк, пока он над головой, и можно преодолеть сотни (или тысячи) миль, поэтому небольшое отклонение от широты / долготы не будет препятствием для сделки (в большинстве случаев), общение на расстояние более 500 миль - обычное дело.
Если вы не знаете свою широту и долготу, этот веб-сайт может вам помочь.
www.latlong.net Рядом с строкой 84 скетча вы увидите что-то вроде этого:
// Найдите здесь свою широту и долготу // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84,58558;
Это должно быть все, что нужно изменить. Загрузите эскиз и подключите Firebeetle к Интернету - и вы должны увидеть местоположение МКС, указанное в широте и долготе, и сколько миль от нее (помните, что это приблизительное расстояние. МКС движется очень быстро, и к моменту завершения отображения МКС отошла на много миль от того места, где была). Вы также должны увидеть людей в космосе. (ЕСЛИ вы не меняли указанную выше переменную).
Мы используем второе ядро ESP32 для запуска веб-сайта, использование сайта дает нам контроль над тем, что отображается на светодиодной матрице. Он должен быть довольно интуитивно понятным в отношении того, как это работает, в одном разделе показано, что включено для отображения, в другом разделе есть кнопки «да» и «нет» - нажатие «да» означает, что вы хотите его увидеть, «нет» означает, что не нужно не показать это. Вы также должны увидеть, что верхняя часть меняется в зависимости от кнопок.
Единственное, что здесь не так уж и сухо, - это как найти IP-адрес Firebeetle - к сожалению, я не смог придумать хороший способ его найти - поэтому я просто использовал последовательную консоль IDE для отображения it (9600 бод).
Откройте консоль, и вы должны увидеть IP-адрес. (откройте его до того, как вы получите сообщение о подключении) - другим моим вариантом было отобразить его на светодиодной матрице один раз прямо при запуске - я решил этого не делать, потому что вы можете не смотреть в это время, и вы его пропустите. Я думал отправить смс или что-то в этом роде, но, в конце концов, я просто стараюсь. (Я также пытался назначить статический IP / шлюз и т. Д., Я не мог заставить его работать правильно с менеджером Wi-Fi - код все еще в скетче, поэтому, если кто-то выяснит, дайте мне знать)
Скетч также продвигает встроенную FreeRTOS в ядро ESP32 - у нас есть задача, которая выполняется каждые 15 минут или около того, она обновляет прогнозы прохождения, а также людей в космосе. Как я уже сказал ранее, люди в космосе не так сильно меняются, так что, вероятно, это можно было бы перенести на другую задачу и, возможно, запускать один раз каждые 12 часов (или 6 часов) - но это работает и упрощает работу.
Для тех, кто не знает, FreeRTOS - это способ позволить одноядерному микроконтроллеру выполнять несколько задач.
Обычно вам нужно включать некоторые библиотеки и другие вещи, чтобы он работал, но он встроен в ядро ESP32, что делает ESP32 очень мощным устройством. для получения дополнительной информации о FreeRTOS
freertos.org/
УЛУЧШЕНИЯ: есть ряд вещей, которые можно улучшить для этого проекта, и почти каждый день я думаю о чем-то, что можно было бы сделать немного по-другому, или изменить, или добавить.
И в каталоге more examples репозитория вы можете увидеть некоторые из предыдущих / различных вещей, о которых я думал - некоторые из них не работали, некоторые просто изменились, а некоторые были включены в текущий эскиз.
* В какой-то момент я попытался добавить неопиксель к дисплею, чтобы он был немного больше похож на мой предыдущий проект - мне так и не удалось заставить его работать должным образом (я обнаружил, что это проблема с питанием, которую я не рассматривал). работает над улучшением этой идеи *
Во время написания этого шага я подумал, что, может быть, я смогу добавить способ обновления вашей широты и долготы на веб-сайт - таким образом, эскиз никогда не нужно будет изменять - я также подумаю об этом немного больше.
Улучшенный способ получить IP-адрес - это еще кое-что, что я хотел бы сделать (все еще думаю об этом)
Перейдем к нашему следующему проекту…..
Шаг 7. Проект 3: простой движущийся знак сообщения с использованием MQTT
"loading =" ленивый "" loading = "ленивый"
Итак, оказывается, что библиотека может отображать изображения - вы по какой-то причине эта функция кажется «частной» - ну, для следующих скетчей я еще раз изменил библиотеку и сделал drawImage общедоступной функцией.
На этот раз я поместил измененную библиотеку в каталог скетчей, так что вам не нужно переустанавливать библиотеку, скетч сначала смотрит на себя, затем он будет смотреть в директорию библиотеки, так что у нас все хорошо!
*** Я планирую отправить это изменение в DFRobot, так как это действительно очень круто и отчасти изящно иметь возможность делать такие наброски ***
Набросок светодиодных матричных изображений, здесь я сначала пытался выяснить, что нужно библиотеке, а что сработает, а что нет - с разной степенью успеха. Я обнаружил, что изображения 8x8 работают лучше всего, но вы можете заставить работать и другие. Я также нашел несколько онлайн-редакторов светодиодных матриц, одни работают лучше, другие.
xantorohara.github.io/led-matrix-editor/ - похоже, работает нормально, создает изображения 8x8, и вы хотите их в виде байтовых массивов.
www.riyas.org/2013/12/online-led-matrix-fo… этот работает хорошо и имеет возможность делать дисплеи размером более 8x8, дисплей, кажется, повернут на его стороне с этим дисплеем тем не мение. Здесь лучше всего работают байтовые массивы. Я использовал его для создания «космических захватчиков», показанных на видео выше.
Так, как это работает, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
переменная массива байтов изображения, ширина изображения (8), высота изображения (8), начальная позиция на экране x (0), y (0) обычно и номер смещения, который я не На 100% уверен, что он делает, поэтому большую часть времени я оставлял его на нуле.
В скетче LED Matrix Images есть 8 различных байтовых массивов с тремя разными методами.
- фейерверки - это первые массивы, честно говоря, я не уверен, как это работает - но он работает.
Затем идет рот - это действительно не совсем правильно, рот ложится не в ту сторону, и попытки внести какие-либо изменения только усугубляют ситуацию. (изучение того, что работает, а что нет, - это половина удовольствия)
За ним следует первый marioImg - он слишком велик для дисплея, и я думаю, что здесь вступает в игру смещение - я использовал его здесь, и вы можете увидеть переднюю часть марио, если вы измените смещение на 1 you ' Увидим его спину. (вы, я действительно не могу сказать вам, почему или что делает смещение. Кажется, что изображение сдвигается, но почему 2 сдвигает его так, чтобы вы могли видеть его спереди, и почему 1 сдвигает в другом направлении, я не могу вам сказать)
ИЗОБРАЖЕНИЯ - байтовый массив - это знак @, который я сделал - похоже, что я сделал с помощью инструмента на
Массив байтов pic1 также похож на то, что я пытался сделать, только он меньше, чем я пытался - что это такое, я не могу сказать, но могу сказать, что в целом это похоже на то, что я делал в редакторе.
mario2Img - это моя собственная версия большего Марио, сделанная для размера экрана 8x8 - и вы видите, что один или два пикселя неуместны (моя вина, а не дисплеи), он действительно похож на маленького Марио (вроде как).
invader1 и invader2 - обе мои идеи для космического захватчика. они получились довольно хорошими, и, накладывая изображения друг на друга, я могу создать эффект движения ног.
В справочнике есть два эскиза фейерверков, каждый немного отличается, и его стоит попробовать.
В одном фейерверк движется по экрану, поэтому немного больше / другая анимация … в другом одновременно отображаются два фейерверка.
Есть также три скетча «захватчиков», каждый немного отличается, в одном захватчик движется по экрану, и вы можете посмотреть, как я это сделал - (может быть, есть способы сделать это лучше, я не знаю)
Еще больше: в каталоге тестирования репозитория есть несколько набросков - большинство из них работали не совсем так, как я хотел, или были идеями, которые я хотел реализовать, но не работали так, как я хотел. Я оставил их, потому что у кого-то есть идеи * (я сделал небольшой «щит» с пикселем WS2812 на нем для использования с дисплеем ISS, но я подключил его к линии 3v, и мне просто не хватило мощность при работающей светодиодной матрице, пиксель работал нормально, без светодиодной матрицы ты, так что есть еще кое-что, что я мог бы с ней сделать) *
Также есть каталог под названием «Дополнительные примеры» - это вариации некоторых набросков проекта, будь то что-то было добавлено или удалено, или каким-то образом изменено. Для них они работают - просто это не финальный проект. Так что я оставил их снова, кто-то может извлечь из них что-нибудь полезное. (Может быть)
Надеюсь, вам понравилось это руководство так же, как мне понравилось создавать эти проекты:-)
Шаг 11: Ссылки…
Этот проект спонсировался и поддерживался DF Robot. Воспользуйтесь ссылками ниже для продуктов:
Firebeetle ESP32 -
Крышка Firebeetle LED Matrix 24x8 -
Мой репозиторий кода:
Если вы найдете этот или любой из моих проектов полезными или интересными, пожалуйста, поддержите меня. Все, что я получаю, идет на покупку большего количества деталей и выполнение большего количества / лучших проектов.
www.patreon.com/kd8bxp
Библиотека NTPClient
ArduinoJson.h
Библиотека погоды ESP8266
Библиотека Json-Streaming-Parser
Рекомендуемые:
Переработанный мотоцикл из крышки от бутылки: 9 шагов (с изображениями)
Переработанный мотоцикл из пробки от бутылки: v Что делать дома? Вот несколько простых способов сделать гоночные автомобили в домашних условиях. Я буду вести вас шаг за шагом, чтобы сделать гоночные автомобили от базовых до продвинутых. Вы можете сделать и попробовать. или вы можете упаковать его в подарок, чтобы подарить своим детям или друзьям. Я надеюсь
Прототип проекта светофора на базе Atmega16 с использованием 7-сегментного дисплея (моделирование Proteus): 5 шагов
Прототип проекта светофора на основе Atmega16 с использованием 7-сегментного дисплея (моделирование Proteus): В этом проекте мы собираемся создать проект светофора на основе Atmega16. Здесь мы взяли один 7 сегментный и 3 светодиода для обозначения сигналов светофора
Пробковые крышки сотовых телефонов с лазерной гравировкой: 6 шагов (с изображениями)
Пробковые крышки для сотовых телефонов с лазерной гравировкой: на этой неделе мы делаем лазерную гравировку на пробке с помощью нашего лазерного гравировального станка Speedy 400. Сегодня мы делаем чехлы для телефонов с лазерной гравировкой, используя наш пробковый материал. Мы покажем вам различные техники создания уникальных чехлов для телефонов с помощью нашей пробковой доски. W
Фонарик для крышки от бутылки своими руками: 15 шагов (с изображениями)
Фонарик для крышки от бутылки своими руками: Да, это фонарик, встроенный в крышку от бутылки :) Я подумал, что было бы забавно превратить обычную крышку в фонарик, не более того, я могу это сделать? И да, я сделал это, это был долгий путь с большим количеством попыток! Но если ты останешься со мной, ты
Как сделать проекционное отображение с помощью крышки Pi: 9 шагов (с изображениями)
Как выполнить проекционное отображение с помощью крышки Pi: мы вдохновились вашими проектами и создали руководство по отображению проекций с помощью крышки Pi. Если вы хотите, чтобы ваш проект работал без проводов через Wi-Fi, то это руководство для вас. Мы использовали MadMapper в качестве программного обеспечения для картографирования