[Tutorial] Choisir et acheter son Arduino pour débuter

Publié: 20 mars 2014 dans Tutoriaux
Tags:,

Bonjour à tous,

C’est une question très courante quand veut débuter en Arduino (et donc en générale quand on veut aborder le monde des microcontrôleurs) : quelle carte choir ? UNO, MEGA, DUE, Nano ??!

Comprendre

Très souvent le débutant fait les mêmes erreurs qui le guide vers un mauvais choix de première carte :

– il a déjà un projet en tête : et oui mais l’Arduino, même si ça se veut être la plateforme de développement la plus simple à mon sens, ça reste de la programmation et de l’électronique. Et avant de vouloir courir il faut savoir marcher ! Très souvent sur le forum Arduino on croise des choses du genre « je voudrais faire un quadricoptère, mais je comprends pas ce que c’est que le PWM ». Bah oui mais ça peut peut-être sembler barbant mais commencer à jouer avec des led, des boutons, des photorésistance … Permet d’apprendre les bases indispensables et ça prend pas forcement plus de temps au final parce que ça va peut-être prendre du temps au départ mais qui sera vite rattrapé. Ne pensez pas que vous serez plus malin que les autres.

– « Je vais prendre celle qui en a le plus dans le slip au cas où » : perso, j’ai une MEGA, et elle ne m’a jamais servi … A moins d’avoir des projets bien particuliers, on peut faire énormément de choses avec une Nano ou une Micro, il existe des tas d’extensions possibles pour parer à toutes les situations. On croit bien souvent que le système est lent : croyez moi, le jour où vous amènerez votre UNO à ces limites, c’est soit que vous aurez atteint un certain niveau, soit que vous avez un code foireux 😉

Les fonctions de l’Arduino

Je pense qu’il est bien important de comprendre les fonctions de l’Arduino pour comprendre ce que l’on achète.

Tout d’abord il faut comprendre ce qu’est exactement Arduino : ce n’est pas juste un ensemble de carte, c’est un environnement : des cartes ET une interface de programmation. Ces cartes (puisque que c’est le sujet qui nous interesse ici), il y en a plusieurs mais le principe est toujours le même : on trouve un microcontrôleur (= le cerveau) et une série de composants nécessaires à son fonctionnement, le tout monté sur un circuit imprimé qui facilite le développement : bornier, possibilité d’empiler des « shields » pour ajouter des fonctions, entrées pour différentes alimentations … Donc une carte, c’est un ensemble de choses qui vont lui donner ces caractéristiques finales, mais le principal dans l’histoire reste évidemment le microcontrôleur : c’est lui qu’on va programmer et qui définit le plus les possibilités données à la carte.

Voyons maintenant ce que peut faire un microcontrôleur …

Les entrées/sorties digitales

C’est LA fonction première d’un microcontrôleur : avec une simple ligne de code, on peut passer une sortie du µC (microcontrôleur) à 5V ou à zéro volt. Quelle intérêt ? Alimenter une led au travers d’une résistance, faire sonner un buzzer, commander une électrovanne  un moteur … En gros c’est une sorte « d’interrupteur » : lumière allumée ou éteinte.

Maintenant on peut faire l’inverse : lire une entrée de l’Atmega. Est-elle l’état haut (=5V) ? Ou à l’état bas (=0V) ? Quelle utilité ? Détecter l’appuie sur un bouton, un son, un signal d’un détecteur infrarouge … Bref tout ce qui prend fourni des signaux tout ou rien (= « ma lumière est allumée ou bien éteinte ? »)

Les entrées analogiques

Une fonction également très importante d’un µC (s’il en est capable, ce qui est le cas de toutes les arduinos) est la mesure analogique : c’est très simple à expliquer, c’est comme si vous aviez un voltmètre. Une ligne de code et hop vous connaissez la tension sur tel ou tel pin analogique. Quelle utilité ? Lire tout un tas de capteurs : mesurer la luminosité, la température, l’humidité, la tension d’une batterie …

