Inhoudsopgave:
- Stap 1: Materiaallijst
- Stap 2: Printer testen + instellen
- Stap 3: Het programma ontwerpen
- Stap 4: Zacht circuit
- Stap 5: Alles samenbrengen
Video: Merry Grinchmas-sweater, thermische printer + GemmaM0 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
De Merry Grinchmas-sweater is een interactief kledingstuk dat een breed scala aan gepersonaliseerde gedrukte berichten biedt als een klacht wanneer iemand de pompon van de Grinch-hoed aanraakt. Anti-kerstberichten komen door een thermische printer die wordt bestuurd door Gemma MO, Arduino en Capacitive Sensing.
Stap 1: Materiaallijst
- Gemma MO
- Thermische printer Guts -
- Geleidende stoffen tape
- Losse trui
- Voelde
- Zwerven + vilten kit
- Geleidende vezel -
- Koperdraad
- Weerstanden (3,3k + 2,2k)
- Voeding - 7.5V, 3A
- Li-Po-batterij
- Soldeer
- Textiellijm
- Arduino Uno, Alligator Clips & breadboard (om te testen)
Stap 2: Printer testen + instellen
Allereerst, test de printer om te zien of deze voldoende stroom heeft, anders blijft hij dezelfde regel steeds opnieuw afdrukken als u op de resetknop op de printer drukt om de testpagina af te drukken (afbeelding 1).
Wanneer de testafdruk uitkomt, is het tijd om de BaudRate te controleren, aangezien de Printer Guts werken op 9600 en standaard Adafruits Library 19200 gebruikt, net als andere thermische printers die ze verkopen. Check het hier:
Afbeelding 3 laat specifiek zien hoe de printer moet worden aangesloten.
De test helpt bij het kalibreren van de verschillende letterstijlen om elk aangepast ontwerp te maken. (Afbeelding 4).
Er is een willekeurig getal dat kiest tussen 12 verschillende zinnen, inclusief verschillende tekststijlen voor een kop, hoofdtekst en handtekening.
Ten slotte, om een afbeelding toe te voegen, moet deze worden geconverteerd naar een Bitmap-afbeelding. (Afbeelding 6). Hier was de keuze de Grinch. (Afbeelding 7)
Een laatste opmerking. Het gebruik van de printer met Gemma M0 vereist enkele aanpassingen om de hardware serieel te gebruiken (Afbeelding 8).
Stap 3: Het programma ontwerpen
Wat verwacht ik van mijn programma?
1) Ik heb een RGB-led die visuele feedback geeft over de printer. Groen voor klaar, rood voor afdrukken
Omdat de Gemme M0 een ingebouwde Neopixel heeft, moet de led worden geadresseerd alsof het een ledstrip is om deze te coderen.
#define NUMPIXELS 1 // Aantal leds in strip
ongeldige setup() {
strip.begin(); // Initialiseer pinnen voor output strip.show(); // Schakel alle LED's zo snel mogelijk uit
}
lege lus(){
strip.setPixelColor (0, 255, 127, 0);
strip.show();
}
2) Een capacitieve sensor die het systeem activeert.
Capacitieve detectie vereist een bibliotheek en het definiëren van enkele variabelen. Het gebruikt één analoge ingang die moet worden gekalibreerd. Het kan zijn dat ik wat testen nodig heb om de waarden van aanraking te wijzigen.
#include "Adafruit_FreeTouch.h"
int touch = 1000;#define CAPTOUCH_PIN A0
lange oude Staat = 0;
void checkpress() { // Haal de huidige knopstatus op. lange newState = qt_1.measure(); Serial.println(qt_1.measure()); if (newState > touch && oldState <touch) { // Korte vertraging om knop te debouncen. vertraging(20); // Controleer of de knop nog steeds laag is na debounce. lange newState = qt_1.measure(); } if (newState < touch) { // Niets doen } else { //Do this }
3) Druk verschillende berichten af telkens wanneer het systeem wordt geactiveerd
Het programma maakt een willekeurig nummer elke keer dat het programma wordt uitgevoerd
void printKerstmis(){
randomSeed(analogRead(0)*analogRead(1));
willekeurig getal = willekeurig (1, 12);
printer.inverseOn();
printer.println(F("Xmas Inc. Presents")); printer.inverseOff();
schakelaar (willekeurig getal) {
geval 1: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Dat is waar het allemaal om draait, nietwaar? Daar is het altijd *over* over gegaan. Geschenken, geschenken… geschenken, geschenken, geschenken, geschenken, geschenken! Wil je weten wat er met je geschenken gebeurt? Ze komen allemaal naar me toe. In je vuilnis. Zie je wat ik zeg? In je *vuilnis*. Ik zou mezelf kunnen ophangen met alle slechte kerststropdassen die ik op de vuilnisbelt vond. En de hebzucht..")); pauze; geval 2: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Oh, de Who-manity.")); geval 3: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Oh nee, de slee, de cadeautjes, ze zullen vernietigd worden, en het kan me schelen!")); pauze; geval 4: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Blast deze kerstmuziek. Het is vrolijk en triomfantelijk.")); pauze; geval 5: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Ben ik gewoon aan het eten omdat ik me verveel?")); pauze; case 6: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Er is echter één piepkleine kersttraditie die ik heel zinvol vind… [houdt maretak omhoog]Maretak. Boi-yoi-yoi-yoing!")); pauze; case 7: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Luister eens naar me, jongedame! Zelfs als we *vreselijk verminkt* zijn, zullen er geen droevige gezichten zijn met Kerstmis.")); pauze; case 8: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Vakantie wie-is wat-ee?")); pauze; geval 9: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("Heb je een hulst, vrolijke kerst?")); pauze; geval 10: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("En ze zullen feesten, feesten, feesten, feesten. Ze zullen hun Who-Pudding en zeldzame Who-Roast Beast opeten. Maar dat is iets waar ik absoluut niet tegen kan. Oh nee. Ik 'M SPREEK IN RIJM!")); pauze; geval 11: // statements printer.println(F("")); // Tekstuitvulling instellen (rechts, midden, links) -- accepteert 'L', 'C', 'R' printer.justify('L'); printer.println(F("De hebzucht eindigt nooit! Ik wil golfclubs. Ik wil diamanten. Ik wil een pony zodat ik er twee keer op kan rijden, me kan vervelen en het kan verkopen om lijm te maken. Kijk, ik wil geen golven maken, maar dit *hele* kerstseizoen is…")); pauze; }
// Test meer stijlen
printer.boldOn(); printer.justify('R'); printer.println(F("Grinch")); printer.boldOff(); printer.println(F("")); printer.justify('L'); // Testkarakter dubbele hoogte aan en uit printer.doubleHeightOn(); printer.println(F("Vrolijke Grinchmas!")); printer.doubleHeightOff(); printer.println(F("")); printer.println(F(""));
// Print het 75x75 pixel logo in adalogo.h:
printer.printBitmap (grinch_width, grinch_height, grinch_data);
printer.println(F(""));
printer.println(F(""));
printer.slaap(); // Vertel de printer om te slapen
vertraging (3000L); // Slaap 3 seconden printer.wake(); // MOET wakker worden () voordat opnieuw wordt afgedrukt, zelfs als printer.setDefault () wordt gereset. // Herstel printer naar standaard }
Stap 4: Zacht circuit
Omdat het zachte circuit veilig in de trui moet worden geplaatst, heb ik speciale aandacht besteed aan het circuitontwerp (Afbeelding 1) en de plaatsing van het onderdeel.
Na het testen van het volledige circuit met behulp van krokodillenklemmen en breadboard (Afbeeldingen 2 & 3), sprong ik in het plaatsen van tijdelijke componenten op het vilt, voordat ik ging naaien en solderen (Afbeelding 4 & 5).
Belangrijke opmerking: de bedrading inclusief de weerstanden is essentieel omdat dit circuit een spanningsdeler nodig heeft om te voorkomen dat de stroom het bord beschadigt. (Afbeelding 6)
Laatste stap hier, alles testen (Afbeelding 7)
Stap 5: Alles samenbrengen
1) Het vilten lettertype maken (Afbeelding 1 & 2)
2) Naai letters (Afbeelding 3)
3) Maak een zakje voor de papierrol en een structuur voor de printer en de Li-po batterijhouder (Afbeelding 4 & 5). Alles is aan de trui genaaid.
4) Maak het Grinch-vlak dat werkt als de printerkap. Het circuit gaat verder onder de hoed met een laag geleidende tape van stof die aansluit op de pompon. De pompon is gemaakt van groene wollen roving en geleidende vezels. (Afbeelding 6).
5) Omdat de stroomvoorziening een snoer nodig heeft, heb ik een hoes gemaakt van garen met behulp van een Franse breister. (Afbeelding 7 optioneel).
6) De allerlaatste stap, zorg ervoor dat alles op zijn plaats zit en probeer het uit!