ROBO Pro Coding (PT)

Uso geral

Uso geral

Uso geral

O ROBO Pro Coding é um ambiente de desenvolvimento para a programação do novo controlador TXT 4.0 e, portanto, para a programação dos modelos da fischertechnik. O ROBO Pro Coding está disponível para Windows, macOS, Linux, iOS e Android e pode ser obtido dessas fontes.

Google_Play_Badge_DE_230x67.png    App_Store_Badge_DE_230x67.png    Microsoft_Badge_De_230x67.png   Linux_Badge.png

Portugiesisch-AllgemeineBenutzung-Bild1.PNG

image-1623839044249.22.21.png  

 

O código mostrado pode ser usado para este modelo (à esquerda). A interface da web do ROBO Pro Coding tem a seguinte estrutura (os números referem-se às áreas destacadas na figura):

  1. Aqui está o que foi programado em blocos, em Python
  2. Este é o campo no qual os blocos são inseridos para programar
  3. A execução do programa é documentada no console 
    • Os pontos de interrupção são usados para programas de depuração. Eles definem certos pontos no código em que o programa é interrompido. Eles são configurados por meio do editor e consistem no nome do arquivo + número da linha.
    • O conteúdo das variáveis pode ser visto em Termos.
    • A pilha de chamadas mostra a nidificação das chamadas. Isso é particularmente útil ao se usar funções.
  4. Todos os blocos de programação podem ser encontrados aqui, classificados nas categorias de atuadores , sensores e processamento
  5. Esta linha é explicada separadamente em Cabeçalho
  6. Aqui, você pode adaptar o nível de aprendizagem ao usuário. Por exemplo, dependendo do nível, apenas os blocos mais importantes são exibidos.

 

Cabeçalho

image-1623793979375.19.18.png

No cabeçalho estão (da esquerda para a direita) os elementos operacionais para iniciar o programa, parar o programa, iniciar o depurador, começar o teste de interface, carregar o programa atual e conectar-se ao controlador.

Iniciar programas

Caso deseje iniciar seu programa a partir do ROBO Pro Coding, clique neste símbolo.

Parar programas 

Caso queira interromper o programa antes que ele termine sozinho, toque neste símbolo.

O depurador

O depurador tem como objetivo facilitar a localização de erros no programa. Através do menu no canto superior direito, você pode percorrer o código passo a passo e, assim, simular a execução de um programa. O programa ainda reage à interação com sensores, por exemplo, ao pressionar-se um botão. Ao executar o programa, você pode ver no campo grande à esquerda em qual bloco você está e à direita em qual posição no código Python.

O teste de interface

Ao clicar no símbolo com os três controles deslizantes, esta janela se abre:

Portugiesisch-AllgemeineBenutzung-Bild4.PNG

Aqui você pode ver todos os dispositivos conectados. No caso de atuadores, você pode usar o controle deslizante para verificar se eles estão funcionando. O valor medido é especificado para os sensores (por exemplo, o botão tem 1 porque está pressionado). O menu suspenso (triângulo pequeno) pode ser usado para especificar o que está conectado.

Carregar programas

Se você escreveu um programa e deseja que ele seja executado independentemente no controlador, pode carregá-lo no controlador usando este símbolo. Em seguida, ele aparecerá sob os arquivos no controlador. Ao tocar no nome do programa, você chegará à subpasta do programa. Aqui está um arquivo chamado "main.py". Clique aqui e o botão "abrir" no canto inferior direito deve se acender em verde. Pressione o botão "abrir" e outro menu será aberto, com quatro opções:

  1. Carregar: Carrega o programa para que você possa iniciá-lo a partir da tela inicial
  2. Carregamento automático: O programa é recarregado automaticamente da próxima vez que o controlador for iniciado
  3. Início automático: O programa é recarregado automaticamente e iniciado direto da próxima vez que o controlador for iniciado
  4. Excluir projeto: O programa é excluído do controlador
Conexão ao controlador 

Como se conectar ao controlador foi explicado aqui.

Configuração do controlador

Para poder usar componentes como sensores e atuadores no programa, você deve conectá-los ao controlador, não apenas fisicamente, mas também no software. A configuração do controlador é sempre aberta automaticamente e pode ser acessada na parte superior direita, ao lado do programa principal.

O controlador e todos os componentes que podem ser conectados a ele são então exibidos na área esquerda. O controlador é arrastado para a área de programação. Você pode então conectar os componentes desejados ao controlador usando arrastar e soltar.

Portugiesisch-Allgemeine Benutzung-Bild5.PNG

Carregar programas

 Caso deseje salvar um programa, clique nas três linhas no canto superior esquerdo do site ROBO Pro Coding. Aqui, toque na opção "Exportar". Agora você pode escolher se deseja salvar seu programa localmente em seu dispositivo ou no GitLab.

Local: Depois de inserir o nome do seu programa, basta clicar em "Exportar" e o arquivo do programa estará no seu dispositivo.

GitLab: Depois de inserir o nome do seu programa e seguir os passos indicados para inserir o token de acesso pessoal, basta clicar em "Exportar" e o arquivo do programa será salvo na sua conta GitLab.

 

 

Atuadores

Atuadores

Saídas

O início de cada bloco de tempo

bloco de tempo oferece a possibilidade de executar um programa se uma condição for satisfeita. Portanto, ele funciona de maneira semelhante a uma distinção de caso, mas não é executado apenas uma vez, e sim sempre que a condição for atendida durante todo o curso do programa. O início de cada bloco de tempo:

Portugiesisch-Ausgänge-Bild1.PNG

É uma abreviatura para a seguinte construção:

Portugiesisch-Ausgänge-Bild2.PNG

Você pode usar todas as condições desta categoria ao iniciar cada bloco de tempo da categoria de saídas.

Observação: A seção do programa dentro do iniciar de cada bloco de tempo deve ser mantida curta e não conter chamadas de bloqueio ou loops sem fim para que esta parte do programa possa ser processada rapidamente.

LEDs

image-1623745844016.42.50.png

Definir

Com os blocos Definir LED ... e Definir brilho do LED ..., é possível ligar e desligar o LED ou definir seu brilho para um determinado valor (de 0 a 512). 

Lembrar

Com o bloco obter brilho do LED, o brilho de um LED pode ser acessado e posteriormente processado como um valor.

Consultar

Com os blocos o LED está ...  e O brilho do LED está ..., você pode usar a atividade ou o brilho de um LED como condição. No exemplo, o brilho do LED está definido para 512, a menos que já tenha esse brilho.

Portugiesisch-Ausgänge-Bild4.PNG

Motores 

O símbolo nos blocos do motor representa todos os motores que não são codificadores ou servo motores.

Definir

Com o bloco definido a velocidade do motor para [] ..., você pode definir a velocidade de um motor para um determinado valor (de 0 a 512). 

Lembrar

Com o bloco obter velocidade do motor, a velocidade de um motor pode ser acessada e posteriormente processada como um valor.

Consultar

Com os blocos motor em execução e a velocidade do motor está ... , você pode usar a atividade ou a velocidade de um motor como condição.

Parar

Com o bloco parar motor ..., é possível parar um motor.

Compressor

image-1623746227574.40.52.png

Definir

Com o bloco definir compressor [] , você pode ligar ou desligar o compressor. 

Consultar

Com o bloco o compressor está []  ,pode-se usar a atividade de um compressor como condição. 

Válvula solenoide

image-1623746259058.41.19.png

Definir

Com o bloco definir válvula solenoide [] , você pode ligar ou desligar a válvula solenoide. Aqui, “ligado” significa que a válvula está aberta, e “desligado”, que a válvula está fechada.

Consultar

Com o bloco a válvula solenoide está [] , pode-se usar a atividade de uma válvula solenoide como condição.

Atuadores

Som

O controlador TXT 4.0 possui um alto-falante embutido e, portanto, oferece a possibilidade de reproduzir sons.

O início de cada bloco de tempo

bloco de tempo oferece a possibilidade de executar um programa se uma condição for satisfeita. Portanto, ele funciona de maneira semelhante a uma distinção de caso, mas não é executado apenas uma vez, e sim sempre que a condição for atendida durante todo o curso do programa. O início de cada bloco de tempo:

