PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Steuert ihr euren Bot mit dem PC?



Zeroeightfifteen
30.12.2005, 00:07
Hallo
ich wollte mal wissen ob ihr euren Roboter mit dem PC steuert oder ob das alles der Controller macht. Gibt es da schon Programme für den PC damit man seinen Bot z.B. vor oder zurück fahren lassen kann? Oder muss man sich dies alles selber schreiben?

just4fun
30.12.2005, 00:48
Hi Zeroeightfifteen,

ich benutzt anstatt Controller derzeit nen Laptop.
Die Ansteuerung mache ich über den USB-Port.

Ein paar mehr Details findest du auch auf meiner Website (s.u.).
Für Rückfragen stehe ich gerne zur Verfügung.

Gruß,

just4fun.

Xtreme
30.12.2005, 10:00
Normalerweise schreibt man seine Programme für den PC schon selbst, weil man diese dann genau auf seinen Bot abstimmen kann... Was fertiges gibt es meines Wissens nicht.

just4fun
30.12.2005, 13:13
Normalerweise schreibt man seine Programme für den PC schon selbst, weil man diese dann genau auf seinen Bot abstimmen kann... Was fertiges gibt es meines Wissens nicht.

Dem kann ich nur zustimmen.
Ich habe mein Programm in C / C++ mit dem Qt-Framework (und dem minGW-Compiler) geschrieben.

sulu
01.01.2006, 11:44
Hi, just4fun
wie hast du denn die Maske erstellt? Womit haste das denn programmiert?. Sieht wirklich gut aus!

michiE
01.01.2006, 15:18
ich erstell alles selber . normalerweise läuft alles im controler. bei meinem aktuellen Projekt läuft allerdings die Bilderkennung im Laptop ab.

