Guia de uso

Instalação

Instalação

EasySTEAM IDE


Uma das formas de começar a utilizar a placa EasySTEAM é fazer o download do ambiente de desenvolvimento próprio para a placa. Assim, siga as etapas descritas abaixo para começar a instalação do programa.

  1. Acesse o seguinte endereço: EasySTEAM IDE
  2. Clique em Assets;
  3. Posteriormente no arquivo com EasySTEAM.zip

Captura de tela 2025-01-14 102821.png

Use a versão mais recente - no meu caso 0.9.0

  1. Extraia o arquivo quando terminado;
  2. Faça o seguinte caminho para achar o programa EasySTEAM\EasySTEAM_IDE\EasySTEAM_IDE.exe
  3. Abra o arquivo.

É provável que o Windows peça permissões para abrir determinado executáveis, aceite-os

Instalação

Driver


Ao abrir o programa baixado anteriormente pela primeira vez, deve aparecer uma janela semelhante a essa pedindo uma instalação.

unnamed.png

Ela inicia o procedimento para a instalação dos drivers que fazem a placa ser reconhecida pelo computador - e ser, portanto, uma etapa essencial. Siga as etapas descritas abaixo para concluir o download do driver.

  1. Clique em Avançar.

unnamed (1).png

  1. Aceite o contrato e clique em avançar.

contrat.png

  1. Aguarde o término do processo.

aguarde.png

  1. Concluído com êxito.

concluido.png

Visão geral

Visão geral

Interface


Após concluirmos as instalações, uma tela semelhante a essa deve ser obtida.

overview.png

Existem 5 áreas principais da interface que serão descritas nas páginas seguintes.

Visão geral

Caixa de blocos


Na esquerda da janela temos diversas categorias que funcionam agrupando blocos de um mesmo tipo.

caixa.png

Um bloco é um objeto que possibilita escrever uma instrução para a placa EasySTEAM.

Então, ao abrir a categoria “Math” - clicando com o botão esquerdo sobre ela, é possível perceber quais são os tipos de blocos pertencentes a esse conjunto.

math.png

Esses blocos podem ser arrastados segurando o botão esquerdo do mouse sobre eles e movendo.

Visão geral

Área de trabalho


A área de trabalho é a região branca - onde devem ser colocados os blocos.

desktop.png

Os blocos só serão traduzidos para instruções caso sejam colocados na área de trabalho.

Visão geral

Geração de código


Nesse trecho da tela é onde temos o código - ou instruções geradas pelos blocos - na linguagem de programação C++. Assim, com o bloco de cosseno anteriormente colocado, a área de geração de código fica da seguinte forma.

generator.png

A importância dessa parte está no aumento do nível da programação, os blocos são utilizados para começar o desenvolvimento de alguém na área de programação, mas visando a escrita em texto no final.

Visão geral

Monitor Serial


O trecho preto na tela é onde temos as informações de saída do monitor serial - basicamente, as mensagens que a placa EasySTEAM envia para o computador por meio de um USB-C, ou aquelas em relação ao salvamento e upload do código. O uso dela será mais explicado nas seções seguintes

Visão geral

Menu


O menu é a aba que fica na parte de cima da janela. Nele temos 5 opções, 4 botões e uma entrada de texto. É o local que controla o que deve ser feito com o código gerado ou a interface de forma geral - como salvar, carregar ou até mesmo abrir o monitor serial.

menu.png

Nome

semnome.png

O primeiro trecho é onde colocamos o nome que o código criado na área de trabalho deve ter. Para escrevê-lo, apenas clique com o botão esquerdo sobre a caixa de texto e digite - evite caracteres estranhos.

comnome.png

Botão de salvar

O botão de salvar faz o que o nome indica, salva o código em um arquivo (o qual pode ser aberto posteriormente ou compartilhado com outras pessoas).

Botão de executar

Esse botão tem a função de fazer upload do código para a placa EasySTEAM.

Esse código deve ter sido SALVO e a caixa de texto onde os nomes são colocados DEVE estar com o nome do código que queremos que seja carregado para a placa.

Botão de carregar

A função deste é abrir um código anteriormente salvo.

