Environnement de programmation en bloc pour arduino. Langage de programmation graphique pour Arduino. Environnements graphiques qui visualisent la structure du code

J'ai parlé du contexte du projet FLProg. Maintenant, je veux vous en dire plus sur le projet et son statut aujourd'hui.
L'objectif principal du projet est d'inclure des personnes non familiarisées avec la programmation parmi les utilisateurs de la carte Arduino. Ceci est possible grâce à l'expérience de la programmation industrielle, qui a été accumulée au fil des années par les fabricants de contrôleurs industriels.
Le projet se compose de deux parties. La première partie est l'application de bureau FLProg, qui est un environnement de programmation graphique pour les cartes Arduino. Deuxièmement, il s'agit du site FLProg.ru, à travers lequel les membres de la communauté des utilisateurs du programme peuvent communiquer entre eux, découvrir les dernières nouvelles du projet, télécharger la dernière version du programme et trouver les informations nécessaires pour travailler avec l'application.

Commençons dans l'ordre.
Le programme FLProg permet de créer un firmware pour les cartes Arduino en utilisant les langages graphiques FBD et LAD, qui sont la norme dans le domaine de la programmation de contrôleurs industriels.

Description du langage FBD

FBD (Function Block Diagram) est un langage de programmation graphique de la norme CEI 61131-3. Le programme est formé à partir d'une liste de circuits exécutés séquentiellement de haut en bas. Lors de la programmation, des ensembles de blocs de bibliothèque sont utilisés. Un bloc (élément) est un sous-programme, une fonction ou un bloc fonctionnel (ET, OU, NON, déclencheurs, temporisateurs, compteurs, blocs de traitement de signaux analogiques, opérations mathématiques, etc.). Chaque chaîne individuelle est une expression composée graphiquement des éléments individuels. Le bloc suivant est connecté à la sortie du bloc, formant une chaîne. À l'intérieur de la chaîne, les blocs sont exécutés strictement dans l'ordre de leur connexion. Le résultat du calcul du circuit est écrit dans une variable interne ou transmis à la sortie du régulateur.


Description du langage CONT

Ladder Diagram (LD, LAD, RKS) - langage logique de relais (ladder). La syntaxe du langage est pratique pour remplacer les circuits logiques réalisés sur la technologie relais. Le langage est destiné aux ingénieurs en automatisation travaillant dans des installations industrielles. Fournit une interface claire à la logique du contrôleur, ce qui facilite non seulement les tâches de programmation et de mise en service, mais également un dépannage rapide de l'équipement connecté au contrôleur. Le programme de logique à relais possède une interface graphique visuelle et intuitive pour les ingénieurs électriciens, représentant les opérations logiques comme un circuit électrique avec des contacts fermés et ouverts. Le passage ou l'absence de courant dans ce circuit correspond au résultat d'une opération logique (vrai - si le courant passe ; faux - si le courant ne passe pas). Les principaux éléments du langage sont les contacts, qui peuvent être assimilés au sens figuré à une paire de contacts de relais ou de bouton. Une paire de contacts est identifiée par une variable logique, et l'état de cette paire est identifié par la valeur de la variable. Une distinction est faite entre les éléments de contact normalement fermés et normalement ouverts, qui peuvent être comparés aux boutons-poussoirs normalement fermés et normalement ouverts dans les circuits électriques.


