hello_mbot_senden_empfangen
                Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Hello mBot Senden/Empfangen
Dieses Beispiel zeigt, wie ein mBot per Infrarotsignal (IR) eine LED auf einem zweiten mBot steuern kann. Der Sender sendet alle 3 Sekunden das Signal „LED_ON“. Der Empfänger schaltet daraufhin die LED für 500 ms auf Rot und wartet anschließend 1 Sekunde, bevor er erneut ein Signal empfängt.
Einsatzmöglichkeiten:
- Grundlagen der IR-Kommunikation zwischen Robotern
- Steuerung von Aktionen basierend auf drahtlosen Signalen, z. B. für Spiele, Schwarmverhalten oder gruppengesteuertes Verhalten
Dieses Beispiel stellt nur die grundlegende Struktur zur Verfügung. Es ist noch keine wirkliche Kommunikation, da lediglich ein Roboter sendet und der andere empfängt.
Quellcode (engl. Sourcecode)
Quellcode mBot-Sender
Listing 1:MinimalesProgramm-Sender.ino
    #include <MeMCore.h>
    MeIR irSender;
    MeRGBLed led(0, 2); 
    String PROTOCOL_01="a";
    void setup() {
        irSender.begin();
        led.setpin(13);
        led.setColor(0, 0, 0, 0); // LEDs ausschalten
        led.show();
    }
     
    void loop() {
        // Rote LED an, wenn gesendet wird
        led.setColor(0, 255, 0, 0); // LED rot
        led.show();
        // String über IR senden
        irSender.sendString(PROTOCOL_01);
        delay(200);
     
        // LED wieder ausschalten
        led.setColor(0, 0, 0, 0);
        led.show();
        delay(3000); 
    }
Quellcode mBot-Empfänger
Listing 1:MinimalesProgramm-Empfänger.ino
#include <MeMCore.h>
MeIR irReceiver;  // IR Empfänger
MeRGBLed led(0, 2);  // LED-Modul
void setup() {
  Serial.begin(9600);  
  irReceiver.begin();  
  led.setpin(13);      
  led.setColor(0, 0, 0, 0);  // LEDs ausschalten
  led.show();
}
void loop() {
  if (irReceiver.decode()) {  // Wird eine Nachricht empfangen?
    
    uint32_t receivedValue = irReceiver.value;  // Rohwert der empfangenen Nachricht
    uint32_t buttonCode = receivedValue >> 16 & 0xff; 
    switch (buttonCode) {
      case 97: {  // dec 97 ist ascii-code a!
          delay(200);
          Serial.println("received code 97");
          led.setColor(0, 0, 255, 0); // LED grün
          led.show();
          delay(300);
          // LED wieder ausschalten
          led.setColor(0, 0, 0, 0);
          led.show();
          delay(200);
        }
    }
  }
}
Erklärungen zum Quellcode
1. Programme hochladen
- Sender-Programm auf mBot 1 laden
- Empfänger-Programm auf mBot 2 laden
- USB-Kabel trennen, beide mBots einschalten
2. Testablauf
- Sender (mBot 1): LED blinkt kurz rot, wenn er „LED_ON“ sendet.
- Empfänger (Bot 2): LED blinkt kurz grün, wenn „LED_ON“ empfangen wurde.
Übrigens, warum ist es egal, welcher mBot zuerst eingeschaltet wird?
hello_mbot_senden_empfangen.1739355971.txt.gz · Zuletzt geändert:  von torsten.roehl
                
                