FLProg + nooLite



, , – . , , FLProg . .

Maintenant un peu de fond. L'un des utilisateurs du programme s'est tourné vers la société Nootechnika avec une proposition de créer un bloc d'utilisateurs (à l'époque, le programme avait déjà une telle opportunité) pour travailler avec les équipements qu'ils produisent via le programme FLProg. Le chef d'entreprise est allé dans une autre direction. Il m'a contacté et m'a proposé de me fournir des échantillons de ses produits pour leur intégration dans le programme. Après avoir étudié la proposition, j'ai accepté, car le site avait une bibliothèque pour travailler avec le module émetteur, il y avait une bonne description disponible et je n'ai vu aucun problème. Le colis est arrivé très rapidement (ce qui est étrange pour la poste russe), même en tenant compte du passage de la frontière.

Ce qui est arrivé:

Module émetteur MT1132 Le module MT1132



est conçu pour contrôler les blocs d'alimentation du système nooLite à partir de la plate-forme Arduino, des microcontrôleurs ou des PC.
Structurellement, le module est réalisé sous la forme d'une carte de circuit imprimé sur laquelle se trouvent le contrôleur de commande et l'émetteur.
Le module est contrôlé via l'interface série UART. Le module reçoit les commandes de contrôle reçues via UART et les transfère aux unités de puissance via l'émetteur radio intégré.


Unité d'alimentation SD111-180



