Permítanme presentarme - proyecto FLProg



Buenas tardes.

Mi nombre es Sergey Glushenko, y soy el autor del proyecto FLProg . Este blog está dedicado a este proyecto, y aquí hablaré sobre las noticias del proyecto y los logros de los miembros de la comunidad de usuarios del programa. El proyecto está dedicado a crear un entorno de programación visual para las placas Arduino y, por lo tanto, antes de hablar sobre el programa FLProg, quiero dar una breve descripción de los programas existentes diseñados para programar estas placas.

Los entornos de programación de las placas Arduino se pueden dividir en los siguientes tipos:
  1. Blocs de notas bombeados
  2. Entornos de desarrollo de texto
  3. Entornos gráficos que visualizan la estructura del código.
  4. Entornos gráficos que muestran código en forma de gráficos.
  5. Entornos de programación visual que no usan código.


Considera cada tipo.

"Blocs de notas" bombeados

Este tipo incluye el entorno de programación original Arduino-IDE, así como muchos de sus clones.



El diseño del programa para el controlador se lleva a cabo en el lenguaje de procesamiento / cableado, que es un dialecto del lenguaje C (más bien, C ++). De hecho, este entorno es un editor de texto normal con la capacidad de cargar código escrito en el controlador

Entornos de desarrollo de texto

Una alternativa al IDE de Arduino es el entorno de desarrollo del fabricante de microcontroladores Atmel - AVRStudio.



La programación se lleva a cabo en C puro, y ya tiene muchas más funciones y es más como IDE serios para lenguajes de programación "reales".

Estos dos tipos de programas están diseñados para programadores experimentados que conocen bien el idioma y pueden usarlos para crear proyectos serios.

Entornos gráficos que visualizan la estructura del código.

Estos son programas que, de hecho, son una extensión de formato para un editor de código de texto normal. En él, el programa también está escrito en C, pero de una manera más conveniente. Ahora hay muchos de esos entornos, los ejemplos más llamativos: Scratch, S4A, Ardublock. Son muy adecuados para el aprendizaje elemental en la programación en C, ya que muestran perfectamente la estructura y la sintaxis del lenguaje. Pero para proyectos grandes y serios, el programa es engorroso.



Entornos gráficos que muestran código en forma de gráficos

Estos son programas que ocultan el código y lo reemplazan con equivalentes gráficos. La estructura del lenguaje también se repite en ellos, se forman ciclos, transiciones, condiciones. También son muy adecuados para aprender a construir algoritmos, seguidos de una transición a la programación en lenguajes clásicos. Y tampoco son adecuados para la construcción de grandes proyectos debido a la complejidad de la pantalla resultante. Un ejemplo de dicho programa: MiniBlog, Algorithm Builder, Flowcode



Los tipos de programas descritos anteriormente están diseñados para programadores o para aquellos que deciden estudiar programación clásica. Pero para la fabricación del dispositivo final, además de programar directamente el controlador, generalmente requiere el desarrollo de una placa de circuito externa, el desarrollo y el cálculo de la parte de alimentación, las uniones de entrada y mucho más. Los programadores a menudo tienen problemas con esto. Pero los electricistas e ingenieros electrónicos hacen un gran trabajo al respecto. Pero entre ellos hay pocos programadores que podrían hacer un programa para el controlador. La combinación de un programador y un ingeniero electrónico es un caso bastante raro. Como resultado de esta situación, proyectos reales y completados basados ​​en unidades de placas Arduino (y de hecho otros controladores). Para resolver este problema, se utilizan programas del último tipo.

Entornos de programación visual que no usan código.

Estos programas implementan el principio que ha sido utilizado por casi todos los fabricantes de controladores industriales durante muchos años. Consiste en crear programas para el controlador en los idiomas FBD o LAD. De hecho, como tales no son idiomas. Más bien, son entornos gráficos para dibujar circuitos esquemáticos o lógicos. Recuerde que los procesadores no siempre fueron microprocesadores, sino que se crearon sobre la base de microcircuitos digitales. Por lo tanto, aquellos que están acostumbrados a trabajar con tecnología digital disfrutarán trabajar en ellos más que escribir código en lenguajes de programación clásicos. Un ejemplo de tales programas son los proyectos Horizont y FLProg. Los programas de este tipo son adecuados tanto para estudiar la construcción de tecnología de pulsos y relés como para crear proyectos serios.


Y finalmente, el héroe de este blog, el proyecto FLProg .

Como llevo muchos años trabajando como desarrollador de sistemas de control de procesos, traté de recopilar todo lo que más me gustó en los entornos de los principales fabricantes de equipos industriales (Tia-Portal, Zelio Soft, Logo Soft Comfort) en el programa FLProg.
El programa le permite hacer circuitos en dos formas: circuitos funcionales (FBD) y circuitos de relé (LAD).



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


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

Este método de programación resultó ser muy conveniente para facilitar el ingreso al desarrollo de sistemas ACS para ingenieros eléctricos e ingenieros electrónicos. Al desarrollar diseños de dispositivos, pueden vincular fácilmente el funcionamiento de estas instalaciones a los algoritmos de funcionamiento del controlador.

Basado en estas vistas, FLProg trabaja con Arduino. ¿Por qué?
La placa es muy conveniente para el rápido desarrollo y depuración de sus dispositivos, lo cual es importante no solo para los radioaficionados, sino que también es muy útil, por ejemplo, en círculos escolares y en laboratorios de capacitación universitaria. Una de las ventajas: no necesita un programador. Conecta la placa Arduino a la computadora y descarga el programa terminado del entorno de desarrollo. Actualmente, hay una amplia selección de módulos Arduino, módulos adicionales que funcionan con Arduino, sensores y dispositivos de ejecución.

Actualmente, el programa admite las siguientes versiones de 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. Además, la placa Intel Galileo gen2 ha aparecido recientemente en la lista de controladores compatibles. En el futuro, se supone que repondrá esta lista y, posiblemente, agregará placas basadas en controladores STM.



Un proyecto en el programa FLProg es un conjunto de placas únicas, en cada una de las cuales se ensambla un módulo completo del circuito general. Para mayor comodidad, cada tabla tiene un nombre y comentarios. Además, cada placa se puede minimizar (para ahorrar espacio en el área de trabajo cuando se termina el trabajo) y desplegarse.

La composición de la biblioteca de elementos para el lenguaje FBD en este 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


La composición de la biblioteca de elementos para el lenguaje LAD en este 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



Te contaré más sobre el proyecto en publicaciones posteriores, y finalmente un breve video que muestra los principios de trabajar en el programa y la capacidad de controlar el tablero desde la aplicación en el teléfono inteligente.

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


All Articles