Aller au contenu
TONER KEBAB WIKI
Outils pour utilisateurs
S'identifier
Outils du site
Rechercher
Outils
Afficher la page
Anciennes révisions
Exportation ODT
Liens de retour
Derniers changements
Gestionnaire Multimédia
Plan du site
S'identifier
>
Derniers changements
Gestionnaire Multimédia
Plan du site
Piste:
wiki:flossmanuals:imprimante-thermique-esoterique:accueil
====== Boite à histoire ésotérique ====== * **Porteur(s) du projet** : Léa GONTHIER (DSAA DG1), Damien MUTI (Prof. de Numérique) * **Date** : 03/2021 * **Contexte** : Projet "Mémoire" * **Fichiers** : * **Liens** : * **Capteurs/Actionneurs** : * Bouton poussoir * Imprimante thermique ---- ===== 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 ===== {{ :wiki:flossmanuals:imprimante-thermique-esoterique:montage.png?nolink |}} ===== 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 ===== vidéos, photos du making of...
wiki/flossmanuals/imprimante-thermique-esoterique/accueil.txt
· Dernière modification: 2021/05/25 11:50 de
lea_gonthier
Outils de la page
Afficher la page
Anciennes révisions
Liens de retour
Exportation ODT
Haut de page