Aufzugprojekt

In der Schule kann es hinsichtlich der Benotung zu Problemen kommen, wenn alle Schüler individuell arbeiten. Aus diesem Grund entwickeln wir  umfangreiche Projekte, die grundlegend vor-konfektioniert sind, aber dennoch Raum für kreatives programmieren lassen.

Arduino Aufzug-Projekt für Arduino-Kurse in Schulen

Mit diesem vorgefertigtem Arduino-Projekt können Schüler ein realitätsnahes Aufzug-Modell konstruieren und programmieren. Für die Verwendung des Projekts können die Materialien aus den Funduino Lernsets verwendet werden, die Schüler arbeiten also mit ihnen bekannten Materialien. Das Modul lässt sich variabel erweitern, um ein höheres Anspruchsniveau im Unterricht anbieten zu können.

Vorteil für Lehrende

– Individuelle Aufgabenstellungen

– Bessere Vergleichbarkeit bei der Notengebung

– Kreative Lösungsmöglichkeiten

– Nutzung der Materialien, die die Schüler mit den Lernsets kennengelernt haben

– Nachhaltige Verwendungsmöglichkeit aufgrund robuster Materialien. Einzelteile stellen wir im Bedarfsfall gerne erneut zur Verfügung. Farbwünsche können telefonisch entgegengenommen werden.

 

Mittlerweile gibt es den Aufzug in einer zweiten Version. Er besteht nun vollständig aus Aluminiumprofilen und wird dadurch stabiler, langlebiger und dadurch insbesondere für Schulen nachhaltiger, da viele Jahrgänge mit dem Material arbeiten können.

Aufbau des Aufzugs

Der Aufbau des Aufzugs geht schnell und einfach. Viele Montageschritte erklären sich von selbst. Dennoch folgt an dieser Stelle eine sehr detaillierte Aufbauanleitung, damit auch Schüler in der Lage sind, den Aufbau selbstständig vorzunehmen.

1. Alle Bauteile sichten und sortieren

 

Rahmen vorbereiten

Zwei kleine Winkelverbinder am 10cm langen Aluminiumprofil befestigen. Das Profil hat in der Mitte ein Bohrung, durch durch die später das Aufzugseil geführt wird.. Man muss darauf achten, dass die kleinen Madenschrauben der Winkelverbinder von außen angezogen werden können. Dazu müssen die Schrauben ggf. herausgedreht und von der anderen Seite hineingedreht werden.

Das 10cm lange Aluminiumprofil hat in der Mitte ein Loch. Hier wird später das Aufzugseil hindurchgeführt.

Detailansicht:

Detailansicht:

Die großen Winkelverbinder mit Schrauben, Unterlegscheiben und Profilsteinen vorbereiten.

Das zweite 10cm lange Aluminiumprofil (ohne Loch) wird mit Winkelverbindern vorbereitet. Man muss darauf achten, dass die kleinen Madenschrauben von außen angezogen werden können. Dazu müssen die Schrauben ggf. herausgedreht und von der anderen Seite hineingedreht werden.

Das 10cm lange Profilstück ohne Bohrung wird am Ende der 30cm langen Profile befestigt.

Das Aufzuggehäuse (schwarz) wird auf der anderen Seite bündig an die 30cm langen Aluminiumprofile angelegt. Das 6cm Kurze Aluminiumprofil wird probeweise zwischen die 30cm langen Profile gelegt, um die spätere Position zu ermitteln. Es liegt dabei bündig am Aufzuggehäuse.

 

Das 6cm lange Profilstück wird mit zwei großen Winkelverbindern bestückt.

Im Anschluss wird das 6cm lange Profilstück zwischen den 30cm langen Aluminiumprofilen befestigt.

Zwei weitere große Winkelverbinder werden oben auf den 30cm langen Aluminiumprofilen befestigt. Hier wird später der 50cm hohe Rahmen montiert.

 

Motor und Sensoren montieren

Der Schrittmotor wird mit Schrauben und Nutsteinen versehen

Die Halter für die Lichtschranken werden mit Schrauben und Nutsteinen versehen.

Im Anschluss werden die Halterungen für die Lichtschranken am 50cm hohen Rahmen montiert und anschließend auf der Basis mit den 30cm langen Aluminiumprofilen befestigt. Im Idealfall sollten die Lichtschranken vorab in den Halterungen eingeclipst werden.

 

In diesem Bild sind die Sensoren eingebaut.

