Python: Verkehssimulation

Gast #2949522
Lesenswert?
• ▲
▼
Hallo Allerseits,

nach einigen Anläufen mit Java und QT als graphische Oberfläche bin ich 
jetzt by Python ( bzw. dem Package Pygame ) angelangt.
Für die Kommunikation mit einem Mikrocontroller oder die Visualisierung 
von Messdaten scheint mir Python sehr geeignet.
Im Anhang mal ein kleines Pythonprogramm mit der Library "Pygame" umd 
die Einfachheit der Programmierung zu zeigen. Als Beispiel habe ich 
allerdings keine MC-Communication sondern die Simulation unserer 
Straßenverhältnisse.

Viel Spass damit,
chris
Angehängte Dateien:
Persönliche Seite #2954078
Lesenswert?
• ▲
▼
Tkinter in Python bietet da aber auch interessante Möglichkeiten mit 
Canvas.
WxPython schaue ich mir momentan in die Richtung noch an.

Hab da mal ein paar Python 2.X-Samples angehangen mit denen ich 
experimentierte.
Angehängte Dateien:
Gast #2977921
Lesenswert?
• ▲
▼
Hallo Dennis,

Tkinter sieht auch interessant aus. Ist es bei der Grundinstallation von 
Python gleich dabei?
In Deinen Programmbeispielen erscheint es mir aber etwas komplizierter 
als "pygame".

Ich habe in "pygame" ein einfaches graphisches Terminal programmiert.
( http://hobby-roboter.de/forum/viewtopic.php?f=4&t=139 )

Damit kann ein Mikrocontroller über die serielle Schnittstelle auf dem 
PC zeichnen. Es gibt ein Beispiel Programm für einen Arduino, mit dem 
die Werte des AD-Wandlers als Graph dargestellt werden.

Die implementierten Kommandos sind folgende:
cls              : clear screen
plot x y         : plot a point at x,y. Example: plot 100 200
color <color>    : set the color for the next drawing. Example: color 
red
pos x y          : set the position for the next drawing. Example: pos 
100 150
line x y         : plot a line from the last position to x,y. Example: 
line 200 300
print <string>   : print a string at the current position. Example: 
print hello world

Gruß,
chris
#2979332
Lesenswert?
• ▲
▼
Ok, wenn der Client das machen soll, muss man ein bisschen tricksen, 
aber ich behaupte, das geht trotzdem... der Client gibt der Anwendung 
Zugriff auf lokale Dateien, und man macht per JavaScript XMLHTTPRequests 
auf /dev/ttyS0. Ich gebe aber zu, dass das ziemlich esoterisch ist ;)
#2983440
Lesenswert?
• ▲
▼
Sven B. schrieb:
> Ok, wenn der Client das machen soll, muss man ein bisschen tricksen,
> aber ich behaupte, das geht trotzdem... der Client gibt der Anwendung
> Zugriff auf lokale Dateien, und man macht per JavaScript XMLHTTPRequests
> auf /dev/ttyS0. Ich gebe aber zu, dass das ziemlich esoterisch ist ;)

Öh. Du willst den Webbrowser dazu bringen mittels eines XMLHTTPRequests 
auf eine lokale Device-Datei zugreift? Ohne einen lokalen Server 
aufzumachen?

[x] das will ich sehen.

Grüße,
        Simon
#2983458
Lesenswert?
• ▲
▼
Simon Budig schrieb:
> Sven B. schrieb:
>> Ok, wenn der Client das machen soll, muss man ein bisschen tricksen,
>> aber ich behaupte, das geht trotzdem... der Client gibt der Anwendung
>> Zugriff auf lokale Dateien, und man macht per JavaScript XMLHTTPRequests
>> auf /dev/ttyS0. Ich gebe aber zu, dass das ziemlich esoterisch ist ;)
>
> Öh. Du willst den Webbrowser dazu bringen mittels eines XMLHTTPRequests
> auf eine lokale Device-Datei zugreift? Ohne einen lokalen Server
> aufzumachen?
>
> [x] das will ich sehen.
>
> Grüße,
>         Simon

Na gut, ich habe übersehen, dass schreiben nicht hinhaut -- lesen geht 
aber (mit entsprechenden "Sicherheits"einstellungen vom Browser) ;)
Persönliche Seite #2983548
Lesenswert?
• ▲
▼
Sven B. schrieb:
> Na gut, ich habe übersehen, dass schreiben nicht hinhaut -- lesen geht
> aber (mit entsprechenden "Sicherheits"einstellungen vom Browser) ;)

Mit einem TCP zu Serial Deamon würde es aber Problemlos und ohne 
Verrenkungen klappen. Für Windows gibt es ja schon com0tcp der uC muss 
dann nur halt HTTP über die Serielle sprechen was aber auch nicht weiter 
wild ist.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.