Sommario:
- Passaggio 1: elenco dei materiali
- Passaggio 2: test e configurazione della stampante
- Passaggio 3: progettazione del programma
- Passaggio 4: circuito morbido
- Passaggio 5: mettere tutto insieme
Video: Maglione Merry Grinchmas, stampante termica + GemmaM0: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Il maglione Merry Grinchmas è un capo interattivo che fornisce una vasta gamma di messaggi stampati personalizzati come protesta ogni volta che qualcuno tocca il pompon del cappello del Grinch. Messaggi anti-natalizio provenienti da una stampante termica controllata da Gemma MO, Arduino e Capacitive Sensing.
Passaggio 1: elenco dei materiali
- Gemma MO
- Stampante termica Guts -
- Nastro in tessuto conduttivo
- Maglione allentato
- Provato
- Kit stoppino + feltro
- Fibra conduttiva -
- Filo di rame
- Resistori (3.3k + 2.2k)
- Alimentazione - 7.5V, 3A
- Batteria Li-Po
- Saldare
- Colla per tessuti
- Arduino Uno, morsetti a coccodrillo e breadboard (per i test)
Passaggio 2: test e configurazione della stampante
Prima di tutto, testare la stampante per vedere se ha abbastanza potenza, altrimenti, quando si preme il pulsante di ripristino sulla stampante per stampare la pagina di prova, continuerà a stampare la stessa riga più e più volte (figura 1).
Quando esce la stampa di prova, è il momento di controllare il BaudRate poiché Printer Guts funziona a 9600 e per impostazione predefinita Adafruits Library, utilizza 19200 come altre stampanti termiche che vendono. Controlla qui:
La figura 3 mostra nello specifico come cablare la stampante.
Il test aiuta a calibrare i diversi stili di carattere per creare qualsiasi design personalizzato. (Immagine 4).
C'è un numero casuale che sceglie tra 12 frasi diverse, inclusi diversi stili testuali per intestazione, corpo del testo e firma.
Infine, per aggiungere qualsiasi immagine, è necessario convertirla in un'immagine Bitmap. (Immagine 6). Qui la scelta è stata il Grinch. (Immagine 7)
Un'ultima nota. Utilizzando la stampante con Gemma M0, richiede alcune regolazioni per utilizzare la seriale Hardware (Figura 8).
Passaggio 3: progettazione del programma
Cosa mi aspetto dal mio programma?
1) Ho un led RGB che fornisce un feedback visivo sulla stampante. Verde per pronto, rosso per la stampa
Poiché il Gemme M0 ha un Neopixel incorporato, per codificarlo, il led deve essere indirizzato come se fosse una striscia LED.
#define NUMPIXELS 1 // Numero di LED nella striscia
void setup() {
strip.begin(); // Inizializza i pin per l'output strip.show(); // Spegni tutti i LED al più presto
}
ciclo vuoto(){
strip.setPixelColor(0, 255, 127, 0);
strip.show();
}
2) Un sensore capacitivo che attiva il sistema.
Il rilevamento capacitivo richiede una libreria e la definizione di alcune variabili. Utilizza un ingresso analogico che deve essere calibrato. Potrei richiedere alcuni test per modificare i valori del tocco.
#include "Adafruit_FreeTouch.h"
int touch = 1000;#define CAPTOUCH_PIN A0
long OldState = 0;
void checkpress() { // Ottieni lo stato corrente del pulsante. lungo nuovoStato = qt_1.measure(); Serial.println(qt_1.measure()); if (newState > touch && oldState < touch) { // Breve ritardo per il pulsante antirimbalzo. ritardo(20); // Controlla se il pulsante è ancora basso dopo l'antirimbalzo. lungo nuovoStato = qt_1.measure(); } if (newState < touch) { // Non fare nulla } else { // Fai questo }
3) Stampa messaggi diversi ogni volta che il sistema viene attivato
Il programma randomizzerà un numero ogni volta che il programma viene eseguito
void printNatale(){
randomSeed(analogRead(0)*analogRead(1));
numerocasuale = casuale(1, 12);
printer.inverseOn();
printer.println(F("Regali di Natale Inc.")); printer.inverseOff();
switch (numero casuale) {
caso 1: // istruzioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Ecco di cosa si tratta, no? È di questo che si tratta *sempre*. Regali, regali… regali, regali, regali, regali, regali! Vuoi sapere cosa succede ai tuoi regali? Vengono tutti da me. Nella tua spazzatura. Vedi cosa sto dicendo? Nella tua *spazzatura*. Potrei impiccarmi con tutte le brutte cravatte natalizie che ho trovato alla discarica. E l'avarizia..")); rottura; caso 2: // istruzioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Oh, l'umanità del Chi.")); caso 3: // istruzioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Oh, no, la slitta, i regali, saranno distrutti, e me ne importa!")); rottura; case 4: // istruzioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Fai esplodere questa musica natalizia. E' gioiosa e trionfante.")); rottura; caso 5: // dichiarazioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Sto mangiando solo perché mi annoio?")); rottura; caso 6: // dichiarazioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("C'è, tuttavia, una piccolissima tradizione natalizia che trovo abbastanza significativa…[solleva il vischio]Vischio.[si mette il vischio sul sedere]Ora arricciati e bacialo, Whoville![dimenando il vischio] Boi-yoi-yoi-yoing!")); rottura; caso 7: // dichiarazioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Ora ascoltami, signorina! Anche se siamo *orribilmente storpiati*, non ci saranno facce tristi a Natale.")); rottura; case 8: // dichiarazioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Holiday who-be what-ee?")); rottura; case 9: // dichiarazioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("Stai passando un buon Natale?")); rottura; caso 10: // dichiarazioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("E faranno festa, festa, festa, festa. Mangeranno il loro Who-Pudding e la rara Who-Roast Beast. Ma è qualcosa che non sopporto minimamente. Oh, no. Io STO PARLANDO IN RIMA!")); rottura; caso 11: // dichiarazioni printer.println(F("")); // Imposta la giustificazione del testo (destra, centro, sinistra) -- accetta 'L', 'C', 'R' printer.justify('L'); printer.println(F("L'avarizia non finisce mai! Voglio mazze da golf. Voglio diamanti. Voglio un pony così posso cavalcarlo due volte, annoiarmi e venderlo per fare la colla. Guarda, non voglio fare ondate, ma questa *intera* stagione natalizia è…")); rottura; }
// Prova più stili
stampante.boldOn(); printer.justify('R'); printer.println(F("Grinch")); stampante.boldOff(); stampante.println(F("")); printer.justify('L'); // Verifica l'attivazione e la disattivazione della doppia altezza del carattere printer.doubleHeightOn(); printer.println(F("Buon Grinchmas!")); printer.doubleHeightOff(); stampante.println(F("")); stampante.println(F(""));
// Stampa il logo 75x75 pixel in adalogo.h:
printer.printBitmap(grinch_width, grinch_height, grinch_data);
stampante.println(F(""));
stampante.println(F(""));
stampante.sleep(); // Di' alla stampante di dormire
ritardo (3000L); // Sospendi per 3 secondi printer.wake(); // DEVE wake() prima di stampare di nuovo, anche se reset printer.setDefault(); // Ripristina la stampante ai valori predefiniti }
Passaggio 4: circuito morbido
Poiché il circuito morbido deve essere posizionato in modo sicuro nel maglione, ho prestato particolare attenzione al design del circuito (immagine 1) e al posizionamento del componente.
Dopo aver testato il circuito completo utilizzando morsetti a coccodrillo e breadboard (foto 2 e 3), sono passato al posizionamento di componenti temporanei sul feltro, prima di cucire e saldare (foto 4 e 5).
Nota importante: il cablaggio comprensivo delle resistenze è essenziale in quanto questo circuito necessita di un partitore di tensione per evitare che la corrente danneggi la scheda. (Immagine 6)
Ultimo passaggio qui, testare tutto (Immagine 7)
Passaggio 5: mettere tutto insieme
1) Creazione del carattere in feltro (Immagine 1 e 2)
2) Cucire lettere (Immagine 3)
3) Creare una busta per il rotolo di carta e una struttura per la stampante e il portabatterie Li-po (Foto 4 e 5). Tutto è cucito al maglione.
4) Creare la faccia Grinch che funzioni come copertina della stampante. Il circuito prosegue sotto il cappello con uno strato di nastro conduttivo in tessuto che si collega al pompon. Il pompon è realizzato in roving di lana verde e fibra conduttiva. (Immagine 6).
5) Siccome l'alimentatore richiede un cavo per essere alimentato ho creato una copertina fatta di filato usando una magliaia francese. (Figura 7 Opzionale).
6) L'ultimo passaggio, assicurati che tutto sia a posto e provalo!
Consigliato:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)
Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
Riconoscimento delle immagini con schede K210 e Arduino IDE/Micropython: 6 passaggi (con immagini)
Riconoscimento immagine con schede K210 e Arduino IDE/Micropython: ho già scritto un articolo su come eseguire demo OpenMV su Sipeed Maix Bit e ho anche realizzato un video di demo di rilevamento oggetti con questa scheda. Una delle tante domande che le persone hanno posto è: come posso riconoscere un oggetto che la rete neurale non è tr
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: 13 passaggi (con immagini)
Gesture Hawk: Robot controllato con gesti della mano che utilizza un'interfaccia basata sull'elaborazione delle immagini: Gesture Hawk è stato presentato in TechEvince 4.0 come una semplice interfaccia uomo-macchina basata sull'elaborazione delle immagini. La sua utilità sta nel fatto che non sono necessari sensori aggiuntivi o indossabili tranne un guanto per controllare l'auto robotica che funziona su diversi