Microphone
KLST_PANDA features two on-board MEMS microphones; one left, one right ( see Technical Specifications ):
- ③ :: MEMS microphone ( left )
- ⑥ :: MEMS microphone ( right )
void audioblock(AudioBlock* audio_block)
Microphone* microphone_init(AudioInfo* audio_info)
void microphone_deinit(Microphone* microphone)
void microphone_start(Microphone* microphone)
void microphone_stop(Microphone* microphone)
Example Microphone
/**
* this example demonstrates how to use the debugging console to print messages to the serial console.
*/
#include "Arduino.h"
#include "System.h"
#include "Console.h"
#include "Microphone.h"
#include <algorithm>
float peak0 = 0.0;
float peak1 = 0.0;
float sum0 = 0.0;
float sum1 = 0.0;
void setup() {
system_init();
console_init();
microphone_init();
}
void loop() {
console_clear();
console_println("ENERGY: %05.3f | %05.3f", sum0, sum1);
console_println("PEAK : %05.3f | %05.3f", peak0, peak1);
delay(100);
}
void audioblock(AudioBlock* audio_block) {
sum0 = 0.0;
sum1 = 0.0;
peak0 *= 0.995f;
peak1 *= 0.995f;
for (int i = 0; i < audio_block->block_size; ++i) {
const float sample0 = audio_block->input[0][i];
const float sample1 = audio_block->input[1][i];
sum0 += abs(sample0);
sum1 += abs(sample1);
peak0 = std::max(peak0, abs(sample0));
peak1 = std::max(peak1, abs(sample1));
}
sum0 /= audio_block->block_size;
sum1 /= audio_block->block_size;
}