Difference between revisions of "Formations:Arduino:Initiation"

From Electrolab
Jump to: navigation, search
(Entrées)
(Entrée digitale/Pas d'exemple existant? à créer)
Line 117: Line 117:
  
 
=== Entrée digitale/Pas d'exemple existant? à créer ===
 
=== Entrée digitale/Pas d'exemple existant? à créer ===
Remarque: on veut un exemple genre bouton ON/OFF pour la led (eg appui <=> allumé)
+
*Remarque: on veut un exemple genre bouton ON/OFF pour la led (eg appui <=> allumé)
 +
*Exemple button, mais pulldown... a voir, le code est plus clair, MAIS on peut pas utilizer l'internal pullup. En meme temps, pas mal de préciser le principe de pullup/down... mais compliqué à saisir en initiation.
 +
 
 +
 
 
* on fait le montage!
 
* on fait le montage!
 
* upload code
 
* upload code
Line 124: Line 127:
 
*"analyse" schematic (eg entrée arduino pushbutton ; pullup?).  
 
*"analyse" schematic (eg entrée arduino pushbutton ; pullup?).  
 
*analyse code (reference sur le site Arduino)
 
*analyse code (reference sur le site Arduino)
 
  
 
=== défi 1: changer le fonctionnement ===
 
=== défi 1: changer le fonctionnement ===

Revision as of 12:21, 28 October 2015

Page en cours de creation...

Formation Arduino: initiation

Synopsys {description Arduino: motivation} {approche du cours} {ce qu'on en retiendra/ce que cela permet}

Informations pratiques

  • Durée: 3h
  • Public visé: tous les membres (aucun prérequis particulier)

Formations liées

  • Prérequis: aucune

Idéalement:

  • notions d'électronique
  • notions de programmation

Suites:

  • (autres formations arduino)
  • (formations liées au coding)

Matériel requis

  • ordinateur portable (installer environnement Arduino, voir <link>), accès internet
  • carte arduino + cable usb (possibilité d'acheter sur place)
  • accessoires (capteur, platine d'essai, ...)
  • starter kit, eg breadboard, potard + cables, led + 220, pushbuttons ; multimetre, servo, HP, photoresistor + sister resistor, push button/joystick. Le tout étant dispo dans la valise initiation arduino/starterkit lab.

Ressources additionnelles

{documentation online eg arduino.cc} {how to code} {ouvrages papier: Arduino pour les nuls} {shops pour achat de matos} Sur le wiki https://wiki.electrolab.fr/Ressources#Notions_de_base_en_.C3.A9lectricit.C3.A9.2C_.C3.A9lectronique_et_sch.C3.A9ma

Contenu détaillé

Cette formation est prevue pour être animée au lab. Il est envisageable de suivre le plan en autoformation.

Introduction

Microcontroleurs

  • Description microcontroleur:

CPU avec le nécessaire pour agir sur le monde réel. Comme un petit ordinateur tout integre sur une puce. Ici, le tout monté sur une carte, avec le nécessaire pour causer avec un ordinateur.

  • A quoi ca sert/ou ca sert?

Ca sert à plein de choses: interfacer des capteurs et actionneurs (de tous types), et decider/decrire le comportement (en écrivant un programme...). Penser à votre machine à laver, mais aussi à votre voiture... à un ascenceur, bref, un peu tout objet du quotidian.

  • Capacites (eg I/O) en mode fact sheet
    • entrées tout ou rien (0v ou 5v, presence/absence de tension).
    • Sorties idem (mais pas puissantes).
    • Entrées de mesure de tension (entre 0 et 5v).
    • Pas vraiment de sorties de tension... parce que compliqué à faire - ya des astuces.
    • Divers bidules plus sophistiqués... par exemple pour communiquer avec un ordinateur!

L'univers Arduino

Arduino a été pensé pour des étudiants designers, artistes... c'est à dire pas du tout techniciens, pour qu'ils puissant bidouiller des trucs super avec des microcontrolleurs. "facile à prendre en main" est tout en haut de leurs objectifs initiaux.

Par rapport à plein de modules pré-existants, les gens d'Arduino ont fait plusieurs trucs géniaux:

  • Opensource: Ils se sont basés sur des outils existants, et ont eux aussi publié l'intégralité de ce qu'ils ont développé
  • Pas cher: Ils voulaient que la carte coute le prix d'un restau max, pour que les gens n'aient pas peur de la griller, et surtout, qu'ils puissent se l'acheter et jouer avec!
  • Pas un gadget/outil pédagogique: ils ont designé une interface abordable, des raccourcis dans le langage, et une carte électronique robuste. MAIS en partant des "vrais" outils des pros, les rendant simplement plus accessibles au plus grand nombre.

Ca a super bien fonctionné, et un nombre grandissant de gens se sont mis à s'en server, à contribuer des ameliorations, des projets, des modules complémentaires... aujourd'hui la communauté est très puissante, et florissante.

Comment on s'en sert?

  • Tour de presentation rapide Matos dans le kit/la valise, check de la board.
  • IDE ; workflow : installer le logiciel, les bidules à savoir/ou cliquer.
  • faire des schema électroniques, et des programmes informatiques...

Arggg mais je sais faire ni l'un ni l'autre! Eh ben c'est facile:

  • notions d'electronique: prepare offclass documentation/reminder (électricité, U/I, circuits)
  • notions de programmation: prepare offclass documentation/reminder (écrire un programme, compiler, variables)

Notions ultra rapides/basiques, on va plutot creuser en décortiquant Blink.

Sorties

On va voir par l'exemple ce que peut faire la carte coté sorties. Et pour ca, on va commencer avec le plus simple: allumer et éteindre une petite Led.

Blink

  • upload
  • demo

=> check que environnement est OK. Include troubleshooting link.

  • "analyse" schematic (eg sortie arduino resistance led).
  • analyse code, comprehension IDE

défi 1: changer vitesse

Comment on fait pour changer la vitesse à laquelle ca clignotte?

=> Vérifier comprehension du code => passage immediat à l'action

défi 2: SOS morse

Comment on fait pour faire clignoter des motifs plus compliqué?

Faire clignotter selon un motif plus compliqué, par exemple le cassique SOS en morse (...---... : trois flash courts, trois longs, trois courts). => Ecrire un peu plus de code... diversité d'approches/de stratégies

défi 3: ultra rapide

Il se passe quoi si on fait clignoter suuuper vite?

=> persistence rétinienne

PWM et sortie analogique

=> PWM, astuce pour simuler une sortie analogique (eg entre les deux plutot que tout ou rien, 0 ou 5v.)

Ya d'autres techniques, mais celle ci est quand meme la plus pratique/simple.

Bonus

  • exemple fade
  • jouer avec une led RGB.
  • concevoir et realiser un feu tricolore

Entrées

Pour réellement faire plein de trucs avec un microcontroleur, on a besoin de savoir mesurer des trucs dans le monde. Commençons par le plus simple: un bête interrupteur.

Entrée digitale/Pas d'exemple existant? à créer

  • Remarque: on veut un exemple genre bouton ON/OFF pour la led (eg appui <=> allumé)
  • Exemple button, mais pulldown... a voir, le code est plus clair, MAIS on peut pas utilizer l'internal pullup. En meme temps, pas mal de préciser le principe de pullup/down... mais compliqué à saisir en initiation.


  • on fait le montage!
  • upload code
  • demo/test.
  • "analyse" schematic (eg entrée arduino pushbutton ; pullup?).
  • analyse code (reference sur le site Arduino)

défi 1: changer le fonctionnement

Qui a dit que le bouton devait faire X plutot qu'autre chose? Nous, avec le code! Comment changer vers un mode toggle (eg appui veut dire changer d'état) ?

défi 2: menu

Comment on peut faire "sentir" à la carte un peu plus que juste "marche/arret" ? Par exemple, en comptant le nombre de fois ou on appuie. (Attention, piège du bounce).

=> un peu galère, de compter les appuis bouton. => OK, on commence à avoir un système complet: input, traitement, output.

Potentiomètre et Analog in

Exemple de code potard vers fade.

  • on fait le montage
  • upload code
  • demo/test.
  • "analyse" schematic (eg entrée arduino analog potard).
  • analyse code

=> OK! On peut mesurer des trucs mieux que juste marche/arret.

Bonus

  • défi: reprendre le morse, et changer la vitesse de defilement (difficile/nécessite un code bien structure).
  • défi: piloter la RGB de facon marrante.
  • défi: simuler le vent/led comme flame (nécessite d'aller chercher random dans la reference)

entrée/sortie UART

analogin serial out

pilotage kbd vers allume/eteindre led.

exemple a creer.


autres capteurs

(pont diviseur)

capteur lumiere

température

Autres outputs

output HP

output servo

conclusion

  • comment faire ses premiers pas
  • capacités de l'arduino: out digital, PWM, in digital, in analog ; C code.
  • Mon prochain projet.
  • Autres formations