PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auswahl der richtigen Steuerung



Ben Reiley
21.09.2014, 20:26
Hallo RoboterNETZler,

normalerweise würde ich diese Frage erst stellen, nachdem ich mich selber ausgiebig mit dem Thema auseinander gesetzt habe. Leider fehlt mir im Moment die Zeit. Deswegen hoffe ich, ihr könnt mich gleich auf die richtige Fährte bringen.

Ich möchte einen automatischen Cocktailmixer bauen. Das Ganze soll in der Form eines Rondells aufgebaut werden, bei dem sich die Flaschen über das Glas drehen. Bediene lassen solch er sich über einen Touch.

Nun zu meinen Fragen:

Was für eine Platform eignet sich eurer Meinung nach am Besten für dieses Projekt? Dachte an ein Raspberry PI oder ein Beaglebone Black. Programmieren würde ich das Ganze gerne in C# in Visual Studio, da ich damit Erfahrung habe und denke, dass ich so relativ einfach eine ansehnliche Benutzeroberfläche schaffen kann. Habe wenig Erfahrung mit Linux. Ist das so umsetzbar?

Die Hauptaufgaben wären der Touch und das Steuern von 2 Schrittmotoren. Oder gibt es da vielleicht eine Bessere Arduino Lösung?

Ich selber bin Elektrotechniker und Studiere Automatisierungstechnik.

Vielen Dank im Voraus

redround
22.09.2014, 11:24
ein einfacher Arduino reicht dafür allemal aus. Einen RasPi halte ich da schon fast für oversized. Außerdem halte ich es bei Steuerungssystemen besser, wenn man ein Board ohne Betriebssystem einsetzt, da man dadurch bessere Kontrolle über die einzelnen Zeitabläufe hat. Nimm also eine UNO oder einen Mega mit passendem TFT-Shield und dazu noch ein paar Motortreiber für die Schrittmotoren (ggf. machen auch DC-Motoren Sinn). Denk auch an ein paar Sensoren (Glas vorhanden, ggf. Flasche leer, Referenz-Position etc.).

Peter(TOO)
22.09.2014, 11:50
Hallo,

Kommt jetzt darauf an, wie kompliziert die Bedienung werden soll.
Wenn da noch eine Rezeptdatenbank und animierte Menüs dazu kommen sollen, würde ich eine geteilte Lösung nehmen.

-Einen Arduino, welcher die ganze Maschinensteuerung übernimmt. Wie schon geschrieben wurde sind Echtzeitanwendungen ohne Betriebssystem wesentlich übersichtlicher zu programmieren.
Der Arduino arbeitet dann Befehle in der Form "Flasche 4, 10cl dosieren" ab.

- Einen Raspi, oder so, für das Touchdisplay und die Verwaltung der Rezepte. Das Ganze kannst du dann auch noch einfach mit dem Internet verbinden um z.B. automatisch neue Flaschen zu bestellen oder den Mixer über eine App zu steuern ;-)

MfG Peter(TOO)

White_Fox
22.09.2014, 12:15
Eine zweicontrollerige Lösung hätte ich auch vorgeschlagen.

Mit grafischen Anwendungen überforderst du einen Arduine sehr schnell und der Programmieraufwand wird auch nicht ganz ohne sein. Überlass die ganze Steuerung einem AVR (=Arduino).

Auf dem RP (oder anderen Rechner) läuft dann die Benutzerschnittstelle. Der ganze Klickibunti-Kram ist dann einfach zu programmieren und der RP diktiert dem AVR dann über UART Reihenfolge und Menge der Zutaten.

schorsch_76
22.09.2014, 12:25
Unter Linux kannst du höchstens Mono [1] nutzen. Inwieweit das auf einem Raspi bzw. Beaglebone läuft ... Ich wage es zu bezweifeln dass du damit an den I2C oder die GPIO's ohne Probleme rankommst, sollte Mono überhaupt auf Arm laufen....

[1] http://de.wikipedia.org/wiki/Mono-Projekt

Peter(TOO)
22.09.2014, 12:28
Hallo,

Eine zweicontrollerige Lösung hätte ich auch vorgeschlagen.
Wieso hast du nicht? :confused:

MfG Peter(TOO)

redround
22.09.2014, 12:38
Also ich arbeite zur Zeit an einer recht komplexen Steuerung auf Basis eines DigiX. Der ist vergleichbar mit einem Arduino DUE, hat aber mehr Pins. Hab ein 5" TFT direkt dran hängen und eigentlich keine Probleme damit. Touch und einfache Grafik-Ausgaben gehen ohne Probleme. Dafür würde ich mir jetzt nicht extra noch einen RasPi ans Bein binden wollen :-)