Portugiesisch-Sound-Bild1.PNG

É uma abreviatura para a seguinte construção:

Portugiesisch-Sound-Bild2.PNG

Você pode configurar todas as condições da categoria som em iniciar cada bloco de tempo a este nível.

Observação: A seção do programa dentro do iniciar de cada bloco de tempo deve ser mantida curta e não conter chamadas de bloqueio ou loops sem fim para que esta parte do programa possa ser processada rapidamente.

Reproduzir

Arquivos de áudio pré-instalados

Com o bloco a seguir, você pode reproduzir um dos 29 sons pré-instalados. O arquivo de áudio desejado pode ser selecionado no menu suspenso (triângulo pequeno). Também é possível reproduzir o som em um loop contínuo. Para tanto, você deve marcar a caixa atrás do símbolo de loop.

Portugiesisch-Sound-Bild3.PNG

Arquivos de áudio próprios

Caso queira tocar seu próprio som, você pode usar o bloco

Portugiesisch-Sound-Bild4.PNG

. Para incorporar seu próprio som no bloco, você deve:

  1. Estar conectado ao controlador
  2. Digite o endereço IP do controlador no navegador (o IP que também foi usado para se conectar ao controlador deve ser selecionado aqui)
  3. Digite USER: ft, PASSWORD: fischertechnik na página aberta
  4. Abra a pasta de sons e use o sinal de mais para carregar o arquivo de áudio desejado no controlador (importante: o arquivo de áudio deve estar no formato wav)
  5. Digite no endereço "./nome do arquivo.wav" no bloco de codificação ROBO Pro

Também aqui existe a opção de reproduzir o som em loop contínuo.

Consultar

Para saber se um arquivo de áudio está sendo reproduzido, o bloco reproduzir som é usado . Isso pode ser usado como uma condição no programa.

Parar

Para interromper um som, basta usar o bloco parar reprodução de som no programa.

Atuadores

Exibição

Com os blocos da categoria exibição, a tela do controlador TXT 4.0 pode ser desenhada e tornada utilizável. Isso é feito em duas etapas:

  1. Configurar, isto é
    • Abra um novo arquivo na categoria Display por meio do símbolo de página com o sinal de mais no canto superior esquerdo
    • Arraste os elementos desejados para a área da grade (representa a parte configurável da tela)
    • adaptar as especificações, se necessário. 
  2. Programar, isto é
    • No programa principal, usar os blocos da categoria Exibição para programar o efeito da interação com a exibição.

Blocos

Consulta de evento

O bloco E vento []  abre o valor de retorno de um elemento. Este bloco só pode ser utilizado nos programas de eventos. Nestes programas de eventos, o bloco refere-se automaticamente ao evento em cujo programa é utilizado. O tipo adequado para o valor de retorno pode ser selecionado através do menu suspenso (triângulo pequeno):

Bild1.PNG

Campo de rotulagem

Com o elemento campo de rotulagem, você pode colocar um texto na tela. O símbolo no configurador de exibição é a etiqueta. Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

são definidos.

Com o bloco definir texto do campo de rotulagem ... o texto exibido pode ser alterado no decorrer do programa.

Entradas

O elemento Entrada permite que os(as) usuários(as) insiram texto por meio do controlador. O símbolo correspondente no configurador de exibição é o caractere "T". Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

são definidos.

Com o bloco definir texto do campo de entrada... o texto exibido pode ser alterado no decorrer do programa.

Programa de entrada

O programa de entrada é executado quando uma entrada é concluída. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa de entrada é executado no bloco quando a entrada é concluída. O bloco Evento [] é definido no programa de entrada como "texto". Neste exemplo, a variável Nome é definida para o texto digitado, que é então utilizado no programa principal para alterar o texto digitado para produzir:

Bild2.PNG

 

Instrumento de medição 

A função do instrumento de medição pode exibir valores (nenhum valor menor que 1). O símbolo correspondente no configurador de exibição é a escala. Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

são definidos.

Com o bloco definir valor do instrumento de medição em ... o instrumento de medição pode ser definido para o valor inserido. Este valor deve estar na faixa de valores definida anteriormente. Se o valor estiver fora da faixa de valores, um dos limites da faixa de valor é exibido, dependendo se o valor é muito grande ou muito pequeno.

Exibição de status

O indicador de status exibe alguma atividade. Dependendo do estado, acende ("ativo") ou não acende ("inativo"). O símbolo no configurador de tela é um diodo brilhante. Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

são definidos.

Com o bloco definir exibição de status como ativa [], a exibição de status pode ser habilitada ou desabilitada. No menu suspenso (triângulo pequeno), você pode escolher se a exibição de status deve ser definida como ativa ou inativa.

Controle deslizante

O controle deslizante retorna valores dependendo de sua posição. A posição pode ser alterada pelo usuário por meio da tela sensível ao toque. O valor pode ser recuperado através do bloco Evento [] assim que o controle deslizante estiver em repouso. O valor recuperado é um número decimal. Se você quiser que o valor do controle deslizante seja um número inteiro, você deve usar o bloco redondo. O símbolo correspondente para o controle deslizante é a linha com o círculo. Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

são definidos.

com o bloco Definir valor do controle deslizante ... você pode mover o controle deslizante para um valor diferente. 

Com definir controle deslizante como ativado [], você pode alterar a atividade por meio do menu suspenso (triângulo pequeno).

Programa do controle deslizante

O programa do controle deslizante é executado após o controle deslizante ser movido. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa do controle deslizante é executado no bloco quando o controle deslizante se move. O bloco Evento [] é definido quanto ao valor no programa do controle deslizante. Neste exemplo, a velocidade do motor é controlada usando-se o controle deslizante. O valor do controle deslizante deve ser arredondado porque o motor só aceita números inteiros como velocidade:

Bild3.PNG

 

Botão

O botão é um campo rotulado que pode ser pressionado. Se você pressionar o botão, o programa do botão será executado assim que for liberado novamente. O símbolo associado ao botão é o quadrado com o rótulo "OK". Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

são definidos.

Com o bloco definir controle deslizante como ativado [], você pode alterar a atividade por meio do menu suspenso (triângulo pequeno).

Programa de botões

O programa de botões é executado assim que o botão não estiver mais pressionado. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa de botões é executado no bloco quando o botão é clicado. O bloco Evento [] pode programar botões não usados, pois o botão não tem valor de retorno. Neste exemplo, o LED é ativado quando o botão é pressionado.

Bild4.PNG

Interruptor

O interruptor pode ocupar duas posições e está sempre exatamente em uma dessas duas posições. Dependendo da posição, ele retorna verdadeiro ou falso . O símbolo correspondente para o interruptor é o oval com a ponta. Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

podem ser ajustados.

O bloco

Bild5.PNG

 

executa duas funções. Você pode definir a atividade (selecionar ativado no menu suspenso) ou o estado (marcad no menu suspenso) como verdadeiro ou falso

Programa do interruptor

O programa do interruptor é executado sempre que o interruptor é acionado. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa do interruptor é executado no bloco quando o interruptor é desativado. O bloco Evento [] é definido no programa de ativação como "marcado", ele retorna verdadeiro ou falso. Este programa de exemplo liga o LED quando a chave é acionada, caso contrário, o LED é desligado:

Bild6.PNG

Caixa de seleção

A caixa de seleção pode ter dois estados e está sempre exatamente em um desses dois estados. Dependendo da posição, ela retorna verdadeiro ou falso . O símbolo da caixa de seleção é o quadrado com a marca de seleção. Se você arrastar este símbolo para a área da grade, uma janela será aberta à direita. Aqui, em inspetor,

são definidos.

O bloco seguinte executa duas funções. O menu suspenso (triângulo pequeno) pode ser selecionado para se escolher qual usar. Você pode definir a atividade (selecionar ativado no menu suspenso) ou o estado (marcad no menu suspenso) como verdadeiro ou falso.

Bild7.PNG

Programa de caixa de seleção

O programa da caixa de seleção é executado sempre que a caixa de seleção é pressionada. Ele é escrito separadamente do programa principal. As variáveis funcionam em ambos os programas. O programa do interruptor é executado no bloco quando a caixa de seleção é desativada. O bloco Evento [] é definido no programa de ativação como "marcado", ele retorna verdadeiro ou falso. Este programa de exemplo liga o LED quando a caixa de seleção é acionada, caso contrário, o LED é desligado:

Bild8.PNG

Atuadores

Motor

O início de cada bloco de tempo

bloco de tempo oferece a possibilidade de executar um programa se uma condição for satisfeita. Portanto, ele funciona de maneira semelhante a uma distinção de caso, mas não é executado apenas uma vez, e sim sempre que a condição for atendida durante todo o curso do programa. O início de cada bloco de tempo:

Bild1.PNG

É uma abreviatura para a seguinte construção:

Bild2.PNG

Você pode configurar todas as condições da categoria motor em iniciar cada bloco de tempo a este nível.

Observação: A seção do programa dentro do iniciar de cada bloco de tempo deve ser mantida curta e não conter chamadas de bloqueio ou loops sem fim para que esta parte do programa possa ser processada rapidamente.

Motor 

O símbolo nos blocos do motor representa todos os motores que não são codificadores ou servo motores.

Definir

Com o bloco definido a velocidade do motor para [] ..., você pode definir a velocidade de um motor para um determinado valor (de 0 a 512). A direção de rotação pode ser selecionada no menu suspenso (triângulo pequeno).

Lembrar

Com o bloco obter velocidade do motor, a velocidade de um motor pode ser acessada e posteriormente processada como um valor.

Consultar

Com os blocos motor em execução e a velocidade do motor está ... , você pode usar a atividade ou a velocidade de um motor como condição.

Parar

Com o bloco parar motor [], é possível parar um motor. O bloco parar motor [] oferece as opções de parar um motor diretamente ou por inércia. A opção desejada pode ser selecionada por meio do menu suspenso (triângulo pequeno):           

Bild3.PNG                                                                                 

 

Servo motor

image-1623746331741.42.25.png

Definir

Com o bloco Definir posição a ..., você pode definir a posição de um servo motor a um determinado valor (de 0 a 512). 0 e 512 são os valores para a deflexão máxima à direita e à esquerda. Com o valor 256, o servo motor está, correspondentemente, no meio. 

Lembrar

A posição de um servo motor pode ser acessada com acessar posição e posteriormente processada como um valor.

Motor codificador

image-1623746341213.40.14.png

O motor codificador tem as mesmas funções de um motor normal, mas também oferece a opção de contar as rotações e controlar vários motores de maneira sincrônica. Uma revolução é dividida em ~64 etapas.

Definir

Com o bloco 

Bild6.PNG

você pode definir a velocidade de um motor para um determinado valor (de 0-512). A direção de rotação pode ser selecionada no menu suspenso (triângulo pequeno). Além disso, você pode inserir o número de etapas que o motor deve percorrer. Neste exemplo, o motor gira 100 etapas, ou seja, uma revolução e um terço. Como pode ser visto no exemplo, este bloco possui um sinal de mais, com a ajuda do qual vários motores podem ser controlados de maneira sincrônica. É possível sincronizar motores no mestre ou em uma extensão; a sincronização geral, por exemplo, entre os motores do mestre e uma extensão, não é possível.

Observação: Chamadas de sincronização em rápida sucessão, como aquelas possibilitadas por um loop (veja o exemplo), podem prejudicar a sincronicidade ou até mesmo causar sua perda completa.

Parar

Com o bloco parar motor ... é possível para um motor. Caso queira parar vários motores ao mesmo tempo, poderá adicionar até três motores usando o botão de adição à esquerda do bloco.

Bild7.PNG

Consultar

O bloco atingiu a posição é usado para usar a posição alcançada como uma condição. Aqui, posição significa a posição final de um motor codificador após o tamanho da etapa concluída.

Sensores

Sensores

Entradas

O início de cada bloco de tempo

bloco de tempo oferece a possibilidade de executar um programa se uma condição for satisfeita. Portanto, ele funciona de maneira semelhante a uma distinção de caso, mas não é executado apenas uma vez, e sim sempre que a condição for atendida durante todo o curso do programa. O início de cada bloco de tempo:

Bild1.PNG

É uma abreviatura para a seguinte construção:

Bild2.PNG

Você pode configurar todas as condições da categoria entradas em iniciar cada bloco de tempo a este nível.

Observação: A seção do programa dentro do iniciar de cada bloco de tempo deve ser mantida curta e não conter chamadas de bloqueio ou loops sem fim para que esta parte do programa possa ser processada rapidamente.

Teclado

image-1623679995498.03.59.png

O teclado é um sensor digital que distingue "corrente fluindo" de "nenhuma corrente fluindo". Se a corrente flui ou não depende do cabeamento e se a tecla está pressionada. Você pode usar o teclado de duas maneiras diferentes:

image-1623592536466.48.54.png

Como "contato":
os contatos 1 e 3 estão conectados. 

Teclado pressionado: Assim, flui uma corrente.                                                                                                             Teclado não pressionado: Assim, não flui uma corrente.

Como "abridor":

Os contatos 1 e 2 estão conectados.                                                                                                                                                

Teclado pressionado: Assim, não flui uma corrente.                                                                                                   Teclado não pressionado: Assim, flui uma corrente.

Lembrar

Com obter o status do mini-teclado, você obtém informações sobre se a corrente está fluindo através do teclado ou não. Se a corrente flui, 1 retornado, se nenhuma corrente flui, 0

Consultar

Para consultar se o botão está em um determinado estado, o bloco o teclado está... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar qual status é solicitado. Este bloco pode ser usado como condição.

Sensor ultrassônico

image-1623680004750.04.35.png

O sensor ultrassônico é usado para medir distâncias.

Lembrar

Com obter distância do sensor ultrassônico, você obtém as informações sobre a distância do sensor em relação ao próximo objeto. A distância é retornada em cm.

Consultar

Para consultar se o sensor está a uma certa distância do próximo objeto, o bloco a distância do sensor ultrassônico está a ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como a distância medida deve ser comparada com um valor inserido (<, ≤, =, ≠, ≥,>) O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando a distância medida for inferior a 2 cm.

Bild6.PNG

 

Sensor de cores

image-1623680014794.04.56.png

O sensor de cores envia luz vermelha e mede o quanto dela é refletida. Dependendo da intensidade do reflexo, o sensor de cores retorna valores de 0 a 2.000. É adequado para reconhecer cores previamente calibradas. 

Lembrar

Com obter valor do sensor de cores, recebe-se a informação da intensidade com que uma superfície reflete a luz.

Consultar

Para saber se o sensor tem uma determinada cor à sua frente, o bloco o valor do sensor de cores está a ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como o valor de cor mensurado deve ser comparado com o valor inserido (<, ≤, =, ≠, ≥,>) O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o valor da cor medida for inferior a 1000.

Bild8.PNG

 

Sensor de rastreamento infravermelho

image-1623680023473.04.45.png

O sensor de rastreamento infravermelho é um sensor digital para a detecção de um rastro preto em um fundo branco, funcionando a uma distância de 5 a 30 mm do sensor ao substrato. 

Lembrar

Com obter status do sensor de rastreamento infravermelho, você obterá 0 se o sensor não detectar um rastro. Caso o sensor detecte um rastro, 1 é retornado

Consultar

Para consultar se o sensor IR da faixa detecta um rastro, compare o status do rastro atual com 0 ou 1. Para tanto, o bloco adequado é o status do sensor de rastreamento infravermelho está [] ... . O menu suspenso (triângulo pequeno) pode ser usado para selecionar como o status do rastro deve ser comparado com o valor inserido (<, ≤, =, ≠, ≥,>) O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o status do rastro medido for 0.

Bild10.PNG

Fototransistor

image-1623680417014.17.52.png

O fototransistor é um sensor digital que distingue a luz da escuridão. 

Lembrar

Com obter status do fototransistor, você obterá 0 se o sensor não detectar luz. Caso o sensor detecte luz, 1 é retornado.

Consultar

Para consultar se o fototransistor detecta luz ou escuridão, compare o status de luminosidade com 0 ou 1. Para tanto, o bloco adequado é o status do status do fototransistor está [] . O menu suspenso (triângulo pequeno) pode ser usado para selecionar se deve ser consultado se está claro ou escuro. 