Contrôleur RVB LED radiocommandé (unité d'alimentation) nooLite SD111-180 est conçu pour contrôler une bande LED 12 V. La bande LED peut être tricolore (RGB) ou unicolore.

Bloc d'alimentation SU111-300



L'unité d'alimentation SU111-300 est un interrupteur radio universel conçu pour allumer / éteindre à distance avec la possibilité de régler la luminosité des sources de lumière à intensité variable (lampes à incandescence, lampes à LED à intensité variable). L'unité peut fonctionner en deux modes: relais et gradation, selon le type de charge attendu. En mode relais, le SU111 300 est capable de gérer tout type de charge.

Vous trouverez plus d'informations sur ces appareils sur le site Web du fabricant.

Les blocs sont fabriqués de très haute qualité. Je soupçonne que l'entreprise fonctionne sur la base d'une ancienne entreprise soviétique et, à l'époque soviétique, de bons équipements étaient produits au Bélarus. Bien que je me trompe peut-être.

Une implémentation originale du système de liaison de bloc d'alimentation a été implémentée. Pour activer ce mode, il est nécessaire de comprimer le boîtier à un certain point, et le micro-interrupteur à l'intérieur fonctionnera. Mais dans les instructions, cet endroit est indiqué très clairement, donc j'ai eu la première fois.

La première inclusion de l'émetteur a rendu le même un peu nerveux. Lors de la mise sous tension, rien n'était allumé sur la carte, bien qu'il y ait une LED sur la carte. J'ai l'habitude d'avoir des indicateurs d'alimentation sur tous les appareils. Sur cet émetteur, ce n'est pas le cas. Au début, j'ai même décidé que la carte ne fonctionnait pas et j'ai grimpé le testeur pour mesurer la tension. Mais tout semble être en ordre. J'ai ensuite téléchargé la bibliothèque sur le site et j'ai commencé à essayer des exemples. La LED clignote lors de l'envoi d'une commande. Dans ce cas, il y a de la subtilité. Il ne clignote pas lors de la réception de données sur UART, mais lors de l'envoi d'une commande en direct. Cette fonctionnalité m'a également rendu nerveux. Déjà pendant le développement du compilateur, les commandes de blocs d'alimentation ont soudainement cessé de passer et la LED a cessé de clignoter. Bien que j'ai clairement vu que les packages pour UART disparaissent. J'ai décidé que je le brûlais toujours. Il s'est avéré que l'erreur dans le code et la somme de contrôle,qui est présent dans le paquet, j'ai calculé incorrectement. En conséquence, l'émetteur n'a pas reçu ce paquet et n'a pas envoyé de commandes. Après avoir corrigé le code, tout a bien fonctionné.

Passons maintenant à la bibliothèque, qui se trouve sur le site Web du fabricant. J'avais initialement prévu de l'utiliser. Mais en choisissant avec elle, j'ai réalisé qu'elle ne me convenait pas. Premièrement, il ne prend pas en charge le travail avec le contrôleur LED Lena (SD111-180). Deuxièmement, elle ne sait pas comment contrôler le mode de variation du bloc d'alimentation (SU111 300). Et enfin, il est cloué sur SoftwareSerial. Ce n'est pas toujours bon. Pourtant, dans certains cas, pour économiser les ressources, il est préférable d'utiliser le matériel UART. Par conséquent, j'ai dû développer le code moi-même (espionnant naturellement l'implémentation de la bibliothèque).

À tous autres égards, cet équipement a laissé une très bonne impression. Cela fonctionne de manière stable, il existe de nombreuses possibilités, la qualité est à un niveau très élevé. À un prix bien sûr plus élevé que l'équipement habituel de Chine. Mais en Chine, il n'y a pas encore d'analogues (du moins je n'ai pas trouvé le même complexe), mais en comparaison avec les pays lointains à l'étranger où de tels systèmes sont produits, le prix est même très attractif.

Eh bien, regardons maintenant la mise en œuvre du contrôle de l'émetteur via le programme FLProg.

L'émetteur est connecté à l'Arduino conformément au schéma.



La connexion RX (Arduino) - TX (MT1132) ne peut pas être utilisée, car je n'ai pas implémenté de retour de l'émetteur vers le contrôleur (confirmation d'envoi d'une commande). L'exclusion de cette connexion permet d'utiliser le matériel UART pour ne pas déconnecter l'émetteur lors du renversement du contrôleur.

Pour contrôler l'émetteur dans le programme FLProg, le bloc de contrôle de l'émetteur Noo Lite (dossier Divers) est apparu dans la bibliothèque d'éléments.





L'envoi d'une commande à l'émetteur se fait sur le front d'attaque de l'impulsion à l'entrée «Send». Un bloc séparé peut être utilisé pour chaque commande, ou la commande peut être spécifiée par la valeur fournie à l'entrée Comand.
Comme tout le monde, ce bloc est configuré à l'aide de l'éditeur de blocs (appelé en double-cliquant sur le bloc transféré dans l'espace de travail du circuit).
Si vous paramétrez le premier bloc de ce type dans le circuit, vous devez alors connecter un nouvel émetteur.



Cela ouvrira la fenêtre de connexion de l'émetteur.



Dans cette fenêtre, vous devez spécifier le nom de l'émetteur et sélectionner le port auquel il est connecté. Dans le cas de l'utilisation de SoftwareSerial, il est également nécessaire de sélectionner les broches de ce port.
Après avoir connecté l'émetteur, vous devez définir le canal sur lequel la commande sera transmise.



Le canal peut être défini comme une constante, utilisez donc l'entrée pour cela. Par conséquent, lors de l'utilisation de l'entrée, le canal peut être modifié par programme.

Et enfin, sélectionnez la commande à envoyer.



Liste des commandes prises en charge:

  • Récepteur de liaison
  • Détacher le récepteur
  • Activer la charge
  • Désactiver la charge
  • État de commutation
  • Exécutez une gradation douce
  • Exécutez une augmentation douce de la luminosité
  • Changer la direction d'un changement de luminosité en douceur
  • Arrêtez de s'estomper
  • Régler la luminosité (0 - 120)
  • Activer la correspondance des couleurs en douceur (uniquement pour le contrôleur de bande LED)
  • Changer de couleur (uniquement pour le contrôleur de bande LED)
  • Commutez le mode de fonctionnement (uniquement pour le contrôleur de bande LED)
  • Changer la vitesse de l'effet (uniquement pour le contrôleur de bande LED)
  • Réglez la luminosité pour chaque canal (0-255) (uniquement pour le contrôleur de bande LED)
  • Rappelez-vous l'état
  • Définir l'état enregistré


Vous pouvez également utiliser une entrée pour sélectionner une commande (sélectionnez «Entrée» dans la liste des commandes) et dans ce cas, vous pouvez la modifier pendant l'exécution du programme en envoyant le numéro de commande à l'entrée Comand.

Numéros d'équipe:
Numéro d'équipeL'équipe
0Activer la charge
1Exécutez une gradation douce
2Désactiver la charge
3Exécutez une augmentation douce de la luminosité
4État de commutation
5Changer la direction d'un changement de luminosité en douceur
7Définir l'état enregistré
8Rappelez-vous l'état
9
10
15
16( LED )
17( LED )
18( LED )
19( LED )


Veuillez noter que dans ce tableau, il n'y a pas de commandes " Régler la luminosité (0 - 120) " et "Régler la luminosité pour chaque canal (0-255) (uniquement pour le contrôleur de bande LED)". Pour envoyer ces commandes, vous devez utiliser un bloc distinct. Examinons ces commandes plus en détail.

« Régler la luminosité (0 - 120) » - lorsque cette commande est sélectionnée, des paramètres supplémentaires apparaissent dans l'éditeur de blocs.



À l'aide de ces paramètres, vous pouvez définir la valeur de luminosité transmise comme constante dans la commande ou utiliser l'entrée. Dans le deuxième cas de l'entrée, le bloc « Value » apparaît



« Réglez la luminosité pour chaque canal (0-255) (uniquement pour le contrôleur de bande LED)»- lorsque vous sélectionnez cette commande dans l'éditeur de blocs, des paramètres supplémentaires apparaissent également.



Et tout comme dans la commande précédente, la valeur de luminosité de chaque canal peut être définie comme constante ou utiliser l'entrée. En même temps, le bloc aura les entrées correspondantes - " R ", " G ", " B "



Eh bien, c'est probablement tout, merci de votre attention.

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


All Articles