Le Raspberry Pi Zero, alternative à Arduino
Pendant que les créateurs de l'Arduino se battent pour la propriété du nom de marque, Broadcom révolutionne le domaine du micro-contrôleur avec le Pi Zero, une carte mère qui à les capacités d'un ordinateur, mais aussi 40 GPIO pour commander directement des appareils électroniques. Cela à un prix qui est le cinquième de celui de l'Arduino Uno!
Le Pi Zero a pourtant des capacités supérieures à celle d'un ordinateur de bureau de l'année 2000. Comme par example le Gateway Select 1000, un des premiers à être doté d'un processeur à 1 GHz...
Le zero ne sera probablement pas utilisé comme ordinateur de bureau mais plutôt comme contrôleur robotique ou pour la maison. Il est donc utile de le comparer aussi au produit le plus populaire dans le domaine, l'Arduino Uno.
Comparatif du Pi Zero et de l'Arduino Uno:
Arduino Uno R3 | Raspberry Pi Zero | |
Prix | 25 € | 5 € |
Processeur | ATmega328P | Broadcom BCM2835 |
Fréquence | 16 MHz | 1 GHz (60 fois plus rapide) |
Ports | 14 digitaux, 6 analogiques | 40 GPIO, tous digitaux |
Mémoire | 32 KO + 2 KB | 512 MO (15000 fois plus) |
USB | 1 | 1 OTG + 1 alimentation |
HDMI | Non | Oui |
Dimensions | 68.6 x 53.4 x 10.6 mm | 65 x 30 x 5 mm |
Voltage en entrée | 7-12v | 5v |
Voltage en sortie | 3.3v ou 5v | 3.3v |
Consommation | 20-50 mA | 60-500 mA. |
Le Pi n'a pas de ports analogiques comme l'Uno mais on peut y connecter des composants analogiques dès lors qu'ils sont dotés d'une interface I2c ou SDI. On peut aussi ajouter une carte d'extension ADC (Analog to Digital Converter).
La consommation peut aussi être réduite comme on va l'expliquer ci-dessous.
Installer l'environnement
Commençons par l'installation du sytème d'exploitation, Raspbian ou un Linux IoT. Comme expliqué sur le site raspberry.org, on copie le système sur une carte SD et il est prêt à démarrer dès qu'on insère la carte SD dans le slot du zero.
On installera ensuite Node.js pour disposer d'un interpréteur JavaScript. Les 10 méga octets du package tiendront facilement dans les 512 MO de mémoire du Zero!
Si l'on veut utiliser le Zero comme contrôleur, la première chose à faire est de réduire la consommation, surtout s'il doit fonctionner avec une pile. Il est possible de la diviser par deux et la mettre au niveau de l'Arduino, en mode veille, en désactivant les composants inutiles pour un contrôleur: voyant lumineux, connecteur HDMI.
Désactivez le HDMI: dans /etc/rc.local, ajoutez cette ligne:
/usr/bin/tvservice -o
Le o pour off. On mettrait -p si on voulait l'activer.
Désactivez le voyant lumineux: dans /boot/config.txt ajoutez ces deux lignes:
dtparam=act_led_trigger=none
dtparam=act_led_activelow=on
Les extensions
Comme on le voit sur l'image ci-dessous, le zero dispose d'un slot SDXC, une sortie HDMI, deux USB micro-B OTG et les 40 GPIO. Pas de prise Ethernet, donc il faudra communiquer autrement avec l'appareil.
Vous aurez sans doute besoin des composants suivants pour relier le Zero au monde extérieur:
- Adapteurs mini-HDMI à HDMI ou cable mini-HDMI. Adaptateur USB micro-B vers A.
- GPIO header de 2x20 pour pouvoir insérer des fiches et cavaliers comme on l'a fait dans les expériences Arduino.
- Dongle Wifi pour envoyer des commandes au zero. Cela peut aussi se faire par l'USB ou les GPIO.
- Adaptateur Ethernet-USB. Pour remplacer le connecteur Ethernet si on veut créer un réseau local, ou même accéder à Internet. On en trouve pour 10€ sur Amazon.
- Carte d'extension ADC pour convertir les signaux analogues en digitaux, si besoin. Coûte environ 15 €.
Dans nos expériences on a utilisé l'analogique rarement, pour se relier à un potentiomètre ou un gyroscope. Les deux pourraient être digitaux.
On s'inspirera du Kit de démarrage Arduino pour trouver les composants utiles aux expérimentations électroniques ou la liste des composants.
Ressources
- Google coder. Ce système remplace Raspbian et transforme le Pi en serveur local. Cela permet à une unité centrale de faire communiquer plusieurs autres contrôleurs, échanger des données ou lancer des commandes.
- GPIO (Anglais). Explique le fonctionnement des 40 connecteurs à usage général.