Calliope Sound-Recorder    

           
Elektronik-Labor   Projekte   Microbit 




Video: https://youtu.be/CHs2OTMw69Y

Dieser Sound-Recorder mit einer Aufnahmezeit von einer Sekunde wurde mit Mbed entwickelt. Die Sound-Daten werden in einem Array mit 2500 Bytes gespeichert. Die Abtastrate wurde auf unter 2 kHz eingestellt, damit die Aufnahmedauer ausreicht. Und beim Abspielen kann man auch etwas länger warten und so einen tieferen Ton abspielen.




#include "mbed.h"

DigitalOut col0(P0_4, 0);
DigitalOut myled(p13);
//DigitalOut sl(p28, 0);
DigitalOut inl(p29, 0);
DigitalOut in2(p30, 1);
DigitalIn tasteA (p17);
DigitalIn tasteB (p16);

AnalogIn u2(p3); //P3 = MIC
PwmOut pwm1(p28);


int main() {
// float d[1000];
uint8_t d[2500];
uint16_t n=0;
pwm1.period_us(50);
while(1){
if (tasteA.read()==0){
myled = 1;
for (n=0; n<2500;n++){
d[n]= int(u2.read()*255);
wait_us(500);
}
myled = 0;
}
if (tasteB.read()==0){
for (n=0; n<2500;n++){
//printf("%d\r\n",n);
pwm1.write(float(d[n])/255);
wait_us(500);
// printf("%f\r\n",255*d[n]);
}
}
}
}


Hier gibt es drei fertig übersetzte Hex-Dateien für unterschiedliche Abspielklänge, hoch, normal und tief. Man kann das jeweils gewünschte Programm direkt in den Calliope kopieren.  Download: Recorder.zip




Probleme mit neuer Software

Das Beispiel habe ich auch in meinem Buch: Calliope und Micro:bit in der Praxis verwendet, dann aber längere Zeit nicht mehr getestet. Jetzt kam dazu  eine Rückmeldung:

Im o. g. Buch ist mit dem Sound Recorder ein spannendes Projekt enthalten, das ich gerne zum Laufen bringen würde. Das zur Verfügung gestellte Hex-File scheint jedoch zumindest mit der aktuellen Calliope-Version nicht zu funktionieren. Ebenso lässt sich der Quellcode in der Mbed-IDE in dieser Form nicht (mehr) kompilieren. Zumindest nicht alleine mit mbed.h. Mit dem microbit-DAL dazwischen schon, aber dann wird vermutlich die Pin-Belegung nicht stimmen, jedenfalls ließ sich über die serielle Schnittstelle „mitschneiden“, dass das Array d auch nach einer Aufnahme mit 0en gefüllt ist. Haben Sie einen Rat, was ich vielleicht falsch mache? Über eine Antwort würde ich mich sehr freuen!

Meine erster Gedanke: Das ist ja grausam. Ich dachte, das Hex wird immer laufen, während die Compiler sich ändern können. Auch dass die Calliope-Firmware sich stark ändern könnte, hatte ich nicht erwartet.  Im Moment bin ich nicht im Thema und stark mit andern Projekten belastet. Vermutlich müsste ich eine neue Calliope-Platine kaufen und ganz neu anfangen. Das wird auf jeden Fall einige Zeit dauern.

Deshalb nun an dieser Stelle ein allgemeiner Hilfe-Ruf: Weiß jemand schon, was man tun muss, damit der Soundrecorder auch auf der aktuellen Version läuft?




Elektronik-Labor   Projekte   Microbit