Übung 11 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 11 – Mein erster Scanner While-Schleife und Matrizen By Qurren (Qurren's file) [GFDL ( or CC-BY- SA-3.0 ( via Wikimedia Commons
Übung 11 - MdMT Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss. Heute Neu: While-Schleife in MATLAB % Beispiel – Endlosschleife: a = 5; while (a < 10) pause(0.1); end
Übung 11 - MdMT Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss Heute Neu: While-Schleife in MATLAB % Beispiel – überflüssige Schleife: a = 5; while (a > 10) pause(0.1); end
Übung 11 - MdMT Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss Heute Neu: While-Schleife in MATLAB % Beispiel – noch eine Endlosschleife: a = true; while (a) pause(0.1); end
Übung 11 - MdMT Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss Heute Neu: While-Schleife in MATLAB % Zur nächsten Schleifeniteration springen: a = 0; while (a < 10) a = a + 1; if (mod(a,2) == 0) continue % Gehe Zum nächsten Schleifendurchlauf! end disp(a); end
Übung 11 - MdMT Der Unterschied zu for-Schleife: Sie ist immer dann zu verwenden, wenn man vorher nicht weiß, wie oft die Schleife durchlaufen werden muss Heute Neu: While-Schleife in MATLAB % Schleife vorzeitig abbrechen: a = 0; while (a < 10) a = a + 3; if (a == 6) break % Springe sofort hinter die Schleife end disp(a); end
Übung 11 - MdMT Anwendungsbeispiel: Warten auf einen Tastendruck % Sinnvolle Verwendung: Programm warten lassen auf % Betätigung des Tastsensors – die LEGO-Toolbox hat hierfür % anders als für die Motorbewegung nämlich % keinen Befehl eingebaut! OpenSwitch(SENSOR_1); %... Irgendetwas tun... % Auf den Tast-SENSOR_1 warten while (GetSwitch(SENSOR_1) == false) pause(0.1); end %... Etwas anders tun...
Übung 11 - MdMT Neu: Auslesen des Helligkeitssensors % Sensor initialisieren (wie immer nur einmal!) OpenLight(SENSOR_1,'ACTIVE'); % Sensor auslesen (beliebig oft) pause(0.1); helligkeit = GetLight(SENSOR_1); %0 = dunkel %1023 = max. hell % Sensor schließen (am Ende einmal) CloseSensor(SENSOR_1);
Übung 11 - MdMT Aufgabe 1 Baue einen „Scanner“ für die gedruckte Vorlage: Man soll den Helligkeitssensor nacheinander auf jedes der 12 Felder halten können; auf Betätigung des Tastsensors wird das jeweilige Feld „eingelesen“. Die 12 Helligkeitswerte sind in einer 1x12-Matrix values zu speichern; von dieser ist ein Plot auszugeben. Aufgabe 2 Wie Aufgabe 1, die Werte sind jedoch in einer 3x4-Matrix (entsprechend den gedruckten Farbfelder) zu speichern. Die Matrix ist dann folgendermaßen als Bild darzustellen (welches dann idealerweise ähnlich der Vorlage aussehen sollte): image(values, 'CDataMapping', 'scaled'); colormap(gray); Aufgaben: Mein 12-Pixel-Graustufen-Scanner