Guia de uso
- Instalação
- Visão geral
- Conceitos iniciais
- Controle
- Driver Station
- Motores
- Servos
- Sensores Digitais
- Encoder
- IMU
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.
- Acesse o seguinte endereço: EasySTEAM IDE
- Clique em Assets;
- Posteriormente no arquivo com EasySTEAM.zip
Use a versão mais recente - no meu caso 0.9.0
- Extraia o arquivo quando terminado;
- Faça o seguinte caminho para achar o programa EasySTEAM\EasySTEAM_IDE\EasySTEAM_IDE.exe
- Abra o arquivo.
É provável que o Windows peça permissões para abrir determinado executáveis, aceite-os
Driver
Ao abrir o programa baixado anteriormente pela primeira vez, deve aparecer uma janela semelhante a essa pedindo uma instalação.
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.
- Clique em Avançar.
- Aceite o contrato e clique em avançar.
- Aguarde o término do processo.
- Concluído com êxito.
Visão geral
Interface
Após concluirmos as instalações, uma tela semelhante a essa deve ser obtida.
Após criarmos um novo projeto ou abrir um projeto existente, encontraremos as 5 áreas principais da interface que serão descritas nas páginas seguintes.
Caixa de blocos
Na esquerda da janela temos diversas categorias que funcionam agrupando blocos de um mesmo tipo.
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.
Esses blocos podem ser arrastados segurando o botão esquerdo do mouse sobre eles e movendo.
Área de trabalho
A área de trabalho é a região branca - onde devem ser colocados os blocos.
Os blocos só serão traduzidos para instruções caso sejam colocados na área de trabalho.
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.
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.
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.
Menu
Nome
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.
Botão de verificar
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:
-
EasySTEAMEasySTEAM_IDE\_internal\Arduino\sketches
-
Dentro da pasta sketches existem outras pastas com os nomes dos códigos que salvamos, ao abri-las, elas terão um arquivo de extensão .txt com o mesmo nome da pasta.
-
Ao clicar no arquivo e juntamente em Abrir, o código é novamente carregado na área de trabalho.
Exemplo de código que pode ser aberto no programa:
Botão Monitor
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
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.
O bloco “EasySTEAM Start” vai dentro do bloco setup, isso pode ser feito arrastando o bloco solto para baixo da abertura dele. Como mostrado:
Dessa forma, temos a estrutura final como:
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.
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.
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.
- Conectar o controlador no computador;
a. Por meio de um USB-C; - Fazer o código inicial;
- Escolher um nome;
- 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.
- Clicar em Executar;
a. Uma das certificações de que funcionou é a mensagem de carregamento percentual;
Apesar de ser um exemplo, experimente realizar esse processo para verificar se está tudo em ordem.
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
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.
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 |
Código
Objeto de controle
O objeto de controle é conhecido na interface como Gamepad1 - fica dentro da categoria Gamepad. Como demonstra:
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.
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.
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.
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:
- A senha é password
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
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.
Na parte de trás dos motores disponíveis existirá um terminal oposto que se encaixa no contato do cabo descrito.
As portas correspondentes na placa EasySTEAM são as 4 que possuem esse mesmo contato, como mostrado abaixo:
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:
As seguintes recomendações são feitas para aumentar a vida útil desses contatos JST-VH.
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:
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:
Motor configurado para porta 3 (com outras opções disponíveis):
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:
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:
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:
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
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:
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
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:
- GND - Ground
- Vcc - Alimentação
- Signal - Sinal de controle
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:
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:
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.
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.
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:
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:
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".
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.
Ele aceita como parâmetros dois tipos numérico que funcionam para a comparação. Como exemplo:
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:
Diferente do bloco de comparação, ele recebe valores de verdadeiro e falso (booleanos). Então segue abaixo um exemplo usando o controle:
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:
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".
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 é:
- Se o botão A for apertado o servo deve girar até 90º;
- Se o botão X for apertado o servo deve girar até 180º;
- Se o botão B for apertado o servo deve girar até 270º;
- Se o botão Y for apertado o servo deve girar até 0º.
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.
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
Conexão elétrica
As conexões de sensores digitais é feita utilizando cabos JST-pH de 4 pinos, conforme imagem:
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:
As conexões correspondentes na placa EasySTEAM estão indicadas abaixo:
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:
Aqui o sensor foi conectado na porta 5, mas nos exemplos seguintes estaremos usando a porta 1.
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.
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".
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:
- Receba o estado do sensor de limite magnético;
- Imprima no monitor serial se estiver pressionado ou solto.
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
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.
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
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.
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
Exercício
A presente seção tem como objetivo fazer um código que realize o seguinte:
- Retorna o valor do encoder para uma variável;
- Divide a variável por um valor arbitrário - você escolhe;
- Mostra o valor no monitor serial.
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
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.
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.