Permettez-moi de me présenter - Projet FLProg



Bonne après-midi.

Je m'appelle Sergey Glushenko et je suis l'auteur du projet FLProg . Ce blog est dédié à ce projet, et ici je vais parler de l'actualité du projet, et des réalisations des membres de la communauté des utilisateurs du programme. Le projet est dédié à la création d'un environnement de programmation visuel pour les cartes Arduino, et donc, avant de parler du programme FLProg, je veux donner un bref aperçu des programmes existants conçus pour programmer ces cartes.

Les environnements de programmation des cartes Arduino peuvent être divisés selon les types suivants:
  1. Bloc-notes pompés
  2. Environnements de développement de texte
  3. Environnements graphiques visualisant la structure du code.
  4. Environnements graphiques qui affichent du code sous forme de graphiques.
  5. Environnements de programmation visuels qui n'utilisent pas de code.


Considérez chaque type.

"Bloc-notes" pompés

Ce type inclut l'environnement de programmation d'origine Arduino-IDE, ainsi que plusieurs de ses clones.



La conception du programme pour le contrôleur en lui a lieu dans le langage de traitement / câblage, qui est un dialecte du langage C (plutôt, C ++). Cet environnement est, en fait, un éditeur de texte ordinaire avec la possibilité de charger du code écrit dans le contrôleur

Environnements de développement de texte

Une alternative à l'IDE Arduino est l'environnement de développement du fabricant de microcontrôleurs Atmel - AVRStudio.



La programmation est conduite en C pur, et elle a déjà beaucoup plus de fonctionnalités et ressemble plus à des IDE sérieux pour de «vrais» langages de programmation.

Ces deux types de programmes sont conçus pour des programmeurs expérimentés qui connaissent bien le langage et peuvent les utiliser pour créer des projets sérieux.

Environnements graphiques visualisant la structure du code.

Ce sont des programmes qui, en fait, sont une extension de mise en forme pour un éditeur de code texte ordinaire. Dans ce document, le programme est également écrit en C, mais de manière plus pratique. Maintenant, il existe de nombreux environnements de ce type, les exemples les plus frappants: Scratch, S4A, Ardublock. Ils sont très bien adaptés à l'apprentissage élémentaire en programmation C, car ils montrent parfaitement la structure et la syntaxe du langage. Mais pour les grands projets sérieux, le programme est lourd.



Environnements graphiques affichant du code sous forme de graphiques

Ce sont des programmes qui cachent le code et le remplacent par des équivalents graphiques. La structure du langage s'y répète également, des cycles, des transitions, des conditions se forment. Ils sont également très appropriés pour apprendre à construire des algorithmes, suivis d'une transition vers la programmation en langages classiques. Et ils ne conviennent pas non plus à la construction de grands projets en raison de la lourdeur de l'affichage résultant. Un exemple d'un tel programme: MiniBlog, Algorithm Builder, Flowcode



Les types de programmes décrits ci-dessus sont conçus pour les programmeurs ou pour ceux qui décident d'étudier la programmation classique. Mais pour la fabrication du dispositif final, en plus de programmer directement le contrôleur, il nécessite généralement le développement d'une carte de circuit externe, le développement et le calcul de la partie puissance, des jonctions d'entrée et bien plus encore. Les programmeurs ont souvent des problèmes avec cela. Mais les électriciens et les ingénieurs en électronique font un excellent travail. Mais parmi eux, il y a peu de programmeurs qui pourraient créer un programme pour le contrôleur. La combinaison d'un programmeur et d'un ingénieur électronique est un cas assez rare. À la suite de cette situation, de vrais projets achevés basés sur des cartes Arduino (et même d'autres contrôleurs). Pour résoudre ce problème, des programmes de ce dernier type sont utilisés.

Environnements de programmation visuels qui n'utilisent pas de code.

Ces programmes mettent en œuvre le principe utilisé par presque tous les fabricants de contrôleurs industriels depuis de nombreuses années. Il consiste à créer des programmes pour le contrôleur dans les langages FBD ou LAD. En fait, en tant que tels, ils ne sont pas des langues. Ce sont plutôt des environnements graphiques pour dessiner des circuits schématiques ou logiques. Rappelons que les processeurs n'ont pas toujours été des microprocesseurs, mais ont été créés à partir de microcircuits numériques. Par conséquent, ceux qui ont l'habitude de travailler avec la technologie numérique apprécieront de travailler dessus plus que d'écrire du code dans des langages de programmation classiques. Un exemple de tels programmes sont les projets Horizont et FLProg. Les programmes de ce type sont bien adaptés à la fois pour l'étude de la construction de la technologie des impulsions et des relais et pour la création de projets sérieux.


Et enfin, le héros de ce blog, le projet FLProg .

Depuis que je travaille en tant que développeur de systèmes de contrôle de processus depuis de nombreuses années, j'ai essayé de collecter tout ce que j'aimais le plus dans les environnements auprès des principaux fabricants d'équipements industriels (Tia-Portal, Zelio Soft, Logo Soft Comfort) dans le programme FLProg.
Le programme vous permet de réaliser des circuits sous deux formes: circuits fonctionnels (FBD) et circuits relais (LAD).



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


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

Cette méthode de programmation s'est avérée très pratique pour faciliter l'entrée dans le développement de systèmes ACS pour les ingénieurs électriciens et les ingénieurs électroniciens. Lors du développement de conceptions d'appareils, ils peuvent facilement lier le fonctionnement de ces installations aux algorithmes de fonctionnement du contrôleur.

Construit sur ces vues, FLProg fonctionne avec Arduino. Pourquoi?
La carte est très pratique pour le développement et le débogage rapides de ses appareils, ce qui est important non seulement pour les radio-amateurs, mais aussi très utile, par exemple, dans les milieux scolaires et dans les laboratoires de formation collégiale. L'un des avantages - vous n'avez pas besoin d'un programmeur. Vous connectez la carte Arduino à l'ordinateur et téléchargez le programme terminé à partir de l'environnement de développement. Actuellement, il existe une large sélection de modules Arduino, des modules supplémentaires fonctionnant avec Arduino, des capteurs et des dispositifs d'exécution.

Actuellement, le programme prend en charge les versions suivantes d'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. De plus, la carte Intel Galileo gen2 est récemment apparue dans la liste des contrôleurs pris en charge. À l'avenir, il est prévu de reconstituer cette liste et, éventuellement, d'ajouter des cartes basées sur des contrôleurs STM.



Un projet du programme FLProg est un ensemble de cartes uniques, sur chacune desquelles un module complet du circuit général est assemblé. Pour plus de commodité, chaque tableau a un nom et des commentaires. De plus, chaque carte peut être minimisée (pour économiser de l'espace dans la zone de travail lorsque le travail est terminé) et déployée.

La composition de la bibliothèque d'éléments pour le langage FBD en ce moment.

  • [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 composition de la bibliothèque d'éléments pour le langage LAD en ce moment.



  • 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



Je vais vous en dire plus sur le projet dans les articles suivants, et enfin une courte vidéo montrant les principes de travail dans le programme et la possibilité de contrôler la carte depuis l'application sur le smartphone.

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


All Articles