Deixe-me apresentar - projeto FLProg



Boa tarde.

Meu nome é Sergey Glushenko e sou o autor do projeto FLProg . Este blog é dedicado a este projeto, e aqui vou falar sobre as novidades do projeto e as conquistas dos membros da comunidade de usuários do programa. O projeto é dedicado à criação de um ambiente de programação visual para placas Arduino e, portanto, antes de falar sobre o programa FLProg, desejo dar uma breve visão geral dos programas existentes projetados para a programação dessas placas.

Os ambientes de programação das placas Arduino podem ser divididos nos seguintes tipos:
  1. Blocos de notas bombeados
  2. Ambientes de desenvolvimento de texto
  3. Ambientes gráficos visualizando a estrutura do código.
  4. Ambientes gráficos que exibem código na forma de gráficos.
  5. Ambientes de programação visual que não usam código.


Considere cada tipo.

"Blocos de notas" bombeados

Este tipo inclui o ambiente de programação original Arduino-IDE, bem como muitos de seus clones.



O design do programa para o controlador ocorre na linguagem Processing / Wiring, que é um dialeto da linguagem C (em vez de C ++). Esse ambiente é, de fato, um editor de texto comum com a capacidade de carregar código escrito no controlador

Ambientes de desenvolvimento de texto

Uma alternativa ao Arduino IDE é o ambiente de desenvolvimento do fabricante do microcontrolador Atmel - AVRStudio.



A programação é conduzida em C puro e já possui muito mais recursos e é mais como IDEs sérios para linguagens de programação "reais".

Esses dois tipos de programas são projetados para programadores experientes que conhecem bem o idioma e podem usá-los para criar projetos sérios.

Ambientes gráficos visualizando a estrutura do código.

Esses são programas que, de fato, são uma extensão de formatação para um editor de código de texto comum. Nele, o programa também é escrito em C, mas de uma maneira mais conveniente. Agora, existem muitos desses ambientes, os exemplos mais impressionantes: Scratch, S4A, Ardublock. Eles são muito adequados para o ensino fundamental em programação C, pois mostram perfeitamente a estrutura e a sintaxe da linguagem. Mas para projetos grandes e sérios, o programa é complicado.



Ambientes gráficos exibindo código na forma de gráficos

Estes são programas que ocultam o código e o substituem por equivalentes gráficos. A estrutura da linguagem também se repete nelas, formam-se ciclos, transições, condições. Eles também são muito adequados para aprender a criar algoritmos, seguidos de uma transição para a programação em linguagens clássicas. E eles também não são adequados para a construção de grandes projetos devido à dificuldade da exibição resultante. Um exemplo desse programa: MiniBlog, Algorithm Builder, Flowcode



Os tipos de programas descritos acima são projetados para programadores ou para aqueles que decidem estudar programação clássica. Porém, para a fabricação do dispositivo final, além de programar diretamente o controlador, geralmente é necessário o desenvolvimento de uma placa de circuito externa, o desenvolvimento e o cálculo da parte de potência, junções de entrada e muito mais. Os programadores geralmente têm problemas com isso. Mas eletricistas e engenheiros eletrônicos fazem um ótimo trabalho nisso. Mas entre eles existem poucos programadores que poderiam fazer um programa para o controlador. A combinação de um programador e um engenheiro eletrônico é um caso bastante raro. Como resultado dessa situação, projetos reais concluíram com base em unidades de placas Arduino (e de fato outros controladores). Para resolver esse problema, programas do último tipo são usados.

Ambientes de programação visual que não usam código.

Esses programas implementam o princípio usado por quase todos os fabricantes de controladores industriais há muitos anos. Consiste na criação de programas para o controlador nos idiomas FBD ou LAD. Por uma questão de fato, como tal, não são línguas. Pelo contrário, são ambientes gráficos para desenhar circuitos esquemáticos ou lógicos. Lembre-se de que os processadores nem sempre eram microprocessadores, mas foram criados com base em microcircuitos digitais. Portanto, aqueles que estão acostumados a trabalhar com a tecnologia digital gostam mais de trabalhar com eles do que escrever código em linguagens de programação clássicas. Um exemplo de tais programas são os projetos Horizont e FLProg. Programas desse tipo são adequados tanto para o estudo da construção da tecnologia de pulso e relé, quanto para a criação de projetos sérios.


E, finalmente, o herói deste blog, o projeto FLProg .

