samedi 30 août 2014

Pinguino: fabrication et utilisation

Créé en 2008 par Jean-Pierre Mandon pour les étudiants de l'école internationale d'art d'Aix-en-Provence, Pinguino propose des cartes de prototypage et un environnement de programmation (IDE) open source très similaire à l'Arduino.  La différence principale entre Pinguino et Arduino, c'est que les cartes Pinguino sont construites autour d'un microcontrôleur PIC de la compagnie Microchip plutôt qu'un microcontrôleur Atmega de la compagnie Atmel.

Dans cet article, je partage mes premières expériences avec Pinguino:

- fabrication de cartes Pinguino
- installation de l'IDE sous Windows et Linux
- réalisation d'un projet simple, en guise de premier test

De la même façon que le site arduino.cc est le principal endroit à visiter lorsque vous cherchez des informations, le site pinguino.cc est le site de référence numéro 1 en matière de Pinguino:   vous y trouverez l'IDE (disponible pour Windows, Mac et Linux), une boutique permettant d'acheter des cartes toutes faites, des schémas permettant de fabriquer vos propres cartes, un forum de discussion (avec une section en français), etc.


Fabrication de cartes

Les cartes Pinguino sont basées sur un microcontrôleur PIC capable de gérer l'USB sans nécessiter le moindre convertisseur série-USB externe.   Cette caractéristique rend la fabrication de cartes en DIY extrêmement simple:  un microcontrôleur PIC (en format dip), un connecteur USB, un cristal de quartz, quelques condensateurs, résistances et LEDs indicatrices et vous obtenez très rapidement une carte de prototypage complète prête à être connectée au port USB d'un ordinateur.

J'ai fabriqué deux cartes 8-bits différentes:  le Pinguino 4550 (basé sur un microcontrôleur PIC 18F4550), et le Pinguino 26J50 (basé surle microcontrôleur PIC 18F26J50).

Entre les deux, j'aurais tendance à suggérer le modèle 4550 car il comporte plus d'entrées/sorties (29, dont 8 entrées analogiques) et puisque le microcontrôleur fonctionne bien sous 5 V, vous n'avez pas à prendre de précautions pour abaisser la tension fournie par USB.

Le modèle 26J50, un peu plus économique, fonctionne bien aussi, mais il comporte un peu moins d'entrées/sorties (17, dont 5 entrées analogiques) et il faut abaisser à 3,3 V l'alimentation USB (dans le schéma officiel, c'est fait au moyen d'une diode Zener).

Pour les schémas de circuits et instructions pour la fabrication, je vous réfère aux pages pertinents sur pinguino.cc, c'est très bien fait:  Pinguino 4550  et  Pinguino 26J50.

Installation du bootloader


Peu importe le modèle de Pinguino que vous choisissez de construire, il faut charger le bootloader dans le micocontrôleur.  Pour ce faire, vous devez disposer d'un programmateur conçu pour les microcontrôleurs PIC, comme par exemple le PICkit 2 (c'est ce que j'ai utilisée) ou le PICkit 3.

(Méfiez-vous des programmateurs génériques et très économiques qu'on trouve sur eBay:  celui que j'avais depuis quelques années ne supporte pas le 26J50 et, même si en principe il aurait dû supporter le 4550, l'opération a lamentablement échoué.)

Si vous êtes équipé d'un programmateur de PIC, la gravure du bootloader est facile et rapide:  vous vous procurez le bootloader qui correspond à votre modèle de Pinguino et vous le chargez  le fichier .hex dans le microcontrôleur.

Si vous ne disposez pas d'un programmateur pour microcontrôleurs PIC, il ne vous reste plus qu'à trouver un ami qui en a un, ou encore à acheter un Pinguino en kit ou déjà monté.  Si vous avez l'intention de programmer des PICs régulièrement, l'achat d'un tel programmateur devient intéressant, mais si votre objectif est de construire un seul Pinguino, ça fait monter la facture de façon assez spectaculaire...

Installation de l'IDE

L'environnement de programmation (IDE) Pinguino est disponible pour Windows, Mac et Linux (on peut se le procurer ici).

J'ai installé l'IDE sous Windows 7:  tout fonctionne à merveille.  Le script d'installation s'occupe d'installer les pilotes USB automatiquement (la procédure était plus compliquée il y a quelques mois) ainsi que Python 2.7 s'il n'est pas déjà présent sur l'ordinateur (car l'IDE a été programmé en Python).

J'ai aussi installé l'IDE sous Linux Mint;  au début, rien ne fonctionnait, mais j'ai pu régler le problème grâce à l'aide obtenue sur le forum francophone de pinguino.cc .

Je l'ai même installé avec succès sur le Raspberry Pi, mais c'est un peu lent...

Utilisation de l'IDE...comme Arduino, en mieux

Sans être identique, l'IDE Pinguino s'utilise de façon similaire à celui de l'Arduino.  La partie droite de l'écran nous permet de naviguer dans les exemples, qui sont regroupés par catégories.  Sans trop de surprise, on trouve un exemple intitulé "Blink" dans la catégorie "Basics"...



Avant de compiler, on doit s'assurer de sélectionner le bon type de carte, la bonne version du bootloader.  Et avant de télécharger le sketch dans la carte, il est impératif d'appuyer sur le bouton "reset" de la carte:  contrairement à l'Arduino, le reset ne se fait pas automatiquement.


Sous certains aspects, l'IDE Pinguino est mieux conçu que l'IDE Arduino.  Par exemple, il propose une liste de fonctions commençant par les lettres que vous avez tapées:  il s'agit de cliquer le bon mot dans la liste pour que le reste de la fonction s'écrive de façon automatique.


J'aime bien aussi qu'il écrive automatiquement la parenthèse fermante lorsqu'on écrit une parenthèse ouvrante.

En cas de bug dans le sketch, les lignes problématiques sont mises en couleur.  Et les messages d'erreurs me semblent souvent plus appropriés que ceux, souvent nébuleux, qu'affiche l'IDE Arduino.



Après avoir exécuté l'exemple "Blink", j'ai testé ce petit circuit de base dans lequel 3 LEDs sont commandées par 3 boutons:







Comme vous pouvez le constater, le même sketch pourrait être téléchargé dans un Arduino sans la moindre modification.  D'autres syntaxes auraient pu être utilisées à la place (voir à ce sujet 5 façon de faire clignoter une LED).  Notez également que, contrairement à l'Arduino, les Pinguinos ne comportent pas de résistance de tirage interne:  pour les boutons, nous devons impérativement utiliser des résistances (c'est loin d'être un inconvénient majeur en ce qui me concerne: j'oublie presque toujours d'utiliser les résistances de tirage internes de l'Arduino...).

Conclusion

Pour une première initiation aux microcontrôleurs, Arduino me semble un meilleur choix que Pinguino à cause de l'énorme masse d'utilisateurs, des informations facilement disponibles, etc.

Pour quelqu'un qui a déjà un peu d'expérience avec l'Arduino, Pinguino constitue une option intéressante, au même titre qu'Energia, STM32 Nucleo, etc.  L'option est particulièrement pertinente si vous désirez fabriquer vos propres cartes et possédez déjà un programmateur pour microcontrôleurs PIC.

En  ce qui me concerne, je suis bien heureux d'avoir ajouté Pinguino à mon arsenal de développement.  J'ai bien l'intention de continuer à l'utiliser dans l'avenir, pour des projets plus ambitieux.

Yves Pelletier (Twitter:  @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire