EV3 mit Simulink: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(38 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:


== Systemvoraussetzung ==
== Systemvoraussetzung ==
* Matlab R2017a
* Matlab R2017a  
* [https://www.lego.com/de-de/mindstorms/mindstormservices/firmware-download-page?assetid=%7BA4FFCBDA-FC2C-44F6-A876-B8A7DE7F2720%7D EV3 Firmware V1.09H]
* [https://education.lego.com/de-de/downloads/mindstorms-ev3/software LEGO MINDSTORMS Education EV3 Lab] installieren EV3 über USB anschließen und über den Button <code> Hilfe -> nach Aktualisierungen </code> suchen die Firmware der EV3 auf mindestens V1.09H Updaten.
 
<!-- * [https://www.lego.com/en-us/mindstorms/mindstormservices/firmware-download-page?assetid=%7B90384455-611A-4258-BC6D-90CEA9CD5108%7D EV3 Firmware V1.09H]-->
* Simulink Support Package for LEGO MINDSTORMS EV3 Hardware version 17.1.1.0 by MathWorks   
* Simulink Support Package for LEGO MINDSTORMS EV3 Hardware version 17.1.1.0 by MathWorks   
   <code>  Add-Ons -> Get Hardware Support Packages -> Simulink Support Package for LEGO MINDSTORMS EV3 Hardware </code>
   <code>  Add-Ons -> Get Hardware Support Packages -> Simulink Support Package for LEGO MINDSTORMS EV3 Hardware </code>
<!--* Für Firmware Updates und USB Treiber empfiehlt sich die Installation von [https://education.lego.com/de-de/downloads/mindstorms-ev3 EV3 Lobby] v1.2.3-->
==Firmware Updates der Brick EV3==
Bitte geht mit dem Interet Explorer / Microsoft Edge oder mit Chrome auf [https://education.lego.com/en-us/support/mindstorms-ev3/firmware-update die Lego Firmware Update Seite] und folgt den Anweisungen.


== Getting Started ==
== Getting Started ==
Die ersten Schritte der Installation werden [https://de.mathworks.com/help/supportpkg/legomindstormsev3/examples/getting-started-with-lego-mindstorms-ev3-hardware.html hier] beschrieben. [https://de.mathworks.com/help/supportpkg/legomindstormsev3/examples/communicating-with-lego-mindstorms-ev3-hardware.html?prodcode=SL&s_tid=gn_loc_drop hier]
Die ersten Schritte der Installation werden [https://de.mathworks.com/help/supportpkg/legomindstormsev3/examples/getting-started-with-lego-mindstorms-ev3-hardware.html hier] beschrieben. [https://de.mathworks.com/help/supportpkg/legomindstormsev3/examples/communicating-with-lego-mindstorms-ev3-hardware.html?prodcode=SL&s_tid=gn_loc_drop hier]
# MATLAB R2017a legt die Dateien des Support Packages in folgendem ''versteckten'' Ordner ab:<br>  <code>c:\ProgramData\MATLAB\SupportPackages\R2017a\toolbox\target\supportpackages\ev3\</code>
# Im Ordner <code>..\ev3\src</code> liegt die Datei <code>driver_ev3_touch_sensor.c</code> für einen analogen Tastsensor. Kopieren Sie diesen als <code>driver_hitechnic_gyro.c</code>.
# Passen Sie die C-Datei <code>driver_hitechnic_XXX.c</code> an den Sensor an.
# Kopieren Sie die Basisfuktionen in die H-Datei <code>driver_ev3.h</code> im Verzeichnis <code>..\ev3\include</code>.
# Legen Sie mit <code>Matlab -> New -> System Object -> Advanced</code> ein Systemobjekt <code>hitechnic_XXX.m</code> an.
# Legen Sie in Simulink einen <code>MATLAB System</code> Block an.
# Verknüpfen Sie diesen über Doppelklick den Simulink Block mit dem Systemobjekt.
# Stellen Sie Port und Datenrate des Sensors an.
# Stellen Sie mit <code>Run on Target</code> EV3 als Ziel ein.
# <code>Strg +  B</code>: Build Target


== Liste der Unterstützten Sensoren ==
== Liste der Unterstützten Sensoren ==
* [http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-jessie/sensors.html Linux Kernel Drivers for ev3dev-jessie]
* [http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-jessie/sensors.html Linux Kernel Drivers for ev3dev-jessie]
Dieser Liste lässt sich beispielsweiose entnehmen, dass der HiTechnic NXT Gyro Sensor (NGY1044) ein analoger Sensor ist. Um diesen Sensor mit Ev3 zu verwenden, sollte man dem Tutorial "Einbindung Analoger Seneosren" folgen.
Dieser Liste lässt sich beispielsweise entnehmen, dass der HiTechnic NXT Gyro Sensor (NGY1044) ein analoger Sensor ist. Um diesen Sensor mit EV3 zu verwenden, sollte man dem Tutorial "Einbindung Analoger Seneosren" folgen.
 
* [http://ev3.fantastic.computer/doxygen/types.html  Supported EV3 Sensors]
Diese Liste zeigt zusätzlich die Wertebereiche, die zur Interpretation der Daten notwendig sind.
 
== Analogsensor Demo ==
Im SVN Ordner liegt ein Demo für die Einbindung des analogen HiTechnic Gyro bereit:
 
[https://svn.hshl.de/svn/BSE_SigSys/trunk/SRC/Demos/EV3_HiTechnic_Gyro/ https://svn.hshl.de/svn/BSE_SigSys/trunk/SRC/Demos/EV3_HiTechnic_EOPD/]
 
Gegen Sie in nachfolgenden Schritten vor:
# Fügen Sie die C-Datei <code>driver_hitechnic_gyro.c</code> in den src-Ordner des Support Packages ein.
# Fügen Sie die H-Datei <code>driver_ev3.h</code> in den include-Ordner des Support Packages ein.
# Verknüpfen Sie im System Objekt File die Quelldatei und die Include-Datei unter der Funktion updateBuildInfo (siehe <code>hitechnic_gyro.m</code> Zeile 120ff).
# Erzeugen Sie einen Simulink Block mit<br><code>  Simulink Library Browser -> Simulink -> User-Definded Functions -> MATLAB System</code>.
# Doppelklicken Sie diesen Block und zeigen Sie verknüpfen Sie den System Objekt Block <code>hitechnic_gyro.m</code>.
 
== I2C-Sensor Demo ==
 
Beispiele:
* [http://www.robotnav.com/accelerometers/ http://www.robotnav.com/accelerometers/]
* [https://github.com/ev3dev/lego-linux-drivers/blob/ev3dev-stretch/sensors/nxt_i2c_sensor_core.c nxt_i2c_sensor_core.c]
* [https://github.com/ev3dev/lego-linux-drivers/blob/ev3dev-stretch/sensors/nxt_i2c_sensor_defs.c nxt_i2c_sensor_defs.c]


== Troubleshooting ==
== Troubleshooting ==
Zeile 30: Zeile 69:
== Weiterführende Links ==
== Weiterführende Links ==
*[https://www.mathworks.com/matlabcentral/fileexchange/39354-device-drivers Developing Simulink Device Driver Blocks: Step-By-Step Guide and Examples]
*[https://www.mathworks.com/matlabcentral/fileexchange/39354-device-drivers Developing Simulink Device Driver Blocks: Step-By-Step Guide and Examples]
*[http://ev3.fantastic.computer/doxygen/types.html Liste der von EV3 unterstützten Sensoren]
*[https://github.com/ev3dev/lego-linux-drivers/tree/ev3dev-stretch/sensors Linux Treiber für EV3 (ev3dev)]
*[http://docs.ev3dev.org/projects/lego-linux-drivers/en/ev3dev-jessie/sensors.html EV3Dev.org: Von EV3 unterstützte Sensoren]
*[https://www.mathworks.com/help/supportpkg/armcortexa/device-driver-blocks.html Matlab Tutorial: Create a device driver block to access specific features of your hardware board]


----
----
→ zurück zum Hauptartikel: [[Lego_Mindstorms_EV3|Lego Mindstorms EV3]]
→ zurück zum Hauptartikel: [[Lego_Mindstorms_EV3|Lego Mindstorms EV3]]

Aktuelle Version vom 27. März 2020, 18:02 Uhr


Autor: Prof. Schneider

Lego Mindstorms EV3 wird von Matlab und Simulink unterstützt. Dieser Artikel behandelt die Einbindung des EV3 in Simulink.

Systemvoraussetzung

  • Matlab R2017a
  • LEGO MINDSTORMS Education EV3 Lab installieren EV3 über USB anschließen und über den Button Hilfe -> nach Aktualisierungen suchen die Firmware der EV3 auf mindestens V1.09H Updaten.
  • Simulink Support Package for LEGO MINDSTORMS EV3 Hardware version 17.1.1.0 by MathWorks
   Add-Ons -> Get Hardware Support Packages -> Simulink Support Package for LEGO MINDSTORMS EV3 Hardware 

Firmware Updates der Brick EV3

Bitte geht mit dem Interet Explorer / Microsoft Edge oder mit Chrome auf die Lego Firmware Update Seite und folgt den Anweisungen.

Getting Started

Die ersten Schritte der Installation werden hier beschrieben. hier

  1. MATLAB R2017a legt die Dateien des Support Packages in folgendem versteckten Ordner ab:
    c:\ProgramData\MATLAB\SupportPackages\R2017a\toolbox\target\supportpackages\ev3\
  2. Im Ordner ..\ev3\src liegt die Datei driver_ev3_touch_sensor.c für einen analogen Tastsensor. Kopieren Sie diesen als driver_hitechnic_gyro.c.
  3. Passen Sie die C-Datei driver_hitechnic_XXX.c an den Sensor an.
  4. Kopieren Sie die Basisfuktionen in die H-Datei driver_ev3.h im Verzeichnis ..\ev3\include.
  5. Legen Sie mit Matlab -> New -> System Object -> Advanced ein Systemobjekt hitechnic_XXX.m an.
  6. Legen Sie in Simulink einen MATLAB System Block an.
  7. Verknüpfen Sie diesen über Doppelklick den Simulink Block mit dem Systemobjekt.
  8. Stellen Sie Port und Datenrate des Sensors an.
  9. Stellen Sie mit Run on Target EV3 als Ziel ein.
  10. Strg + B: Build Target

Liste der Unterstützten Sensoren

Dieser Liste lässt sich beispielsweise entnehmen, dass der HiTechnic NXT Gyro Sensor (NGY1044) ein analoger Sensor ist. Um diesen Sensor mit EV3 zu verwenden, sollte man dem Tutorial "Einbindung Analoger Seneosren" folgen.

Diese Liste zeigt zusätzlich die Wertebereiche, die zur Interpretation der Daten notwendig sind.

Analogsensor Demo

Im SVN Ordner liegt ein Demo für die Einbindung des analogen HiTechnic Gyro bereit:

https://svn.hshl.de/svn/BSE_SigSys/trunk/SRC/Demos/EV3_HiTechnic_EOPD/

Gegen Sie in nachfolgenden Schritten vor:

  1. Fügen Sie die C-Datei driver_hitechnic_gyro.c in den src-Ordner des Support Packages ein.
  2. Fügen Sie die H-Datei driver_ev3.h in den include-Ordner des Support Packages ein.
  3. Verknüpfen Sie im System Objekt File die Quelldatei und die Include-Datei unter der Funktion updateBuildInfo (siehe hitechnic_gyro.m Zeile 120ff).
  4. Erzeugen Sie einen Simulink Block mit
    Simulink Library Browser -> Simulink -> User-Definded Functions -> MATLAB System.
  5. Doppelklicken Sie diesen Block und zeigen Sie verknüpfen Sie den System Objekt Block hitechnic_gyro.m.

I2C-Sensor Demo

Beispiele:

Troubleshooting

Bei Verbindungsproblemen mit USB rät Matlab folgendes.

  • Verwenden Sie die EV3 Firmware 1.03, 1.06, 1.07 oder 1.08.

WLAN Adapter

Folgende WLAN Adapter funktionieren mit EV3

  • Edimax EW-7811UN Wireless Adapter
  • NETGEAR N150 Wireless Adapter (WNA1100)

Weiterführende Links



→ zurück zum Hauptartikel: Lego Mindstorms EV3