Ardu? No! ≫ Initiation

Initiation

Ardu? Programmer une carte Uno? Non pas vraiment. Il suffit de s'y mettre. Si on veut, on y arrive. C'est simplement une question de centre d'intérêt.

Dans ce tutoriel (tuto, initiation, cours, exposé,... appelez cela comme vous voulez), je vais m'intéresser à la programmation en C/C++ des cartes Arduino Uno, Nano, Méga. Beaucoup de choses qui sont dites ici fonctionneront sur d'autres cartes, mais je ne peux pas le garantir.

Image: Arduino est un assemblage de briques élémentaires

Écrire une application est un assemblage de briques élémentaires. Certains ont un besoin, récoltent du code à droite et à gauche, et tentent de le modifier pour l'adapter à leur besoin. Si cela fonctionne tant mieux, mais dans le cas contraire c'est difficile à dépanner. Quand on construit une maison, on pose d'abord les fondations avant de mettre la porte. Dans ce cours, je développerai les bases du langage avant d'attaquer le fonctionnement d'un moteur, je parlerai individuellement des composants avant de les regrouper.

J'ai vu des gens appeler à l'aide avec un projet quasiment fini, mais qui ne fonctionne pas, les différents composants n'ont pas été testés individuellement avant. Il faut au contraire tester un moteur, le deuxième, un bouton, tous les boutons, puis enfin, si tout fonctionne, on va gérer l'ensemble.

Ça sert à quoi?

Une carte Arduino comporte principalement un microcontrôleur. C'est un peu comme un ordinateur, en moins puissant. Il peut faire la même chose qu'un gros (calcul, affichage, mémorisation, entrées/sorties...) mais n'est pas dédié aux mêmes tâches. On l'utilisera surtout pour résoudre un besoin spécifique et on le verra comme un automate. Chez vous vous avez des objets qui comportent un microcontrôleur. Ce sont les objets informatisés qui ne sont pas très puissants. Tout sauf les ordinateurs, tablettes, téléphones portables. Nous allons en trouver dans:
- la machine à laver; le microcontrôleur reçoit des informations (niveau d'eau, choix du programme, température) et va donner des ordres en conséquence (faire tourner le moteur, remplir ou vider la cuve, chauffer)
- le compteur linky qui mesure et affiche la consommation ainsi que quelques autres données
- le réveil matin a affichage numérique
- la souris, le clavier de l'ordinateur
- l'imprimante
- les montres
- les mp3...

Il est difficile de dire ce qu'on peut lui demander ou pas, les puissances de calcul augmentent sans arrêt. L'ENIAC, le premier ordinateur pesait 30 tonnes, et faisait 5000 opérations par seconde. La Uno en fait 16 millions. J'ai connu les premiers ordinateurs familiaux (ZX80) qui disposaient de moins de mémoire qu'une Uno. Ce que vous allez demander à une Arduino, c'est principalement de faire la gestion entre des capteurs (interrupteurs, fins de course, température, vitesse du vent...) et des actionneurs (moteurs, leds, servomoteurs...). La limite avec les ordinateurs est floue, on peut utiliser des Arduino avec le wifi, on peut avoir des écrans graphiques couleur... Mais principalement une Arduino s'occupera d'une tâche bien précise.

Des réalisations que l'on voit passer peuvent être;
- gestion de la porte d'un poulailler
- compteur d'individus, de voiture
- gestion de la piscine
- gestion de lumières, principalement à leds
- gestion ce machine à commande numérique...

Le matériel nécessaire

Dans un premier temps, il faut commencer par apprendre le C, et une carte Nano ou Uno suffit. La Uno est un peu plus imposante, mais le connecteur USB est plus costaud. Si vous êtes impatient de commencer, achetez donc une carte Uno en France, sinon commandez-en une en Chine. C'est moins cher, mais il faudra patienter un mois. Par sécurité il vaut mieux en avoir une ou deux sous la main en plus, on n'est pas à l'abri d'un problème. Si la première est commandée en France, les cartes de dépannage peuvent attendre une livraison un peu lente.

Image: Carte Uno

Choisissez une carte "UNO R3 ATmega328 USB". En chine vous ajouterez sans doute "CH340". Cela coûte entre 5€ et 20€ suivant le lieu d'achat. Pensez éventuellement à acheter en même temps le câble USB si vous n'en avez pas. Si vous accrochez, prévoyez d'acheter ou de récupérer un peu plus de matériel. Je déconseille les kits de démarrages au départ qui coûtent cher surtout si vous abandonnez. Ils contiennent tout un tas de trucs dont vous n'aurez jamais besoin dans vos vraies réalisations.

Il ne me sera pas possible de faire une initiation sur tous les capteurs et sur tous les actionneurs (moteurs, lampes, servomoteurs, vibreurs, relais, écrans...). Il n'est pas non plus utile que vous appreniez à vous servir de tous ces composants. Il y a de nouveau des bases indispensables (bouton, led, moteur) qu'il est bon de posséder. Avec de bonnes bases vous pourrez plus facilement utiliser un composant que je n'ai pas décrit.

Pour la partie initiation, commencez par exemple avec une carte Uno. Un bout de fil électrique de petit diamètre (qui rentre dans le connecteur) sera utile. Pour les autres parties, plus de matériel sera indispensable.

Forum

En cas de problèmes de compréhension, de programme qui ne fonctionne pas, il existe de nombreux forums d'entraide. Celui que je suis est le forum français d'Arduino. Si vous postez un message sur ce forum il est possible que je le lise. Presque à coup sûr si le titre m'indique que le problème vient de ces pages. Bien entendu, il faut s'inscrire.

Il n'y a qu'en cas de problème avec les pages (faute d'orthographe, lien qui ne fonctionne pas...) que vous devez m'adresser directement un message à Guyat Pecheux point fr