Cérebro#

Introdução#

Em VEX EXP C++, o Cérebro é representado pela classe brain ). Cria (ou utiliza o objeto Brain padrão fornecido pelo projeto) e depois acede aos recursos do Cérebro através dos seus objetos membros.

Classes Derivadas#

A classe brain serve de classe base para as seguintes classes derivadas:

  • Screen - Esta classe fornece acesso ao ecrã táctil a cores integrado do Brain, permitindo que os programas exibam texto, gráficos e recebam entrada de toque.

  • Timer - Esta classe fornece utilitários de temporização de alta resolução para medir o tempo decorrido e controlar o comportamento baseado no tempo nos programas.

  • Battery - Esta classe permite aos programas monitorizar o estado da bateria do cérebro, incluindo a voltagem, a corrente, a capacidade e a temperatura.

  • Button - Esta classe permite que os programas interajam com os botões do cérebro.

  • ThreeWirePort (triport / Porta de 3 fios) - Esta classe fornece acesso às portas de 3 fios do Brain para ligar e controlar sensores e dispositivos legados, como interruptores de fim de curso, potenciómetros e LEDs.

  • SDcard - Esta classe permite a leitura e escrita no cartão SD do Brain para armazenamento de ficheiros, registo de dados e carregamento de recursos externos.

Construtores de Classes#

brain();

Parâmetros#

O construtor brain não utiliza parâmetros.

Notas#

  • Apenas um objeto com o valor brain deve ser criado num projeto.

Exemplo#

// Create the EXP Brain
brain Brain = brain();

Funções de membro#

A classe brain inclui as seguintes funções membro:

  • playSound - Reproduz um dos efeitos sonoros integrados do Cérebro.

  • playNote - Toca uma nota musical durante uma duração específica.

  • programStop - Interrompe o projeto que está a ser executado no EXP Brain.

  • timer - Retorna o valor actual do temporizador interno do Brain nas unidades especificadas.

  • resetTimer - Repõe o temporizador interno do cérebro para zero e reinicia a contagem do tempo.

  • setTimer - Define o temporizador interno do cérebro para um valor e unidade de tempo especificados.

Antes de chamar qualquer função membro de brain , deve ser criada uma instância brain , como se mostra abaixo:

// Create the EXP Brain
brain Brain = brain();

reproduzir som#

Reproduz um dos sons integrados do cérebro.

Available Functions
void playSound(
    soundtype sound,
    uint32_t volume = 50 );

Parameters

Parâmetros

Tipo

Descrição

sound

soundtype

O som especificado a ser reproduzido pelo cérebro.

volume

uint32_t

Opcional. O volume a que o som será reproduzido, um número inteiro de 0% a 100%. O predefinido é 50%.

Nome do som

Reproduzir som

alarm

alarm2

doorClose

fillup

headlightsOff

headlightsOn

powerDown

ratchet

ratchet2

siren

siren2

tada

tollBooth

wrench

wrongWay

wrongWaySlow

Return Values

Esta função não devolve qualquer valor.

playNote#

Emite uma nota musical a partir do cérebro.

Available Functions

1 - Toque uma nota musical.

void playNote(
    int32_t octave,
    int32_t note );

2 - Reproduz uma nota para uma duração e volume específicos.

void playNote(
    int32_t octave,
    int32_t note,
    int32_t duration,
    int32_t volume = 50 );

Parameters

Parâmetros

Tipo

Descrição

octave

int32_t

O número inteiro que representa a oitava em que a nota é tocada:

  • 1 a 3 - oitava grave
  • 4 a 7 - oitava aguda

note

int32_t

A sequência de notas a tocar:

  • 0 - Dó
  • 1 - Ré
  • 2 - Mi
  • 3 - Fá
  • 4 - Sol
  • 5 - Lá
  • 6 - Si

duration

int32_t

Opcional. A duração em milissegundos para a reprodução da nota, até um máximo de 500 milissegundos. Se não for fornecida qualquer duração, a duração padrão será de 500 milissegundos.

volume

int32_t

Opcional. O volume a que o som será reproduzido, um número inteiro de 0% a 100%. O predefinido é 50%.

Return Values

Esta função não devolve qualquer valor.

programaParar#

Interrompe o projeto em execução no EXP Brain.

Available Functions
void programStop();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Esta função não devolve qualquer valor.

Examples
// Stop the project when the Brain screen is pressed
while (true) {
  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }
  wait(20, msec);
}

temporizador#

Retorna o valor atual do temporizador interno do cérebro nas unidades especificadas.

Available Functions
double timer(
  timeUnits units );

Parameters

Parâmetro

Tipo

Descrição

units

timeUnits

Unidade de tempo de retorno:

  • seconds / sec - segundos
  • msec - milissegundos

Return Values

Retorna um valor double representando o tempo decorrido desde o início do programa, nas unidades especificadas.

Examples
  • O temporizador inicia automaticamente quando o projeto começa.

  • O temporizador pode ser reiniciado com a utilização de resetTimer .

Examples
// Stop the project after 3 seconds
while (Brain.timer(seconds) < 3) {
  wait(20, msec);
}

Brain.programStop();

resetTimer#

Reinicializa o temporizador interno do cérebro para zero. Em seguida, o temporizador começa imediatamente a contar novamente a partir de zero.

Available Functions
void resetTimer();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Esta função não devolve qualquer valor.

Notes
  • O cronómetro recomeça a contagem imediatamente após ser reiniciado.

  • A chamada resetTimer afecta o valor devolvido pelas chamadas subsequentes a timer.

Examples
// Reset the timer and measure elapsed time
Brain.resetTimer();

while (Brain.timer(sec) < 5) {
  wait(20, msec);
}

// 5 seconds have elapsed since reset
Brain.Screen.print("5 seconds passed");

definirTemporizador#

Define o temporizador interno do cérebro para um valor e unidade de tempo específicos.

Available Functions
void setTimer(
  double value,
  timeUnits units );

Parameters

Parâmetro

Tipo

Descrição

value

double

O tempo para o qual o temporizador deve ser configurado, com base no valor timeUnits fornecido no parâmetro units.

units

timeUnits

The unit used to interpret the value parameter:

  • seconds / sec - seconds
  • msec - milliseconds

Return Values

Esta função não devolve qualquer valor.

Notes
  • O temporizador continua a contagem regressiva após ser configurado.

  • A chamada de setTimer altera imediatamente o valor devolvido por timer.

Examples
// Set the timer to start at 10 seconds
Brain.setTimer(10, sec);

// Wait until the timer is at 3 seconds
while (Brain.timer(sec) < 3) {
  wait(20, msec);
}

// 5 seconds have elapsed since setTimer was called
Brain.Screen.print("5 seconds passed");