8
1. Einleitung Autor: Fachhochschule Südwestfalen Fachbereich Elektrische Energietechnik Campus Soest Einführungs praktikum Roboterprogrammierung

Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

1. Einleitung

Autor:

Fachhochschule Südwestfalen

Fachbereich Elektrische Energietechnik

Campus Soest

Einführungs praktikum

Roboterprogrammierung

Page 2: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

Einführungs praktikum Roboterprogrammierung

1. Einführung

Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 2 / 8

1. Organisation der Praktika

Die Einführungspraktika für die neuen Studierenden im ersten Semester finden im Wintersemester statt.

Die Aufteilung wird frühzeitig am Schwarzen Brett, sowie auf der Fachbereichs-Homepage veröffentlicht

(Downloadbereich Datentechnik).

1.1 Termin übersicht

Das Praktikum ist unterteilt in insgesamt vier Termine in denen verschiedene Projekte mit Hilfe von Lego

Mindstorms realisiert werden. Hierbei werden jeweils unterschiedliche Aspekte der Hard- und Software

behandelt, so dass am Ende des Einführungspraktikums auch ohne Probleme eigene Projekte umgesetzt

werden können. Für das gesamte erste Semester der Elektrotechnik stehen dabei insgesamt 4 verschiedene

Terminfolgen zur Verfügung.

1.2 Vor bereitung

Das Praktikum ist so konzipiert, dass von Seiten der Studierenden keine Vorkenntnisse in der

Programmierung oder Robotertechnik notwendig sind. Jedoch empfiehlt es sich für jeden Teilnehmer diese

Einführungsdokumentation vorher zu lesen, um die grundlegenden Elemente der Mindstorms-plattform

bereits vorher kennenzulernen. Außerdem sollten die jeweiligen Dokumentationen zu den einzelnen

Laborterminen vorher durchgearbeitet werden. Dies erleichtert die Bearbeitung während des eigentlichen

Praktikums.

Während der eigentlichen Praktikumstermine findet eine ausgiebige Betreuung durch Studierende aus

höheren Semestern und Hochschulmitarbeitern statt.

2. LEGO Mindstorms Plattformübersicht

Das Mindstorms-Programm von LEGO bietet alle notwendigen Elemente um intelligente Roboter oder

andere Konstruktionen zu entwerfen. Hierbei stehen die bereits aus dem LEGO Technik-Programm

bekannten mechanischen Bauteile zum Aufbau der Robotermechanik zur Verfügung. Somit besteht bei der

Nutzung dieser Plattform die Möglichkeit zum schnellen Entwurf und Aufbau von unterschiedlichsten

Roboter-Modellen, was so mit anderen Systemen meistens nur mit immensem Aufwand realisierbar wäre.

Diese Einführung gibt einen kurzen Einblick in die unterschiedlichen Elemente des Mindstromssystems,

wobei insbesondere die verfügbare Hardware kurz vorgestellt wird. In den praktischen Übungen werden

dann diese Elemente genutzt um zunächst den Umgang mit den verschiedenen Programmen, zur

Softwareentwicklung, zu erlernen. In diesem Zusammenhang werden auch grundlegende Kenntnisse über

die beteiligten Programmiersprachen vermittelt. Abbildung 1 zeigt eine komplette Übersicht über die

Elemente des Mindstorms-Programmes, die im Folgenden vorgestellt werden sollen.

Page 3: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

Einführungs praktikum Roboterprogrammierung

1. Einführung

Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 3 / 8

Abbildung 1 – LEGO Mindstorms Plattformübersicht – Software, Schnittstellen, Hardware, Mechanik

2.1 Software übersicht

Zur Programmierung der LEGO Mindstormskomponenten bietet LEGO das Programm NXT-G an, welches

die Programmierung der Roboter mit Hilfe von Aktionsblöcken und geeigneten Verbindungen erlaubt. Die

folgende Abbildung zeigt ein Beispiel für ein mit NXT-G erstelltes Programm.

Abbildung 2 – LEGO Mindstorms Plattformübersicht – Software, Schnittstellen, Hardware, Mechanik

Hierbei wurde NXT-G so konzipiert, dass es bereits für Schulkinder einfach zu bedienen und zu erlernen

