Wähle ein Geschenk
Die Großmutter meines Sohnes wird bald Geburtstag haben. Da ich von Mikrocontrollern fasziniert war, kam mir die Idee, eine Art Gerät natürlich an einen Mikrocontroller zu spenden, der von mir selbst hergestellt wurde. Wie alle Großmütter ist unsere Großmutter keine fortgeschrittene Benutzerin von Geräten, und im Prinzip hat sie nichts Besonderes von der Elektronik. Sie können also jedes nicht sehr komplexe Gerät herstellen.
Wenn wir sie besuchen, werden wir immer von einem reichhaltigen Tisch mit einer großen Anzahl von Gerichten begrüßt. Deshalb haben wir uns sofort entschlossen, ein Gerät in der Küche nützlich zu machen. Zusammen spielen wir oft verschiedene Brettspiele - Lotto, verschiedene Würfelspiele. Unser Gerät sollte hier also helfen.
Der Sohn dachte ein wenig nach und beschloss, einen
fortschrittlichen Küchentimer herzustellen.
Ich habe ihm ein wenig bei dem Plan geholfen. Die Hauptfunktionen unseres Geschenks:
- Timer-Modus bis zu 3 Stunden
- Stoppuhrmodus
- Lautes Signal
- Kompakte Größe
- "Ewige" Batterien - Batterien, die wie ein Telefon aufgeladen werden, über Micro-USB
- Und natürlich Spiele - ein Würfel (eine Zufallszahl von 1 bis 6), ein Lotto, eine Bombe (ein sehr lustiges Spiel)
Wir wählen Komponenten aus
Als Indikator haben wir einen dreistelligen LED-Indikator mit einer gemeinsamen Anode gewählt - er hat nur 11 Pins, sehr praktisch. Es ist nicht schwer zu kaufen und im Prinzip recht sparsam im Energieverbrauch (aber sicherlich nicht LCD).
Mit dem Mikrocontroller STM8S003F3P6 haben wir bereits gearbeitet, daher ist alles bekannt. ST-Link ist schon da.
Die Lademikroschaltung und der gesamte Gurt des MK, wie ein
Fahrradcomputer .

Als Hochtöner sehr kompakter und lauter Hochtöner HC0903A

Die Batterie ist LIR2032. Nur 45 mAh, aber das reicht für 40 Stunden Dauerbetrieb. Wir haben beschlossen, auf den Quarzresonator zu verzichten (wir brauchen Schlussfolgerungen), wir brauchen keine besondere Genauigkeit und der STM8 hat einen ziemlich genauen internen Oszillator. Chipladung - TP4056.
Management - 2 Uhrentasten. Das Gerät befindet sich die ganze Zeit im Ruhemodus, der Verbrauch beträgt weniger als 5 μA und es kann lange schlafen. Sie haben nicht begonnen, eine Schutzplatine für die Batterie herzustellen, insbesondere nicht benötigt. MK hat eine Untergrenze von 3V, so dass es nicht viel durchhängt. Wenn Sie die Musik einschalten, leuchtet die Anzeige (Stromstoß) auf, und wenn der Akku leer ist, startet der MK neu und wechselt in den Ruhemodus, der ein Signal zum Laden ist. Es lädt sich mit einem Strom von 100 mA für ca. 40 Minuten auf, was im Prinzip sehr schnell ist. Das Schema und das Programm können auf github heruntergeladen werden, der Link am Ende.
Der Sohn beschloss, das Gehäuse selbst aus der Montagebox 40 x 16 mm herzustellen. Mit Acrylfarben bemalt, schneiden Sie ein Stück von einer DVD als Glas. Es ist sehr schön geworden.

Der Sohn hat die Spur der Tafel selbst in Kicad gemacht. Die Position der Komponenten wurde von ihm erfunden. Tasten an den Seiten der Anzeige, Hochtöner unten, die Batterie darauf. Alles trat fest ein, nichts baumelt irgendwo. Die Platte ist doppelseitig. Sie wurden aus einseitiger Glasfaser mit einer Dicke von 0,8 mm unter Verwendung des Kalttonerübertragungsverfahrens hergestellt. Zwei Hälften der Platine sind verbunden und mit Steckbrücken befestigt. Von den Anschlüssen - Micro USB, Power und Programmierung.

Das Programm
Dieser Indikator hat eine gemeinsame Anode, dementsprechend kann immer nur eine Entladung gleichzeitig ausgegeben werden. Um drei Ziffern gleichzeitig anzuzeigen, ist eine dynamische Anzeige erforderlich.
Programmatisch geschieht dies sehr einfach. Der Timer wird aktiviert und in gleichen Zeitintervallen mit einer hohen Frequenz, beispielsweise alle 300 μs, wird ein Bit in einem Kreis ausgegeben - 1-2-3-1-2-3. Wir werden sehen, dass die Zahlen zur gleichen Zeit leuchten wie in einem Film. Wenn Sie zusätzliche leere Bits hinzufügen, können Sie die Helligkeit steuern. Das heißt, es wird ein solches Schema für die Informationsausgabe geben - 1-2-3-leer-leer-leer-leer-1-2-3-leer-leer ... Die Helligkeitsregelung ist erforderlich, um den Stromverbrauch zu senken. So verbraucht beispielsweise eine Entladung ohne Verwendung von Helligkeit 24 mA und kann bei Anwendung auf 1-2 mA reduziert werden. Gleichzeitig sind die Zahlen noch klar und weit sichtbar. Der Sohn spielte mit Frequenz, Helligkeit, als alles aufhörte zu flackern, gefiel es ihm. Es stellte sich heraus, dass die Programmierung dieser Art von Anzeige recht einfach und bequem ist.
Der zweite schwierige Moment besteht darin, eine einfache, wie sie sagen, intuitive Benutzeroberfläche zu entwickeln, wenn wir 3 Ziffern der Anzeige und 2 Tasten haben. Aber ich denke, er hat es geschafft.
Sie kamen mit Knöpfen wie diesen:
- Rechte Taste - langes Drücken, Moduswechsel, es gibt drei davon - Timer, Stoppuhr, Spiele
- Rechte Taste - einmaliges Drücken, Änderung des Submodus. Für den Timer ist dies die Wahl der voreingestellten Zeiten, für die Stoppuhr die Wahl einer regulären Stoppuhr bzw. mit Bestätigung für das Spiel. Verschiedene Spiele
- Linke Taste - einmaliges Drücken - Starten / Stoppen oder Bewegen im Spiel, langes Drücken - Einstellungen, Programmiermodus
Mit einem Indikator wie diesem:
- Wenn ein Timer ausgewählt wird, wird sofort eine bestimmte Anzahl vordefinierter Einstellungen angezeigt (z. B. 5,15,30 Minuten), die neu programmiert und im ROM gespeichert werden können
- Wenn die Stoppuhr ausgewählt ist, dann 000
- Bei den Spielen - L - Lotto, 6 - Bombe, C - Würfel.
- Die Zahlen werden geschickt auf dem Indikator angezeigt, da es nur drei Ziffern gibt, dann zeigen wir die maximale Anzahl von signifikanten Elementen an. Beispiel: Ein Timer - 200 Minuten 30 Sekunden - dann drucken wir 200. Wenn der Timer 10 Minuten 15 Sekunden beträgt, drucken wir 10,1, wenn 1 Minute 25 Sekunden, dann 1,25. Um zu verstehen, dass der Timer oder die Stoppuhr läuft, blinkt der Punkt gleichzeitig mit den Sekunden.
- Wenn die Stoppuhr beispielsweise für 10 Minuten und 25 Sekunden angehalten wird, werden abwechselnd einmal pro Sekunde 10 und 0,25 angezeigt, um auch Sekunden anzuzeigen.
Das Programm war nicht so einfach, mein Sohn schrieb es fast 3 Wochen in der Schule, mit ein wenig Hilfe von mir. Es gibt viele Bedingungen, verschiedene Flags - Start, Stopp, Arbeit mit dem Gedächtnis usw. Aber er war sehr zufrieden mit dem Ergebnis.
Test
Die ersten Tests fanden in der Schule statt. Anstelle eines Würfels Wahrsagerei auf Noten. Ich habe mich die ganze Klasse gefragt. Dann ist die Bombe ein super Spiel. Das Gerät macht eine zufällige Zeit von 5 bis 20 Sekunden und beginnt jede Sekunde zu ticken. Sie geben es weiter. Wenn der Timer Null erreicht - ein Explosionssignal. Der in den Händen des Gerätes verloren.
Die ersten Tests der Stoppuhr und des Timers liefen mit einem Knall ab. Sie verfolgten verschiedene Zeiten, überprüften die genauen Stunden, ein Fehler von 1-2 Sekunden pro Stunde. Sie erarbeiteten den Klang des Signals.
Ein Geschenk präsentieren
Es ist mein Geburtstag. Meine Großmutter war schnell ausgebildet und sehr glücklich. Alles in allem erfahrenes Lotto, vollautomatisch. Alle 5 Sekunden quietscht das Gerät und gibt eine neue Nummer aus der verbleibenden in der Tasche aus. Jeder spielt, fährt das Gerät! Wer keine Zeit hatte, war zu spät.
Zusammenfassung
Das Gerät hat sich also als ausgezeichnet erwiesen. Die Programmierpraxis ist sehr interessant. Wenn Sie sich auch für Mikrocontroller interessieren, können Sie sich selbst (oder als Geschenk) das Gleiche machen und es programmieren. Sie werden auf jeden Fall lernen:
- Bretter machen
- smd smd komponenten
- Programm STM8
- Arbeiten Sie mit Batterien
- Griffknöpfe
- verschiedene Geräusche machen
- Arbeiten Sie mit Timern und behandeln Sie temporäre Ereignisse
- Energie bekämpfen
Auf
Github gibt es eine Schaltung und eine Platine im Kicad-Format. Das erste Projekt für STM8 wurde angelegt. Der schwierigste Teil ist die dynamische Anzeige, die Initialisierung des Mikrocontrollers und die komplizierte Tastenverarbeitung - kurzes, doppeltes und langes Drücken. Ich schlage vor, den Rest des Programms selbst zu schreiben, es ist so interessant!