EV3 Programmierung mit Python 2.7 V1.4

Ähnliche Dokumente
EV3-Programmierung mit Python und PyCharm

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik graphische Programmierung

Fakultät für Informatik, Institut für Robotik. Legorobotik Graphische Programmierung Vorstellung des EV3 Systems und der Programmierumgebung.

EV3-Programmierung mit TigerJython (Python)

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3

Postenblatt 1: Berührungssensor

Technologie. NXT-Hauptmenü My Files

Vergleich zwischen Open Roberta / NEPO und LEGO MINDSTORMS EV3 / EV3-G. - Übersicht/Fact-Sheet - Programmblöcke - Beispielprogramme

Inhaltsverzeichnis. 1 Anfang 2. 2 Erste Schritte 3. 3 Schleifen repeat while(true) Die if()-schleife... 5.

Wie können See how wir far Enchanting away something mitteilen, is. dass am NXT der Lichtsensor an Port 3 angeschlossen ist?

Programmieren des NXT-Roboters mit LabView 2010

RobotC Beispielprogramme für EV3 Kepler Gymnasium Weil der Stadt Thomas Jörg Stand: 03. September 2018 Version 1.5

Seite 1/6. ModellFerienPass.pdf).

Die Einführung von mehreren "Start Bausteinen", um das Programm zu starten, realisiert leicht die parallele Programmverarbeitung (Parallele Tasks).

EINFÜHRUNG LEGO MINDSTORMS

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN

Infokarte: Snap4Arduino

Übungszettel 2a - Python

Baue deinen ersten Roboter

ACTIONCards for. H. Milchram März 2019

Der Lego NXT Roboter. Hochschule Mannheim Fakultät für Informatik

Die Denkschule 1 Reto Speerli

Aufgabe Im Quadrat fahren

ROBOTER. LÖSUNGEN zur Arbeit mit dem LEGO Mindstorms EV3

Programmübersicht Software EV3

Fakultät für Informatik, Institut für Robotik Laborpraktikum Legorobotik in C EV3

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT

Softwarepraktikum Teamrobotik SS Gruppe 2

Der CodeBug. A) Erste Schritte. 1) Einleitung

Arbeitsblatt: Berührungssensor (Posten 1)

NXC-Programmiersprache

Workshop #1 Grundlagen, Motorsteuerung, Schleifen

Fakultät für Informatik, Institut für Robotik EV3 - Laborpraktikum I Einführung in die Programmierung mit JAVA

Fakultät für Informatik, Institut für Robotik EV3 - Laborpraktikum II Programmierung mit JAVA

Einführung in die Programmierung des VEX IQ mit ROBOTC. Kurzanleitung

Inhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17

Arbeit_Roboter. Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an.

Lego-Roboter im Informatik-Unterricht der Sekundarstufe I

Bedienungsanleitung für das DHT-U Firmware - Update

Rückgabewerte von Methoden

Check Point VPN Client

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

Arbeitsblatt: Wie rede ich mit einem Roboter?

Wiederherstellen des Android-Betriebssystems

Ein Array ist eine Liste mit Einträgen, fast wie eine Einkaufsliste. Man kann darin also mehr als einen Eintrag in eine einzige Variable speichern.

SpectraDim64 für software version: V2.6 Herausgegeben: April V1.0 - Rev A

Betriebs- & Softwareanleitung RGB Controller

Wir arbeiten ständig daran, unseren ChessGenius Exclusive noch besser zu machen. Deswegen freuen wir uns immer über Ihr Feedback unter

Thermostat/Temperaturwächter

Beispielprojekt: Datenloggen mit MSD200 und Auswertung mit Tabellenkalkulation (Teil1)

Erste Schritte zum Start findest du hier:

LEGO -EV3-Roboter. Bauen und programmieren mit LEGO MINDSTORMS EV3. Bearbeitet von Laurens Valk

NuVinci Desktop PC Gebrauchsanweisung (enthält NuVinci Harmony Sortware-Update Anleitung)

Eine Zusammenstellung einiger einfacher Aufgaben für erste einfache Programme mit dem Blockeditor gibt es zum Beispiel auf microbitly.weebly.com.