J'ai légèrement élargi les fonctionnalités classiques de ces langages en ajoutant des blocs fonctionnels chargés de travailler avec des périphériques externes. Ce sont des wrappers pour les bibliothèques conçues pour fonctionner avec eux.
Un projet dans FLProg est un ensemble de cartes, sur chacune desquelles un module de circuit général complet est assemblé. Pour plus de commodité, chaque tableau a un nom et des commentaires. De plus, chaque planche peut être enroulée (pour économiser de l'espace sur la zone de travail lorsque le travail est terminé) et déployée. Un indicateur rouge dans le nom du tableau indique qu'il y a des erreurs dans la disposition du tableau.

Vue de la fenêtre du programme en mode langage FBD

Vue de la fenêtre du programme en mode langage CONT

Le circuit de chaque carte est assemblé à partir de blocs fonctionnels conformément à la logique du contrôleur. La plupart des blocs fonctionnels ont une fonctionnalité configurable qui peut être utilisée pour personnaliser leur fonctionnement en fonction des besoins d'une application particulière.

De plus, pour chaque bloc fonctionnel, une description détaillée est disponible à tout moment et permet de comprendre son fonctionnement et ses paramètres.

Lorsqu'il travaille avec le programme, l'utilisateur n'a pas besoin d'écrire de code, de contrôler l'utilisation des entrées et des sorties, de vérifier l'unicité des noms et la cohérence des types de données. Tout cela est surveillé par le programme. Il vérifie également l'exactitude de l'ensemble du projet et indique la présence d'erreurs.
Plusieurs outils auxiliaires ont été créés pour fonctionner avec des périphériques externes. Il s'agit d'un outil d'initialisation et de configuration d'horloge temps réel, d'outils de lecture d'adresses d'appareils sur les bus OneWire et I2C, ainsi que d'un outil de lecture et d'enregistrement de codes de boutons sur une télécommande IR. Toutes les données définies peuvent être enregistrées dans un fichier et ensuite utilisées dans le programme.

Liste des blocs fonctions existant actuellement en langage FBD

Éléments basiques



Blocs spéciaux

déclencheurs



Minuteries


Compteurs


Mathématiques



Algèbre






Comparaison

Com - Port

envoyer
EnvoyerVariable
Variable de réception

Changer


Moteurs

Servomoteur
moteur pas à pas

Horloge en temps réel


Affiche

Affichage sur puce HD44780
Rétroéclairage de l'affichage sur la puce HD44780 I2C

Cordes

Ajout de chaîne

Capteurs



carte SD

Écrire la variable sur la carte SD
Télécharger un fichier depuis une carte SD

Conversion de types

Conversion de chaîne
Convertir flottant en entier

CI d'extension

Extenseur de bornes 74HC595

Opérations sur les bits

Encodeur
Décodeur
Lire un peu
Enregistrer un rythme

Divers

Clavier matriciel

Liste des blocs fonction existant actuellement en langage CONT

Blocs de base

Contact
Bobine
Protection contre les bavardages
Détection de bord d'attaque

Relais spéciaux

Relais bistable
Relais temporisé
Générateur
Relais de comparaison

Algèbre

PÉCHÉ
CS
BRONZER
abdos
MAX
MIN
SQ
SQRT
prisonnier de guerre
ALÉATOIRE

Blocs analogiques

Mise à l'échelle
Mathématiques
Comptoir
commutateur analogique
Commutateur plusieurs à un
Commutateur un à plusieurs
Entrée analogique du contrôleur
Sortie analogique du contrôleur
Entrée connecteur analogique
Sortie connecteur analogique
compteur de vitesse

ComPort

Transfert vers ComPort
Passer une variable via ComPort
Recevoir des variables via ComPort

Moteurs

Servomoteur
moteur pas à pas

Horloge en temps réel

Pour obtenir des données
Alarme
Réglage de l'heure

Affiche

Affichage sur puce HD44780
Unité de commande de rétroéclairage d'affichage basée sur la puce HD4480 I2C
Bloc de décodage de l'indicateur à sept segments

Cordes

Ajout de chaîne

Capteurs

Distancemètre à ultrasons HC-SR04
Capteur de température et d'humidité DHT11 (DHT21, DHT22)
Capteur de température DS18x2x
Réactif IR
BMP-085

Bonjour! Je suis Alikin Alexander Sergeevich, professeur d'enseignement complémentaire, je dirige les cercles "Robotique" et "Radio Engineering" au Théâtre central pour enfants et jeunes de Labinsk. Je voudrais parler un peu d'une manière simplifiée de programmer Arduino en utilisant le programme ArduBloсk.

J'ai introduit ce programme dans le processus éducatif et je suis ravi du résultat, il est particulièrement demandé par les enfants, en particulier lors de l'écriture de programmes simples ou pour la création d'une étape initiale de programmes complexes. ArduBloсk est un environnement de programmation graphique, c'est-à-dire que toutes les actions sont effectuées avec des images dessinées avec des actions signées en russe, ce qui simplifie grandement l'apprentissage de la plate-forme Arduino. Les enfants de la 2e année peuvent facilement maîtriser le travail avec Arduino grâce à ce programme.

Oui, certains pourraient dire que Scratch existe toujours et est également un environnement graphique très simple pour la programmation Arduino. Mais Scratch ne flashe pas l'Arduino, mais le contrôle uniquement à l'aide d'un câble USB. Arduino est dépendant de l'ordinateur et ne peut pas fonctionner de manière autonome. Lors de la création de vos propres projets, l'autonomie pour Arduino est la chose principale, en particulier lors de la création d'appareils robotiques.

Même les robots LEGO bien connus, tels que NXT ou EV3, ne sont plus aussi intéressants pour nos étudiants avec l'avènement du programme ArduBloсk dans la programmation Arduino. En outre, Arduino est beaucoup moins cher que n'importe quel concepteur LEGO et de nombreux composants peuvent simplement être extraits d'anciens appareils électroniques grand public. Le programme ArduBloсk aidera non seulement les débutants, mais également les utilisateurs actifs de la plate-forme Arduino dans leur travail.

Alors, qu'est-ce qu'ArduBlock ? Comme je l'ai dit, il s'agit d'un environnement de programmation graphique. Presque entièrement traduit en russe. Mais dans ArduBloсk, le point culminant n'est pas seulement cela, mais aussi le fait que le programme ArduBloсk que nous avons écrit est converti en code IDE Arduino. Ce programme est intégré à l'environnement de programmation Arduino IDE, c'est-à-dire qu'il s'agit d'un plugin.

Vous trouverez ci-dessous un exemple d'une LED clignotante et d'un programme converti dans l'IDE Arduino. Tout le travail avec le programme est très simple et n'importe quel étudiant peut le comprendre.

À la suite de travailler sur le programme, vous pouvez non seulement programmer l'Arduino, mais également étudier des commandes qui nous sont incompréhensibles dans le format texte de l'IDE Arduino, mais si vous êtes trop paresseux pour écrire des commandes standard, vous devriez rapidement esquisser sortez un programme simple dans ArduBlok avec une manipulation rapide de la souris, et déboguez-le dans l'IDE Arduino.

Pour installer ArduBlok, vous devez d'abord télécharger et installer l'IDE Arduino à partir du site officiel Arduino et comprendre les paramètres lorsque vous travaillez avec la carte Arduino UNO. Comment faire cela est décrit sur le même site ou sur Amperk, ou regardez YouTube. Eh bien, lorsque vous avez compris tout cela, vous devez télécharger ArduBlok à partir du site officiel, ici. Je ne recommande pas de télécharger les dernières versions, elles sont très difficiles pour les débutants, mais la version du 2013-07-12 est la plus importante, ce fichier y est le plus populaire.

Ensuite, nous renommons le fichier téléchargé en ardublock-all et dans le dossier "documents". Créez les dossiers suivants : Arduino > tools > ArduBlockTool > tool et dans ce dernier nous lançons le fichier téléchargé et renommé. ArduBlok fonctionne sur tous les systèmes d'exploitation, même sur Linux, je l'ai personnellement testé sur XP, Win7, Win8, tous les exemples sont pour Win7. L'installation du programme est la même pour tous les systèmes.

Eh bien, si c'est plus simple, j'ai préparé une archive sur le Mail-disk 7z, en décompressant, vous trouverez 2 dossiers. Dans l'un, le programme Arduino IDE fonctionne déjà, et dans l'autre dossier, le contenu doit être envoyé au dossier documents.

Pour travailler dans ArduBlok, vous devez exécuter l'IDE Arduino. Ensuite, nous allons dans l'onglet Outils et nous y trouvons l'élément ArduBlok, cliquez dessus - et le voici, notre objectif.

Passons maintenant à l'interface du programme. Comme vous l'avez déjà compris, il n'y a pas de paramètres, mais il y a beaucoup d'icônes pour la programmation, et chacune d'elles porte une commande au format texte Arduino IDE. Il y a encore plus d'icônes dans les nouvelles versions, il est donc difficile de gérer la dernière version d'ArduBlok et certaines icônes ne sont pas traduites en russe.

Dans la section "Gestion", nous trouverons une variété de cycles.

Dans la section "Ports", nous pouvons gérer les valeurs des ports, ainsi que les émetteurs de sons, les servos ou les capteurs de proximité à ultrasons qui leur sont connectés.

Dans la section "Nombres / Constantes", nous pouvons choisir des valeurs numériques ou créer une variable, mais il est peu probable que vous utilisiez celle ci-dessous.

Dans la section "Opérateurs", nous trouverons tous les opérateurs de comparaison et de calcul nécessaires.

La section Utilitaires utilise principalement des icônes au fil du temps.

"TinkerKit Bloks" est la section des capteurs TinkerKit achetés. Bien sûr, nous n'avons pas un tel ensemble, mais cela ne signifie pas que les icônes ne fonctionneront pas pour d'autres ensembles, au contraire, il est très pratique pour les gars d'utiliser des icônes telles que l'allumage d'une LED ou d'un bouton . Ces signes sont utilisés dans presque tous les programmes. Mais ils ont une particularité - lorsqu'ils sont sélectionnés, il y a des icônes incorrectes indiquant les ports, ils doivent donc être supprimés et l'icône de la section «nombres / constantes» doit être remplacée en haut de la liste.

"DF Robot" - cette section est utilisée si des capteurs y sont spécifiés, ils sont parfois trouvés. Et l'exemple d'aujourd'hui ne fait pas exception, nous avons un "Commutateur IR réglable" et un "Capteur de ligne". Le "capteur de ligne" est différent de celui de l'image, car il provient d'Amperka. Leurs actions sont identiques, mais le capteur d'Amperka est bien meilleur, puisqu'il dispose d'un régulateur de sensibilité.

Seeedstudio Grove - Je n'ai jamais utilisé les capteurs de cette section, bien qu'il n'y ait que des joysticks. Cette section a été étendue dans les nouvelles versions.

Et la dernière section est "Linker Kit". Les capteurs qui y sont présentés ne m'ont pas traversé l'esprit.

Je voudrais montrer un exemple de programme sur un robot se déplaçant le long de la bande. Le robot est très simple, à la fois dans l'assemblage et dans l'acquisition, mais avant tout. Commençons par son acquisition et son assemblage.

Voici l'ensemble des pièces lui-même, tout a été acheté sur le site Amperka.

  1. AMP-B001 Motor Shield (2 canaux, 2 A) 1 890 roubles
  2. AMP-B017 Bouclier Troyka RUB 1,690
  3. AMP-X053 Compartiment à piles 3×2 AA 1 60 RUB
  4. AMP-B018 Capteur de ligne numérique 2 580 RUB
  5. ROB0049 Plate-forme à deux roues miniQ 1 1890 RUB
  6. SEN0019 Capteur d'obstacle infrarouge 1 390 RUB
  7. FIT0032 Support pour capteur d'obstacle infrarouge 1 90 RUB
  8. A000066 Arduino Uno 1 1150 RUB

Pour commencer, nous allons assembler la plate-forme à roues et souder les fils aux moteurs.

Ensuite, nous installerons des racks pour monter la carte Arduino UNO, qui ont été extraits de l'ancienne carte mère ou d'autres supports similaires.

Ensuite, nous attachons la carte Arduino UNO à ces racks, mais nous ne pouvons pas serrer un seul boulon - les connecteurs gênent. Vous pouvez, bien sûr, les souder, mais c'est à vous de décider.

Ensuite, nous attachons le capteur d'obstacle infrarouge à son support spécial. Veuillez noter que le contrôle de la sensibilité est sur le dessus, c'est pour faciliter le réglage.

Maintenant, nous installons des capteurs de ligne numériques, ici nous devons chercher quelques boulons et écrous 4. Nous installons deux écrous entre la plate-forme elle-même et le capteur de ligne, et fixons les capteurs avec le reste.

La prochaine installation de Motor Shield ou d'une autre manière, vous pouvez appeler le pilote du moteur. Dans notre cas, faites attention au cavalier. Nous n'utiliserons pas d'alimentation séparée pour les moteurs, il est donc installé dans cette position. La partie inférieure est scellée avec du ruban électrique, de sorte qu'il n'y ait pas de court-circuit accidentel du connecteur USB de l'Arduino UNO, juste au cas où.

Installez Troyka Shield sur le dessus du Motor Shield. Il est nécessaire pour la commodité de connecter des capteurs. Tous les capteurs que nous utilisons sont numériques, donc les capteurs de ligne sont connectés aux ports 8 et 9, car ils sont également appelés broches, et le capteur d'obstacle infrarouge est connecté au port 12. Assurez-vous de noter que vous ne pouvez pas utiliser les ports 4, 5, 6, 7 car ils sont utilisés par le Motor Shield pour contrôler les moteurs. J'ai même spécialement peint ces ports avec un marqueur rouge pour que les élèves puissent le comprendre.

Si vous l'avez déjà remarqué, j'ai ajouté un manchon noir, juste au cas où, pour que le compartiment à piles que nous avons installé ne s'envole pas. Et enfin, nous fixons toute la structure avec un élastique ordinaire.

Les connexions du compartiment batterie peuvent être de 2 types. Première connexion filaire à Troyka Shield. Il est également possible de souder la prise d'alimentation et de la connecter à la carte Arduino UNO elle-même.

Voici notre robot prêt. Avant de vous lancer dans la programmation, vous devrez apprendre comment tout fonctionne, à savoir :
- Moteurs :
Les ports 4 et 5 sont utilisés pour contrôler un moteur, et 6 et 7 l'autre ;
On ajuste la vitesse de rotation des moteurs avec PWM sur les ports 5 et 6 ;
Vers l'avant ou vers l'arrière en signalant les ports 4 et 7.
- Capteurs :
Nous sommes tous numériques, ils donnent donc des signaux logiques sous la forme de 1 ou 0 ;
Et pour les régler, ils ont des régulateurs spéciaux et à l'aide d'un tournevis approprié, ils peuvent être calibrés.

Les détails peuvent être trouvés à Amperka. Pourquoi ici? Parce qu'il y a beaucoup d'informations sur le travail avec Arduino.

Eh bien, nous avons peut-être tout regardé superficiellement, étudié et, bien sûr, assemblé le robot. Maintenant il faut le programmer, le voici - le programme tant attendu !

Et le programme converti en Arduino IDE :

Void setup() ( pinMode(8 , INPUT); pinMode(12 , INPUT); pinMode(9 , INPUT); pinMode(4 , OUTPUT); pinMode(7 , OUTPUT); pinMode(5, OUTPUT); pinMode(6 , SORTIE); ) void loop() ( if (digitalRead(12)) ( if (digitalRead(8)) ( if (digitalRead(9)) ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite( 6, 255); digitalWrite(7 , HIGH); ) else ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite(6, 50); digitalWrite(7 , LOW); ) ) else ( if (digitalRead (9)) ( digitalWrite(4 , LOW); analogWrite(5, 50); analogWrite(6, 255); digitalWrite(7 , HIGH); ) else ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite(6, 255); digitalWrite(7 , HIGH); ) ) ) else ( digitalWrite(4 , HIGH); analogWrite(5, 0); analogWrite(6, 0); digitalWrite(7 , HIGH); ) )

