"Lets change the game" - RLG2.0

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Neu

      gut möglich das es dafür ne lib gibt, aber gerade sowas simples hab ich schneller getippt als ich ne lib raussuche
      Spoiler anzeigen
      int LED_BUILTIN = 2;
      void setup() {pinMode (LED_BUILTIN, OUTPUT);}void loop() {digitalWrite(LED_BUILTIN, HIGH);delay(1000);digitalWrite(LED_BUILTIN, LOW);delay(1000);}


      Wenn du das nicht über die digitalWrite() machen möchtest kannst du auch per direkter Portkontrolle (PORTD= z.B.) arbeiten, spart nen paar ms wenn mans braucht.
      Fashionball! Style for Function :gun:
    • Neu

      Ich hab mich unklar ausgedrückt. Ich spreche nicht von einer simplen Schleife, sondern von einer Möglichkeit (ohne den Ablauf zu blocken) nebenläufig ein beliebiges Blinkschema auszuführen.

      Also wenn vom Commander eine Nachricht kommt wie

      Quellcode

      1. {"signal": {led_all: "∞:on,1000;off,1000"}}
      alle leds im sekundentakt blinken. In Java hab ich dafür extra einen Handler geschrieben, der sich darum kümmert. Ich hatte nur gedacht, dass es etwas ähnliches (evtl. in einfacherer Komplexität) bereits fertig gäbe.

      Nachdem ich den letzten Agenten fertig gebaut habe, guck ich mir mal das micropython an. Da ist vielleicht was dabei.
      Spaß beiseite, wir sind hier beim Paintball - flashheart.de
    • Neu

      entweder du bastelst dir nen Interrupt mit einem der Internen Timer oder nutzt ne lib dafür, die gibts. Allerdings sind die in der Nutzung meist umständlich (meine bisherige Erfahrung) wodurch ich das meist Manuell mache. Alternativ nutze ich die millis() funktion.
      Damit kann nach gewisser Zeit im Programmfluss reagiert werden.
      Spoiler anzeigen

      If(Nachricht)
      {
      nTime=millis()+1000; //in 1000ms wird die Aktion ausgelöst
      }
      If(millis()>nTime)
      {
      //Aktion
      ;
      }
      Fashionball! Style for Function :gun:
    • Neu

      ich würde da ne Funktion für schreiben und das so aufbauen:
      Spoiler anzeigen

      Void blink (bool bAktiv, int nTimeon, int nTimeoff)
      {
      bool bOn;
      bool bOff;
      long nTargettime;
      If(bAktiv && bOn==false)
      {
      bOn=true;
      nTargettime=millis()+nTimeon;
      digitalWrite(2,HIGH);//Pin 2 einschalten
      }
      If(bOn && millis()>nTargettime&&bOff==false)
      {
      nTargettime=millis()+nTimeoff;
      digitalWrite(2,LOW);
      bOff=true;
      }
      If(millis()>nTargettime&&bOff)
      {
      bOn=false;
      bOff=false;
      }
      }

      Die Funktion dann im loop() aufrufen und bei der Nachrichtenverarbeitung den bAktiv,nTimeon,nTimeoff entsprechend setzen
      Fashionball! Style for Function :gun:
    • Neu

      Danke, das sieht schon eher nach dem aus, was ich so mit dem ExecutorService gebastelt hatte.

      Ich hab mir auch mal einen ESP32 bestellt. Hab so ein klein Projekt auf Raspi Basis wo ein Mikrocontroller viel besser geeignet wäre. Damit versuche ich mal den Einstieg in das Thema zu finden.

      Ansonsten sind die Agenten (bis auf einen) fertig. Ich feile jetzt die Software noch nach, allerdings sieht es nicht danach aus, dass ich sobald aufs Feld könnte damit. (Blöde Pandemie)

      21-11-25 08-20-05 1302.jpg

      Schaun wir mal.
      Spaß beiseite, wir sind hier beim Paintball - flashheart.de
    • Neu

      flashheart schrieb:

      Wenn man einzelne Ports auf dem ESP32 zwischen high und low blinken lassen, gibts da was fertiges als lib (Timer mit Frequenz, bzw direkt als Hardware) oder muss man das „zu Fuß“ machen ?
      Hey, wie V+Krombacher schon sagt über millis. (Beispiel blink without delay in der Arduino Lib). Ein delay muss auf jedenfall vermieden werden, da es das Mesh stören kann.

      Auch denkbar ist das über ein PWM zu machen Frequenz 0,1 HZ zum Beispiel.

      Mein Wroom kam auch jetzt :grinser:
    • Neu

      Hey,

      anbei einmal mein Projektstand mit dem ESP 32.

      [Blockierte Grafik: https://i.ibb.co/9vcdQCn/20211127-134941-klein.jpg]
      [Blockierte Grafik: https://i.ibb.co/4J2bmw1/20211127-124120-klein.jpg]

      Zum testen ist es vom Breadboard auf eine feste Platine gekommen. Testplatinen für Taster, LED's und Hupe (auch eine LED) angefertigt und das ganze verbunden. Soweit funktioniert es und man kann es Mobil durch die Gegend tragen. Als nächstes muss das Funkprotokoll erstellt werden.