Python s OctopusLAB

Počítač ve škole 1. 4. 2026

Ondřej Tůma <info@bitbeam.cz>

https://bitbeam.cz

Jaké je mé publikum?

a

Mátete nainstalovaný Thonny editor (https://thonny.org)?

Obsah

BitBeam a elektronika

pocitac_ve_skole_2026/bb-b-1.png

ESP32 Robotic Board

Programování

MicroPython

Python vs MicroPython
Oblast Python MicroPython
Prostředí PC / server Mikrokontrolér
RAM GB KB
Stdlib Plná Ořezaná
Hardware Přes knihovny Přímý (machine)
Vlákna threading Omezeno / asyncio
Balíčky pip mip / upip
Spouštění Skript / venv main.py / REPL

Thonny editor

OctopusLab framework - instalace

https://github.com/octopuslab-cz/esp32_micropython_framework:

from time import sleep
import network
import mip

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
sleep(5)
wlan.connect('ssid', 'password')
sleep(5)

mip.install("github:octopuslab-cz/esp32_micropython_framework"
    "/package.json", target=".")

OctpusLab konfigurace

setup()

 ...
 [ou]   - octopus update (octopusLAB Framework)
 [oe]   - octopus examples > download mip examples/...
 [os]   - octopus shell > install uPyShell
--------------------------------
 [ds]   - device setting
 [si]   - system info
 [pi]   - PINs info
 [mi]   - modules info - table
--------------------------------
 [q]    - quit setup
select:

OctpusLab blikání LED

from pinouts.esp32s3_robotics import *
from components.led import Led

Led(LED1_PIN).blink()  # value(0)

from components.ws_rgb import Rgb
from components.ws_rgb.colors_rgb import *

rgb = Rgb(WSLED_PIN, 2)
rgb.test()
rgb.color(BLUE, 0)

OctpusLab tlačítko

from pinouts.esp32s3_robotics import *
from machine import Pin
from components.button import Button

def test():
    print("Test")

btn = Button(Pin(BUTT0_PIN, Pin.IN))
btn.on_press(test)  # on_long_press() a on_release()

Řízení servo motoru

pocitac_ve_skole_2026/pwm_servo.png

OctopusLab servo

360° servo
čas rychlost
0.5 ms 100%
1.5 ms 0
2.5 ms -100%
from components.servo import Servo

servo1 = Servo(PWM1_PIN)

def servo_on():
    # servo1.set_degree(0)
    servo1.pwm.duty_ns(500_000)

sef servo_off():
    # servo.Servo(PWM1_PIN).set_degree(58)
    servo1.pwm.duty_ns(1_500_000)

btn = Button(Pin(BUTT0_PIN, Pin.IN))
btn.on_press(servo_on)
btn.on_release(servo_off)

Prostor na dotazy

Do toho!

Ptejte se!

Ondřej Tůma <info@bitbeam.cz>

https://bitbeam.cz