L’Arduino minimaliste.

Atmel_mini_1Sur le plan financier, ce n’est peut être pas le plus rentable, mais sur le plan technique on peut être gagnant. De quoi s’agit-il ? L’objectif consiste à construire soi-même son Arduino Uno mais dans un environnement minimaliste ( les Anglais traduiraient celà par  « Arduino from Scratch » ).

C’est un ouvrage  traitant d’Arduino  ( et destiné au débutant ) qui m’a mis la puce à l’oreille. Le livre s’intitule « Arduino Workshop »,  écrit par John Boxall aux éditions « no starch press », disponible sur Amazon.fr. La lecture se fait vraiment en douceur ( néanmoins en anglais ) pour arriver au 11e chapître où l’on apprend à construire son propre circuit Arduino sur une breadboard. Je ne pensais pas que celà était possible …

 

Le sujet est pourtant largement abordé, aussi bien sur le site officiel d’Arduino ( voir les liens ci-dessous ) que sur Youtube. En réalité, le microcontrôleur ATMEGA 328P équipant les cartes Uno, ne nécessite  que peu d’éléments pour fonctionner. Il faut une alimentation + 5 Volts ( qui peut être fournie par le PC via son USB ), un quartz de 16 MHz et 2 condensateurs ( 22pF ) pour l’activation de sa base de temps, un bouton de Reset avec une résistance de 10 kOhms, deux fils Emission / Réception assurant le dialogue avec un PC et un RTS ( Request To Send ) pour l’activation d’un Reset final, comme le montre le schéma ci-dessous. En tout donc, une alimentation, 4 composants et 5 fils de liaison au câble USB.

Le schéma de cablâge de l’Arduino minimaliste ( source « Arduino Workshop » de John Boxall , ed. No Starch Press ).

Il y aurait plusieurs méthodes pour cloner un Arduino. Les trois méthodes présentées dans l’ouvrage en question partent d’un ATMEGA 328P déjà muni d’un bootloader, qui se trouve facilement sur les sites de vente de composants aux alentours de 4€.

  • 1) On remplace purement et simplement le microcontrôleur d’une carte d’origine par celui à programmer. Une fois l’opération accomplie, l’ATMEGA est opérationnel.
  • 2) Sur la carte d’origine, le microcontrôleur est ôté. Les fils Rx et Tx , RST, +5V et GND de la carte d’origine sont connectés aux pins respectives de l’ATMEGA à programmer placé sur une breadboard. En clair, on déporte le microcontrôleur et quelques fils sur une autre platine, puis on lance la programmation.
  • 3) Enfin, à l’aide d’un câble FTDI ( câble USB de programmation ) on relie le PC à la breadboard de test muni de son ATMEGA à programmer pour charger le programme dans la nouvelle puce. Dans ce cas, nul besoin d’une carte Arduino Uno tampon, la programmation se fait directement sur une platine  réalisée par ses propres moyens.

Quelques remarques :

  • 1) On peut bootloader un ATMEGA vierge par soi-même. Le site officiel d’Arduino précise la méthode détaillée à employer. Ceci diminue encore le coût du microcontrôleur.
  • 2) Le câble FTDI peut prêter à ambiguïté. En effet, il a pour rôle de transformer les signaux USB en signaux TTL série et vice-versa, mais on y trouve aussi la notion d’UART. L’ATMEGA328P possédant lui-même une USART programmable, que faut-il utiliser réellement ? (1)
  • 3) Les vidéos disponibles sur Youtube utilisent des petits modules d’interface USB – série variés et peuvent aussi prêter à confusion. Un choix reste donc à faire.

En bref, il faut se lancer ! En consultant les sites de vente de composants, j’ai opté pour le convertisseur USB-TTL de DFRobot équipé d’un chip CP210x. Ce module transforme des signaux USB en niveaux TTL/CMOS via une RS232. Comme tout module USB, il faut installer le driver correspondant qui se trouve sur le site de Silicon Labs  avant son branchement.C’est la première chose à faire sur un PC Windows, sinon le module USB n’est pas initialisé correctement et cela ne marche pas.

Le convertisseur USB - Série de DFRobot.

Le convertisseur USB – Série de DFRobot.