Der Motor wird oben am Rahmen montiert.

Die Seilrolle muss dabei so positioniert werden, dass das Seil möglichst mittig durch das Loch geführt werden kann.

 

Das Kabel vom Schrittmotor wird durch die Kabelführung der obersten Lichtschrankenhalterung geführt. Das Kabel wird nun mit Hilfe von Breadboardkabeln (100cm) verlängert. Wenn die Kabel nicht fest genug sitzen, kann man die Kabel mit einem Pünktchen Heißkleber fixieren.

Unten werden die Kabel in gleicher Reihenfolge (Kabelfarben im Foto beachten) in den Schrittmotortreiber eingesteckt. Auch hier kann ein Pünktchen Heißkleber sinnvoll sein.

Nun wird die Aufzuggondel zwischen den Rahmen gesetzt. Dazu müssen die Schrauben der Winkelverbinder gelöst werden. Vor dem befestigen wird der Rahmen so auf der Basis platziert, dass die Aufzuggondel vorne bündig an der Basis anliegt und hinten am 6cm Aluminiumprofil noch ca. 3-5mm Platz hat.

 

Das Aufzugseil wird oben durch ein kleines Loch in die Rolle gesteckt und mit einem Knoten am Ende des Seils gegen herausrutschen gesichert.

Das Seil wird von oben durch das Loch im Aluminiumprofil geführt.

Unten wird das Seil an der Aufzuggondel befestigt.

Bei bedarf kann in der Basis noch eine Bodenplatte eingesetzt werden. Das bietet sich an, wenn hier ein Breadboard für die Verkabelung angebracht werden soll.

In diesem Bereich sollte auch der Schrittmotortreiber seinen Platz finden.

Nach dem Aufbau kann mit der Programmierung begonnen werden.

 

Aufgabenstellungen

Viele Aufgabenstellungen lassen sich mit den Materialien aus den Funduino-Lernsets umsetzen. Für umfangreichere Projekte können zusätzliche Materialien verwendet werden, um bspw. per MP3 Modul die Etage ansagen zu lassen.

Anfangen zu programmieren

Um den Aufzug programmieren zu können wird Grundwissen im Bereich der Arduino-Programmierung benötigt. 

Man sollte daher zunächst die Module Schrittmotor, Lichtschranke und Display separat programmieren und den Umgang mit den Modulen üben. Dazu findet man auf Funduino.de genügend passende Anleitungen.

Wenn es dennoch hakt, können Sie uns gerne eine Mail schicken.

 

Aufgaben mit Standartmaterialien

1) Material: Arduino, Kabel, Schrittmotor

– Zwei Etagen im widerholten Rhythmus anfahren. Beispiel eines Baustellenaufzugs. Es muss lediglich der Schrittmotor programmiert werden.

2) Material: Arduino, Kabel, Schrittmotor, LCD-Display

– Zwei Etagen im widerholten Rhytmus anfahren. Die Aktuelle Etage wird im LCD angezeigt.

3)Material: Arduino, Kabel, Schrittmotor, Piezo-Piepser

-Die erreichte Etage wird mit einem Piezo-Speaker akustisch ausgegeben (3x piepsen = 3. Etage)

4) Material: Arduino, Kabel, Schrittmotor, 2x Taster

– Zwei Etagen werden je nach Tastendruck der jeweiligen Etage angefahren. Es müssen lediglich der Schrittmotor und zwei Taster programmiert werden.

5) Material: Arduino, Kabel, Schrittmotor, 2x Taster, LCD-Display

– Zwei Etagen werden je nach Tastendruck der jeweiligen Etage angefahren. Die Nummer der jeweiligen Etage wird im Display angezeigt.

Aufgaben mit Erweiterungsmaterialien

– Der Aufzug stoppt in Abhängigkeit eines Lichtschrankensignals

– Die Etage wird auf einem zweiten Display (in der Gondel) angezeigt (LCD oder OLED Display).

– Die Etage wird mit einem mp3 Modul und einem kleinen Lautsprecher akustisch ausgegeben.

Es gibt viele weitere Möglichkeiten den Aufzug zu individualisieren

Ein Beispielcode mit folgendem Material könnte so aussehen (geprüft):

  • 4x Lichtschranke (eine pro Etage)
  • 4x Taster (einer pro Etage)
  • OLED Display (128×64)