En conclusion, je tiens à dire que ce programme n'est qu'une aubaine pour l'éducation, même pour l'auto-apprentissage, il vous aidera à apprendre les commandes de l'IDE Arduino. Le point culminant le plus important est qu'avec plus de 50 icônes d'installation, cela commence à "échouer". Oui, en effet, c'est un point culminant, car la programmation constante uniquement sur ArduBlok ne vous apprendra pas à programmer dans l'IDE Arduino. Le soi-disant "glitch" permet de penser et d'essayer de se souvenir des commandes pour un débogage précis des programmes.

Je te souhaite du succès.

Ces dernières années, les cercles de programmation et de robotique sont devenus extrêmement populaires et sont accessibles même aux élèves du primaire. Cela est devenu possible grâce à l'utilisation d'environnements de programmation graphiques, qui, il faut le noter, sont activement utilisés par les grandes entreprises. Pour parler des environnements de programmation graphique, nous avons sélectionné trois des plus populaires d'entre eux.

Visuino est un environnement graphique gratuit qui s'exécute sur des contrôleurs industriels Controllino compatibles Arduino (PLC). Il permet de créer des systèmes d'automatisation complexes et des solutions IoT (Internet des objets, Internet des objets), et cela peut être fait simplement en déplaçant et en connectant des blocs visuels. L'environnement logiciel génère automatiquement du code pour les contrôleurs industriels.

