Wie kann ich in Makecode das die Lautstärke am Mikrofon auswerten?
Ich möchte je nach Lautstärke einem Servo eine entsprechende Winkelstellung zuweisen.
Ich habe noch keinen Block gefunden womit ich die am Mikro empfangene Lautstärke weiterverarbeiten kann. Mit der Lichtstärke scheint es zu funktionieren.
Leider kann man die HEX-Datei der Anfangsdemo nicht laden, sonst hätte ich nachgesehen wie z.B. dort die Lautstärke zur grafischen Darstellung an der LED-Matrix ausgewertet wird.
Versuchs mal hiermit!
basic.forever(function () {
pins.servoWritePin(AnalogPin.P1, pins.map(
pins.analogReadPin(AnalogPin.MIC),
0,
1023,
0,
180
))
})
Vielen Dank für die schnelle Antwort. Hat mir schon sehr geholfen, bei dem Reiter „PINS“ hatte ich den Schallsensor nicht vermutet, ich hatte vergeblich bei „EINGABE“ gesucht.
Das Servo reagiert nun bei Lautstäkeänderung merklich, zwar etwas träge und zitterig,
aber das ist wohl ein anderes Thema.
Gibt es eigentlich noch irgenwo im Netz genauere Eläuterungen zu den Befehlen und Blocks von MakeCode?
Versuche es mal hiermit. Es ist allerdings noch nicht alles auf deutsch und die paar spezifischen Calliopeblöcke fehlen.
Auch die Projekte dort sind bestimmt für dich interessant!
Dieses Projekt kennst du, nehme ich an?
Vielen dank für den Tip, aus diesem Projekt konnte ich schon einige sehr nützliche
und hilfreiche Hinweise für unsere Arbeit mit Calliope nutzen.
Warum wurde der MakeCode-Calliope Mikrofon-Pin
(AnalogPin.MIC, AnalogReadWritePin.MIC) für den
Calliope V1-BlockModus entfernt.
Ich kann im JS und Python-Modus einen Mic-Pin verwenden aber im Block-Modus wird
nur ein P0-Pin verwendet bzw. auf diesen zurückgesetzt.
Jetz können im Block-Modus keine Schallpegelmessungen mehr
durchgeführt werden.
Warum kann man denn nicht wenigstens rückwärtskompatibel bleiben?
Das ist wirklich schade.
Wenn du den Block „Lautstärke“ nimmst, sollte es doch identisch sein oder verstehe ich deine Frage nicht?
Es müssen bei bestimmten Umstellungen in MakeCode Blöcke für alle Calliope mini Generationen händisch hinzugefügt werden, da kann es schon mal passieren, dass ein Eintrag verschwindet. Das ist aber nicht absichtlich und fällt uns auch nicht immer direkt auf… Es ist halt recht aufwändig mit den sechs Jahre alten (oder älteren) Geräten kompatibel zu bleibt. Du kannst aber jederzeit eine alte MakeCode Version öffnen, da bleibt alles, wie es war (z.B. Microsoft MakeCode for Calliope mini)…
natürlich nicht! Ein kurzer Blick in microphone.cpp→int soundLevel() genügt um zu sehen das hier 32 Werte gemittelt und Dynamik gelöscht wird. Nicht umsonst wurden hier Beispiele immer von dem analogen Pin-Mic gepostet. Frequenzmessungen werden so nicht mehr möglich sein.

