NXT senzory

Brian umožňuje pracovat s pěti různými typy senzorů:

  • NXT dotykový senzor

  • NXT barevný senzor

  • NXT ultrazvukový senzor

  • NXT zvukový senzor

  • HiTec gyroskopický senzor

Inicializace a připojení

Nejprve musíte inicializovat senzor. Musíte zadat typ senzoru a port (S1, S2, S3, S4). Zde je příklad inicializace.

import brian.sensors as sensors

TS = sensors.NXT.ColorSensorNXT(sensors.SensorPort.S1)
CS = sensors.NXT.TouchSensorNXT(sensors.SensorPort.S2)
US = sensors.NXT.UltrasonicSensorNXT(sensors.SensorPort.S3)
SO = sensors.NXT.SoundSensorNXT(sensors.SensorPort.S4)
import brian.sensors as sensors

GS = sensors.HiTec.GyroSensorHiTec(sensors.SensorPort.S1)

Nyní můžete pro ovládání senzorů používat vlastní názvy, stačí metodu oddělit tečkou. Například TS.is_connected().

Po inicializaci musíte zkontrolovat, zda je senzor připraven. Pomohou vám k tomu následující funkce.

is_connected

is_connected(self) bool
Vrací:

True, pokud je senzor připojen a není v procesu restartu, jinak False

is_ready

is_ready(self) bool

Stav připravenosti znamená, že pokus o čtení hodnot vrátí platné výsledky. Příklady důvodů neplatných výsledků:

  • Senzor není připojen (is_connected vrací False)

  • Senzor se restartuje nebo ještě není inicializován

  • Senzor mění režimy a změna ještě není dokončena

  • Připojený senzor je nekompatibilní s tímto handlerem (např. je připojen špatný typ senzoru)

Ve všech výše uvedených případech tato funkce vrátí False. :return: True, pokud jsou hodnoty připraveny pro další čtení, jinak False

wait_until_ready

wait_until_ready(self, timeout_ms: int = -1) bool

Čeká, dokud není senzor připraven. Tato funkce je blokující. Při změně režimů vstoupí senzor na krátkou dobu do stavu „not ready“ (dokud se změna režimu neprojeví). Proto je doporučeno nejprve nastavit správný režim pomocí set_mode() před voláním této funkce. Platí pouze pro senzory s režimy.

Parametry:

timeout_ms – Maximální počet milisekund k čekání. Pokud je timeout záporný, funkce bude čekat neomezeně.

vrátí úspěch:
  • True: Senzor je připraven.

  • False: Senzor není připraven nebo vypršel časový limit.

reboot

reboot(self) None

Vypne napájení portu a znovu jej zapne. Tím se vynutí restart senzoru.

Stav bez napájení trvá přibližně 100 ms. U některých senzorů může být potřebný dodatečný čas (~1 s nebo více) pro zapnutí a navázání připojení k Brianu.

Dotykový senzor

NXT dotykový senzor
class brian.sensors.NXT.TouchSensorNXT.TouchSensorNXT(
   port: SensorPort
)

is_pressed

is_pressed(self) bool

Měří stav senzoru. Vrací boolean hodnotu posledního stisknutí tlačítka. Pokud senzor není připraven, vrací False.

Vrací:

Pravda, pokud je tlačítko senzoru stisknuto, jinak False. Nebo False, pokud senzor není připraven.

Vyvolá:

brian.sensors.SensorIsNotReadyError – Pokud sensor není připraven

wait_for_press

wait_for_press(self, timeout_ms: int = -1) bool

Čeká na další událost stisknutí tlačítka. Tato funkce je blokující.

Parametry:

timeout_ms – Maximální počet milisekund k čekání. Pokud je timeout záporný, funkce bude čekat neomezeně.

vrátí úspěch:
  • Pravda: Pokud byla zaznamenána požadovaná událost tlačítka.

  • Nepravda: Pokud vypršel časový limit.

wait_for_release

wait_for_release(self, timeout_ms: int = -1) bool

Čeká na událost uvolnění tlačítka. Tato funkce je blokující.

Parametry:

timeout_ms – Maximální počet milisekund k čekání. Pokud je timeout záporný, funkce bude čekat neomezeně.