Ao clicarmos nele, o explorador de arquivos abre e podemos escolher o arquivo que queremos carregar.

O caminho para chegar ao local de códigos salvos é o seguinte:

Exemplo de código que pode ser aberto no programa:

path.png

Botão Serial

A função desse botão é abrir um monitor serial - mostrar as mensagens enviadas pela placa EasySTEAM por meio do USB-C conectado a ela. A função dele será melhor explicada nas seções seguintes.

Conceitos iniciais

Conceitos iniciais

Código inicial


Veja a primeira parte para entender como mexer na interface - pré-requisito para esse trecho.

Essa seção tem como objetivo mostrar qual a configuração inicial necessária para programar o controlador EasySTEAM.

Na categoria General da interface (geral, traduzindo), temos os blocos que possibilitam que o controlador funcione como esperado. Todos devem ser incluídos na seguinte ordem para funcionar corretamente.

c.png

O bloco “EasySTEAM Start” vai dentro do bloco setup, isso pode ser feito arrastando o bloco solto para baixo da abertura dele. Como mostrado:

d.png

Dessa forma, temos a estrutura final como:

final struct.png

Bloco Setup

Esse bloco opera apenas uma vez durante a execução do programa. Portanto, é aqui que ficariam as rotinas de inicialização do seu robô - caso haja alguma. Por isso que o bloco “EasySTEAM Start” é posto dentro de setup.

start.png

Bloco Loop

Como será demonstrado nas seções seguintes, esse bloco opera repetidamente durante a execução do programa. Por isso que as instruções sobre como os acionadores se movem é geralmente realizada aqui.

Conceitos iniciais

Upload de código


A placa EasySTEAM precisar ser conectada ao computador para conseguir receber o código desenvolvido, isso é feito por meio de um cabo USB-C. Então, caso o código anteriormente mostrado fosse passado, as seguintes etapas seriam seguidas.

  1. Conectar o controlador no computador;
    a. Por meio de um USB-C;
  2. Fazer o código inicial;
  3. Escolher um nome;
  4. Clicar em Salvar;
    a. Quando esse botão for clicado os arquivos do código serão criados;
    b. Juntamente com a compilação do arquivo - necessária para efetuar o upload.
    c. Mensagens indicando o processo aparecerão na área monitor serial.

compile.png

  1. Clicar em Executar;
    a. Uma das certificações de que funcionou é a mensagem de carregamento percentual;

upload.png

Apesar de ser um exemplo, experimente realizar esse processo para verificar se está tudo em ordem.

Conceitos iniciais

LED status


A presente página tem como objetivo explicar os significados do LED embarcado na placa EasySTEAM.

Segue abaixo uma tabela relacionando as cores com os significados:

Cor Estado Significado
Sólido Driver Station conectada a placa
Piscante EasySTEAM sem Driver Station Conectada
Sólido Erro

Controle

Controle

Mapa de valores


Antes de abordar o restante do hardware, como motores, servos, botões digitais e outros, é necessário conhecer sobre o controle (visto que maior parte da movimentação será com ele). Abaixo será mostrado uma tabela que mapeia os valores, dos botões e analógicos do gamepad.

controle.png

Analógicos
Nome Eixo Valores
Left Axis Y Y -1.0 a 1.0
Left Axis X X -1.0 a 1.0
Right Axis Y Y -1.0 a 1.0
Right Axis X X -1.0 a 1.0
Botões
Nome Valores
Button A false ou true
Button B false ou true
Button Y false ou true
Button X false ou true
Controle

Código


Objeto de controle

O objeto de controle é conhecido na interface como Gamepad1 - fica dentro da categoria Gamepad. Como demonstra:

gamepadobject.png

Caso tenha tentado colocar ele dentro de setup ou loop perceberá que ele não se encaixa, a razão disso é que ele tem como objetivo retornar um valor - para outro bloco por exemplo, como será mostrado na seção seguinte.

Eixos

Como mostrado nos mapas de valores, os eixos são blocos que retornam - portanto fornecem - um valor numérico para o bloco ao qual estão conectados. Em resumo, podemos escolher um eixo e acoplá-los ao objeto de controle.

