PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PC zur Steuerung in Roboter integrieren



wolli_bolli
19.07.2007, 18:55
Hallo!
Ich habe zusammen mit ein paar Freunden geplant einen wie folgt aufgebauten Roboter zu konstruieren, haben allerdings ein paar Fragen:
Als Steuerung soll ein vollständiger PC der unter Windows ME läuft dienen, der in einzelne Komponenten zerlegt auf den Roboter montiert ist (Motherboard, Festplatte, etc.)
Dieser benötigt normalerweise verschiedene Spannungen (-12V; +12V; -5V; +5V; +3,3V; +5V Standbay) zum Betrieb. Diese werden von einer Schaltung aus ca. +8V Spannung eines 6 oder 7 zelligen NIMH Akkus generiert. (Dank der verhältnissmäßig niedrigen Leistungsaufnahme des PC ist das möglich)
Über seine RS 232 Schnittstellen und den Druckerport kann der PC auf Sensoren (Licht, Stoß, Infrarot etc.) zugreifen und einen Motor und ein Servo ansteuern. Als „Bindeglied“ zwischen Schnittstelle und Sensor bzw. Motor wollen wir Mikrocontroller der AVR Familie von Atmel verwenden (tiny2313; mega8 und Co.)
Als fahrbaren Untersatz möchten wir ein umgebautes, handelsübliches Modellauto nehmen.
Der Roboter soll zunächst nur einmal genau kontrolliert durch die Gegend fahren können und evt. später mit Greifarmen GPS etc. ausgestattet werden.
Natürlich könnte man anmerken, dass wir mit dem PC mit Kanonen auf Spatzen schießen und lieber einen größeren AVR etc. als Steuerelement verwenden sollen. Allerdings haben wir uns schon mit Basic Stamp und Lego Mindstorms beschäftigt und wollen uns nun auf ein höheres Level begeben.

Unser Problem besteht darin, den Computer so zu programmieren, dass er über die Schnittstellen Sensordaten einliest, aus den Daten Entscheidungen ableitet und diese über die Schnittstellen an Servo und Motor ausgibt. Gibt es hierzu spezielle Programmiersprachen, oder muss man alles mit Visual Basic, Delphi oder ähnlichen selber schreiben?

Vielen Dank im Voraus für alle Mühen!

Albanac
19.07.2007, 19:37
Als Steuerung soll ein vollständiger PC der unter Windows ME läuft dienen,

Gibt es hierzu spezielle Programmiersprachen, oder muss man alles mit Visual Basic, Delphi oder ähnlichen selber schreiben?
Aus deiner Frage schliesse ich mal das du noch nicht so viel Erfahrung mit Programmieren, etc hast.
Du solltest dir vielleicht für den anfang was einfacheres vornehmen, z.B. den ASURO da kann ein gutes Gefühl für den Bau von Robotern bekommen und programmieren lernen.

StackDaniels
19.07.2007, 21:07
Als Betriebssystem würde ich allerdings ein anderes hernehmen, wenn du beim PC bleiben willst (was angesichts komplexer Bildverarbeitungs- oder KI-Algorithmen die rechenintensiv sind sinnvoll sein kann). Irgendwie hab ich nämlich leise Zweifel an den Echtzeitfähigkeiten von Windwos ME ^^
Stattdessen würd ich ein Echtzeitbetriebssystem wie VxWorks oder irgendein Open-Source-Echtzeitbetriebssystem hernehmen (gibts bestimmt, vielleicht sogar als Variante von Linux).

HannoHupmann
19.07.2007, 21:11
Ok statt einem handelsüblichen PC (die sind nämlich nicht für sowas ausgelegt) würde ich auf ein PC-Board zurück greifen (Z.B. PC Engines WRAP.1E-1 (2 LAN) ) Das sind kleine Computer mit allem was normale Computer auch haben nur ohne Festplatte, Grafikkarte und Schnickschnack aber so Stromsparend, dass sie sich für Robotersysteme Eignen (im Günstigsten Fall sogar mit W-Lan).

Nächster Punkt ist bei einem "normalen" PC gibt es so gut wie keine Möglichkeiten ausser über Parallelport und Seriell auf Externe Ressourcen zuzugreifen, womit ein Subprozessor auf jedenfall nachgeschalten werden muss (AVR system). Die oben genannten PC Board verfügen aber im Regelfall über einen I²C Anschluss und damit lässt sich so ziemlich alles an Roboterperipherie ansteuern was man braucht.

theborg
19.07.2007, 23:13
Ne alternative wehre noch wenn du kein Windows brauchst ein altes Routerboard zu nehmen ein wo drauf openwrt läuft da kannst du die serielle Schnittstelle zum übertragen benutzen arbeite auch gerade an so was mit einem kleinen FON Router der hat WLAN damit kann ich mit einer kleine Konsole einrichten damit ich meinen per WLAN steuern kann und auch ne Error Konsole habe zudem ist bei dem Fon Router ziemlich leicht möglich nen zweiten UART und einige GPIOs zu benutzen.

HannoHupmann
20.07.2007, 08:29
@theborg die PC Boards die ich gemeint hab sind meisten Routerboards zuminderst sind sie für sowas geeignet da zwischn 1 und 4 LAN ausgängen und möglichkeit zum WLAN.

Abgesehen davon, brauchen die im Regelfall nur eine konstante 12V Eingangsspannung und nicht die 5 verschiedenen Versorgungspegel.

theborg
20.07.2007, 11:09
jo naja dachte du meinst so was wie µatx/nanoatx .... der spass ist einfach zu teuer für die paar regelungs aufgaben wie schon erwähnt ne alte FON Box die ist recht klein kostet neu 30eur bei ebay so gut wie nichts und sollte dafür reichen hat einmal Ethernet und einmal wlan hat nen atheros chip verbaut damit sind bis zu 16 subnetze über wlan möglich

wolli_bolli
20.07.2007, 16:27
Vielen Dank für die zahlreichen Antworten!
Ich werde wohl den PC verwenden, da er sowieso vorhanden ist, ihn aber mit Linux ausrüsten, da hier die Ansteuerung der Schnittstellen tatsächlich wesentlich einfacher als in Windows zu sein scheint.

NumberFive
21.07.2007, 08:45
ne weiter möglich keit währe vielleicht auch noch ein dos zu nehmen.

das Projekt ist meinem Ähnlich da ich nicht weiß wie leistung fähig der rechner ist. Währe auch ein runter konfigurites W2K möglich. Die schnittstelle sind kein Problem es geht alles. Wo bei ich jetzt wieder auf die ohren bekomme wegen der aussage.

Me würde ich auf keien fall nehmen ist einfach zu instabil.

Gruß

Keksdose
21.07.2007, 10:46
Wenn du unbedingt den PC zum steuern nehmen willst würde ich auch win2k nehmen. ME auf gar keinen fall. Dann kannst du noch besser 98 nehmen das ist stabiler ;)
Zur Programmiersprache: Eigentlich kannst du alles nehmen was du willst. Ich hab meine Steuerungssoftware in Delphi geschrieben (Visual Basic mag ich nicht so). Die software ist open source und kann leicht angepasst werden wenn man ein bisschen delphi kann oder lernen möchte. Sensorwerte einlesen und befehle ausgeben ist alles schon drin so das du das programm nur noch auf deinen Roboter anpassen müsstest.
Den Quelltext zum Programm findest du hier: http://www.smartprogramming.de/index.php?siteid=4&info=27