Aus Raspberry Pi Geek 12/2018

Halloween-Gruselkabinett: Konstruktion und Aufbau (Seite 3)

Eine Ausnahme bildet hier die kleine Spinne: Mit ihrem 5/3-Ventil verharrt sie zunächst an ihrer Position. Die Pneumatikventile besitzen kleine Knöpfe, mit denen sie sich manuell auslösen lassen. Prüfen Sie zunächst, ob die Zylinder im ausgefahrenen Zustand nirgends anstoßen. Dabei stellen Sie auch gleich mit den Drosseln die Geschwindigkeiten der Zylinder passend ein.

Das Steuerprogramm

In diesem Projekt verwenden wir die Programmiersprache ST (Strukturierter Text). Im ersten Teil über das Pixtend V2 -L- finden Sie alle Grundlagen, die Sie benötigen, um das Programm in diesem Projekt zu verstehen. Listing 1 definiert alle Variablen und Funktionsbausteine. Der besseren Übersicht halber verwenden wir hier sehr kurze Namen.

Listing 1

 

VAR
  // init flag
  xInit     : BOOL;
  // Digital In
  RF_1      : BOOL;
  RF_2      : BOOL;
  RF_3      : BOOL;
  RF_4      : BOOL;
  RF_5      : BOOL;
  RF_6      : BOOL;
  // Digital Out
  GrGesp    : BOOL;
  KlGesp    : BOOL;
  GrSpi     : BOOL;
  KlSpiAuf  : BOOL;
  KlSpiAb   : BOOL;
  KuerAu    : BOOL;
  GrGespAu  : BOOL;
  GrSpiAu   : BOOL;
  // Relais Out
  Nebel     : BOOL;
  KlGespSo  : BOOL;
  GRGespSo  : BOOL;
  // Bausteine
  KlSpiFB1  : RS;
  KlSpiFB2  : TON;
  KlGespFB1 : RS;
  KlGespFB2 : TON;
  KlGespFB3 : TON;
  GrSpiFB1  : RS;
  GrSpiFB2  : TON;
  KuerFB1   : TON;
  GrGespFB1 : RS;
  GrGespFB2 : TON;
  GrGespFB3 : TON;
END_VAR

Listing 2 stellt das eigentliche Programm dar. Jede Gruselgestalt bekommt darin ein RS-Flipflop, um es zu aktivieren. Timer aktivieren nacheinander die Aktionen der einzelnen Elemente. Nach Ablauf des letzten Timers der Kette setzt das Programm das RS-Flipflop wieder zurück. Um Endschalter an den einzelnen Pneumatikzylindern zu sparen, arbeiten alle Bewegungen rein zeitgesteuert. Ein Youtube-Video [5] demonstriert den Ablauf des Aufbaus.

Das Beispielprogramm enthält nur sehr einfache Abläufe. Sie können bei Ihrem Projekt die Choreografie beliebig erweitern oder mehrere Effekte parallel starten. Um Tipparbeit zu sparen, finden Sie die Listings auch im zum Artikel gehörigen Download-Bereich.

Listing 2

 

IF NOT xInit THEN
  RPI_GPIO_OUT24 := TRUE;
  xInit := TRUE;
END_IF
// --- Kürbis
KuerFB1(PT:=T#400MS,IN:=NOT KuerFB1.Q);
KuerAu := KuerFB1.ET < KuerFB1.PT/2;
// --- Nebelgenerator
Nebel := RF_1;
// --- kleine Spinne
KlSpiFB1(SET:=RF_2 ,RESET1:=KlSpiFB2.Q);
KlSpiFB2(IN:=KlSpiFB1.Q1,PT:=T#3S);
KlSpiAuf:=KlSpiFB1.Q1;
KlSpiAb:=NOT(KlSpiFB1.Q1);
// --- kleines Gespenst
KlGespFB1(SET:=RF_3 ,RESET1:=KlGespFB3.Q);
KlGespFB2(IN:=KlGespFB1.Q1,PT:=T#3S);
KlGespFB3(IN:=KlGespFB2.Q,PT:=T#5S);
KlGespSo:=KlGespFB1.Q1;
KlGesp:=KlGespFB2.Q;
// --- große Spinne
GrSpiFB1(SET:=RF_4 ,RESET1:=GrSpiFB2.Q);
GrSpiFB2(IN:=GrSpiFB1.Q1,PT:=T#3S);
GrSpi:=GrSpiFB1.Q1;
GrSpiAu:=GrSpiFB1.Q1;
// --- kleines Gespenst
GrGespFB1(SET:=RF_5 ,RESET1:=GrGespFB3.Q);
GrGespFB2(IN:=GrGespFB1.Q1,PT:=T#3S);
GrGespFB3(IN:=GrGespFB2.Q,PT:=T#5S);
GrGespSo:=GrGespFB1.Q1;
GrGesp:=GrGespFB2.Q;
GrGespAu:=GrGespFB2.Q;

Fazit

Dieses Projekt vereint viele Bastlerdisziplinen. Über die Mechanik zum Bewegen der einzelnen Gruselgestalten muss man nachdenken: Hier darf man nicht außer Acht lassen, dass die Pneumatikzylinder trotz ihrer geringen Größe viel Kraft aufbringen. Um sie anzusteuern, braucht es schon etwas Erfahrung im Bereich E-Technik. Auch das Programmieren in ST ist für viele sicherlich etwas Neues. Alles in allem können Sie bei diesem Projekt also viele Erfahrungen sammeln. Obendrein macht es eine Menge Spaß, an Halloween für das nötige Gruseln zu sorgen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 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