Alors que faut-il faire. Sélectionnez des composants (modules) dans le panneau des composants et déplacez-les vers la zone de conception. Ensuite, ils doivent être connectés et configurer les propriétés. Cela se fait à l'aide de l'inspecteur d'objets.

Les avantages de Visuino incluent un large ensemble de composants pour les fonctions mathématiques et logiques, les servos, les affichages, Internet, etc.

Lorsque l'automate est programmé, l'environnement graphique demande le moyen disponible pour se connecter au contrôleur. Il peut s'agir d'un port série, Ethernet, Wi-Fi ou GSM.

Enfin, votre projet est prêt : tous les contrôleurs sont enregistrés, tout fonctionne. Maintenant, en cliquant sur le logo Arduino situé sur le panneau supérieur, vous forcerez Visuino à créer des codes pour Arduino et à ouvrir son environnement de développement (Arduino IDE), à travers lequel vous pouvez déjà compiler le code et le télécharger sur l'automate.

Conseil. Si la carte installée ne correspond pas à votre Arduino, vous pouvez la changer à l'aide de la commande "Select Board".

Cet environnement de programmation graphique a été créé en 2003 lorsqu'un groupe d'employés du MIT Media Lab a décidé de développer un langage de programmation accessible à tout le monde. En conséquence, après un certain temps, Scratch a été présenté au public.