image-1623844705358.57.11.pngUm possível uso para um fototransistor é em uma barreira de luz, como neste modelo.

Fotorresistor

image-1623680434602.04.18.png

A resistência do fotorresistor diminuirá à medida que ele for exposto a mais luminosidade. O valor resultante do fotorresistor é, portanto, uma medida de luminosidade.

Lembrar

Com obter valor do fotorresistor, você obtém a informação do nível de luminosidade. Quanto menor o valor exibido, mais luminoso estará.

Consultar

Para saber se o fotorresistor mede um determinado valor de luminosidade, o bloco o valor do fotorresistor está [] ... é usado. No menu suspenso (triângulo pequeno), você pode selecionar como o valor de luminosidade deve ser comparado com o valor inserido (<, ≤, =, ≠, ≥,>). O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o valor da luminosidade é inferior a 3000.

Bild14.PNG

Resistor NTC

image-1623680448576.05.31.png

O resistor NTC é um sensor de temperatura não binário. Sua resistência elétrica diminui quando a temperatura sobe e, portanto, é uma medida da temperatura. 

Lembrar

Com obter resistor NTC [], você obtém um valor de resistência ou a temperatura calculada a partir dele. O que deve ser retornado pode ser selecionado no menu suspenso (triângulo pequeno).

Consultar

Para consultar se o resistor NTC mede um determinado valor, o bloco o resistor NTC está [] [] ... Os menus suspensos (triângulo pequeno) podem ser usados para selecionar o que deve ser comparado e com qual operador de comparação. O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o valor da temperatura é inferior a 20.

Bild16.PNG

Sensores

Contador

image-1623684174534.40.14.png

O motor codificador pode ser usado como contador. O número de suas revoluções é contado não apenas quando ele gira como um motor, mas também quando é mecanicamente acionado de fora.

O início de cada bloco de tempo

bloco de tempo oferece a possibilidade de executar um programa se uma condição for satisfeita. Portanto, ele funciona de maneira semelhante a uma distinção de caso, mas não é executado apenas uma vez, e sim sempre que a condição for atendida durante todo o curso do programa. O início de cada bloco de tempo:

Bild2.PNG

É uma abreviatura para a seguinte construção:

Bild3.PNG

Você pode configurar todas as condições da categoria contador em iniciar cada bloco de tempo a este nível.

Observação: A seção do programa dentro do iniciar de cada bloco de tempo deve ser mantida curta e não conter chamadas de bloqueio ou loops sem fim para que esta parte do programa possa ser processada rapidamente.

Lembrar

Com obter valor do contador, você obtém o valor contado pelo contador.

Consultar

Este bloco é usado para consultar se o contador contou determinado valor

Bild4.PNG

O menu suspenso (triângulo pequeno) pode ser usado para selecionar como o valor contado deve ser comparado com o valor inserido (<, ≤, =, ≠, ≥,>).

Restaurar ao padrão

O contador começa novamente em 0 quando o bloco restaurar o contador é executado.

Sensores

I2C

Os sensores I2C descritos neste capítulo são conectados ao controlador TXT 4.0 usando-se um cabo de fita adequado.

O início de cada bloco de tempo

bloco de tempo oferece a possibilidade de executar um programa se uma condição for satisfeita. Portanto, ele funciona de maneira semelhante a uma distinção de caso, mas não é executado apenas uma vez, e sim sempre que a condição for atendida durante todo o curso do programa. O início de cada bloco de tempo:

Bild1.PNG

É uma abreviatura para a seguinte construção:

Bild2.PNG

Você pode configurar todas as condições da categoria l2C em iniciar cada bloco de tempo a este nível.

Observação: A seção do programa dentro do iniciar de cada bloco de tempo deve ser mantida curta e não conter chamadas de bloqueio ou loops sem fim para que esta parte do programa possa ser processada rapidamente.

Sensor de combinação

image-1623698066081.05.44.png

O sensor de combinação combina as três funções de acelerômetro, giroscópio e sensor de bússola em um componente.

Acelerômetro

Lembrar

Com obter a aceleração do sensor de combinação [], obtém-se a aceleração em uma direção espacial. A direção espacial desejada pode ser selecionada por meio do menu suspenso (triângulo pequeno): A aceleração é dada em g. 

Consultar

Para consultar se uma determinada aceleração está sendo medida, o bloco a aceleração do sensor de combinação está [] [] ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como a aceleração deve ser comparada com o valor inserido (<, ≤, =, ≠, ≥,>) e qual direção espacial deve ser consultada. O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando a aceleração na direção x é maior que 10.

Bild4.PNG

 

Giroscópio

Lembrar

Com obter a rotação do sensor de combinação em [], obtém-se a aceleração em uma direção espacial. A direção espacial desejada pode ser selecionada por meio do menu suspenso (triângulo pequeno): A rotação é dada em °/s. 

Consultar

Para consultar se uma determinada aceleração está sendo medida, o bloco a rotação do sensor de combinação está [] [] ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como a rotação deve ser comparada com o valor inserido (<, ≤, =, ≠, ≥,>) e qual direção espacial deve ser consultada. O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando a rotação na direção x é maior que 10.

Bild5.PNG

Sensor de bússola

Lembrar

Com obter fluxo magnético do sensor de combinação [], , o fluxo magnético é obtido em uma direção espacial. A direção espacial desejada pode ser selecionada por meio do menu suspenso (triângulo pequeno): O fluxo magnético é dado em μT. 

Consultar

Para consultar se um determinado fluxo magnético está sendo medido, o bloco o fluxo magnético do sensor de combinação está em [] [] ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como o fluxo magnético deve ser comparado com o valor inserido (<, ≤, =, ≠, ≥,>) e qual direção espacial deve ser consultada. O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o fluxo magnético na direção x é maior que 10.

Bild6.PNG

Sensor ambiental

image-1623698078892.05.11.png

O sensor ambiental combina as quatro funções de sensor de qualidade do ar, sensor de umidade, barômetro e termômetro em um único componente.

Sensor de qualidade do ar

Lembrar

Com o bloco, obter a qualidade do ar do sensor ambiental como [], é possível medir a qualidade do ar. O menu suspenso (triângulo pequeno) pode ser usado para escolher se a qualidade do ar deve ser retornada como um valor numérico (de 0 a 500) ou como texto. 

Consultar

Para consultar se uma determinada qualidade do ar está sendo medida, o bloco a qualidade do ar do sensor ambiental está [] ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como a qualidade do ar deve ser comparada com o valor inserido (<, ≤, =, ≠, ≥,>). O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o valor da qualidade do ar é inferior a 10.

Bild8.PNG

Barômetro
Lembrar

Com o bloco obter pressão atmosférica do sensor ambiental, você pode medir a pressão atmosférica.

Consultar

Para consultar se uma determinada pressão atmosférica está sendo medida, o bloco a pressão atmosférica do sensor ambiental está [] ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como a pressão atmosférica deve ser comparada com o valor inserido (<, ≤, =, ≠, ≥,>). O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o valor da pressão atmosférica é inferior a 10.

Bild9.PNG

Termômetro
Lembrar

Com o bloco obter a temperatura do sensor ambiental , é possível medir a temperatura.

Consultar

Para consultar se uma determinada temperatura está sendo medida, o bloco a temperatura do sensor ambiental está [] ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como a temperatura deve ser comparada com o valor inserido (<, ≤, =, ≠, ≥,>). O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando a temperatura é superior a 10.

Bild10.PNG

Sensor de umidade
Lembrar

Com o bloco obter a umidade do sensor ambiental , é possível medir a umidade do ar.

Consultar

Para consultar se uma determinada umidade está sendo medida, o bloco a umidade do sensor ambiental está [] ... é usado. O menu suspenso (triângulo pequeno) pode ser usado para selecionar como a umidade deve ser comparada com o valor inserido (<, ≤, =, ≠, ≥,>). O valor de comparação é inserido no campo numérico ao final do bloco. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando a umidade é superior a 10.

Bild11.PNG

Sensores

USB

USB

A câmera com um microfone integrado pode ser conectada através da porta USB. A câmera e o microfone são vistos separadamente aqui. Para usar as funções da câmera, primeiro você deve configurá-las no configurador da câmera. Como chegar ao configurador da câmera é explicado aqui

