Pages

mardi 30 janvier 2018

Écran NEXTION - découverte

Une nouvelle rubrique va voir le jour, celle consacrée aux superbes écrans tactiles NEXTION. Ceux-ci sont interfacés avec un microcontrolleur par un simple UART, donc une liaison RXTX. Aucune bibliothèque spécifique obligatoire (bien qu'il existe des librairies dédiées mais pas nécessaires).

Très bientôt, une série de tutos vont être mis en ligne.

En attendant, vous pouvez aller faire un tout ici : https://nextion.itead.cc et télécharger le logiciel (il va être très utile et surtout..... indispensable !).



Une de mes premières IHM (Interface Homme Machine) :

Je sais, je ne suis pas un artiste......

Réparer une carte Arduino plantée....

Il se peut qu'un jour, une carte Arduino plante suite à une mauvaise manipulation. Elle ne répond plus et il est impossible de téléverser le moindre programme. 

Pas de panique ! il reste une solution !

Avec cet appareil vraiment peu cher (moins de 5€), on peut reprogrammer le bootloader d'une carte :



Le connecter sur la carte à réparer en respectant bien le sens du connecteur :



 Le câblage ressemble à cela :


Connecter le programmateur sur un port USB, les DELS doivent s'allumer :


Dans l'IDE Arduino, choisir le programmateur :
Enfin, cliquer sur "Graver la séquence d'initialisation" :

Ce message apparaît pendant les opérations :

A la fin, cette erreur peut être signalée, ce n'est pas grave..... 


Le principal, c'est que la LED 13 clignote à nouveau, là, c'est bon, la carte est réparée !!!!!


NdA : désolé pour la qualité des photos, j'ai fait cela à la va-vite ;-)

mardi 16 janvier 2018

Problèmes avec Nahimic et Qt

De très nombreux logiciels sont développés avec Qt. En STI2D, on peut citer Proteus, Fritzing, Sigrok......

Il peut se produire parfois des bugs : ces logiciels "plantent" sans raison, quelques secondes après leur lancement.

Après de très nombreuses recherches, j'ai enfin une piste : C'est dans mon cas, Nahimic (gestion des effets sonores) qui bloque les programmes développés en Qt (sous Windows 10).

Après désinstallation, tout fonctionne !

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";