Non pas vraiment, mais ce que j'essayerais de faire c'est de créer un fichier binaire avec les données de l'image
/* SUR MEGA
MOSI -> pin 51
MISO -> pin 50
CLK -> pin 52
SS -> pin 53
et bien sûr câbler le 5V et GND...
*/
#include <SPI.h>
#include "SdFat.h"
SdFat SD;
#define SD_CS_PIN SS
File myFile;
const uint16_t fourmi[9296] PROGMEM = {
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0010 (16) pixels
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0020 (32) pixels
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, // 0x0030 (48) pixels
0xB596, 0x6B6D, 0x4228, 0x4208, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4228, 0x4208, 0x4208, 0x630C, 0x9492, 0xBDF7, 0xEF5D, // 0x0040 (64) pixels
... J'AI COUPE ICI POUR QUE CA RENTRE DANS CE POST
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9CF3, 0xCE59, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x2440 (9280) pixels
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x2450 (9296) pixels
};
const size_t tailleImage = 9296 * sizeof(uint16_t); // le nombre d'octets dans le tableau
void setup() {
Serial.begin(115200);
if (!SD.begin(SD_CS_PIN)) {
Serial.println(F("erreur acces SD"));
return;
}
// on écrit les octets en mémoire
myFile = SD.open("fourmi.bin", O_WRITE);
if (myFile) {
myFile.write(fourmi, tailleImage); // J'ai jamais essayé de voir si la fonction write de la SDFat traite le PROGMEM correctement , à vérifier
myFile.close();
} else {
Serial.println(F("erreur ecriture fichier"));
}
}
void loop() {}
une fois que vous avez fait tourner cela, vous avez un fichier sur votre carte SD qui s'appellera fourmi.bin
et qui correspond bit à bit à votre structure mémoire.
Pour l'afficher () vous le relisez bout par bout (à vous de définir la taille du buffer supportable par votre programme, 512 octets sur un MEGA correspondraient au buffer de la libraire) et vous faites une boucle qui allume ou éteint les pixels en fonction de cela - bien sûr faudra connaître la taille de l'image, ça doit être codé quelque part sans doute
--> ce sera lent