Voraussetzungen. XL2 Schallpegelmesser NetBox, Kommunikations-Hub für XL2 Computer mit Internetzgang. Erste Schritte

DC 5V Stepper Motor 28BYJ-48. Verwendung mit einem Arduino

Ein erstes "Hello world!" Programm

Übungen. Version

Möge das Abenteuer beginnen!

PG5 Starter Training PG5 Core und Webeditor 5 Daniel Ernst DE

Check Point VPN Client Die notwendige Software und diese Anleitung finden Sie auf der Webseite

Raspberry Pi meets Pocket Code. Tutorial: Ampelschaltung

Copyright 2019 by ELESTA building automation GmbH. All Rights Reserved.

Testo FlashUpdate. Gerätesoftware Update und Download Anweisung

Bedienungsanleitung / Manual : LED-Nixie

Für die Arbeit mit Pygame werden wird die Umgebung PortablePython Version 2.7.x verwenden.

micro:bit MIA INFORMATIK micro:bit Die Platine: Erklärungen zur Hardware: Kodierung & Programmierung:

EIN ERSTES PROGRAMM FÜR DEN EV3. LMS IDE (Blocksprache) INHALT

Künstliche Intelligenz - Logische Agenten und Roboter

[ Experiment- und Datenprotokollierung. mit der EV3 Software]

Praktikum 4: Grafiken und Ereignisse

Arbeitsablauf WinLoad (WinLoad Alarmzentrale)

2.) Vorbereitung: Funkkarte einstecken und Strom einschalten

Sie bauen Ihren ersten Roboter

ROM Upgrade Utility (RUU) Prüfen Sie vor dem Upgrade bitte folgendes

Zahlen raten. Al Sweigart, Eigene Spiele programmieren Python lernen, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

SBC ButtonMatrix Bedienungsanleitung. Verwendung mit einem Arduino Schritt 1 Anschließen der Matrix

PYTHON. 04 Funktionen II, Module

StarLogo Befehle. Erzeugt number Schildkröten. Erzeugt number Schildkröten, die jeweils die list of commands ausführen. Entfernt alle Schildkröten.

Handbuch. 03/2016 BV_update_tutorial_de. BreakerVisu-Update. Handbuch. Update eines Programms im BreakerVisu Panel

Wegleitung Installation, Einstellung und Nutzung der Trader Workstation und dem NinjaTrader für PC

Service Software V01.02 STC/PK

LAN-Schnittstelle des GSV-2-TSD-DI (Xport)

Bauanleitung für die Solaranzeige Micro Wechselrichter + 7 Monitor

Robot-Design Software

Lernziele Dateiverwaltung Bearbeiten von Textdateien Sichere Anmeldung per SSH-Schlüssel. Linux für Anfänger

Download von Sporttracks: Download von unserer Webseite:

Programmieren mit dem Calliope-mini. Referentin: Anja Rosenbaum

Anleitungen. Version

NETZWERKEINRICHTUNG PI-LED CLIENT PC APPLIKATION

HD450 Lichtmesser mit Datalogger SOFTWARE-EINFÜHRUNG

Lego Mindstorms Tutorial

Transkript:

EV3 Programmierung mit Python 2.7 V1.4 Dustin Gärtner und Christopher Kukkel Wintersemester 2016/2017 1 Einführung Im Hardwarepraktikum werden neben den EWB-Versuchen auch Roboterversuche durchgeführt. Hierzu werden erstmalig zum Wintersemester 16/17 Lego Mindstorm EV3-Roboter genutzt. Diese können unter anderem mit der Programmiersprache Python gesteuert werden. Um die Grundlagen zu erlernen, verweisen wir auf das Buch Python for Informatics 1 und die Online- Quelle Codeacademy. Ersteres ist in der Universitätsbibliothek als Download verfügbar. Da Sie auf den Rechnern des Hardwarepraktikums keinen Zugang zum Internet haben, sollten Sie sich die nötigen Unterlagen anderweitig besorgen. Für die Versuche erhalten Sie einen Roboter mit einer SD-Karte. Diese SD-Karte wird nur von Ihnen verwendet, sodass Sie über die Dauer der Roboter-Versuche ihr Code erhalten bleibt. Bitte lassen Sie die Roboter und Sensoren zusammengebaut. Falls Sie weitere Teile benötigen, wenden Sie sich bitte an die Tutoren. 2 Verbindung herstellen und Programme übertragen Zunächst muss der Roboter eingeschaltet werden. Dies geschieht durch Drücken des mittleren Knopfes. Danach muss der EV3 über das USB-Kabel mit dem PC verbunden werden. Auf dem Roboter navigieren Sie wie folgt: Wireless and Newtwork All Network Connections Wired IP4 Change Use DHCP ggf. müssen Sie anschließend nochmal zurück und auf Connect drücken Nachdem der Roboter eine IP zugewiesen bekommen hat, können Sie auf dem Desktop- Computer eine Verbindung via Putty 2 herstellen. Dafür tragen Sie die im Roboter Display oben stehende IP ein und verwenden den voreingestellten Port 22. Bestätigen Sie die Warnmeldung. Falls Sie den Roboter für einen Versuch vom Kabel trennen, muss obige Prozedur erneut durchgeführt werden. Arbeiten Sie deshalb stets korrekt und gewissenhaft. In der nun startenden Konsole melden Sie sich mit dem Benutzernamen robot und dem Passwort maker an. Führen Sie anschließend den Befehl workon ev3 py27 aus. Dies kann einige Momente dauern. 1 http://www.pythonlearn.com/book_007.pdf 2 Programm liegt auf dem HaPra-Server unter Z : 1

Nun können Sie ein Python-Skript mit Hilfe von nano oder vim erstellen. In der ersten Zeile Ihres Skriptes muss folgender Code stehen: Speichern Sie ihr Skript als Dateiname.py. Dieses Skript kann mit dem Befehl python Dateiname.py direkt vom Computer ausgeführt werden. Damit das Skript direkt auf dem Roboter ausgeführt werden kann, müssen die Rechte per Konsole folgendermaßen gesetzt werden: chmod u+x Dateiname.py. Auch über den File-Browser können Sie die Skripte direkt auf dem Roboter ausführen. Um diese zu beenden drücken Sie Strg-C. Um den Roboter auszuschalten oder das laufende Programm zu beenden, drücken Sie lange auf den Zurück-Knopf. Falls der Roboter nicht mehr reagieren sollte, halten Sie den Mittel- und den Zurück- Knopf gedrückt. Reagiert der Roboter dann immer noch nicht, sprechen Sie bitte mit einem der Tutoren. 3 Roboterspezifische und wichtige Funktionen Achten Sie bitte darauf, dass alle angeschlossenen Motoren (Ports A-D) und Sensoren (Ports 1-4) definiert und auch benutzt werden, sonst können unvorhergesehene Fehler entstehen! 3.1 Motoren Die normalen Motoren können wie folgt gesteuert werden: motor_links = ev3.largemotor('outb') motor_rechts = ev3.largemotor('outc') #Vorwaerts motor_links.run_direct(duty_cycle_sp=75) motor_rechts.run_direct(duty_cycle_sp=75) #Rueckwaerts motor_links.run_direct(duty_cycle_sp=-75) motor_rechts.run_direct(duty_cycle_sp=-75) Über den Parameter duty cycle sp können Geschwindigkeit und Richtung eingestellt werden. 3.2 Funktionen definieren Oft ist es sinnvoll, wiederkehrende Befehle in Funktionen auszulagern. Gerade bei der Motor- Steuerung spart dies sehr viel Tipparbeit! i = 1 def schreibe(): global i print "Ich schreibe mal was" i +=2 for i in xrange(0, 5): schreibe() Wenn Variablen von außerhalb in Funktionen genutzt werden sollen, müssen diese zuvor als global definiert werden. So wird keine Schattenvariable erstellt, sondern die globale Version verwendet. 2

