{warning.fa-warning} Aviso, esse texto foi escrito pensando em C#. Alguns dos métodos podem possuir nomes diferentes em rEduc/BlockEduc.

Sistema de componentes


Como já foi citado, o robô agora é formado por componentes. Alguns desses componentes, como sensores por exemplo, podem ser acessados para ler e modificar os valores.

Acessando componentes

Todo componente acessível possui um nome, que servirá como a chave de acesso. No que antes o usuário utilizava cor(1) e tereria que descobrir qual sensor no robô corresponde ao numero 1, agora fica mais fácil, já que você nomeia seu próprio sensor, por exemplo: digamos que você denomine seus sensores de cor como SensorCorEsquerdo e SensorCorDireito, assim o código pode ser executado como Cor("SensorCorEsquerdo") ou Cor("SensorCorDireito").

Para acessar um componente, basta utilizar nosso método genérico "GetComponent", seguido pela classe do componente e seu nome identificador. As classes dos componentes podem ser vistas mais abaixo no texto.

// Liga o componente Luz LED
// Para saber mais sobre a classe de apoio "Color", ver "Classes de apoio e Enumeradores"
Bot.GetComponent<Light>("nome da luz").TurnOn( new Color(255, 255, 255) );

// Espera 5 segundos
// Para aprender sobre o await e a classe time, ver a parte de "programação assíncrona" do texto
await Time.Delay(5000);

// Desliga a luz
Bot.GetComponent<Light>("nome da luz").TurnOff();

Sensores

Sensores são componentes utilizados para receber valores do mundo virtual e envia-los para o robô. Todos os sensores possuem duas propriedades: Digital e Analog (propriedades, para os menos familiarizados com C#, são como métodos, porém não levam parênteses).

Sobre as propriedades:

  • Digital

    É do tipo booleano, ou seja, retorna um valor de verdadeiro ou falso

    Tipos dos retornos digitais:

    • Sensor Cor: bool
    • Sensor Ultrassônico: bool
    • Sensor Toque: bool
  • Analógica

    Retorna de uma forma diferente dependendo do sensor.

    Tipos dos retornos analógicos:

    • Sensor Cor: Color
    • Sensor Ultrassônico: double
    • Sensor Toque: não possui