FLProg + nooLite



, , – . , , FLProg . .

Ahora un poco de historia. Uno de los usuarios del programa recurrió a la empresa Nootechnika con una propuesta para crear un bloque de usuarios (en ese momento el programa ya tenía esa oportunidad) para trabajar con el equipo que producen a través del programa FLProg. El jefe de la empresa tomó un camino diferente. Me contactó y se ofreció a proporcionarme muestras de sus productos para su integración en el programa. Habiendo estudiado la propuesta, estuve de acuerdo, porque el sitio tenía una biblioteca para trabajar con el módulo transmisor, había una buena descripción disponible y no vi ningún problema. El paquete llegó muy rápido (lo cual es extraño para el puesto ruso), incluso teniendo en cuenta el cruce fronterizo.

Lo que ha venido:

módulo transmisor MT1132 El módulo MT1132



está diseñado para controlar los bloques de alimentación del sistema nooLite desde la plataforma Arduino, microcontroladores o PC.
Estructuralmente, el módulo está hecho en forma de una placa de circuito impreso en la que se encuentran el controlador de control y el transmisor.
El módulo se controla a través de la interfaz serial UART. El módulo recibe los comandos de control recibidos a través de UART y los transfiere a las unidades de potencia a través del transmisor de radio incorporado.


Unidad de alimentación SD111-180



Controlador LED RGB controlado por radio (unidad de alimentación) nooLite SD111-180 está diseñado para controlar una tira de LED de 12 V. La tira de LED puede ser tricolor (RGB) o de un solo color.

Bloque de alimentación SU111-300



La unidad de potencia SU111-300 es un interruptor de radio universal diseñado para iluminación remota de encendido / apagado con la capacidad de ajustar el brillo de las fuentes de luz regulables (lámparas incandescentes, lámparas LED regulables). La unidad puede funcionar en dos modos: relé y atenuación, según el tipo de carga esperado. En modo relé, el SU111 300 es capaz de manejar cualquier tipo de carga.

Puede encontrar más información sobre estos dispositivos en el sitio web del fabricante.

Los bloques están hechos de muy alta calidad. Sospecho que la empresa opera sobre la base de alguna antigua empresa soviética, y en la época soviética, se produjo un buen equipo en Bielorrusia. Aunque tal vez me equivoque.

Una implementación original del sistema para activar la unión de bloques de alimentación. Para habilitar este modo, es necesario comprimir la carcasa en un punto determinado y el microinterruptor interno funcionará. Pero en las instrucciones este lugar se muestra con bastante claridad, así que obtuve la primera vez.

La primera inclusión del transmisor puso el mismo un poco nervioso. Cuando se aplicó energía, no se encendió nada en el tablero, aunque hay un LED en el tablero. Estoy acostumbrado a tener indicadores de energía en todos los dispositivos. En este transmisor no lo es. Al principio, incluso decidí que la placa no funcionaba y subí al probador para medir el voltaje. Pero todo parece estar en orden. Luego descargué la biblioteca del sitio y comencé a probar ejemplos. El LED parpadea al enviar un comando. En este caso, hay sutileza. Parpadea no cuando recibe datos en UART, sino cuando envía un comando al aire. Esta característica también me puso nervioso. Ya durante el desarrollo del compilador, los comandos para los bloques de alimentación dejaron de pasar repentinamente y el LED dejó de parpadear. Aunque vi claramente que los paquetes para UART van. Decidí que aún lo quemaba. Resultó que el error en el código y la suma de verificación,que está presente en el paquete, he calculado incorrectamente. En consecuencia, el transmisor no recibió este paquete y no envió comandos. Después de arreglar el código, todo funcionó bien.

Ahora sobre la biblioteca, que está en el sitio web del fabricante. Originalmente planeé usarlo. Pero hurgando con ella, me di cuenta de que no me convenía. En primer lugar, no admite trabajar con el controlador LED Lena (SD111-180). En segundo lugar, no sabe cómo controlar el modo de atenuación de la unidad de potencia (SU111 300). Y finalmente, está clavado en SoftwareSerial. Esto no siempre es bueno. Aún así, en algunos casos, para ahorrar recursos, es mejor usar el hardware UART. Por lo tanto, tuve que desarrollar el código yo mismo (naturalmente, espiando la implementación de la biblioteca).