Richtig ist aber, dass gerade wenn animierte Grafik angezeigt werden soll (oder gar eine Video-Ausgabe über das TFT realsiert werden soll), das über einen Arduino schwer wird. Da hilft der RasPi dann aber auch nur begrenzt, da die Probleme meist dadurch verursacht werden, dass man ein TFT ohne eigenen (Grafik-) Controller verwendet und deshalb jedes Pixel einzeln übertragen werden muss. Das ist einfach ein imenser Datenberg, den man da zum Display schaufeln muss. Wenn man das mit erträglicher Bildwiederholrate schaffen will, ist aber auch der RasPi schnell am Ende! Wenn man sowas vor hat, dann lieber Geld für ein TFT mit Controller ausgeben! Wenn man nichts dergleichen plant, sondern einfache grafische Menüs reichen, dann schafft das auch der Arduino alleine. Mit den UTFT und UTouch Bibliotheken ist das dann auch recht einfach. Man sollte nur VOR der Beschaffung der TFT prüfen, ob die von den Bibliotheken auch unterstützt werden ;)

Rabenauge
22.09.2014, 13:37
Problem ist wirklich das Display.
Ansonsten packt ein Mega das alles locker-die Rezepte könnte man bequem auf ner SD-Karte ablegen, und dann nur einlesen.
Auch grafische Spielereien wie Bitmaps...

HannoHupmann
23.09.2014, 07:23
Keine Ahnung wie viele Rezepte ihr hinterlegen wollt, aber da die Anzahl der Flaschen begrenzt sein wird* braucht es keine SD Karte oder ähnliches.
Jeder Handelsübliche µC mit RS232 Schnittstelle reicht dafür locker aus!
Die Rezepte sind recht einfache Programme, da immer nur für eine bestimmte Zeit ein I/O Pin High und wieder Low geschaltet wird. Sind vielleicht 5-10 Operationen pro Rezept und Echtzeit braucht es dafür auch nicht. Höchstens einen Timer wenn man genau sein will, aber eigentlich reicht eine Sleep Funktion **. Sagen wir es werden 20 Rezepte als Unterprogramme, dann noch ein Hauptprogramm, welches über ne simple Switch Auswertung über die RS232 Schnittstelle die Auswahl des Users bekommt.

So kann man als UI alles nehmen was am Ende ne RS232 hat. Die Vorschläge oben finde ich persönlich fast alle viel zu komplex.

Alternativ könnte man auch einen Propeller Chip verwenden, der hat eine sehr leistungsfähige Grafikbibliothek und man so gut wie alle 80er und 90er Jahre Spiele darauf emulieren.



*) 3-4 Spirituosen, 2-3 Säfte und vielleicht noch Eis und Co aber nicht viel mehr.
**) Pin 1 (Vodka) HiGH --> Sleep 5ms = 5cl --> Pin 1 low, nächste Flasche.

Peter(TOO)
23.09.2014, 07:46
Hallo,

Du scheinst keinen Barmann zu kennen ;-)

4 Flaschen, 3 Säfte und Eis sind 255 mögliche Kombinationen.
Mit jeweils nur zwei Möglichen Mengen, sind es dann schon um die 4'000 Kombinationen, OK, wird nicht alles Trinkbar sein, aber schon eine Menge unterschiedlicher Drinks

MfG Peter(TOO)

Ben Reiley
23.09.2014, 11:17
WOW, vielen Dank für die vielen schnellen Antworten :Strahl

wie ich hier lese, geht es im allgemeinen in Richtung Arduino für die Steuerung des Motors und Auswertung der IOs. Mein erster Gedanke war es eine bereits fertige Schrittmotorsteuerung (z.B. Trinamic) zu nehmen und das Ganze dann vom PC aus zu steuern. Das ist dann mit sehr wenig Aufwand verbunden, da ich nur Befehle über (beispielsweise) RS232 zu senden habe (so habe ich bereits ein Projekt in meinem Nebenjob umgesetzt). Die grafische Umsetzung ist dann über VS auch kein Problem mehr. Das wäre ja dann eine Zwei-Controller-Lösung wie vorgeschlagen.
So eine Schrittmotor-Steuerung ist aber nicht ganz billig. Da wäre die Arduino Lösung schon wesentlich günstiger und Komfortabler, da ich damit noch mehr Möglichkeiten habe. Allerdings werde ich mit den vorhandenen Schields wohl nicht auskommen da diese den Motor, der wohl nötig wird um das Magazin zu drehen, nicht treiben können. Somit müsste mann sich doch was eigenes bauen. Das versuche ich aber (aus Zeitgründen) erstmal zu umgehen. Falls es da doch was passendes geben sollte, könnte ich ja dennoch die Bedienung über den PC realisieren. Das dann auf ein (z.B.) Raspberry PI zu heben ist dann über MONO möglich (wie von schorsch_76 geschrieben) allerdings weiß ich nicht wie es da mit der Performance aussieht...