Câmera

A câmera pode ser usada em particular como um detector de movimento, como um detector de cores, como um detector de círculos e como um detector de linhas.

Detector de movimento

Para usar a câmera como um detector de movimento, você deve arrastar o símbolo masculino no configurador da câmera para a área da grade, e então uma janela será aberta à direita, na qual será possível definir, em Inspetor,

.

Programa do detector de movimento

O programa do detector de movimento é executado quando movimento é detectado. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa do detector de movimento é executado no bloco quando movimento é detectado

Detector de cores

Para usar a câmera como um detector de cores, você deve arrastar o símbolo da pipeta para a área da grade, e então uma janela será aberta à direita, na qual será possível definir, em Inspetor,

.

Lembrar

Com obter cores como [] ,você obtém a cor reconhecida em hexadecimais ou no formato RGB. O formato pode ser definido usando-se o menu suspenso (triângulo pequeno).

Consultar

Para consultar se o detector captou uma cor, o bloco a cor foi detectada é usado. Este bloco pode ser usado como condição.

Este bloco é usado para consultar se o detector capta uma determinada cor 

Bild1.PNG

O bloco pode ser usado para comparar a cor captada com uma inserida. O menu suspenso (triângulo pequeno) pode ser usado para escolher se a cor definida deve ser igual ou não à cor captada. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando a cor captada é vermelha.

Bild2.PNG

Programa do detector de cores

O programa do detector de cores é executado quando uma cor é detectada. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa de entrada é executado no bloco quando cor é reconhecida

Detector de círculos 

Para usar a câmera como um detector de círculos, você deve arrastar o símbolo do círculo no configurador da câmera para a área da grade, então uma janela será aberta à direita, na qual você poderá selecionar, em Inspetor,

.

Lembrar

Com obter [] do círculo, é possível obter a posição x, posição y, o raio ou o diâmetro do círculo.

Consultar

Para consultar se o detector captou um círculo, o bloco o círculo foi detectado é usado. Este bloco pode ser usado como condição.                                                                  

Este bloco é usado para consultar se o detector detecta um círculo com uma determinada posição x, posição y, raio ou diâmetro 

Bild3.PNG

O bloco pode ser usado para comparar as especificações do círculo captado com um valor inserido. Os menus suspensos (triângulo pequeno) podem ser usados para selecionar o que deve ser comparado e com qual operador de comparação. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o diâmetro do círculo captado for inferior a 5.

Bild4.PNG

 

Programa do detector de círculos

O programa do detector de círculos é executado quando um círculo é detectado. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa de entrada é executado no bloco quando o círculo é reconhecido . 

Detector de linhas

Para usar a câmera como um detector de linhas, você deve arrastar o símbolo daos pontos para a área da grade, e então uma janela será aberta à direita, na qual será possível definir, em Inspetor,

.

Lembrar

Com obter [] da linha [], é possível obter a posição ou largura de uma dentre, no máximo, cinco linhas.

Com obter cor da linha [] como [], é possível obter a cor de uma linha em hexadecimais ou no formato RGB. O formato pode ser definido usando-se o menu suspenso (triângulo pequeno).

Consultar

Para consultar se o detector captou uma linha, o bloco a linha foi detectada é usado. Este bloco pode ser usado como condição.                                                                  

Este bloco é usado para consultar se o detector detecta uma linha com determinada posição ou largura

Bild5.PNG

O bloco pode ser usado para comparar as especificações da linha captada com um valor inserido. Os menus suspensos (triângulo pequeno) podem ser usados para selecionar o que deve ser comparado e com qual operador de comparação. Este bloco pode ser usado como condição. No exemplo, o motor é parado quando o valor da linha captada for inferior a 2.

Bild6.PNG

Este bloco é usado para consultar se o detector detecta uma linha com uma determinada cor 

Bild7.PNG

O bloco pode ser usado para comparar a cor da linha captada com uma inserida. O menu suspenso (triângulo pequeno) pode ser usado para escolher se a cor definida deve ser igual ou não à cor captada. Este bloco pode ser usado como condição.

Programa do detector de linhas

O programa do detector de linhas é executado quando uma ou mais linhas são detectadas. Ele é escrito separadamente do programa principal. As variáveis funcionam globalmente em ambos os programas. O programa de entrada é executado no bloco quando linhas são detectadas

Microfone

O microfone integrado à câmera pode ser usado como detector de volume.

O início de cada bloco de tempo

bloco de tempo oferece a possibilidade de executar um programa se uma condição for satisfeita. Portanto, ele funciona de maneira semelhante a uma distinção de caso, mas não é executado apenas uma vez, e sim sempre que a condição for atendida durante todo o curso do programa. O início de cada bloco de tempo:

Bild8.PNG

É uma abreviatura para a seguinte construção:

Bild9.PNG

Você pode configurar todas as condições da categoria microfone em iniciar cada bloco de tempo a este nível.

Observação: A seção do programa dentro do iniciar de cada bloco de tempo deve ser mantida curta e não conter chamadas de bloqueio ou loops sem fim para que esta parte do programa possa ser processada rapidamente.

Detector de volume

Lembrar

Com volume do microfone, você obtém o volume em decibéis.

Consultar

Este bloco é usado para consultar se o detector de volume capta um determinado volume

Bild10.PNG

O bloco pode ser usado para comparar o volume captado com um inserido. O menu suspenso (triângulo pequeno) pode ser usado para selecionar com qual operador de comparação deve-se comparar. Este bloco pode ser usado como condição.

Processamento

Processamento

Condições

As instruções condicionais são fundamentais para a programação. Eles tornam possível formular distinções de caso, tais como:

Blocos

blocos se

A condição mais simples é um bloco se:

Bild1_por.PNG

Quando isso é executado, o valor da variável x é comparado a 100. Quando for maior, "Que grande número!" será emitido. Caso contrário, nada acontecerá.

blocos caso contrário

Também é possível indicar que algo deve acontecer se a condição não for verdadeira, como neste exemplo:

Bild2_por.PNG

Como no bloco anterior, será emitido "Que grande número!" se x > 100. Caso contrário, "Isso não é muito grande." é especificado.

Um bloco se tem uma seção caso contrário, mas não mais de uma.

blocos caso contrário, se

Também é possível testar várias condições com um único bloco se adicionando cláusulas caso contrário se:

Bild3_por.PNG

O bloco primeiro verifica se x > 100 e retorna "Que número grande!", se for esse o caso. Se este não for o caso, ele verifica se x = 42. Em caso afirmativo, ele diz "Este é meu número da sorte!". Caso contrário, nada acontecerá.

Um bloco se pode ter qualquer número de seções caso contrário se. As condições são avaliadas de cima para baixo até que uma seja satisfeita, ou até que não haja mais condições.

blocos caso contrário, caso contrário

Blocos se podem ter tanto seções caso contrário se como caso contrário:

Bild4_por.PNG

A seção caso contrário garante que uma ação será executada mesmo se nenhuma das condições anteriores for verdadeira.

Uma seção caso contrário pode aparecer após qualquer número de seções caso contrário se, incluindo zero, e então será obtido um bloco se caso contrário perfeitamente normal.

Modificação de bloco

Apenas o bloco se simples e o bloco se caso contrário aparecem na barra de ferramentas:

Bild5_1_por.PNG

Bild5_2_por.PNG

Para adicionar cláusulas caso contrário se e caso contrário, clique no símbolo (+). As cláusulas caso contrário se - podem ser removidas com o símbolo (-):

Bild6_por.PNG

Observe que as formas dos blocos permitem qualquer número de sub-blocos caso contrário se a serem adicionados, mas apenas até um bloco se.

Processamento

Lógica

A lógica booleana é um sistema matemático simples que possui dois valores:

Os blocos lógicos no ROBO Pro Coding geralmente existem para controlar condições e loops.

Aqui está um exemplo:

Bild1_por.PNG

Se o valor da variável x for maior que 100, a condição é verdadeira e o texto "Que número grande!" é emitido. Se o valor de x não for maior que 100, a condição será falsa e "Isso não é muito grande." é emitido. Os valores booleanos também podem ser armazenados em variáveis e repassados para funções, assim como números, texto e valores de lista.

