Lego EV3 a Python

Lego Mindstorms EV3 je úžasné a s ev3dev je ještě úžasnější — takový je slogan linuxové distribuce Debian upravené pro EV3.

Autoři vzali linuxové jádro od LEGO, povýšili je na v3.16 a přidali řadu hardwarových ovladačů, takže EV3 s ev3dev umožňuje připojit celou řadu USB WiFi adaptérů, bluetooth klávesnic a gamepadů, USB audio přehrávačů atd. Procesor ARM9 v EV3 je podporovanou platformou pro Debian, a tak můžete přidávat nový software obvyklým: sudo apt-get install xyz.

Programování EV3 v jazyce Python

Knihovna pro Python a ev3dev je na GitHub, ale k pohodlnému programování přímo z prostředí prohlížeče (takže třeba i tabletu) a k okamžitému spouštění kódu se hodí přidat podporu interaktivního IPython se zápisníky Jupyter.

Postup přípravy:

  1. microSD karta s ev3dev
  2. spojení EV3 s Windows PC
  3. instalace podpory programování v Python
  4. spuštění notebook serveru na EV3
  5. programování v Python

microSD karta s ev3dev

Na microSD kartu (max. 32 GB) zkopírujeme obraz operačního systému ev3dev.
Jednotlivá vydání systému jsou ke stažení na stránkách GitHub. Aktuálně nesou označení ev3-ev3dev-jessie….
Stažený obraz na microSD kartu lze zkopírovat např. pomocí nástroje Win32 Disk Imager.

Připravenou microSD kartu vložíme do štěrbiny vypnuté kostky Lego EV3 a kostku spustíme.


spojení EV3 s Windows PC

Kostku EV3 spojíme s PC USB kabelem. Díky RNDIS kabel využijeme jako síťový. Přes něj se kostka EV3 dostane na internet.

Postup připojení je přehledně popsán na ev3dev.org.

Po úspěšné instalaci ovladače RNDIS je třeba na PC nastavit sdílené připojení k internetu: Ovládací panely > Centrum síťových připojení a sdílení > Změnit nastavení adaptéru ≫ pravé tlačítko na připojení k internetu, Vlastnosti > karta Sdílení > Umožnit ostatním uživatelům v síti využívat připojeník internetu tohoto počítače.
Brána (RNDIS spojení), která takto vznikne, dostane IPv4 adresu 192.168.137.1.

Na kostce EV3 nastavte parametry protokolu IPv4.
Wireless and Networks > All Network Connections > Wired > IPv4; Change; Load Windows Defaults.
Kostka EV3 tak dostane adresu 192.168.137.3.

Ověřte spojení s kostkou EV3. Spusťte Příkazový řádek a zkuste:
ping 192.168.137.3


instalace podpory programování v Python

Ke kostce EV3 se přihlásíme jako ke vzdálenému počítači. Použijeme klienta Telnet a SSH PuTTy.

V PuTTy zadáte do pole Host name: 192.168.137.3 | Port: 22 | stisknete Open.

Po chvíli se objeví výzva k přihlášení:
login as:
Zadejte: robot
Objeví se výzva pro zadání hesla:
robot@192.168.137.3's password:
Zadejte: maker

Zpřístupníme si všechny možnosti „superuživatle“:
sudo su
Zopakumjeme heslo:
[sudo] password for robot:
Zadejte: maker
Dál už ovládáme interpret příkazového řádku v ev3dev.

Přidáme názvový server, aby bylo možné v internetu používat symbolické adresy.
Upraví se soubor s názvovými servery:
sudo nano /etc/resolv.conf
…a dopíše se adresa např. domácího routeru, přes který se připojujete k internetu:
nameserver 192.168.1.1

Aktualizujeme informace o systému Debian Jessie:
apt-get update

Instalace podpory Python3:
apt-get install python3-pil
python3 -m easy_install python-ev3dev
easy_install -U python-ev3dev
…a instalace interpreteru Python:
apt-get install ipython-notebook


spuštění notebook serveru na EV3

Po instalaci (nějakou chvíli potrvá) můžeme spustit server IPython na EV3:
ipython notebook --no-browser --ip=* --port=8889

Chcete-li, aby se po startu kostky EV3 spouštěl server automaticky, lze jej přidat k automaticky spouštěným úlohám.

Vytvoříme soubor se „skriptem“:
sudo nano /etc/init.d/ipev3
…a zapíšeme:
#! /bin/sh
# /etc/init.d/ipev3
ipython notebook --no-browser --ip=* --port=8889

Nastavíme oprávnění k souboru:
chmod 755 /etc/init.d/ipev3
…a aktualizujeme seznam úloh:
update-rc.d ipev3 defaults


programování v Python

Na PC spustíme internetový prohlížeč a otevřeme stránku s IPython zápisníky:
http://192.168.137.3:8889

přispět:
Lego EV3