usb-rgb für meinen PC

  • hey das ist doch so was leichtes, das haber ich hier schon fertig und es funktioniert.


    Realisiert ist es mit dem myUSBtoUART von myAVR, das Programm sendet einfache Befehle an der AVR zum Beispiel ein ATtiny2313
    so ein Befehl sieht da in etwa so aus C.255.245.7 = Farbe der AVR gibt über die PWM die werte aus :D


    MfG
    paralux

  • nein Delphi ist es nicht, es ist VisualBasic6. ich benutze die MScomm32.ocx zum senden über den COM Port
    das auslesen des COM port von myUSBtoAURT mache ich mit der WMI (Win32_SerialPort)


    leider ist die MScomm32.ocx nicht Windows 7 tauglich...

  • Faden: in einem bestimmten Zeitraum (Timer verwenden) zwischen einer Startfarbe und einer Zielfarbe interpolieren. Den Zeitraum in eine bestimmte Anzahl Unterteilungen einteilen (mehr als 256 macht keinen Sinn bei 8 Bit Farbauflösung) und bei jeder Unterteilung die Zwischenfarbe ausrechnen. Am einfachsten linear interpolieren, was aber hässliche Stoßstellen erzeugen kann, besser mit einer Cosinusfunktion (mit einer halben Periode). Wenn man bei der Zielfarbe angekommen ist, die als neue Startfarbe nehmen und eine neue Zielfarbe aussuchen.

  • Ich habe mir die Comport Libary geladen wie du mir geraten hattest Lochraster, das Problem ich weiß nicht wie ich die jetzt genau einbinde oder wo ich die hinpacken soll Verzeichnis etc.
    Für Hilfe wäre ich dankbar :)


    Noch ne Frage der myUSBtoUART von myAVR hat der so einen Drucker USB Port oder MiniUSB? Auf dem Bild sieht es aus wie Drucker, aber auf der
    Seite steht MiniUSB :?: 8|

  • also RGB-Fader ist recht leicht hinzugekommen (linear) das Problem ist die Übertragung. mit 38400 baud und nur alle 50ms Farbbefehl senden, flackert es ab und zu und der Mikrocontroller interpretiert manchmal den Befehl falsch. So sieht aus.


    ich würde das am liebsten anders lösen, und zwar eine Art Mini Programm schicken, welches der µC verarbeitet.


    EDIT: mini USB mit 5 Kontakten drin

  • Danke ich glaube das Teil Bestelle ich mir auch noch, ist ja nicht so teuer. Könnte ich ja mal deine Software ausprobieren ;)
    reicht denn alle 50ms nicht aus? Ich denke Flackern tut es nur wenn der PC schon weiter gefadet hat und dann ein Farbwert ankommt am Controller
    der eine zu große Differenz zum bisherigen Farbwert hat.
    Wenn man immer nur so viele Werte erzeugt und abschickt wie auch ankommen können sollte das doch gehen oder?


    Edit: Oder schick doch gleich immer 2-3 Farbwerte, aber so das der µC weiß das er den einen nimmt und dann den anderen und dann bekommt er wieder neue 2-3 Werte.
    Denke mal wenn die Software auf dem µC darauf abgestimmt ist könnte man das bestimmt umsetzen.

  • ich weiß nicht wieso auch wenn ich auf 57600 hoch gehe bleibt das Problem bestehen, ich muss mal jetzt was zusammen basteln und testen vielleicht bin ich auf der Spur von dem Problem.


    EDIT: Hab jetzt das falsch interpretieren nun weg, war ein Programm Fehler und das Flackern hat sich auch etwas gebessert, nur noch bei harten Farbübergang sieht man etwas.

  • Mit welcher Komponente hast du den ColorPicker gemacht? Beschäftige mich auch grad damit und der aus CommonDialog ist ja mal voll hässlich, sieht so nach Win3.0 aus ;)
    Auf PSC gibts zwar hunderte, aber die meisten versuchen das alte Photoshop-Control zu imitieren. Am liebsten wäre mir ein Farbkreis, aber den finde ich nicht.

    ist ein kleiner Trick: Picturebox (mit Bild) und über die MouseMove & MouseDown die Koordinaten ermitteln und dann mit der GetPixel(Picture1.hdc, x, y) die Farbe herausfinden ;) es ist natürlich auch ein Kreis möglich


    MfG
    paralux


    PS: Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

  • Ich habe mir die Comport Libary geladen wie du mir geraten hattest Lochraster, das Problem ich weiß nicht wie ich die jetzt genau einbinde oder wo ich die hinpacken soll Verzeichnis etc.
    Für Hilfe wäre ich dankbar :)

    Du packst das Verzeichnis erstmal dahin, wo es sicher ist. Ich habe es zum Beispiel eine Ebene über meinem Projektordner mit dem Namen "Komponenten", wo ich dann alle Komponenten reinpacke. Dann gehst du in den Ordner Source und öffnest die Datei "DsgnCPortx.dpk". X steht nun für deine Programmversion. Wenn du wie geschrieben Delphi XE nutzt, dann muss statt X ein XE stehen. Nun gehst du in deinen Projektmanager (über der Komponentenpalette). Dort kommt der Eintrag "DsgnCPortXE.dpk" mit den Unterpfaden. Nun machst du einen Rechtsklick auf "DsgnCPortXE.dpk" und klickst auf Installieren. Wenn die nun installiert wurden, muss du noch den Ordner bzw. den Unterordner Source in deine Suchpfade eingeben. Da gehst du in die Einstellungen, dann auf "Bibliothek - Win32" unter "Delphi-Optionen". Gehst dann bei Bibiothekspfad auf den Button mit den 3 Punkten, änderst dann unten den Pfad (keine Angst, die anderen werden nicht überschrieben) und klickst dann auf hinzufügen.
    Fertig nun dürftest du TComport und die anderen neuen Komponenten in deiner Komponentenpalette finden. Zur Benutzung empfehle ich einfach mal zu googlen, im Grunde genommen ist es jedoch selbsterklärend. ;)

    Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
    Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum. :D

  • Ah, ok, dann gehst du auf die "DsgnCPortXE.bpl".


    Hätte doch lieber eine Datei öffnen sollen und schauen, welche Endung danach drin steht. Sorry, war mein Fehler. :rolleyes:

    Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
    Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum. :D

  • Achja, VB6.... das war mein Einstieg ^^


    Mach es doch so, dass du einfach ein fertigen Farbkreis (Google) in eine Picturebox legst und dann beim Mousedown-Event die Pixelfarbe ausliest mit:

    Code
    Color = Pic.Point(x, y)
    R = Color Mod 256
    G = ((Color And &HFF00) / 256&) Mod 256&
    B = (Color And &HFF0000) / 6553


    Aber wäre es nicht besser auf VB.net umzusteigen? Man hat dann zwar die Abhängigkeit vom .net-Framework, aber 2.0 sollten ja nun die meisten haben und neuere braucht man dafür nicht... Dann hast du auch gleich deine Fenster im zeitgemäßen Aussehen (Buttons, Progressbars,..), ohne dich mit UserControls und Manifest-Dateinen rumzuägern ;)


    Oder aber gleich in Qt schreiben. Das ist ein GUI-Framework für C++ und läuft unter Win, Mac OS, Linux, Unix, Symbian, Windows CE, ......Google Earth, Skype, VLC, etc. wurden auch damit erstellt und die Community ist riesig.

  • also so sieht meine Auswertung der Farbe aus


    RGBcolor Global Definiert

  • Die Sache mit dem Chromoflex ist glaube ich genau das was ich haben möchte. DANKE.


    Nur welchen soll ich nehmen? Brauche ich auch den USB-Dongle dazu?


    Also noch mal mein Vorhaben: Ich möchte gerne zwei seperate RGB-Steuerungen. Eine soll den Innenraum des PCs ausleuchten (denke 2mal ca. 30-40 cm lange RGB-"Stangen"/Streifen sollten dazu ausreichen)
    Die Andere soll meine Plexifront hintergrundbeleuchten (da bräuchte ich ca. 4 einzelne RGB-Leds) Denke ich brauche dann zwei Chromoflex, oder?


    Muss man da noch irgendwelche Wiederstände oder Kondensatoren zwischensetzen?
    Kann ich den/die Chromoflex an einem Molex anschließen (wieviel Volt?)
    Welche LED(Streifen) und welche Kabel soll ich am besten nehmen?


    Wär nett wenn mir jemand eine "Einkaufsliste" zusammenstellen könnte.