PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VisualBasic - welche Version für einen mobilen PC-Roboter?



toemchen
19.05.2004, 16:16
Hallo,

zur Zeit baue ich einen Roboter, dessen "Großhirn" ein Epia-Board (mit Win2000 drauf) ist, während das "Kleinhirn" Controllerboard die Bewegungen steuert.
Deshalb denke ich, daß ich zur Programmierung des Großhirns (interne Landkarte aufbauen, Sehen, Hören, Sprechen) durchaus Visual Basic verwenden kann.

Die Frage ist allerdings, welche Version? Erfahrung habe ich mit Version 4. Kurz auf ebay geschaut, da gibt es jetzt VisualBasic.NET, was isn des? Verstehe ich das noch? Mein Problem ist, ich bin gut in Mechanik, ok in Elektronik, aber etwas schwach auf der Brust mit Programmieren und vor allem im modernen PC-Umfeld mit tausend Treibern, Netzwerkgeschichten usw.

Meines Wissens gibt es auch Version 5 und 6. Version 7 auch noch? Wo kann ich solche Versionen herbekommen? Es muß nicht ganz umsonst sein, ich bin in Puncto Schwarzsoftware schon gerne auf der halbwegs sicheren Seite und auch nicht arm wie eine Kirchenmaus. Aber mehrere hundert Euro für eine aktuelle Vollversion müssen nicht sein.

Noch einige Worte zu den Anforderungen:
Wave-Dateien abspielen hatte ich schon mit Version 4 hingebracht. Serielle Kommunikation muß unbedingt sein, ich will ja mit den "Kleinhirn" des Roboters reden. Je nach Können und Zeit werden dann so Dinge hinzukommen wie Videobild einer Kamera mittels TV-Karte dem Programm zugänglich machen, Wireless Lan wäre irgendwann schön, Sprachausgabe von nem geschriebenen Text weg wäre toll usw.

Freue mich auf Eure Expertise...
Mehr zum geplanten Roboter gibt es nach und nach, das Fahrgestell steht schon mal.

19.05.2004, 19:09
Die Frage ist allerdings, welche Version? Erfahrung habe ich mit Version 4. Kurz auf ebay geschaut, da gibt es jetzt VisualBasic.NET, was isn des?

VisualBasic.NET ist die aktuelle Version von Visual Basic, also quasi Version 7.
In Version 4 oder 5 würde ich mich nicht mehr unbedingt einarbeiten. Visual Basic greift auf ziemlich viele allgemein genutze Windows Rescourcen (ActiveX-Komponenten und DLLS) zurück. Da Visual Basic 4 und 5 viel älter sind als Windows 2000 passt das dann alles nicht so ganz richtig und macht öfter Probleme. Ausserdem unterstützen VB 4 und 5 viele Features und Gestaltungsmöglichkeiten die man von aktuellen Programmen gewohnt ist nicht.
Ausserdem findet man für die alten Versionen viel weniger Unterstützung im Internet als für aktuelle VB Versionen. Wenn du z.B. die serielle Schnittstelle programmieren willst und mal im Internet suchst, findest du garantiert massenweise Programmfragmente und Demo-code den du nur kopieren und etwas anpassen musst. Das ist dann aber meist Code für VB6 oder VB.Net.
Soweit ich weiss gibt es von Visual Basic 6 auch ermässigte Schüler und Studenten-Versionen. Ausserdem gibt es auch so unterschiedliche Staffelungen. Du braucht dir ja nicht gleich die teure Professional oder Enterprise Version kaufen. Eventuell kommst du auch günstig an eine gebrauchte Version, wobei man da wohl aufpassen muss, dass einem nicht einfach ne Raubkopie verkauft wird.

Wenn du "zukunftsorientiert" denkst ist es vielleicht noch sinnvoller gleich mit VB.NET anzufangen. Soweit ich weiss unterscheidet sich das ziemlich stark von den Vorgängerversionen, was Microsoft wohl auch mit dem Namen "VB.NET" statt VB7 andeuten wollte.



Serielle Kommunikation muß unbedingt sein, ich will ja mit den "Kleinhirn" des Roboters reden.
Das geht sicherlich mit allen VB Versionen. Im Prinzip steuerst du dabei aber über VB irgendwelche ActiveX Komponenten oder DLSs an und da könnte es bei alten VB Versionen schwieriger werden was passendes zu finden.

