Aus Raspberry Pi Geek 02/2020

Halloween 2019 – Erfolge und Rückschläge beim Elektronik-Basteln (Seite 3)

Arbeitet das Play-Kommando nicht wie erwartet, hilft es, eine externe Soundkarte an den RasPi anzuschließen und zu konfigurieren. Abbildung 3 zeigt die Augen und den Mund des Automaten. Falls Sie den Aufbau in Aktion sehen möchten, schauen Sie bei Youtube vorbei [5].

Abbildung 3: Die Augen und der Mund des Automaten.

Abbildung 3: Die Augen und der Mund des Automaten.

Listing 4

#!/usr/bin/env python
# coding=utf-8
from __future__ import print_function
# Import Pixtend class
from pixtendlib import Pixtend
import time
import sys
import threading
import os, platform
p = Pixtend()
# Open SPI bus for communication
try:
  p.open()
except IOError as io_err:
  # Print error text and delete PiXtend instance
  print("Error opening the SPI bus! Error is: ", io_err)
  p.close()
  p = None
def thread_sound():
  os.system("play gost.wav")
def thread_animation():
  os.system("sudo python ws.py")
# -----------------------------------------------------
# Main Program
# -----------------------------------------------------
if p is not None:
  print("Running Main Program - Hit Ctrl + C to exit")
  # Set some variables needed in the main loop
  is_config = False
  switch = True
  pressed = False
  while True:
    try:
      # Using Auto Mode for optimal SPI bus usage
      if p.auto_mode() == 0:
        if not is_config:
          is_config = True
          # Space for setup
        print (p.digital_input0,":",p.digital_input1)
        if p.digital_input2 == p.ON and pressed==False:
          pressed=True;
          x = threading.Thread(target=thread_sound)
          x.start()
          y = threading.Thread(target=thread_animation)
          y.start()
          if switch: p.digital_output0 = p.ON
          else : p.digital_output1 = p.ON
          switch=not(switch)
        if p.digital_output0 == p.ON and di0_old == 0 and  p.digital_input0 == p.ON:
          p.digital_output0 = p.OFF
          pressed=False
        if p.digital_output1 == p.ON and di1_old == 0 and  p.digital_input1 == p.ON:
          p.digital_output1 = p.OFF
          pressed=False
        di0_old = p.digital_input0
        di1_old = p.digital_input1
      else:
        print("Auto Mode - Communication is not yet up...Please wait...")
      # Wait at minimum 0.1sec or 100ms before getting new values
      time.sleep(0.1)
    except KeyboardInterrupt:
      # Keyboard interrupt caught, Ctrl + C, now clean up and leave program
      p.close()
      p = None
      break
else:
  # If there was an error when opening the SPI bus interface, leave the program.
  print("")
  print("There was a problem with the PiXtend communication. Quitting.")
  print("")

Fazit

So viel wie bei diesem Halloween-Projekt ist beim Autor noch nie schiefgegangen. Wenn Sie Freude an Pleiten, Pech und Pannen haben, werfen Sie einen Blick in den Kasten “Outtakes – was alles schiefging”.

Da die kleinen Besucher immer in Gruppen kamen, stellte sich schnell heraus, dass die Kapazität des Förderbands dem Ansturm nicht gewachsen war. Im Dunkeln neue Schokolade nachzulegen, bereitete erhebliche Probleme. Legen Sie dazu entweder eine Taschenlampe bereit oder – besser – bauen Sie Licht in den Automaten ein.

Trotz aller Pannen hatten aber sowohl die großen als auch die kleinen Besucher ihre Freude an dem Automaten. Einige waren so begeistert, dass sie im Laufe des Abends mehrmals vorbeikamen. Eine Handvoll technikaffine Kinder und Erwachsene ließen es sich sogar nicht nehmen, einen ausführlichen Blick ins Innere des Geräts zu werfen. Insgesamt hat der Halloween-Automat allen Beteiligten viel Spaß gemacht. Für nächstes Jahr ist daher bereits eine Version 2.0 in Planung. 

Outtakes – was alles schiefging

Schon in der Planungs- und Bauphase erwies sich der Halloween-Automat als harte Nuss. In der ersten Version sollten Bonbons aus einem Magazin fallen. Nach einigen Wochen des Herumprobierens verwarf der Autor diese Idee: Es erwies sich als unmöglich, die Anzahl der ausgegebenen Bonbons auch nur halbwegs zu steuern. Entweder kam gar keins heraus oder gleich eine ganze Ladung.

Die Anordnung der LED-Panels für Augen und Mund trieben den Autor fast in den Wahnsinn. Beim Bau des Automaten in der Garage verbrannte sich der Autor die Finger ordentlich mit dem Lötkolben, was ihm schon ewig nicht mehr passiert war. Gefühlt fielen während der Montage Hunderte Schrauben herunter und landeten zuverlässig immer in der unzugänglichsten Ecke der Garage.

Der erste Entwurf der Software war für ein PiXtend 1.3 entwickelt, im Automaten steckte aber zunächst ein PiXtend 2.0. Da es nicht möglich ist, einfach die SD-Karte von einen Modell in ein anderes zu stecken, musste der Autor in letzter Minute noch das PiXtend-Board auswechseln. Aus unerfindlichen Gründen gab es zudem Probleme mit dem Onboard-Sound des RasPi. Deshalb wurde er deaktiviert und eine externe Soundkarte verwendet.

Die WS2812-LEDs erhalten ihre Spannung über den 5-Volt-Ausgang des PiXtend. Das klappt gut, solange man die LEDs mit einer geringen Intensität betreibt. Dreht man diese aber hoch, um die Animation bei Sonnenlicht zu testen, passieren recht sonderbare Dinge mit den LEDs. Ursprünglich besaß der Automat sogar Arme zum Wedeln. Die erwiesen sich aber bei Tests als Gefahr für die Finger der Kinder, sodass sie in der finalen Version entfielen.

Schließlich traten auch beim Einsatz an Halloween noch einige Problemchen auf. Die Kamera des Autors machte in der Dunkelheit Probleme, sodass es keine Bilder des diesjährigen Halloween gibt. Zu allem Überfluss verursachte eine zur Unterstützung des Gruseleffekts aufgestellte Nebelmaschine schließlich einen haarigen Kurzschluss – das unrühmliche Ende des diesjährigen Halloween. Apropos haarig: Der Autor bekam während des Projekts auffällig viele graue Haare.

Infos

  1. Video der Förderbänder: https://youtu.be/3GgB42z9lZ8
  2. LED-Panel: https://www.aliexpress.com/item/32826934452.html
  3. Bibliothek für WS2812: https://github.com/jgarff/rpi_ws281x
  4. Download-Seite PiXtend: https://www.pixtend.de/downloads/
  5. Video von Augen und Mund: https://youtu.be/mvK4GS5FCJM
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben