SuGO Bot Matlab Code: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
clear all | <pre> | ||
close all | clear all | ||
close all | |||
clc | clc | ||
b = Brick('ioType','usb'); | b = Brick('ioType','usb'); %Verbindung zum EV3 Brick erstellen | ||
motorPower = 40; | motorPower = 40; %Standardgeschwindigkeit des Motors auf 40 setzen | ||
while (true) | while (true) %Hauptschleife | ||
disp('main') | disp('main') | ||
b.outputPower(0,Device.MotorA,motorPower) | b.outputPower(0,Device.MotorA,motorPower) | ||
| Zeile 16: | Zeile 17: | ||
b.outputStart(0,Device.MotorD) | b.outputStart(0,Device.MotorD) | ||
pause(0.0001); | pause(0.0001); | ||
layer = 0; | layer = 0; %definition des Layers für die Sensoren | ||
no1 = 0; | no1 = 0; | ||
no2 = 1; | no2 = 1; | ||
mode = -1; | mode = -1; %Modus der Sensoren wählen(-1 bedeutet Standardmodus beibehalten) | ||
ultrasonic = b.inputReadSI(layer,no1,mode); | ultrasonic = b.inputReadSI(layer,no1,mode); %auslesen des Ultraschallsensors | ||
pause(0.0001); | pause(0.0001); | ||
coloursensor = b.inputReadSI(layer,no2,mode); | coloursensor = b.inputReadSI(layer,no2,mode); %auslesen des Farbsensors | ||
pause(0.0001); | pause(0.0001); | ||
if coloursensor <= 10 | if coloursensor <= 10 %wenn schwarze Linie erkannt wird | ||
disp('schwarze linie') | disp('schwarze linie') | ||
b.outputPower(0,Device.MotorA,-60) | b.outputPower(0,Device.MotorA,-60) | ||
| Zeile 52: | Zeile 53: | ||
pause(0.0001); | pause(0.0001); | ||
end | end | ||
if ultrasonic <= 30 | if ultrasonic <= 30 %wenn Gegner erkannt wird | ||
disp('gegner gesichtet') | disp('gegner gesichtet') | ||
b.outputPower(0,Device.MotorA,90) | b.outputPower(0,Device.MotorA,90) | ||
| Zeile 64: | Zeile 65: | ||
end | end | ||
if coloursensor >= 11 && ultrasonic >= 31 | if coloursensor >= 11 && ultrasonic >= 31 % kein Event eingetroffen | ||
disp('kein gegner oder schwarze linie') | disp('kein gegner oder schwarze linie') | ||
end | end | ||
end | end | ||
b.outputStop(0,Device.MotorA,0)<br/> | b.outputStop(0,Device.MotorA,0) %abschalten der Motoren<br/> | ||
b.outputStop(0,Device.MotorD,0) | b.outputStop(0,Device.MotorD,0) | ||
delete(b); | delete(b); | ||
</pre> | |||
Aktuelle Version vom 28. Januar 2014, 16:21 Uhr
clear all
close all
clc
b = Brick('ioType','usb'); %Verbindung zum EV3 Brick erstellen
motorPower = 40; %Standardgeschwindigkeit des Motors auf 40 setzen
while (true) %Hauptschleife
disp('main')
b.outputPower(0,Device.MotorA,motorPower)
pause(0.0001);
b.outputStart(0,Device.MotorA)
pause(0.0001);
b.outputPower(0,Device.MotorD,motorPower)
pause(0.0001);
b.outputStart(0,Device.MotorD)
pause(0.0001);
layer = 0; %definition des Layers für die Sensoren
no1 = 0;
no2 = 1;
mode = -1; %Modus der Sensoren wählen(-1 bedeutet Standardmodus beibehalten)
ultrasonic = b.inputReadSI(layer,no1,mode); %auslesen des Ultraschallsensors
pause(0.0001);
coloursensor = b.inputReadSI(layer,no2,mode); %auslesen des Farbsensors
pause(0.0001);
if coloursensor <= 10 %wenn schwarze Linie erkannt wird
disp('schwarze linie')
b.outputPower(0,Device.MotorA,-60)
pause(0.0001);
b.outputStart(0,Device.MotorA)
pause(0.0001);
b.outputPower(0,Device.MotorD,-60)
pause(0.0001);
b.outputStart(0,Device.MotorD)
pause(0.6);
b.outputPower(0,Device.MotorA,60)
pause(0.0001);
b.outputStart(0,Device.MotorA)
pause(0.0001);
b.outputPower(0,Device.MotorD,-60)
pause(0.0001);
b.outputStart(0,Device.MotorD)
pause(0.7);
b.outputPower(0,Device.MotorA,motorPower)
pause(0.0001);
b.outputStart(0,Device.MotorA)
pause(0.0001);
b.outputPower(0,Device.MotorD,motorPower)
pause(0.0001);
b.outputStart(0,Device.MotorD)
pause(0.0001);
end
if ultrasonic <= 30 %wenn Gegner erkannt wird
disp('gegner gesichtet')
b.outputPower(0,Device.MotorA,90)
pause(0.0001);
b.outputStart(0,Device.MotorA)
pause(0.0001);
b.outputPower(0,Device.MotorD,90)
pause(0.0001);
b.outputStart(0,Device.MotorD)
pause(0.1);
end
if coloursensor >= 11 && ultrasonic >= 31 % kein Event eingetroffen
disp('kein gegner oder schwarze linie')
end
end
b.outputStop(0,Device.MotorA,0) %abschalten der Motoren<br/>
b.outputStop(0,Device.MotorD,0)
delete(b);