Hallo, kurz vorab, ich bin absoluter Neueinsteiger auf diesem Gebiet und lese mich erst solangsam in die Materie ein. Darauf gestoßen bin ich, da ich im Rahmen des Maschinenbaustudium eine Projektarbeit (frei wählbar) machen muss. Eine Idee war zum Beispiel ein Cocktailmixer. Die ganz grobe Grundidee war folgende: Mixer besteht aus mehreren Getränketanks (Säfte, Sirup, Alkohol,...). Der Auslass wird z.B. jeweils über ein Magnetventil gesteuert. Das ganze wird dann noch durch eine Art Mixstab gemischt. Mein Problem ist die Steuerung der Ventile, Servos, Motoren. Die Steuerung soll über einen Computer stattfinden. Ich hätte am Schluss gerne eine Benutzeroberfläche zur Verfügung, die ich mit Buttons belegen kann, bei deren Betätigung dann das jeweile Unterprogramm für den jeweiligen Cocktail abläuft. Die Unterprogramme an sich sollen recht einfach gehalten sein. Sprich eigentlich müssen sie nur die Öffnungszeiten der Ventile und evtl den Mixer steuern. Die nächste Ausbaustufe wäre die Öffnungs der Ventile nicht durch die Zeit zu steuern, sondern mit einem Durchflussmengenmesser zu koppelen. Das ist jetzt Anfangs aber noch egal. Die Fehler bei der Dosiermenge der Ventile ist dabei nicht so sehr wichtig, solang sich das ganze in einem Vernünftigen Rahmen hält. Bis jetzt habe ich gelesen, dass das Ganze z.B. mit einem mySmartUSB Programmer und ATmega Controllern realisierbar wäre und das ganze mit Bascom geschrieben wird. Problem dabei ist, dass ich davon bis jetzt echt noch keine Ahnung habe. Ich hab Grundkenntnisse was die Programmierung mit VBA angeht, aber nicht mit anderen Programmen gearbeitet. Mit E-technik kenne ich mich auch nicht aus. Fragen: Ist das Ganze so wie ich es mir vorstelle für einen Anfänger realisierbar? Wie würdet ihr das ganze Ansteuern? Die Benutzeroberfläche wäre wichtig, ist das so realisierbar? Mit welchen Bauteilen würdet ihr arbeiten? usw... Vielen Dank schonmal für die Antworten LG Johannes
>Mit E-technik kenne ich mich >auch nicht aus. > >Fragen: >Ist das Ganze so wie ich es mir vorstelle für einen Anfänger >realisierbar? >Wie würdet ihr das ganze Ansteuern? >Die Benutzeroberfläche wäre wichtig, ist das so realisierbar? >Mit welchen Bauteilen würdet ihr arbeiten Reichen dir deine eigenen Fragen nicht um abzuschätzen ob du das kannst? Ich seh da nur: Kann ich nicht. Kann ich nicht. Kann ich nicht. Kann ich nicht. Kann ich nicht. Zu viele Baustellen für einen Anfänger.
Für einen Anfänger realisierbar? Kommt darauf an, wieviel Zeit und Geld du übrig hast. Du studierst also Maschinenbau. So, wie das hier für mich klingt, scheint das Projekt für dich aber zu 90% fachfremd zu sein, oder? Zumindest Etechnik sollte man im Maschbau Studium doch gehabt haben, oder? Ohne irgend eine Ahnung von Microcontrollern, Programmieren oder Etechnik, sieht das gar nicht so gut für dich aus. Im Hobbybereich wär das so ein Projekt, das jemand anfängt und dann irgendwann liegen lässt, weil er nicht weiterkommt. Vielleicht magst du dir lieber etwas suchen, bei dem du vorher nicht nachfragen musst, ob das so machbar ist, sondern bei dem du mit deinem Fachwissen auch konkrete Fragen stellen kannst.
Ja, soweit hast du da schon recht. Aber ich habe damit auch noch über ein halbes Jahr Zeit und könnte mich Stück für Stück voran arbeiten. Wenn ich das schon alles wüsste, hätte ich ja nicht Fragen müssen;-)
>Ja, soweit hast du da schon recht. Aber ich habe damit auch noch über >ein halbes Jahr Zeit und könnte mich Stück für Stück voran arbeiten. Ein halbes Jahr ist NICHTS für den ganzen Kram den du da lernen müsstest. Such dir was kleineres für deine Projektarbeit. Selbstüberschätzung nennt man die Krankheit an der du leidest.
Johannes A. schrieb: > Fragen: > Ist das Ganze so wie ich es mir vorstelle für einen Anfänger > realisierbar? Ja sobald du kein Anfänger mehr bist > Wie würdet ihr das ganze Ansteuern? mit einem ATMEGA und USB > Die Benutzeroberfläche wäre wichtig, ist das so realisierbar? Ja. Arbeite dich in vb.bet ein > Mit welchen Bauteilen würdet ihr arbeiten? > usw... Du musst bevor du groß irgendwas anderes anfängst dich in Mikrocontroller einarbeiten. Also zuerst mal machst du das hier: https://www.mikrocontroller.net/articles/AVR-Tutorial Dann hast du verstanden wie Mikrocontroller funktionieren Dann lernst du C mit diesem Tutorial: https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial So jetzt hast du die Basics zum Thema Mikrocontroller. Jetzt hast du auch das Wissen wie man die Ventile ansteuert und die Schnittstellen benutzt. Parallel dazu kannst du dich in vb.net einarbeiten. http://openbook.galileocomputing.de/vb_net/ Das ist ein kostenloeses Onlinebuch. Sehr gut geschrieben. Damit gelingt es ziemlich leicht Benutzeroberflächen zu machen. Das dürfte ungefähr ein Halbjahresprogramm sein. Wenn du nur der Anwender sein willst, dann schau dir Arduino an, das ersetzt die ganze Sache mit dem ATMEGA und Mikrocontrollerspaß. Ist deutlich einfacher zu lernen - bietet aber für dich eine ausreichende Funktionalität: http://de.wikipedia.org/wiki/Arduino-Plattform
Johannes A. schrieb: > Ja, soweit hast du da schon recht. Aber ich habe damit auch noch über > ein halbes Jahr Zeit und könnte mich Stück für Stück voran arbeiten. Das halbe Jahr würde reichen, wenn du von den ganzen Sachen Ahnung hättest. Du musst dich ja nicht nur irgendwie einarbeiten, und dann klappt alles. Vermutlich wird jede Menge schief gehen und du wirst über Probleme an Stellen stolpern, wo du niemals welche vermutet hättest. Solche Fehler auszuräumen kostet richtig dick Zeit. Ich arbeite gerade an meiner Bachelorarbeit. Da beschäftige ich mich größtenteils mit Sachen, mit denen ich mich vorher schon halbwegs ausgekannt habe oder zumindest eine leise Ahnung hatte, wodrum es da geht. Und selbst dabei tauchen genug Probleme auf, mit denen ich vorher nicht gerechnet hatte. Das Projekt ist sicherlich interessant. Grundsätzlich ist das eine machbare Sache. Ich wills dir nicht kaputtreden. Aber überleg dir wirklich genau, ob das für dich realistisch zu bewältigen ist.
So, ich habe mich trotzdem mal an die Sache herangewagt, allerdings Bascom gewählt, da ich mit Hochsprachen schon zumindest etwas Erfahrung hab. Ich habe jetzt zum Testen anstatt der Magnetventile Led's genommen und anstatt der Benutzeroberfläche ein LCD gewählt. Wusste nicht dass die ausgabe darauf mit Bascom so simpel ist. Die Led's habe ich mit jeweils einem Transistor (NPN 2N 2222) angesteuert wie im folgenden Link: http://halvar.at/elektronik/kleiner_bascom_avr_kurs/last_anschliessen/ Das Ganze habe ich auch mit einem Gleichstrommotor versucht. Diesen wollte ich vorerst nur an/aus schalten. Das hat aber nicht funktioniert. Wie muss ich denn in dem Fall die Schaltung aufbauen? Welche Bauteile benötige ich? Habe mich auch mal an der Servosteuerung versucht, da ich den Controller allerdings im moment wohl nur auf 1Mhz betreiben kann, da mein Board keinen 8Mhz Quarzoszillator besitzt, funktioniert die Bascom Routine nur sehr unzufriedenstellend - das ganze ruckelt wie verrückt. Habe das ganze dann wie im Quellcode zu sehen ist gelöst, funktioniert soweit auch ganz gut. Jetzt gibt es noch die Möglichkeit das ganze über Timer zu programmieren, gibt es dabei Vorteile? Ist das evtl. genauer? So nun zu den Hauptbestandteilen, die Magnetventile. Dazu habe ich mir schonmal folgenen Thread durchgelesen: Beitrag "Magnetventil ansteuern" Die günstigsten Ventile die ich bis jetzt gefunden habe, und die in Frage kämen, wären diese: http://www.magnetventile-shop.de/magnetventile-2/magnetventile-messing/inlineventile/inline-magnetventil-imv604.html So nun wieder Fragen zur Schaltung, könnte ich die wie geposteten Link anschließen, oder gibt es für meinen Fall bessere Lösungen? Gibt es noch günstigere zwangsgesteuerte Ventile? Hier mal der jetztige Quelltext. Habe jetzt einfach mal irgendwelche Cocktailnamen und Öffunungs-/Leuchtzeiten gewählt. Das müsste ich natürlich noch ausrechnen und testen.
1 | $regfile = "m8adef.dat" |
2 | $crystal = 1000000 |
3 | $hwstack = 100 |
4 | $swstack = 100 |
5 | $framesize = 100 |
6 | |
7 | 'Ausgänge |
8 | Led1 Alias Portc.1 |
9 | Config Led1 = Output |
10 | |
11 | Led2 Alias Portc.2 |
12 | Config Led2 = Output |
13 | |
14 | Led3 Alias Portc.3 |
15 | Config Led3 = Output |
16 | |
17 | Led4 Alias Portc.4 |
18 | Config Led4 = Output |
19 | |
20 | Led5 Alias Portc.5 |
21 | Config Led5 = Output |
22 | |
23 | Servo Alias Portd.0 |
24 | Config Servo = Output |
25 | |
26 | 'LCD |
27 | Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _ |
28 | Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 |
29 | Config Lcd = 16 * 2 |
30 | Cursor Off |
31 | |
32 | 'Eingänge |
33 | Starttaster Alias Pinb.0 |
34 | Config Starttaster = Input |
35 | |
36 | Taster1 Alias Pinb.1 |
37 | Config Taster1 = Input |
38 | |
39 | Taster2 Alias Pinb.2 |
40 | Config Taster2 = Input |
41 | |
42 | Taster3 Alias Pinb.3 |
43 | Config Taster3 = Input |
44 | |
45 | Taster4 Alias Pinb.4 |
46 | Config Taster4 = Input |
47 | |
48 | |
49 | 'PullUp-Widerstände einschalten |
50 | Portb.0 = 1 |
51 | Portb.1 = 1 |
52 | Portb.2 = 1 |
53 | Portb.3 = 1 |
54 | Portb.4 = 1 |
55 | |
56 | |
57 | Declare Sub Mischung(byval M As Byte) |
58 | |
59 | Dim M As Byte |
60 | Dim I As Byte |
61 | Dim Sweep As Byte |
62 | Dim Puls As Word |
63 | |
64 | 'Start |
65 | Cls |
66 | Locate 1 , 6 |
67 | Lcd "Hallo!" |
68 | |
69 | Wait 2 |
70 | |
71 | 'Servo Ausrichten |
72 | Gosub Servo_mitte |
73 | |
74 | 'Standarteinstellung Mischung 1 |
75 | M = 1 |
76 | |
77 | Cls |
78 | Locate 1 , 4 |
79 | Lcd "Cuba Libre" |
80 | |
81 | |
82 | Do |
83 | |
84 | If Taster1 = 0 Then |
85 | M = 1 |
86 | Cls |
87 | Locate 1 , 4 |
88 | Lcd "Cuba Libre" |
89 | |
90 | Elseif Taster2 = 0 Then |
91 | M = 2 |
92 | Cls |
93 | Locate 1 , 1 |
94 | Lcd "Sex on the Beach" |
95 | |
96 | Elseif Taster3 = 0 Then |
97 | M = 3 |
98 | Cls |
99 | Locate 1 , 1 |
100 | Lcd "Tequilla Sunrise" |
101 | |
102 | Elseif Taster4 = 0 Then |
103 | M = 4 |
104 | Cls |
105 | Locate 1 , 2 |
106 | Lcd "Swimming Pool" |
107 | |
108 | End If |
109 | |
110 | |
111 | If Starttaster = 0 Then |
112 | Cls |
113 | Locate 1 , 3 |
114 | Lcd "Zubereitung" |
115 | Locate 2 , 6 |
116 | Lcd "laeuft" |
117 | |
118 | Call Mischung(m) |
119 | |
120 | Gosub Servo_anschlag |
121 | Gosub Servo_mitte |
122 | |
123 | Cls |
124 | Locate 1 , 6 |
125 | Lcd "Fertig" |
126 | End If |
127 | |
128 | Loop |
129 | |
130 | End |
131 | |
132 | |
133 | '======================================== |
134 | Servo_anschlag: |
135 | For I = 1 To 250 'ca. 5 sec Endstellung 1 |
136 | Portd.0 = 1 'Servopuls ein für ca. 1ms |
137 | Waitus 1000 |
138 | Portd.0 = 0 |
139 | Waitms 19 'ca. 50 Wiederholungen pro Sekunde |
140 | Next I |
141 | Return |
142 | |
143 | Servo_mitte: |
144 | For I = 1 To 50 'ca. 1 sec Mittelstellung |
145 | Portd.0 = 1 'Servopuls ein für ca. 1.5ms |
146 | Waitus 1500 |
147 | Portd.0 = 0 |
148 | Waitus 18500 'ca. 50 Wiederholungen pro Sekunde |
149 | Next I |
150 | Return |
151 | |
152 | Sub Mischung(byval M As Byte) |
153 | |
154 | If M = 1 Then |
155 | |
156 | Led1 = 1 |
157 | Wait 2 |
158 | Led1 = 0 |
159 | Led2 = 1 |
160 | Wait 2 |
161 | Led2 = 0 |
162 | Led3 = 1 |
163 | Waitms 500 |
164 | Led3 = 0 |
165 | Led4 = 1 |
166 | Waitms 500 |
167 | Led4 = 0 |
168 | Led5 = 1 |
169 | Waitms 500 |
170 | Led5 = 0 |
171 | |
172 | Elseif M = 2 Then |
173 | |
174 | Led1 = 1 |
175 | Wait 1 |
176 | Led1 = 0 |
177 | Led2 = 1 |
178 | Waitms 500 |
179 | Led2 = 0 |
180 | Led3 = 1 |
181 | Wait 1 |
182 | Led3 = 0 |
183 | Led4 = 1 |
184 | Waitms 500 |
185 | Led4 = 0 |
186 | Led5 = 1 |
187 | Wait 1 |
188 | Led5 = 0 |
189 | |
190 | Elseif M = 3 Then |
191 | |
192 | Led1 = 1 |
193 | Waitms 300 |
194 | Led1 = 0 |
195 | Led2 = 1 |
196 | Waitms 300 |
197 | Led2 = 0 |
198 | Led3 = 1 |
199 | Wait 2 |
200 | Led3 = 0 |
201 | Led4 = 1 |
202 | Waitms 300 |
203 | Led4 = 0 |
204 | Led5 = 1 |
205 | Waitms 300 |
206 | Led5 = 0 |
207 | |
208 | Elseif M = 4 Then |
209 | |
210 | Led1 = 1 |
211 | Wait 2 |
212 | Led1 = 0 |
213 | Led2 = 1 |
214 | Waitms 500 |
215 | Led2 = 0 |
216 | Led3 = 1 |
217 | Wait 2 |
218 | Led3 = 0 |
219 | Led4 = 1 |
220 | Waitms 5 |
221 | Led4 = 0 |
222 | Led5 = 1 |
223 | Waitms 2 |
224 | Led5 = 0 |
225 | |
226 | End If |
227 | |
228 | End Sub |
:
Bearbeitet durch User
Grüß dich :) ! Gibts schon Neuigkeiten? Oder hast du das Projekt eingestellt?
Hallo, die Maschine hat ihre ersten Testläufe hinter sich und ist zu 90% fertig. Ich muss allerdings, vorallem an den Hardwarekomponenten, noch einige Optimierungen vornehmen. Bei Interesse kann ich die Tage mal ein paar Bilder hochladen. Erinner mich gegebenenfalls noch einmal daran! Gruß Johannes
Bilder wären super :) Spiele auch mit dem Gedanken so ne Maschine zu baun. Softwareseitig sollte es keine Probleme geben. Aber bei Material,(Selbst)Reinigung, (Geld)Eingabe, Geschwindigkeit der Mixung, Mobilität, Flaschentausch, ganz wichtig Stabilität und Optik (Sonst wird das Ding auch bei der anspruchsvollsten Programmierung ne Lachnummer, da für die Nutzer im Endeffekt das Ergebnis und gewohnte Qualität bekannter Maschinen (z.B. Kaffeevollautomat usw.) zählt ) etc. etc. entstehen noch tausend ungelöste Fragen ;)
Soooo, sorry bin erst jetzt dazu gekommen... Also da das Ganze ein Uniprojekt ist und der Hauptaugenmerk auf der Technik liegt, war die Optik eher sekundär. Beim Material haben wir auf Grund der einfachen Verarbeitbarkeit beim Rahmen hauptsächlich auf Holz zurück gegeriffen. Die Getränke werden in Kunststofftanks umgefüllt, um unabhängig von Flaschenverschraubungen zu sein und um eine kapazitive Füllstandsmessung anbringen zu können, die den Füllstand berührungslos von außen misst. Die Getränke werden dann durch Silikonschläuche zur Abfüllung geleitet. Gekühlt wird das ganze durch ein ausgebautet Kühlaggregat aus einer Minibar. Die Ventile stammen aus dem 3D Drucker und sind einfach aufgebaute Schlauchklemmventile. Dadurch kommen die Getränke nicht in Verbindung mit den Ventilen und man kann die Behälte inkl. Schläuche einfach herausnehmen und in der Spülmaschine waschen. Die Füllmenge wird einfach über die Ventilöffnungszeiten gesteuert, die je nach Füllstandshöhe mit einem Korrekturfaktor behaftet sind. Auf einen Münzeinwurf haben wir vorerst verzichtet, da die Maschine ausschließlich für private Partys gedacht ist. Als Mixer haben wir einen Milchaufschäumer genommen, der mittels Linearantrieb ins Glas gefahren wird. Insgesamt haben wir drei Linearantriebe. Einen um eine Plaxiglasplatte zu verfahren, die einen Eingriff wärend des Abfüllvorgangs verhindern soll. Der zweite um wie gesagt den Mixer zu verfahren und der dritte bewegt das Glas von der Frontposition zur Abfüll- und Mixposition. Die beiden ersten sind mit Hilfe von Zahnriehmen aus alten Scannern und Druckern selbst gebaut, der dritte zugekauft. Gesteuert wird das ganze durch zwei Atmega32, die via Uart miteinander kommunizieren. Die Ausgabe erfolgt im Moment auf einem 20X4 Dissplay, gesteuert wird das ganze durch 4 Taster. Im Menu gibt es den Zubereitungsteil und den Wartungsteil. Im Zubereitungsteil kann man den entsprechnenden Cocktail und die Glasgröße auswählen. Im Wartungsteil kann man sich die Kühlraumtemperatur und die Füllstände ansehen, die Ventile manuell öffnen um die Behälter zu entnehmen und entleeren zu können und den Mixer reinigen lassen. Bei jeder Abfüllung wird mittels Lichtschranke (Laserpointer und Fotodiode) detektiert ob auch wirklich ein Glas vorhanden ist und ob die Füllstände für den ausgewählten Cocktail noch ausreichen. Usw usw... Die Hälfte habe ich jetzt sowieso vergessen. Also am besten bei Fragen konkret nachfragen. Hier mal ein paar Bilder, die allerdings nicht alle dem jetztigen Stand entsprechen... https://www.dropbox.com/s/3pcrgfzzk98wzex/2013-10-16%2022.18.30.jpg https://www.dropbox.com/s/hjlndp7sg3k7v3n/2013-10-25%2021.48.23.jpg https://www.dropbox.com/s/i7owcjcwmdbhy2g/2013-10-16%2022.18.01.jpg Ein Bild mit Außenhülle werd ich sobald ich zu Hause bin hochladen. Gruß Johannes
Respekt, da hast Du den ganzen Neinsagern hier im Board mal gezeigt, dass man mit Einsatz und Hirnschmalz durchaus sein Ziel erreichen kann, weiter so!
Doone schrieb: > Respekt, da hast Du den ganzen Neinsagern hier im Board mal gezeigt, > dass man mit Einsatz und Hirnschmalz durchaus sein Ziel erreichen kann, > weiter so! Das stand ja auch nicht zur Debatte. Die Frage war: kann ich als Anfänger das in einem halben Jahr schaffen? Und wie man sieht, hatten die recht, die mit der Aussage kamen: In einem halben Jahr ist das für einen Anfänger schon eng. Zumal man hier ja auch nicht das Programm sieht. Der Teil vom Februar (der sicher zum jetzigen Zeitpunkt nicht mehr repräsentativ ist) ist ja nicht wirklich prickelnd. Jemand der Programmieren kann würde das mit Sicherheit nicht so machen - viel zu viel Aufwand um Rezepturen auszutauschen bzw. andere Cocktails ins Angebot mit aufzunehmen. Trotzdem: schöne Arbeit. Weiter so!
:
Bearbeitet durch User
Das jetzige Programm hat natürlich überhaupt nichts mehr mit dem Programmschnippsel zu tun, den ich vor ein paar Monaten mal eingestellt habe. Programmierer mit mehr Erfahrung hätten wahrscheinlich dennoch einiges zu bemängeln und anderst gemacht, aber das Ganze funktioniert soweit und das ist die Hauptsache;-) Also bitte nicht steinigen, wer Interesse hat, bitteschön: Master-Programm: https://www.dropbox.com/s/50wp5aan5xab7yb/MASTER-PROGRAMM%204.1.RTF Slave-Programm: https://www.dropbox.com/s/k4562cctnd3brun/SLAVE-PROGRAMM%204.1.RTF Hier noch ein Bild mit Außenhülle, die aber in Zukunft mit Bildern von "Praxistests" verschönert werden soll... https://www.dropbox.com/s/u9dzm1bbpex1w69/Konstrukta.png Gruß Johannes
Schade, die Datein sind nicht mehr vorhanden. Kannst du noch ein paar Bilder von der Maschine posten, falls es sie noch gibt ;) ?
Hallo, ich bin im für ein halbes Jahr im Ausland und hab die meisten Daten nicht hier. Ich könnte dir aber ein Video. https://www.dropbox.com/s/476oga74o7oaa71/Project%20C%20-%20Video.WMV Bei weiteren Fragen kannst du dich gerne melden. LG Johannes
Ja man kann ja nicht alles haben. Dafür gibt es dann noch eine hübsche Assistentin ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.