Guten Abend, ich möchte mir ein paar RGB Leisten bauen und die mit einem ATmega8 ansteuerun. Das dürfte ich hinbekommen (vielleicht mit bisschen Hilfe aber ich denke das klappt) :) Nun überlegte ich wie den Input für die Variablen mache wie RGB (oder HSV weis noch nicht ob ich das machen soll) und Programm auswahl, usw. und da dachte ich dran ein kleines einfaches Programm auf PC zu programmieren um den Mikrocontroller über USB Kabel die Befehle zu geben. Nun ist es so ich von PC-Programmierung so garkeine Ahnung habe :). Wollte mal hören ob es sehr aufwendig ist so etwas zu realiesieren und welche Sprache ich am besten verwende. Ich dachte da so an eine Zeitrahmen von 3-4 Wochen um das Programm zu fertig zu bekommen. Soll einfach nur Fenster sehen mit: - An/Aus - Automatischer Farbwechsel/Geschwindigkeit - RGB oder HSV als Feste Farbe MFG Daniel L.
Hallo Daniel, an was für eine Mikrocontroller hast du denn gedacht. Ich gehe davon aus mal das du eine AVR verwendest, und die haben kein USB anschluß.Warum denn überhaubt so kompliziert? hat deine PC denn kein UART?
Hallo Daniel, Ohne HSV genau zu kennen glaube ich das es schwer wird da brauchst du mindetsens 16 Bit PWM. MFG
Naja eigentlich würde ich gerne mein ATmega8-16 verwenden :) Naja ich hab zwar ein USB-Serial Kabel aber das brauch ich auch noch so für STK500 und es ist doof wenn ich das permanent angeschlossen lasse :) und direkt Serial-Port hab ich seit min 10 Jahren an keinem Rechner mehr gesehen :) Mein Rechner hier hat nich mal mehr Parallel-Port ^^
Hallo Daniel, wenn Du den Atmel über USB an den PC hängen willst, kannst Du an seinen UART-Port einen Chip hängen, wie er vielleicht aucht in Deinem Adapter verbaut ist. Ich würde einen von FTDI nehmen (die heissen FT245...oder so; Google ist Dein Freund...). Diese ICs setzen UART auf USB um. Der Clou ist, dass es dafür auf dem PC Treiber gibt (Virtual COM Port). Das heisst, dass Du eignetlich gar kein Programm schreiben musst. Denk Dir ein Protokoll aus, das Du auf den Atmel implementierst. Auf dem PC FTDI-VCP Treiber installieren, Terminalprogramm Deiner Wahl aufmachen, COMPort und Parameter (COM x 9600 8 N 1...) und mit "set scene total blue" oder "$4$" oder was auch immer Du als Protokoll definiert hast, sitzt Du im Blauen... VG
Daniel L. schrieb: > geben. Nun ist es so ich von PC-Programmierung so garkeine Ahnung habe > :). Wollte mal hören ob es sehr aufwendig ist so etwas zu realiesieren > und welche Sprache ich am besten verwende. Geht so. Nimm Visual Basic oder C#. Je nachdem welches Buch dir in der nächsten Bibliothek dazu besser zusagt :-) > Ich dachte da so an eine > Zeitrahmen von 3-4 Wochen um das Programm zu fertig zu bekommen. Klingt erst mal realistisch. VB bzw. C# nehmen dir den ganzen Kram der Fenstererzeugung etc. ab. Du schiebst deine Control-Elemente (Button, Schieber etc.) auf das Fenster und die IDE baut das dann in den Code ein. Noch eine Behandlung von Änderungen drannhängen und dann sollte das schon so in etwa funktionieren. > Soll einfach nur Fenster sehen mit: > - An/Aus > - Automatischer Farbwechsel/Geschwindigkeit > - RGB oder HSV als Feste Farbe Ja, ist nicht weiter wild, so etwas zu machen. Die Kommandos schickst du über die 'serielle Schnittstelle' zum Mega8 und dort musst du dann das Kommando behandeln. Die serielle Schnittstelle kann man auch über USB führen, und zwar so, dass du weder am Mega8 noch am PC etwas davon merkst. Für dich ist das nach wie vor eine serielle Schnittstelle.
Ja das über Terminalprogramm zu machen ist sicherlich ein Lösung aber nicht gerade Benutzerfreundlich damit hab ich auf Breadboard schon experimentiert. Sicherlich als Zwischenlösung ok. Aber ich würde schon gerne über ganz einfaches Programm das ganze machen. Nicht nur, weils dann Benutzerfreundlicher wird, auch weil ich es mir in erster Line um den Lerneffekt geht dabei.
Das Programm auf dem PC kannst Du ja später immer noch daraus machen. Wenn dies hinter der Maske auch nur RS232 spricht, kannst Du sehr gut in kleinen Schritten vorgehen. 1. uP-Code schreiben und über Terminal steuern. 2. VB, C#, ???-Programm schreiben, welches per RS232 m it dem uP spricht. 3. Lan, Wlan, BT -> RS232-Adapter dranhängen und uP-Code damit ohne Kabel bertreiben. 4. Besseres Programm schreiben, welches ebenfalls wieder über RS232 reder 5. ... Das schöne daran ist, dass Du jederzeit auf die Leitung schauen kannst: Zweiten RS232-Port parallel dranhängen [nur Rx] und mit einem Terminalprogramm lauschen
Weder C# noch C++ oder VB erzeugen von sich aus Fenster oder bieten die Möglichkeit Elemente so einfach irgendwo hinzuschieben. Denn das macht nämlich die Entwicklungsumgebung für dich ;-) Mein Tipp daher: Besorg dir in einer Bibliothek deiner Wahl ein Buch über eine Entwicklungsumgebung dem selbige am besten schon als Trial-Version beigelgt ist. Ich bin mit "C++ in 21 Tagen" ziemlich gut gefahren. Das gibt es im Netz auch irgendwo komplett als pdf :-) Mit ein wenig Google-Suchen nach Beispielprogrammen schaffst du es in weniger als 21 Tagen eine RS232-Schnittstelle mit schickem Programm anzusprechen ;-) (zur Not kann ich dir auch Beispiel-Code schicken)
Hi, nachdem das mit dem RGB Faden so gut geklappt hat, wollte ich gestern abend mich an den größeren Teil meins Projektes machen das UART Protokoll zum steueren des µC vom PC aus... da ich hier aber überhaupt keine Ahnung habe, hab ich mal bei Google gesucht ob es ähnliche projekte gibt bei den sowas schon mal umgesetzt wurde und ich musste leider feststellen das ich nichts gefunden habe... Entweder habe ich Falsch gesucht oder das wird wirklich so selten umgesetzt. Es wäre nett falls jemand Beispiele kennt sie hier mal zu posten ich würde mir das gerne mal angucken :)
Hi ich hab mal ein Programm geschrieben, um mir die Variablen während des Programmes im Controler anzusehen, so eine Art Diagnose. Diese Software müßtest du hier irgendwo unter OpenEye finden. In der gezipten Datei findest du das lauffähige PC-Programm sowie eine Anleitung in der Doku, um deinem Controller die Verbindung zum PC zu ermöglichen. Ich habe auch versucht, das ein wenig zu beschreiben, so das es auch für andere Übertragungen geeignet wäre. Ach ja, stör dich nicht an der Programmiersprache Assembler. Gruß oldmax
Hallo Danie, wenn du irgend welche GUI schreiben willst dann empfele ich dir QT! Grüße Xion
Also QT ist zwar cute, aber hat eine sehr steile Lernkurve und ist damit nicht unbedingt für Anfänger zu empfehlen. Wenn dann mal eine gewisse Erfahrung mit C++ da ist, dann ist QT sicher eine gute Wahl. Gruß, Günter
Daniel L. schrieb: > Hi, > > nachdem das mit dem RGB Faden so gut geklappt hat, wollte ich gestern > abend mich an den größeren Teil meins Projektes machen das UART > Protokoll zum steueren des µC vom PC aus... da ich hier aber überhaupt > keine Ahnung habe, hab ich mal bei Google gesucht ob es ähnliche > projekte gibt bei den sowas schon mal umgesetzt wurde und ich musste > leider feststellen das ich nichts gefunden habe... Entweder habe ich > Falsch gesucht oder das wird wirklich so selten umgesetzt. > > Es wäre nett falls jemand Beispiele kennt sie hier mal zu posten ich > würde mir das gerne mal angucken :) Auf welcher Seite hängt es denn? Auf AVR Seite oder auf PC Seite AVR Seite: arbeite den UART Abschnitt im gcc-Tutorium durch. Zum Testen nimmst du einfach ein Terminalprogramm, wie zb Hyperterminal. Auf PC Seite: Da musst du durch. Zum Testen wäre es gut, wenn du bereits etwas Funktionierendes im AVR hättest (das mit Hyperterminal abgetestet wurde). Allerdings etwas ganz simples, wie zb: du sendest 'A' und eine LED geht an. Du sendest 'B' und die LED geht aus. Beschreibungen zur Ansteurung einer seriellen Schnittstelle auf PC-Seite findest du im Web zu Hauf. Zum Thema Protokoll: Machs nicht komnplizierter als notwendig! Du denkst jetzt wahrscheinlich, dass da irgendwelche ganz komplizierte Dinge dahinterstecken. Das Gegenteil ist der Fall. Ein Protokoll ist einfach nur eine Vorschrift, die garantiert, dass der Empfänger auch das erkennt, was der Sender mitteilen wollte. Zb könnte dein Protokoll so aussehen: Am Anfang kommt ein Kennbuchstabe. Jeder Buchstabe steht für eine bestimmte Aktion. Danach kommen Zahlen, die als Parameter für die Aktion fungieren. Gibt es mehrere Parameter, werden sie duch , voneinander getrennt. Jede Aktion wird mit einem ; abgeschlossen. Das ist zb ein ganz einfaches Protokoll. Nachrichten in diesem Protokoll sehen zb so aus H1,64; und das könnte zb bedeuten: Setze die Helligkeit der Led 1 auf 64 oder Z1; für Zero (Helligkeit auf 0 setzen) die Led 1 oder D1,5,20,128; was bedeuten könnte: Dimme die Led 1 innerhalb von 5 Sekunden vom Wert 20 auf den Wert 128 oder ... Denk dir was aus. Hier kannst du kreativ sein. Durch den Kommandobuchstaben kann der AVR immer erkennen, wo eine Kommandosequenz anfängt und durch den ; kann er immer erkennen, wann das Kommando zu Ende ist und ein neues anfangen wird.
So bin fertig geworden sowohl mit dem Hardware als auch mit dem Software Teil und muss sagen das mir C# wirklich gut gefällt :) Hab in der Woche viel neues gelernt, stand oft da und hab stunden lang überlegt wie ich was machen soll und das ist nun dabei raus gekommen. Es ist mein erstes µC Projekt überhaupt. Vieles daraus ist im Trail and Error verfahren entstanden, ich hatte eine Idee und hab einfach mal angefangen und das hab ich solange verändert bis es das gemacht hatte was ich wollte oder ich mit dem Ergebniss für erste Zufrieden bin. Wahrscheinlich gibt es viele Sachen, wo manch einer ich fragt warum ich das so gemacht habe oder warum ich so umständlich ist :) Aber ich brauch ja auch noch bisschen Luft für die nächste Version :) Die Software ist jetzt nicht unbedingt schön aber es ist funktional und tut das was ich will :) Derzeit sind Funktion implementiert: - AN/AUS - RGB Feste Farbe - RGB Faden mit variabler Zeit - HSV Faden mit variabler Zeit und Helligkeit Der µC hat zwar auch die möglichkeit eine Feste Farbe mit HSV Werten dazustellen aber dafür hab ich noch keine "Gute" Lösung für die Software gefunden. So ich hoffe das ich bisschen konsturktive Kritik erhalte. MFG Daniel L.
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.