Hallo, ich wollte als Anfänger im Bereich Mikrocontroller und IC's als "lern-Projekt" einen DMX-Merger mit eurer Hilfe realisieren... Zuerst einmal die Frage, ist das möglich oder ein Projekt bei dem ich (vorhersebar) scheitern werde? Noch als Info, ich kann Löten kenne mich mit Wiederständen, Transitoren usw. aus... Nur eben mit IC und der gleichen habe ich noch nicht gearbeitet und möchte das nun lernen... Bei dem Projekt geht es mir auch weniger darum Geld einzusparen, sondern einfach um Grundkenntnisse in diesem Bereich zu erlernen. MfG Philipp
:
Bearbeitet durch User
Hallo Philipp, also wenn Du noch gar keine uC-Schaltung gemacht hast, dann halte ich das für ein Erstprojekt für zu umfangreich. Du brauchst eine Controller-Grundschaltung, RS485-Treiberbausteine und musst das Protokoll programmieren - 2x Empfang von DMX und 1x senden, auf einem oder evtl. mehreren uCs. Da geht dann schon ziemlich was ab mit Timing und Softwarekomplexität usw. - 2x empfangen mit 250kBit und gleichzeitig senden mit 250kBit. Das erscheint mir doch als eine etwas größere Aufgabe für den Anfang. Wenn Du schon ein paar Monate Erfahrung hast, dann halte ich es für machbar. Mach doch - nach den üblichen ersten Fingerübungen wie LED blinken etc. - erstmal einen DMX-Sender, dann einen Empfänger, dann einen Repeater und dann den Merger. Vg, Conny
Ok, vielen Dank für die Einschätzung, was für ein Bord bzw. welche Programmiersprache ist zu empfehlen, mit dem Hintergedanken eines Mergers? Und welche Projekt mit der Sicht auf IC würden sich anbieten? Vielen Dank schon mal... MfG Philipp
>Du brauchst eine Controller-Grundschaltung, RS485-Treiberbausteine und >musst das Protokoll programmieren - 2x Empfang von DMX und 1x senden, >auf einem oder evtl. mehreren uCs. Was dann drei UARTs bedeutet. Damit sind kleine Controller wie ATMega88 schon mal raus. Es muss was dickes her. Und das ist dann schon mal wieder nichts für Anfänger. >mit dem Hintergedanken eines Mergers? Vergiss den Bullshit für lange Zeit. Bring erst mal ne LED zum blinken.
Ok :) Ich schieb den Merger mal an letzter Stelle... Aber dennoch, welchen Controller würdet ihr empfehlen? Und dazu welche Sprache?
Ich vorher beim stöbern noch was von ARM aufgeschnappt zu haben oder würden die anderen mir auch zu einem MSP430 raten?
Also so ein ATMega oder ATTiny ist ein Klassiker zum Anfangen. Der MSP ist m.E. schon was für später, der kann schon viel mehr. Das ist gut, aber am Anfang ist einfacher übersichtlicher. Wenn Dir der AVR (die ATMega etc. heissen auch "AVR") sehr schnell zu langweilig wird, kannst ja bald auch mal einen MSP probieren. Und Programmiersprache ist eigentlich eher Geschmackssache, da kannst eine Basic-Variante verwenden (BASCOM) oder mit C programmieren oder Du kannst Dir Assembler geben. Ich würde C empfehlen, es ist eine vernünftige Programmiersprache, die auch mit der sonstigen Softwarewelt etwas zu tun hat, mit der man gleichzeitig alles machen kann und gar nicht so weit vom Maschinencode entfernt ist und da hast bestimmt die größte "Community" an Software und Tipps und Tricks.
Was ich jetzt noch nicht ganz versteh bei den AVR, gibts da auch fertige Boards oder muss ich mit alles aufm Steckbrett zusammen basteln... Oder wie ist das gedacht? Denn ich finde nur Boards wie das STK500 welches zum einen ja sehr teuer ist und ja auch rießig.... Danke schon mal MfG Philipp
Ja, das STK500 ist das "offizielle" Startkit und Entwicklungsboard von Atmel, das muss aber nicht sein. Ein günstiges, fertiges Board ist der Arduino. Der hat allerdings wiederum ein ganzes Konzept für sich, das sich an Einsteiger richtet oder solche, die es überhaupt einfacher haben wollen. Da gibt's dann auch eine Entwicklungsumgebung und fertige Libs sowie "Steckmodule" um weitere Bausteine hinzuzufügen - da gibt's eine ganze Industrie und Community um diese Art von Konzept. Ich persönlich mag Arduino nicht, weil ich da am Anfang nicht gewusst hätte, was eigentlich die "Welt" von Arduino ist und was nur der Atmel Prozessor oder seine Peripherie ist - ich bin da eher Purist. Aber auch das ist Geschmackssache. Es zwingt Dich aber auch niemand das Arduino-Board mit Arduino-Bibliotheken und der Entwicklungsumgebung zu betreiben, am Ende ist's ja auch nur ein fertiges Board mit AVR - damit kannst machen was du willst. Eine uC-Schaltung auf dem Breadboard ist aber überhaupt nicht kompliziert: http://www.mikrocontroller.net/articles/Absolute_Beginner-AVR_Steckbrettprojekte Keine 10 Bauteile und schon geht's los! Und dann hast mit "echter" Elektronik zu tun - was schaltet man wie zusammen und warum, welche Bauteile und was tun sie, was braucht der AVR zum leben, was ist eine Stromversorgung etc. Wenn Du einen Arduino nimmst ist das wie ins Auto setzen und den Motor anlassen - Du gewinnst dabei keine Kenntnisse über die Konstruktion des Autos. Beim Mofa schrauben lernst aber was und weisst auch gleich über's Auto Bescheid.
:
Bearbeitet durch User
Technisch baut DMX auf der RS485 Schnittstelle auf. Für einen Merger brauchst Du - wie oben schon beschrieben - drei dieser Schnittstellen. Dafür gibt es extra Treiber-Bausteine, die den UART eines Controllers nach RS485 "übersetzen". Es gibt jetzt also die Möglichkeit, einen einzigen Controller mit 3 UARTs zu suchen, oder drei einzelne mit jeweils einem einzigen UART und diese z. B. per I2C untereinander zu vernetzen. Für einen Einsteiger ist es sicher einfacher, den letzteren Ansatz zu verfolgen und (wie ebenfalls schon vorgeschlagen) erstmal einen DMX-Empfänger aufzubauen. Zum Testen, ob alles wie gewünscht funktioniert, kann man dann auch gleich noch ein LCD-Display per I2C dran hängen und sich bei der Gelegenheit auch gleich etwas in diesen Bus einarbeiten. Im Gegensatz zu Conny mag ich die Arduinos ... insbesondere den kleinen Digispark. Das ist ein komplettes Board für unter 9 Euro. LCD-Display für ihn schon fertig zum anstecken. Ich selbst arbeite gerade an einem RS485 Modul, so dass auch das kein Problem wäre. Da das ganze mehr oder weniger steckbar ist, ist es gerade für Einsteiger ideal, weil man die einzelnen Module einfach wiederverwenden kann. Zudem ist die Programmierung durch die vielen vorgefertigten Code-Bibliotheken super einfach. Wenn Du Dich für diesen Weg interessierst, kann ich Dich ggf. auf den ersten Schritten ein wenig begleiten.
:
Bearbeitet durch User
Wozu soll ein DMX-Merger denn überhaupt gut sein? Und was soll der komkret machen? Zwei DMX-Datenströme in einen zusammen mischen?
> Bei dem Projekt geht es mir auch weniger darum Geld einzusparen, > sondern einfach um Grundkenntnisse in diesem Bereich zu erlernen. Zum Thema: Geld sparen. Da eine deiner Einstiegshürden die Programmierung sein wird, kannst du mit diesem Teilbereich auch schon auf dem PC für wenig Geld anfangen. Es gibt freie C-Entwicklungsumgebungen für den PC. Downloade dir eine davon und fange an, die Grundlagen der Programmierung auf dem PC zu lernen. Dazu würde ich dir den Ankauf eines vernünftigen C-Lehrbuches empfehlen, welches du durcharbeiten solltest. Diese Vorgehensweise hat einen großen Vorteil: die Programme bzw. Programmfragmente bzw. überhaupt die kompletten Beschreibungen im Lehrbuch werden auf dem PC aus dem Stand heraus funktionieren, was auf einem µC so nicht der Fall ist. Während du auf dem PC zb. einfach eine fertige Konsole zur Verfügung hast, auf der du Texte ausgeben kannst (zb. zu Debug-Zwecken), ist das auf einem nacktem µC nicht so. Dort musst du erst mal programmieren können, ehe du auf irgendeinem angeschlossenem Text-Display/Terminal den allerersten Text siehst. D.h. auf dem PC lernst du erst mal die Grundlagen deiner Programmiersprache, du lernst Algorithmen, grundsätzliches Vorgehen, etc. etc. Sozusagen die Pflicht. Und dann kommt die Kür, mit all den Spezialitäten die eine µC-Programmierung so mit sich bringt. Und es hat den Vorteil: Ausser einem ordentlichen Buch kostet dir das ganze nichts und du hast auch gleich noch eine Umgebung, in der du dir in weiterer Folge Hilfsprogramme auf dem PC erstellen kannst. Dein Buch wird dir dann auch in weiterer Folge noch wertvolle Dienste leisten, ist also auch dann kein rausgeschmissenes Geld, wenn du schon längst am µC programmierst.
:
Bearbeitet durch User
Digi Spark schrieb: > Es gibt jetzt also die Möglichkeit, einen einzigen Controller mit 3 > UARTs zu suchen, oder drei einzelne mit jeweils einem einzigen UART und > diese z. B. per I2C untereinander zu vernetzen. > > Für einen Einsteiger ist es sicher einfacher, den letzteren Ansatz zu > verfolgen und (wie ebenfalls schon vorgeschlagen) erstmal einen > DMX-Empfänger aufzubauen. Zum Testen, ob alles wie gewünscht > funktioniert, kann man dann auch gleich noch ein LCD-Display per I2C > dran hängen und sich bei der Gelegenheit auch gleich etwas in diesen Bus > einarbeiten. Sowas von falscher Ansatz! Wieso denn bitteschön den DMX Stream per UART empfangen und dann per I2C weitersenden zu nem anderen Controller? Macht überhaupt kein Sinn und is nur mehr Aufwand. Man nehme: 1 AVR mit 2 UART (wieso reden hier alle von 3 UART?) der 20MHz und genug RAM (2kB) -> Mega324P zB. 1 UART empfängt nur DMX, ein anderer UART sendet und empfängt. Die 2 Empfänger schreiben in einen 512Byte Puffer und von dort aus wird in den 3. Puffer, den Sendepuffer gemerged. Die UARTs laufen im Interrupt und der Merger in der Hauptschleife. Reset und Mark erzeugt man dann eben nicht durch Baudrate halbieren, sondern per Timer. Ein 20MHz AVR ist auch shcnell genug, bei diesem Projekt (ich war fürs Lichtpult zuständig) habe ich jetzt den DMX Merger noch nachgereicht: http://www.fritzler-avr.de/epro/index.php Wenns nich ganz reicht, dann eben 24MHz auf das Teil ;) Hier mal 3 mögliche Betriebsarten: http://www.thomann.de/de/elation_dm_2512r_dmx_merger.htm
Danke für die Vielen Tipps zum Merger, aber ich denke ich werde dieses Projekt auf Eislegen, vorerst. Danke Karl Heinz für deinen Tipp ich hatte mir auch vor ein Buch zuzulegen, jedoch bin ich eher der Praktiker, der sehen will was er grad fabriziert hat und das auch anfassen will... Deshalb so zeigt es sich bei mir brauch ich zu den ganzen Simulationen am Computer im was zu anfassen, weshalb ich auf Conny's Vorschlag auch eingehen werde und mir die Einzelteil kaufe und zwar schon Anfangs rein am Computer arbeiten werde, um dann nach und nach mich mehr den IC etc. zu zuwenden. Dazu noch eine Frage, da ich verhindern möchte 10 mal zu bestellen... Welche Standart Controller gibt es, außer dem, auf der von Conny empfohlenen Seite, ATmega88 ? Oder reicht der eine ganze Zeit lang?
Philipp Schaber schrieb: > Dazu noch eine Frage, da ich verhindern möchte 10 mal zu bestellen... Das wird sowieso nicht ausbleiben. > Welche Standart Controller gibt es, keinen. > außer dem, auf der von Conny > empfohlenen Seite, ATmega88 ? > Oder reicht der eine ganze Zeit lang? Der reicht für längere Zeit. Gerade am Anfang ist für dich die Leistungsfähigkeit des µC (was er an Komponenten eingebaut hat) von zweitrangiger Bedeutung. Viel wichtiger ist die Unterstützung durch Tutorien und/oder Foren. Wenn du erst mal den ersten AVR im Griff hast, ist der Umstieg auf einen anderen kein Problem mehr. Die sind eine Familie, sind also alle ähnlich. Wie beim Autofahren: Die Grundprinzipien funktionieren überall gleich, nur hat der eine ein beleuchtetes Handschuhfach und der andere nicht.
@ Philipp Schaber (ltk) >Welche Standart Controller gibt es, außer dem, auf der von Conny >empfohlenen Seite, ATmega88 ? >Oder reicht der eine ganze Zeit lang? Kauf lieber 2 Nummern größer, die paar Euro spielen keine Rolle. Dafür hast du ausreichend Resourcen. Wenn du daraus ein kleines Produkt machen willst, kannst du optimieren. Nimm ATmega 644A oder 644p im DIL40 Gehäuse.
Also ein ATMega8 oder ein ATMega328 tun für den Anfang völlig. Bin gerade nicht ganz sicher, welchen ich davon empfehlen würde, der 328 ist der "modernere" davon und hat eben 32k Flash statt nur 8k. Allerdings ist es auch ganz gut nur 8 kB Flash zu haben, dann merkt man am Anfang nämlich sehr schnell wieviel man mit schlechtem Code Speicher verschwendet. Bei 32kB hat man zuviel zum prassen und merkt gar nicht, dass man mit so einem supereffizeinten Mikroprozessor total verschwenderisch umgeht. Hab's schon ein paar Mal gehabt, dass ich wg. Code > 8kB schnell mal einen 328 genommen habe, hatte ein bisschen später dann Zeit mir den Code nochmal genau anzusehen (der C-Linker erzeugt Dateien, die einem Info geben, wo der Speicher hingeht) und siehe da, kaum habe ich Stringfunktionen oder Fliesskommarechnung rausgeworfen, war ich gleich bei 4-5k statt 10k :-) Und mach Dir keinen Kopf ob Du da jetzt den falschen oder richtigen hast - der kostet 3 Euro und wenn er Dir nicht (mehr) passt, gibt's für 3-5 Euro einen anderen.
Also ich zumindest entwickel immer auf einem 644P oder 1284P. Noch ein Tipp fürs Steckbrett: http://www.fritzler-avr.de/HP/tipps/avrsteck.php
Martin Wende schrieb: > Noch ein Tipp fürs Steckbrett: > http://www.fritzler-avr.de/HP/tipps/avrsteck.php Uah, das ist krass :-) Das ist ja russische Tundra-Improvisation... Dann lieber gleich mit Lochraster ein kleines Board mit uC-Sockel, das auf's Steckbrett passt.
Jo, von Igor persönlich zusammengebraten. Beim Mega328 im DIL28 den Wannenstecker dann einfach hochkant aufkleben. duckundweg
So das wären dann die beiden oder? http://www.reichelt.de/Atmel-ATMega-AVRs/ATMEGA-8-16-DIP/3/index.html?&ACTION=3&LA=446&ARTICLE=45024&GROUPID=2959&artnr=ATMEGA+8-16+DIP http://www.reichelt.de/ATMEGA-328P-PU/3/index.html?&ACTION=3&LA=514&ARTICLE=119685 Nun noch zum Steckbrett, reicht für den Anfang so ein einzelnes Modul oder doch besser gleich ein größeres? http://www.reichelt.de/Laborkarten/STECKBOARD-1K2V/3/index.html?&ACTION=3&LA=446&ARTICLE=67678&GROUPID=3374&artnr=STECKBOARD+1K2V Dann natürlich noch der ISP Port und ein paar LEDs, aber was noch?
Ich würde mindestens 2 Stück von jedem Controller bestellen. Nichts frustriert mehr wie ein abgerauchter Controller wo man dann eine Woche auf Ersatz warten muss. Die Erfahrung hat gezeigt, auch unzerstörbare Dinge werden kaputt ;)
Philipp Schaber schrieb: > Nun noch zum Steckbrett, reicht für den Anfang so ein einzelnes Modul > oder doch besser gleich ein größeres? Ich habe so eins. Da ich mit Funkmodulen experimentiere, ist es sehr handlich. Bei komplexeren Sachen wird es aber schnell eng, deshalb habe ich so eins in doppelter Breite. > http://www.reichelt.de/Laborkarten/STECKBOARD-1K2V/3/index.html?&ACTION=3&LA=446&ARTICLE=67678&GROUPID=3374&artnr=STECKBOARD+1K2V > Dann natürlich noch der ISP Port und ein paar LEDs, aber was noch? Spannungsversorgung, Vorwiderstände, Quartz/Oscillator. 100nF Abblockkondensatoren..... naja, wie sagt man so schön: Das übliche Hühnerfutter aus der Grabbelkiste (hat man als Anfänger natürlich nicht unbedingt da) Und natürlich auch ein Programmieradapter (z.B. AVR-ISP mkII, oder meintest du das mit "ISP Port")
Noch eine Frage welchen Atmega ? den 8 oder den 88 ? Und welche Quarze für den Anfang?
:
Bearbeitet durch User
Falk Brunner schrieb: > Für DMX natürlich eher 8 oder 16 MHz. Für DMX so schnell wie möglich, also 20MHz für den Mega88 Ist dann ein Baudratenvorteiler von 5 (UBRR).
Also nachdem nun heute das Päckchen von Reichelt angekommen ist :freu: , wollt ich nun loslegen... Nun stellen sich mir einige Fragen, z.B. Welcher Pin des IC's ist für was, bzw. wo kann ich das rauslesen? Dann wo finde ich ein C - Tutorial das auch auf Mikrocontroller zugeschnitten ist, mit sozusagen Aufgaben dafür und nicht allgemein für den Comuter... Danke schon mal MfG Philipp
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.