PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schnittstelle bzw. Interface Computer <-> "Roboter"



Onkelhans
21.05.2015, 15:31
Guten Tag,

ich bin schon länger raus mit dem Roboterbasteln, C-Programmieren. Zurzeit benutze ich Arduinos. Jetzt möchte ich Eingänge und Ausgängen am Computer steuern können. Ziel ist es ein Roboter zu bauen, der die Bilder einer Webcam auswerten kann und entsprechend reagieren kann. Das Webcamprogramm ist schon bereit... Nur kann ich physikalisch nichts steuern. Hierfür brauche ich eure Hilfe. Ich weiß nämlich nicht, wonach ich suchen soll. Ich kann keine Bibliothek für ein selbst gebasteltes USB-Gerät selbst erstellen, um weitere Sensoren auszulesen und Motoren zu steuern. Dafür fehlen mir die Kenntnisse (und die Einarbeitung, schätze ich, dauert 4-5 Jahren in einer FH). Ich denke ich brauche ein Interface, das alle Funktionen mitbringt und es ermöglicht die Funktionen flexibel in mein eigenes Programmcode einzubauen (so etwa wie eine Directshow-Bibliothek). Fisher oder Lego-Roboter interessieren mich nicht. Was gibt es da?


Viele Grüße

Holomino
21.05.2015, 16:04
muss jetzt fragen (tschuldigung):
Du möchtest Aktoren (Fahrwerk, Motoren, ...) und Sensoren am PC steuern und auslesen?
Wie hängt das mit den Arduinos zusammen? Möchtest Du die fertige Hardware auf Arduino-Basis, also einen Roboter, der Daten zum Rechner streamt (und zurück)? Ich glaub, den gibt's schon (Such mal bei www.Reichelt.de nach Arduino Robot) , oder passt der nicht? Oder wird Dein Projekt etwas Stationäres?

Auch richten sich die zur Verfügung stehenden Bibliotheken nach Betriebssystem und verwendeter Programmiersprache. Was also nutzt Du?

Und was brauchst Du an Aktoren und Sensoren im Detail?

Onkelhans
21.05.2015, 16:19
Richtig! Ich möchte Sensoren auslesen und Motoren steuern.
Es hat nichts mit den Arduinos zu tun (die Info war wohl nicht hilfreich. Es sollte nur zeigen, dass ich nicht 6 bin und ein Minimum Erfahrung habe). Ich möchte auch keinen fertigen Bausatz programmieren zu unflexibel für mich.
Ich benutze C/C++ und Windows.
Ich suche ein Interface, das sich bewertet hat.
(Wie werden denn sonst Maschinen in der Industrie gesteuert? Wenn nicht mit etwas ähnlichem, wonach ich suche?)

Geistesblitz
21.05.2015, 16:42
Da gibts eigentlich ziemlich viele verschiedene Möglichkeiten. Mein Favorit ist für sowas einen µC entsprechend zu programmieren und mit dem Rechner dann die Kommunikaion über einen USB-UART-Wandler zu bewerkstelligen. Dieser emuliert eine serielle Schnittstelle, die sich eigentlich in sämtlichen Programmiersprachen ansprechen lassen dürfte. Ansonsten gibt es auch kleine Boards wie zB. den Mini-Maestro von Pololu, mit dem sich hauptsächlich Servos steuern lassen, allerdings ist der relativ vielseitig und der USB-UART-Wandler ist schon mit eingebaut. Musst mal nach suchen, ist auch sehr gut dokumentiert, ich hab mit dem bisher gute Erfahrungen gemacht. Gibt bestimmt auch noch andere Sachen, aber die musst du wohl selber suchen.

Unregistriert
21.05.2015, 17:16
Bewährte Industriesteuerungen laufen unter den Stichworten "SPS" (analoge/ digitale Ein-/ Ausgaben) "CNC" und "MotionControl" (Industriebobotersteuerungen).

Was für Motoren willst Du antreiben? Soll Dein Projekt sich selber bewegen oder baust Du etwas fest stehendes - eine Anlage? Welche Genauigkeit/Geschwindigkeit benötigst Du?
Es gibt Unterschiede zwischen einer hochgenauen Positionierung einer Werkzeugmaschine und einer Bastellösung zum Schwenken eines Sensors mithilfe eines Modellbauservos - sowohl preislich als auch vom Aufwand.

