truc2geek

2014/08/28

Arduino : gérer des paramètres, part 2

Filed under: Arduino, Informatique, Programmation — Étiquettes : , — truc2geek @ 00:07

Avec le dernier article, on a commencé à développer une gestion des paramètres. On va continuer sur cette lancée.

Zapper le LCD

C’était cool de tester le shield LCD, mais on va maintenant s’en passer. D’ailleurs notre système de gestion de paramètres n’en a pas besoin, et en plus lors de ma dernière session de codage, j’avais juste une Arduino Uno sous la main, pas de shield LCD, et c’est peut-être votre cas aussi.

Voici donc le lien vers TesterSerie V1.3e, qui correspond à la V1.3d sans le code relatif au shield LCD.
Comme on a deux onglets donc deux fichiers, les liens pointeront maintenant vers le dossier « TesterSerie » contenant les deux fichiers, compressé.

Lancer des tests depuis le PC

Mais avant tout, j’ai trouvé assez laborieux de téléverser le programme dans l’Arduino pour chaque test. Surtout que la compilation du code est longue!

Pour débugger un programme on ne peut pas faire autrement, mais pour tester une fonction avec plusieurs jeux de paramètres, c’est possible, et finalement assez simple.

La fonction testSplitterChaine() va maintenant attendre un argument, et définir le jeu de données (la chaîne à découper, et le caractère de séparation) en fonction.
On a 4 jeux de données différents, chacune correspondant à une valeur de jeuTest, de ‘a’ à ‘d’.
03.png

Dans la fonction loop(), on ne déclenchait d’action que si on recevait un chiffre.
On la modifie pour vérifier si on saisit une lettre entre ‘a’ et ‘d’ : si c’est le cas, on appele testSplitterChaine en lui passant la valeur :
02.png

On téléverse cette nouvelle version dans l’Arduino, tout se passe bien et la fonction testChaine est toujours appelée par la fonction setup() :
04.png

On tape la lettre ‘a’ pour tenter de déclencher le test avec le 1er jeu de valeurs :
05.png
On voit bien que l’application a reconnu le caractère ‘a’, et que la fonction splitterChaine a reçu les valeurs ‘nombre_0_150’ et ‘_’.

Essai avec la lettre ‘b’ :
06.png

Ok, là encore tout s’est passé comme prévu, on recommence avec ‘c’ et ‘d’ :
07.png

08.png

Ok super, et si on entre ‘e’ ou ‘z’ ?
09.png

Magnifique, les autres caractères ne déclenchent pas le test, comme voulu.

Mission accomplie sur ce point!

Explication sur le test du caractère entré (Arduino basé sur C/C++)

Avant de passer à la suite, on fait un zoom sur la méthode utilisée pour tester le caractère entré.
10.png

On aurait pu comparer la variable »donnees » à chacune des valeurs possibles, mais ça aurait été plus long.
Ici j’ai fait en quelque sorte un raccourci.
Les lettres sont en fait stockées sous forme de nombre, c’est la table ASCII (qui se prononce « Aski ») qui fait la correspondance.

Par exemple ‘a’ correspond à 97, ‘b’ à 98, ‘c’ à 99 et ainsi de suite, jusqu’à ‘z’ qui correspond à 122.
Les lettres majuscules correspondent aux nombres de 65 pour ‘A’ à 90 pour ‘Z’.

Donc, quand on écrit « if (donnees >= ‘a' », l’application compare en fait la valeur Ascii du caractère entré à la valeur Ascii de ‘a’.

Pour information, j’ai été capable de faire cela parce que j’apprends à développer en langage C en ce moment, grâce à ce chapitre du célèbre tutoriel du site OpenClassrooms (ex-Site du Zéro). Si vous ne savez pas encore programmer en C, je vous conseille ce tutoriel! Les explications sont détaillées et surtout c’est concret : on vous explique la théorie, mais on vous montre aussi les manipulations à effectuer dans Code::Blocks, et c’est essentiel.
L’Arduino est basé sur le C/C++, et on devra s’y mettre tôt ou tard…

Un petit bout de code pour voir :
11.png

Test :
12.png

Fin

Ce sera tout pour aujourd’hui, on ne perd pas de vue la finalité : gérer un jeu de paramètres. A suivre…

Voici le lien de cette version, la 1.3f

Publicités

Laisser un commentaire »

Aucun commentaire pour l’instant.

RSS feed for comments on this post. TrackBack URI

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Propulsé par WordPress.com.

%d blogueurs aiment cette page :