août 24, 2016

Premiers pas sous Arduino


La plateforme Arduino est un plateforme developpée pour la formation et pourtant...

Catégorie : Logiciel embarqué
Posté par : Simon Loubiou

Arduino c'est simple, c'est pour les débutant et moi qui suis professionel j'ai eu du mal à comprendre la philosophie.

1)      La guerre Arduino.cc et Arduino.org

 

Lorsque l’on a acheté sa première carte Arduino, le test le plus rapide à faire est de faire clignoter une LED. Pour cela il faut :

-          Télécharger l’environnement de développement compilation et chargement dans le microcontrôleur (IDE)

-          Installer l’IDE

-          Connecter la carte sur un port USB (émulation RS232)

-          Choisir le port de communication dans l’IDE (RSxxx)

-          Sélectionner un exemple : Fichier/Exemples/01.Basics/Blink

-          Téléverser (compiler puis charger le logiciel vers le microcontrôleur)

-          Se féliciter du résultat

 

Oui mais, pas si facile car en fait la marque Arduino.cc et Arduino.org se font la guerre.

Il faut bien regarder à qui appartient la carte achetée et télécharger l’IDE sur le bon site car ils sont incompatibles et partent de la même base (ils se ressemblent vraiment).

 

Par exemple pour un projet un client voulait utiliser la carte M0 / M0 pro basée sur un microcontrôleur ATMEL SAMD21G18A-AUT.

Les cartes M0 / M0 pro sont produites par Arduino.org

La carte Zero est exactement la même que la M0 pro mais produite par Arduino.cc

 

Qui a copié qui ?

 

2)      Un peu d’électronique

 

Question : Est-ce que le SW téléchargé sur M0 pro est compatible M0  (même microcontrôleur)

Réponse : C’est bien et  effectivement j’arrive à faire clignoter la LED sur la M0 et M0 pro avec le même logiciel.

 

Analysons un peu les schémas électriques de cette carte :

http://download.arduino.org/products/M0/arduino-M0-schematic.pdf

Ce qui me gêne un peu sur les schémas c’est que ce sont des schémas électriques sans garanti (oui, oui c’est écrit). Il y a peut-être des erreurs et Arduino se dédouane, pas terrible pour former des débutants…

 

Question : Cette LED, que je pilote,  elle correspond à quoi sur les schémas :

-          Je pilote la pin 13 c’est super donc c’est la pin 13 du microcontrôleur vu que c’est pour les nuls qui y connaissent rien

-          Pin 13 c’est PA8_TCC0-W0 et c’est la pin 3 du connecteur IOL : test de continuité pour  voir si je la pilote en même temps que la LED.

Réponse : NON, la PIN 13 n’est pas la pin 13 du microcontrôleur.

 

Question : Cette LED elle correspond à quoi sur les schémas :

-          Sur les schémas ils marquent SCK qui pilote la LED qui est la pin 26 du microcontrôleur et la pin 6 du connecteur IOH. Test de continuité !

Réponse : OUI, la PIN 13 n’est pas la pin 26 du microcontrôleur.

 

Question : Quel est le mapping entre 13 et 26 ?

-          Je cherche sur Arduino.org, pas d’information

-          Je cherche sur Arduino.cc : tiens la ZERO elle utilise le même microcontrôleur ATSAMD21G18, je télécharge les schémas électriques de la carte.

-          Ah, Ah, schémas très clair avec des renvoie de signaux (au passage ici SCK est bien partout indiqué) et pas le speech qui dit que s’il y a des erreurs on se débrouille (on se serait trompé de fournisseur)!!!

https://www.arduino.cc/en/uploads/Main/ArduinoZero-schematic.pdf

-          Je cherche et je ne trouve pas (j’ai même regardé la doc du microcontrôleur)

-          je ne trouve pas…

Réponse : Pas de mapping entre les broches utilisées dans le logiciel et les broches du microcontrôleur.

 

Conclusion :  il faut regarder les schémas et la carte (car la PIN 13 sur la carte n’est pas reportée sur le schéma)… pas simple finalement pour piloter un signal, on sait juste que l’on pilote le signal digital 13.