ist. Die Programmierung von grundlegenden Funktionen ist dabei ohne jegliche Programmiererfahrung

oder Kenntnis einer klassischen Programmiersprache möglich.

Da das Einführungspraktikum an einer Hochschule naturgemäß auf die nachfolgenden Inhalte des Studiums

ausgerichtet sein sollte wird auf eine Verwendung von NXT-G zu Gunsten der Benutzung von „ernsthaften“

Programmierumgebungen verzichtet. Dies Eröffnet bereits während des ersten Semesters die Möglichkeit

sich mit einer Programmiersprache/-umgebung vertraut zu machen, die auch im weiteren Studienverlauf

noch zur Anwendung kommen wird. In diesem Fall sind dies:

Die Entwicklungsumgebung LabVIEW mit der graphischen Programmiersprache G

Die Programmiersprache C unter Benutzung von RobotC

Hierbei werden die unterschiedlichen Gruppen mit jeweils einer der beiden Programmierwerkzeuge

während des gesamten Praktikums arbeiten, so dass die Grundlagen in der Arbeit mit diesen

Page 4: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

Einführungs praktikum Roboterprogrammierung

1. Einführung

Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 4 / 8

Programmiersprachen nach erfolgreichem Absolvieren des Praktikums bekannt sind. Im Folgenden seien

die beiden zur Verfügung stehenden Alternativen kurz vorgestellt.

2.1.1 RobotC Textuelle Programmierung mit C

Das Programmpaket RobotC ist eine Entwicklungsumgebung die es ermöglicht Mindstorms-Roboter in

der Programmiersprache C zu programmieren.

C ist eine sehr weit verbreitete, rein

textuelle, Programmiersprache die auch in der

Industrie große Bedeutung besitzt. An der Carnegie

Mellon University (CMU) in den USA wurde RobotC

entwickelt um die Möglichkeit zu schaffen auf

Grundlage dieser Programmiersprache Programme

für die Mindstroms-Plattform entwickeln zu

können. Hierzu wurde eine spezielle Bibliothek

implementiert,

Abbildung 3 – Programmierung mit RobotC

wichtige Befehle zur Benutzung der entsprechenden Hardware (Motoren, Sensoren,…) enthält.

2.1.2 LabVIEW Graphische Programmierung mit G

Das Programmpaket LabVIEW ermöglicht die graphische Programmierung in einer eigens konzipierten,

graphischen Programmiersprache

(G). Hierbei wurden nahezu alle

typischen Elemente einer

klassischen textuellen

Programmiersprache (wie z.B. C)

graphisch umgesetzt. Die mit

LabVIEW erstellten Programme

stehen also in Sachen der

möglichen Funktionalität und

Komplexität auf einer Ebene mit

klassisch program-

Abbildung 4 – Programmierung mit LabVIEW

mierten Anwendungen. Ein großer Vorteil von LabVIEW ist die Möglichkeit sehr schnell und einfach

Benutzer-oberflächen zu erstellen und die jeweiligen Elemente mit bestimmten Funktionalitäten zu

versehen. Abbildung 4 zeigt ein Beispiel für ein mit LabVIEW entwickeltes Programm für einen LEGO

Mindstroms-Roboter.

Page 5: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

Einführungs praktikum Roboterprogrammierung

1. Einführung

Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 5 / 8

2.2 Hardware übersicht

Das Herzstück des Mindstormssystem ist der NXT-Brick, welcher die zentrale Intelligenz eines jeden

Mindstormsroboters darstellt. Der NXT-Brick verfügt dabei über eine USB-Schnittstelle zur Übertragung

von Programmen, sowie über Bluetooth welches zum einen für eine Kommunikation zwischen zwei

Robotern genutzt werden kann oder zum Steuern des Roboters mit Hilfe von mobilen Geräten (Laptop,

PDA,…). Darüberhinaus sind verschiedenste Sensoreinheiten im Mindstormspaket enthalten über die der

jeweilige Roboter seine Umwelt wahrnehmen kann. Interaktionsmöglichkeiten können dabei durch drei

Motoren realisiert werden mit denen zum Beispiel ein fahrbarer Roboter gebaut werden kann. Die