Je nach Können und Zeit werden dann so Dinge hinzukommen wie Videobild einer Kamera mittels TV-Karte dem Programm zugänglich machen
Dafür bieten einige Hersteller von TV-Karten SDKs (System Developer Kits) an. Wenn da was für VB dabei ist, ist es aber sicherlich auch eher für VB6 und VB.NET als für die uralt-Versionen.


Wireless Lan wäre irgendwann schön
Wenn du mit Netzwerk-Resourcen arbeitest, ist es VB egal, ob das Wireless-LAN, eine Kabel- oder eine Modemverbindung ist. Die Netzwerkverbindung selber wird ja auf Betriebsystem-Ebene hergestellt.
(Ausnahme wäre, wenn du selber ganz nahe and die Hardware, Treiber, Protokolle usw. ran willst, dafür taug VB generell nicht viel)


Sprachausgabe von nem geschriebenen Text weg wäre toll usw.
Soweit ich weiss sind da im "Speech SDK" von Microsoft Beispielcode für VB6 drin.

Ich würde mir überlegen, was du so als Schwerpunkt vorhast. Wenn es dir haupsächlich um die Programmierung und Steuerung deines Roboters über den PC geht, würde ich mit VB6 anfangen.
Wenn du vor hast tiefer in die Programmiererei einzusteigen und nicht nur für den Roboter zu programmieren, würde ich gleich mit VB.Net anfangen.

(ich gehe mal davon aus, dass es auf jeden Fall VB und keine ganz andere Sprache sein soll)

Günter49
19.05.2004, 21:13
Hallo,

ein schönes Beispiel für eine Robotersteuerung mit VisualBasic ist der RoboTruck von Claudio Concilio.
Er verwendet einen Laptop und als "Kleinhirn" zwei acroname Brainstem GP1. Programmiersprache ist VB5.
(TCP/IP, Sprachausgabe, Video, Objekterkennung ...)

Projektübersicht:
http://www.acroname.com/brainstem/examples/vbtruck/vbtruck.html

Ausführliche Projektbeschreibung mit VB5-Code und nützlichen links:
http://www.acroname.com/brainstem/examples/vbtruck/vrobot.htm

Viel Erfolg!
Günter

NumberFive
20.05.2004, 08:41
Hallo toemchen
dein projekt ist dem meiner glaube ich sehr ähnlich. Allerdingst mag ich vb nicht so um bediengt. aber das ist ja egal kenne Spech sdk habe schon als tcp verbindung geschrieben und so weiter für mich ist das programmieren so mit kein problem aber die hardware vielleich könnten wir uns gemeinsam helfen.

Gruß

toemchen
21.05.2004, 08:50
Schon mal drei ernsthafte Antworten... Dankeschön!

Sehr gut die Kurzübersicht über VisualBasic. Ja, richtig, es soll VB sein, weil es für mich am einfachsten ist und ich damit schon etwas gemacht habe. Ganz klar die Prio: Ich will meinen Roboter zum Laufen bringen (mit VB) und strebe keine Programmiererkarriere an. Werde mich also um VB6 bemühen.

Dieses Projekt des Italieners ist toll, er spricht mir in vielerlei Hinsicht aus dem Herzen. Z.B. "ich mach mir das Leben leicht mit VB". Acroname war mir bis jetzt nicht bekannt, man lernt nie aus! Allerdings habe ich jetzt schon den Controller ISOPOD von NewMicros (www.newmicros.com), der ist denke ich auch ziemlich vergleichbar mit dem "BrainStem"

@NumberFive: Hab' Deine Ideen schon mitbekommen. An Dich wollte ich mich auch schon fast direkt richten. Das wär natürlich ein Team: Du Software, ich Hardware. Im Prinzip könnte ich den Roboter, wie er mir vorschwebt, zweimal oder sogar dreimal bauen. Aber ich weiß nicht, ob Du bei den PC- und Elektronikkomponenten auch so investieren willst. Jeder Bastler ist ein bißchen eigensinnig, auch und vor allem ich. Es handelt sich ja ums Hobby, da redet keiner drein wie im Beruf. Aber nun gut, ich werde dieses Wochenende in der Rubrik "Eure Roboterprojekte" meine Pläne mal vorstellen. Wir sprechen uns wieder.

NumberFive
21.05.2004, 14:16
Hallo toemchen,

natürlich ist hobby anders als beruf keine frage. VB6 kenne auch einbischen und wenn du das so machen willst kein thema. freue mich darauf dein pläne zu sehen.