En todos los demás aspectos, este equipo dejó una muy buena impresión. Funciona de manera estable, hay muchas posibilidades, la calidad está en un nivel muy alto. A un precio, por supuesto, más alto que el equipo habitual de China. Pero en China todavía no hay análogos (al menos no encontré el mismo complejo), pero en comparación con los países del extranjero donde se producen dichos sistemas, el precio es incluso muy atractivo.

Bueno, ahora veamos la implementación del control del transmisor a través del programa FLProg.

El transmisor está conectado al Arduino de acuerdo con el esquema.



La conexión RX (Arduino) - TX (MT1132) no se puede utilizar, porque no implementé la retroalimentación del transmisor al controlador (confirmación de envío de un comando). La exclusión de esta conexión permite usar el hardware UART para no desconectar el transmisor cuando se derrama el controlador.

Para controlar el transmisor en el programa FLProg, el bloque de control del transmisor Noo Lite (carpeta Varios) apareció en la biblioteca de elementos.





El envío de un comando al transmisor se produce en el borde delantero del pulso en la entrada "Enviar". Se puede usar un bloque separado para cada comando, o el comando se puede especificar por el valor suministrado a la entrada de Comand.
Como todos los demás, este bloque se configura utilizando el editor de bloques (llamado haciendo doble clic en el bloque transferido al espacio de trabajo del circuito).
Si parametriza el primer bloque de este tipo en el circuito, debe conectar un nuevo transmisor.



Esto abrirá la ventana de conexión del transmisor.



En esta ventana, debe especificar el nombre del transmisor y seleccionar el puerto al que está conectado. En el caso de utilizar SoftwareSerial, también es necesario seleccionar los pines para este puerto.
Después de conectar el transmisor, debe configurar el canal en el que se transmitirá el comando.



El canal se puede establecer como una constante, así que use la entrada para esto. En consecuencia, cuando se usa la entrada, el canal se puede cambiar mediante programación.

Y finalmente, seleccione el comando para enviar.



Lista de comandos compatibles:

  • Receptor receptor
  • Desate el receptor
  • Habilitar carga
  • Apagar la carga
  • Cambiar de estado
  • Ejecute atenuación suave
  • Ejecute un aumento suave en el brillo
  • Cambiar la dirección de un cambio suave en el brillo
  • Deja de desvanecerse
  • Establecer brillo (0-120)
  • Habilite la coincidencia de color suave (solo para el controlador de tira LED)
  • Cambiar color (solo para controlador de tira de LED)
  • Cambiar el modo de operación (solo para el controlador de tira de LED)
  • Cambiar la velocidad del efecto (solo para el controlador de tira de LED)
  • Establezca el brillo para cada canal (0-255) (solo para el controlador de tira de LED)
  • Recordar estado
  • Establecer estado guardado


También puede usar una entrada para seleccionar un comando (seleccione “Entrada” en la lista de comandos) y, en este caso, puede cambiarlo durante la ejecución del programa enviando el número de comando a la entrada Comand.

Números de equipo:
Número de equipoEl equipo
0 0Habilitar carga
1Ejecute atenuación suave
2Apagar la carga
3Ejecute un aumento suave en el brillo
4 4Cambiar de estado
5 5Cambiar la dirección de un cambio suave en el brillo
7 7Establecer estado guardado
8Recordar estado
9 9
10
15
16( LED )
17( LED )
18( LED )
19( LED )


Tenga en cuenta que en esta tabla no hay comandos " Establecer brillo (0 - 120) " y "Establecer brillo para cada canal (0-255) (solo para el controlador de tira de LED)". Para enviar estos comandos debe usar un bloque separado. Veamos estos comandos con más detalle.

Establecer brillo (0 - 120) ”: cuando se selecciona este comando, aparecerán parámetros adicionales en el editor de bloques.



Con estos parámetros, puede establecer el valor de brillo transmitido como una constante en el comando o usar la entrada. En el segundo caso de entrada aparece en la unidad de entrada « Valor »



« brillo Set para cada canal (0-255) (sólo para la cinta controlador LED)»- cuando selecciona este comando en el editor de bloques, también aparecerán parámetros adicionales.



Y al igual que en el comando anterior, el valor de brillo para cada canal se puede establecer como una constante, o usar la entrada. Al mismo tiempo, el bloque tendrá las entradas correspondientes: " R ", " G ", " B "



Bueno, probablemente eso es todo, gracias por la atención.

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


All Articles