Beruflich Dokumente
Kultur Dokumente
Informationstechnik
3. Projektversuch
Schallsensor
13. Oktober 2009
I
Inhaltsverzeichnis
Inhaltsverzeichnis
1 Einleitung 1
2 Grundlagen 2
2.1 Mindstorms NXT Schallsensor . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 LEGO Lampe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 MATLAB-Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3.1 for-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.2 MATLAB-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.3 Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Durchf uhrung 6
3.1 Sensor testen (ca. 30 min) . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Sensor auslesen (ca. 90 min) . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Klatschsensor (ca. 60 min) . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
II
1 Einleitung
1 Einleitung
Mit dem im LEGO Mindstorms NXT Education Set enthaltenen Schallsensor ist es
moglich, Gerausche zu detektieren und gegebenenfalls darauf zu reagieren. In diesem
Versuch sollen Sie den Sensor naher kennenlernen.
Ein wichtiges Hilfsmittel bei der Programmierung von Robotern sind auerdem Schlei-
fen, da die selben Arbeitsschritte oft immer wieder ausgef uhrt m ussen, bis ein Ereignis
eintritt. Ziel des Versuches ist daher auch, die Programmierung der for-Schleife von MAT-
LAB zu vertiefen.
1
2 Grundlagen
2 Grundlagen
Im Folgenden wird der Schallsensor und die Funktionen beschrieben, mit denen der Sensor
aus MATLAB angesteuert werden kann.
2.1 Mindstorms NXT Schallsensor
Abbildung 1: Schallsensor ( c LEGO)
Der Schallsensor im Mindstorms-Kit (siehe Abbildung 1) misst den Schalldruck in seiner
Umgebung. Im Gegensatz zu einem einfachen Mikrofon ist der Sensor nicht dazu geeig-
net, Gerausche oder Sprache aufzunehmen, die spater wieder abgespielt werden konnen.
Der Messwert, den der Sensor an den NXT-Brick liefert, ist eher zu vergleichen mit der
mittleren
Bug
(engl.: Kafer, Insekt) f ur Programmfehler. In heutigen Zeiten handelt es sich jedoch meis-
tens nicht um einen Fehler der Hardware (wie z.B. defekter Hauptspeicher), sondern
meistens um Fehler, die der Programmierer selbst gemacht hat. Da man zunachst die
Codezeile nden muss, in der die Ursache f ur das Fehlverhalten des Programms steckt,
dauert die Suche nach solchen Fehlern meistens langer als die Behebung (und meist auch
langer als erwartet).
Wie in vielen anderen Entwicklungsumgebungen auch gibt es in MATLAB einen Debug-
ger. Mit diesem Werkzeug kann man ein Programm wahrend der Abarbeitung anhalten,
den Inhalt aller Variablen inspizieren, dann schrittweise mit der Abarbeitung fortfahren,
etc. Damit lassen sich Bugs wesentlich schneller nden als durch Betrachten des fehler-
haften Programmverhaltens.
Zum Benutzen des Debuggers muss man lediglich in einer Zeile des Programms einen
Breakpoint, also den Punkt, an dem die Abarbeitung des Programms anhalten soll, set-
zen. Dies geschieht in MATLAB, indem man im Editor auf den Strich rechts neben der
Zeilennummer klickt. Es erscheint dann ein roter Kreis (Abb. 3). Startet man dann das
Programm, wird es vorlaug an dieser Stelle unterbrochen, und die in Abb. 2 gezeigten
Symbole in der Men uleiste werden aktiv. Man kann dann das Programm schrittweise und
interaktiv abarbeiten lassen (Step), weiter ausf uhren lassen bis zum nachsten Breakpoint
oder Programmende (Continue) oder auch den Debugmodus verlassen (Exit). Im Debug-
modus erscheint vor dem Prompt im Befehlsfenster ein