hallo, ich möchte meinen thin-client-media-PC mit einem kleinen (Raspberry-) LCD ausstatten. Das Teil soll im Prinzip wie ein normales Radio funktionieren und die jeweils relevanten Parameter auf einem kleinen LCD anzeigen. Wie kann der PC das LCD ansteuern? Grafikkarte mit VGA/DVI-Anschluss wird direkt nicht gehen? Also einen Arm oder AVR als Controller und Signale per USB oder Com an den Controller? Gibts dafür brauchbaren Code oder muss ich das selbst zusammenstoppeln? Müsste es eigentlich ja aus dem Raspberry-Pi-Bereich geben. Danke für jeden Hinweis.
Möglicherweise bringt Dir ja das hier schon was: https://www.heise.de/ct/artikel/Maeusekino-290316.html
Oder einfach per SPI. Nicht super von den zu erreichenden FPS, aber "good enough" für das meiste. http://www.ebay.de/itm/152289941365 https://youtu.be/QwUiBNCmBho?t=725 EDIT: angeblich isses sogar schon im Raspbian Images direkt drinnen, habs aber noch nicht probiert.
:
Bearbeitet durch User
Rufus Τ. F. schrieb: > Möglicherweise bringt Dir ja das hier schon was: Das ist in etwa das, was ich suche. Leider vom Aufbau her nicht ganz einfach. usb-to-usart-Adapter an AVR/ARM. Wie das auf mcu-Seite funktioniert ist mir relativ klar. Jetzt bräuchte ich code für die Auswertung per vb.net. Marcus W. schrieb: > Oder einfach per SPI. Wenn der PC einen Spi-Ausgang hätte. Problem ist ja die Schnittstelle.
Habe jetzt diesen ms-Empfangscode gefunden. Wie wird diese Funktion in ein VB.net-Programm eingebunden? Gibt es beim PC eine Art Interrupt, der die Funktion starten kann oder muss die Funktion gepollt werden? Wenn ja, Aufruf per Timer? in welchem zeitlichen Abstand?
1 | Function ReceiveSerialData() As String |
2 | ' Receive strings from a serial port. |
3 | Dim returnStr As String = "" |
4 | |
5 | Dim com1 As IO.Ports.SerialPort = Nothing |
6 | Try
|
7 | com1 = My.Computer.Ports.OpenSerialPort("COM5") |
8 | com1.ReadTimeout = 10000 |
9 | Do
|
10 | Dim Incoming As String = com1.ReadLine() |
11 | If Incoming Is Nothing Then |
12 | Exit Do |
13 | Else
|
14 | returnStr &= Incoming & vbCrLf |
15 | End If |
16 | Loop
|
17 | Catch ex As TimeoutException |
18 | returnStr = "Error: Serial Port read timed out." |
19 | Finally
|
20 | If com1 IsNot Nothing Then com1.Close() |
21 | End Try |
22 | |
23 | Return returnStr |
End Function
Wozu brauchst Du eine serielle Empfangsroutine, wenn Du ein Display an einen PC anschließen willst?
Rufus Τ. F. schrieb: > Empfangsroutine wenn ich einen Arm/AVR für das LCD anschließe, kommt da gleich ein ir-empfänger drauf. Die ir-Daten sollen an den PC weitergegeben werden. Vielleicht auch noch Taster z.B. als Radio-Stationstasten, die unbedingt ausgeführt werden.
grundschüler schrieb: > kommt da gleich ein ir-empfänger drauf. Die ir-Daten sollen an den PC > weitergegeben werden. LIRC. Ist fertig entwickelt, und Du musst Dir keinen Kopf drum machen. Wenn Tasten, dann USB-HID.
Rufus Τ. F. schrieb: > LIRC. Ist fertig entwickelt, und Du musst Dir keinen Kopf drum machen. Den Datenaustausch per Uart muss ich eh hinbekommen. ich habe 20 code-Zeilen eigenen IR-Code, der zuverlässig Funktioniert und über den ich mir auch keinen Kopf mehr machen muss. Ich werde mir winlirc aber mal ansehen, wenn der bestellte usb-ir-Empfänger da ist. Probleme habe ich mit dem Uart-Empfang auf dem mcu:
1 | v u32 ct_wr_in_rx; |
2 | v u32 ct_rd_from_rx; |
3 | v u8 zlx; |
4 | |
5 | |
6 | ISR(USART_RX_vect) |
7 | {
|
8 | led1_tog; |
9 | |
10 | if(ct_rd_from_rx==ct_wr_in_rx){ |
11 | ct_rd_from_rx=0; |
12 | ct_wr_in_rx=0; |
13 | }
|
14 | |
15 | |
16 | rxBuffer[rxWritePos] = UDR0; |
17 | |
18 | //nur zum testen: lg(1+zlx++,10);li(rxWritePos);lw("/");li(rxBuffer[rxWritePos]);lw("/");
|
19 | if(zlx==3)zlx=0; |
20 | |
21 | rxWritePos++; |
22 | ct_wr_in_rx++; |
23 | if(rxWritePos == RX_BUFFER_SIZE)rxWritePos=0; |
24 | rxBuffer[rxWritePos] ='/0'; |
25 | stringRxFlag = 1; |
26 | |
27 | }
|
Ich sende 'a','b','c' und erhalte 13,98,99. 98+99 stimmen. 13 ist eine Zeilenschaltung. 'a' wird geschluckt. Ist das normal? also immer ein Byte zusätzlich senden? Für den rx-buffer hätte ich gerne ausgereiften fertigen Code, da ich den nicht selber machen will. Kannst du mir da weiterhelfen? Über google schwer zu finden.
grundschüler schrieb: > ich möchte meinen thin-client-media-PC mit einem kleinen (Raspberry-) > LCD ausstatten. Das Teil soll im Prinzip wie ein normales Radio > funktionieren und die jeweils relevanten Parameter auf einem kleinen LCD > anzeigen. Vergiss das kleine Raspberry-Display. Es gibt einfachere und bessere Lösungen. Z.B. ebay # 252813067357. 10.4" TFT-Display mit VGA-Anschluss. Klemmst Du an und funktioniert, und das ohne eine Zeile Code. Oder ebay # 112332939968. 7" Display mit VGA und HDMI-Anschluss. Auch Plug&Play. Da steht zwar Raspberry bei, aber solange da HDMI oder VGA als Eingang vorhanden ist, geht das auch am PC. Oder ebay # 142152447283. 5" Display mit HDMI. fchk
Frank K. schrieb: > Es gibt einfachere und bessere Lösungen. Hab ich mir angeschaut. ich könnte auch einen alten 17"er + Tastatur + Maus anschließen und hätte dann einen vollwertigen pc. Die Aufgabenstellung ist aber halt anders. Außerdem finde ich den Anschluss einer mcu an einen PC als i/o-Schnittstelle für Sensoren, Relais, Tasten, Kleindisplays ausbaufähig. Im Prinzip ein Kleincomputer wie Raspberry pi nur mit vollwertigem xp. grundschüler schrieb: > Ist das normal? Habe mir jetzt das uart-Tutorial angeschaut. Offenbar müssen stop-und startbits rausgefiltert werden. Suche dafür immer noch guten fertigen code.
Der Datenaustausch funktioniert jetzt in beide Richtung. Allerdings nur per 2Byte Teilstrings:
1 | Private Sub btnSend_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click |
2 | Dim str As String |
3 | For i = 0 To Len(txtTransmit.Text) Step 2 'string in jeweis 2byte zerlegen |
4 | str = Mid(txtTransmit.Text, i + 1, 2) |
5 | System.Threading.Thread.Sleep(1) ' ms warten |
6 | SerialPort1.Write("x" & str & vbCr) 'The text contained in the txtText will be sent to the serial port as ascii |
7 | |
8 | Next
|
9 | |
10 | 'SerialPort1.Write("x" & txtTransmit.Text & vbCr) 'The text contained in the txtText will be sent to the serial port as ascii |
11 | 'plus the carriage return (Enter Key) the carriage return can be ommitted if the other end does not need it |
12 | |
13 | End Sub |
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.