Zur der Frage nach dem Umfang der Bedienung: Es sollte schon Möglich sein den Automat über das Display einzustellen, festzulegen welche Flachen auf welcher Position sind, welche Cocktails als Auswahl angeboten werden, parametrieren der Mengen der einzelnen Zutaten... . Denke, dass die Grafische Darstellung und Bedienerfreundlichkeit eine zemtrale Rolle bei dem Projekt spielen. Kann mir gerade nicht ganz vorstellen, wie ich so eine Grafische Ausgabe auf einem µC Programmiere. Oder gibt es da dann auch Tools, mit denen ich mir die Oberfläche am PC zurecht bauen kann?

@redround: Was wären denn TFTs mit Controllern? Wird dann die ganze Grafische Part direkt auf dem TFT-Controller gespielt und ich Kommuniziere über Software-IOs mit der Steuerung (wie Oftmals bei SPSen der Fall) oder wie muss ich mir das vorstellen?

Zur allgemeinen Info für alle, die dieses Projekt interessiert. Habe mir bereits Leute für die Konstruktion und Herstellung der Mechanischen teile ins Boot holen können :) . Hoffe, das wir übernächste Woche die Dimensionen des Schrittmotors ermitteln können.

Freue mich auf eure Antworten und Anregungen.

Geistesblitz
23.09.2014, 13:26
Also wenn du mit Arduino arbeitest, sollte gar kein PC mehr nötig sein. Als Grafische Oberfläche dürfte aber sowas wie ein Zeichendisplay (http://www.ebay.de/itm/2004-Character-LCD-Module-Display-Anzeigen-20X4-20-4-204-Zeichen-For-Arduino-NEU/121041735135?_trksid=p2047675.c100005.m1851&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%2 6asc%3D20140117130753%26meid%3Dd8872758ea684e74845 3805446ba7532%26pid%3D100005%26prg%3D2014011713075 3%26rk%3D4%26rkt%3D6%26sd%3D261553957826&rt=nc) völlig ausreichen. Displays mit dem recht üblichen HD44780 Controller lassen sich auch mit eigentlich allen Controllern leicht bedienen, da es dafür auch Bibliotheken gibt.

Schrittmotorsteuerungen gibt es auch eigentliche ine große Auswahl, lassen sich dann mit einem Controller recht leicht ansteuern. Die Steuerungen von Trinamic kenn ich, ist schon recht luxuriös, aber sowas braucht man eigentlich nicht zwingend. Wie Schrittmotorsteuerungen aufgebaut sind und wie man sie ansteuert dürfte es im Netz auch einige Infos geben, selbst hier im RN-Wissen sollte einiges dazu stehen.

Ben Reiley
23.09.2014, 19:03
@Geistesblitz: Es sollte schon mehr als ein einfaches Zeichendisplay sein. Wie gesagt ist mir die Bedienung und Visualisierung wichtig.

Habe jetzt mal ein wenig gestöbert (obwohl ich mich auf meine Klausuren vorbereiten sollten :( ) und dabei folgendes gefunden:
http://www.heise.de/hardware-hacks/artikel/Touch-Display-fuer-den-Pi-2197895.html
Die Größe des Touch sagt mir absolut zu und preislich ist es für mein Budget dann zusammen mit einen Raspberry PI noch im Rahmen. Stellt sich noch die Frage ob die Performance des
Paspberry das mit "MONO" und dem VS Projekt mit macht. Dazu habe ich auch schon etwas gefunden:
http://windowsdeveloper.de/artikel/raspberry-pi-dotnet-entwicklung-mono-166853?page=1
Ansonsten werde ich mich doch dran machen müssen die Oberfläche mit "Linuxmitteln" (von denen ich leider zur Zeit so gar keine Ahnung habe) zu Programmieren.