Surtout, peut-être, cela ressemble à Lego. Au moins le principe est le même : c'est un environnement orienté objet dans lequel les programmes sont assemblés à partir de détails, colorés et lumineux. Ces détails peuvent être déplacés, modifiés, amenés à interagir de diverses manières. Scratch est basé sur des blocs de commandes, tels que capteurs, variables, mouvement, son, opérateurs, apparence, stylet, contrôle, etc. L'éditeur graphique intégré permet de dessiner n'importe quel objet. Moins de cinq ans après la création de Scratch, le projet Scratch for Arduino (en abrégé S4A) est né, qui permet de programmer l'automate Arduino.

Les avantages du système incluent le fait qu'il est russifié et complètement localisé - quiconque souhaite trouver beaucoup de données à ce sujet. De plus, le travail dans cet environnement graphique est disponible même pour les élèves du primaire qui ne sont pas encore trop confiants en lecture.

Conseil. Pour ceux qui découvrent Scratch, il existe une ressource spéciale : https://scratch-ru.info.

Lorsqu'une personne maîtrise déjà parfaitement Scratch, mais n'a pas encore grandi avec le Wiring, sur lequel sont programmées des cartes compatibles Arduino, il est temps de lui conseiller l'outil ArduBloсk écrit en Java. C'est particulièrement bon pour ceux qui aiment la robotique.

Quelle est la différence? Le fait est que Scratch ne sait pas flasher l'Arduino, il contrôle uniquement son automate via USB. Ainsi, Arduino ne peut pas fonctionner tout seul, car il dépend de l'ordinateur.

En fait, ArduBloсk est une étape intermédiaire entre le Scratch pour enfants et le Visuino assez professionnel, bien qu'abordable, car, comme ce dernier, il a la capacité de flasher des contrôleurs compatibles Arduino.

Conseil. N'oubliez pas d'installer la machine Java sur votre PC. Cela ne prend pas beaucoup de temps.

Donc, plus d'environnements graphiques - bons et différents. Que l'Arduino soit avec vous.

Photo : entreprises manufacturières, pixabay.com Êtes-vous amateur de programmation ? Oui, je suis programmeur Oui, c'est une chose très intéressante Je ne suis pas accro, mais mon enfant l'est Oui Non, je ne suis pas intéressé Voir les résultats Chargement... Lire aussi : Arduino : comment allumer un moniteur LCD dans un thermomètre

Le mini-PC Raspberry Pi 3 Model B+ peut devenir le centre de la maison "intelligente"

Peut-être que les développeurs de systèmes d'exploitation ont raison, considérant l'utilisateur comme le pire ennemi et le virus le plus dangereux. Et peut-être qu'ils se trompent, ils créent leurs créations non pas pour eux-mêmes, mais pour les utilisateurs. En un mot, je ne sais pas. Mais ce que je sais avec certitude, c'est que je veux voir le programme S4A fonctionner non seulement sur Windows, mais sur Linux, et pas seulement sur la distribution Debian.

Je commence ce processus en téléchargeant la version Debian depuis le site des développeurs : http://seaside.citilab.eu/scratch/arduino. Tous les fichiers téléchargés se trouvent une fois le téléchargement terminé dans le dossier "Téléchargement" ou "Téléchargements". Les fichiers archivés destinés à Linux sont décompressés par le gestionnaire d'archives. Le fichier que j'ai téléchargé depuis openSUSE a une extension deb, mais en utilisant Ark, le même gestionnaire d'archives, il peut être décompressé. Dans openSUSE avec le gestionnaire graphique de KDE 4, il suffit de cliquer avec le bouton droit sur le fichier et de sélectionner l'élément de menu déroulant "Extraire vers un sous-dossier". En conséquence, un dossier nommé S4A apparaît.

Examinons cela.

Riz. 5.1. Contenu du dossier S4A téléchargé

Deux fichiers avec l'extension tar.gz sont sujets à une décompression supplémentaire.

Riz. 5.2. Menu déroulant pour travailler avec des fichiers archivés

En conséquence, une série de fichiers et un dossier nommé "usr" apparaissent à côté des archives. D'après mon expérience avec Linux, je sais que ce dossier peut contenir des fichiers qui, une fois installés, se trouvent dans /usr sur le système de fichiers racine. Si vous ouvrez ce dossier, alors

Chapitre 5. Arduino, programmation visuelle

En effet, vous pouvez y voir trois autres dossiers.