just4fun
01.01.2006, 17:59
wie hast du denn die Maske erstellt? Womit haste das denn programmiert?. Sieht wirklich gut aus!
Danke, sulu.
Hab auch lange dran gefeilt, bis sie mir gefiel.
Erstellt habe ich die Oberfläche mit dem dem Qt-Designer. :-) Ist mein erster Versuch.
Es gibt mittlerweile eine Open Source-Version für Windows, die man hier (http://www.trolltech.com/download/qt/windows.html) runterladen kann (diese darf auch nur zur Erstellung von OpenSource genutzt werden!). Wenn ich mich mit Sourceforge etwas mehr beschäftigt habe, wird man hier (http://sourceforge.net/projects/mrs) auch alles runterladen können.

PS.: Habe noch nen aktuellen Screenshot (https://sourceforge.net/project/screenshots.php?group_id=139953) bei Sourceforge eingefügt.

NumberFive
02.01.2006, 08:13
Hallo Zeroeightfifteen,

Johannes und ich habe das Thema schon in einem sehr langen Thread
(https://www.roboternetz.de/phpBB2/viewtopic.php?p=17395#17395)
Diskutiert leider wurd nach meinem Wissen es nicht gut angenommen.
Wenn sich das jetzt ändert bin ich gerne Bereit weiter dran zu arbeiten.

Siehe Links in der Fusszeile

Gruß

Zeroeightfifteen
02.01.2006, 10:34
Mit welcher Sprache wäre denn das möglich? Oder besser gesagt welche Sprache bevorzugt ihr? Ich kenn mich nur mit Bascom aus, möchte aber eine andere Sprache erlernen. Sie sollte nicht zu schwer sein aber doch einige Möglichkeiten bieten mit der ich eine vernünftige Software auf die Beine stellen kann.

So eine Standardsoftware find ich ne super Idee denn für einen Neuling ist es immer interesannt wenn er am Anfang nicht gleich alles selber schreiben muss. Und für so eine Software hat man ja auch dann eine Garantie dass diese Fehlerfrei ist.

maze2k
02.01.2006, 11:02
Also für Benutzeroberflächen am PC würde ich Delphi oder Java empfehlen. Mit Delphi kann man per Drag & Drop wirklich sehr komplexe und mächtige Oberflächen erstellen. Bei Java ist das ganze etwas unhandlicher, aber auch machbar. Der Vorteil von Java ist, dass man die Oberflächen dann (wenn man es z.B. mit dem etwas veralteten AWT implementiert) auch auf PDAs und anderen mobilen oder leistungs- und platzbeschränkten Geräten verwenden kann.

RedBaron
02.01.2006, 12:04
Hallo,

ich habe mir vor einiger Zeit einen ASURO gekauft, in der Hoffnung in über einen PC steuern zu können. Also auf dem Robot ein kleines Programm zum auslesen (ggf. vorverarbeiten) und übertragen der Sensordaten. Auf dem PC dann "richtige Logik", objektorientiert usw, usw. Der PC sollte dann Steuerkommandos an den Robot zurückschicken, z.B. als direkte Kommandos an die Aktoren oder als Sollwerte für Regelkreise o.ä.

Nun ist es aber so, dass die Reichweite der IR-Übertragung nur etwa einen Meter beträgt und die Übertragungsrate max. 2400 Baud beträgt. Und das ganze auch nur halbduplex. Da kann man nicht besonders viel mit anfangen.

Wie löst ihr die Kommunikation zwischen PC und Robot? Am liebsten wäre mir eine High-Speed-Funkverbindung. Sie müsste folgende Rahmenbedingungen efüllen:

a) Sie sollte als Ersatz für die IR-Verbindung dienen, also irgendwie RS232-kompatibel sein.
b) das Flashen des ASURO erfolgt mit 2400 Baud (wird wohl so vom Bootloader eingestellt???). Die Verbindung sollte als Default-Rate 2400 Baud besitzen.
c) Das Auslesen eines Sensors (A/D-Wandlung) dauert etwas 0,2 ms und liefert 2 Byte => zur Echtzeitauswertung sind min. 52 kBaud besser 115 kBaud notwendig.
d) Duplex-Übertragung (2 Frequenzen) wäre super. Ich habe bisher nur halbduplex-Funkmodule gefunden, die eine Umschaltzeit zwischen Senden und Empfangen von ca. 1 ms benötigen. Das scheint mir ziemlich lange und ließe sich nur dadurch ausgleichen, dass der Robot sehr eigenständig handelt und nur selten Befehle vom PC benötigt. Dies bedeutet aber wieder viel Logik auf dem Robot.

Hat jemand eine Idee?

Gruß RedBaron

Rage_Empire
02.01.2006, 14:46
Also mein Projekt habe ich inzwischen auch schon soweit gebracht, das ich alles per rs232 mit einem Terminal steuern kann. Im Moment versuche ich das ganze mit VB.Net anschaulich zu gestelten, jedoch scheitere ich gerade an der RS232. Bin auch noch recht neu in der VB-Materie. Bis jetzt habe ich auch kein so gutes Forum wie dieses hier gefunden, welches sich mit VS.Net beschäftigt. Naja und somit wird das noch eine ganze weile dauern, bis ich mein Projekt richtig mit dem PC Steuern kann.

NumberFive
03.01.2006, 07:31
Hallo RedBaron,

warum brauchst du so viel Daten ? könnte es sein das da vielleicht ein Denk fehler drin ist ? wenn dein Robi So abhängig von dem PC ist würde ich den PC mit drauf packen da währe mir Funk viel zu Fehler anfällig.

Hallo Rage_Empire,

wenn du nicht weiter kommst könnte ich dir vielleicht ein dll oder so was für den zugriff auf die RS232 machen wenn ich ich im austausch deinen VB code bekomme.

An Alle,
wie gesagt ich bin gerne bereit an der Software weiter zu arbeiten. OK eine Schönes Benutzer Interface gibt es noch nicht aber eines zu Testen gibt es.
Einge Programmteil können da zu Programmiert werden.

Man könnte die Software auf mehre Rechner verteilen. Es könnten sich mehre Robis Unterhalten (Idee gibt ist aber in meiner Version zur Zeit nicht aus Programmiert). Komunikation basiert auf TCP und COM.

Allerdingst läuft meine Software Teile nur auf Windows 2000 oder XP.
Die Software ist in C++ und Delphi geschrieben.

Gruß

Rage_Empire
03.01.2006, 12:01
Hallo NumberFive,

Danke für das Angebot. Jedoch wie gesagt, bin ich recht frisch in der VB.Net Sache. Im Moment ist dies ein Problemchen von vielen. Auch mein µC-Source ist bis jetzt nur in der Theorie mit Simulationen erprobt worden un hat selbst da noch Tücken. Aber wenn ich daran hängen bleiben sollte, komme ich gerne auf Dein Angebot zurück.
Ich finde es jedoch erstaunlich, wie unterschiedlich Basic sein kann, da VB eine sehr hohe Sprache ist im gegensatz zum Controller-Basic Bascom. Obwohl Basic allgemein als Hochsprache gehandhabt wird, gibt es jedoch gerade hier enorme Unterschiede.

RedBaron
03.01.2006, 22:49
Hallo Rage_Empire ,

wegen der RS232 und VB schau einmal dort: http://www.the-starbearer.de/Praxis/Programmieren/VB%20Projekte/VBPraxisSerielle.htm.

Hallo NumberFive,

PC auf ASURO :-k Passt leider nicht [-X
Der ASURO liefert etwa 100.000 Bit Sensordaten pro Sekunde. Wenn man die in Echtzeit auf den PC bekommen würde, würde man auf dem Robot nur ein kleines Programm zur Datenübertragung benötigen. Z.B.
-wäre dann das leidige Flashen nicht mehr notwendig
-hätte man alle Messdaten auf dem PC und könnte die auswerten (Fehlersuche, Regelkreisoptimierung, etc)
- auf dem PC bin ich ziemlich fit (Mechanik gar nicht, C für AVR so lala)
- usw.

Mit einem Bisschen Mühe wird man auch mit weniger auskommen. Aber 115 KB sollte eigentlich kein Problem sein. Solche Module habe ich schon gesehen. Allerdings sind die -wie gesagt- nur hablduplex und benötigen relativ viel Zeit zum umschalten. Und -vor allem- sie lassen sich nicht defaultmäßig auf 2400 Baud einstellen.

Aber wenn du eine andere Idee hast, wäre ich dir dankbar.


Gruß RedBaron

Rage_Empire
03.01.2006, 22:55
@ Red Baron,

danke für den Tip, leider funzt der link für "Serielle Schnittstelle mit VB .NET ansprechen" nicht oder noch nicht.

RedBaron
03.01.2006, 23:20
eigentlich klappt er schon (internet-Explorer)
aber hier noch einmal zum kopieren:

www.the-starbearer.de/Praxis/Programmieren/VB%20Projekte/VBPraxisSerielle.htm

Oder googeln mit den ersten Worten des Artikels:
"Grundsätzlich gibt es mehrere Möglichkeiten die serielle Schnittstelle"

Gruß Red Baron

Rage_Empire
12.01.2006, 13:18
Is das VB nen Mist. Ich bekomm es einfach nicht hin mit nem Button nen Text über die RS232 zu senden. Obwohl das VB.Net express2005 ein Serial-Icon in der Toolbox hat, komme ich kein stück weiter. Warum ist das mit dem Microsoft-zeugs so schwierig? In Bascom gebe ich Print"blabla" ein und dann kommt das auch hinten raus. Aber VB....schlimm! Weiß jemand wie das geht ohne große umstände? VB.net 2005 sollte die rs232 sehr gut unterstützen, jedoch weiß ich nicht genau wie ich das hinbekomme. Die Artikel von microsoft sind ein riesen Roman....ich will doch nur was senden. Wenn bei Bascom so ein Roman beim Print-befehl stehen würde glaube ich, hätte ich diese Sprache nie erlernt.
Da das ganze mit Basic sowieso nur noch wenig am hut hat gehört Microsoft dafür verklagt, das Produkt überhaupt noch basic nennen zu dürfen.

Rage_Empire
12.01.2006, 20:28
Hat niemand ein Besipiel, wie ich mit einem Button am einfachsten ein Zeichen per Rs232 Senden kann? Hans auch schon mit Port.dll versucht...bekomme ich irgendwie nicht mit VB.Net2005expr. zum laufen.

Andy1988
13.01.2006, 12:18
VB ist noch einfach.
Wenn du in ner anderen Sprache auf die serielle Schnittstelle zugreifen musst, haste da noch mehr Spaß. Ich programmier mitlerweile nur noch in Java und da gibts in der API nichtmal ne Komponente für die serielle Schnittstelle.
Da musst du noch extra externe Libs für benutzen.

Rage_Empire
13.01.2006, 12:59
Versuch grad mit der Port.dll weiter zu kommen. Vieleicht klappts ja

super_castle
13.01.2006, 20:54
Ein Easy-Funkmodul auf den ASURO und ein Easy-USB-Funkmodul am Pc und ab geht die Post. So habe ich es.
Natürlich progge ich auf dem Pc mit Purebasic.

Castle

RedBaron
15.01.2006, 04:05
Hallo Rage_Empire,

ich werde mich in den nächsten Tagen 'mal des Themas annehmen und per VB.NET Kontakt mit der seriellen Schnittstelle aufnehmen.

Bis dahin: bitte an die Datentypen denken. Bei dem o.g. Link (port.dll) handelt handelt es sich um eine Doku für VB5/VB6. Da sind die Datentypen andere: Integer ist dort 16 Bit und Long ist 32 Bit. In VB.Net sollte man Int16 und Int32 verwenden. Auch die 'Declare'-Anweisungen müssen modifiziert werden.

Gruß Red Baron

Rage_Empire
16.01.2006, 11:55
Habs nach langem hnbekommen. Geht gut mit der "Port.dll".....jedoch muß man wissen, das es eine alte Version (nur Win9x und NT) und eine neue Version der DLL gibt. Hatte erst die alte Version benutzt ](*,)

