Outils pour utilisateurs

Outils du site


wiki:flossmanuals:imprimante-thermique-esoterique:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
wiki:flossmanuals:imprimante-thermique-esoterique:accueil [2021/04/26 12:01]
lea_gonthier créée
wiki:flossmanuals:imprimante-thermique-esoterique:accueil [2021/05/25 11:50] (Version actuelle)
lea_gonthier [Programmes]
Ligne 14: Ligne 14:
 ===== Intentions : explication du projet et objectifs ===== ===== Intentions : explication du projet et objectifs =====
  
 +L'objectif est de réaliser une boite à histoire ésothérique afin de susciter la curiosité. À l'aide d'une imprimante thermique et d'un bouton groove, des histoires seront générés et imprimées grâce a Arduino lorsque l'utilisateur appuieras sur celui-ci. Ces histoires sont choisies aléatoirement dans une liste et imprimées.
  
 ===== Plans et schémas de fonctionnement ===== ===== Plans et schémas de fonctionnement =====
  
 +{{ :wiki:flossmanuals:imprimante-thermique-esoterique:montage.png?nolink |}}
 ===== Programmes ===== ===== Programmes =====
  
- +ARDUINO 
 + 
 +<code> 
 + 
 + //appel de la bibiothèque de l'imprimante, voir le tutoriel d'utilisation de l'imprimante sur adafruit : https://learn.adafruit.com/mini-thermal-receipt-printer 
 + 
 +#include "Adafruit_Thermal.h" 
 +#include "SoftwareSerial.h" 
 +#define TX_PIN 6  
 +#define RX_PIN 5 
 + 
 +SoftwareSerial mySerial(RX_PIN, TX_PIN);  
 +Adafruit_Thermal printer(&mySerial);     
 + 
 + //une led est utilisée pour vérifier le bon fonctionnement du bouton. Ce n'est pas obligatoire.  
 +const int buttonPin = 2;     // le numéro de la broche utilisée par le bouton 
 +const int ledPin =  13;      // le numéro de la broche utilisée par la led 
 +int buttonState = 0;         // variable pour vérifier l'état du bouton  
 + 
 + 
 +//placez ici le titre de l'oeuvre 
 +const char string_0[] PROGMEM = "TITRE \n";    
 +const char string_1[] PROGMEM = "TITRE \n"; 
 +const char string_2[] PROGMEM = "TITRE \n"; 
 +const char string_3[] PROGMEM = "TITRE \n"; 
 + 
 +// placez le texte de votre histoire/poème ici 
 +// le texte doit être sur une seule ligne, voir le wiki du projet pour le formatage du texte et des caractères spéciaux 
 +const char string_4[] PROGMEM = "Histoire,\n histoire.\n Histoire, \n histoire. \n";    
 +const char string_5[] PROGMEM = "Histoire,\n histoire.\n Histoire, \n histoire. \n"; 
 +const char string_6[] PROGMEM = "Histoire,\n histoire.\n Histoire, \n histoire. \n"; 
 +const char string_7[] PROGMEM = "Histoire,\n histoire.\n Histoire, \n histoire. \n"; 
 + 
 +//fin du mode histoire 
 + 
 + 
 +// Tableau des textes 
 + 
 +const char* const string_table[] PROGMEM = {string_0, string_1,string_2,string_3,}; // si besoin compléter les valeurs string manquantes  
 +const char* const string_table1[] PROGMEM = {string_4, string_5,string_6, string_7,}; // si mode cadavre exquis commentez pour désactiver 
 + 
 +char buffer[1040];    // assurez-vous que la valeur indiquée soit supérieure au nombre maximum de caractères d'un string 
 + 
 +int chiffreal = 0; // définit le nom de la valeur aléatoire pour déterminer le texte à utiliser 
 + 
 + 
 +//fonction intégrant les différents textes à imprimer appelés ici vers 1, vers 2, ... 
 +void vers1 () { 
 + 
 +chiffreal = random(0,4); // sélectionne un string entre 0 et 4  
 + 
 +  { 
 +    strcpy_P(buffer, (char*)pgm_read_word(&(string_table[chiffreal]))); // copie le string sélectionné aléatoirement de la table string_table 
 +    printer.println(buffer); //imprime le string situé dans le buffer de la carte 
 +    delay( 1000 ); // patiente une seconde 
 +   } 
 +  } 
 + 
 +  void vers2 () { 
 +  { 
 +    strcpy_P(buffer, (char*)pgm_read_word(&(string_table1[chiffreal]))); // copie le string sélectionné aléatoirement de la table string_table1 
 +    printer.println(buffer); 
 +    delay( 1000 ); 
 +   } 
 +  } 
 + 
 +void setup() { 
 +  // défini la broche de la led comme une sortie 
 +  pinMode(ledPin, OUTPUT); 
 +  // défini la broche du bouton comme une entrée 
 +  pinMode(buttonPin, INPUT); 
 +  // initialise l'imprimante 
 +  mySerial.begin(19200); 
 +  printer.begin(); 
 +
 + 
 +void loop() { 
 +  // vérifier l'état du bouton 
 +  buttonState = digitalRead(buttonPin); 
 + 
 +  // Si le bouton est pressé 
 +  if (buttonState == HIGH) { 
 +    // Allume la led 
 +    digitalWrite(ledPin, HIGH); 
 +    printer.wake(); //réveille l'imprimante 
 +    printer.feed(1); // déroule le papier sans imprimer 
 +    printer.boldOn(); // met le texte en gras 
 +    vers1(); // imprime le premier texte 
 +    vers2(); // imprime le second texte ... 
 +//    vers3(); // en fonction du nombre d'éléments à afficher décommentez cette ligne. Si vous souhaitez afficher plus d'éléments pensez à créer la fonction correspondante plus haut (ex ici void vers4) 
 +    printer.feed(1); 
 +    printer.println("Laurent Colomb \n Vocabul\x82s"); // placez ici votre signature 
 +    printer.boldOff(); // fin du texte en gras 
 +    printer.feed(2); 
 +  printer.sleep(); //met en sommeil l'imprimante 
 +     
 +  }  
 +  else { 
 +    // éteins la led et ne fais rien  
 +    digitalWrite(ledPin, LOW); 
 + 
 + 
 + } 
 +   
 + }
  
 +</code>
 ===== Réalisation de la maquette ===== ===== Réalisation de la maquette =====
 vidéos, photos du making of... vidéos, photos du making of...
  
wiki/flossmanuals/imprimante-thermique-esoterique/accueil.1619431269.txt.gz · Dernière modification: 2021/04/26 12:01 de lea_gonthier