lattepanda-sigma2-rp2350-micropython-i2c-8.ino

LattePanda Sigma 2 : Serveur monocarte Intel Core Ultra X7 358H · Fichier : lattepanda-sigma2-rp2350-micropython-i2c-8.ino · Langage : MicroPython · Usage : Lire un capteur de température I2C connecté aux GPIO gérés par le coprocesseur RP2350.

Configure le bus I2C du microcontrôleur RP2350 pour interroger un capteur environnemental externe.

Matériel : LattePanda Sigma 2 (coprocesseur RP2350), capteur I2C (ex: BME280) connecté aux GPIO. Logiciel : MicroPython flashé sur le RP2350. Le script initialise I2C0 sur les broches SDA/SCL du header. Vérifiez les adresses I2C de vos composants. Le code est exécuté sur le MCU, pas sur le CPU x86.

lattepanda-sigma2-rp2350-micropython-i2c-8.ino

from machine import Pin, I2C
import time

# Configuration I2C sur le RP2350 (GPIO dédiés sur l'en-tête 30+4)
# SDA = Pin 6, SCL = Pin 5 (Vérifier le schéma exact pour le header 30-pin)
i2c = I2C(0, scl=Pin(5), sda=Pin(6), freq=400000)

# Adresse I2C standard pour les capteurs TMP36/DS18B20 (I2C variant) ou BME280
SENSOR_ADDR = 0x76 # Exemple pour BME280

def read_temp():
    try:
        # Envoyer la commande de lecture brute
        # Note : Les registres dépendent du capteur spécifique (BME280 utilisé ici en exemple)
        raw_temp = i2c.read_mem(0xF8, SENSOR_ADDR, 0x07, 3) # Lecture 3 octets
        temp_raw = (raw_temp[0] << 12) | (raw_temp[1] << 4) | (raw_temp[2] >> 4)
        temp_c = temp_raw / 16.0
        return temp_c
    except Exception as e:
        return None

print("Initialisation du capteur I2C sur LattePanda Sigma 2...")

while True:
    temp = read_temp()
    if temp is not None:
        print(f"Température: {temp:.2f} C")
    else:
        print("Erreur de lecture capteur")
    time.sleep(1)

← Retour à la fiche