La construction s’est faite sur un circuit imprimé de test plutôt que sur une breadboard, le quartz et les condensateurs présentent parfois de mauvais contacts – surtout à 16 MHz – lorsqu’ils sont reliés avec des fils souples. J’ai déjà rencontré ce genre de problème avec des circuits intégrés classiques à ces fréquences. Le circuit est muni d’un régulateur 5 Volts, permettant son alimentation par n’importe quel transformateur disponible ( délivrant au moins 7,5 Volts et au plus 12 Volts (2)). Une série de cosses enfichables permettent la connexion du module de conversion USB – Série TTL. Une fois programmé, le module de conversion est défiché, l’alimentation se faisant à l’aide du transformateur. Le circuit est alors autonome comme une carte Arduino.

La plaquette d’essai comprend un régulateur 7805, le quartz de 16 MHz, une Led « pin13 », un bouton de reset et un connecteur permettant la connexion du module de transmission USB-Série.

Le circuit avec le module de conversion USB-Série enfichable.

Le circuit avec le module de conversion USB-Série enfichable.

Au cours de la programmation, le transformateur n’est pas nécessaire, l’alimentation de l’ATMEGA328P se fait depuis le PC par l’intermédiaire du port USB. Contrairement à ce qui est indiqué dans l’ouvrage cité en référence, ainsi que sur les différentes vidéos disponibles sur Youtube, ce schéma utilisant ce type de convertisseur ne nécessite pas la modification du type de carte au niveau de l’IDE Arduino. En effet, dans l’onglet outils, on peut garder le type de carte « Arduino Uno », cela fonctionne. Nul besoin de modifier en « Arduino Duemilanove or Nano w / ATMEGA328 ». On obtient bien un message de « téléversement ok » … mais rien se bouge au niveau du circuit ! Le programme  » Blink  » doit faire clignoter la LED connectée à la broche 19 du microcontrôleur ( la fameuse pin 13 ) avec le type de carte « Arduino Uno ».

Le module en fonctionnement autonome. Le LED verte indique le +5V, la LED rouge est connectée à la « pin13 » du programme Blink.

(1) Il faut se rappeler que le vrai standard RS232 employait des tensions  de -15V et +15 V pour assurer une transmission du type série. Ce protocole est déjà très ancien car standardisé dans les années 60 et n’est plus utilisé tel quel de nos jours. Il a été remplacé par les protocoles USB, I2C, FireWire dans les années 2000. On le retrouve cependant lorsque des modules sont équipés d’USART ( unité de transmission série asynchrone ) mais celles-ci fonctionnent en +5 Volts de nos jours. Ainsi, on trouve cette notion de convertisseur USB – Série ( RS232 ) mais adapté au 5 Volts ( TTL ). Nos ancien PC possèdent encore une sortie RS232 standard et restent précieux pour la programmation des PICs via les programmateurs à liaison RS232 …

(2) Pour mémoire, un régulateur du type 78xx peut produire un courant maxi de 1.5 Ampères. Cependant, il est nécessaire que la différence de tension entre entrée et sortie soit au moins égale à 2.5 Volts ( Dropout  Voltage ). Dans le cas contraire, il n’y a pas de régulation. En d’autre thermes, ne pas utiliser un transformateur de 6 Volts par exemple pour réguler un 7805 …

Conclusion : Rentable ou pas ? Tout dépend du contexte. Tout électronicien possède un régulateur 7805 dans ses tiroirs ainsi qu’un bout de circuit imprimé de test. Quelqu’un qui pratique avec des composants en stock s’en sort avec l’achat de l’ATMEGA328 et un quartz de 16 MHz. Le coût est alors moindre ( 5 à 6 € )  , une carte Arduino Uno officielle se situe autour des 25 € ( il est vrai que l’on contribue ainsi au développement Arduino ) . Je pense qu’un amateur équipé peut être intéressé par un système minimaliste, ne serait-ce que pour le plaisir de tester. Le débutant en électronique aurait plutôt intérêt à s’orienter vers un système complet disponible sur les sites de vente, afin de se faire une première expérience avec la programmation et une carte Arduino ( en principe ) sûre de fonctionner du premier coup.

Liens vers le site officiel d’Arduino:

Arduino minimalist

Construire son Arduino

Quelques liens vers Youtube :

lien1, lien2, lien3   en anglais, lien4 en allemand, etc …

La suite à lire sur le site de : POPA’S BLOG L’Arduino minimaliste.