Blocos

Se um bloco espera um valor booleano como entrada, uma entrada ausente é interpretada como falsa. Os valores não booleanos não podem ser inseridos diretamente onde os valores booleanos são esperados, embora seja possível (mas não aconselhável) armazenar um valor não booleano em uma variável e, em seguida, inseri-lo na entrada de condição. Este método não é recomendado e seu comportamento pode mudar em versões futuras do ROBO Pro Coding.

Valores

Um único bloco com uma lista suspensa indicando verdadeiro ou falso pode ser usado para obter um valor booleano:

Operadores de comparação

Existem seis operadores de comparação. Cada um recebe duas entradas (geralmente dois números) e o operador de comparação retorna verdadeiro ou falso, dependendo de como as entradas são comparadas.

image-1623518116706.pngimage-1623518117182.png

image-1623518116894.pngimage-1623518116802.png

image-1623518116985.pngimage-1623518166030.png

Os seis operadores são: igual a, não igual a, menor que, maior que, menor ou igual a, maior ou igual a.

Operadores lógicos

O bloco e retorna verdadeiro se e somente se seus dois valores de entrada forem verdadeiros.

Bild8.PNG

O bloco ou retorna verdadeiro se pelo menos um de seus dois valores de entrada for verdadeiro.

Bild9.PNG

não

O bloco não converte uma entrada booleana em seu oposto. Por exemplo, o resultado é:

Bild10_por.PNG

falso

Se nenhuma entrada for feita, o valor é considerado verdadeiro, de modo que o bloco a seguir gera o valor falso:

Bild11_por.PNG

No entanto, não é recomendável deixar uma entrada em branco.

três operadores

Os três operadores se comportam como um bloco se-caso contrário em miniatura. São necessários três valores de entrada: o primeiro valor de entrada é a condição booleana a ser testada, o segundo valor de entrada é o valor que deve ser retornado se o teste resultar em verdadeiro, o terceiro valor de entrada é o valor que deve ser retornado se o teste resultar em falso. No exemplo a seguir, a variável cor é definida como vermelho se a variável x for menor que 10, caso contrário, a variável cor é definida como verde.

Bild12_por.PNG

Um bloco de três sempre pode ser substituído por um bloco se-caso contrário. Os dois exemplos a seguir são exatamente iguais.   

Bild13_por.PNG

Bild14_por.PNG

Processamento

Desbastar

A área "Controle" contém blocos que controlam se outros blocos colocados dentro deles são executados. Existem dois tipos de blocos de controle: blocos se caso contrário (descritos em uma página separada) e blocos que controlam a frequência com que seus interiores são executados. Os últimos são chamados de loops porque seu interior, também conhecido como corpo ou corpo do loop, é (possivelmente) repetido várias vezes. Cada execução de um loop é chamada de iteração.

Blocos para criar loops

repetir permanentemente

bloco de repetição permanente executa o código em seu corpo até que o programa termine.

repetição

O bloco repetição executa o código em seu corpo quantas vezes forem especificadas. Por exemplo, o bloco a seguir diz "Olá!" Dez vezes:

Bild1_por.PNG

repetir até

Imagine um jogo em que um jogador lança um dado e soma todos os valores lançados, desde que o total seja inferior a 30. Os blocos a seguir implementam este jogo:

  1. Uma variável chamada total recebe um valor inicial de 0.
  2. O loop começa verificando se o total é inferior a 30. Nesse caso, ele passará pelos bloqueios do corpo.
  3. Um número aleatório no intervalo de 1 a 6 é gerado (para simular um lançamento de dados) e armazenado em uma variável chamada lançamento de dados.
  4. O número lançado é dado.
  5. A variável total é aumentada pelo número de lançamento de dados.
  6. Quando o final do loop é alcançado, o controle volta para a etapa 2.

Bild2_por.PNG


Após o término do loop, todos os blocos subsequentes (não representados) são executados. No exemplo, o ciclo do loop termina após um certo número de números aleatórios no intervalo de 1 a 6 terem sido emitidos, e o valor da variável total tem a soma desses números, que é pelo menos 30.

repetir até

Loops repetir até repetem seu corpo até que uma condição seja atendida. loops de repetição são semelhantes, exceto que eles repetem seu corpo até que uma determinada condição seja atendida. Os blocos a seguir são equivalentes ao exemplo anterior porque o loop continua até que o total seja maior ou igual a 30.

Bild3_por.PNG

contagem de até

O loop decontagem de até incrementa o valor de uma variável, começando com um primeiro valor, terminando com um segundo valor e em etapas a partir de um terceiro valor, executando o corpo uma vez para cada valor da variável. Por exemplo, o programa a seguir imprime os números 1, 3 e 5.

Bild4_por.PNG

Como mostram os dois loops a seguir, que geram os números 5, 3 e 1, esse primeiro valor pode ser maior que o segundo. O comportamento é o mesmo, independentemente de o valor incremental (terceiro valor) ser positivo ou negativo.

Bild5_por.PNG

Bild6_por.PNG

para cada

O bloco para cada é semelhante ao loop de contagem de até, exceto que, em vez de usar a variável de loop em uma ordem numérica, ele usa os valores de uma lista em sequência. O programa a seguir gera cada elemento da lista "alfa", "beta" e "gama":

Bild7_por.PNG

Blocos de cancelar loop

A maioria dos loops é executada até que a condição de término (para blocos de repetição) seja satisfeita ou até que todos os valores da variável do loop sejam aceitos (para loops contar com e para cada). Dois blocos raramente usados, mas ocasionalmente úteis, oferecem opções adicionais para controlar o comportamento do loop. Eles podem ser usados com qualquer tipo de loop, embora os exemplos a seguir mostrem seu uso com o loop para cada.

continuar com a próxima interação

continuar com a próxima iteração faz com que os blocos restantes no corpo do loop sejam pulados e a próxima iteração do loop comece.

O programa a seguir imprime "alfa" na primeira iteração do loop. Na segunda iteração, o bloco continuar com a próxima iteração é executado, sendo a saída de "beta" ignorada. A última iteração imprime "gama".

Bild8_por.PNG

Cancelamento de loop

O bloco de cancelamento de loop permite uma saída antecipada de um loop. O programa a seguir gera "alfa" na primeira iteração e interrompe o loop na segunda iteração se a variável do loop for igual a "beta". O terceiro ponto da lista nunca é alcançado.

Bild9_por.PNG

Processamento

Matemática

Os blocos da categoria Matemática são usados para fazer cálculos. Os resultados dos cálculos podem ser usados como valores para variáveis, por exemplo. A maioria dos blocos de matemática está relacionada a cálculos matemáticos gerais e deve ser autoexplicativa.

Blocos

Números

Use o bloco de números para adicionar qualquer número ao seu programa ou para atribuir esse número como um valor a uma variável. Este programa atribui o número 12 à variável idade:

Bild1_por.PNG

Contas simples

Este bloco possui a estrutura valor-operador-valor. Os tipos de cálculo + , - , ÷ , × e ^ estão disponíveis como operadores. O operador pode ser selecionado no menu suspenso. Pode ser aplicado diretamente a números ou aos valores das variáveis. Exemplo:

Bild2.PNG

Dieser Block gibt Ergebnis 144 (12^2) aus.

Este bloco retorna o resultado 144 (12^2).

Contas especiais

Este bloco aplica o tipo de cálculo selecionado por meio do menu suspenso ao número ou ao valor da variável colocada atrás dele. As operações aritméticas disponíveis são:

Aqui, e é o número de Euler. Este bloco obtém a raiz quadrada de 16 e define a variável i como o resultado.

Bild3_por.PNG

Funções trigonométricas

Este bloco funciona de maneira semelhante ao bloco descrito acima, com a diferença de que as funções trigonométricas seno, cosseno, tangente e suas funções inversas são utilizadas como operações aritméticas. O número especificado ou o valor da variável especificada é usado na função selecionada no menu suspenso, e o resultado pode ser processado posteriormente no programa. Além disso, há o bloco arctan2 de X: ... Y: ..., que permite a saída de um valor de função do arctan2 na faixa de 360° com a ajuda de dois números reais (a serem inseridos como X e Y).

