### Ateliers Arduino 30 octobre 2019

Ces ateliers visent à faire découvrir les outils de base, utiles au pilotage d'un "robot".

Note à l'intention des personnes à l'aise en programation : 

Ces ateliers s'adressent à des débutant-e-s en codage.
Ils ont simplement pour but de faire découvrir les fondamentaux, pas de produire du code court et "propre".
Si vous travaillez en binôme, merci de ne pas factoriser le code, de ne pas utiliser de "trucs" mathématique et d'utiliser des noms de variables compréhensibles (en français, significatives).

A la suite,  guide .pdf  ou .pdf,  fait référence au guide en format pdf à télécharger ici :  azqs.net/arduinopdf

Mini lexique (à venir):
led
IDE
Arduino
Port E/S 
FONCTION()
Variable
Dataset


## Atelier initiation 1 (réalisable en binôme)

Installer/configurer l'IDE du microcontroleur Arduino pour faire fonctionner la carte utilisée (uno, nano,...)

Sélectionner le programme d'exemple Blink pour le téléverser dans le Arduino. 
Puis le modifier pour changer la vitesse clignotement du led interne.

Installer un led (1) sur platine d'expérimentation en calculant la bonne valeur de resistance à utiliser. Le brancher sur le Arduino. Puis changer le programme Blink pour le bon port. Le faire clignoter à temps égal sur sur une periode de 2 secondes.

Installer un deuxiemme led (2) en parrallele sur la platine. En modifiant le programme, le faire clignoter à temps égal sur une periode de 1 seconde. 

Changer la vitesse de clignotement de Led (2) pour qu'il clignotte très vite (5 allumages par seconde) et constater la limitation de DELAY().

Enregister le programme


## Atelier initiation 2 (réalisable en binôme)

Reprendre la fin de l'atelier 1.

Commenter le programme de cet atelier (symboles // ou /* */)

Recopier la structure du programme sans les fonctions DELAY()

Objectifs 

- Utiliser l'appel à l'horloge du Arduino MILLIS(), dans le programme pour commander les leds.
- Utiliser la boucle IF(){} pour commander les leds

# étapes

Lire la doc sur MILLIS() dans le guide .pdf
Déclater une variable en mode LONG
Introduire dans cette variable, le temps courant du Arduino.
Utiliser la boucle IF(){} donné en exemple dans le guide .pdf pour faire clignoter différemment les 2 leds
Manipuler une variable ( initialisation du temps) 

Voir le resultat.

Rajouter un troisieme led et le faire fonctionner avec un clignotement très rapide. 
(il y aura certainnement à réorganiser le circuit électronique)


## Exercice inviduel 1-2

Le but de l'exercice est de réviser l'atelier 1 et 2

Repartir de zéro (circuit et programme)

Bien alignier 4 leds (deux rouges et deux verts)
Réaliser un chennillare de 4 leds grâce à la fonction DELAY()

puis 

Avec le même circuit de 4 leds (deux rouges et deux verts donc ) grâce à l'horloge du Arduino faire clignoter : 
Un led vert(1) allumé 2 secondes éteint 1 seconde.
Un led rouge(1) allumé quant le led vert(1) est éteint et éteint quant le led vert(1) est allumé.

Un led vert(2) allumé 3 secondes éteint 1 seconde.
Un led rouge(2) allumé quant le led vert(2) est quant le led vert(2) est allumé.

Il est à noter qu'il y a deux méthodes pour y parvenir, mais pour des raisons pédagogiques, privilégiez la fonction MILLIS(). 


## Atelier initiation 3

Repartir de zéro (circuit et programme)

Objectif : Commander un led grâce à un boutton

 Lire le chapitre "bouton" du .guide pdf : Théorie des rebonds et résistances de tirage (pull-up,  pull-down)
 - Bien comprendre le branchement sur le Arduino (toujours dans le chapitre "bouton" du .pdf)
- Tester les pattes d'un interupteur avec un ohmmetre.

Puis

Installer un interupteur pour commander un led vert et brancher le circuit du led en question.

écrire le programme pour commander le led vert grâce au bouton.

Tester : Le led devrait s"allumer et s'éteindre suivant la position de l'interupteur. 

Si ok 

faire clignoter avec DELAY() ou MILLIS() en position allumé.


## Atelier initiation 4

Installer sur la planche d'experimentation, 4 interupteurs pour commander séparément les 4 Leds (deux rouges, deux verts)

Attention l'installation doit-être pratique.

Ecrire un programme pour commander l'allumage des 4 leds.

Actionner les bouttons.

Normalement l"action sur les boutons, ne devrait pas interférer sur les autre leds (vitesse, allumage, ...)

## Atelier initiation 5
Brancher la commande (dans le futur : via un cable de deux mêtres environs), sur la carte Arduino du mini robot.
Lire la fiche technique du pont en H
Le piloter sur calles


## Atelier initiation 6 (si actif sur le programation du robot)

Reprendre l'atelier 4 au niveau de la platine d'expérimentation.

En appuyant sur les deux boutons commandant les deux Leds verts, ils devront clignoter la première seconde 4 fois, la deuxieme seconde 8 fois et être allumés continuellement la 3eme seconde.

Le but de l'atelier est de comprendre
- les if(){} en cascade sans else (){} (compréention de manipulation de variables dans le programme)
- la notion de modulation dans le temps, en vu d'utiliser dans le futur les ports E/S en PWM, pour commander le démarage des moteurs en mode économie de ressources énergétiques. 

- Lire pour information la doc du .pdf sur les port PWM (Pulse Width Modulation ou en FR Modulation à Largeur d’Impulsion)

Puis 

Modifier le programme de l'atelier 4 ( utilisez MILLIS() )

Tester


## Atelier initiation 7

Objectif : Commander les quatres leds de l'atelier 4 grâce à deux variateurs

Lire le guide .pdf 
- Théorie des variateurs.
- Infos ports "analogique" du Arduino.

Puis 

Programmation de la commande grace à deux variateurs.

Si ok

Brancher sur carte du mini robot.


### Baterrie

Ouvrir et tester les batterie au li ion

Annexe
https://www.techdico.com/
http://ftp_stockage.azqs.com/filouGeeknik/robotvelo/Info_Arduino+esp266/