vrátí úspěch:
  • Pravda: Pokud byla zaznamenána požadovaná událost tlačítka.

  • Nepravda: Pokud vypršel časový limit.

wait_for_press_and_release

wait_for_press_and_release(self, timeout_ms: int = -1) bool

Čeká na událost stisknutí a následného uvolnění tlačítka. Tato funkce je blokující.

Parametry:

timeout_ms – Maximální počet milisekund k čekání. Pokud je timeout záporný, funkce bude čekat neomezeně.

vrátí úspěch:
  • Pravda: Pokud byla zaznamenána požadovaná událost tlačítka.

  • Nepravda: Pokud vypršel časový limit.

Světelný senzor

NXT světelný senzor
class brian.sensors.NXT.LightSensorNXT.LightSensorNXT(
   port: SensorPort
)

set_led_on

set_led_on(self, led_on: bool) None

Tato funkce nastaví senzor do požadovaného režimu. Doporučuje se ji zavolat před čtením hodnot, aby se předešlo výjimkám SensorIsNotReady.

Parametry:

led_on – zda má být červené LED rozsvíceno či zhasnuto

light_value

light_value(self, led_on: bool | None) float

Měří zaznamenané světlo.

Parametry:

led_on – Indikuje, zda má být červené LED zapnuto či vypnuto. Pokud není zadána žádná hodnota nebo je předáno None, použije se předchozí nastavení LED.

Vrací:

Hodnota v rozsahu 0-1, kde 0 je nejtmavší a 1 nejjasnější.

Vyvolá:

brian.sensors.SensorIsNotReadyError – Pokud sensor není připraven

light_value_raw

light_value_raw(self, led_on: bool | None) int

Měří přicházející světlo. Hrubé měření je inverzní, tj. nižší hodnoty odpovídají jasnějším podmínkám.

Parametry:

led_on – Indikuje, zda má být červené LED zapnuto či vypnuto. Pokud není zadána žádná hodnota nebo je předáno None, použije se předchozí nastavení LED.

Vrací:

Hodnota v rozsahu 0-4095, kde 4095 je nejtmavší a 0 nejjasnější.

Vyvolá:

brian.sensors.SensorIsNotReadyError – Pokud sensor není připraven

Ultrazvukový senzor

NXT ultrazvukový senzor
class brian.sensors.NXT.UltrasonicSensorNXT.UltrasonicSensorNXT(
   port: SensorPort
)

distance_cm

distance_cm(self) int

Nepřetržitě měří vzdálenost a vrací hodnotu v cm.

Vrací:

vzdálenost v cm (0-255).

Vyvolá:

brian.sensors.SensorIsNotReadyError – Pokud sensor není připraven

Zvukový senzor

NXT zvukový senzor
class brian.sensors.NXT.SoundSensorNXT.SoundSensorNXT(
   port: SensorPort
)

sound_intensity

sound_intensity(self) float

Měří přicházející zvuk.

Vrací:

Hodnota v rozsahu 0-1, kde 0 je nejtišší a 1 nejhlasnější.

Vyvolá:

brian.sensors.SensorIsNotReadyError – Pokud sensor není připraven

sound_intensity_raw

sound_intensity_raw(self) int

Měří přicházející zvuk. Hrubé měření je inverzní, tj. nižší hodnoty znamenají hlasitější zvuky.

Vrací:

Hodnota v rozsahu 0-4095, kde 4095 je nejtišší a 0 nejhlasnější.

Vyvolá:

brian.sensors.SensorIsNotReadyError – Pokud sensor není připraven

Gyroskopický senzor

HiTec gyroskopický senzor
class brian.sensors.HiTec.GyroSensorHiTec.GyroSensorHiTec(
   port: SensorPort
)

speed

speed(self) int

Měří stav senzoru. Vrací úhlovou rychlost v rozsahu od -500 do 400

Vrací:

úhlová rychlost ve stuplních za sekundu (-500 do 400).

Vyvolá:

brian.sensors.SensorIsNotReadyError – Pokud sensor není připraven

Další informace

Pro další informace o NXT senzorech se podívejte do API Reference.