Přeskočit obsah

Struktura

Každé zařízení má svou třídu, kterou lze inicializovat a modul shortcuts, kde jsou uložené již hotové inicialozavé objekty těchto tříd.

Button

Třída

Konstruktor

Button(pin, long_press_ms=1000)
  • pin - čislo pinu, na který je tlačítko zapojeno (používáme PIN_BUTTON_A nebo PIN_BUTTON_B z dtbox.pinout)
  • long_press_ms - doba v ms, která bude považována za dlouhé stistknutí (výchozí hodnota je 1000 ms)

Ukázka

Initializace tlačítek
from dtbox.button import Button
from dtbox.pinout import PIN_BUTTON_A, PIN_BUTTON_B

btn_a = Button(pin=PIN_BUTTON_A)
btn_b = Button(pin=PIN_BUTTON_B, long_press_ms=3000)

Metody

Stisknutí tlačítka
# při stisknutí vypíše do konzole

@btn_a.on_press
def press():
    print('pressed')

Metoda dekorovaná @btn_a.on_press se provede při každém stisnutí tlačítka

Uvolnění tlačítka
@btn_a.on_release
def release():
    print('release')

Metoda dekorovaná @btn_a.on_release se provede při každém uvolnění tlačítka

Dlouhé stisknutí
@btn_a.on_long_press
def long_press():
    print('long press')

Metoda dekorovaná @btn_a.on_long_press se provede při dlouhém stisku tlačítka. Dobu kdy se stisk považuje za dlouhý je možné změnit v konstruktoru, parametrem long_press_ms.


Buzzer

Shortcuts

Importuji pomocí

from dtbox.buzzer.shortcuts import buzzer

Třída

Konstruktor

Buzzer(pin=PIN_BUZZER)
  • pin - číslo pinu, na který je buzzer připojen (výchozí je PIN_BUZZER z dtbox.pinout)

Ukázka

from dtbox.buzzer import Buzzer
from dtbox.pinout import PIN_BUZZER

buzzer = Buzzer(PIN_BUZZER)

Metody

play_tone
def play_tone(freq, length=2, volume=50)

Metoda přehraje tón

  • freq - frekvence přehraného zvuku
  • length - délka tónu length=2 → ½, length=4 → ¼
  • volume - hlasitost

Ukázka

buzzer.play_tone(freq=500, length=4, volume=10)
beep
def beep(freq=1000, length=100)

Metoda přehraje tón

  • freq - frekvence přehraného tónu
  • lenght - délka tónu length=2 --> 1/2, length=4 --> 1/4

Ukázka

buzzer.beep(freq=500, length=100)
play_melody
def play_melody(melody, speed=60, autoPause=0, volume=50)

Metoda přehraje melodii

  • melody - melodie (list not)
  • speed - rychlost (BPM)
  • autoPause - automatická pauza mezi notami
  • volume - hlasitost

Ukázka

from dtbox.melody import indiana

buzzer.play_melody(melody=indiana, speed=60, autoPause=0, volume=10)
play_tones
def play_tones(melody, autoPause=False, volume=50)

Metoda přehraje melodii

  • melody - melodie (list not)
  • autoPause - automatická pauza mezi notami
  • volume - hlasitost

Ukázka

from dtbox.melody import indiana

buzzer.play_melody(melody=indiana, autoPause=0, volume=10)

Display

Shortcuts

Importuji pomocí

from dtbox.display.shortcuts import display

Třída

Konstruktor

Display(clk=PIN_DISPLAY_CLOCK, dio=PIN_DISPLAY_DEVICE_IO, brightness=7)
  • clk - clock pin displeje (výchozí je PIN_DISPLAY_CLOCK z dtbox.pinout)
  • dio - input/output pin displeje (výchozí je PIN_DISPLAY_DEVICE_IO z dtbox.pinout)
  • brightness - jas (0-7)

Ukázka

from dtbox.display import Display
from dtbox.pinout import PIN_DISPLAY_CLOCK, PIN_DISPLAY_DEVICE_IO

display = Display(clk=PIN_DISPLAY_CLOCK, dio=PIN_DISPLAY_DEVICE_IO, brightness=5)

Metody

TODO: decide: table or paragraphs?

Metoda Parametry Popis Příklad
brightness val=None - jas (0-7, výchozí je nedefinována) Nastaví jas displeje display.brightness(3)
write_char char - znak k vykreslení
pos=0 - pozice
Zobrazí znak na dané pozici display.write_char('a', 2)
show value
- vstupní hodnota
align_right=False - zarovnání doprava
upsidedown=False - překlopit vzhůrunohama
scroll=False - text přejede po displeji
delay=250
- čas přepnutí animace
Zobrazí hodnotu na displeji display.show('ahoj')
clear Zhasne všechny segmenty displeje display.clear()
brightness
def brightness(val=None)