#include <Stepper.h> // Hinzufügen der Programmbibliothek.
int SPU = 2048; // Schritte pro Umdrehung.
Stepper Motor(SPU, 11,9,10,8); // Der Schrittmotor erhält die Bezeichnung "Motor" und es wird angegeben an welchen Pins der Motor angeschlossen ist.
int T1=22, T2=2, T3=3, T4=4, S1=17, S2=16, S3=15, S4=14;// Pins für Taster und Sensoren festlegen
int  sT1=0, sT2=0, sT3=0, sT4=0, sS1=0, sS2=0, sS3=0, sS4=0;//Statusvariablen für Taster und Sensoren festlegen
int EtageSoll=0, EtageIst=0;// Eingabespeicher für Taster und Sensoren festlegen
int F=0; // Variable für den Fahrmodus oder Pausemodus
int EtageAlt=0;
int EtageSollAlt=0;
//OLED initialisieren
#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
SSD1306AsciiWire oled;

void setup() //Hier beginnt das Setup.
{
Serial.begin(9600);
Motor.setSpeed(6); // Angabe der Geschwindigkeit in Umdrehungen pro Minute.
pinMode (T1, INPUT);
pinMode (T2, INPUT);
pinMode (T3, INPUT);
pinMode (T4, INPUT);
pinMode (S1, INPUT);
pinMode (S2, INPUT);
pinMode (S3, INPUT);
pinMode (S4, INPUT);
//OLED Setup
Wire.begin();
Wire.setClock(400000L);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
  oled.setFont(Verdana12); // Auswahl der Schriftart
  oled.clear(); //Löschen der aktuellen Displayanzeige
  oled.println("TESTFAHRT"); //Text in der ersten Zeile. "Println" sorgt dabei für einen Zeilensprung.
  oled.println("Aufzug faehrt"); // Text in der zweiten Zeile. "Println" sorgt dabei für einen Zeilensprung.
  oled.print("zum Startpunkt"); // Text in der dritten Zeile. 
  delay (2000);
// Aufzug in Ausgangsposition fahren
 for (int i = 0; i <= 1; i++)
{
Motor.step(-1);
sS1 = digitalRead(S1);
if (sS1!=1) i=0;
 Serial.println(sS1);
}
EtageIst=0;
EtageSoll=0;
delay(1000);
Serial.println("Setup beendet");
oled.clear();
oled.println("Betriebsbereit");
oled.print("Etage:   ");
oled.println(EtageIst);
oled.print("Ziel:        ");
oled.print(EtageSoll);
}


void loop()
{
// Eingabe
Serial.print("Warte auf Etagenauswahl ");
sT1 = digitalRead(T1); if (sT1==1) EtageSoll=0;
sT2 = digitalRead(T2); if (sT2==1) EtageSoll=1;
sT3 = digitalRead(T3); if (sT3==1) EtageSoll=2;
sT4 = digitalRead(T4); if (sT4==1) EtageSoll=3;
// Vor dem auslesen der neuen Position wird die alte Position gespeichert umd Änderungen detektieren zu können
//Auslesen der aktuellen Aufzugposition
sS1 = digitalRead(S1); if (sS1==1) EtageIst=0;
sS2 = digitalRead(S2); if (sS2==1) EtageIst=1;
sS3 = digitalRead(S3); if (sS3==1) EtageIst=2;
sS4 = digitalRead(S4); if (sS4==1) EtageIst=3;
Serial.print(sT1);
Serial.print(EtageSoll);
Serial.println(EtageIst);
//Fahrmodus
 if (EtageSoll-EtageIst >0) Motor.step(8); // Wenn der Wert über 0 ist (Etage ist höher als Aufzugsposition), dann fahre hoch.
 if (EtageSoll-EtageIst <0) Motor.step(-8); // Wenn der Wert unter 0 ist (Etage ist tiefer als Aufzugsposition), dann fahre runter.
//Display Ansteuerung
   if (EtageAlt!=EtageIst || EtageSoll!=EtageSollAlt) // Wenn der Aufzug fährt und zwischenzeitlich andere Etagen erreicht, ODER wenn die Etagenwahl geändert wurde, wird das Display aktualisiert mit den neuen Werten
   {
    oled.clear();
    oled.println("Betriebsbereit");
    oled.print("Etage:   ");
    oled.println(EtageIst);
    oled.print("Ziel:        ");
    oled.print(EtageSoll);
   } 
EtageAlt=EtageIst;
EtageSollAlt=EtageSoll;
 }

 

Bilder des Aufzugs in der älteren Version V1.0