The Magic Bean

Oder wie du nie mehr Entscheidungsprobleme hast…

Wer kennt sie nicht, die Probleme beim Treffen von wichtigen Entscheidungen. Es wird alles gründlich abgewogen, fünfmal überdacht und am Ende ist man sich immer noch unsicher. Dies gehört nun der Vergangenheit an, denn ab jetzt kann man auf die absoluten Weisheiten von Mr. Bean vertrauen!

Egal um welches Thema es sich handelt, Mr. Bean hat trifft garantiert die richtige Entscheidung für dich – und ganz ehrlich, wer würde nicht Mr. Bean blind vertrauen?

Fertig sieht das ganze dann so aus:

Die Idee:

Inspiriert durch Dough Heffernan´s Mentalo-Man kam ich auf die Idee einen Magic-Bean zu konstruieren. Das Prinzip dahinter ist ganz einfach: Man stellt Mr. Bean eine Ja/Nein Frage und dieser trifft anschließend eine zufallsbasierte (ähhh natürlich wohl überlegte *G*) Entscheidung. Das Ergebnis wird durch den Zeiger vorne optisch signalisiert, sowie durch eine entsprechende Sound-Ausgabe unterstützt.

Was wird benötigt?

Die Verdrahtung

Das ganze wird folgendermaßen zusammengelötet.

Fertig zusammengebaut

Fertig zusammengebaut sieht das ganze dann so aus.

Die Programmierung

Den Code gibt es wieder unter: https://github.com/cod3cruncher/magic_bean

