Introduction: Süßigkeitenautomat - Candy Vending Machine

About: Studied journalism, engineering and philosophy of technology; co-founded the FabLab Cottbus e.V.; works at the Open Knowledge Foundation Germany e.V.

Dieser Automat spendet Süßigkeiten (oder andere Objekte), die die Form von Schokolinsen haben, auf sehr unständliche Weise. Das Ziel war es, einen interessanten Mechanismus zu bauen und unterschiedliche Methoden aus dem Making-Bereich anzuwenden. Das Material gelangt durch das Rütteln eines Tellers auf eine Waage, die die Ladung grammgenau abwiegt. Sobald das eingestellte Gewicht erreicht ist, wird der Rüttelmotor abgeschaltet und die Waage abgekippt.

Konfigurationsmöglichkeiten:

Das Gewicht kann über ein Menü eingestellt werden. Der Mechanismus wird über drei Modi gestartet, die ebenfalls über das Menü einstellbar sind: durch eine Zeitschaltuhr (Time - der Countdown ist einstellbar), durch ein externes Signal (Input - z.B. das Schließen eines Tasters) oder durch beide Optionen gleichzeitig.

Der Rütteltisch ist höhenverstellbar. Es können also unterschiedlich große Materialien für den Spender verwendet werden.

Das wird gebraucht (Kosten ± 70€)

Für das Gehäuse:

  • 30 cm * 40 cm * 14 cm Holzkiste
  • Holz (0,5 cm MDF & 0,9 cm * 0,9 cm Kantholzleiste)
  • Acryglas, durchsichtig (0,2 cm, für die Frontplatte und Schublade)
  • Metallreste (für den Rütteltisch)
  • DC-Motor (für den Rütteltisch)
  • Schrumpfschlauch (Durchmesser abhängig vom Motor des Rütteltisches)
  • Gewindestange (d = 0,5 cm, für die Aufhängung des Rütteltisches)
  • Muttern (passend für die Gewindestange)
  • Chinch Buchse, z.B.
  • DC Buchse, z.B.

Für die Schaltung:

Für die Waage:

Für den Buzzer:

  • Holz (0,3 cm)
  • 4 Taster, z.B.
  • Kabelreste
  • Kabel (z.B. ein altes Audiokabel)
  • Chinch Stecker, z.B.

Werkzeuge und Maschinen:

  • Lasercutter
  • 3D-Drucker
  • Lötkolben
  • Bohrmaschine
  • Handsäge
  • Sandpapier
  • Abisolierzange
  • Kneifzange
  • Forstner Bohrer
  • Weitere Holzbohrer
  • Diverse Schraubwerkzeuge

Step 1: Das Gehäuse Bauen

Das Innere des Automaten kommt in eine Holzbox aus dem Baumarkt. Für das Silo, den Rütteltisch und die Rutsche folgende Holzteile zurechtsägen und verleimen:

  • 2 * 11 cm * 14 cm = Silo
  • 1 * 10,5 cm * 14 cm = Rütteltisch
  • 1 * 11 cm * 26 cm = Rutsche

Der DC Motor wird in Richtung des Rutschen Anfangs montiert. Dabei ist darauf zu achten, dass er nicht zu weit vorne platziert wird, weil er sonst das Rutschgut zerstören kann. Die Unwucht wird mit einem Stück Schrumpfschlauch auf den DC Motor gesetzt. Der Rütteltisch selbst wird durch zwei Gewindestangen genau mittig montiert (dazu in die Oberseite zwei Löcher bohren: 15cm vom seitlichen Rand, 2 cm vom hinteren und ein weiteres 7 cm vom hinteren und ebenfalls 15 cm vom seitlichen Rand).

Um am Ende die Frontplatte einschieben und befestigen zu können, werden oben und auf beiden Seiten unten Holzleistenstücke verleimt. Zur Verschraubung der Frontplatte kommen jeweils Löcher auf beiden Seiten dazu.

