#include "NDP.h" #include #define ESP_SLAVE_ADDR 0x42 volatile uint8_t matchToSend = 0; void sendit(char* label) { // LED blau bei Match nicla::leds.begin(); nicla::leds.setColor(blue); delay(200); nicla::leds.setColor(off); nicla::leds.end(); if (strcmp(label, "NN0:Helmet") == 0) matchToSend = 0x01; else if (strcmp(label, "NN0:Iron Man") == 0) matchToSend = 0x02; else if (strcmp(label, "NN0:Shutdown") == 0) matchToSend = 0x03; else if (strcmp(label, "NN0:Startup") == 0) matchToSend = 0x04; else if (strcmp(label, "NN0:Repulsor") == 0) matchToSend = 0x05; else if (strcmp(label, "NN0:Stones") == 0) matchToSend = 0x06; else if (strcmp(label, "NN0:Combat") == 0) matchToSend = 0x07; } void ledGreenOn() { nicla::leds.begin(); nicla::leds.setColor(green); delay(200); nicla::leds.setColor(off); nicla::leds.end(); } void ledRedBlink() { while (1) { nicla::leds.begin(); nicla::leds.setColor(red); delay(200); nicla::leds.setColor(off); delay(200); nicla::leds.end(); } } void setup() { Serial.begin(115200); Serial.println("Nicla I2C Master ready"); nicla::begin(); nicla::disableLDO(); nicla::leds.begin(); NDP.onError(ledRedBlink); NDP.onMatch(sendit); NDP.onEvent(ledGreenOn); NDP.begin("mcu_fw_120_v91.synpkg"); NDP.load("dsp_firmware_v91.synpkg"); NDP.load("ei_model.synpkg"); Serial.println("Packages loaded. Turning on mic..."); NDP.turnOnMicrophone(); nicla::leds.end(); NDP.interrupts(); Wire.begin(); // Mbed/Nicla: Pins sind fest, keine Argumente! } void loop() { if (matchToSend != 0) { Wire.beginTransmission(ESP_SLAVE_ADDR); Wire.write(matchToSend); Wire.endTransmission(); matchToSend = 0; } }