axes.png

Botões

Diferente dos eixos que retornam valores numéricos, os botões fornecem os chamados valores booleanos, em resumo, verdadeiro ou falso. Eles serão usados junto com os blocos da categoria “Logical”, a qual será abordado nas seções posteriores.

buttons.png

Driver Station

Driver Station

Instalação


O programa que será usado como Driver Station é instalado juntamente da EasySTEAM IDE, portanto, apenas abra a pasta aonde foi instalada a interface e descompacte o arquivo com nome "Arara", como mostra abaixo:

A pasta principal após a descompactação deve ficar semelhante a essa:

Dentro da pasta "Arara" tem um arquivo nomeado como "Arara.exe", abra-o.

Autorize o aplicativo caso o Windows solicite

Na próxima página será explicado a utilização da Driver Station.

Driver Station

Utilização


É necessário que você feito o código descrito em Conceitos iniciais - caso queira testar a Driver Station com os processos descritos nessas páginas.

Essa seção é muito importante para os capítulos seguintes - visto que a utilização dos acionadores nos exemplos posteriores utilizam a Driver Station para funcionar.

Conexão

Caso você tenha feito o código inicial descrito anteriormente, você deverá ver um ponto de Wi-Fi com o nome EasySTEAM juntamente do endereço MAC do dispositivo como segue:

Conecte-se ao Wi-Fi da placa

Botão Conectar

Com a conexão Wi-Fi entre computador e placa estabelecida, é possível utilizar o botão Conectar para iniciar a comunicação entre os dois. Como segue abaixo:

Uma mensagem indicando uma conexão bem sucedida deve aparecer

O indicado "Arara" deve aparecer com a mensagem "Conectada", conforme segue:

Indicador Gamepad

Esse trecho é de vital entendimento para o restante do documento - porque a maior parte dos exemplos utiliza Controle

Como visto nas imagens acima, o indicador do Gamepad está "Inativo" - pois não havia controle conectado ao computador.

Para começar a utilizar o Controle, você pode simplesmente conecta-lo via USB ao computador.

O indicador de Gamepad deve aparecer "Ativo"

Enable

Para esse trecho é importante entender a cor da luz do LED integrado na placa, pois o Enable/Disable somente funciona quando a luz for verde (Driver Station conectada). Não é possível movimentar motores ou servos quando a Driver Station estiver em disable, para colocar o botão em enable apenas clique nele.

Quando o botão for colocado no estado de enable as mensagens do controle começarão a ser enviadas para o controlador, portanto, tenha cuidado.

Upload de códigos pré-prontos

O botão de upload mostra uma lista de códigos pré-prontos que vem junto da Driver Station que podem ser gravados na placa.

Certifique-se de ter a placa conectada via USB-C ao computador.

Motores

Motores

Conexão elétrica


A presente seção tem como objetivo explicar a conexão elétrica dos motores, siga-a até o final caso queira movimentar o seu.

Cabos

A conexão elétrica dos motores é feita utilizando cabos com terminais JST-VH de 2 pinos.

jstvh.png

Na parte de trás dos motores disponíveis existirá um terminal oposto que se encaixa no contato do cabo descrito.

motor.png

As portas correspondentes na placa EasySTEAM são as 4 que possuem esse mesmo contato, como mostrado abaixo:

hub.png

O terminal circulado indica a porta 1, então, de cima para baixo temos ainda, porta 2, 3 e 4. Essa diferenciação é importante quando o código for efetuado.

A última parte é apenas realizar a conexão do cabo com os dois terminais, como indicado:

conexao.png

As seguintes recomendações são feitas para aumentar a vida útil desses contatos JST-VH.

recomen.png

Alimentação

Os motores têm tensão elétrica de 12V, portanto, é necessário conectar a placa à uma bateria externa para movimentá-los. Isso é feito por meio dos conectores Xt30 presentes na placa - dois deles. Como segue:

battery.jpg

Motores

Programação


O motor em si possui 2 blocos que podem ser utilizados - sendo um deles o próprio motor.

Objeto de motor

O bloco de motor é utilizado para indicar com qual porta estaremos trabalhando, por isso é preciso escolher ela do lado do objeto, como indicado.