Welche Sensoren soll Dein Projekt enthalten? Welche Schnittstellen unterstützen diese? Musst Du nur digitale Schalter mithilfe einer I/O-Karte abfragen? Musst Du Relais schalten? Musst Du analoge Werte einlesen oder sogar generieren? Oder enthalten Deine Sensoren sogar eine I2C-Schnittstelle, die über einen Controller passgenau aufbereitet wird? Auch hier wieder: Wie ist das Datenvolumen und damit die benötigte Schnittstellenleistung (RS232 oder Ethernet?)

Ich dachte immer, Arduino ist genau die Community, die die 4 Jahre Studium ersetzen sollte und die mit einer Fülle von fertigen Hardwareplatinen, Bibliotheken und Bauvorschlägen aufwartet. Motor-Shields etc. gibt es doch dafür?!?

Mxt
21.05.2015, 17:19
Es hat nichts mit den Arduinos zu tun
...
Ich benutze C/C++ und Windows.

Das kann man schon in dieser Kombination benutzen, sogar Microsoft tut das neuerdings (s.u.)

In der Arduino IDE gibt es unter Beispielprogramme das "Standard Firmata" Projekt. Da geht es um das hier
http://www.arduino.cc/en/Reference/Firmata
das ist quasi ein fertiges Fernsteuerprotokoll, das auf den Arduino geladen wird.

Die PC-Seite gibt es in diversen Sprachen
https://github.com/firmata/protocol
C++ finde ich da jetzt nicht, es gibt aber z.B. einen Arduino Firmata C++ Treiber in Openframeworks
http://openframeworks.cc/documentation/communication/ofArduino.html

Offizielle C++ Unterstützung von Microsoft gibt es in Form einer auf Github gehosteten WinRT Komponente
https://www.hackster.io/windowsiot/basic-windows-remote-arduino


Soviel zu Arduino. Es gibt sowas natürlich auch in größer. Für ARM Mikrocontroller wäre das passende Gegenstück das hier
https://developer.mbed.org/cookbook/Interfacing-Using-RPC
Diese Controller sind deutlich leistungsfähiger als Arduinos und arbeiten mit echtem C++. Es gibt sie von sehr günstig
http://www.watterott.com/de/NUCLEO-F401RE
über Arduino-Format mit mehr Power, Mikro-SD Slot und Ethernet
https://developer.mbed.org/platforms/FRDM-K64F/
bis zu recht vollgepackten kleinen Teilen
https://developer.mbed.org/platforms/EA-LPC4088/



Wie werden denn sonst Maschinen in der Industrie gesteuert?
Gut da gibt es auch noch größeres, aber warten wir mal ab ...
Z.B.
http://germany.ni.com/
oder hier als Beispiel für ein Komplettprogramm zur Maschinensteuerung von SPS bis Roboterarm, alles auch vom PC aus ansteuerbar
https://de3a.mitsubishielectric.com/fa/de/products/cnt/plc/index.html
https://de3a.mitsubishielectric.com/fa/de/products/cnt/ssc/index.html
https://de3a.mitsubishielectric.com/fa/de/products/drv/servo/
https://de3a.mitsubishielectric.com/fa/de/products/rbt/robot/index.html

Onkelhans
21.05.2015, 21:52
Vielen Dank für die Antworten und vor allem für die Übersicht!
Für den Anfang könnte ich also ein einfaches Arduino Uno zusammen mit der Bibliothek aus http://openframeworks.cc/documentation/communication/ofArduino.html nutzen. Meine Software kann dann passenden Befehle weitergeben und Eingänge interpretieren.
Das klingt sehr günstig und einfach zum Starten. Ich hatte bisher nur Programme aufgeladen danach war der Arduino auf sich selbst gestellt. Ich müsste also alles da haben. Ich werde mal versuchen, ob es meine Zwecke erfüllt.

Mxt
22.05.2015, 07:09
Hallo,

schau Dir auch mal die Übersicht in der Arduino Doku an, es gibt noch allerlei anderes
http://playground.arduino.cc/Main/InterfacingWithSoftware