Ces trois dossiers correspondent aux sections visibles si vous ouvrez la section "Root Folder" dans le répertoire /usr du gestionnaire de fichiers.

Riz. 5.4. Partitions du répertoire usr du système de fichiers

Le contenu des dossiers bin, lib et share précédemment téléchargés devrait, je crois, être placé dans les dossiers indiqués ci-dessus. Mais, bien sûr, personne ne permettra à un simple utilisateur de modifier quelque chose dans le système de fichiers. Par conséquent, dans la section «Système» du menu principal, nous trouvons l'élément «Gestionnaire de fichiers», qui ouvre un nouveau sous-menu, où se trouve «Gestionnaire de fichiers (avec droits d'administrateur)». Ce gestionnaire vous permettra de transférer tous les fichiers nécessaires vers le système d'exploitation. Sans rien inventer, en ouvrant des dossiers en parallèle dans deux explorateurs, il suffit d'ouvrir séquentiellement les dossiers nécessaires (ils sont tous nommés) jusqu'à ce que les fichiers apparaissent, et de copier les fichiers.

Chapitre 5. Arduino, programmation visuelle

Riz. 5.5. Porter des fichiers de programme vers openSUSE

Une attention particulière doit être portée au dossier de partage, car il contient de nombreux sous-dossiers, et les dossiers correspondants doivent être recherchés dans le système de fichiers.

Après la copie, vous pouvez essayer de trouver le programme dans le menu principal. Et, en effet, dans l'onglet Applications de la section Développement (j'ai une autre section appelée Autres programmes), le programme S4A apparaît. Et vous pouvez même l'exécuter. Mais après quelques mouvements de souris, ça commence à se bloquer...

DANS terminal, et openSUSE a un terminal racine ; au nom du superutilisateur, après avoir préalablement connecté le module Arduino, nous lançons le programme. Et elle travaille. Maintenant, il peut être lancé de la manière habituelle.

DANS autres distributions de Linux, le fonctionnement est similaire à ceux décrits ci-dessus, les différences ne sont pas si importantes. Bien que dans Fedora 14, j'ai simplement changé d'utilisateur en me connectant en tant que root, ce que, bien sûr, vous ne devriez pas faire, cela a facilité la mise en place de tout au bon endroit.

Après avoir installé le programme sous Linux, voyons, pourquoi l'avons-nous installé ?

Tout d'abord, le programme fonctionne avec le module, montrant ce qui se passe sur les entrées analogiques et numériques du module. Ce qui est déjà bien. Mais ce n'est pas l'essentiel. L'essentiel, deuxièmement, le programme vous permet d'assembler le programme, et non de coder dans le langage Arduino.

Lorsque le programme commence à fonctionner, dans la fenêtre de gauche, un certain nombre d'éléments peuvent être déplacés en ramassant la souris vers la fenêtre du milieu - le champ "assemblage" de travail. Déplaçons l'élément appelé Start.

Chapitre 5. Arduino, programmation visuelle

Riz. 5.6. Transfert des éléments de programme souhaités

Maintenant, en appuyant sur la touche intitulée "contrôle" dans la case juste au-dessus, nous obtenons un certain nombre de nouveaux éléments.

Riz. 5.7. Liste des éléments du groupe "Contrôle"

Parmi ces éléments, nous sélectionnerons l'élément "toujours", que nous transférerons à l'élément existant, et l'ajouterons pour que la découpe supérieure pénètre dans le rebord.

Chapitre 5. Arduino, programmation visuelle

Riz. 5.8. Ajouter des éléments au programme

Revenons à l'ensemble d'éléments avec lequel nous avons commencé en appuyant sur la touche "déplacer" et sélectionnons l'élément "digital 13 on", que nous déplacerons et placerons à l'intérieur du précédent.

Riz. 5.9. Commande d'activation de la sortie numérique

De l'ensemble d'éléments « control », nous prendrons l'élément « wait 1 second », que nous insérerons à l'intérieur de l'élément « always » sous l'élément « digital 13 on ». Pour accélérer ce processus, insérez à nouveau l'élément d'attente, revenez aux éléments de mouvement et ajoutez un élément "digital 13 off" entre les deux éléments d'attente.

Riz. 5.10. Programme de clignotement sous forme graphique

Ce dessin ne vous rappelle rien ? Quand on a commencé à décrire le premier programme en langage courant, on l'a écrit comme ça.

Double-cliquez sur l'élément "démarrer" avec le bouton gauche de la souris et regardez le module Arduino

La LED sur la broche 13, jusqu'ici silencieuse, clignote régulièrement une fois par seconde.

Nous avons compilé le programme, l'avons exécuté et fait fonctionner le module selon ce programme. Et nous n'avons pas écrit une seule ligne de code. C'est pour cette raison que je préfère faire la distinction entre la programmation et l'écriture de code.

Chapitre 5. Arduino, programmation visuelle

Mais peut-être est-ce le programme précédemment téléchargé qui fonctionne, et non celui que nous avons assemblé ?

Arrêtez le programme en double-cliquant à nouveau sur l'élément « start ». Faisons un clic gauche sur l'unité de l'élément "wait 1 second".

Riz. 5.11. Modification des paramètres des éléments du programme