Motor configurado para porta 1:

motor1.png

Motor configurado para porta 3 (com outras opções disponíveis):

motor3.png

Bloco de potência

O bloco que faz com que o motor se movimente é o bloco setPower, o qual recebe como parâmetro um valor de -1.0 a 1.0. Ele funciona em combinação com o objeto de motor. Como demonstra a imagem abaixo:

setpower.png

Entretanto, como explicado no parágrafo anterior, é preciso passar um valor numérico para esse bloco, isso pode ser feito de dois modos. Passando uma constante por meio da categoria “Math” ou utilizando um valor dinâmico do controle - que será melhor explicado em outra seção.

Valor Constante

Como supracitado, é possível passar um valor numérico constante para o bloco setPower, como mostra:

ssetpower1.png

Como pode ser um valor de -1.0 a 1.0 (valores maiores ou menores que os limites superiores e inferiores, respectivamente, serão cortados para 1.0, assim, -1.2 vira -1.0 e 1.2 vira 1.0), é possível colocar um valor fracionário e negativo, como:

setpowerfract.png

Deve ser observado que o valor 1 tende a rotacionar o motor na velocidade máxima (100%), enquanto que um valor de 0.5 faz com que o motor gire na metade da velocidade total (50%). Caso seja colocado um valor negativo, a rotação se inverte.

Valor dinâmico

Para essa seção leia os trechos sobre controle e conceitos iniciais da biblioteca.

Como explicado na seção de conceitos iniciais da biblioteca, o bloco de loop opera repetidamente durante a execução do programa, é possível utilizar isso para atualizar periodicamente a saída do motor - visto que a cada momento é definido um valor novo para a porta. Para fazer isso, utilizamos o objeto de controle (Gamead na interface), como explicado anteriormente, os valores dos eixos dos analógicos variam de -1.0 a 1.0, portanto, é totalmente viável colocar a o valor de saída de um dos eixos dos analógicos diretamente na entrada do bloco setPower. Como demonstrado abaixo:4

setpowergamepad.png

Dessa forma, um código que rotacione um motor baseado no valor do eixo Y do analógico esquerdo do controle tem o seguinte formato:

code.png

Execução

Com a montagem e a programação feita já é possível controlar o motor. Veja a seção de Driver Station para entender como conectar o computador ao EasySTEAM de forma wireless.

Servos

Servos

Conexão elétrica


Os servos tem uma conexão simples, no sentido de que os cabos geralmente são integrados no corpo do hardware. Entretanto, é preciso ficar atento com o sentido da conexão, visto que é o único contato da placa que é possível inverter.

Assim o primeiro passo para conectar o servo é identificar três pinos:

Existem cores padrões para certas fabricantes, mas na dúvida sempre cheque o manual dos equipamentos.

Nessa seção será utilizado um Smart Servo da REV Robotics

No Smart Servo, o cabo de sinal tem a coloração branca, o do meio é o Vcc e o restante é o GND. Como mostra a imagem abaixo:

WhatsApp Image 2025-01-14 at 16.06.22.jpeg

Quanto a conexão na placa EasySTEAM, é necessário verificar quais pinos correspondem ao terminal de saída do servo - para não acabar invertendo sinal com GND por exemplo. Mas visto isso, já é possível conectar, como seguem as demonstrações abaixo:

WhatsApp Image 2025-01-15 at 07.28.14.jpeg

WhatsApp Image 2025-01-15 at 07.27.26.jpeg

Alimentação

Apesar de os servos atuarem com uma tensão elétrica de 5V, é recomendado que se tenha uma bateria de 12V conectada a placa - igual ao que foi feito para operar os motores - para não sobrecarregar todo o equipamento envolvido.

WhatsApp Image 2025-01-15 at 09.07.03.jpeg

Servos

Programação


Com a conexão pronta é possível começar a programação do servo. Que consiste em 3 blocos (sendo um para servos contínuos)

Objeto do Servo

Assim como o objeto de motor - leia a seção de Motores, caso não tenha visto ainda - o servo tem um bloco semelhante, no qual podemos escolher quais dos 3 servos estaremos mexendo.

