Pages

dimanche 10 décembre 2017

Créer des potentiomètres par Programmation Orientée Objet avec Processing

Comme tous les langages évolués, Processing, qui fonctionne sous Java (entre autres), permet de programmer en POO, c'est-à-dire, en Programmation Orientée Objet.
Je ne propose pas de cours de POO, j'en suis bien loin, mais ci-dessous, vous verrez à quoi cela ressemble et quel usage on peut en faire.....

Vont suivre des tutoriels pour créer ses propres "class".




Ici, les objets sont "fait maison"



mercredi 6 décembre 2017

Changer le thème de l'IDE Arduino en "sombre"

Sur cette page, vous trouverez de quoi changer le thème de l'IDE "classique" en "Dark" :


Avant :

Après :

C'est vraiment très agréable pour les yeux..... et on reste toujours dans l'IDE, sans passer par d'autres logiciels....

Toutes les infos ici :


lundi 4 décembre 2017

Exploiter une chaîne de caractères en Arduino-Partie 1

Utilisation d'un tableau de caractères

De très nombreux périphériques communiquent avec les microcontrôleurs via le port RS232-UART. C'est très facile de lire une seule valeur comme "A" pour "allume" ou "S" pour "stop".
Mais qu'en est-il des envois de données complexes ? C'est-à-dire, des chaînes de caractères.....


Il existe plusieurs méthodes, plus ou moins simples et plus ou moins efficaces ou pratiques.

