Lego Mindstorms EV3

Aus HSHL Mechatronik
Version vom 14. März 2019, 10:28 Uhr von Alexander Schirrmeister (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

EV3 Education Software

EV3 mit Simulink

BricxCC mit EV3

BrickPi

Pi meets Simulink

Bildschirmfotos von EV3

Run a Simulink model on EV3 hardware

Installationshinweise

EV3 via MATLAB Drahtlosverbindung

Technische Daten LEGO EV3

Der EV3 ist die Weiterentwicklung des NXT, welche im September 2013 auf den Markt gekommen ist. Im Gegensatz zum Vorgänger basiert der EV3 auf einem Linux-System, während der NXT eine eigene Firmware besitzt. Die Sensoren des Vorgängersystems sind vollständig mit dem EV3-System kompatibel.

EV3 Befehle für MATLAB

Eine Bibliothek über die MATLAB-Befehle für die Kommunikation zum EV3 ist derzeit noch nicht verfügbar, so dass wir uns die Befehle für die Ansteuerung aus den Beispielen der QUT EV3-Seite raussuchen mussten. Nachfolgend ein paar Beispiele, die den Einstieg in die Programmierung des EV3 erleichtern sollten:

  • disp ('Text') Zeigt Text auf dem Bildschirm des Bricks an
  • b.beep() lässt den Brick ein Geräusch machen, hilfreich z.B. nach dem Verbindungsaufbau im Code
  • motorpower = 0 sollte in jedem Programm, in dem Motoren verwendet werden, zu Beginn stehen
  • b.outputPower(0,Device.MotorA+Device.MotorB,motorPower) weist den Motoren auf den Kanälen A und B auf layer 0 die zuvor initialisierte motorPower zu, startet diese jedoch noch nicht
  • b.outputStart(0,Device.MotorA+Device.MotorB) startet die Motoren auf den Kanälen A und B
  • reading = b.inputReadSI(0,0,0) liest Sensoren aus. In der Klammer steht die erste Null für den layer, die Zweite für den Anschluss (beginnt bei 0) und die Dritte für den Modus. Der Gyrosensor hat hier z.B. die Möglichkeit, im Modus 0 den derzeitigen Winkel und im Modus 1 eine Winkelgeschwindigkeit zu liefern.
  • pause(0.1) mussten wir überall zwischen den Sensorabfragen einbinden, da wir ansonsten einen NaN-Fehler erhalten haben
  • b.outputStop(0,Device.MotorA+Device.MotorB,0); stoppt die zuvor verwendeten Motoren auf den Kanälen A und B