Captura de tela 2025-01-14 161736.png

Bloco de posição

Diferente do motor em que definimos um percentual da velocidade de saída, os servos funcionam ditando uma posição (geralmente em graus). Dessa forma, o bloco tem o mesmo significado, ou seja, receber um valor numérico, mas esse valor pode ir de 0 a 270.

O programa não diferencia unidades, mas espera um certo tipo, então no caso dos servos, seria em graus.

Como demonstra:

Captura de tela 2025-01-14 162354.png

Bloco de velocidade

Esse bloco só funciona caso o servo tenha modo contínuo, como o Smart Servo utilizado neste exemplo. A função dele é ao invés de definir uma posição é fornecer uma velocidade, semelhante ao motor, mas agora indo de um valor de 0 a 1.0. Como mostrado abaixo:

Captura de tela 2025-01-14 162618.png

Não use esse bloco se seu servo não for contínuo

Na próxima página será demonstrado como utilizar esses blocos juntamente com a categoria "Logical".

Servos

Lógica


Em praticamente qualquer programa de computador é necessário tomar decisões, isso é feito utilizando condicionais, a mesma ideia é necessária ao utilizar essa interface e mecanismos.

As condicionais trabalham com lógica booleana, em resumo verdadeiro ou falso. Isso será melhor visto com a seção abaixo.

Bloco de comparação

Este bloco tem por objetivo fazer comparações númerias do tipo, 5 > 3 ou 4 > 5 - caso o resultado seja correto ele retorna verdadeiro, se não, falso.

Captura de tela 2025-01-14 165209.png

Ele aceita como parâmetros dois tipos numérico que funcionam para a comparação. Como exemplo:

Captura de tela 2025-01-14 165349.png

Esses números podem ser susbtítuidos por qualquer outro bloco que retorna um tipo numérico. Como o controle.

Operadores lógicos

Diferentes dos operadores numéricos que trabalham com números, esses trabalham com expressões de verdadeiro e falso. Para ver mais sobre o assunto acesse: Operadores lógicos

O bloco que opera com isso é o mostrado abaixo:

Captura de tela 2025-01-14 170035.png

Diferente do bloco de comparação, ele recebe valores de verdadeiro e falso (booleanos). Então segue abaixo um exemplo usando o controle:

Captura de tela 2025-01-14 170643.png

A expressão acima seria verdadeira caso qualquer um dos dois - ou mesmo os dois - botões estivessem pressionados, portanto, retornando uma instrução verdadeira

Bloco If do

Ainda dentro da categoria "Logical" é possível ver um bloco como o mostrado abaixo:

ifdo.png

A ideia principal dele é: "Se esta expressão for verdadeira, faça isso". Para ele verificar a veracidade de algo é necessário uma condição - que em resumo é uma expressão que retorna falso ou verdadeiro.

E como dito nas seções acimas, essas expressões podem ser os operadores lógicos, comparadores numéricos, ou até mesmo os valores de botões do controle.

Bloco If Else

Esse bloco é semelhante ao bloco If, com a adição de uma condição "Se não", em resumo, "Se está expressão é verdadeira, faça isso, se não, faça aquilo".

Captura de tela 2025-01-15 080124.png

Servos

Exercício


Nesta seção será demonstrado como usar a categoria "Logical" para fazer o acionamento de servos.

A ideia principal do programa que será desenvolvido nesta página é:

Sinta-se a vontade para experimentar outras lógicas, como: Se o botão X for apertado juntamente com o botão B faça isso. A ideia dos exercícios é aprender sobre a implementação de um conjunto de categorias.

Captura de tela 2025-01-15 085937.png

O que o código faz é checar qual dos 4 botões está pressionado, sendo que, cada um ao ser apertado define uma posição para o servo.

Faça o carregamente do código para a placa, conforme descrito nos capítulos iniciais, e TESTE!

Sensores Digitais

Sensores Digitais

Conexão elétrica


As conexões de sensores digitais é feita utilizando cabos JST-pH de 4 pinos, conforme imagem:

JST_PH_4pin_30cm_REV-31-1407__92491.webp

