Débuter avec Arduino
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.
É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...
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 à Guy
Les différentes parties
Différentes parties compose cette découverte du C et de l'arduino:
- Les bases permettent de commencer quand on débute dans ce monde. C'est un ensemble de page que je conseille de
suivre dans l'ordre. La plus part du temps un petit exercice de programmation permet de tester ce qui est découvert. Les corrections
peuvent être affichées
- Pour aller plus loin permet de compléter ses connaissances avec différents sujets. Ceux ci pourront être
abordés ou pas suivant les besoins dans le désordre. Bien entendu ces pages s'appuient sur les acquis des bases
Sommaire
- Débuter avec Arduino
- Les bases
- Installation
- Ne rien faire
- Hello World
- Erreur
- delay()
- Le binaire
- Le type int
- Portée des variables
- Incrémentations
- Test conditionnel if
- L'hexadécimal
- Doubles conditions
- La boucle for
- Bloc d'instructions
- Blink with delay
- Les commentaires
- delayMicroseconds()
- Le PWM
- analogWrite()
- analogRead()
- random()
- millis()
- Transtypage
- while
- do..while
- Le type char
- La macro F( )
- Le type float
- switch case
- Pour aller plus loin
- La console