Pages

Affichage des articles dont le libellé est Flowcode. Afficher tous les articles
Affichage des articles dont le libellé est Flowcode. Afficher tous les articles

vendredi 17 février 2023

Réaliser une application autonome sous Flowcode (connectée à une Arduino UNO)

 Voici la première application (type SCADA) réalisée sous Flowcode 9 : lire une valeur analogique, l'afficher sur une jauge et commander une DEL. Cet article est très court en lecture vu la vidéo associée ;-).


Un aperçu de la configuration matérielle utilisée :


La vidéo complète sur Youtube :



Envoyez-moi un message si besoin ou juste pour montrer ce que vous avez fait...



mercredi 13 février 2019

Utiliser une matrice à LED (Max7219) avec Flowcode 7 et une carte Arduino

Il existe de très nombreux article sur internet montrant l'utilisation de matrices à LED, avec Arduino et les librairies Arduino, comme celles-ci (à noter que cet article est aussi valable pour les cartes de développement à base de PIC) :



L'avantage de ce type de composants est la possibilité de cascader les cartes, c'est à dire de les connecter à la suite sans avoir besoin de plus de connecteurs :

Bien entendu, on peut connecter davantage de modules. Et bien entendu aussi, il existe des modules de 4 matrices. Attention cependant, 8 matrices en série sont le maximum par ligne. Si on veut plus de matrices, il faut une autre connexion sur la broche CS :
Malheureusement, Il est n'est pas possible, avec la version de Flowcode 7 de base de piloter directement ces composants. Mais, bien entendu, la solution existe !

Un des plus actifs contributeurs (Martin) du forum Matrix (pas un jeu de mot), l'éditeur de Flowcode, a créé le composant idéal pour la programmation !

Je vous évite la recherche fastidieuse sur le forum et je vous fournis ici le fichier👍
Il suffit ensuite de copier ce fichier dans :

On lance Flowcode et on saisit dans la barre de recherche Max7219 :
Et voici la liste des routines composants :
Confortable, n'est-ce pas ?

Connexions à respecter (On connecte en suivant le protocole SPI) :

D'accord, il y a un inconvénient, un seul, le composant n'est pas simulable.

Petit programme d'exemple :

Je lis la valeur de la tension sur AN0 sous forme de chaîne l'envoie vers la matrice :


Pas mal ! ;-)


Un effet de défilement :



Je vous laisse maintenant découvrir les autres possibilités de la bibliothèque.....













vendredi 30 novembre 2018

Utiliser un écran Nextion avec Flowcode et Arduino Mega

Suite à quelques articles sur l'écran Nextion, je vais montrer ici comment l'utiliser avec Flowcode et une Mega (plus pratique pour gérer un second UART).

Rappel : La famille d'écran Nextion a comme caractéristiques principales :

  • La facilité de mise en oeuvre : liaision Rx/Tx (pas de protocole spécial)
  • La variété de la gamme
  • Le logiciel simple à utiliser pour créer l'IHM
  • Le mode tactile efficace et rapide à mettre en place
Je vais ajouter dans cet article, donc dans le programme, une interruption. Pourquoi une interruption ?
Et.... qu'est-ce qu'une interruption ?

Une interruption, ben..... ça interrompt le programme. Voilà ! 
Pour faire simple, le programme principal tourne en boucle, fait son travail. Bref, tout se passe bien. Arrive un événement, qu'on attendait, bien sûr, mais on ne savait pas quand. Sans utiliser l'interruption, on risque tout simplement de le rater. Par contre, si on utilise l'interruption, le programme s'arrête net, lance un sous-programme défini à l'avance pour l'événement attendu et, dès que le sous programme est fini, le programme principal reprend là où il s'est arrêté.

Interruption (très) simplifiée :
Le programme se déroule, parfaitement, indéfiniment.... et ..... soudain, juste à la fin de l'action 2 survient l'événement attendu ! Le programme principal s'interrompt et le sous-programme d'interruption démarre. Quand celui-ci a fini, le programme principal reprend là ou il s'est arrête (on peut aussi le forcer à redémarrer à un autre endroit, en fonction des besoins)


Il est possible de déclencher une interruption de différentes manières et ici, on va la déclencher sur un changement de niveau d'une broche, en l'occurrence, la broche Rx3 (D14) de la Mega. Pourquoi ? Parce que c'est justement l'événement que l'on attend. 
Ah, je n'ai pas précisé quel était cet événement : l'appui sur un bouton du Nextion.

