🛠 Maîtriser les E/S Avancées : GPIO, I2C et Affichage sur Xerxes Nano

Carte porteuse Xerxes Nano pour modules Jetson Orin Nano Super et Turing RK1 · avance · Apprenez à configurer les interfaces SPI, I2C et GPIO sur la carte Xerxes Nano pour interagir avec des capteurs externes et des affichages.

Objectifs

Ce tutoriel vise à configurer les interfaces de bas niveau (GPIO, I2C, SPI) sur la carte porteuse Xerxes Nano. Nous connecterons un capteur de température I2C et un petit affichage OLED pour valider la chaîne de données. Ces compétences sont essentielles pour les projets d'IoT industriel ou de robotique embarquée utilisant les modules NVIDIA Jetson Orin Nano Super ou Turing RK1.

Matériel nécessaire

Étapes

Connectez-vous à votre carte via SSH. Mettez à jour les paquets système pour garantir la compatibilité des bibliothèques. ``bash sudo apt update && sudo apt upgrade -y ``

  1. Accès au système et préparation

La Xerxes Nano expose des broches compatibles Jetson. Utilisez l'outil de configuration NVIDIA pour activer les bus. Notez que les broches spécifiques dépendent du module (Orin vs RK1), consultez le schéma KiCad open-source pour les correspondances exactes. ``bash sudo /opt/nvidia/jetson-io/jetson-io.py `` Sélectionnez "Configure 40-pin expansion header" puis activez I2C2 et SPI1 si disponibles sur votre configuration matérielle.

  1. Activation des interfaces I2C et SPI

Installez les bibliothèques nécessaires pour l'interaction GPIO et I2C via pip. ``bash sudo apt install python3-pip python3-dev pip3 install smbus2 adafruit-circuitpython-ssd1306 adafruit-circuitpython-bme680 ``

  1. Installation des bibliothèques Python

Vérifiez que le capteur et l'écran sont reconnus sur le bus I2C. Les adresses courantes sont 0x3C pour l'OLED et 0x77 pour le BME680. ``bash sudo i2cdetect -y -r 1 `` Vous devriez voir les adresses hexadécimales correspondantes affichées dans la grille.

  1. Détection des périphériques I2C

Créez un script Python sensor_display.py pour lire la température et l'afficher. ```python import board import busio import adafruit_ssd1306 import adafruit_bme680

  1. Script de lecture et affichage

# Initialisation I2C (bus 1 par défaut sur Jetson) i2c = busio.I2C(board.SCL, board.SDA)

# Initialisation Affichage display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c) display.fill(0) display.text('Xerxes Nano', 0, 0, 1) display.show()

# Initialisation Capteur bme = adafruit_bme680.Adafruit_BME680_I2C(i2c)

while True: temp = bme.temperature display.fill(0) display.text(f'Temp: {temp:.2f} C', 0, 0, 1) display.show() time.sleep(2) `` *(Note : Assurez-vous d'importer time` en haut du script)*.

Lancez le script avec les permissions nécessaires pour accéder aux périphériques. ``bash sudo python3 sensor_display.py ``

  1. Exécution du script

Vérification

L'écran OLED doit afficher la température ambiante mise à jour toutes les 2 secondes. Si rien ne s'affiche, vérifiez les connexions physiques (SCL/SDA) et les permissions d'accès aux fichiers /dev/i2c-1. Utilisez dmesg | tail pour vérifier les erreurs de noyau.

Pour aller plus loin

Explorez l'utilisation du connecteur OCuLink pour décharger le calcul IA sur un GPU externe, ou configurez le refroidissement actif via le connecteur PWM en fonction de la charge thermique détectée par le capteur.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels