Du kennst bestimmt diese US-Briefkästen aus Blech mit der roten Fahne, die der Postbote hochklappt, wenn er etwas eingeworfen hat?!?
Eigentlich wollte ich eine Anleitung schreiben, wie man so eine Signalfahne aus einem Drahtkleiderbügel, Alufolie, Heißkleber und roter Kaseinfarbe selber baut. Aber leider konnte ich meinen Postboten nicht dazu überreden, jedes Mal die Konstruktion hochzubiegen, ohne etwas abzubrechen.
Deshalb beschreibe ich Dir als Alternative eine Konstruktion mit der Calliope Mini, einem Grove - Piezo Vibration Sensor, etwas Klebefilm und einer Kinder-Post als Simulator. Du kannst natürlich Deinen eigenen Briefkasten verwenden!
Der erste SensortestDer Grove - Piezo Vibration Sensor ist zwischen 6 und 10 Euro online erhältlich. Er liefert einen analogen Messwert und muss daher an den rechten der beiden möglichen Buchsen auf der Calliope Mini angeschlossen werden. Theoretisch kann die an der Hilfsplatine angeschlossene Sensorfolie eine große Bandbreite an Schwingungen messen, für den Briefschlitz-Sensor reicht es jedoch völlig aus, ob die Sensorfolie beim Einwerfen des Briefes gebogen wird oder nicht.
Wenn Du (unter Windows) die vom Sensor gelieferten Werte live sehen möchtest, lohnt sich die Installation des mbed-Treibers. Die Calliope Mini muss dafür eingesteckt, das automatisch geöffnete Explorer-Fenster geschlossen sein. Im Geräte-Manager (Win+X) erscheint der zugewiesene COM-Port unter Anschlüsse (COM & LPT):
Die in der Klammer angezeigte Nummer des COM-Ports musst Du Dir merken.
Zum Mitlesen der Sensordaten benötigst Du ein Terminalprogramm wie TeraTerm, den seriellen Monitor in der Arduino Software oder PuTTY. TeraTerm wird hier auf Englisch erklärt, jedoch musst Du für die Calliope eine Baudrate von 115200 einstellen. 9600 ist ihr einfach zu lahm ;)
Für PuTTY wählst Du die Einstellungen wie im folgenden Bild gezeigt. Der COM-Port kann bei Dir anders nummeriert sein. Schaue notfalls nochmal im Geräte-Manager nach!
Für den seriellen Monitor in der Arduino Software musst Du unter Werkzeuge, Port den passenden COM-Port auswählen. Dann kannst Du unter Werkzeuge, Serieller Monitor noch rechts unten die Baudrate auf 115200 ändern und bist bereit.
Beachte, dass Du nicht zwei Programme parallel auf einem COM-Port lauschen lassen kannst!
Nun kannst Du Dir ein einfaches Programm im PXT-Editor zusammenklicken, um live die Messwerte des Piezo Vibration Sensors über den seriellen Port an den PC zu schicken und in einer der Tools anzuzeigen.
Der Block zum Abfragen des analogen Wertes findest Du unter ...Fortgeschritten, Pins:
Da Du den Sensor jedoch am rechten Anschluss verbunden hast, musst Du als Pin C16 auswählen. Sonst wird nicht viel passieren...
Hier eine Musterlösung:
In der Dauerschleife schickt die Calliope die Zeichenfolge Wert: über den seriellen Port, gefolgt vom Messwert an Pin C16 und gefolgt von einem Zeilenumbruch. Hinter Wert: folgt noch ein Leerzeichen, zwischen den Anführungszeichen im Block serial write line steht nichts, auch wenn es vielleicht so aussieht. Es würde auch nicht stören. Entscheide selbst ;)
Hier der Code zum Kopieren&Einfügen:
basic.forever(() => {
serial.writeString("Wert: ")
serial.writeNumber(pins.analogReadPin(AnalogPin.C16))
serial.writeLine("")
})
Wenn Du das Programm nun ausführst, solltest der Sensor im Normalzustand einen niedrigen zweistelligen Wert liefern und einen Wert über 1000, wenn er gebogen (nicht geknickt!) wird. Zum Testen kannst Du auch im Takt gegen die Sensorfolie schnippen oder mit ihr einen drehenden Fidget Spinner berühren.
Der BriefeinwurferkennungsalgorithmusDa der Sensor während des Biegens einen analogen Wert größer 1000 ausgibt, kannst Du diese Zahl als Vergleichswert in einer bedingten Verzweigung verwenden:
Du kannst nun selbst entscheiden, was die Calliope Mini ausgeben oder aktivieren soll, wenn der Sensor feuert. Ich habe mich für eine akustische Ausgabe inklusive eines Briefsymbols auf der LED-Matrix entschieden:
Hier der Code zum Kopieren&Einfügen:
basic.forever(() => {
if (pins.analogReadPin(AnalogPin.C16) > 1000) {
images.createImage(`
# # # # #
# # . # #
# . # . #
# . . . #
# # # # #
`).showImage(0)
music.setTempo(240)
music.playTone(262, music.beat(BeatFraction.Quarter))
music.playTone(294, music.beat(BeatFraction.Quarter))
music.playTone(330, music.beat(BeatFraction.Quarter))
music.playTone(349, music.beat(BeatFraction.Quarter))
music.playTone(392, music.beat(BeatFraction.Quarter))
music.playTone(349, music.beat(BeatFraction.Quarter))
music.playTone(330, music.beat(BeatFraction.Quarter))
music.playTone(294, music.beat(BeatFraction.Quarter))
music.playTone(262, music.beat(BeatFraction.Quarter))
music.setTempo(120)
}
})
Um das Bild wieder ausschalten, kann man zum Beispiel mit der Taste A eine Löschfunktion einbauen:
Und wieder als Text:
input.onButtonPressed(Button.A, () => {
images.createImage(`
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
`).showImage(0)
})
Die BriefeinwurferkennungsbefestigungHmm, das ist schwer zu sagen. Hängt ja von Deinem Briefkasten ab.
Die Calliope habe ich mit doppelseitigem Klebeband befestigt, die Sensorfolie konnte ich prima mit einfachem Klebeband hinter den Einwurfschlitz anbringen. Sei erfinderisch!
Comments