Hallo, nach vielen kleinen µC Projekten würde ich mich nun gern mal ein an etwas umfangreicheres Projektvorhaben wagen. Ich habe eine PC Software geschrieben, die ich gern über ein Bedienpanel (Tischgerät) steuern möchte. Dafür gibt es dann einige Taster, Drehencoder, Schalter und Potis. Andersrum sollen auf der Bedieneinheit aber drei kleine OLEDs, LED Ringe und Status-LEDs angesteuert werden. Nun frage ich mich, wie die Kommunikation zwischen Hard- und Software sinnvollerweise vonstatten geht. Mein erster Ansatz war, das alles mittels einer seriellen Schnittstelle zu machen. Ein µC würde dann permanent sämtliche Zustände aller Bedienelemente einlesen und an die PC Software übermitteln. Für die Ansteuerung der Displays würde ich die relevanten Daten dann ebenfalls seriell vom PC an den µC übermitteln, der dann die eigentliche Ansteuerung der OLED Displays übernimmt. Allerdings frage ich mich, ob das überhaupt der richtige Weg ist. Wie macht man das denn z.B. in modernen Steuerungen (wie bspw. Lichtsteuerpulten oder Videoschnitt-Bedieneinheiten)? Irgendwelche Tips? Dankeschön :D
Funktioniert. ;) Deine Software muss halt die Schnittstelle abfragen. Habe ich mal Spaß halber mit den Arduino unter VB gemacht. Dim S_Port As New IO.Ports.SerialPort If S_Port.IsOpen Then S_Port.Close() End If S_Port.PortName = "COM10" S_Port.BaudRate = 9600 S_Port.Open() tx$ = hp_e_text_senden.Text + Chr(13) S_Port.Write(tx$) S_Port.Close() Das ist der ganze Code um an den Arduino an Com-10 zu senden. Eine modifizierte Variante und du empfängst auch Daten. Was ich damit sagen will, das ist nicht wirklich ein Hexenwerk und eigentlich sehr einfach. Dein Problem ist nur der Treiber den dein Gerät (wenn es nicht auf eine schon bekannte Technik passiert) in das System einzubinden. Gruß Pucki
Techmex schrieb: > Mein erster Ansatz war, das alles mittels einer seriellen Schnittstelle > zu machen. Macht man heutzutage eher über USB HID. Bei USB-fähigen µC ist i.d.R. ein Herstellerbeispiel dabei, das Maus oder Tastatur als USB HID implementiert. Übrigens geht HID auch über Bluetooth oder Bluetooth Low Energy, falls es mal drahtlos gehen soll.
Techmex schrieb: > Dafür gibt es dann einige Taster, Drehencoder Das heisst, wenige Daten, keine hohe Geschwindigkeit nötig, da ist eine serielle UART-Verbindung durchaus angemessen. Ob die mit Logikpegeln, RS232C oder diversen Bussen wie RS485 oder CAN hardwaremässig realisiert wird hängt dann von Anforderungen wie Leitungslänge und Störpotentialen ab, macht aber bei der Software kaum einen Unterschied. "Moderner" wäre USB, aber dafür brauchst du zumindest auf der Client-Seite zusätzliche Hard- und Software ohne dass das wirkliche Vorteile bringt. Vermutlich lässt sich das aber besser vermarkten, da die Kunden gern einfach eine USB-Stecker einstecken, andere Schnittstellen sind heute nicht mehr direkt verfügbar. Wenn man sich nicht den ganzen USB-Aufwand aufhalsen will, kann man einen billigen Adapter USB-seriell verwenden und den eigentlichen Datenaustausch seriell machen, als ob der PC noch eine serielle Schnittstelle hätte (hat er dann ja auch, eine virtuelle). Georg
Jim M. schrieb: > Macht man heutzutage eher über USB HID. Sehe ich auch so. USB 1.1 kann ja auch ein AVR direkt, ohne extra USB Controller. https://www.fischl.de/usbasp/ Es muss also kein WCH552 oder AT90USB1287 sein.
Guten Morgen und vielen Dank für eure Antworten. Mit USB HID habe ich bisher noch keine Erfahrung aber das klingt interessant ist vermutlich auch einfach mal der nächste Schritt. Zudem wollte ich eh schon seit 2 Jahren mal eine Minitastatur mit 4 Tasten (F3, F10, Enter, ESC) bauen, um damit meinen Markierlaser komfortabler zu steuern :D Das wäre ja vielleicht ein schönes Einstiegsprojekt für HID. Besten Dank!
Morgen, Ich habe zuletzt ein altes Sony Videoschnitt Pult umgebaut. Welches nur noch als PC-Interface dienen sollte. Da hatte ich mir die Frage auch gestellt wie ich die Befehle zum PC bekomme. Ich habe mich dann für MIDI entschieden. Bei mir waren es ca. 93 Taster, 10 Encoder, 120 LEDs und ein paar anzeige Werte fürs Dispay. Die MIDI Befehle sende ich über UART zum PC. µC -> FTDI -> USB -> PC Klappt sehr zuverlässig und die MIDI Pakete sind ja auch relativ einfach gestrickt (3 Byte). Gruß Fabian
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.