Nastaví jas (0-7)

  • val - hodnota jasu (výchozí je nedefinovaná)

Ukázka

display.brightness(val=2)
clear
def clear()

Zhasne všechny segmenty

Ukázka

display.clear()
write_char
def write_char(char, pos=0)

Vykreslí znak na určité pozici

  • char - znak
  • pos - index (výchozí je první pozice)

Ukázka

display.write_char(char='A', pos=1)
show
def show(value, align_right=False, upsidedown=False, scroll=False, delay=250)

Zobrazí řetězec na dispeji

  • value - zobrazená hodnota
  • align_right - hodnota bude zarovnána vpravo (výchozí False)
  • upsidedown - hodnota bude zobrazena vzhůru nohama (výchozí False)
  • scroll - text přejede přes display (výchozí False)
  • delay - prodleva mezi změnami animace přejíždějícího textu v ms (výchozí 250 ms)

Ukázka

Použití různých typů vstupních hodnot

Typ vstupu Příklad Výsledek
string display.show('abc') display_str.svg
boolean display.show(False) display_bool.svg
integer display.show(420) display_int.svg
float display.show(-6.9, align_right=True) display_float.svg

Příklady použití nepovinných parametrů

Popis Příklad Výsledek
Zobrazení textu zarovnaného vlevo display.show('Hello.') display_example001.svg
Zobrazení textu zarovnaného vpravo display.show('Hello.', align_right=True) display_example002.svg
Přejetí textu po displeji zprava doleve display.show('Hello.', scroll=True) display_scroll001.gif
Přejetí textu po displeji zleva doprava display.show('Hello.', align_right=True, scroll=True) display_scroll002.gif
Zobrazení text vzhůru nohama display.show('Hello.', upsidedown=True) display_example003.svg
Kombinuje otočení textu a zarovnání vpravo display.show('Hello.', align_right=True, upsidedown=True) display_example004.svg
Kombinuje otočení a přejetí textu display.show('Hello.', upside_down=True, scroll=True) display_scroll003.gif
Kombinuje otočení textu a přejetí zleva doprava display.show('Hello.', align_right=True, upside_down=True, scroll=True) display_scroll004.gif

InfluxDB

Shortcuts

Importuji pomocí

from dtbox.influxdb.shortcuts import influxdb

Třída

Konstruktor

InfluxDB(baseURL, dbname, username, password, measurement=None, **tags)
  • baseURL - url databáze
  • dbname - název databáze
  • username - uživatelské jméno
  • password - heslo
  • measurement - název měření
  • **tags - dodatečné tagy

Ukázka

from dtbox.influxdb import InfluxDB

influxdb = InfluxDB(baseURL='https://www.example.com', dbname='database', username='user', password='pass')

Metody

fromconfig
def fromconfig(cls, config_name="influxdb")

Vytvoří instanci pomocí konfiguiračního souboru

  • config_name - název konfiguračního souboru

Ukázka

influxdb = InfluxDB.fromconfig(config_name='config')
set_measurement
def set_measurement(measurement)

Nastaví název měření

  • measurement - název měření

Ukázka

influxdb.set_measurement()
set_tags
def set_tags(**kwargs)

Nastaví tagy

  • **kwargs - tagy
influxdb.set_tags({"id": 1})
write
def write(*args, **kwargs)

Zapíše do databáze

  • *args - data k zapsání do databáze
  • **kwargs - TODO

Ukázka

influxdb.write(*args = 25.2, ** kwargs =)

Led

Shortcuts

Importuji pomocí

from dtbox.led.shortcuts import led_green / amber / red

Třída

Konstruktor

Led(pin, value=False)
  • pin - číslo pinu, na který je Led připojena
  • value - Led bude svítit (výchozí je False)

Ukázka

from dtbox.led import Led
from dtbox.pinout import PIN_LED_GREEN

green_led = Led(pin=PIN_LED_GREEN)

Metody

blink
def blink(length_on=1000, length_off=1000)

Blikne diodou

  • length_on - doba, po kterou bude dioda rozsvícená
  • length_off - doba, po kterou bude dioda zhasnutá

Ukázka

led_green.blink(blink(length_on=500, length_off=500))
value
def value(value=None)

Rozsvítí nebo zhasne diodu

  • value - logická hodnota o tom, zda bude Led svítit nebo ne (výchozí je prázdná hodnota)

Ukázka

led_green.value(value=True)
toggle
def toggle()

