Zum Inhalt

Weitere Versuchsideen

Auf eurer Platine sind bereits einige snake Dateien, die ihr testen könnt, ansonsten sind hier noch ein paar weitere Beispiele. Viel Spaß!

Neopixel einzeln ansteuern

Auf deiner Platine sind rechts 4 LEDs. Diese kannst du einzeln ansteuern und ihnen unterschiedliche Farben geben. Damit kann man tolle Effekte umsetzen, zum Beispiel ein Lauflicht. Den Code dafür findest du unten. Mit dem Beispiel solltest du in der Lage sein, auch eigene Ideen umzusetzen.

from time import sleep
import board
import digitalio
import neopixel

# Definition der Eingängen
pixel_pin = board.GP22
num_pixels = 4

pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.1, auto_write=False)

RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)

while True:
    pixels[0] = RED     # hier setze ich die Farbe für die erste LED
    pixels[1] = YELLOW  # ... und die zweite
    pixels[2] = CYAN    # ... dritte
    pixels[3] = PURPLE  # ... und vierte
    pixels.show()       # Ohne diesen Befehl zeigen die LEDs nix an,
                        # den brauchen wir also immer wenn die Farben
                        # geändert wurden!
    sleep(0.6)
    pixels[0] = PURPLE
    pixels[1] = RED
    pixels[2] = YELLOW
    pixels[3] = CYAN
    pixels.show()
    sleep(0.6)
    pixels[0] = CYAN
    pixels[1] = PURPLE
    pixels[2] = RED
    pixels[3] = YELLOW
    pixels.show()
    sleep(0.6)
    pixels[0] = YELLOW
    pixels[1] = CYAN
    pixels[2] = PURPLE
    pixels[3] = RED
    pixels.show()
    sleep(0.6)

Der Beschleunigungssensor

Den Beschleunigungssensor LIS3DH findest Du in der Mitte der Projektplatine. Dieser Sensor kann die Beschleunigung, die er erfährt, messen. Ein einfaches Beispiel dafür ist die Erdbeschleunigung, die immer senkrecht nach unten wirkt. Diese Kraft kannst du mit dem Sensor detektieren. Unten findest Du ein einfaches Testprogramm für den Sensor. Er liest die Beschleunigung in drei Raumrichtungen aus. Die Richtung z zeigt dabei senkrecht nach unten durch die Platine. Wenn das Programm funktioniert, kannst du damit direkt die Erdbeschleunigung messen.

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT

import time
import board
import busio
import adafruit_lis3dh

i2c = busio.I2C(board.GP17, board.GP16)
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, address=0x19)


# Set range of accelerometer (can be RANGE_2_G, RANGE_4_G, RANGE_8_G or RANGE_16_G).
lis3dh.range = adafruit_lis3dh.RANGE_2_G

# Loop forever printing accelerometer values
while True:
    # Read accelerometer values (in m / s ^ 2).  Returns a 3-tuple of x, y,
    # z axis values.  Divide them by 9.806 to convert to Gs.
    x, y, z = [
        value / adafruit_lis3dh.STANDARD_GRAVITY for value in lis3dh.acceleration
    ]
    print("x = %0.3f G, y = %0.3f G, z = %0.3f G" % (x, y, z))
    # Small delay to keep things responsive but give time for interrupt processing.
    time.sleep(0.1)

Der piezoelektrische Lautsprecher

import board
import simpleio


# Define pin connected to piezo buzzer.
PIEZO_PIN = board.GP5

# Define a list of tones/music notes to play.
TONE_FREQ = [ 262,  # C4
              294,  # D4
              330,  # E4
              349,  # F4
              392,  # G4
              440,  # A4
              494 ] # B4


# Main loop will go through each tone in order up and down.
while True:
    # Play tones going from start to end of list.
    for i in range(len(TONE_FREQ)):
        simpleio.tone(PIEZO_PIN, TONE_FREQ[i], duration=0.5)
    # Then play tones going from end to start of list.
    for i in range(len(TONE_FREQ)-1, -1, -1):
        simpleio.tone(PIEZO_PIN, TONE_FREQ[i], duration=0.5)

Vielleicht kannst du ein Lied komponieren.🎵

Der Temperatur- und Luftfeuchtigkeitssensor

Hier kannst du mal schauen wie warm es ist und was für eine Luftfeuchtigkeit im Raum ist.

import board
import time

# Die nächsten zwei Bibliotheken brauchen wir um mit
# dem Sensor zu sprechen.
import busio
import adafruit_sht31d

# Über die Variable sensor wollen wir mit dem Sensor
# kommunizieren. Dazu sind zwei Befehle notwendig.
i2c = busio.I2C(scl=board.GP17, sda=board.GP16)
sensor = adafruit_sht31d.SHT31D(i2c)

# Super. Jetzt starten wir wieder eine Endlosschleife.
# In der Schleife können wir die Temperatur (temperature)
# und Luftfeuchtigkeit (relative_humidity) abrufen und
# ausgeben.
while True:
    print(sensor.temperature)
    print(sensor.relative_humidity)
    time.sleep(1.0)