Le Raspberry Pi peut être utilisé pour presque tout. Des centres multimédias domestiques aux configurations de jeu rétro personnalisées, on peut dire sans risque de se tromper que le Pi et les ordinateurs monocarte similaires deviennent omniprésents.
Lorsque vous commencez à expérimenter avec les broches GPIO sur Raspberry Pi, les choses deviennent encore plus intéressantes. Nous avons déjà couvert ce que font toutes ces broches, alors voyons maintenant comment activer les protocoles SPI et I2C sur votre Pi et pourquoi vous voudrez peut-être le faire.
Avant de plonger, couvrons brièvement ce que font ces deux protocoles.
SPI (ou Serial Peripheral Interface) permet à un microcontrôleur tel que le Pi de communiquer avec plus de 100 composants périphériques à la fois. Le microcontrôleur agit comme un "maître" pour tous les composants "esclaves" et peut communiquer avec eux à grande vitesse. Ce schéma décrit une connexion SPI simple :
Si c'est la première fois que vous lisez sur SPI, cela peut sembler assez intimidant, mais tenez-vous-y ! SCLK est la vitesse d'horloge définie par le maître qui détermine la vitesse à laquelle les informations sont partagées entre les appareils.
A chaque cycle (ou "tic") de l'horloge, le maître et l'esclave envoient et reçoivent un bit d'information. C'est ce que le MOSI (Master Out Slave In) et MISO (Master In Slave Out) les broches sont pour.
Les SS ou la broche de sélection esclave (marquée CE0 ou CE1 sur le Pi) est utilisée pour indiquer à un appareil esclave de communiquer avec le maître --- ou non --- à tout moment. Dans la plupart des cas, chaque appareil esclave nécessite sa propre broche SS, mais peut partager les broches SCLK, MOSI et MISO.
Certains appareils peuvent être « connectés en guirlande » pour partager une broche SS, en maintenant le nombre total de broches utilisées à quatre, plus deux pour l'alimentation et la terre. SPI est connu pour être incroyablement rapide et est couramment utilisé dans les registres à décalage ou ADC (convertisseurs analogique-numérique) pour transmettre des données entre appareils.
La chaîne YouTube Augmented Startups propose une introduction facile à suivre pour SPI expliquant plus en détail le protocole :
Pour activer SPI sur votre Raspberry Pi, ouvrez raspi-config depuis le terminal en saisissant :
sudo raspi-config
Accédez à Options d'interfaçage , et dans le menu suivant, sélectionnez P4 SPI Activer/Désactiver le chargement automatique du module du noyau SPI . Sélectionnez Oui à l'invite de la fenêtre. SPI est maintenant activé !
Alternativement, vous pouvez activer SPI à partir de /boot/config.txt fichier. Ouvrez une fenêtre de terminal et saisissez :
sudo nano /boot/config.txt
Recherchez une ligne indiquant #dtparam=spi=on et supprimez le # symbole. Quelle que soit la manière dont vous activez SPI, redémarrez votre Pi et SPI sera activé.
Bien qu'il existe des centaines de projets différents utilisant de nombreux périphériques SPI différents, un bon projet de démarrage consiste à programmer votre propre lecteur RFID.
Nous avons utilisé le lecteur MFRC-522 dans notre tutoriel DIY Smart Lock avec Arduino et RFID. Pour une introduction à la RFID à saveur de Raspberry Pi, consultez Instructable en profondeur de piddlerintheroot.
Ce type de configuration n'est pas seulement pour l'électronique amateur. Dans notre collection des meilleurs projets Raspberry Pi, nous avons présenté un système MES à grande échelle qui fonctionne avec Raspberry Pi et RFID, dans le cadre d'une opération d'usine à grande échelle en Europe.
I2C est un protocole de communication créé par Phillips Electronics, qui a vu une utilisation croissante dans les projets de loisirs basés sur des microcontrôleurs. La raison en est évidente --- il n'utilise que deux fils au lieu des quatre minimum de SPI. Il est également bien pris en charge par les bibliothèques créées par les utilisateurs. Il existe de nombreux composants conçus pour être utilisés avec I2C sur Raspberry Pi. Bien qu'il soit plus lent que SPI, il fonctionne toujours assez rapidement pour la plupart des utilisations quotidiennes.
Tout comme SPI, le protocole a un maître périphérique, tel que le Pi, et un esclave périphérique, tel qu'un écran, un registre à décalage ou un pilote de moteur.
La première connexion entre les appareils est le SCL (Serial Clock) qui est réglé par le maître pour synchroniser le transfert des données. La deuxième ligne est le SDA (Serial Data) qui transfère les données entre tous les appareils sur le bus I2C.
L'appareil maître commence la communication avec un démarrage bit et une adresse hexadécimale de sept bits . Cela doit correspondre à l'appareil esclave pour qu'ils puissent communiquer. C'est ainsi que tant d'appareils peuvent être utilisés avec seulement deux fils.
L'appareil maître précise alors s'il veut lire ou écrire (R/W ) l'esclave, avant de recevoir un accusé de réception ou ACK retour.
Un regard facile à suivre et approfondi sur I2C est fourni une fois de plus par YouTuber Augmented Startups :
I2C est également activé sur le Pi via le raspi-config menu. Ouvrez le terminal et entrez :
sudo raspi-config
Utilisez les touches fléchées pour sélectionner Options d'interface , suivi de P5 I2C Activer/Désactiver le chargement automatique du module noyau I2C . Confirmez que vous souhaitez activer le protocole et vous devriez voir un écran de confirmation.
Comme avec SPI, vous pouvez également activer I2C en modifiant votre fichier config.txt. Ouvrez un terminal et saisissez :
sudo nano /boot/config.txt
Modifier #dtparam=i2c_arm=on , en supprimant le # symbole.
Redémarrez votre Pi, et I2C est prêt !
I2C est idéal pour tout projet nécessitant un grand nombre de sorties. Une utilisation typique est pour les écrans LCD, qui nécessitent jusqu'à 16 broches à utiliser. I2C ramène cela à seulement deux pour la communication et deux pour l'alimentation et la terre.
De nombreux écrans LCD sont livrés avec un "sac à dos" I2C connectés, ce qui les rend beaucoup plus simples à configurer et libère le reste de vos broches Pi pour d'autres capteurs et périphériques.
TheRaspberryPiGuy a un tutoriel YouTube détaillé sur la configuration et l'utilisation d'un écran LCD avec I2C sur Raspberry Pi
SPI et I2C sur Raspberry Pi ne sont certainement pas destinés aux débutants en électronique amateur, mais ils n'ont pas non plus de quoi avoir peur.
Avant de plonger, ce serait une bonne idée de suivre notre guide du débutant sur Raspberry Pi pour apprendre les bases.
Travailler à travers quelques exemples de projets est la meilleure façon d'apprendre, et nous avons hâte de voir ce que vous proposerez ! Qui sait quelles créations étranges et merveilleuses Raspberry Pi vous ferez ?