Für das MP3 Modul wird die DFRobotDFPlayerMini Library verwendet (https://github.com/DFRobot/DFRobotDFPlayerMini)

Da es durch die Verwendung von Software Serial einen Konflikt zwischen der Standard Servo Library und dem MP3 Modul gibt, wird eine eigene Implementierung zur Steuerung des Servos verwendet:

void servoPosition(int pulsemicros) {
	for (int i = 0; i < VALUE_FOR_180_DEGREE_SERVO; i++) {
		digitalWrite(SERVO_PIN, HIGH);
		delayMicroseconds(pulsemicros);
		digitalWrite(SERVO_PIN, LOW);
		delay(25);
	}
}

Das ganze Projekt

Hello world!

Willkommen auf meiner Seite.
Diese Seite soll vor allem für mich als Art Notizblock dienen.
Daher findet man hier kleine How-tos und vor allem Programmierprojekte (gerne auch mit etwas Bastelei in Kombination mit Mikrocontrollern wie zum Beispiel dem Arduino).

Memo an mich selbst: Jetzt nur noch dran bleiben! 😉

Tea-Maker: IV IDLE Sounds

Die ersten Tea-Maker wurden an Weihnachten verschenkt und von den Beschenkten ausgiebig auf Herz und Nieren geprüft. Natürlich dauerte es nicht sehr lange und es wurde um weitere Features gebeten.

Die aktuelle Version signalisiert das Ende der Brühzeit akkustisch durch einen Summer. Dieser Ton erklingt jedoch nur ein einziges mal, wenn der Teebeutel aus der Tasse gezogen wird. In der aktuellen Version ertönt das akkustische Signal alle x Sekunden, wobei dieses Intervall über ein Optionsmenü eingestellt werden kann.

Auch lassen sich über dieses Menü die Töne allgemein abstellen.

Tea-Maker: III Smaller, Smarter, Better

Der erste Prototyp erfüllte zwar seinen Zweck, wies jedoch im tatsächlichen Einsatz zu viele Schwächen auf. Vor allem die recht großen Gehäuseabmessungen erschwerten die Suche nach einem geeigneten Aufstellort erheblich. Und auch die Bedienung selbst war nicht gerade benutzerfreundlich: zu viele Knöpfe, zu viele Einstellräder.

Der Tea-Maker muss daher geschrumpft und auf das Nötigste reduziert werden.

Die Optimierungen

  1. Statt einem relativ großen Arduino wird nun ein Arduino Nano verwendet. Aus Preisgründen kommt jedoch statt eines Originals ein China Klon zum Einsatz.
  2. Die Buttons werden auf zwei reduziert: Einen für Start/Stop und einen für das Options Menü
  3. Auch die Verkabelung erfolgt jetzt über eine selbstgelötete Platine auf einer Rasterlochplatine.
  4. Ein einfacher Piezo-Buzzer zeigt nun auch akkustisch das Ende des Brühvorgangs an

Die Einkaufsliste

Neben den bereits beschriebenen Komponenten der ersten Version (siehehttps://cod3cruncher.de/?p=19) benötigen wir noch:

Verdrahtung der Komponenten

Die Komponenten werden wie folgt skizziert miteinander verbunden.

Das neue Gehäuse

Der Code

Wie zuvor beschrieben wird mittlerweile als IDE die Kombination aus Visual Studio Code und PlatformIO verwendet.

Da der Code mittlerweile doch ganz schön angewachsen ist, wurde ein umfangreiches Refactoring durchgeführt und der Code aufgeteilt (statt zuvor lediglich eine einzige .ino Datei).

Das zugehörige Repo für die neue Version gibts hier: https://github.com/cod3cruncher/tea_maker_nano

Und so sieht das ganze dann in Action aus:

Tea-Maker: I. Die Idee

In dieser Reihe möchte ich euch ein nützliches Gadget für alle Tee-Liebhaber vorstellen.

Wer kennt das Problem nicht? Das Wasser ist gekocht und hat die richtige Temperatur, der gute Tee ist portioniert und der Timer auf zwei Minuten gestellt. Da kann doch eigentlich gar nichts mehr schief gehen auf dem Weg zum perfekten Grüntee, oder doch?

Die zwei Minuten sind rum, der Wecker klingelt, doch du bist gerade mit dem Schreiben eines Blog-Eintrags beschäftigt und es kommt wie es kommen muss: Aus den zwei Minuten werden vier und der Tee ist alles andere als perfekt.

Gerade in der Erkältungssaison erlebe ich das beschrieben Szenario mehrmals pro Woche und als technikbegeisterter (und von klein auf MacGyver „geschädigter“) Mensch kann man das natürlich nicht akzeptieren und sucht nach einer Lösung.

Da liegt doch schon lange dieser Arduino rum, und ein Motor sollte sich auch noch auftreiben lassen…, dazu ein paar Zeilen Code programmieren und schon sollte sich doch da etwas entwickeln lassen?!.

Und heraus kam dieser erste Entwurf:

Der erste Gedanke…

Der Arduino steuert einen Motor mit einer einfachen Winde an, wodurch der Teebeutel mittels des Hebearms gesenkt und gehoben werden kann. Die Zeit wird mittels eines Potis eingestellt und über einen Knopf kann der Vorgang gestartet werden.

Nachdem der erste Prototyp aus Holz gefertigt wurde und die ersten Zeilen Code geschrieben wurden, kam die Ernüchterung: So habe ich mir das nicht vorgestellt. Vor allem wie passt man das ganze an verschiedene Tassenhöhen an?

Die Konstruktion aus Hebearm und Winde muss weg, ein neuer Ansatz muss also her:

Statt der Seilwinde soll nun ein Modellbau Servo den Hebearm direkt bewegen. Da Servos meistens einen Schwenkbereich von 0 bis 180 Grad abdecken und für große hohe Drehmomente ausgelegt sind, sollte diese Lösung deutlich besser funktionieren.

Auch befindet sich nun das ganze in einem geschlossenen Holzgehäuse und die Zeit lässt sich direkt am Display ablesen.

Im nächsten Teil geht es weiter mit der Anfertigung des neuen Prototypen.

Eine Alternative zur Arduino IDE

Auch wenn die Arduino IDE grundsätzlich alles bietet, um die ersten Sketche für den Arduino zu coden, vermisse ich doch den Komfort einer ausgereiften IDE (vor allem wenn man vorher von IntelliJ sehr verwöhnt wurde ;)).

Da ich zu dieser Zeit ein Windows 10 Gerät zur Programmierung verwendet habe, fiel mein Blick auf Visual Studio in Kombination mit dem Visual Micro Plugin (https://www.visualmicro.com/).

Die Einrichtung erfolgte recht unkompliziert.

Wichtig: Falls ein Arduino Klon mit dem CH340 Treiber (http://www.wch.cn/) verwendet wird und dieser noch den alten Bootloader verwendet, muss dieser entsprechend eingestellt werden!

Auch wenn der Komfort von VS angenehm war, so erlebte ich während der Arbeit relativ viele Abstürze von Visual Studio, die ich auch nicht beheben konnte. Nachdem dann ein Windows Update kurz vor Weihnachten das ganze System zerschossen hatte und ich aufgrund von Zeitdruck mit Ubuntu weiterarbeitete, musste eine andere Lösung gefunden werden.

Durch den äußerst interessanten heise-Artikel (https://www.heise.de/developer/artikel/VS-Code-lebt-Entwicklung-von-Embedded-Software-mit-PlatformIO-4464669.html) wurde ich auf die Kombination aus Visual Studio Code und PlatformIO aufmerksam.

Da ich mit dieser Kombination sowohl unter Windows, Linux und auch Mac arbeiten kann, war die Entscheidung für PlatformIO schnell getroffen und die Weiterentwicklung des Tea-Makers sollte damit vorangetrieben werden.