Les sortie PWM

La on va pouvoir générer une tension « pseudo variable » : en gros il s’agit de faire passer un pin de 0V à 5V puis de 5V à 0V très rapidement(tellement que c’est imperceptible pour l’être humain), et ce, avec une répartition du temps passé à 5V et à 0V variable mais bien évidemment commandée dans le code :

C’est comme un variateur de lumière : la luminosité varie simplement pour nous, mais si on dilatait le temps, on verrait des variations dans la luminosité car en réalité le courant circule un temps puis s’arrête. L’oeil humain n’étant pas assez rapide pour distinguer ces variations, l’illusion fonctionne. Le PWM c’est un peut pareil : un voltmètre lira effectivement une tension variable car la plupart sont équipés de filtre en entrée qui lissent les créneaux de tension. Mais il faut garder à l’esprit que ce n’est pas une réelle tension fixe : si le système sur lequelle on le branche est assez rapide, il ne verra que du 0V ou du 5V. Par exemple si je branche une sortie PWM sur une entrée analogique de l’Arduino, et bien vous aurez un coup une mesure à 0V et un autre à 5V.

Les ports de communication

Il existe trois principaux mode de communication : la liaison série, le SPI et l’i2c. Elles servent principalement à communiquer avec l’ordi (ça c’est pour la liaison série) et à communiquer avec d’autres composants (SPI et i2c). En fait derrière ces noms un peu barbares c’est toujours le même but : échanger des données (et qui sont toujours des 0 et des 1), il n’y a que la manière qui change. Je ne vais pas trop développer ce sujet, mais ce qu’il faut retenir :

– SPI ou i2c : ces deux modes permettent de communiquer avec presque autant de « clients » que vous voulez avec un seul port. Quelque part, deux i2c c’est inutiles, c’est comme avoir deux bouteilles de whisky qui ne se vide jamais.

– Série : deux points à retenir. Le premier, c’est que la plupart des Arduino n’ont qu’un seul port série et qu’il sert à la liaison avec le PC. A ce moment la, un composant (un Atmega32u4 pour les carte récentes, un FT-232 sur les anciennes) fait l’intermédiaire pour que le branchement se fasse en USB (mais sur le PC la carte apparaît bien comme un port série). C’est par ce biais que s’effectue la programmation, et éventuellement le dialogue avec la carte. On peut alors lui transmettre des commandes et elle peut nous envoyer des infos. On peut cependant exploiter ce port série pour communiquer avec d’autres clients, mais en liaison série il n’y a que deux dialogueurs (enfin en réalité on peut faire des dialogues à plusieurs, mais c’est assez complexe). Donc utiliser le port série pour communiquer avec une autre carte par exemple, c’est perdre la liaison avec le PC. Le second point c’est qu’il s’agit de série TTL à différencier du série RS-232 qu’on trouve sur les anciens PC maintenant (le fameux port COM). C’est presque la même chose mais les tensions n’ont rien à voir (0-5V pour le TTL et -12/+12V pour le RS-232) donc brancher du RS-232 sur une Arduino ça va la griller, et les polarités ne sont pas les mêmes (un 0 en TTL est un 1 en RS-232 et vice-versa). C’est pas forcement hyper important comme remarque mais c’est un point qui n’est pas forcement clair et le terme « série » est en générale utilisé à tord et à travers sans distinction.

A noter : dans toutes les fonctions que je viens d’évoquer, chacune n’est pas forcement disponible sur tous les pins du µC. Si je prends la UNO par exemple, j’ai 6 pins analogiques (qui sont aussi digitaux) : sur les autres pins de la carte je ne pourrais pas faire de mesures analogiques.

« Ouais mais tu nous emmerdes on sait toujours pas quoi choisir ! »

Tout ce blabla pour qu’on arrive à mon conseil : prenez une UNO (et pas une UNO cms). Pourquoi :

– elle a toutes les fonctions nécessaires et largement assez dans le slip pour faire tous ce que vous voulez.

