FLProg + nooLite



, , – . , , FLProg . .

Agora um pouco de fundo. Um dos usuários do programa procurou a empresa Nootechnika com a proposta de criar um bloco de usuários (na época o programa já tinha essa oportunidade) para trabalhar com o equipamento que eles produzem por meio do programa FLProg. O chefe da empresa seguiu um caminho diferente. Ele entrou em contato comigo e se ofereceu para me fornecer amostras de seus produtos para sua integração no programa. Tendo estudado a proposta, concordei, porque o site tinha uma biblioteca para trabalhar com o módulo transmissor, havia uma boa descrição disponível e não havia problemas. A encomenda chegou muito rapidamente (o que é estranho para o posto russo), mesmo levando em conta a passagem da fronteira.

O que veio:

Módulo transmissor MT1132 O módulo MT1132



foi projetado para controlar os blocos de energia do sistema nooLite da plataforma Arduino, microcontroladores ou PCs.
Estruturalmente, o módulo é feito na forma de uma placa de circuito impresso na qual o controlador de controle e o transmissor estão localizados.
O módulo é controlado através da interface serial UART. O módulo recebe comandos de controle recebidos via UART e os transfere para as unidades de energia via transmissor de rádio embutido.


Unidade de potência SD111-180 O



controlador RGB LED controlado por rádio (unidade de energia) nooLite SD111-180 foi projetado para controlar uma faixa de LED de 12 V. A faixa de LED pode ser tricolor (RGB) ou monocromática.

Bloco de potência SU111-300



A unidade de energia SU111-300 é um comutador de rádio universal projetado para iluminação on / off remota com a capacidade de ajustar o brilho para fontes de luz reguláveis ​​(lâmpadas incandescentes, lâmpadas reguláveis ​​por LED). A unidade pode operar em dois modos: relé e escurecimento, dependendo do tipo de carga esperado. No modo relé, o SU111 300 é capaz de lidar com qualquer tipo de carga.

Mais informações sobre esses dispositivos podem ser encontradas no site do fabricante.

Os blocos são fabricados com altíssima qualidade. Suspeito que a empresa opere com base em alguma antiga empresa soviética e, nos tempos soviéticos, um bom equipamento foi produzido na Bielorrússia. Embora talvez eu esteja errado.

Uma implementação original do sistema para ativar a ligação de blocos de energia. Para ativar este modo, é necessário comprimir o alojamento em um determinado ponto e o microinterruptor interno funcionará. Mas nas instruções, este lugar é mostrado com bastante clareza, então eu recebi a primeira vez.

A primeira inclusão do transmissor deixou o mesmo um pouco nervoso. Quando a energia foi aplicada, nada estava aceso na placa, embora exista um LED na placa. Estou acostumado a ter indicadores de energia em todos os dispositivos. Neste transmissor não é. No começo, até decidi que a placa não funcionava e subi no testador para medir a tensão. Mas tudo parece estar em ordem. Então baixei a biblioteca do site e comecei a experimentar exemplos. O LED pisca ao enviar um comando. Nesse caso, há sutileza. Ele pisca não ao receber dados no UART, mas ao enviar um comando no ar. Esse recurso também me deixou nervoso. Já durante o desenvolvimento do compilador, os comandos para os blocos de energia de repente pararam de passar e o LED parou de piscar. Embora eu tenha visto claramente que os pacotes para o UART vão. Eu decidi que ainda o queimava. Aconteceu que o erro no código e a soma de verificação,que está presente no pacote, calculei incorretamente. Consequentemente, o transmissor não recebeu esse pacote e não enviou comandos. Depois de corrigir o código, tudo funcionou bem.

Agora, sobre a biblioteca, que está no site do fabricante. Eu originalmente planejei usá-lo. Mas, escolhendo com ela, percebi que ela não combinava comigo. Primeiro, ele não suporta o trabalho com o controlador LED Lena (SD111-180). Em segundo lugar, ela não sabe como controlar o modo de escurecimento da unidade de energia (SU111 300). E, finalmente, é pregado no SoftwareSerial. Isso nem sempre é bom. Ainda, em alguns casos, para economizar recursos, é melhor usar o UART de hardware. Portanto, eu mesmo tive que desenvolver o código (espionando naturalmente a implementação da biblioteca).

Em todos os outros aspectos, este equipamento deixou uma ótima impressão. Funciona de forma estável, existem muitas possibilidades, a qualidade está em um nível muito alto. A um preço mais alto do que o equipamento usual da China. Mas na China ainda não há análogos (pelo menos não encontrei o mesmo complexo), mas em comparação com os países do exterior onde esses sistemas são produzidos, o preço é ainda muito atraente.

Bem, agora vamos olhar para a implementação do controle do transmissor através do programa FLProg.

O transmissor está conectado ao Arduino de acordo com o esquema.



A conexão RX (Arduino) - TX (MT1132) não pode ser usada, porque eu não implementei o feedback do transmissor ao controlador (confirmação de envio de um comando). A exclusão dessa conexão permite usar o UART de hardware para não desconectar o transmissor ao derramar o controlador.

Para controlar o transmissor no programa FLProg, o bloco de controle do transmissor Noo Lite (pasta Miscellaneous) apareceu na biblioteca de elementos.





O envio de um comando para o transmissor ocorre na extremidade anterior do pulso na entrada "Enviar". Um bloco separado pode ser usado para cada comando ou o comando pode ser especificado pelo valor fornecido à entrada Comand.
Como todos os outros, esse bloco é configurado usando o editor de blocos (chamado clicando duas vezes no bloco transferido para a área de trabalho do circuito).
Se você parametrizar o primeiro bloco desse tipo no circuito, precisará conectar um novo transmissor.



Isso abrirá a janela de conexão do transmissor.Nesta



janela, você deve especificar o nome do transmissor e selecionar a porta à qual está conectado. No caso de usar o SoftwareSerial, também é necessário selecionar os pinos para esta porta.
Depois de conectar o transmissor, você deve definir o canal no qual o comando será transmitido.



O canal pode ser definido como uma constante, então use a entrada para isso. Consequentemente, ao usar a entrada, o canal pode ser alterado programaticamente.

E, finalmente, selecione o comando para enviar.



Lista de comandos suportados:

  • Receptor de ligação
  • Desatar o receptor
  • Ativar carregamento
  • Desligue a carga
  • Estado do comutador
  • Executar escurecimento suave
  • Execute um aumento suave no brilho
  • Mude a direção de uma mudança suave no brilho
  • Pare de desaparecer
  • Definir brilho (0 - 120)
  • Ativar correspondência de cores suave (apenas para o controlador de faixa de LED)
  • Mudar de cor (apenas para o controlador de faixa de LED)
  • Alternar modo de operação (apenas para o controlador de faixa de LED)
  • Mudar a velocidade do efeito (apenas para o controlador de faixa de LED)
  • Defina o brilho para cada canal (0-255) (apenas para o controlador de faixa de LED)
  • Lembrar estado
  • Definir estado salvo


Você também pode usar uma entrada para selecionar um comando (selecione “Entrada” na lista de comandos) e, nesse caso, pode alterá-lo durante a execução do programa enviando o número do comando para a entrada Comand.

Números da equipe:
Número da equipeA equipe
0 0Ativar carregamento
1 1Executar escurecimento suave
2Desligue a carga
3Execute um aumento suave no brilho
4Estado do comutador
5Mude a direção de uma mudança suave no brilho
7Definir estado salvo
8Lembrar estado
9
10
15
16( LED )
17( LED )
18( LED )
19( LED )


Observe que nesta tabela não existem comandos " Definir brilho (0 - 120) " e "Definir brilho para cada canal (0-255) (apenas para o controlador de faixa de LED)". Para enviar esses comandos, você deve usar um bloco separado. Vamos ver esses comandos com mais detalhes.

Definir brilho (0 - 120) ” - quando esse comando é selecionado, parâmetros adicionais aparecerão no editor de blocos.



Usando esses parâmetros, você pode definir o valor do brilho transmitido como uma constante no comando ou usar a entrada. No segundo caso da entrada, o bloco “ Valoraparece



Defina o brilho para cada canal (0-255) (apenas para o controlador de faixa de LED)»- quando você seleciona este comando no editor de blocos, parâmetros adicionais também aparecem.



E, assim como no comando anterior, o valor do brilho de cada canal pode ser definido como uma constante ou usar a entrada. Ao mesmo tempo, o bloco terá as entradas correspondentes - " R ", " G ", " B "



Bem, provavelmente isso é tudo, obrigado por sua atenção.

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


All Articles