Was sind Libraries?
In (Circuit)Python sind Libraries spezielle Sammlungen von Code, die es einfacher machen, bestimmte Funktionen in deinen Projekten zu verwenden, ohne dass du alles von Grund auf neu schreiben musst. Stell dir eine Library vor wie ein Werkzeugkasten, der spezielle Werkzeuge für spezielle Aufgaben enthält, wie das Steuern von Sensoren, LEDs, Displays und vieles mehr.
Warum braucht man Libraries?
Libraries sind sehr nützlich, weil sie es einfacher machen, komplexe Dinge zu tun. Zum Beispiel, wenn du einen Temperatursensor auslesen möchtest, kannst du einfach eine Library verwenden, die jemand anderes geschrieben hat, der sich gut mit diesem Sensor auskennt.
So musst du nicht verstehen, wie der Sensor auf tiefster Ebene funktioniert, sondern kannst einfach die Funktionen der Library nutzen, um die Temperatur zu bekommen.
Wie installiert man Libraries auf dem Raspberry Pi Pico?
Libraries herunterladen: Zuerst musst du die benötigten Libraries finden und herunterladen. Es gibt eine komplette Sammlung von den meisten Libraries direkt auf der Webseite von CircuitPython:
Lade die passende Datei herunter. Aktuell verwenden wir den Pico mit der Version 9 von CircuitPython: Bundle for Version 9.x
Entpacke die ZIP Datei (Doppel-Klicken...)
Auf den Raspberry Pi Pico kopieren:
Verbinde deinen Raspberry Pi Pico mit deinem Computer über ein USB-Kabel. Der Pico erscheint als Wechseldatenträger, ähnlich wie ein USB-Stick, meistens mit dem Namen CIRCUITPY.
Gehe zu dem Ordner, in dem du die Libraries entpackt hast.
Wähle die Library oder Libraries, die du brauchst, und kopiere sie in den
Library im Code verwenden:
Jetzt, wo die Library auf deinem Pico ist, kannst du sie in deinem Python-Skript verwenden. Dazu musst du die Library mit einem import-Befehl am Anfang deines Skripts einbinden. Zum Beispiel, wenn du eine Library namens adafruit_lsm6ds verwendest, würdest du import adafruit_lsm6ds am Anfang deines Codes schreiben.
Die LEDs auf der Platine hast du bisher auch über eine Library angesprochen:
Den Regenbogen-Effekt hast du aber als Unterfunktion eingebaut, und die war gar nicht so einfach:
Genau für sowas gibt es Libraries: wir nehmen jetzt die adafruit_led_animation-Library!
Kopiere den ganzen Ordner auf den Pico in den lib Ordner
Mehr Beispiele findest du hier:
liblibimport neopixeldef wheel(pos):
# Input a value 0 to 255 to get a color value.
# The colours are a transition r - g - b - back to r.
if pos < 0 or pos > 255:
r = g = b = 0
elif pos < 85:
r = int(pos * 3)
g = int(255 - pos * 3)
b = 0
elif pos < 170:
pos -= 85
r = int(255 - pos * 3)
g = 0
b = int(pos * 3)
else:
pos -= 170
r = 0
g = int(pos * 3)
b = int(255 - pos * 3)
return (r, g, b) if ORDER in (neopixel.RGB, neopixel.GRB) else (r, g, b, 0)
def rainbow_cycle(wait):
for j in range(255):
for i in range(num_pixels):
pixel_index = (i * 256 // num_pixels) + j
pixels[i] = wheel(pixel_index & 255)
pixels.show()
time.sleep(wait)import time
import board
import neopixel
from adafruit_led_animation.animation.rainbow import Rainbow
from adafruit_led_animation.animation.rainbowcomet import RainbowComet
# Wo ist das Datenkabel der NeoPixel angeschlossen? Hinten auf dem Pico stehen die Namen drauf.
pixel_pin = board.GP12
# Wieviele "Pixel" oder Lämpchen hat der Streifen?
num_pixels = 4
pixels = neopixel.NeoPixel(
pixel_pin, # Wo ist angesteckt
num_pixels, # Die Anzahl der Pixel von oben
brightness=0.2, # Wie hell - 1 = 100%. Ist super hell... 20% (0.2) reichen meistens...
auto_write=False, # Wenn man was ändert, also die Farben setzt, muss man immer noch ein pixels.show() ausführen, damit die Änderungen auch ausgeführt werden. Das ist wichtig, wenn man viele pixel auf einmal ändert, sonst dauert es länger...
)
rainbow_comet = RainbowComet(pixels, speed=0.1, tail_length=7, bounce=True)
while True:
rainbow_comet.animate()

Bevor es losgeht, stelle sicher, dass du die adafruit_lsm6ds und die adadruit_register Bibliothek auf Ihrem Raspberry Pi Pico installiert ist. Diese Bibliothek ermöglicht die einfache Kommunikation mit dem LSM6DS3-Sensor.
import time
import board
import busio
from adafruit_lsm6ds.lsm6ds3 import LSM6DS3
# Erstellen Sie eine I2C-Instanz
i2c = busio.I2C(scl=board.GP7, sda=board.GP6) # SCL an GP7, SDA an GP6
# Initialisieren Sie den Sensor
sensor = LSM6DS3(i2c)
while True:
# Beschleunigungsdaten lesen (x, y, z Achsen in m/s^2)
accel_x, accel_y, accel_z = sensor.acceleration
temp = sensor.temperature
print(f"Beschleunigung: X: {accel_x:.2f} m/s^2, Y: {accel_y:.2f} m/s^2, Z: {accel_z:.2f} m/s^2")
# Gyroskopdaten lesen (x, y, z Achsen in Grad pro Sekunde)
gyro_x, gyro_y, gyro_z = sensor.gyro
print(f"Gyroskop: X: {gyro_x:.2f} dps, Y: {gyro_y:.2f} dps, Z: {gyro_z:.2f} dps")
print(f"Temperatur: {temp:.2f} Grad Celsius")
# Eine kurze Pause zwischen den Messungen
time.sleep(1)