Des menschen wille ist sein himmelreich.

Gruß

hrrh
23.05.2004, 13:35
warum nicht gleich C++ ? das bietet VIEL mehr funktionen und moeglichlichleiten als basic

toemchen
28.05.2004, 10:02
Hallo NumberFive,

jetzt ist endlich eine rudimentäre Homepage fertig, auf der Du Infos über mein Projekt bekommst.
Leider wirds noch einige Zeit dauern, bis es wirklich ans Programmieren geht. Dann werden mich Deine Programme zur Bildverarbeitung sehr interessieren...
Das schöne am PC-gesteuerten Roboter ist ja auch, daß nicht die ganze SW "aus einem Guß" sein muß, sondern daß man mit DLLs, Datenaustausch, fremden Treibern usw. arbeiten kann. Glaube ich zumindest.

matren
28.05.2004, 12:02
Es gibt einen gewaltigen Unterschied zwischen VB6 und VB.NET.
Man kann wahrlich nicht davon sprechen das es VB7 wäre, da es was VB angeht eine völlig neue Generation darstellt.

VB6 ist eher eine klassische Basic Programmiersprache, was man hingegen von VB.NET nicht behaupten kann. VB.NET basiert auf dem .NET Framework, daß sehr große Ähnlichkeiten mit Java aufweisst. D.h. VB.NET ist von sich aus komplett Objektorientiert.

Was das .NET Framework angeht, so bildet es die Grundlage für alle .NET Sprachen (VB, C#, Java...) was letztendlich heißt, das alle objektorientiert mit den vorgegebenen .NET Klassen arbeiten und sich größtenteils nur noch im Syntax der Sprache unterscheiden.

VB.NET ist nicht unbedingt eine Anfängersprache, so wie ich das von VB6 behaupten könnte, es ist jedoch ein Java-Abklatsch (d.h JIT Compiler, standardisierte klassenbibliotheken,...). So sehe ich das zumindest.

Vorteil hingegen wäre der Preis bei VB.NET. Es ist nicht unbedingt notwendig VisualStudio zu besorgen um VB.NET Programme zu schreiben.
Die einfache Entwicklungsumgebung kannst Du bei Microsoft gratis runterladen. (Allerdings wohl weniger für Anfänger geeignet).

hrrh
28.05.2004, 14:47
ich empfele linux, da (fast) jede software fuer linux kostenlosist. ist auserdem nicht so aufgeblaet und langsam wie windoof.

matren
28.05.2004, 15:02
.NET ist nicht Platformabhängig, jedoch noch nicht soweit entwickelt wie bei Java. .NET läuft auch auf Linux (dank Mono (siehe Sourceforge)).

Aber das Linux die bessere Platform ist, kann ich prinzipiell zustimmen.
(vor allem wesentlich transparenter, wenn man sich ein bishen eingearbeitet hat (was bei den meisten wohl der Hacken an der Geschichte ist)).
Jedoch ist der Overhead meistens durch die grafische Benutzeroberfläche bedingt, wobei Linux dann natürlich im Vorteil wäre. Dennoch kann man auch bei Windows alternative Benutzeroberflächen benutzen. Es gibt da etliche davon. Obs eine reine Text-Shell gibt weiss ich aber nicht.

NumberFive
28.05.2004, 19:07
stimmit eine reine test shell gibt es meines wissens nicht ich habe mir ein mini shell selbst geschrieben dann hat man mehr system resource. ich muß sagen dann den echt viel unter widows wenn das ding so zu sammen schrumpf das nur das mach was sein soll ein betriebsystem.

*g*

toemchen
28.05.2004, 20:05
Gut daß ich jetzt weiß dass VB.NET wirklich nichts für mich ist [-X :wink:
Linux fände ich ganz im Prinzip auch besser, aber mir ist, wie schon richtig bemerkt, die Einarbeitungshürde zu groß.

NumberFive
28.05.2004, 20:19
mal ne dumme frage gibt es den ein Basic für linux ?

nicht erschlagen ihr linux freaks da draussen

gruß

hrrh
28.05.2004, 20:28
ja. man wird fuer so eine frage nicht erschlagen umsteiger werden i.d.r begruest, wenn jemand der programieren kann auf linux umsteigt

matren
28.05.2004, 20:37
Also ich hätte ihn erschlagen !!!
Und ich bin nichtmal ein Linux-Anhänger.