Projekt -> Scheibenfarbe erkennen und über USB an PC ausgeben.

  • Vielleicht kann ein RPi ...A ebenfalls als USB-Device konfiguriert werden?

    Nö. ;) Es wird überall "turn into a mass storage device" beschrieben. Tastaturen sind doch HID, oder habsch da jetzt einen Denkfehler und das eine (HID) ist Teil des anderen (MSD)? :/


    Grüße, STF

  • [OT]

    ich bin der Ansicht, dass gerade die Vielzahl von Ideen fruchtbar ist

    das kann so sein, dann darfst Du für Deine Lösung werben, aber wenn Du gegen die andere argumentierst läßt Du die Vielzahl nicht zu.

    Um Vorteile der einen oder der andren Lösung zu bewerten, müssen die Anforderungen und Schnittstellen klar sein.

    [/OT]

  • Nö. ;) Es wird überall "turn into a mass storage device" beschrieben. Tastaturen sind doch HID, [...]

    Danke!

    Oder wie Loddar Matthäus zu sagen pflegt: Again what learned!


    Tastaturen, Mäuse, Touchpanels, ... melden sich bei der USB-Enumeration allesamt als HID-Endgeräte an, USB-Sticks, (echte) USB-Festplatten, aber auch USB-Cardreader melden sich als MSD-Endgeräte an.

    HID: Human Interface Device
    MSD: Mass Storage Device

  • Geiler Thread - wie immer wird auf der hälfte der Strecke nicht das Problem behandelt sondern die user spielen mal wieder "wer hat den längeren"....


    Jetzt misch ich mich mal ein - warum soviel Hardware wenns mit opencv auch geht? Kostet nix denn ne Cam und nen Rechner hat man irgendwo rumliegen. Ich wollte den Code eigentlich nicht so veröffentlichen aber wenn der Threadersteller will lass ich ihm n Teil meine Frässteuerung zukommen - die errechnet die möglichen Farben im HSV Raum selbst im Bild und löst die einzelnen Farben zu Konturen auf. Kann man ja noch umschreiben das nur die Farbe ausgegeben werden.

  • warum soviel Hardware wenns mit opencv auch geht? Kostet nix denn ne Cam und nen Rechner hat man irgendwo rumliegen.

    Das halte ich für keine allgemeingültige Aussage. Außerdem fragt BigRib im Eingangspost explizit nach Hardware.


    wenn der Threadersteller will lass ich ihm n Teil meine Frässteuerung zukommen - die errechnet die möglichen Farben im HSV Raum selbst im Bild und löst die einzelnen Farben zu Konturen auf.

    Das würde die OpenCV-Lösung vermutlich deutlich weniger aufwendig machen. Wenn man bei Null anfängt, erschiene mir eine andere Lösung aber einfacher.

  • Ein möglicher Ansatz, die Farbinformation auch per Tastatureingabe an den PC zu übermitteln wäre dieser hier:

    Es gibt Scanner, die das Scanergebnis zum Beispiel von Barcodes als Tastatureingabe an den PC weiterleiten. Soweit mir bekannt, werden diese Scanner ähnlich wie Deine Waage mit einer richtigen Tastatur hintereinander geschaltet.

    Nehmen wir mal an, es wäre nun möglich, einen solchen Scanner zusammen mit der Waage so an den PC anzuschließen, dass die Komponenten sich nicht gegenseitig stören. Dann könntest Du die erkannte Farbe mit dem weiter oben beschriebenen Aufbau als Barcode auf einem Display anzeigen lassen und dann mit dem Scanner in die Wörter umwandeln, die Dein PC braucht. Für das Erzeugen von Barcodes zum Anzeigen auf Displays wird es sicherlich auch offene Bibliotheken geben.

    Mein Github-Repository ist hier zu finden.

  • Hallöchen zusammen, sorry kann immer nur abends antworten.


    Vielen Dank erstmal das sich so viele um meine Idee kümmern und Lösungsansätze präsentieren bzw. Denkansätze.


    Ich versuche erst einmal die offenen Fragen zu beantworten. Bei meiner Software handelt es sich lediglich im ein Shop-Backend auf HTML/JS/PHP Basis.


    Ich lege die Scheibe auf die Waage, die Waage gibt das Gewicht an eine Software die mit der Waage mitgeliefert wird und schreibt das Gewicht als Text an die aktuell Cursor Position. Da mein Cursor in dem Moment als Auswahl in dem "Select"-Feld steht, wählt es mir so die richtige Zeile.


    Beispiel: Die Waage übergibt 172, das Programm schreibt 172 an die aktuelle Position und wählt so die Zeile die mit 172 anfängt. Könnt ihr selbst mal testen bei Dropdown Feldern.


    Die Waagensoftware liefert dann noch eine "Info" in Form einer Funktionstaste, dass die Zahl komplett ist und das wird wiederum von Javascript abgefangen, so das automatisch das nächste Select-Feld ausgewählt ist.


    Nun schaue ich mir die Scheibe an und überlege, welche der von mir vordefinierten Farben könnte die Scheibe haben. Ist sie Rot, tippe ich auf meiner Tastatur "rot" ein und so wird wie bei der Waage auch, die erste Zeile ausgewählt, die mit Rot beginnt.

    Genau das eben beschriebene möchte ich aber nicht mehr machen. Ich möchte das mir dieses Projekt zum einen die Frage abnimmt, welche Farbe es ist, und zum zweiten soll sie die Farbe als Text schreiben, als ob ich auf meiner Tastatur schreibe.


    Ich habe an meinem PC noch zwei Barcode Scanner die beide über USB angeschlossen sind und auch jeweils eine "Tastatur" simulieren. Somit mache ich mir keine Sorgen, das auch ein weiteres "Gerät" was sich als Tastatur ausgibt, hier funktionieren sollte.



    Wenn es auch mit anderen Mitteln als einem PI und Kamera funktioniert, habe ich natürlich auch nichts dagegen ;D


    Ich hoffe ich konnte ein wenig Licht ins Dunkle bringen.

  • Falls du einen Arduino mit Farbsensor in Erwägung ziehen möchtest... hier wird gezeigt, wie du einen Farbsensor mit dem Arduino auslesen kannst und hier zeigt jemand, wie er eine USB-Tastatur (HDI) mit einem Arduino simuliert.

    Zu dem von einem Farbsensor am Arduino ermittelten Wert könnte also in einer hinterlegten Tabelle oder in ähnlicher Form das zugehörige Farbwort ermittelt werden und dann per USB/HDI-Tastatursimulation an den PC übergeben werden.
    Was du brauchst ist ein Arduino (z.B. Nano), ein Farbsensor, eine Lochrasterplatine, ein paar Bauteile, Lötzeug, etwas Geschick, Geduld und du musst dich halt ggf. in die Programmierung von Arduino einarbeiten. Da du "was Programmieren angeht nicht unbeholfen" bist, kann ich mir gut vorstellen, dass du das hinkriegst.


    ...dann darfst Du für Deine Lösung werben, aber wenn Du gegen die andere argumentierst läßt Du die Vielzahl nicht zu.

    Wenn du meine Sätze "OpenCV finde ich hier zu aufwändig [...]" und "Open CV ist meiner Meinung nach nicht nötig". so interpretierst, dass ich ich damit "gegen andere" argumentiere, solltest du beachten, dass ich sagte "finde ich" und "meiner Meinung nach" - es ist also eindeutig meine persönliche Meinung. "Zu aufwändig" und "nicht nötig" heißt auch keinesfalls, dass ich es für nicht möglich oder nicht zielführend halte. Im Übrigen hab ich auch angegeben, warum ich dieser Meinung bin. Jeder darf mich gerne davon überzeugen, dass es mit OpenCV leichter ist als mit einem Farbsensor oder dass OpenCV zwingend nötig ist, um die Aufgabe zu lösen. Allerdings sehe ich von ds dazu bisher nichts konkretes. Warum ich mir für meinen Vorschlag ein abfälliges "na dann mach mal ... ist ja scheinbar alles kein Problem für Dich." anhören muss, kann ich nicht nachvollziehen.
    Klar ist lediglich, dass ds gegen mich argumentiert mit Aussagen wie meine Beiträge seien nicht zielführend, ich sei gegen alles und meine Vorschläge seien nicht realistisch und für den TO nicht machbar.

    Dein Kommentar, Kle, sollte sich folglich eher gegen ds richten als gegen mich, denn er argumentiert gegen mich, nicht ich gegen ihn. Ich jedenfalls habe seinen Vorschlag nie als "nicht zielführend", "unrealistisch" oder "nicht machbar" bezeichnet - er meinen aber sehr wohl. Hier wird ganz offenbar mit zweierlei Maß gemessen.

    Außerdem bedeutet begründete Kritik nicht, dass man etwas nicht zulässt. Wenn ich meine Lösung als billiger und zuverlässiger bezeichne und eine andere Lösung im Vergleich als unnötig aufwändig einschätze, heißt das noch nicht, dass es nicht trotzdem gute Gründe geben kann, sich für diese Lösung zu entscheiden. Dann darf und sollte jeder seine Pros und Contras vortragen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Edited once, last by Gnom ().

  • Ich habe an meinem PC noch zwei Barcode Scanner die beide über USB angeschlossen sind und auch jeweils eine "Tastatur" simulieren. Somit mache ich mir keine Sorgen, das auch ein weiteres "Gerät" was sich als Tastatur ausgibt, hier funktionieren sollte.

    Dann steck' doch bitte einfach mal eine weitere Tastatur an und probier' aus, ob Du auf dieser dann die Farbe eingeben kannst.

    Wenn das klappr, dann ist zumindest diese Frage erst mal beantwortet.

    Damit stellt sich aber gleich die nächste Frage: wann soll das als Tastatur getarnte Gerät die Farbe eintragen?

    Dass das Eingabefeld den Fokus erhält, bekommt es ja nicht mit.

    Also brauchst Du eine Möglichkeit das Auswerten der Farbe(n) anzustossen.

    btw: wie war das mit dem Rand? ist das jetzt ein zusätzliches Eingabefeld?

    cu,

    -ds-

  • Also ich hab eben mal aus meinen Code kopiert wie ich in python die Farbe aus nem Bild zieh:

    Da ich mit recht großen Bildern arbeite werden diese erst zu thumbnails geschrumpft um die Rechenzeit niedrig zu halten und die Ausgabe schon im Vorfeld zu glätten. Und das ganze geht ohne viel Schnickschnack mit colorsys.


    Wenn das Bild jetzt nur aus einer Farbe besteht bekommt man als Ausgabe Werte die recht nahe bei einander liegen. Wenn man möchte kann man die noch zusammensortieren lassen. Also ich finde das jetzt nicht unbedingt so aufwendig zu programmieren.


    Nebenbei würd ich mal gucken in was für nem Format die Software die Daten speichert - wenns z.b. ne Datenbank anlegt würde ich nicht über die GUI gehn sondern die Daten direkt da reinfüttern.