Für die Armaturen und Buchsen müssen ein paar Löcher gebohrt werden. Abhängig davon, welche Schalter ihr verwendet, ist der Forstner Bohrer eine gute Methode. Einfach auf der rechten Seite zwei geeignete Orte suchen (nicht auf der Höhe, auf der die Schublade am Ende eingeschoben wird) und vorsichtig mit dem Forstner Bohrer zwei vertiefungen in das Holz bohren. Danach mittig ein kleineres Loch nachsetzen, in das die entsprechenden Armaturen passen.

Step 2: Die Waage Konstruieren

Die Waage besteht aus drei Teilen: Arm, Halterung (Base) und Teller. Über die Dateien teller.fcstd und Waage.skp könnt ihr die Teile bearbeiten (dafür benötigt ihr FreeCAD und SketchUp). Die anderen Dateien sind im stl Format und können z.B. mit Cura geöffnet und damit auf den 3D-Druck vorbereitet werden. Am Ende wird noch eine Achse benötigt, mit der der Arm und die Halterung verbunden wird. Dafür eignet sich z.B. eine alte Kugelschreibermine.

Nun noch den Servo an der vorbereitete Stelle montieren.

Am Ende wird die Waage dann auf einer Höhe von ca. 10,5 cm mit zwei Schrauben an der Rückwand des Automate befestigt (nicht tiefer, weil sonst der Servo die Schublade behindert).

Step 3: Die Schaltung Verlöten/Stecken

Es gibt ein paar wenige Lötarbeiten: Die Wägezelle muss mit dem AD Modul verbunden werden. Außerdem wird eine kleine Schaltung benötigt, um den DC Rüttelmotor sorgenfrei anzusteuern. Für beide Arbeiten folgt am besten den verlinkten Tutorials. Hinzu kommen ein paar Kabel, die mit dem Kippschalter und dem Encoder zu verbinden sind.

Über den Encoder oder auch Drehgeber gibt es hier viele Infos. Liegt er mit der Unterseite und den zwei Pins nach oben vor uns, ist die Pinbelegung folgendermaßen: oben (Pin links GND, Pin rechts A2 am Arduino) unten (Pin links A0 am Arduino, Pin rechts A1 am Arduino, Pin mitte GND).

Der Kippschalter unterbricht den + Pol von der DC Buchse zum Arduino Uno.

Der Vibrationsmotor kommt an Pin 12 des Arduino, die Chinch Buchse für den Buzzer an Pin 8, der Servo an Pin 9, das HX711 Modul an 5 (DOUT) und 4 (CLK), der Display an A4 und A5.

Von Pin 11 am Arduino wird noch ein Jumper Kabel auf den Reset Pin des Arduinos gesteckt.

Step 4: Firmware Anpassen Und Auf Den Arduino Übertragen

Zur Firmware: Damit ihr den Code nutzen könnt, müsst ihr folgende Libraries haben/laden:

  • Servo.h
  • HX711.h
  • LiquidCrystal_I2C.h
  • PciManager.h
  • Debouncer.h
  • Rotary.h

Bevor die angeschlossene Hardware ordnungsgemäß arbeiten kann, muss außerdem der Code noch an ein paar Kleinigkeiten angepasst werden: Nutzt den calibration Code, um eure Waage einzustellen sowie den i2c_Scanner Code, um die Adresse eures i2C Moduls herauszufinden. Beide Werte dann bitte in den cv-machine_code eintragen:

-252006 ist der calibration factor meines Aufbaus

#define calibration_factor  -7160.00   // scale calibration factor

0x27 ist die Adresse meines Moduls

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // sets LCD at pin A4 & A5 and I2C adress

Am Ende einfach den cv-machine_code via Arduino IDE übertragen.

Ihr werdet im Code keine Loop Funktion finden, da ich für die Programmierung des Automaten eine Timer Library genutzt habe, in der diese versteckt ist. Das habe ich gemacht, weil nur mit Timing Events ein etwas aufwändigerer Prozess wie dieser zuverlässig funktioniert. Auf delays sollte verzichtet werden, weil sie den Mikrocontroller blockieren.

Step 5: Schublade Und Buzzer

Details folgen