Halli hallo , ich wollte mich bevor ich mit der Uni fertig bin mit FPGAs und Mikrocontrollern beschäftigen, da in dem Unternehmen in dem ich anfangen will sowas sehr gut angesehn ist. Ich habe auch etwas gefunden was ich sogar privat gerne realisieren würde. Folgendes will ich basteln : Ich möchte gerne das DVI signal einer Grafikarte in einen FPGA einspeisen, und dann die Pixelfarben bestimmen, also A) xy-Positionen auf dem Bildschirm von Pixeln mit bestimmter Farbe B) Pixelfarben von Pixeln auf bestimmten xy-Positionen rausfinden Dafür bräuchte ich ja schonmal DVI-in. C) Idealerweise würde ich das DVI signal noch etwas verändern, geplant ist ein Overlay "über" das eigentliche Bild zu legen. Punkt C ist aber kein muss. Dafür bräuchte ich dann wohl DVI-out. Ansonsten müsste ich wohl einen DVI splitter an die Grafikkarte hängen und dann ein Kabel zu meinem Device und das andere zum Monitor führen. Anschließend rechne ich mit den aus A und B gewonnen Infos im FPGA rum und schicke anschließend auf dem Ergebnis der Rechnerei basierende Maus und Tastaturbefehle an den PC in dem die Grafikkarte steckt zurück. (bzw noch ein Overlay auf den DVI out) Es würde reichen wenn die Pixel 5 mal pro Sekunde ausgelesen werden. Das wars eigentlich auch schon. Ich weiß, das kann man alles auch komplett mit Software auf dem PC machen, ist aber zu langsam und ich möchte gerne nunmal eine externe Lösung haben sodass man den "Device" nenn ich es mal^^ überall hin mitnehmen kann, ohne dann auf einem anderen Rechner was installieren zu müssen. Die entsprechende Programmierung werd ich wohl hinbekommen. Ich bin sehr gut was neue Programmiersprachen lernen angeht. Allerdings tu ich mich mit der Hardware schwer. Ich hab jetzt schon viel gesucht und plane folgendes zu kaufen : Einmal davon 1 oder 2 als Maus oder Keyboard https://www.sparkfun.com/products/12640 Da bin ich durch dieses Tutorial drauf gekommen : https://www.sparkfun.com/tutorials/337 Für die DVI Ein und Ausgabe dieses Daugtherboard das über HSMC Interface kommuniziert: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=39&No=359 Und als Mainboard hatte ich dieses ins Auge gefasst : https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=830 Grund für das Mainboard sind für mich einmal # der HSMC Platz, # die Arduiono analog Pins in der Mitte mit denen ich wie ich glaube dann meine sparkfun USB devices ansteuern kann, # die 4 Ziffernanzeigen könnten mir noch sehr nützlich sein # es ist ein Starterkit und deswegen für mich als Einsteiger bestimmt ausreichend dokumentiert # ausserdem würde ich gerne ein Board haben wo ich noch viele andere Sachen mit machen kann und ich glaube das ist mit diesem möglich (ich hab schon viel über diese "shields" die man in der mitte aufstecken kann angeschaut, sehr interessant) # der Plexiglas Nies-Schutz ist sowieso das Beste ;-) Geldtechnisch macht es nichts, wenn die Hardware etwas zu teuer ist, solange es später funktioniert. Meine Eltern unterstützen mich da zum Glück etwas. Ich hab allerdings keine Ahnung ob die Hardware die ich mir jetzt rausgesucht hab so zusammen passen wie ich mir das vorstelle und bitte deswegen hier jetzt um Hilfe und Beurteilung oder Hinweise. Naja vielleicht erbarmt sich mir ja jemand von euch lieben Leuten :-) Okay dann viele Grüße jedenfalls erstmal ^^ Conny
corneliaW schrieb: > Das wars eigentlich auch schon. Ich weiß, das kann man alles auch > komplett mit Software auf dem PC machen, ist aber zu langsam > Es würde reichen wenn die Pixel 5 mal pro Sekunde ausgelesen werden. Dann ist eine Softwarelösung mit Prozessor garantiert nicht zu langsam. So lausig schlecht kann man einen Prozessor gar nicht programmieren... corneliaW schrieb: > ich wollte mich bevor ich mit der Uni fertig bin Idealerweise hättest du damit vor der Uni schon angefangen... > mit FPGAs und Mikrocontrollern beschäftigen, Du solltest dich genauer festlegen. Es gibt Leute, die leben vom Einen und Leute, die leben vom Anderen. Und eines dürfte klar sein: in einem (halben?) Jahr lernst du garantiert nicht Beides! corneliaW schrieb: > Ich bin sehr gut was neue Programmiersprachen lernen angeht. Allerdings > tu ich mich mit der Hardware schwer. Aufpassen: VHDL und Verilog sind KEINE Programmiersprachen. Es sind HDL = HardwareBESCHREIBUNGSsprachen. Und um etwas beschreiben zu können, musst du dir selber ein Bild davon machen können. Auch deine sonstige Terminologie deutet darauf hin, dass du mit FPGAs noch 0 Erfahrung hast. Daher meine Einschätzung: ohne bisherige Erfahrung mit FPGAs wirst du für dieses Projekt in Teilzeit (so als Hobby nebenher) mindestens 2 Jahre durchgängige Beschäftigung haben. Auch am Wochenende... Mein Tipp: kauf dir das FPGA-Kit und fang einfach an. Mit dem Blinklicht, dann das Lauflicht, dann ein paar Schnittstellen (VGA,PS2,RS232). Und dann wird das Gras schon wieder grün... Dann bist du bereit für dein recht anspruchsvolles Projekt, wo schon das Timing einiges Kopfzerbrechen machen wird. corneliaW schrieb: > # die Arduiono analog Pins in der Mitte mit denen ich wie ich glaube > dann meine sparkfun USB devices ansteuern kann Du träumst! Da steht:
1 | board includes hardware such as Arduino Header, on-board USB Blaster |
Das bedeutet nur, dass da ein paar Pinreihen mit Arduino-Spacing angeordnet sind. Und der USB-Blaster ist der Programmer für das Config-PROM des Boards. Mit dieser USB-Schnitte wirst du aber keine Verbindung zum PC oder gar als Master zu irgendwelchen Devices aufbauen können...
:
Bearbeitet durch Moderator
corneliaW schrieb: > Anschließend rechne ich mit den aus A und B gewonnen Infos im FPGA rum > und schicke anschließend auf dem Ergebnis der Rechnerei basierende Maus > und Tastaturbefehle an den PC in dem die Grafikkarte steckt zurück. (bzw > noch ein Overlay auf den DVI out) > Es würde reichen wenn die Pixel 5 mal pro Sekunde ausgelesen werden. Ich weiß nicht, ob es nur mir so geht, aber ich habe den Sinn/die Funktionsweise deines Projekts nicht ganz nachvollziehen können. Du willst mittels Bildsignalen eine Maus und eine Tastatur simulieren? Quasi: Wenn im Cluster X die Farbe rot überwiegt, führe '\r' aus. So? Was soll da für ein nachvollziehbares Verhalten rauskommen? Und welche Aufgabe sollen die Arduino-Boards haben?
Hi Leute Danke erstmal für die schnellen Antworten!! Und keine Sorge, ich fühl mich keineswegs irgendwie auf den Schlips getreten, dass ich mich auf den Boden der Tatsachen zurück holt, das find ich eher gut! Lothar Miller schrieb: > Dann ist eine Softwarelösung mit Prozessor garantiert nicht zu > langsam. Kann sein, dass du recht hast. Allerdings ist je nach Betriebssystem und anderer Faktoren das nicht immer umbedingt leicht möglich. Und es soll halt ohne irgendwas installieren zu müssen laufen. Lothar Miller schrieb: > Auch deine sonstige Terminologie deutet darauf hin, dass du mit FPGAs > noch 0 Erfahrung hast. Stimmt :-) Aber das werd ich ändern^^ Lothar Miller schrieb: > Mein Tipp: kauf dir das FPGA-Kit und fang einfach an. Ich werde deinen Rat befolgen und es mir heute bestellen :-) Lothar Miller schrieb: > Aufpassen: VHDL und Verilog sind KEINE Programmiersprachen. Macht nix, ich werd das sicher genauso schnell lernen, vielleicht etwas langsamer^^ Da bin ich sehr optimistisch. Lothar Miller schrieb: > Du träumst! Da steht:board includes hardware such as Arduino Header, > on-board USB Blaster > Das bedeutet nur, dass da ein paar Pinreihen mit Arduino-Spacing > angeordnet sind. Also wie ich das verstanden habe sind das trotzdem stink normale analog Pins die ich ansteuern kann oder ? Das heißt 2 bis 5 Kabel rein in die Arduino Pinreihen und ab damit zum anfangs erwähnten MicroPro von Sparkfun der dann die analogsignale vom FPGA board empfängt und dann mit seinem eigenen MCU über seine eigene USB Schnittstelle die Maus für den PC emuliert. Müsste doch klappen, oder seh ich das falsch ? (Sorry ich glaub das hab ich in meinem Anfangspost nicht klar beschrieben. Das die USB Schnittstelle am FPGA nur der Programmer ist wusste ich. Deswegen hatte ich mir ja überlegt die MicroPro als Maus/KeyboardEmulator zu benutzen da ich die schön über die analogen Arduino Pins ansteuern kann) Danke erstmal dir Lothar für deine lange antwort! Und jetzt zu Björn. Björn G. schrieb: > Ich weiß nicht, ob es nur mir so geht, aber ich habe den Sinn/die > Funktionsweise deines Projekts nicht ganz nachvollziehen können. Björn G. schrieb: > Wenn im Cluster X die Farbe rot überwiegt, führe '\r' aus. > So? Ich glaub wir meinen das selbe :-) Also für den Anfang würde es reichen wenn ein Pixel mit zb der Farbe 0x123456 gefunden wird sich die Maus dann dahin bewegt. Weiter soll auch noch sowas passieren wie : Wenn pixel 100,100 rot ist und pixel 200,200 grün , dann schicke die Tastenkombination xyz. Wenn das erstmal klappt, dann werd ich dem ganzen noch mehr Intelligenz einhauchen damit es komplexere Strukturen erkennen kann, die nicht nur aus einem Pixel bestehen. Björn G. schrieb: > Und welche Aufgabe sollen die Arduino-Boards haben? Es sind keine Arduino Boards eingeplant. Ich will über die Arduino Pins allerdings, da die meines wissens analog sind, zwei Sparkfun MicroPro ( https://www.sparkfun.com/products/12640 )ansteuern, die dann als Maus und Tastatur fungieren. Oder hab ich da was falsch verstanden und das klappt so nicht? An dem FPGA Board was ich mir da rausgesucht hab finde ich gleichzeitig noch gut, dass das Board auch die Arduino Boards unterstützt, da ich dann mit dem Board auchnoch sonst so viel machen kann, wenn ich denn möchte. Sooo, dir auch vielen Dank für deinen Post lieber Björn! Was ich gerne noch wissen würde ist, ob die Hardware Zusammenstellung denn die von mir überlegten Aufgaben Lösen kann. Grade auch bei dieser DVI In Out erweiterung weiß ich auch überhaupt garnicht Bescheid. Ob das ganze am Ende lange dauert bis das fertig ist, ist halb so wild. Ich werd dann heute erstmal im Bastelshop bei uns in der Stadt vorbeischauen und mal sehen was es da so gibt. Ich hoffe wir lesen uns nochmal! Grüße, Conny
Björn G. schrieb: > ... > Ich weiß nicht, ob es nur mir so geht, aber ich habe den Sinn/die > Funktionsweise deines Projekts nicht ganz nachvollziehen können. > Du willst mittels Bildsignalen eine Maus und eine Tastatur simulieren? > Quasi: Wenn im Cluster X die Farbe rot überwiegt, führe '\r' aus. > So? > > Was soll da für ein nachvollziehbares Verhalten rauskommen? > ... Online-Kartenspiele spielen (P-o-k-e-r) oder in Online-Rollenspielen automatisch Gold schürfen lassen und damit Geld verdienen, so was in der Art eben.
corneliaW schrieb: > Also wie ich das verstanden habe sind das trotzdem stink normale analog > Pins die ich ansteuern kann oder ? Es sind sicher keine analogen Pins. Es sind bestenfalls IO-Pins mit 3,3V > Das heißt 2 bis 5 Kabel rein in die > Arduino Pinreihen und ab damit zum anfangs erwähnten MicroPro von > Sparkfun der dann die analogsignale vom FPGA board empfängt und dann mit > seinem eigenen MCU über seine eigene USB Schnittstelle die Maus für den > PC emuliert. Müsste doch klappen, Mit ein wenig Programmieraufwand: Ja. > oder seh ich das falsch ? Wenn du lange genug studierst, dann schon. Sonst könnte es damit kollidieren was corneliaW schrieb: >>> bevor ich mit der Uni fertig bin
:
Bearbeitet durch Moderator
Keine Ahnung welches Board er genau meint, dieses hier http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=830&PartNo=1 hat auch analoge Pins laut Beschreibung, also wohl einen AD/DA Wandler mit an Board.
corneliaW schrieb: > Also wie ich das verstanden habe sind das trotzdem stink normale analog > Pins die ich ansteuern kann oder ? Im Blockdiagramm auf der "Specification" Seite sieht man das gut: Es sind acht analoge EINGANGE vorhanden, mit einem ADC von Analog (mit SPI zum FPGA). Zusätzlich ist noch ein AD/DA Wandler drauf für die Audio-Schnittstellen (Kopfhörer/Mikrofon) > Das heißt 2 bis 5 Kabel rein in die > Arduino Pinreihen und ab damit zum anfangs erwähnten MicroPro von > Sparkfun der dann die analogsignale vom FPGA board empfängt und dann mit > seinem eigenen MCU über seine eigene USB Schnittstelle die Maus für den > PC emuliert. Müsste doch klappen, oder seh ich das falsch ? > (Sorry ich glaub das hab ich in meinem Anfangspost nicht klar > beschrieben. Das die USB Schnittstelle am FPGA nur der Programmer ist > wusste ich. Deswegen hatte ich mir ja überlegt die MicroPro als > Maus/KeyboardEmulator zu benutzen da ich die schön über die analogen > Arduino Pins ansteuern kann) Ja, der zweite Teil funktioniert prinzipiell, du musst nur die Informationen vom FPGA mit einem anderen System zum MicroPro bringen (z. B. SPI). Ein MicroPro kann auch problemlos gleichzeitig Maus UND Tastatur spielen. Mit den Arduino Libraries bist du da auch schneller fertig als dir ein VHDL Buch per Post geliefert wird.
Hallo !! Man das geht ja hier richtig fix mit euren Antworten!! Gustl Buheitel schrieb: > Keine Ahnung welches Board er genau meint, dieses hier > > http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=830&PartNo=1 > > hat auch analoge Pins laut Beschreibung, also wohl einen AD/DA Wandler > mit an Board. Genau das meine ich! Hatte ich in meinem ersten Post ja verlinkt und geschrieben das ich das als mein Mainboard nehmen will. Lothar Miller schrieb: > Mit ein wenig Programmieraufwand: Ja. Spitze! Das wird das erste sein, was ich ausserhalb von Tutorials, die ich vorher wohl machen muss, angehen werde! Lothar Miller schrieb: > corneliaW schrieb: >> Also wie ich das verstanden habe sind das trotzdem stink normale analog >> Pins die ich ansteuern kann oder ? > Es sind sicher keine analogen Pins. Es sind bestenfalls IO-Pins mit > 3,3V Ich glaub doch. Wenn du auf https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=830 gehst und auf Spezifikation klickst dann steht da unter Expansion I/O "Arduino header, including analog pins" Hi Christoph! Christoph Z. schrieb: > Es > sind acht analoge EINGANGE vorhanden, mit einem ADC von Analog (mit SPI > zum FPGA). Hab ich auch grad gefunden! Das steht ja auf der Spezifikationsseite unter ADC. "8-Channel Analog Input. Input Range : 0V ~ 4.096V" Das schließt damit wohl aus, dass ich über diese Pins dann Analog Output erzeuge, oder ? Weil weiter oben steht ja unter Expansion I/O "Arduino header, including analog pins" Christoph Z. schrieb: > Ein MicroPro kann auch problemlos gleichzeitig Maus UND > Tastatur spielen. Mit den Arduino Libraries bist du da auch schneller > fertig als dir ein VHDL Buch per Post geliefert wird. Genau deswegen will ich den MicroPro benutzen, weil der das ganze Maus und Tastatur Konstrukt schon als Demo mitbringt und ich das nur etwas anpassen brauch :-) Christoph Z. schrieb: > du musst nur die > Informationen vom FPGA mit einem anderen System zum MicroPro bringen (z. > B. SPI). Wie kann ich das denn machen? Also die 8 Input Analog Pins sind ja irgendwie mit dem SPI verbunden denk ich mal, aber Input bringt mir ja nix. Ansonsten hab ich noch gesehn, das Board hat auch ein UART to USB-B , neben dem USB Blaster zum Proggen. Kann ich damit nicht Notfalls Maus und Tastatur emulieren ? (Möchte ich nicht so gern, da der MicroPro das schon total einfach realisieren kann) Viele Grüße, Conny
corneliaW schrieb: > Das schließt damit wohl aus, dass ich über diese Pins dann Analog Output > erzeuge, oder ? Richtig. Ein AD-Wandler macht die umgekehrte Richtung. corneliaW schrieb: > Ansonsten hab ich noch gesehn, das Board hat auch ein UART to USB-B , > neben dem USB Blaster zum Proggen. Kann ich damit nicht Notfalls Maus > und Tastatur emulieren ? Diese Tastatur- und Mausgeschichte wird eines der kleinen Randprobleme deiner Arbeit sein. Interessanter ist eher, wie du das Bild einliest und auswertest. Da würde ich anpacken... BTW: bitte nicht Plenken! Wo lernt man denn sowas? Satzzeichen gehören direkt ans letzte Wort im Satz.
:
Bearbeitet durch Moderator
Hi Lothar Lothar Miller schrieb: >> Das schließt damit wohl aus, dass ich über diese Pins dann Analog Output >> erzeuge, oder ? > Richtig. Ein AD-Wandler macht die umgekehrte Richtung. Macht nix, hab grade gesehen, dass der MicroPro auch 12 x Digital I/Os (5 are PWM capable) hat :-) Lothar Miller schrieb: > Interessanter ist eher, wie du das Bild einliest und > auswertest. Da würde ich anpacken... Einlesen wollte ich das Bildsignal hiermit : http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=39&No=359&PartNo=2#section Auswerten? Also ich wollte ja quasi nur die position eines Pixels bestimmter Farbe finden oder Farbe eines Pixels an bestimmter Position. Also beim VGA Signal wär es ja so, das pro 1Hz Monitor Takt irigend ein startsignal kommt, dann die RGB Farben vom erste Pixel in Zeile 1 übertragen werden, dann vom zweiten, am Ende der Zeile kommt dann ein (Horizontal?)VertikalSync Signal, dann beginnt die nächste Zeile. und wenn alle Zeilen abgearbeitet sind kommt der andere Sync und der Spaß geht von vorne los. Ich denke mal bei DVI wird das Signal ähnlich einfach sein. Zum Vorgehen: Ich würde quasi nur die Pixel zwischen den Syncs zählen, weiß dadurch die Auflösung. Dann Check ich bei jedem pixel ob die Farbe passt und setze nen Zähler hoch. Sobald die Farbe passt rechne ich durch den Zähler aus wo der Pixel auf dem Bildschirm ist. Fertig :-) (Ich bereite mich schonmal auf ein "So einfach ist das nicht" vor^^) Viele Grüße, Conny
Zum Thema Signal einlesen kannst du dir ja bei einem hdmi moodlight den Code klauen. Hdmi und dvi verwenden die selben Signale, nur kann (aber nicht muss) das hdmi Signal noch verschlüsselt sein.
corneliaW schrieb: > Einlesen wollte ich das Bildsignal hiermit : > http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=39&No=359&PartNo=2#section Glück gehabt, so wie es aussieht, nimmt dir der Adapter 90% der wirklich komplizierten Arbeit ab. Es wird tatsächlich klappen, einfach ab den Syncimpulsen mitzuzählen...
Hi Max! Max D. schrieb: > Zum Thema Signal einlesen kannst du dir ja bei einem hdmi moodlight den > Code klauen. Hdmi und dvi verwenden die selben Signale, nur kann (aber > nicht muss) das hdmi Signal noch verschlüsselt sein. Danke für den Tipp, von diesem ominösen moodlight hab ich schonmal irgendwo was gelesen wo auch viel Code bei war. Ich schau später mal wenn ich wieder am richtigen Rechner sitze ob ichs noch in der Chronik finde. Lothar Miller schrieb: > Es wird tatsächlich klappen, einfach ab den > Syncimpulsen mitzuzählen... Hi Lothar, freu :-) Na dann hat meine Einkaufsliste wohl schon so gepasst wa? Dann werd ich mal einkaufen^^ Vielen Dank für deine Hilfe jedenfalls! Viele Grüße, Conny
Ich hab ein paar links für dich : http://hackaday.com/2014/08/02/raspi-ambilight-integrated-in-a-19-rack-packs-lots-of-peripherals/ http://hackaday.com/2013/07/08/a-very-small-hdmi-display/ http://hackaday.com/2012/01/21/overlaying-video-on-encrypted-hdmi-connections/
>Hdmi und dvi verwenden die selben Signale, nur kann (aber >nicht muss) das hdmi Signal noch verschlüsselt sein. Für DVI gibt es HDCP, dass sollte doch wohl auch eine Art Verschlüsselung sein? Macht DVI also (in dieser Hinsicht) nicht zwingend so viel leichter...
Ich dachte hdcp gäbe es nur bei hdmi. Aber selbst wenn nicht: der masterkey ist ja geknackt, siehe meinen dritten link
Hallo liebe Leute, ich wollte mich nochmal bei euch allen für die super Hilfe bedanken! Hab Montag das FPGA Cyclone 5 Starterkit bekommen, hab nen Buch über FPGAs verschlungen und hab viel gegoogelt und seit Montag kaum geschlafen :) Hab das Board jetzt so weit, das es DVI Signale vom PC einließt, an den Monitor weitergibt, und ich kann wie gewünscht Pixelfarben auslesen von Koordinaten oder Pixel mit bestimmten Farben aufspüren. Hab sogar schon soweit programmiert, dass das Board erste Strukturen in den Pixeln erkennen kann. Was noch nicht klappt ist die richtige Farbdarstellung auf dem Monitor, irgendwie ist da noch ein Fehler beim Transmitten drinne, aber das ist eher was optisches und hindert die Funktionsweise nicht. Die Maus und Keyboard Emulation hab ich noch nicht angefangen, da ich noch auf ein Päckchen warte, aber das wird Pups einfach denk ich^^ Ganz ganz lieben Dank an euch alle jedenfalls nochmal!! @Lothar Falls ich nochmal Hilfe bräuchte bei meinem Code, dann mach ich besser nen neuen Post, oder ? Grüße, Conny
corneliaW schrieb: > Hab das Board jetzt so weit Herzlichen Glühstrumpf! > @Lothar Falls ich nochmal Hilfe bräuchte bei meinem Code, dann mach ich > besser nen neuen Post, oder ? Richtig, besser is das...
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.