KURZ: Gyroskopický senzor
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 01.04.2014
- Zobrazení: 10075
KAPITOLY
Gyroskopický senzor slouží k orientaci robota v prostoru. Měří rychlost otáčení v horizontální rovině senzoru připevněného k robotu a také jeho směr otáčení. Návratovou hodnotou senzoru je rychlost otáčení ve stupních za sekundu. Rozsah měření se pohybuje od +360° do -360° za sekundu. To nám umožňuje určit, kterým směrem se robot otáčí a díky tomu upravovat jeho polohu. Při použití, musíme pečlivě zvažovat umístění gyroskopu, protože snímá otáčení pouze v jediné ose.
PRÁCE S GYROSKOPICKÝM SENZOREM V PROGRAMOVACÍCH PROSTŘEDÍCH
NXT-G
Blok pro ovládání gyroskopického senzoru
Rozcestník
UMÍSTĚNÍ BLOKU
Gyroskopický senzor je v programovacím prostředí NXT-G řízen blokem Gyro Sensor. Tento blok není součástí základní instalace. Pro jeho použití je nutné jej do prostředí importovat. Návod k importu rozšiřujících modulů naleznete v kapitole Instalace rozšiřujících modulů.
POPIS BLOKU
Port - označuje, ke kterému ze vstupních portů je je senzor připojen.
Trigger Point - značí vstupní nastavenou hodnotu senzoru, která je určena k porovnávání s hodnotami snímanými senzorem. Možný rozsah hodnoty je od -400 do +400 stupňů za sekundu.
Greater / Less - hodnota logického datového typu sloužící pro srovnání dvou hodnot (větší nebo menší).
Yes / No - hodnota logického datového typu vyjadřující výsledek porovnání.
Offset - výstup vyjadřující vstupní posun nastavený v poli Offset.
Raw Value - výstup udávající čistou naměřenou hodnotu rychlosti otáčení v RAW.
PARAMETRY BLOKU
Port: vyjadřuje, ke kterému ze vstupních portů (1-4) je senzor připojen.
Offset: hodnota, jejímž zadáním určuje vstupní hodnotu posuvu.
Compare: pole, které slouží k zadání hodnoty od -400 do +400 stupňů za sekundu, která je poté porovnávána s hodnotami snímanými senzorem.
RobotC
Příkazy pro ovládání gyroskopického senzoru
Rozcestník
- Nastavení senzoru
- Nastavení typu senzoru
- Práce s hodnotou snímanou senzorem
- Využití předdefinovaných metod
Nastavení senzoru
Na úvod práce s gyroskopickým senzorem v programovacím prostředí RobotC je nutné provést jeho deklaraci. Programový zápis deklarace se skládá z klíčového slova #pragma a příkazu config(), který obsahuje čtyři parametry. Jelikož je možné deklarovat také motory, tak první parametr konkretizuje, že se v našem případě jedná o sensor. Druhý parametr označuje, ke kterému ze vstupních portů (S1 - S4) je senzor připojen. Třetí parametr je volitelný a zadává jej uživatel. Jedná se o název senzoru, který je poté dále používán při odkazování na senzor. Naopak poslední parametr je předdefinovaný a jedná se o standardizované označení gyroskopického senzoru (sensorI2CHiTechnicGyro).
#pragma config(Sensor, S1, gyroskopicky, sensorI2CHiTechnicGyro) // Kod je automaticky generovan pruvodcem deklaraci RobotC.
Poznámka: Deklaraci lze provést ručním zapsáním deklarace v příkladu nebo v menu programovacího prostředí RobotC. Postup deklarace je uveden v kapitole Deklarace motorů a senzorů.
Nastavení typu senzoru
Senzory je také možné deklarovat pomocí příkazu SensorType[], jehož parametrem je název senzoru. K tomuto příkazu je také nutné přiřadit oficiální název senzoru pro programovací prostředí RobotC (u gyroskopického senzoru sensorI2CHiTechnicGyro). Volitelný název uváděný jako parametr příkazu musí být nejprve definován pro třídu senzoru tSensors, která definuje rozšiřují moduly. Příklad deklarace senzoru je uveden níže.
Tento postup deklarace je doporučeno provádět zkušenějším uživatelům. Začátečníkům se doporučuje deklarovat moduly pomocí Deklarace motorů a senzorů v horní liště menu.
tSensors gyroSensor; SensorType[gyroSensor] = sensorI2CHiTechnicGyro;
Práce s hodnotou snímanou senzorem
Pro práci s hodnotami snímanými senzorem nebo pro jejich vyhodnocování či porovnávání budeme potřebovat použít příkaz, který nám použití hodnoty umožní. V programovacím prostředí RobotC je jím příkaz SensorValue[]. Jeho parametrem uvedeným v hranaté závorce je název senzoru. Senzoru pomocí tohoto příkazu můžeme nastavit vstupní fixně zadanou hodnotu nebo hodnotu, která bude určena pro porovnání s hodnotou snímanou gyroskopickým senzorem.
SensorValue[gyroSensor] = 60; // Nastaveni vstupni hodnoty senzoru (u gyroskopickeho senzoru napriklad hodnota posunu - offset).
Využití předdefinovaných metod
Gyroskopický senzor patří mezi rozšiřující senzory. Pro jeho využívání nalezneme po nainstalování programovacího prostředí RobotC vývojovou knihovnu, která obsahuje další předdefinované funkce pro ovládání gyroskopu. Knihovnu ovšem musíme nejprve v programu zavolat. Provedeme to v jeho úvodu následovně:
#include "drivers/hitechnic-gyro.h"
Při zjišťování hodnoty rotace využijeme několik předdefinovaných funkcí, které si nyní představíme. První metoda se nazývá HTGYROstartCal(). Využijeme jí v úvodu programu. Slouží totiž pro kalibraci gyroskopického senzoru, díky které docílíme přesnějšího snímání. Pokud máme senzor správně zkalibrovaný, můžeme zjisit jeho posun oproti stavu po kalibraci. K tomuto účelu slouží příkaz HTGYROreadCal().
Hlavním účelem používání gyroskopického senzoru je ale detekce rotačního pohybu. Ke zjištění aktuální rychlosti otáčení slouží předdefinovaná funkce HTGYROreadRot().
U všech tří funkcí zadáváme pouze jediný parametr umístěný v závorce. Jedná se o volitelný název senzoru, který uživatel zadává při deklaraci.