Přepne stav Led (svítí/nesvítí)

Ukázka

led_green.toggle()

Network

Shortcuts

Importuji pomocí

from dtbox.network.shortcuts import network

Třída

Konstruktor

Network(retries=0)
  • retries - počet pokusů při připojování k wifi (0 = neomezeně)

Ukázka

from dtbox.network import Network

network = Network()

Metody

connect
def connect(ssid=None, password=None)

Připojí k wifi

  • ssid - název sítě wifi (výchozí je prázdné)
  • password - heslo k síti wifi (výchozí je prázdné)

Ukázka

network.connect(ssid='mojewifi', password='heslo123')
connected
def connected():

Vrací True pokud je připojeno k wifi

Ukázka

if network.connected():
    print('connected')

Thermometer

Shortcuts

Importuji pomocí

from dtbox.thermometer.shortcuts import thermometer

Třída

Konstruktor

Thermometer(pin=PIN_CONNECTOR_T)
  • pin - číslo pinu, na který je teploměr připojen (výchozí je PIN_CONNECTOR_T z dtbox.pinout)

Ukázka

from dtbox.pinout import PIN_CONNECTOR_T

thermometer = Thermometer(pin=PIN_CONNECTOR_T)

Metody

get_temp
def get_temp(retries=3)

Vrátí teplotu naměřenou z teploměru

  • retries - počet pokusů při měření (Výchozí je 3)

Ukázka

print(thermometer.get_temp())

Ultrasonic

Shortcuts

Imprtuji pomocí

from dtbox.ultrasonic.shortcuts import ultrasonic

Třída

Konstruktor

Ultrasonic(self, trigger_pin=PIN_ULTRASONIC_TRIGGER, echo_pin=PIN_ULTRASONIC_ECHO, echo_timeout_us=500 * 2 * 30)
  • trigger_pin - číslo trigger pinu (výchozí PIN_ULTRASONIC_TRIGGER z dtbox.pinout)
  • echo_pin - čislo echo pinu (výchozí PIN_ULTRASONIC_ECHO z dtbox.pinout)
  • echo_timeout_us - délka vysílaného zvuku v mikrosekundách (výchozí 15_000)

Ukázka

from dtbox.pinout import PIN_ULTRASONIC_ECHO, PIN_ULTRASONIC_TRIGGER
from dtbox.ultrasonic import Ultrasonic

ultrasonic = Ultrasonic(trigger_pin=PIN_ULTRASONIC_TRIGGER, echo_pin=PIN_ULTRASONIC_ECHO)

Metody

distance_mm
def distance_mm()

Vrací vzdálenost v milimetrech

Ukázka

print(ultrasonic.distance_mm())
distance_cm
def distance_cm()

Vrací vzdálenost v centimetrech

Ukázka

print(ultrasonic.distance_cm())

WSLed

Shortcuts

Importuji pomocí

from dtbox.wsled.shortcuts import wsled

Třída

Konstruktor

WSLed(pin=PIN_CONNECTOR_L, num=1)
  • pin - číslo pinu, na který je wsled připojena (výchozí PIN_CONNECTOR_L z dtbox.pinout)
  • num - počet připojených wsled (pouze v případě led pásky, jinak nechat výchozí hodnotu 1)

Ukázka

from dtbox.pinout import PIN_CONNECTOR_L

Metody

wheel_to_rgb
@staticmethod
def wheel_to_rgb(pos, dev=1)

Převede pozici na barevném kolečku a vzdálenost od kraje na RGB

  • pos - pozice na barevném kolečku (0-255)
  • dev - vzdálenost od kraje (výchozí je 1)

Ukázka

wsled.color(wsled.wheel_to_rgb(pos=53, dev=2))
random_color
def random_color()

Rozsvítí náhodnou barvu

Ukázka

wsled.random_color()
wheel_color
def wheel_color(color_position, intensity)

Rozsvítí barvu podle barevného kolečka

  • color_position - úhel na barevném kolečku (0-255)
  • intensity - vzdálenost od okraje kolečka

Ukázka

wsled.color(wsled.wheel_color(color_position=54, intensity=2))
color
def color(color=RED, i=0)

Rozsvítí barvu

  • color - barva (výchozí RED z dtbox.colors)
  • i - index rozsvícené led (v případě led pásky, výchozí 0)

Ukázka

wsled.color((20, 20, 20))
rainbow_cycle
def rainbow_cycle(wait=3, intensity=2)

Postupně na wsled rozsvítí barvy duhy

  • wait - interval měnění barvy v milisekundách
  • intensity - intenzita

Ukázka

wsled.rainbow_cycle()