folgenden Abschnitte geben eine kurze Einführung in die unterschiedlichen Hardwarekomponenten.

2.2.1 NXT-Brick Das Herzstück

Der NXT-Brick ist die zentrale Verarbeitungseinheit des NXT-Systems und er ist zuständig für die

Programmverarbeitung. Hierzu enthält er einen leistungsstarken Mikroprozessor1 und entsprechenden

Programmspeicher. Die Spannungsversorgung des Bricks erfolgt über einen Akku auf der Rückseite.

Zur Kommunikation mit den anderen Elementen der Mindstormsplattform stehen insgesamt 7 Ports zur

Verfügung: 4 Eingangsports zum

Anschluss von Sensoren (Port 1 – Port

4) und 3 Ausgangsports zum Anschluss

von Motoreinheiten (Port A – Port C).

Desweiteren verfügt der NXT-Brick

über eine USB-Schnittstelle die zum

Übertragen von Programmen und zum

Debuggen2 genutzt werden kann. Als

weitere Schnittstelle steht Bluetooth

zur Verfügung. Bluetooth kann genutzt

werden um zum Beispiel eine

Kommunikation zwischen zwei

Robotern

Abbildung 5 – Übersicht NXT-Brick

aufzubauen (beispielsweise im Bereich des Roboterfußballs) oder aber um den Roboter mit anderen

mobilen Endgeräten (Laptop, PDA, Handy, etc.) zu verbinden um zum Beispiel Messwerte zu übertragen.

1 32-bit ARM7 Mikroprozessor 2 Unter Debugging versteht man im Allgemeinen die Beseitigung von Fehlern (Bugs) in einem Programm.

Page 6: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

Einführungs praktikum Roboterprogrammierung

1. Einführung

Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 6 / 8

2.2.2 Die Sensoren

Die folgende Tabelle gibt eine Übersicht über die verfügbaren Sensoren von LEGO Mindstorms. Wie bereits

erwähnt, werden die Sensoren an die Ports 1 - 4 am NXT-Brick mit Hilfe der Verbindungskabel

angeschlossen. Welcher Sensor mit welchem Port verbunden wird spielt dabei keine Rolle, da die

notwendigen Einstellungen innerhalb der benutzten Software vorgenommen werden könnnen.

Sensor Abbildung Beschreibung

Ultraschallsensor

Der Sensor nutzt Ultraschallmessungen, um

seine Umgebung wahrzunehmen. Er sendet ein

Signal aus uns wartet auf dessen Rückkehr.

Während der Sensor auf das Reflexsignal wartet,

wird die dafür benötigte Zeit gemessen. Die Zeit

zwischen Aussendung und Empfang des Signals

bildet die Grundlage für die Berechnung der

Entfernung zum erkannten Objekt.

Mikrofon

Der Geräuschsensor (Mikrofon) ist ein hoch

entwickelter Sensor, der es ermöglicht den

Roboter auf neue Einflüsse und Reize reagieren

zu lassen. Der Sensor misst den Schall in db und

dbA. Der Roboter kann somit auf leise und laute

Kommandos reagieren, sowie auf Kommandos

die von einer Person oder von mehreren

gleichzeig gegeben werden.

Lichtsensor

Der Sensor erlaubt präziserer Lichtmessungen

auf einer Skala zwischen 0 (kein Licht) und 100

(sehr hell). Es ist ebenfalls möglich das

Infrarotlicht unterhalb dem Sensor auszu-

schalten, um nur das Umgebungslicht zu messen.

Berührungssensor

Der Berührungssensor ist ein sehr einfaches

Gerät, das nur zwei Zustände haben kann: An

(Stromfluss) und Aus (Stromfluss

unterbrochen). Der Roboter kann entsprechend

agieren oder reagieren, wenn er eine

Spannungsänderung misst. Die durch Drücken

und Loslassen des Knopfes ausgelöst wird.

Tabelle 1 –Sensorübersicht

Page 7: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

Einführungs praktikum Roboterprogrammierung

1. Einführung

Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 7 / 8

2.2.3 Die Motoren

Bei den mitgelieferten Antriebsmotoren handelt es sich um Getriebemotoren mit einem integrierten

Abbildung 6 – Innenansicht eines Motors