La plus simple est de récupérer les données entrantes dans le port série dans un tableau déclaré comme cela :

 ici, le tableau est constitué de caractères inconnus et sa taille est indéfinie. Pas évident à gérer, le compilateur ne connaît pas la taille mémoire à allouer et donc on risque d’avoir des surprises lors de la compilation (et à l'usage) si le programme total est très lourd.....

On peut aussi déclarer ainsi :

Maintenant, on a limité l'occupation mémoire à 12 emplacements (+1 avec le caractère "null").
Cette méthode fonctionne très bien quand on connaît précisément la taille et l'emplacement des valeurs que l'on veut récupérer. Il faut que tout soit figé à l'avance.
Par exemple, on reçoit cette chaîne :
"AAAASSSAAAAS"
ou bien :
   "SSSAAASSSSSS"


Dans ces deux cas, il est facile de trouver l'emplacement d'un caractère et de le traiter :


Il suffit dans ce cas de donner l'emplacement du caractère et on teste, on traite, on transforme...... Ici, c'est le quatrième emplacement.

Exploiter une chaîne de caractères en Arduino-Partie 2

Utilisation de la bibliothèque String

On va ici utiliser les fonctions de String, c'est sans doute un peu plus compliqué, et encore.... mais nettement plus souple et efficace :


En détail :

reception est une chaîne fictive, ici, je ne présente pas la partie réception. Je considère que la chaîne est bien reçue.

***


***


***

Sur le port série :
La chaîne réception est bien divisée en sous-chaînes....

L'avantage de cette technique est simple à comprendre : on peut manipuler des chaînes ayant des champs de taille variable comme des noms de famille, des valeurs analogiques sur 10 bits (de 0 à 1023)..... cela ne pose aucun problème, à chaque fois que la chaîne de réception sera analysée, les nouveaux index de virgules seront mis à jour.

En changeant la chaîne dans le programme : 
String reception = "Start,123,bonjour,AZERTY";





Sauvegarder des données entre écrans avec AI2-version simplifiée

Ci-dessous la version simplifiée de l'utilisation de la TinyDB avec un seul champ sauvegardé entre deux écrans :

Ecran 1 :

Écran 2 :








jeudi 23 novembre 2017

Sauvegarder des données entre ecrans avec AI2

AI2 est génial, c'est clair. Il est facile et souple à utiliser.... mais.... il ne conserve pas les variables d'un écran à l'autre.....
 
Ci-dessous un exemple de l'utilisation de la TinyDB, base de donnée embarquée, qui permet de contrer ce souci :


 
Ecran 1:
 
 
Ecran 2:
 
Dans cet exemple, j'utilise un compteur pour incrémenter les TAGs, sinon, bien entendu, le dernier écrase le précédent. De plus, je sauvegarde le compteur afin qu'il ne se remette pas à zéro au redémarrage de l'application. 
 

dimanche 12 novembre 2017

Commander une matrice de DEL avec AI2 en Bluetooth

Petit exemple de programmation d'une matrice de DEL (ici, une ligne de 8 matrices soit 64 colonnes) par AI2 et BT :





vendredi 27 octobre 2017

Communication Rx/Tx simultanée entre un Smartphone Android et une Arduino en BT

Voici ci-dessous un exemple d'application permettant de communiquer simultanément (ou presque...) en émission/réception entre un Smartphone et une Arduino équipée d'un module Bluetooth (HC06 dans mon cas) :


La platine Arduino émet la température et l'humidité issues d'un DHT11 vers l'appareil Android et celle-ci reçoit l'heure courante (HMS) ainsi que deux commandes de LED depuis ce même appareil.

Photo prise en cours de conception, avant d'implémenter les LED...

Shield utilisé :
Source : www.duinoedu.com

lundi 9 octobre 2017

Capturer une couleur à partir d'une photo

Une couleur vous intéresse mais vous n'avez pas son code (ok, il y en a plus de 16 millions...). Cette appli permet de prendre une photo et de sélectionner au doigt une couleur afin d'en connaitre le codage.
 

samedi 7 octobre 2017

Réaliser un slide vertical avec AI2

AI2 est génial, il est pratique, assez facile à utiliser, puissant.....mais.... il n'a pas de slide vertical.

Je propose d'en faire un, ce n'est pas très compliqué :


Sélectionneur de couleurs

Lorsque l'on réalise ses propres programmes ou applications, on a besoin de coder les couleurs. J'ai eu envie de me créer ma propre appli Android avec AI2 qui m'indique une couleur codée en RVB, soit en décimal, soit en hexadécimal.


dimanche 1 octobre 2017

Réaliser un convertisseur ASCII-Caractère avec AI2

Il est parfois utile de connaitre la valeur du code ASCII d'un caractère, et inversement, savoir à quel caractère correspond un nombre. Quand on créé une appli mettant en jeu une liaison série par exemple (GPS, Bluetooth....).


mardi 13 juin 2017

Lecture d'un GPS avec Processing et SANS Arduino

Je me suis amusé à créer un logiciel qui permet de décoder une trame GGA et qui en extrait les principales caractéristiques. Ensuite, celles-ci sont affichées ainsi qu'une carte en temps réel :





Deux bibliothèques ont été utilisées : la G4P qui permet de créer des GUI facilement (ici, j'ai inséré un curseur vertical et une fenêtre supplémentaire) ainsi que la Unfolding Maps qui permet de travailler avec des cartes.

Je n'ai pas utilisé d'Arduino, juste un convertisseur UART/USB et un module GPS NEO6M. Coût total de l'opération : 8 € environ....



dimanche 11 juin 2017

Réaliser un vu-mètre simple réagissant à la souris avec Processing

Avant de vouloir afficher des mesures provenant de capteurs, il est utile de voir comment on peut créer un vu-mètre simple, sans bibliothèque particulière :



Dans ce cas, l'aiguille bouge selon l'axe x de la souris, dans la limite du secteur.

Le programme :

Créer une jauge en histogramme (vu mètre) avec AI2

Afficher des mesures ou simplement des valeurs peut s'évérer pratique et esthétique. AI2 permet, dans se compliquer la vie, de créer des vu-mètres (histogrammes), comme cela :



Pour y arriver, c'est très facile avec le bloc de dessins :




Cette appli ne fait que tirer au sort deux nombres et les affiche sous forme d'histogramme...

Pour plus de renseignements : sti2d.sin.isn@gmail.com


Créer son propre cadran avec une aiguille sur AI2

Il est très facile d'utiliser AI2 avec des compléments en ligne ou de prendre des applications comme Virtuino ou Blynk pour réaliser des IHM un peu sophistiquées avec de jolis cadrans....

Mais pourquoi ne pas les faire sois-même ?

 C'est simple : regardez ci-dessous 






Pour plus de renseignements : sti2d.sin.isn@gmail.com

mardi 16 mai 2017

Lecture d'une EEPROM interne d'une Arduino avec PROCESSING

J'ai cherché un bon moment sur internet pour trouver le moyen de lire facilement le contenu d'une EEPROM interne d'une Arduino.... je n'ai pas trouvé mon bonheur.

Pas grave, j'ai réalisé un programme sous Processing qui fait très bien l'affaire :


Le simple passage de la souris sur les cadres "BIN", "ASCII"..... affiche dans les colonnes le contenu de chaque octet dans le format désiré.




Il est nécessaire d'associer à ce programme un croquis Arduino qui scanne la mémoire l'envoie à Processing.


Pour plus de renseignements : sti2d.sin.isn@gmail.com