I2C-Kommunikation
[!IMPORTANT] Diese Seite richtet sich an die Seeed
reComputer J401Trägerplatine-Familie, wie z.B.reComputer J4012. Die I2C-Bus-Nummerierung, Header-Zuordnung und angeschlossenes Zubehör können auf anderen Jetson-Trägerplatinen unterschiedlich sein.
Einführung
I2C ist ein Zwei-Draht-Kommunikationsbus, der SCL und SDA für Taktsignal und Daten verwendet. Es wird weit verbreitet für Displays, Sensoren, EEPROMs und andere Peripheriegeräte mit niedriger Geschwindigkeit eingesetzt.
Hardware-Anforderungen
- J401-basiertes Jetson-Gerät
- Grove OLED-Display
- Kompatibles Adapterboard oder Shield
- Grove-Kabel
Hardware-Verbindung
Verbinden Sie das Zubehör mit dem 40-Pin-Header oder dem entsprechenden Adapterboard wie unten gezeigt.

Abhängigkeiten installieren
sudo apt update
sudo apt install python3-pil python3-dev fonts-noto-cjk
pip3 install luma.oled
Den I2C-Bus scannen
Verwenden Sie i2cdetect, um zu bestätigen, dass das Peripheriegerät auf dem Bus sichtbar ist:
sudo i2cdetect -y -r 7
Wenn das Display erfolgreich erkannt wird, sollten Sie seine Geräteadresse im Scan-Ergebnis sehen, wie z.B. 0x3c.
Beispiel-Testskript
Erstellen Sie ein Skript:
nano test_i2c.pyFügen Sie das folgende Beispiel ein:
import time
from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
from PIL import Image, ImageDraw, ImageFont
I2C_BUS = 7
I2C_ADDR = 0x3C
serial = i2c(port=I2C_BUS, address=I2C_ADDR)
device = ssd1306(serial)
device.clear()
FONT_PATH = "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc"
font = ImageFont.truetype(FONT_PATH, 16)
text = "Jetson I2C test scrolling text "
bbox = font.getbbox(text)
text_width = bbox[2] - bbox[0]
text_height = bbox[3] - bbox[1]
scroll_pos = device.width
while True:
img = Image.new("1", (device.width, device.height))
draw = ImageDraw.Draw(img)
draw.text((scroll_pos, (device.height - text_height) // 2), text, font=font, fill=255)
device.display(img)
scroll_pos -= 2
if scroll_pos + text_width < 0:
scroll_pos = device.width
time.sleep(0.05)Führen Sie das Skript aus:
python3 test_i2c.py