FLProg + nooLite



, , – . , , FLProg . .

Nun ein kleiner Hintergrund. Einer der Benutzer des Programms wandte sich an die Firma Nootechnika mit dem Vorschlag, einen Benutzerblock (zu diesem Zeitpunkt hatte das Programm bereits eine solche Gelegenheit) für die Arbeit mit den Geräten zu erstellen, die sie über das FLProg-Programm herstellen. Der Leiter des Unternehmens ging einen anderen Weg. Er kontaktierte mich und bot mir an, mir Muster seiner Produkte zur Integration in das Programm zur Verfügung zu stellen. Nachdem ich den Vorschlag studiert hatte, stimmte ich zu, da auf der Website eine Bibliothek für die Arbeit mit dem Sendermodul vorhanden war, eine gute Beschreibung verfügbar war und ich keine Probleme sah. Das Paket kam sehr schnell an (was für die russische Post seltsam ist), sogar unter Berücksichtigung des Grenzübergangs.

Was ist gekommen:

MT1132-Sendemodul Das MT1132-



Modul dient zur Steuerung der Leistungsblöcke des nooLite-Systems über die Arduino-Plattform, Mikrocontroller oder PCs.
Strukturell besteht das Modul aus einer Leiterplatte, auf der sich die Steuersteuerung und der Sender befinden.
Das Modul wird über die serielle UART-Schnittstelle gesteuert. Das Modul empfängt über UART empfangene Steuerbefehle und überträgt diese über den eingebauten Funksender an Leistungsteile.


Netzteil SD111-180



Funkgesteuerter LED-RGB-Controller (Netzteil) nooLite SD111-180 dient zur Steuerung eines 12-V-LED-Streifens. Der LED-Streifen kann entweder dreifarbig (RGB) oder einfarbig sein.

Leistungsblock SU111-300



Das Netzteil SU111-300 ist ein universeller Funkschalter für das Ein- und Ausschalten der Fernbeleuchtung mit der Möglichkeit, die Helligkeit für dimmbare Lichtquellen (Glühlampen, dimmbare LED-Lampen) einzustellen. Das Gerät kann in zwei Modi betrieben werden: Relais und Dimmen, abhängig von der erwarteten Art der Last. Im Relaismodus kann der SU111 300 jede Art von Last aufnehmen.

Weitere Informationen zu diesen Geräten finden Sie auf der Website des Herstellers.

Blöcke sind von sehr hoher Qualität. Ich vermute, dass das Unternehmen auf der Grundlage eines ehemaligen sowjetischen Unternehmens operiert und zu Sowjetzeiten in Weißrussland gute Ausrüstung hergestellt wurde. Obwohl ich mich vielleicht irre.

Eine originelle Implementierung des Systems zum Einschalten der Bindung von Leistungsblöcken. Um diesen Modus zu aktivieren, muss das Gehäuse an einem bestimmten Punkt komprimiert werden, und der Mikroschalter im Inneren funktioniert. Aber in der Anleitung ist dieser Ort ziemlich deutlich dargestellt, so dass ich das erste Mal bekam.

Die erste Aufnahme des Senders machte das gleiche etwas nervös. Beim Einschalten wurde nichts auf der Platine beleuchtet, obwohl sich auf der Platine eine LED befindet. Ich bin es gewohnt, auf allen Geräten Betriebsanzeigen zu haben. Bei diesem Sender ist es nicht. Zuerst entschied ich sogar, dass das Board nicht funktionierte und kletterte auf den Tester, um die Spannung zu messen. Aber alles scheint in Ordnung zu sein. Dann lud ich die Bibliothek von der Website herunter und fing an, Beispiele auszuprobieren. Die LED blinkt beim Senden eines Befehls. In diesem Fall gibt es Subtilität. Er blinkt nicht beim Empfang von Daten über UART, sondern beim Senden eines Befehls in der Luft. Diese Funktion hat mich auch nervös gemacht. Bereits während der Entwicklung des Compilers hörten die Befehle für Leistungsblöcke plötzlich auf zu blinken, und die LED hörte auf zu blinken. Obwohl ich deutlich gesehen habe, dass die Pakete für UART gehen. Ich entschied, dass ich ihn immer noch verbrannte. Es stellte sich heraus, dass der Fehler im Code und die Prüfsumme,Was im Paket vorhanden ist, habe ich falsch berechnet. Dementsprechend hat der Sender dieses Paket nicht empfangen und keine Befehle gesendet. Nach dem Korrigieren des Codes funktionierte alles einwandfrei.

Nun zur Bibliothek, die sich auf der Website des Herstellers befindet. Ich hatte ursprünglich vor, es zu benutzen. Aber als ich mit ihr wählte, wurde mir klar, dass sie nicht zu mir passte. Erstens wird die Arbeit mit dem LED Lena-Controller (SD111-180) nicht unterstützt. Zweitens weiß sie nicht, wie sie den Dimmmodus für das Aggregat (SU111 300) steuern soll. Und schließlich ist es an SoftwareSerial genagelt. Das ist nicht immer gut. In einigen Fällen ist es jedoch besser, Hardware-UART zu verwenden, um Ressourcen zu sparen. Daher musste ich den Code selbst entwickeln (natürlich die Bibliotheksimplementierung ausspionieren).

Im Übrigen hinterließ dieses Gerät einen sehr guten Eindruck. Es funktioniert stabil, es gibt viele Möglichkeiten, die Qualität ist auf einem sehr hohen Niveau. Zu einem Preis natürlich höher als die übliche Ausrüstung aus China. Aber in China gibt es noch keine Analoga (zumindest habe ich nicht den gleichen Komplex gefunden), aber im Vergleich zu den Ländern im Ausland, in denen solche Systeme hergestellt werden, ist der Preis sogar sehr attraktiv.

Nun schauen wir uns die Implementierung der Sendersteuerung durch das FLProg-Programm an.

Der Sender ist gemäß dem Schema mit dem Arduino verbunden.



Die Verbindung RX (Arduino) - TX (MT1132) kann nicht verwendet werden, da ich keine Rückmeldung vom Sender an die Steuerung implementiert habe (Bestätigung des Sendens eines Befehls). Der Ausschluss dieser Verbindung ermöglicht die Verwendung des Hardware-UART, um den Sender beim Verschütten des Controllers nicht zu trennen.

Um den Sender im FLProg-Programm zu steuern, wurde der Noo Lite-Sendersteuerblock (Ordner Verschiedenes) in der Elementbibliothek angezeigt.





Das Senden eines Befehls an den Sender erfolgt an der Vorderflanke des Impulses am Eingang „Senden“. Für jeden Befehl kann ein separater Block verwendet werden, oder der Befehl kann durch den Wert angegeben werden, der an die Comand-Eingabe übergeben wird.
Wie alle anderen wird dieser Block mit dem Blockeditor konfiguriert (wird durch Doppelklicken auf den Block aufgerufen, der in den Arbeitsbereich der Schaltung übertragen wird).
Wenn Sie den ersten solchen Block in der Schaltung parametrieren, müssen Sie einen neuen Sender anschließen.



Dadurch wird das Senderverbindungsfenster geöffnet.



In diesem Fenster müssen Sie den Namen des Senders angeben und den Port auswählen, an den er angeschlossen ist. Bei Verwendung von SoftwareSerial müssen auch die Pins für diesen Port ausgewählt werden.
Nach dem Anschließen des Senders müssen Sie den Kanal einstellen, auf dem der Befehl gesendet wird.



Der Kanal kann als Konstante eingestellt werden, verwenden Sie also den Eingang dafür. Dementsprechend kann bei Verwendung des Eingangs der Kanal programmgesteuert geändert werden.

Wählen Sie abschließend den zu sendenden Befehl aus.



Liste der unterstützten Befehle:

  • Empfänger binden
  • Empfänger lösen
  • Last aktivieren
  • Last ausschalten
  • Status wechseln
  • Führen Sie ein sanftes Dimmen durch
  • Führen Sie eine sanfte Helligkeitssteigerung durch
  • Ändern Sie die Richtung einer sanften Helligkeitsänderung
  • Hör auf zu verblassen
  • Helligkeit einstellen (0 - 120)
  • Aktivieren Sie eine reibungslose Farbanpassung (nur für LED-Strip-Controller).
  • Farbe wechseln (nur für LED-Strip-Controller)
  • Betriebsmodus wechseln (nur für LED-Streifensteuerung)
  • Effektgeschwindigkeit umschalten (nur für LED-Streifenregler)
  • Stellen Sie die Helligkeit für jeden Kanal ein (0-255) (nur für LED-Strip-Controller)
  • Erinnere dich an den Zustand
  • Gespeicherten Status festlegen


Sie können auch eine Eingabe verwenden, um einen Befehl auszuwählen (wählen Sie „Eingabe“ in der Befehlsliste). In diesem Fall können Sie ihn während der Programmausführung ändern, indem Sie die Befehlsnummer an die Comand-Eingabe senden.

Teamnummern:
TeamnummerDas Team
0Last aktivieren
1Führen Sie ein sanftes Dimmen durch
2Last ausschalten
3Führen Sie eine sanfte Helligkeitssteigerung durch
4Status wechseln
5Ändern Sie die Richtung einer sanften Helligkeitsänderung
7Gespeicherten Status festlegen
8Erinnere dich an den Zustand
9
10
15
16( LED )
17( LED )
18( LED )
19( LED )


Bitte beachten Sie, dass in dieser Tabelle keine Befehle " Helligkeit einstellen (0 - 120) " und "Helligkeit für jeden Kanal einstellen (0-255) (nur für LED-Streifen-Controller)" enthalten sind. Um diese Befehle zu senden, müssen Sie einen separaten Block verwenden. Schauen wir uns diese Befehle genauer an.

Helligkeit einstellen (0 - 120) “ - Wenn dieser Befehl ausgewählt ist, werden zusätzliche Parameter im Blockeditor angezeigt.



Mit diesen Parametern können Sie den im Befehl als Konstante übertragenen Helligkeitswert einstellen oder die Eingabe verwenden. Im zweiten Fall des Eingangs erscheint der Block „ Wert “.



Helligkeit für jeden Kanal einstellen (0-255) (nur für den LED-Streifencontroller).»- Wenn Sie diesen Befehl im Blockeditor auswählen, werden zusätzliche Parameter angezeigt.



Und genau wie im vorherigen Befehl kann der Helligkeitswert für jeden Kanal als Konstante eingestellt werden oder der Eingang verwendet werden. Gleichzeitig hat der Block die entsprechenden Eingänge - " R ", " G ", " B "



Nun, wahrscheinlich ist das alles, danke für Ihre Aufmerksamkeit.

Source: https://habr.com/ru/post/de391477/


All Articles