Constantes usadas com frequência

Este bloco funciona da mesma maneira que o bloco numérico, mas você não insere aqui o valor numérico. Em vez disso, constantes usadas com frequência (por exemplo, π) são pré-armazenadas. A constante pode ser selecionada no menu suspenso.

Restante de uma divisão

O bloco restante do ... é usado para produzir o restante de uma divisão. Este programa atribui o resto da divisão de 3:2, ou seja, 1, à variável restante:

Bild4_por.PNG

Arredondar

Com o bloco arredondar ..., um número decimal especificado ou o valor de uma variável especificada pode ser arredondado para um inteiro. Existem três opções para escolher no menu suspenso:

Avaliação de listas

Com o bloco ... da lista você pode emitir 

. Todas essas opções podem ser selecionadas no menu suspenso do bloco:

Bild5_por.PNG

Restringir valores de entrada

O bloco de restrição ... de ... a ... permite que os valores de entrada sejam restritos a um determinado intervalo. Antes de um valor de entrada ser processado posteriormente, é testado se ele está dentro do intervalo especificado. Existem três opções de como proceder com um valor inserido:

Neste exemplo, o bloco é usado para limitar o valor da velocidade variável às velocidades suportadas pelo motor:

Bild6_por.PNG

Gerar valores aleatórios

Ambos os blocos número aleatório de ... a... e a fração aleatória geram um valor aleatório. Assim, o bloco número aleatório de ... a... gera um número do intervalo definido. O bloco de fração aleatória, por outro lado, produz um valor entre 0,0 (incluído) e 1,0 (excluído).

Processamento

Texto

Exemplos de textos são:

"Coisa 1"
"12. Março de 2010 "
"" (texto vazio)
O texto pode conter letras (minúsculas ou maiúsculas), números, sinais de pontuação, outros símbolos e espaços.

Blocos

Criação de texto

O bloco a seguir cria o texto "Olá" e o salva na variável chamada Saudação:

Bild1_por.PNG

O bloco de criação de texto combina o valor da variável saudação e o novo texto "mundo" com o texto "Olámundo". Observe que não há espaço entre os dois textos, uma vez que não havia nenhum em ambos os textos originais.

Bild2_por.PNG

Para aumentar o número de entradas de texto, clique no símbolo (+). Para remover a última tarefa, clique no símbolo (-).

Alteração de texto

O bloco em ... anexo adiciona o texto dado à variável especificada. Neste exemplo, ele altera o valor da variável saudação de "Olá" para "Olá, você!":

Bild4_por.PNG

Comprimento do texto

comprimento do bloco conta o número de caracteres (letras, números etc.) contidos em um texto. A duração de "Nós somos#1!" é 12 e o comprimento do texto vazio é 0.

Bild5_por.PNG

Bild6_por.PNG

Verifique se há texto em branco

O módulo está vazio verifica se o texto especificado está vazio (tem comprimento 0). O resultado é verdadeiro no primeiro exemplo e falso no segundo exemplo.

Bild7_por.PNG

Bild8_por.PNG

Busca de texto

Esses blocos podem ser usados para verificar se um texto aparece em outro texto e, em caso afirmativo, onde ele aparece. Por exemplo, a primeira ocorrência de "l" em "Olá" é perguntada aqui, o resultado é 2:

Bild9_por.PNG

Este pede a última ocorrência de "l" em "Olá", que também resulta em 2:

Bild10_por.PNG

Independentemente de a primeira ou última ocorrência ser selecionada, este bloco retorna o resultado 0, pois "Olá" não contém um "z".

Bild11_por.PNG

Extração de texto

Extrair um único caractere

Isso resulta em "b", a segunda letra em "abcde":

Bild12_por.PNG

Isso dá "d", a penúltima letra em "abcde":

Bild13_por.PNG

Isso dá "a", a primeira letra em "abcde":

Bild14_por.PNG

Isso dá "e", a última letra em "abcde":

Bild15_por.PNG

Isso dá cada uma das 5 letras em "abcde" com igual probabilidade:

Bild16_por.PNG

Nenhum deles altera o texto do qual é extraído.

Extrair um trecho de texto

Com o bloco no texto ... corrente de caracteres, um trecho de texto pode ser extraído, começando com:

começa e com:

termina.

O exemplo a seguir extrai "abc":

Bild17_por.PNG

Ajustar a caixa de texto

Este bloco cria uma versão do texto de entrada que pode ser salvo tanto em

O resultado do seguinte bloco é "OLÁ":

Bild18_por.PNG

Os caracteres não alfabéticos não são afetados. Observe que este bloco não funciona no que se refere ao texto em idiomas que não diferenciam maiúsculas de minúsculas, como, por exemplo, o chinês.

Cortar (remover) espaços

O bloco a seguir remove espaços, dependendo do que está definido no menu suspenso (triângulo pequeno):

O resultado do bloco a seguir é "Oi você".

Bild19_por.PNG

Espaços no meio do texto não são afetados.

Emitir texto

O bloco emitir faz com que o valor de entrada seja exibido na janela do console:

Bild20_por.PNG

Em nenhum caso será enviado para a impressora, como o nome pode sugerir.

Emitir texto com formatação

Com o bloco formatar texto, os blocos podem emitir texto com conteúdo variável formatado. Todos os marcadores de posição {} no texto são substituídos pelo conteúdo das variáveis anexadas após o texto. A formatação pode ser especificada entre chaves. A formatação {:.1f}, por exemplo, exibe apenas a primeira casa decimal do ponto decimal na variável t .

image-1638518243441.png

Processamento

Listas

Como na linguagem cotidiana, uma lista no ROBO Pro Coding é uma coleção ordenada de elementos, como, por exemplo, uma lista de "tarefas" ou uma lista de compras. Os itens em uma lista podem ser de qualquer tipo e o mesmo valor pode aparecer mais de uma vez em uma lista.

Criar uma lista

criar lista com

Com a o bloco criar lista com, você pode inserir os valores iniciais em uma nova lista. Este exemplo cria uma lista de palavras e as coloca em uma variável chamada letras:

Bild1_por.PNG

Referimo-nos a esta lista como ["alfa", "beta", "gama"].

Isso mostra a criação de uma lista de números :

Bild2_por.PNG

Para fazer uma lista de cores:

Bild3_por.PNG

É menos comum, mas possível, fazer uma lista de valores de diferentes tipos:

Bild4_por.PNG

Alterar o número de entradas

Para alterar o número de entradas, clique ou toque no símbolo da engrenagem. Isso abrirá uma nova janela. Você pode arrastar os sub-blocos do item do lado esquerdo da janela para o bloco da lista à direita para adicionar uma nova entrada:

Embora o novo item tenha sido adicionado abaixo no exemplo, ele pode ser adicionado em qualquer lugar. Da mesma forma, sub-blocos de itens indesejados podem ser arrastados para a esquerda do bloco de listas.

Criar lista com elemento

Com o bloco criar lista com elemento, você pode criar uma lista que contém o número especificado de cópias de um elemento. Por exemplo, os blocos a seguir colocam as variáveis palavras na lista ["muito", "muito", "muito"].

Bild5_por.PNG

Verificar o comprimento de uma lista

está vazio

O valor de um bloco está vazio é verdadeiro se sua entrada for a lista vazia e falso se for qualquer outra coisa. Esta entrada é verdadeira? O valor do bloco a seguir seria falso porque as variáveis cores não estão vazias: Ele tem três elementos.

Bild6_por.PNG

Observe a semelhança com o bloco está vazio para o texto.

Comprimento de

O valor do bloco comprimento de é o número de elementos que estão na lista usados como entrada. O valor do bloco seguinte seria, por exemplo, 3, uma vez que a cor tem três elementos:

Bild7_por.PNG

Observe que o bloco comprimento de informa quantos elementos existem na lista, não quantos elementos diferentes existem nela. Por exemplo, o seguinte é 3, embora as palavras sejam compostas por três cópias do mesmo texto:

Bild8_por.PNG

Observe a semelhança com o bloco comprimento de para o texto.

Buscar elementos em uma lista

Esses blocos encontram a posição de um elemento em uma lista. O exemplo a seguir tem o valor 1 porque a primeira ocorrência de "muito" está no início da lista de palavras (["muito", "muito", "muito"]).

Bild9_por.PNG

O resultado do seguinte é 3 porque a última ocorrência de "muito" em palavras está na posição 3.

Bild10_por.PNG

Se o elemento não aparecer em nenhum lugar da lista, o resultado será o valor 0, como neste exemplo:

Bild11_por.PNG

Esses blocos se comportam da mesma maneira que os blocos para localizar letras no texto.

Obtenha elementos de uma lista

Recuperar um único item

Lembre-se da definição da lista de cores:

Bild3_por.PNG

O bloco a seguir recebe a cor azul porque é o segundo elemento da lista (contando a partir da esquerda):

Bild13_por.PNG

Ele fica verde porque é o segundo elemento (contando da extremidade direita):

Bild14_por.PNG

Este recebe o primeiro elemento, vermelho:

Bild15_por.PNG

Este resulta no último elemento, amarelo:

Bild16_por.PNG

Este seleciona aleatoriamente um elemento da lista, com uma probabilidade igual de retornar um dos elementos vermelho, azul, verde ou amarelo.

Bild17_por.PNG

Obter e remover um item

O menu suspenso é usado para alterar o bloco recuperar da lista ... para o bloco recuperar da lista ... e remover , que fornece o mesmo resultado, mas também altera a lista:

Bild18_por.PNG

Este exemplo define a primeira letra da variável como "alfa" e deixa as letras restantes (["beta", "gama"]) na lista.

Bild19_por.PNG

Remover uma entrada

Ao selecionar Remover no menu suspenso, o item à esquerda do bloco desaparecerá:

Bild20_por.PNG

Isso remove o primeiro elemento das letras.

Obter uma sublista

O bloco da lista ... obter sublista é semelhante ao bloco em obter da lista ..., exceto por extrair uma sublista em vez de um único elemento. Existem várias opções para especificar o início e o fim da sublista:

Bild21_por.PNG

Bild22_por.PNG

Neste exemplo, uma nova lista de primeiras letras é criada. Esta nova lista tem dois elementos: ["alfa", "beta"].

Bild23_por.PNG

Observe que este bloco não altera a lista original.

Adicionar elementos a uma lista

Substituir elementos de uma lista

O bloco na lista ... substituir substitui o elemento em uma determinada posição em uma lista por outro elemento.

Bild24_por.PNG

O significado das opções suspensas individuais pode ser encontrado na seção anterior.

O exemplo a seguir faz duas coisas:

  1. A listapalavras é criada com 3 elementos: ["muito", "muito", "muito"].
  2. O terceiro elemento da lista é substituído por "bom". O novo valor das palavras é ["muito", "muito", "bom"]

Bild25_por.PNG

Inserir elementos em um ponto específico de uma lista

bloco inserir na lista ... no bloco é chamado por meio do menu suspenso do bloco substituir na lista ...:

Bild26_por.PNG

Ele insere um novo elemento na posição especificada na lista, antes do elemento que estava anteriormente nesta posição. O exemplo a seguir (baseado em um exemplo anterior) faz três coisas:

  1. A lista palavras é criada com 3 elementos: ["muito", "muito", "muito"].
  2. O terceiro elemento da lista é substituído por "bom". O novo valor das palavras é ["muito", "muito", "bom"].
  3. A palavra "Seja" é inserida no início da lista. O novo valor das palavras é ["muito", "muito", "bom"].

Bild27_por.PNG

Dividir correntes e unir listas

Criar uma lista a partir de um texto

O módulo criar lista a partir do texto divide o texto especificado em partes com a ajuda de um delimitador:

Bild28_por.PNG

O exemplo acima retorna uma nova lista que contém três trechos de texto: "311", "555" e "2368".

Crie um texto a partir de uma lista

O módulo criar texto a partir de uma lista combina uma lista em um único texto com a ajuda de um separador:

Bild29_por.PNG

No exemplo acima, um novo texto é retornado com o valor: "311-555-2368".

Blocos relacionados

Impressão de uma lista

O módulo impressão na categoria Texto pode gerar listas. O resultado do programa a seguir é a saída do console mostrada:

Bild30_por.PNG

Konsole_por.PNG

Executar algo para cada elemento em uma lista

O bloco para cada na categoria Controle executa uma operação em cada item de uma lista. Por exemplo, este bloco imprime cada item da lista individualmente:

Bild31_por.PNG

Isso não remove os itens da lista original.

Veja também os exemplos para os blocos de cancelar loop .

Processamento

Uso

Com o ROBO Pro, a categoria de uso inclui blocos de codificação dos seguintes tipos:

Seleção de cor

Este bloco é usado como um valor de entrada quando uma cor é solicitada (por exemplo, em equilíbrio da cor pela câmera). Ao clicar ou tocar na cor, uma das 70 cores pode ser selecionada de uma paleta de cores.

Esperar

Esperar até que o tempo acabe

O bloco de espera [...] evita que o programa continue pelo tempo de espera especificado. A unidade de tempo pode ser selecionada no menu suspenso (triângulo pequeno) e a duração desejada da pausa no campo de entrada atrás dela.

Esperar com condição

No bloco esperar até, a pausa não está ligada ao tempo, mas ao cumprimento de uma condição (por exemplo, pressionamento de um botão). A condição é anexada ao bloco esperar até.

Código Python

Caso deseje integrar o código Python existente no ROBO Pro Coding, você pode inseri-lo no bloco de código Python. O programa então executa tudo o que foi escrito em Python no bloco. 

Iniciar

Além disso, o bloco iniciar quando é sujeito a uma condição. Somente quando esta condição é atendida o programa no corpo do bloco é iniciado.

Execução de função

Com a função executar ... em uma thread , a função selecionada pode ser executada em uma thread separada. Em alguns casos, essa medida pode permitir que um programa continue a responder às entradas e seja executado mais rapidamente.

Processamento

Variáveis

Usamos o termo variável como é usado em matemática e em outras linguagens de programação: um valor nomeado que pode ser alterado (variado). As variáveis podem ser criadas de diversas maneiras.

Menu suspenso

Ao clicar no símbolo suspenso (triângulo pequeno) de uma variável, o seguinte menu aparecerá:

Bild1_por.PNG

O menu oferece as seguintes opções.

Blocos

Determinar

O bloco definir atribui um valor a uma variável e cria a variável caso ela ainda não exista. Por exemplo, o valor da variável idade é definido como 12:

Bild2_por.PNG

Lembrar

O bloco recuperação fornece o valor armazenado em uma variável sem alterá-lo:

Bild3.PNG

É possível, porém uma má ideia, escrever um programa em que um bloco recuperação sem um conjunto de blocos anterior correspondente.

Alterar

O blcco alterar adiciona um número a uma variável.

Bild4_por.PNG

O bloco alterar é uma abreviatura para a seguinte construção:

Bild5_por.PNG

Exemplo

Observe o seguinte código de exemplo:

Bild6_por.PNG

O primeiro conjunto de blocos cria uma variável chamada idade e define seu valor inicial para o número 12. A segunda linha de blocos recupera um valor de 12, adiciona 1 a isso e armazena a soma (13) na variável. A mensagem é emitida na última linha: "Parabéns! Agora você tem 13 anos".

Processamento

Funções

As funções são usadas para tornar partes do código reutilizáveis e, assim, estruturar o código como um todo. Caso você preencha um bloco de funções, um novo bloco aparecerá no menu de funções com o mesmo nome deste bloco. Agora é possível inserir apenas o bloco com o nome da função no programa principal. Quando o programa é executado, este bloco encaminha para o código na função de mesmo nome e o processa.

Função simples

O bloco de funções simples pode ser usado para criar uma função com o nome inserido no campo de texto. A função pode conter qualquer número de variáveis que podem ser adicionadas usando-se o símbolo de engrenagem. Esta função envelhecimento adiciona 1 à variável idade:

Bild1_por.PNG

A função pode então ser usada no programa principal:

Bild2_por.PNG

Função com valor de retorno

Este bloco permite que você crie uma função com um valor de retorno. Este valor de retorno pode então ser usado no programa principal. Aqui está um exemplo:

Bild3_por.PNG