Como trabalho como desenvolvedor de sistemas de controle de processos há muitos anos, tentei coletar tudo o que mais gostava nos ambientes dos principais fabricantes de equipamentos industriais (Tia-Portal, Zelio Soft, Logo Soft Comfort) no programa FLProg.
O programa permite que você faça circuitos de duas formas: circuitos funcionais (FBD) e circuitos de relé (LAD).



FBD (Function Block Diagram) – 61131-3. , . . () — , (, , , , , , , .). , . , . . .


Ladder Diagram (LD, LAD, ) – () . , . , . , , . - , , . ( — ; — ). , . , — . , .

Esse método de programação mostrou-se muito conveniente para facilitar a entrada no desenvolvimento de sistemas ACS para engenheiros elétricos e engenheiros eletrônicos. Ao desenvolver projetos de dispositivos, eles podem facilmente vincular a operação dessas instalações aos algoritmos de operação do controlador.

Com base nessas visualizações, o FLProg trabalha com o Arduino. Por quê?
O conselho é muito conveniente para o rápido desenvolvimento e depuração de seus dispositivos, o que é importante não apenas para radioamadores, mas também muito útil, por exemplo, nos círculos escolares e nos laboratórios de treinamento de faculdades. Uma das vantagens - você não precisa de um programador. Você conecta a placa Arduino ao computador e baixa o programa finalizado do ambiente de desenvolvimento. Atualmente, há uma ampla seleção de módulos do Arduino, módulos adicionais trabalhando com o Arduino, sensores e dispositivos de execução.

Atualmente, o programa suporta as seguintes versões do Arduino: Arduino Diecimila, Arduino Duemilanove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano (ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Pro ( ATmega168), Arduino Pro (ATmega328), Arduino UNO. Além disso, a placa Intel Galileo gen2 apareceu recentemente na lista de controladores suportados. No futuro, é suposto reabastecer essa lista e, possivelmente, adicionar placas baseadas nos controladores STM.



Um projeto no programa FLProg é um conjunto de placas exclusivas, em cada uma das quais um módulo completo do circuito geral é montado. Por conveniência, cada quadro tem um nome e comentários. Além disso, cada placa pode ser minimizada (para economizar espaço na área de trabalho quando o trabalho for concluído) e implantada.

A composição da biblioteca de elementos para a linguagem FBD no momento.

  • [OR]
  • [AND]
  • [Bounce]
  • [XOR]

  • [Scale]

  • [SR]
  • [TT]
  • [Rtrig]
  • [RS]

  • [Timer]
  • [Generator]

  • [SpeedCounter]
  • [Counter]

  • [SUM(+)]
  • [MUL(*)]
  • [SUB(-)]
  • [DIV(/)]

  • [COS]
  • [ABS]
  • [MAX]
  • [POW]
  • [SQRT]
  • [TAN]
  • [MIN]
  • [SQ]
  • [RANDOM]
  • [SIN]

  • [Comparator]

UART
  • UART
  • UART
  • UART
  • UART

  • [SWITCH]
  • [MUX]
  • [DMS]

  • ServoMotor
  • StepMotor

  • [Alarm]
  • [GetTime]
  • [SetTime]

  • D44780
  • D44780 I2C

  • Char


  • [DS18x2x]
  • [IR Ressive]
  • [Ultrasonic HC-SR04]
  • [DHT11, DHT21, DHT22]
  • [BMP-085]
  • [BH1750LightMeter]

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • RessiveVariableFromCommunication
  • WebServerPage
  • SendVariableFromCommunication
  • WebClient

  • narodmon.ru
  • goplusplatform.com
  • RemoteXY


A composição da biblioteca de elementos para a linguagem LAD no momento.



  • SIN
  • COS
  • TAN
  • ABS
  • MAX
  • MIN
  • SQ
  • SQRT
  • POW
  • RANDOM


UART
  • UART
  • UART
  • UART
  • UART



  • HD44780
  • HD4480 I2C

  • Char


  • HC-SR04
  • DHT11 (DHT21, DHT22)
  • DS18x2x
  • IR Ressive
  • BMP-085
  • BH1750 Light Meter

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • Web
  • Web

  • narodmon.ru
  • RemoteXY



Vou contar mais sobre o projeto nas postagens subsequentes e, finalmente, um pequeno vídeo mostrando os princípios de trabalho no programa e a capacidade de controlar o quadro a partir do aplicativo no smartphone.

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


All Articles