pixel
Seite wählen

Kleine Weihnachtspyramide mit Raspberry Pi

von | Dez 23, 2022 | Python

Noch einmal schlafen und dann ist Weihnachten. Passend dazu haben wir von NETWAYS ein kleines Experiment zum selber Nachbauen vorbereitet.

Es handelt sich um eine kleine Weihnachtspyramide, die sich mithilfe von Python Code und ein paar Bauteilen ein wenig bewegt und außerdem noch schön leuchtet. Fast wie ein kleiner Weihnachtsbaum für jeden IT-Begeisterten da draußen.

 

Das braucht Ihr

Bevor wir starten, benötigen wir ein paar Dinge. Zum einen brauchen wir einen Raspberry-Pi mit Raspberry-PI OS. Das Modell spielt hierbei keine Rolle. Außerdem werden drei farbige LEDs, ein Steckbrett, ein kleiner Servo-Motor, ein Taster, sowie zehn GPIO-Verbindungskabel benötigt.

 

Und so funktioniert’s

Wie Ihr das Ganze verbinden müsst, seht Ihr in der Abbildung unten:

Ganz wichtig: Ihr müsst in der Raspberry Pi Konfiguration unter Schnittstellen noch den GPIO-Fernzugriff erlauben!

Der Programmcode lässt die Pyramide nach links und rechts drehen und die LEDs leuchten.

„#!/usr/bin/python
import RPi.GPIO as GPIO
import time

LED = [[17, 22, 10],[10, 22, 17]]
x = 0
t1 = 8
servoPIN = 21

GPIO.setmode(GPIO.BCM)
GPIO.setup(t1, GPIO.IN, GPIO.PUD_DOWN)
GPIO.setup(servoPIN, GPIO.OUT)

pwm = 2.5
a = 2.5
p = GPIO.PWM(servoPIN, 50)
p.start(pwm)

for i in LED[0]:
GPIO.setup(i, GPIO.OUT)

try:
while True:
p.ChangeDutyCycle(pwm)
pwm += a
if pwm==12.5 or pwm==2.5:
a = -a
time.sleep(0.2)
p.ChangeDutyCycle(0)
for i in LED[x]:
GPIO.output(i, True)
time.sleep(0.2)
GPIO.output(i, False)
if GPIO.input(t1) == True:
x = 1-x

except KeyboardInterrupt:
p.stop()
GPIO.cleanup()“

 

Wie Ihr Eure Pyramide, die auf den Servomotor gesetzt wird, gestaltet, ist Euch selbst überlassen.

Wie das ganze aussehen könnte, seht Ihr hier:

Viel Spaß beim Ausprobieren und fröhliche Weihnachten!

Wenn Ihr wissen wollt, wie wir bei NETWAYS unsere Weihachtsfeier gefeiert haben, lest Euch doch unseren Blogpost zur Weihnachtsfeier durch.

Christoph Breit
Christoph Breit
Junior Consultant

Christoph ist seit Juli 2022 Teil der NETWAYS Professional Services Abteilung. Er absolvierte hier zunächst ein Praktikum und unterstützt sein Team ab September als auszubildender Fachinformatiker für Systemintegration. In seiner Freizeit bereist er gerne die Welt, ist als Basketballer sportlich unterwegs und sitzt auch mal gerne sowohl beim Zocken als auch beim Graphic- & Motion-Designen vorm PC.
Mehr Beiträge zum Thema Python

Ansible – Testing roles with Molecule

Ansible is a widely used and a powerful open-source configuration and deployment management tool. It can be used for simple repetitive daily tasks or complex application deployments, therefore Ansible is able to cover mostly any situation. If used in complex or...

Python – Generator

Wer schon einmal eine etwas größere Datei, bspw. 1Gb, mit dem Editor VIM geöffnet hat, der weis, wie lange dies dauern kann. Das kommt daher, dass diese Datei zunächst komplett in den Arbeitsspeicher geladen werden muss. So ähnlich verhält es sich, wenn in Python eine...

Ansible – How to create reusable tasks

Ansible is known for its simplicity, lightweight footprint and flexibility to configure nearly any device in your infrastructure. Therefore it's used in large scale environments shared between teams or departments. Often tasks could be used in multiple playbooks to...

Ansible – AWX|Tower State handling on Workflows

The Ansible Tower or its upstream AWX provides an easy to use GUI to handle Ansible tasks and schedules. Playbooks are configured as templates and as the name suggests, they can be modified to the needs, extended by variables, a survey or tags. Furthermore those...