3.3 Textausgabe im Display/Konsole In Python können Sie mittels print "Beispieltext" den Beispieltext ausgeben lassen. Wird das Programm in der Konsole aufgerufen, wird dort auch der Text ausgegeben. Wird das Programm auf dem Roboter geöffnet, wird der Text im Display angezeigt. Mit dem Befehl ev3.sound.speak( Hello World ).wait() spricht der Roboter mit Ihnen. 3.4 Warten und Zeit Um passiv zu warten, müssen Sie zunächst das time-paket importieren. import time Anschließend können Sie folgenden Befehl nutzen: time.sleep(sec). Mit time.clock() erhalten Sie die derzeitige CPU-Zeit in Sekunden. 3.5 Zufallszahlen Um Zufallszahlen zu erzeugen, muss ein weiteres Paket importiert werden. from random import randint Mit diesem kann die Funktion randint(von, bis einschließlich) genutzt werden. So erzeugt randint(1,100) zufällige Zahlen zwischen 1 und 100. 3.6 Sensoren Die Sensoren müssen vor Programmstart mit dem Roboter verbunden sein und dürfen während der gesamten Ausführung nicht von dem Roboter getrennt werden. Des Weiteren existieren bei manchen Sensoren verschiedene Modi. Diese können mit mode = mode name verändert werden. Die verschiedenen Modi werden im Folgenden zunächst in einer Tabelle aufgelistet, gefolgt von einem Minimalbeispiel in Python. 3.6.1 TouchSensor TOUCH Button state none State (0 or 1) ts = ev3.touchsensor() ts.mode = 'TOUCH' # Beide Varianten funktionieren if ts.value() : print ts.value() if ts.value() == True : print ts.value() 3.6.2 ColorSensor COL-REFLECT Reflected light pct (percent) Reflected light intensity (0 to 100) COL-AMBIENT Ambient light pct (percent) Ambient light intensity (0 to 100) COL-COLOR Color col (color) Detected color (0 to 7) Die LED nimmt je nach Modus unterschiedliche Farben an. Die zurückgegebenen Farben sollten folgende Nummerierung haben: Farbe Keine Schwarz Blau Grün Gelb Rot Weiß Braun Wert 0 1 2 3 4 5 6 7 3

Reflected light: red Ambient light: blue Color: Alle LEDs sind an cs = ev3.colorsensor() cs.mode = 'COL-COLOR' print cs.value() 3.6.3 Ultrasonic-Sensor US-DIST-CM Continuous measurement mm (millimeter) Distance (0-2550) us = ev3.ultrasonicsensor() us.mode = 'US-DIST-CM' print us.value() 3.6.4 Gyro-Sensor GYRO-ANG Angle deg (degrees) value: Angle (-32768 to 32767) Die Position des Sensors zum Start des Programms gibt den 0-Punkt an. Dreht sich der Sensor im Uhrzeigersinn steigt der Wert. Bei einer vollen Umdrehung ist der Wert des Sensors 360. Bei einer Drehung gegen den Uhrzeigersinn, wird der Wert negativ. gs = ev3.gyrosensor() gs.mode = 'GYRO-ANG' print gs.value() 3.6.5 Sound-Sensor Der Sound-Sensor stammt von dem veralteten NXT Roboter und muss deshalb anders angesteuert werden. ANALOG-1? Volt(Mili) value: Volt (0 to 5000) ss = ev3.sensor() ss.mode = 'ANALOG-1' print ss.value() Der zurückgegebene Wert ist die Spannung in Mili-Volt, also zwischen 0 und 5.000. Je lauter es ist, desto geringer ist die Spannung. 3.7 Mehrere Sensoren des gleichen Typs Um mehrere Sensoren des gleichen Typs anzuschließen, muss zusätzlich der Port definiert werden, an dem diese angeschlossen sind. 4

us1 = ev3.ultrasonicsensor('in1') us2 = ev3.ultrasonicsensor('in2') 5

4 Liste der möglichen Sensoren Ev3 Sensoren Colour Sensor - Farbsensor Ultrasonic Sensor - Ultraschallsensor (Entfernung) Gyro Sensor - Gyroskop Touch Sensor - Berührungssensor NXT Sensoren Sound Sensor - Schalldruckmessgerät Touch Sensor - Berührungssensor Ultrasonic Sensor - Ultraschallsensor Light Sensor - Lichtsensor (Helligkeit) 3rd Party Sensor - HiTechnic Magnetic Compass Sensor - Kompass Accelerometer Sensor - Beschleunigungssensor Color Sensor - Farbsensor EOPD(Electro Optical Proximity Detector) Sensor - Näherungssensor Gyroscopic Sensor - Gyroskop 6