Esses contatos encaixam em apenas um sentido, portanto não é possível inverter a conexão.

Nesta página será utilizado um sensor de limite magnético, segue a imagem abaixo mostrando a conexão do cabo JST-PH com o sensor:

sensor-de-toque-3.webp

As conexões correspondentes na placa EasySTEAM estão indicadas abaixo:

WhatsApp Image 2025-01-15 at 09.21.52.jpeg

Considerando uma ordem da direita para a esquerda, temos a porta Digital 1, 2, 3, 4 e 5. É importante diferenciar qual estamos usando por causa do código mostrado posteriormente

Segue abaixo uma imagem mostrando a conexão geral do sensor:

WhatsApp Image 2025-01-15 at 09.42.51.jpeg

Aqui o sensor foi conectado na porta 5, mas nos exemplos seguintes estaremos usando a porta 1.

Sensores Digitais

Categoria Digital


A categoria digital é talvez a mais fácil de utilização, visto que são apenas dois blocos, um objeto e um que retorna uma expressão boolean (veja a seção Lógica)

Objeto digital

O objeto de sensor digital é semelhante aos blocos de motores e servos, no sentido de que eles são colocados na Área de trabalho e é fornecem uma porta que pode ser escolhida.

Bloco de input

Esse bloco tem como objetivo retornar o valor que o sensor está no momento. No caso de um sensor de limite (como o usado nesse capítulo), se um objeto está dentro do alcance, ele retorna verdadeiro, se não, falso.

Esses blocos são muito utilizados juntamente da categoria "Logical", portanto, dê uma olhada no capítulo do servo para entender de que forma isso é possível.

Veremos nas páginas seguintes a forma de se trabalhar com essa categoria.

Sensores Digitais

Categoria Text


Geralmente, quando um código é feito, é interessante e desejável gravar a saída dele para que se possa entender o que está acontecendo - esteja funcionando (ou não).

Para fazer isso, dentro da interface foi criado uma categoria para mostrar mensagens no monitor serial, que é a categoria desta página.

Inicializando o monitor serial

Apesar de o monitor serial ser parte da interface, é preciso informar a placa EasySTEAM que é desejado abrir uma comunicação com ela. Isso é feito da forma demonstrada abaixo:

Utilizamos para iniciar a comunicação dois blocos, os quais são encontrados na categoria "Math" e "Text", em resumo, o número 115200 indica que o objetivo é abrir uma comunicação com a placa. Entender o que exatamente faz o número 115200 é um conteúdo mais difícil, que não será abordado nesse documento, mas uma explicação pode ser obtida no seguinte documento: Comunicação Serial

Mostrando mensagens

Para imprimir mensagens no monitor serial utilizamos algum dos seguintes blocos:

Esses blocos aceitam como argumento a maioria dos tipos que a interface possui.

Na página seguinte mostraremos como utilizar essa categoria juntamente da "Digital".

Sensores Digitais

Exercício


Leia a seção Lógica antes fazer esse exercício.

A ideia principal desta página é executar um código que faça o seguinte:

O seguinte código pode ser feito para testar o sensor:

Adicionei o delay apenas para ficar mais legível, em uma montagem que não usa monitor serial não é necessáruio utilizar esse função, a qual simplesmente paralisa o código durante uma certa quantidade de milisegundos.

Caso você tenha feito o código, foi possível perceber que ele informa que o "Sensor está habilitado" quando o imã não chegou perto do sensor - o que era para na perpesctiva do usuário ser "desabilitado". Em resumo, está invertido, e porque isso ocorre? Como supracitado ao longo de todo documento, condicionais trabalham com verdadeiro e falso, e do ponto de vista do sensor o falso é quando ele é acionado - isso pode ser melhor visto nos diagramas de montagem dos sensores.

Assim, a solução esperada é inverter - ou melhor, negativar - essa expressão, isso pode ser feito utilizando o operador NOT presente na categoria "Logical"

Resultado: o código acima funciona perfeitamente.

Encoder

Encoder

Conexão elétrica


Encoder é um sensor que fornece a posição angular do motor ao qual está conectado - veja mais em: Encoders

