Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
projets:matrice_led_24x24 [07/06/2018 16:23] Mathieu Hery |
projets:matrice_led_24x24 [05/12/2018 00:23] (Version actuelle) Mathieu Hery |
||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
{{projets:ledmatrix_smiley.jpg?400}} | {{projets:ledmatrix_smiley.jpg?400}} | ||
+ | {{projets:ppm_conversion_matrix.png?400}} | ||
+ | {{projets:ppm_conversion_math.png?400}} | ||
+ | {{projets:ppm_read_order.png?400}} | ||
+ | |||
---- | ---- | ||
+ | |||
+ | ==== Code Arduino ==== | ||
+ | |||
+ | ++++ Déclaration de la matrice | | ||
+ | <code c> | ||
+ | #include <Adafruit_GFX.h> | ||
+ | #include <Adafruit_NeoMatrix.h> | ||
+ | #include <Adafruit_NeoPixel.h> | ||
+ | |||
+ | #define PIN 9 | ||
+ | |||
+ | // MATRIX DECLARATION: | ||
+ | // See Adafruit NeoMatrix example > tiletest for more info | ||
+ | Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(8, 8, 3, 3, PIN, | ||
+ | NEO_TILE_BOTTOM + NEO_TILE_RIGHT + NEO_TILE_ROWS + NEO_TILE_PROGRESSIVE + | ||
+ | NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT + NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE, | ||
+ | NEO_GRB + NEO_KHZ800); | ||
+ | | ||
+ | void setup() { | ||
+ | matrix.setBrightness(15); | ||
+ | matrix.begin(); | ||
+ | } | ||
+ | </code> | ||
+ | ++++ | ||
+ | |||
+ | |||
+ | ++++ Gamma Correction (pour des couleurs plus réalistes !)| | ||
+ | <code c> | ||
+ | // Gamma correction | ||
+ | const uint8_t PROGMEM gamma8[] = { | ||
+ | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
+ | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, | ||
+ | 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, | ||
+ | 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, | ||
+ | 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, | ||
+ | 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, | ||
+ | 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25, | ||
+ | 25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36, | ||
+ | 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, | ||
+ | 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, | ||
+ | 69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, | ||
+ | 90, 92, 93, 95, 96, 98, 99, 101, 102, 104, 105, 107, 109, 110, 112, 114, | ||
+ | 115, 117, 119, 120, 122, 124, 126, 127, 129, 131, 133, 135, 137, 138, 140, 142, | ||
+ | 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 167, 169, 171, 173, 175, | ||
+ | 177, 180, 182, 184, 186, 189, 191, 193, 196, 198, 200, 203, 205, 208, 210, 213, | ||
+ | 215, 218, 220, 223, 225, 228, 231, 233, 236, 239, 241, 244, 247, 249, 252, 255 | ||
+ | }; | ||
+ | </code> | ||
+ | ++++ | ||
==== Créer et afficher des bitmaps multi-couleurs ==== | ==== Créer et afficher des bitmaps multi-couleurs ==== | ||
Ligne 19: | Ligne 72: | ||
*Dans gimp exporter le bitmap 24x24 en image ppm et choisir ASCII. | *Dans gimp exporter le bitmap 24x24 en image ppm et choisir ASCII. | ||
- | *Utiliser ce [[https://github.com/8mh8/ppmconverter|script python]] ci-dessous pour convertir le fichier ppm en deux pavés à copier/coller dans arduino | + | *Utiliser ce [[https://github.com/8mh8/ppmconverter|programme python]] pour convertir le fichier ppm en deux pavés à copier/coller dans arduino |
==== Bitmaps & Code Arduino ==== | ==== Bitmaps & Code Arduino ==== | ||
Ligne 640: | Ligne 692: | ||
{{projets:smile.png?200}} | {{projets:smile.png?200}} | ||
- | [[http://poplab.maisonpop.fr/ressources/ppm/smile.ppm|Smiley PPM]] | + | [[http://poplab.maisonpop.fr/ressources/ppm/smile.ppm|Smiley PPM]] (Siméon - Atelier Bidouille 2017) |
++++ | ++++ | ||
Smiley Arduino| | Smiley Arduino| | ||
Ligne 677: | Ligne 729: | ||
{{projets:titofortnite.png?200}} | {{projets:titofortnite.png?200}} | ||
- | [[http://poplab.maisonpop.fr/ressources/ppm/titofortnite.ppm|Tito Fortnite PPM]] | + | [[http://poplab.maisonpop.fr/ressources/ppm/titofortnite.ppm|Tito Fortnite PPM]] (Tito - Atelier Bidouille 2017) |
++++ | ++++ | ||
Tito Fortnite Arduino | | Tito Fortnite Arduino | | ||
Ligne 742: | Ligne 794: | ||
{{projets:titopixel.png?200}} | {{projets:titopixel.png?200}} | ||
- | [[http://poplab.maisonpop.fr/ressources/ppm/titopixel.ppm|Tito Pixel PPM]] | + | [[http://poplab.maisonpop.fr/ressources/ppm/titopixel.ppm|Tito Pixel PPM]] (Tito - Atelier Bidouille 2017) |
++++ | ++++ | ||
Tito Pixel | | Tito Pixel | | ||
Ligne 781: | Ligne 833: | ||
{{projets:titopointer2.png?200}} | {{projets:titopointer2.png?200}} | ||
- | [[http://poplab.maisonpop.fr/ressources/ppm/titopointer2.ppm|Tito Pointer PPM]] | + | [[http://poplab.maisonpop.fr/ressources/ppm/titopointer2.ppm|Tito Pointer PPM]] (Tito - Atelier Bidouille 2017) |
++++ | ++++ | ||
Tito Pointer | | Tito Pointer | | ||
Ligne 808: | Ligne 860: | ||
{{projets:titosnapchat.png?200}} | {{projets:titosnapchat.png?200}} | ||
- | [[http://poplab.maisonpop.fr/ressources/ppm/titosnapchat.ppm|Tito Snapchat PPM]] | + | [[http://poplab.maisonpop.fr/ressources/ppm/titosnapchat.ppm|Tito Snapchat PPM]] (Tito - Atelier Bidouille 2017) |
++++ | ++++ | ||
Tito Snapchat | | Tito Snapchat | | ||
Ligne 847: | Ligne 899: | ||
*On peut modifier le script python pour qu'il détecte combien de couleurs sont réellement utilisés et stocker ces données. Ensuite établir une correspondance entre les index de pixel et l'index de la couleur à attribuer. On manipulera plus de arrays, mais ils devraient être nettement moins volumineux que les précédents. | *On peut modifier le script python pour qu'il détecte combien de couleurs sont réellement utilisés et stocker ces données. Ensuite établir une correspondance entre les index de pixel et l'index de la couleur à attribuer. On manipulera plus de arrays, mais ils devraient être nettement moins volumineux que les précédents. | ||
*On peut essayer de reverse-engineer la manière dont l'outil qui convertit les bitmaps en hash fonctionne et utiliser une méthode similaire | *On peut essayer de reverse-engineer la manière dont l'outil qui convertit les bitmaps en hash fonctionne et utiliser une méthode similaire | ||
- | *Pour aller plus loin et rendre le code plus robuste | ||
- | *Lire l'en-tête et vérifier que l'on a bien 24x24, sinon renvoyer une erreur appropriée | ||
- | ==== Code Arduino ==== | ||
- | ++++ Déclaration de la matrice | | ||
- | <code c> | ||
- | Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(8, 8, 3, 3, PIN, | ||
- | NEO_TILE_BOTTOM + NEO_TILE_RIGHT + NEO_TILE_ROWS + NEO_TILE_PROGRESSIVE + | ||
- | NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT + NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE, | ||
- | NEO_GRB + NEO_KHZ800); | ||
- | </code> | ||
- | ++++ | ||