friedhof:alphafluid
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
project:alphafluid [2012-04-05 18:04] – angelegt 93.231.142.134 | friedhof:alphafluid [2022-08-03 16:48] – [Geierauge - Bewegungsmelder] chris | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Alphafluid ====== | + | ====== Alphafluid |
{{tag> | {{tag> | ||
+ | **Der Neue Code auf dem mate automat ist unter alphapi bekannt.** | ||
+ | Unter dem Projektnamen Alphafluid (oder AlphaFluid) werden alle Modifikationen und Addons am Getränkeautomat des Space und die zugehörige Infrastruktur (Server, APIs) zusammengefasst. | ||
+ | ===== Features ===== | ||
+ | |||
+ | Auflistung der Funktionen des Gesamtprojekts, | ||
+ | |||
+ | * Zählt, wie viele Einheiten von welcher Sorte verkauft werden | ||
+ | * Erkennt, wenn ein Schacht leer ist | ||
+ | * Anzeigen des aktuellen Füllstands | ||
+ | * Twittern, wenn ein Produkt verkauft wird | ||
+ | * Twittern, wenn ein Schacht leer geworden ist. | ||
+ | * Anzeigen des neuesten Twitter-Mentions (@alphafluid) | ||
+ | * Anzeigen der aktuellen Füllstände im Display am Automat | ||
+ | * Abspielen eines zufälligen Sounds beim Ausgeben eines Produkts | ||
+ | * Leises Abspielen eines zufälligen Sounds in zufälligen Intervallen | ||
+ | |||
+ | |||
+ | ===== Hardware Addons ===== | ||
+ | |||
+ | Sämtliche Eagle-Files sind auf [[http:// | ||
+ | |||
+ | ==== Stats and Core ==== | ||
+ | {{ : | ||
+ | Der Kern des Projekts ist ein atMega32, der auf einer selbst geätzten Platine sitzt und mit dem Automaten und auch mit allen anderen verbauten Basteleien kommuniziert. Zusätzlich enthält das Board Optokoppler und Kondensatoren, | ||
+ | |||
+ | Der Core hat folgende Aufgaben: | ||
+ | |||
+ | * Abgreifen und Auswerten der Signale aus dem Zählwerk des Automaten | ||
+ | * Überwachen der " | ||
+ | * Überwachen des "Tür Offen" Schalters | ||
+ | * Ansteuern des 7Segment-Moduls | ||
+ | * Serielle Kommunikation mit der " | ||
+ | * UPCOMING: Kommunikation mit dem Peripheral Controller | ||
+ | |||
+ | ==== 7Segment-Anzeigemodul ==== | ||
+ | {{ : | ||
+ | Der Automat hatte von sich aus schon ein kleines Fensterchen mit rotem Glas, allerdings ohne Display dahinter. Das wollten wir ändern! | ||
+ | Hinter der Scheibe befindet sich jetzt eine Platine mit vier 7Segment-Anzeigen. Jede davon ist mit einem Schieberegister verbunden, diese sind miteinander verkettet so dass am Mikrocontroller lediglich vier Pins benötigt werden. Außerdem bleibt die Anzeige erhalten und muss nicht getaktet werden (Multiplexing), | ||
+ | |||
+ | ==== VIP1710 aka " | ||
+ | {{ : | ||
+ | Die VIP1710 ist eigentlich eine Linux basierte IPTV-Settop-Box, | ||
+ | |||
+ | Die Box lässt sich mit relativ geringem Aufwand dazu bewegen, ziemlich früh im Bootvorgang ein " | ||
+ | |||
+ | Leider ist die interne serielle Schnittstelle nicht beeinflussbar. Diese stellte mit 115200 Baud eine Shell zur Verfügung. Um eine Verbindung vom Mikrocontroller (Core) zum Server herzustellen muss der Mikrocontroller also die entsprechenden Befehle absetzen. | ||
+ | |||
+ | ==== ASM - Annoying Sound Module ==== | ||
+ | {{ : | ||
+ | Der Automat hat auch einen digitalen Audioverstärker (Class D) und vier Lautsprecher spendiert bekommen. Diese Liegen einfach unten vor dem Gitter im Automat. Der Verstärker ist direkt mit dem Cinch-Ausgang der VIP1710 verbunden. | ||
+ | |||
+ | ==== Geierauge - Bewegungsmelder ==== | ||
+ | |||
+ | [Quelle: reverse engineering 2022-08-03] | ||
+ | |||
+ | * Verbaut sind zwei Bewegungsmelder. | ||
+ | * Auf deren Platine finden sich die Angaben " | ||
+ | * Die Kontakte am (einzigen) Steckverbinder " | ||
+ | * Die Bewegungsmelder sind mit einer 10-adrigen, weißen Schaltleitung angeschlossen | ||
+ | * Diese Leitung führt hinten in den Automaten, unten links auf die Automatentüre und im Kanal hoch zu einer nicht serienmäßigen Zusatzplatine. | ||
+ | * Bewegungsmelder 1 ist folgendermaßen beschaltet: | ||
+ | * GND - schwarzer Draht | ||
+ | * OUT - brauner Draht | ||
+ | * +5V - grauer Draht | ||
+ | * zwischen GND und OUT liegt ein Widerstand 56k | ||
+ | * Bewegungsmelder 2 ist folgendermaßen beschaltet: | ||
+ | * GND - grün | ||
+ | * OUT - lila | ||
+ | * +5V - blau | ||
+ | * zwischen GND und OUT liegt ein Widerstand 56k | ||
+ | * Die Drähte gelb und rot sind ungenutzt | ||
+ | * Das Geierauge triggert die LED-Leisten an der Türe und oben auf dem Automaten (immer) sowie das ASM (nach dessen eigenem Ermessen). | ||
+ | |||
+ | |||
+ | ==== Refill Button Boards ==== | ||
+ | {{ : | ||
+ | Da das Auffüllen genau getrackt werden muss und man sich die genauen Zahlen immer merken/ | ||
+ | Die geplante Belegung der Taster (4 pro Schacht): | ||
+ | - VOLL | ||
+ | - +10 | ||
+ | - +1 | ||
+ | - -1 | ||
+ | |||
+ | Über die LEDs soll zusätzlich ein "Party Mode" realisiert werden, bei dem die LEDs einfach wilde Muster blinken. | ||
+ | |||
+ | ==== UPCOMING: Peripheral Controller ==== | ||
+ | |||
+ | Der Peripheral Controller wird per I2C an den Core angebunden und stellt diesem zusätzliche Peripherie, wie z.B. die Refill Button Boards oder externe Schalter, zur verfügung. | ||
+ | |||
+ | ===== Software ===== | ||
+ | |||
+ | Sämtlicher Code ist auf [[http:// | ||
+ | |||
+ | ==== Core ==== | ||
+ | |||
+ | Der atMega32 ist in C programmiert. Er fragt regelmäßig die Eingänge vom Automat ab und schiebt den gewünschten Text durch die Schieberegister der 7Segment-Anzeige. | ||
+ | Für die Kommunikation mit dem Server ist wegen der Shell auf der " | ||
+ | |||
+ | ==== Server ==== | ||
+ | |||
+ | Die Aufgabe des Servers, der auf den VServern im RZ des Shackspace betrieben wird, ist es, den Informationsfluss zwischen Automat, Twitter und [[friedhof: | ||
+ | Die Software ist komplett in Python geschrieben und im Moment noch under heavy development (Code sieht aus wie Sau). | ||
friedhof/alphafluid.txt · Zuletzt geändert: 2022-08-04 14:46 von chris