Показ дописів із міткою arduino. Показати всі дописи
Показ дописів із міткою arduino. Показати всі дописи

середа, 25 листопада 2020 р.

Бібліотека драйвера MAX7219 в Arduino framework

 Передмова

Бібліотека для роботи з семисегментним-восьмирозрядним модулем з драйвером на мікросхемі max7219. Дозволяє друкувати окремі цифри-символи в окремих розрядах, друкувати цілі числа, цілі числа певної ширини, числа з плаваючою комою, засвічувати окремі сегменти. Бібліотека написана в межах Arduino framework, тому має працювати на будь якому чипові який підтримує Arduino framework (але це не точно).
Модуль 7 сегментного 8 розрядного дисплею на max7219

Приклад використання

Завантажуєте бібліотеку з GitHub репозиторію. Додаєте до свого проекту файли бібліотеки. Вставляєте до головного файлу вашого проекту цей приклад:

#include <Arduino.h>
#include <SPI.h>
#include "max7219.h"

// 15 - GPIO15 (CS), 8 - number of digits, 5 - intensivity (brightness)
Max7219 max7219 = Max7219(15, 8, 5);

/* ESP32 SPI
  SCK   - GPIO_18
  MISO  - GPIO_21
  MOSI  - GPIO_23
*/

void setup() 
{
  SPI.begin(18, 21, 23);
  max7219.Begin();
}

void loop() 
{
  max7219.DecodeOn();
  max7219.SetIntensivity(5);
  
  max7219.PrintNtos(max7219.DIGIT_7, 1234, 6);
  delay(1000);
  max7219.Clean();

  max7219.PrintItos(max7219.DIGIT_4, 5678);
  delay(1000);
  max7219.Clean();

  max7219.PrintFtos(max7219.DIGIT_8, -45.678f, 2);
  delay(1000);
  max7219.Clean();

  for (uint8_t i = 0; i < 8; i++)
  {
    max7219.PrintDigit(i + 1, i + 1, false);
    delay(100);
  }

  for (uint8_t i = 0x0F; i > 0x00; i--)
  {
    max7219.SetIntensivity(i);
    delay(100);
  }
  
  for (uint8_t i = 0; i < 0x0F; i++)
  {
    max7219.SetIntensivity(i);
    delay(100);
  }
  
  for (uint8_t i = 8; i > 0 ; i--)
  {
    max7219.PrintItos(i, 87654321);
    delay(200);
    max7219.Clean();  
  }
  
  max7219.Clean();
  delay(1000);
}

Відео демострація



понеділок, 5 жовтня 2020 р.

Прошивка ESP32 власною firmware за допомоги Flash Download Tools

Передмова

Коли ви створили власну прошивку для ESP32, наприклад в Platformio, чи Arduino IDE. І вам потрібно передати бінарний код для прошивки пристроїв ESP32 іншим людям, не розголошуючи сирцевий код, або прошивати серію власних пристроїв. То IDE не підходить для цих цілей. Краще і правильно користуватись фірмовою утилітою "Flash Download Tools". Як це зробити, читаємо далі в статті.

Завантаження і встановлення

Щоб завантажити утиліту, перейдіть за цією ланкою

Завантажити FLASH DOWNLOAD TOOL

Теку з утилітою потрібно витягнути з архіву і розмістити в зручне для вас місце на диску ПК. Але зауважу, шлях до утиліти не має містити кириличних літер. Лише латиницею.

Запуск утиліти:

Запуск утиліти

Обирайте "Developer Mode":

Оберіть "Developer Mode"

Оберіть тип чипу, в мене ESP32:

Вибір чипу

Тепер з'явиться головне вікно прошивальщика:

Додаємо файли і налаштування

Треба додати 4 файли і призначити адреси розташування в пам'яті модуля:

  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 firmware.bin
Крім власного бінарного файла прошивки, що ми зкомпілювали firmware.bin нам протрібні ще три файли:
  • bootloader file
  • partition table file
  • firmware/app file
І де їх взяти?

Arduino IDE