Cybrix
16.01.2006, 13:03
Somal als Frage hat jemand sone Oberfläche schonmal in C++ Programmiert? wenn ja könnte dafür ja ein neues thema eröffnen?

Rage_Empire
16.01.2006, 13:34
Also als ich mich um die RS232 im Netz informiert habe ist mir aufgefallen, das bei vs alles fast gleich aussieht...vb...vc# und vc++. Glaub irgendwann wirds in vs nur noch eine Sprache geben, nur die dialekte werden unterschiedlich sein.

NumberFive
19.01.2006, 08:24
Hallo Cybrix,

ich habe fast alles c++ Programmiert warum fragst du ?

Gruß

Cybrix
19.01.2006, 11:08
weil ich bis jetzt nur in c programmiert habe und sowas auch für mein projekt programmieren will, könntest du mir dazu vielleicht ein paar links schicken habe mich schonmal bei google schlau gemacht aber noch nicht wirklich was gutes gefunden

Rage_Empire
19.01.2006, 11:40
Die Port-dll geht auch mit C

NumberFive
20.01.2006, 07:42
Ich frage mich gerade warum man für die RS232 die Port.dll braucht ?!?!
Ich habe sowohl in deplhi wie in C++ die RS232 über reihne Api Funktionen programmiert. und bin eingendlich sehr zu frieden.

Ich habe den einsatz der Port.dll einegdlich immer mehr beim ansprechen einzelner Pins auf der LPT gesehen weil das windoofs das nicht kann.
Obwohl wenn man seinen eingen treiber schreibt geht das auch.
Gruß