Tapons le chiffre 5 (comme sur l'élément du bas). Lançons le programme... et assurons-nous de ne rien confondre, la LED clignote toutes les 5 secondes !

Nous n'avons pas testé le fonctionnement de l'entrée numérique sous une forme "en direct". N'est-il pas temps de le faire ?

Construisons le programme en S4A. Les premières "briques" sont les mêmes que dans le programme précédent. Ensuite ... nous devons remplir la condition: si le bouton est enfoncé, allumez la LED, sinon éteignez-la. Il y a un tel élément - c'est "si ... ou ...". Dans sa partie supérieure, il y a un "nid" où vous pouvez insérer la condition dont nous avons besoin "entrée numérique ...".

Riz. 5.12. Ajout d'une condition à l'élément if d'une branche de programme

Il reste à ajouter des actions pour obtenir le type de programme souhaité.

Riz. 5.13. La formation finale du programme

Si on le compare avec un programme écrit en langage Arduino, alors on peut dire que les seules différences sont celles qui ont été faites consciemment : quand on relâche le bouton, la LED ne s'allume pas, quand on appuie dessus, la LED s'allume .

Chapitre 5. Arduino, programmation visuelle

Il est temps de passer à la vérification. Mais d'abord, un petit avertissement.

Dans le schéma montré dans les exemples, le bouton est connecté à la broche +5 V. Je conseillerais de l'allumer un peu différemment.

Surtout si vous vérifiez tout "sur le poids". En cas d'erreur aléatoire, cela peut se passer comme moi, de la fumée sortira du module, ce qui gâchera beaucoup l'ambiance. Et le moyen le plus correct consiste à utiliser une planche à pain avec des adaptateurs (pour l'Arduino Nano, je pense qu'il existe une prise appropriée pour le microcircuit).

Après avoir vérifié les connexions correctes sur la planche à pain, en y connectant le module Arduino, vous pouvez le brancher sur le connecteur USB de l'ordinateur et exécuter le programme S4A. Veuillez noter que lorsque vous avez connecté une résistance de 10 kΩ entre l'entrée numérique et la masse, les lectures (dans la fenêtre de droite du programme) ont cessé de changer de manière aléatoire entre "faux, faux" et "vrai, vrai". Nous lançons notre programme en double-cliquant sur l'élément "démarrer", ajoutons, en allant dans la section "Modifier" du menu principal, une exécution pas à pas.

Riz. 5.14. Ajouter une étape à une procédure de débogage

Vous pouvez également sélectionner la vitesse d'exécution dans l'élément "définir une seule étape ...". Et maintenant, alors que le bouton n'est pas enfoncé, nous voyons que la LED est éteinte et le programme n'est exécuté que dans la partie où il est défini.

Chapitre 5. Arduino, programmation visuelle

Riz. 5.15. Exécution du programme en mode débogage

Dans la fenêtre en haut à droite, vous pouvez voir l'état de l'entrée Digital1 - false. L'entrée est à la masse, l'entrée est à un niveau logique bas, et ceci, du point de vue du programme, est un état "faux". Appuyons sur le bouton.

Riz. 5.16. Fonctionnement du programme lorsque le bouton est enfoncé

L'état de l'entrée "vrai" a changé, la LED est allumée et le programme entre dans la partie où la condition est remplie.

Si vous prêtez attention aux éléments orange dans la section "contrôle", vous pouvez voir que bon nombre des

Chapitre 5. Arduino, programmation visuelle

ils ont des "nids" pour insérer des conditions.

Les conditions peuvent varier. Ci-dessus, nous avons utilisé un changement d'état d'une entrée numérique comme condition. Mais il peut aussi y avoir d'autres conditions.

Riz. 5.17. Nids pour ajouter des conditions dans les contrôles

Et encore une chose - faites attention aux flèches noires "vers le bas" à côté de nombreux éléments.

Cliquez sur cette flèche avec la souris...

Riz. 5.18. Une flèche qui ouvre une liste de capteurs possibles

Et nous avons la possibilité de changer, par exemple, comme dans ce cas l'entrée utilisée. Dans d'autres cas, par exemple, une broche de sortie ou une entrée analogique change. Nous avons une large gamme d'options pour expérimenter le module Arduino. Mais pourquoi avec le module ? Nous pouvons utiliser plusieurs modules. Assez, pour ne pas dire que c'est le seul moyen, allez dans l'onglet "costumes", faites un clic droit sur le "costume" existant et sélectionnez la section "passer au nouvel objet".

Un autre module Arduino apparaîtra. Si vous l'avez, si vous l'avez connecté à un port USB, alors vous pouvez, je pense, travailler avec lui aussi.

Chapitre 5. Arduino, programmation visuelle

Riz. 5.19. Ajout d'un deuxième module Arduino

Et la dernière remarque. Tout ce que nous faisons dans le programme S4A, nous le faisons en utilisant le langage de programmation Scratch. Comment aimes-tu cela?

ArdublockComment


Langage de programmation graphique pour Arduino

Manuel de l'utilisateur du kit Ardublock version 1.0

Qu'est-ce qu'Ardublock

Ardublock est un langage de programmation graphique pour Arduino conçu pour les non-programmeurs et facile à utiliser.

(rappelez-vous que le programme dans l'IDE Arduino s'appelle un croquis)

Installation
Télécharger l'archive ardublock-all.jar
Ouvrez "Arduino IDE/Menu /Arduino/ Preferences", vous y trouverez la ligne "Sketchbook location"

3. Créez un dossier "tools/ArduBlockTool/tool" dans le dossier "Arduino" dans la ligne
"Sketch location" et copiez l'archive "ardublock-all.jar" dans le dossier "tool".

Si le nom d'utilisateur est "abu",

Sur un Mac, /Users/abu/Documents/Arduino/tools/ArduBlockTool/tool/ardublock-all.jar

Sous Linux, /home/abu/sketchbook/tools/ArduBlockTool/tool/ardublock-all.jar

Sous Windows, C:\Users\abu\Documents\Arduino

4 Redémarrez l'IDE Arduino et vous devriez avoir l'élément "ArduBlock" dans le menu "Outil".

Faites attention à l'orthographe des noms de dossier en majuscules et minuscules.


Usage

Les blocs ArduBlock sont divisés en plusieurs catégories.

contrôle
Les blocs de la catégorie "Contrôle" sont des blocs de contrôle.

Nombres, constantes et variables

Les opérateurs

Utilitaires

Ces blocs sont des fonctions couramment utilisées dans les esquisses.

briques

Chaque bloc de cette catégorie représente un type d'appareil réel que vous pouvez connecter directement à votre croquis.

Broche

Ces blocs agissent comme des broches virtuelles sur la carte Arduino.

Comment programmer

1. La compilation devrait se terminer avec succès. Si le port spécifié dans l'environnement Arduino ou la carte elle-même n'est pas trouvé, une fenêtre d'erreur apparaît.

2. Les unités graphiques avec des connecteurs de même forme peuvent être connectées les unes aux autres.

La connexion est établie simplement, pour cela vous devez faire glisser un bloc vers celui avec lequel vous souhaitez le connecter.

3. Dès que le bouton "upload" est appuyé, ArduBlock va générer automatiquement le code Arduino, qui sera ensuite uploadé sur la carte Arduino (dans ce cas, le texte du programme obtenu lors de la compilation apparaîtra dans la fenêtre de sketch de l'environnement de développement Arduino).

Comment exécuter le programme

dérivation simple

1 Exemple 1 - Hello World (Hello World !)

1.1 Connexion matérielle

Arduino est connecté à la broche 13.

1.2 Fonctionnement

La LED clignotera 1 fois par seconde.

1.3 Esquisse

1.4 Téléchargement

Note
Vous pouvez télécharger directement le fichier abp - tous les exemples décrits ici peuvent être téléchargés avec le fichier de description de l'environnement Ardublock (en anglais) sous forme de fichiers de croquis graphiques abp.

Le fichier abp peut être chargé en cliquant sur le bouton "charger".


Ensuite, vous devez spécifier le fichier téléchargé et cliquer sur le bouton "ouvrir".

2 Exemple 2 - Alarme

2.1 Connexion matérielle


Le module d'éclairage LED bleu numérique se connecte à la broche 12.

2.2 Fonctionnement

La LED rouge et la LED bleue s'allumeront tour à tour comme une sirène de police. L'effet sera encore meilleur si vous les recouvrez d'un couvercle translucide, ou d'un chiffon.

2.3 Esquisse

2.4 Téléchargement

Saisie simplifiée

3 Allume la LED lorsqu'un bouton est enfoncé

3.1 Connexion matérielle

Le module d'éclairage LED blanc numérique est connecté à la broche 13.

3.2 Fonctionnement

Si le bouton est enfoncé, la LED s'allume.

3.3 Croquis


3.4 Téléchargement

4 Code morse

4.1 Connexion matérielle

Le module d'éclairage LED ROUGE numérique est connecté à la broche 13.
Le module de sonnerie numérique est connecté à la broche 12.
Le bouton-poussoir numérique est connecté à la broche 8.

4.2 Fonctionnement

Lorsque le bouton est enfoncé, la LED rouge s'allume et un son se fait entendre. La période sonore est similaire au code Morse.

4.3 Esquisse

4.4 Téléchargement

Entrée et sortie analogiques

5 Capteur de rotation

5.1 Paramètres matériels

Le capteur de rotation analogique V1 est connecté à la broche A0.

5.2 Fonctionnement

Dans ce programme, vous pouvez connaître la valeur de l'angle de rotation.
Lorsque vous téléchargez le programme, vous pouvez passer à arduino IDE, cliquez sur l'icône du moniteur. Les fenêtres du moniteur série vous montreront l'angle de rotation en valeurs de 0 à 1023.

5.3 Esquisse

5.4 Téléchargement

6 Lumière déclinante

6.1 Paramètres matériels

Le module d'éclairage LED blanc numérique est connecté à la broche 11.

6.2 Fonctionnement

Ce programme vous montrera comment la lumière s'allume et s'éteint lentement.

6.3 Esquisse

6.4 Téléchargement

7 Mesure du bruit 1

7.1 Paramètres matériels

Le module d'éclairage LED blanc numérique est connecté à la broche 11.

7.2 Fonctionnement

Ce détecteur peut mesurer le niveau de bruit ambiant, la LED brillera plus fort si le son est plus fort.

7.3 Esquisse


7.4 Téléchargement

8 Mesure du bruit 2

8.1 Paramètres matériels

Le module d'éclairage LED blanc numérique est connecté à la broche 11.
Le capteur de son analogique est connecté à la broche A0.

8.2 Fonctionnement

Ce détecteur peut mesurer le niveau de bruit ambiant, la LED clignotera plus rapidement si le son est plus fort.

8.3 Esquisse


8.4 Téléchargement

Vous avez aimé l'article ? Partager avec des amis: