Klatschschalter Erweiterung für Calliope mini

Hallo Alle,

ich hab vor ein paar Tagen eine kleine makecode Erweiterung zum Einbinden in eigene Programme geschrieben. Die Erweiterung kommt mit einem Block-Set und heißt ClapSwitch. Ich bin nicht ganz sicher ob Schüler damit zurecht kommen und würde gerne wissen, was ihr davon haltet.
Die Funktion wait4clap wartet eine Maximalzeit auf ein Doppelklatschen und setzt, wenn erfolgt ein Flag (switched). Den Status des Schalters fragt man mit (switch on) ab.

Beispiel für den Klatschschalter

Die Erweiterung selber kann man als .hex mit folgendem javascript code erzeugen:

ClapSwitch Erweiterung Quellcode

Ich freue mich auf Feedback von euch

Ein Paket für diese Erweiterung ist auf GitHub geteilt.
Bei Erweiterungen bitte werja/clapswitch eintragen.

Hallo Weja,
super, meine eigene ist immer abgestürzt!
Nur müsste man bei Deiner noch die Empfindlichkeit einstellen können. Hab mir schon die Hände wundgeklatscht :wink:
Machst Du noch ein Paket für MakeCode davon?

Viele Grüße

Michael

Ah, man muss ja auch doppelt Klatschen ich Depp. Bei mir war einmal klatschen an, zweimal klatschen aus.

Schau mal, so kann man es bequem eindeutschen und den Standardwert 2000 vorgeben:

namespace clapSwitch {
/**
* Wait for double clap until timeout
*/
//% block weight=2
//% block.loc.de=„Timeout für Doppelklatschen %time“
//% jsdoc.loc.de=„Warte auf Doppelklatschen bis zum timeout“
//% time.defl=2000

Oh, das ist ja super. Werd ich unbedingt einbauen. Danke für den Tipp.
In der Regel kommt man auch mit kürzem timeout gut hin. Ich setz da mal 100 ms ein, wie beim Pause Befehl.
Ich hab ein Programm da werden Neopixel Farben alle 25 ms geändert.
Das Klatschen wird sauber detektiert.
Das liegt daran, dass nach dem ersten Klatschen immer maximal 500ms auf den 2. Klatsch gewartet wird.

1 Like

Hab gerade gemerkt dass man dem namespace auch einen Blocknamen geben kann, dann kann auch der übersetzt werden

//% color="#AA278D" weight=0 icon="\uf2a7" block=„clapSwitch“
//% block.loc.de=„Klatschschalter“
namespace clapSwitch {

Danke für deine Hilfe. Das Paket wurde erstellt. Siehe oben.
Sollte sich herausstellen, dass das wirklich brauchbar ist, kann ich ja die Erweiterung auf die Makecode Konventionen prüfen und eine Genehmigung für die Aufnahme in der offiziellen Erweiterungsliste beantragen.