Partie 5 : Communication avec d’autres périphériques

Estimated read time 6 min read

La Raspberry Pi Pico dispose de plusieurs interfaces de communication, notamment l’I2C, le SPI et l’UART, qui vous permettent de communiquer avec d’autres périphériques électroniques. Dans cette partie, nous allons vous montrer comment utiliser ces interfaces pour communiquer avec d’autres périphériques et intégrer votre Raspberry Pi Pico dans des projets plus complexes.

  1. I2C

I2C (Inter-Integrated Circuit) est un protocole de communication série bidirectionnel qui permet de connecter plusieurs périphériques à une seule broche SDA (données) et une seule broche SCL (horloge). La Raspberry Pi Pico dispose de deux broches dédiées pour l’I2C (GP0 et GP1), ce qui vous permet de connecter facilement des capteurs, des écrans LCD, des modules de stockage et d’autres périphériques compatibles avec l’I2C.

Pour utiliser l’I2C sur la Raspberry Pi Pico, vous devez d’abord initialiser les broches GP0 et GP1 en mode I2C à l’aide de la bibliothèque machine. Ensuite, vous pouvez utiliser la bibliothèque de capteurs ou d’écrans LCD compatible avec l’I2C pour communiquer avec le périphérique.

Voici un exemple de code qui montre comment utiliser l’I2C pour afficher le texte « Hello World » sur un écran LCD 16×2 :

import machine
from machine import I2C
import utime
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd

# initialisation de l'I2C
i2c = I2C(0, scl=machine.Pin(0), sda=machine.Pin(1), freq=400000)

# initialisation de l'écran LCD
lcd = I2cLcd(i2c, 0x27, 2, 16)

# affichage du texte
lcd.putstr("Hello World!")
  1. SPI

SPI (Serial Peripheral Interface) est un protocole de communication série synchrone qui permet de connecter plusieurs périphériques à une seule broche MOSI (Master Output Slave Input), une seule broche MISO (Master Input Slave Output) et une broche SCK (horloge). La Raspberry Pi Pico dispose de plusieurs broches pour le SPI, ce qui vous permet de connecter facilement des capteurs, des écrans OLED, des modules Wi-Fi et d’autres périphériques compatibles avec le SPI.

Pour utiliser le SPI sur la Raspberry Pi Pico, vous devez d’abord initialiser les broches pour le SPI à l’aide de la bibliothèque machine. Ensuite, vous pouvez utiliser la bibliothèque de capteurs ou d’écrans OLED compatible avec le SPI pour communiquer avec le périphérique.

Voici un exemple de code qui montre comment utiliser le SPI pour afficher une image sur un écran OLED 128×64 :

import machine
import ssd1306
import utime
from micropython import const

# initialisation des broches pour le SPI
spi = machine.SPI(0, baudrate=1000000, polarity=0, phase=0, sck=machine.Pin(2), mosi=machine.Pin(3), miso=machine.Pin(4))

# initialisation de l'écran OLED
oled_width = const(128)
oled_height = const(64)
oled = ssd1306.SSD1306_SPI(oled_width, oled_height, spi, dc=machine.Pin(5), cs=machine.Pin(6), rst=machine.Pin(7))

affichage de l'image
with open('image.pbm', 'rb') as f:
f.readline() # ignore P1 header
f.readline() # ignore width and height
data = bytearray(f.read())
oled.blit_buffer(data, 0, 0)
oled.show()
  1. UART

UART (Universal Asynchronous Receiver Transmitter) est un protocole de communication série asynchrone qui permet de connecter un seul périphérique à une seule broche TX (transmission) et une seule broche RX (réception). La Raspberry Pi Pico dispose de plusieurs broches pour l’UART, ce qui vous permet de connecter facilement des modules Bluetooth, des GPS et d’autres périphériques compatibles avec l’UART.

Pour utiliser l’UART sur la Raspberry Pi Pico, vous devez d’abord initialiser les broches pour l’UART à l’aide de la bibliothèque machine. Ensuite, vous pouvez utiliser la bibliothèque de communication compatible avec l’UART pour communiquer avec le périphérique.

Voici un exemple de code qui montre comment utiliser l’UART pour communiquer avec un module Bluetooth :

import machine
import utime

initialisation des broches pour l'UART

uart = machine.UART(0, baudrate=9600, tx=machine.Pin(0), rx=machine.Pin(1))

envoi de données

uart.write("AT+NAMEMyDevice\r\n")

réception de données

while uart.any() == 0:
utime.sleep_ms(100)
response = uart.readline()
print(response)

En conclusion, la Raspberry Pi Pico dispose de nombreuses interfaces de communication qui vous permettent de communiquer avec d’autres périphériques électroniques. Avec l’I2C, le SPI et l’UART, vous pouvez facilement connecter des capteurs, des écrans LCD, des modules Wi-Fi, des modules Bluetooth, des GPS et d’autres périphériques compatibles. En utilisant ces interfaces dans vos projets, vous pouvez créer des systèmes électroniques plus complexes et plus intéressants.

  1. PWM

PWM (Pulse Width Modulation) est une technique de modulation d’impulsions qui permet de contrôler la quantité d’énergie électrique fournie à un dispositif électronique. La Raspberry Pi Pico dispose de plusieurs broches PWM, ce qui vous permet de contrôler facilement la luminosité d’une LED, la vitesse d’un moteur et d’autres paramètres similaires.

Pour utiliser le PWM sur la Raspberry Pi Pico, vous devez d’abord initialiser la broche PWM à l’aide de la bibliothèque machine. Ensuite, vous pouvez utiliser la méthode duty_u16 pour définir la largeur de l’impulsion, ce qui contrôle la quantité d’énergie électrique fournie au dispositif.

Voici un exemple de code qui montre comment utiliser le PWM pour contrôler la luminosité d’une LED :

import machine
import utime

# initialisation de la broche PWM
led = machine.Pin(25)
pwm = machine.PWM(led)

# contrôle de la luminosité de la LED
for duty in range(0, 65535, 256):
    pwm.duty_u16(duty)
    utime.sleep_ms(100)
  1. ADC

ADC (Analog to Digital Converter) est un convertisseur analogique-numérique qui permet de mesurer des signaux électriques analogiques. La Raspberry Pi Pico dispose de plusieurs broches ADC, ce qui vous permet de mesurer facilement des tensions électriques et d’autres paramètres similaires.

Pour utiliser l’ADC sur la Raspberry Pi Pico, vous devez d’abord initialiser la broche ADC à l’aide de la bibliothèque machine. Ensuite, vous pouvez utiliser la méthode read_u16 pour lire la valeur de la tension électrique mesurée.

Voici un exemple de code qui montre comment utiliser l’ADC pour mesurer la tension électrique sur une broche ADC :

import machine
import utime

# initialisation de la broche ADC
adc = machine.ADC(28)

# mesure de la tension électrique
while True:
    voltage = adc.read_u16() * 3.3 / 65535
    print("Voltage: %.2fV" % voltage)
    utime.sleep(1)

En conclusion, la Raspberry Pi Pico est une carte de développement puissante qui dispose de nombreuses fonctionnalités intéressantes. En utilisant les interfaces de communication I2C, SPI et UART, ainsi que les fonctionnalités PWM et ADC, vous pouvez facilement connecter des périphériques électroniques, contrôler des signaux électriques et réaliser des projets intéressants et amusants.

You May Also Like

More From Author