– vous pouvez changer l’atmega : si un truc doit griller (et bien évidemment un débutant est le meilleur candidat à ce que ça arrive) c’est l’Atmega. Si vous prenez une Léonardo et que vous flinguez l’Atmega32u4, vous avez intérêt à avoir un pote bien équippé pour qu’il vous dessoude ça et en remonte un neuf … Donc si ça vous arrive toute la carte est bonne pour la poubelle. Alors qu’une UNO classique l’Atmega328P est monté sur un support et qu’ont peut l’enlever à la main. Donc en cas de mauvaise manip, il n’y a que ça à changer.

– ça vous servira toujours : il vaut mieux racheter plus tard une MEGA ou autre, une UNO on s’en sert toujours pour faire des test, programmer des Atmega pour les monter sur ses propres montages en standalone (comprenez qu’on peut juste prendre l’Atmega et le monter sur ses propres circuit intégré, ce que j’ai fait ici par exemple mais avec un Atmega328 en version cms = monté en surface)

Fortement déconseillée : la DUE. Ce n’est pas la même architecture au niveau du µC (c’est un ARM), pour faire simple : si sur la programmation ça ressemble à la même chose que sur une Arduino « normale », derrière ça n’a rien à voir. Donc bon nombre de librairies sont incompatibles, et pas grand monde (même la team Arduino) ne bosse dessus donc pas grand espoir que ça change. En plus elle est en 3,3V : envoyer 5V sur une entrée et bye bye le ARM … Même si le 3,3v est voué à se démocratiser (on voit même apparaître de plus en plus de 1,8V !) ça le rend plus vulnérables aux erreurs de débutants. En plus elle est chère (+ de 35€) … Si vous tenez à faire du ARM tout en gardant la simplicité de la programmation Arduino, prenez la Stellaris Lauchpad de Texas instrument : 9,9$ et compatible avec Energia, un logiciel de programmation basé sur Arduino.

Arduino UNO (Atmega328P au format DIP) => c’est elle qu’il vous faut !

Arduino UNO CMS ==> Pas bbbiiieeennnn

Où acheter ?

Alors je suis un grand acheteur sur ebay et dx.com. J’ai acheté énormément de matériel en provenance de Chine sur ces deux plateformes, jamais déçu. Alors oui je sais c’est pas cool pour les petits français. Mais bon regardez sous tous les appareils électroniques chez vous et ça sera marqué made in China …

Je vous recommande plutôt DX car sur ebay, on trouve un peu plus de choses « exotiques ». Car ce que vous achèterez si vous commandez en Chine, ce sont bien évidemment des clones (pas des copies puisque Arduino est OpenSource, comprenez que rien n’es breveté donc chacun peut dupliquer des cartes Arduino et les vendre) et les fabricants sont multiples et peuvent essayer de grappiller sur les composants : un régulateur moins costaud, un convertisseur USB-Serie moins performant … Et sur Ebay, on peut trouver plein de vendeurs différents avec pas forcement un bon suivi. Sur DX, il y a des commentaires sur tous les articles et ils n’ont pas 10 000 ref différentes pour la UNO. Ils ont bien plusieurs modèles de UNO, mais elle seront surement toutes fiables car ils ne s’amuseraient pas à en mettre des mauvaises car la note du produit serait fortement entachée. Après évidemment il faudra se montrer patient (2-3 semaines en moyenne).

Si vous êtes pressé ou que la Chine vous fait peur, bien sûr il y a des bonnes crèmerie en France : Semageek, Farnell, Snootlab … Et la vous aurait la vrai board officiel. Mais pour au moins 2 fois plus cher. A vous de voir !

Publicités
commentaires
  1. Icare Petibles dit :

    Salut B@tto,
    Joli exposé.
    Voila un lien à utiliser sur le forum

  2. battooo dit :

    C’était un peu le but de la manœuvre 😀
    Je vais surement en pondre d’autres dans le même genre 😉