Чтение изображений bmp с SD-карты, преобразование их и отображение на последовательном мониторе в Arduino

Может ли кто-нибудь помочь мне написать код, который может считывать 24-битный файл BMP с SD-карты, сохранять преобразованный в 8-битный BMP внутри и отображать значения 8-битных пикселей BMP на терминале Arduino в виде 2D-матрицы. . Программа должна выровнять байты как два HEX-значения на терминале Arduino. Я новичок в этом и не уверен, как это сделать. Мы будем очень признательны за вашу помощь.

Изображение присутствует на SD-карте и закодировано как:

include <SD.h>
include <SD_t3.h>

void setup() {
  Serial.begin (9600);
  delay (1000);
}

void loop() {
  if (!SD.begin (BUILTIN_SDCARD)) {
    Serial.println ("NO SDCARD");
    while (1);
  } else {
    Serial.println ("YES SDCARD");
  }
  delay (1000);
  if (SD.exists("filename.BMP")) {
    Serial.println ("filename.BMP exists");
  } else {
    Serial.println ("filename.BMP missing");
    while (1);
  }
  delay (1000);
  File hFi = SD.open ("filename.bmp", FILE_READ);
  if (hFi == false) {
    Serial.println ("File open failed");
    while (1);
  }

, 👍-1


1 ответ


0

Вы должны написать свои собственные процедуры. Для начала Посмотрите этот исходный код
Добавьте view-source:https://javl.github .io/image2cpp/. Хотя это javascript, его можно перенести на C++ в рабочую процедуру преобразования. Важной частью являются процедуры преобразования.
Предупреждение: поскольку память ОС ограничена, вам придется выполнять построчное чтение с SD-карты, преобразовывать строку и записывать построчно обратно, или вы используете максимальный размер 16x16.
По этой причине большинство конвертеров запускаются в браузере или на ПК, а результат используется в Arduino. ESP8266 с 4 МБ памяти облегчил бы жизнь. Для реализации графических подпрограмм на Arduino Teensy загляните в эту игровую библиотеку

,