Підготовка файлів для прошивання в Arduino IDE:
Підготовка файлів
Після компіляції створіть окрему папку для всіх чотирьох файлів де вам зручно. Перший файл "firmware.bin" буде розташований в теці скетча. Можна перейти з меню Arduino IDE "Скетч -> Показати теку скетчів". Або перейти за шляхом: "C:\Users\{user}\Documents\Arduino\{назва_вашого_скетчу}. Щоб добути інші файли, в файловому провідникові, потрібно дозволити перегляд прихованих тек. І так, розташування всіх файлів:
C:\Users\"Користувач"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\partitions\boot_app0.bin
C:\Users\"Користувач"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\bin\bootloader_dio_40m.bin
C:\Users\"Користувач"\AppData\Local\Temp\arduino_build_491506м'я_вашого_скетчу.ino.bin
C:\Users\"Користувач"\AppData\Local\Temp\arduino_build_491506м'я_вашого_скетчу.ino.partitions.bin
Кладемо всі ці чотири файли до теки, яку вже заздалегідь приготували і вказуємо їх для "FLASH DOWNLOAD TOOL". Або архівуємо теку і відправляємо третій стороні для прошивання.

Адреси для цих файлів для "FLASH DOWNLOAD TOOL", як вже було зазначено вище, мають бути такі:
  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 Ім'я_вашого_скетчу.ino.partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 Ім'я_вашого_скетчу.ino.bin

Platformio

Спершу підготуємо потрібні файли. В терміналі вашого проекту виконайте цей рядок:
pio run -v -t upload

Підготовка файлів


Після роботи компілятора і прошивача створяться всі потрібні файли за таким шляхом:
0x1000 C:\Users\"Ім'я_користувача"\.platformio\packages\framework-arduinoespressif32\tools\sdk\bin\bootloader_dio_40m.bin
0xe000 C:\Users\"Ім'я_користувача"\.platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin
0x8000 .pio\build\esp32dev\partitions.bin
0x10000 .pio\build\esp32dev\firmware.bin 
В файловому провідникові, потрібно дозволити перегляд прихованих тек. Файл partitions.bin та firmware.bin знаходяться в прихованій теці .pio вашого поточного проекту.

Кладемо всі ці чотири файли до теки, яку вже заздалегідь приготували і вказуємо їх для "FLASH DOWNLOAD TOOL". Або архівуємо теку і відправляємо третій стороні для прошивання.

Адреси для цих файлів для "FLASH DOWNLOAD TOOL", як вже було зазначено вище, мають бути такі:
  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 firmware.bin

VisualMicro for MS Visual Studio

Хто використовує розширення ARDUINO IDE FOR VISUAL STUDIO, то добути потрібні файли можна за такими шляхами, як шлях до вашого проекту і тека "Debug" або "Release", де будуть два файли "назва_проекту.bin" та "назва_проекту.partitions.bin", а ще два файли беруться там де і для Arduino IDE файли bootloader_dio_40m.bin та boot_app0.bin. Наприклад для проекту "blink1":
C:\Users\"Ім'я_користувача"\source\repos\Blink1\Blink1\Release\Blink1.ino.bin
C:\Users\"Ім'я_користувача"\source\repos\Blink1\Blink1\Release\Blink1.partitions.bin
C:\Users\"Ім'я_користувача"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\partitions\boot_app0.bin
C:\Users\"Ім'я_користувача"\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\bin\bootloader_dio_40m.bin
Кладемо всі ці чотири файли до теки, яку вже заздалегідь приготували і вказуємо їх для "FLASH DOWNLOAD TOOL". Або архівуємо теку і відправляємо третій стороні для прошивання.

Адреси для цих файлів для "FLASH DOWNLOAD TOOL", як вже було зазначено вище, мають бути такі:
  • 0x1000 bootloader_dio_40m.bin
  • 0x8000 Ім'я_вашого_проекту.ino.partitions.bin
  • 0xe000 boot_app0.bin
  • 0x10000 Ім'я_вашого_проекту.ino.bin