Rotationssensor, der die genaue

Geschwindigkeit sowie Entfernung messen und

an den NXT-Brick zurückmelden kann. Die

Motoren können sehr präzise gesteuert werden

und es besteht die Möglichkeit, dass mehrere

Motoren unter-einander die Geschwindigkeit

abgleichen, während sich der Roboter bewegt.

Jeder Motor kann in 1°-Schritten angesteuert

werden. Die

Motoren werden mit den beigefügten Verbindungskabeln mit einem der Ausgangsports (Port A - C) verbunden.

Literatur empfehlungen

Für jedes Projekt innerhalb des Einführungspraktikums sind keinerlei Vorkenntnisse erforderlich, wer sich

jedoch über den Umfang der Veranstaltungen hinaus mit dem Thema Mindstorms und Roboter-

programmierung beschäftigen will, dem seien die folgenden Quellen ans Herz gelegt.

Eventuell empfiehlt es sich auch ein jeweiliges Buch zu einer der beiden Programmiersprachen parallel zu

den stattfindenden Praktika zu benutzen. Damit wird es ermöglicht, die behandelten Themengebiete und

Sprachelemente nochmals zu Hause nachzuschlagen.

Mind storms

Baum, D. 2003, Definitive guide to LEGO MINDSTORMS: [an unofficial guide to the LEGO

MINDSTORMS Robotics Invention System 2.0], 2nd edn, APress; Springer, Berkeley, Calif.;

New York.

Boogaarts, M. 2008, The LEGO Mindstorms NXT idea book: design, invent, and build, Nachdr

edn, No Starch Press, San Francisco, Calif.

Engels, M. 2009, Programmierung von LEGO MINDSTORMS NXT mit NI LabVIEW, Hanser,

Carl, München.

Hansen, J.C. 2007, Lego Mindstorms NXT power programming: [Robotics in C], Variant

Press, Winnipeg.

Perdue, D.J. 2008, The unofficial LEGO Mindstorms NXT inventor's guide, edn, No Starch

Press, San Francisco, CA.

Page 8: Einführungs - omega.fh-swf.deomega.fh-swf.de/ftp/datentechnik/Mindstorms... · Hierzu wurde eine spezielle Bibliothek implementiert, Abbildung 3 – Programmierung mit RobotC wichtige

Einführungs praktikum Roboterprogrammierung

1. Einführung

Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 8 / 8

C Programmierung

DAUSMANN, M., BRÖCKL, U. and GOLL, J., 2008. C als erste Programmiersprache : vom

Einsteiger zum Profi ; [mit Übungsaufgaben und Compiler auf CD-ROM]. 6, überarb Aufl

edn. Wiesbaden: Teubner.

ERLENKÖTTER, H., 2009. C : Programmieren von Anfang an. 16 Aufl edn. Reinbek bei

Hamburg: Rowohlt-Taschenbuch-Verl.

WOLF, J., 2009. C-Programmierung : mit einfachen Beispielen ; leicht, klar, sofort

verständlich. München: Markt-+-Technik-Verl.

LabVIEW Programmierung

GASPERI, M., 2008. LabVIEW for Lego Mindstorms NXT. Allendale, NJ: National

Technology and Science.

GEORGI, W. and METIN, E., 2008. Einführung in LabVIEW : mit ... 133 Aufgaben ;

[Studentenversion 8.5 inklusive]. 3., vollst. überarb. und erw. Aufl edn. München:

Fachbuchverl. Leipzig im Carl-Hanser-Verl.

JAMAL, R. and HAGESTEDT, A., 2007. LabVIEW für Studenten. 4. Aufl., [Nachdr. edn.

München u.a.: Pearson Studium.

MÜTTERLEIN, B., 2007. Handbuch für die Programmierung mit LabVIEW : mit

Studentenversion LabVIEW 8. 1. Aufl edn. Heidelberg: Elsevier, Spektrum Akad. Verl.

Ansprech partner

Bei weiteren Fragen zur Organisation des Einführungspraktikums wenden Sie sich bitte jederzeit an:

Antonius Schmidt, M.Sc.

Raum 04.105

Tel: +49 (0)29 21 / 378-452

E-Mail: [email protected]