A presente seção tem como objetivo explicar a utilização desse sensor com aplicação nos motores - será usado um HD Hex com ultraplanetária 60:1.

Cabos

Visto que o encoder é um sensor digital - veja a seção Conexão elétrica para sensores digitais - o cabo que ele usa é o padrão JST-PH de 4 pinos.

JST_PH_4pin_30cm_REV-31-1407__92491.webp

Conexão no Motor

Uma das pontas do cabo é conectado diretamente ao motor, na entrada correspondente - como indicado:

Conexão placa

A ponta restante é conectada a placa nas entradas mostrados abaixos:

Conexão geral

Conectado os dois deve ficar da seguinte forma:

É interessante pensar que o motor e o encoder são dispositivos separados, tanto é que, o motor funciona com 12V, enquanto o encoder pode ser energizado apenas pelos 5V da conexão USB-C, portanto, nos testes seguintes não será utilizado bateria

Encoder

Categoria motor


O encoder trabalha juntamente com a categoria de motor.

Objeto do encoder

O objeto de encoder é semelhante aos outros objetos descritos neste documento - uma diferença é que como ele não é um acionador, sua função é retornar um valor.

Bloco de posição

O seguinte bloco retorna a posição angular do motor especificado pela porta do encoder.

Nesse exemplo, o encoder retorna a posição angular do motor 1

Bloco de reset

O seguinte bloco tem como objetivo zerar a contagem atual do encoder.


Existem outros blocos de encoder que não serão abordados neste documento

A próxima página tem como objetivo ensinar a utilização da categoria de variáveis.

Encoder

Categoria de variáveis


Na grande maioria dos códigos é importante salvar os valores que os blocos retornam, isso pode ser feito utilizando a categoria de variáveis - que será explicado abaixo.

Blocos de tipos

Os chamados tipos indicam quais espécies de valores podem ser armazenados nessas variáveis, como: ponto flutuante, inteiro ou texto. Veja mais em: Data types

Bloco de nome

Para criar uma variável é preciso escolher um nome para ela juntamente do tipo de valores que devem ser armazenados. Segue abaixo um exemplo de criação de variável:

Esse é o nome padrão da variável, o qual deve ser mudado, para fazer isso apenas clique com o botão esquerdo sobre o texto e digite o novo nome.

Como:

Definir um valor

Para definir um valor se usa o bloco set, exemplo abaixo:

Para definir um valor é preciso declarar a variável antes, se não é gerado um erro de compilação.

Retorno de valor

Para retornar o valor de um bloco é necessário usar somente o bloco de nome, como demonstra:

O valor mostrado no monitor deve ser 12.3

Encoder

Exercício


A presente seção tem como objetivo fazer um código que realize o seguinte:

O seguinte exercício pode ser feito da forma mostrada abaixo:

1120 é considerado uma volta completa de um motor HD Hex 40:1, portanto, se esse motor fosse utilizado o código acima mediria o número de voltas.

Verifique no monitor serial a saída do código executado acima.

IMU

IMU

Categoria IMU


IMU é um dispositivo de medição inercial, em resumo, é capaz de fornecer a posição angular da placa em 3 eixos diferentes, veja mais sobre em: IMU

Diferente dos outros equipamentos, ele é integrado na placa EasySTEAM, portanto, pode ser usado diretamente.

A presente página tem como objetivo explicar os blocos da categoria IMU.

Inicializar IMU

Esse bloco deve ser colocado na função setup para inicializar o dispositivo.

Não se esqueça de colocar essa função caso queira utilizar o IMU - se não ele não será capaz de fornecer os valores dos eixos

Objeto de IMU

O Objeto abaixo tem a mesma função dos outros dispositivos, retornar os blocos que podem ser utilizados para esse equipamento específico.

Retorno de Yaw

O Yaw é um dos eixos de giro da placa - pense em uma linha saindo para cima da placa e a mesma girando em torno dela, o presente bloco retorna a quantidade desse giro em graus.

IMU

Exercício


A presente seção tem como objetivo fazer uma leitura do IMU integrado.

Segue abaixo um código que faça isso:

Faça o código e veja a saída no monitor serial, como mostrado abaixo.