Dans mon exemple, je récupère la température issue d'un DHT11. Souci, ce composant bien que facile à utiliser présente un énorme défaut : il faut attendre une seconde entre chaque mesure. De ce fait, soit je mets une pause d'une seconde dans le programme, dans ce cas je peux rater l'arrivée d'une information sur le port série, soit je diminue la pause, mais dans ce cas, je ne sais pas quelle est la température....
D'où l'interruption : le programme fait son boulot, il mesure et affiche la température toutes les secondes et si un appui sur l'écran se produit, une interruption se déclenche.


IHM utilisée :
En mode simulation :

Vérification à l'analyseur logique (Avec Sigrok):

Le câblage :


Passons à Flowcode :

Le panneau utilisé :

Le programme se base sur le modèle IATR :

Initialisation :
Configuration de l'interruption :


Acquisition :
Traitement :
pour la ligne "n0.val=", il faut aller sur les autres articles Nextion de ce blog ;-)

Restitution :
Sous-programme "envoi"
Sous-programme d'interruption :
Et voilà :


En vidéo :
Désolé, pas facile de tenir le téléphone et l'écran tactile tout en visant bien ;-) ;-)



Une question ?









dimanche 11 novembre 2018

Utiliser un écran OLED I2C avec Flowcode et une Arduino UNO

Il est (assez) facile d'utiliser des écrans OLED de petite taille avec une carte Arduino avec la bonne bibliothèque.  De plus, ces écrans sont très bon marché et se connectent en I2C.
Je parle de ce type d'écran :
Mais comment les utiliser avec Flowcode ?
C'est simple, il suffit de connaître le contrôleur sur le circuit et regarder s'il existe dans le logiciel. En général, il s'agit d'un SSD1306 pour un modèle I2C.

1) Placer le composant dans le panneau et le configurer comme sur la capture ci-dessous :

Rappels : SDA sur A4 (PC4) et SCL sur A5 (PC5)
2) Réaliser le programme suivant :

3) Simulation :
Quelques ajustements sont à prévoir....

4) Câbler et téléverser vers la carte Arduino :


Sympa pour les projets !

A vous de tester.....






jeudi 1 novembre 2018

Envoi et réception d'un SMS avec Flowcode et une Arduino Mega

Les fabricants de modules GSM sont assez sympa avec nous... ils produisent des cartes et des chips utilisant quasiment toujours les mêmes commandes AT (quasiment !). Cela est très pratique dans la conception d'un projet devant utiliser un module GSM/GPRS.

Ici, j'utilise ce module :

Il est tout à fait possible de programmer en C avec l'IDE d'Arduino ou avec un module USB-UART. Cependant, cette méthode est un peu.... fastidieuse. Heureusement, Flowcode permet de faire la même chose mais très simplement. Par contre, il est nécessaire d'utiliser une carte MEGA pour une raison simple : Flowcode ne propose pas d'émulation logiciel pour le GSM (ni le GPS). Il faut dont un deuxième UART matériel si on veut accéder au port série durant la mise au point. Après, le passage à la UNO est possible.


Mode opératoire :


Le programme qui fait tout ça :
Channel 3 correspond à RX2/TX2 sur la Mega

C'est tout ? ......Oui !

Détails :
Penser à bien changer le numéro de portable ;-)

Câblage : (pas besoin d'alimentation externe avec ce module, il ne consomme pas beaucoup de courant).


U_RXD sur TX2
U_TXD sur RX2
Vcc_In sur 5V
Gnd sur Gnd


Et voilà !!!!!




dimanche 23 septembre 2018

Envoyer un message simple sur le port série d'une Arduino UNO avec FLowcode

L'IDE d'Arduino est très pratique dès lors que l'on veut utiliser le port série. Un simple Serial.print fait l'affaire.
Mais comment réaliser la même chose avec FC7 ?

Préparation :

On reprend le fichier du premier exemple (LED sur PB5) et on place un UART :


Maintenant, on vérifie la configuration de l'UART ; Si on ne touche à rien, c'est que l'on utilise le port série matériel de l'Arduino (RX et TX sur 0 et 1) :

Placement des pictogrammes :




Il suffit maintenant de téléverser.....

En lançant le logiciel Termite, on voit bien que notre carte Arduino envoie deux chaînes de caractères....

Oups !!!! Les chaînes se suivent.... pas terrible comme affichage !

Pas de souci, il y a la technique habituelle du retour chariot et du saut de ligne :

 On ajoute à la fin de chaque chaîne, avant le dernier guillemet \r\n



C'est mieux ! 


Comme d'habitude... une question ? un mail....