PROJETO LEGO MINDSTORMS EV3 Manual de Instruções da Linguagem de Blocos LEGO Laboratório de Sistemas Embarcados e Críticos (LaSEC) Lucas Mitsuo Mandai Setembro/2014 Sumário • • • • • • Introdução Lego MindStorms EV3 Home Edition Como gerenciar o Projeto no software Conjunto de Instruções Exemplos Carregando seu programa no Brick Introdução O Lego Mindstorms EV3 é muito mais do que um simples brinquedo ele é na verdade um kit de ampla utilidade concebido para fazer estudantes a pensarem sobre padrões e estruturas não apenas de robótica, mas também de programação e resolução de problemas de forma mais geral. Para programar a Lego disponibiliza um software que oferece uma linguagem de programação em blocos onde cada um desses blocos apresenta funcionalidades que permitem a execução de comandos específicos permitindo uma interação fácil e intuitiva com o software. Neste guia encontraremos um passo a passo de como começar a criar um projeto no EV3 software e uma breve descrição de seus principais blocos de comando. Lego MindStorms EV3 Home Edition A primeira vista o software LEGO MINDSTORMS EV3 Home Editon apresenta em seu Lobby uma variedade de opções como a área de Robot Missions onde você pode começar aprender, construir e programar os 5 principais modelos de robôs, a área que contém alguns vídeos de auxilio aos iniciantes e a área EV3 Help onde há um guia do software em geral, inclusive suas ferramentas e blocos programáveis . Neste manual trataremos apenas do que convém a criação de um projeto dando ênfase a familiarização do usuário com o ambiente de programação. Lego MindStorms EV3 Home Edition • Para começar a primeira coisa que deve ser feita é baixar e fazer a instalação do software. Para isso basta acessar o link do site da Fatec: • http://goo.gl/ozvqsH • ou baixar diretamente do site da Lego através do link: http://www.lego.com/enus/mindstorms/downloads/software/ddsoftwaredownload/d ownload-software/ • Por fim execute e instale o software normalmente seguindo as instruções. Como gerenciar o projeto no software Depois de abrir o EV3 Software o primeiro passo para dar inicio ao seu projeto é clicando em Add Project ou clicando no menu File e selecionando a opção New Project. Caso já tenha um projeto pronto basta ir no menu File e selecionar a opção Open Project. Após feito um desses procedimentos você será direcionado ao ambiente de programação Como gerenciar o projeto no software Para criar um programa selecione a aba na qual o bloco de comando que você deseja utilizar esteja localizado, em seguida clique no bloco e arraste até a tela de programação de forma a conecta-lo com o bloco Start. Adicione quantos blocos forem precisos, o seu programa será executado de acordo com a ordem em que seus blocos estão dispostos na tela (da esquerda para direita). Como gerenciar o projeto no software Após concluir seu projeto, para salvar clique no menu File no canto superior direito e selecione a opção Save Project As ou clique em Save Project na barra de ferramentas. Feito isso seu programa estará pronto para uso, agora é só conectar o Brick ao computador, transferir o programa para o robô e executá-lo . Conjunto de Instruções O EV3 software possui uma variedade de blocos programáveis permitindo criar diversas sequências de programação fazendo com que seu Lego Mindstorm possa se comportar das mais criativas e diferentes formas possíveis. Em seguida serão mostrados os blocos de comandos básicos para que você possa começar a elaborar seus primeiros programas e exercitar seus algoritmos utilizando o Mindstorm EV3. Conjunto de Instruções • • Nome: Start Descrição: O bloco Start marca o inicio da sequência de programação fazendo com que seu programa inicie automaticamente. Se o seu projeto não iniciar com o bloco Start nenhum bloco de comando será executado. Conjunto de Instruções • • • Nome: Medium Motor Descrição: Localizado na aba Action (verde) O bloco Medium Motor controla o “motor médio” que é motor menos potente, porém mais rápido do Mindstorm EV3. Parâmetros configuráveis: 1- Permite escolher o modo de rotação do motor , sendo eles: Off: Motor parado. On: Girar motor até que o próximo comando entre em ação. On for Seconds: Gira o motor por uma quantidade determinada de segundos. On for Degrees: Gira o motor por uma quantidade de graus determinada, sendo que 360 graus equivale a um giro completo. On for Rotations: Gira o motor por um quantidade de rotações. 2- Permite escolher a força que o motor irá girar, sendo que se usar valores negativos a rotação será inversa. 3- Permite escolher a quantidade de rotações, graus ou segundos que o motor executará dependendo do modo escolhido. 4- Permite escolher se depois que o comando for executado o motor parará instantaneamente ou por inércia. 5- Permite selecionar a porta na qual o motor esta conectado com o Brick (centro de controle do Lego Mindstorms EV3). Conjunto de Instruções • • • Nome: Large Motor Descrição: Localizado na aba Action (verde) o bloco Large Motor Controla um único Large motor (motor grande usado para girar a roda do robô) possibilitando especificar a quantidade de força e giro de uma das rodas. Parâmetros configuráveis: 1- Permite escolher o modo de rotação do motor (Off, On, On for Degrees, On for Seconds e On for Rotations). 2- Permite escolher a força que o motor irá girar. 3- Permite escolher a quantidade de rotações, graus ou segundos que o motor executará dependendo do modo escolhido. 4- Permite escolher se depois que o comando for executado o motor parará instantaneamente ou por inércia. 5- Permite selecionar a porta na qual o motor esta conectado com o Brick. Conjunto de Instruções • • • Nome: Move Steering Descrição: Localizado na aba Action (verde) O Move Sterring controla dois Large Motors simultaneamente e possibilita configurar a direção em que você deseja que seu robô se locomova. Parâmetros configuráveis: 1- Permite escolher o modo de rotação do motor (Off, On, On for Degrees, On for Seconds e On for Rotations). 2- Permite escolher a direção do robô, configura a intensidade da curva desejada. Se deixar o valor como zero o robô se locomoverá reto. 3- Permite escolher a força que o motor irá girar. 4- Permite escolher a quantidade de rotações, graus ou segundos que os motores executarão dependendo do modo escolhido. 5- Permite escolher se depois que o comando for executado os motores pararão instantaneamente ou por inércia. 6- Permite selecionar as portas na qual os motores estão conectado com o Brick. Conjunto de Instruções • • • Nome: Move Tank Descrição: Localizado na aba Action (verde) Controla dois Large Motors , o que o difere do bloco Move Steering é que neste você pode escolher a força com que cada um dos motores funcionarão Parâmetros configuráveis: 1- Permite escolher o modo de rotação do motor (Off, On, On for Degrees, On for Seconds e On for Rotations). 2- Permite escolher a força de cada um dos motores podendo por exemplo fazer com que uma roda gire para frente e a outra gire para trás 3- Permite escolher a quantidade de rotações, graus ou segundos que os motores executarão dependendo do modo escolhido. 4- Permite escolher se depois que o comando for executado os motores pararão instantaneamente ou por inércia. 5- Permite selecionar as portas na qual os motores estão conectado com o Brick. Conjunto de Instruções • • • Nome: Wait Descrição:Localizado na aba Flow Control (laranja) o Wait faz seu programa esperar por alguma condição antes de poder continuar para o próximo bloco da sequência. Parâmetros configuráveis: 1- Seleciona o modo de espera. Existe os modos de espera Time, Sensor Compare Modes e Sensor Change Modes. Modo Time: espera por um determinado período de tempo em segundos. Se for usar um Wait para um sensor então você poderá selecionar o modo Compare que espera até chegar a determinado valor de comparação ou selecionar o Change que espera até mudar para um novo valor determinado 2- Entrada de dados onde você pode especificar os valores de tempo, mudança e comparação entre parâmetros dos sensores Conjunto de Instruções • • • Nome: Loop Descrição:Localizado na aba Flow Control (laranja) este bloco funciona como uma estrutura de repetição fazendo com que o conteúdo dentro dele se repita de acordo com a configuração definida, podendo se repetir por uma quantidade de tempo determinada, repetir para sempre ou até que atinja uma condição imposta pelos sensores. Parâmetros configuráveis: 1- Permite escolher um nome para o Loop 2- Permite especificar qual a condição para finalizar o Loop Conjunto de Instruções Nome: Switch • Descrição: O bloco Switch funciona como uma estrutura de decisão. Se a estrutura de decisão for verdadeira o Switch executará a sequência de programação da parte de cima se for falsa executará a sequência de programação da parte de baixo • Parâmetros configuráveis: 1- Escolhe qual modo de decisão o programa executará • Conjunto de Instruções Nome: Color Sensor • Descrição: Localizado na aba Sensor (amarela), o bloco Color Sensor é utilizado para comparar ou medir cor ou intensidade de luz • Parâmetros configuráveis: 1- Escolhe o modo que deseja utilizar o sensor de cor podendo medir (Measure) ou comparar (Compare) uma determinada cor, intensidade de luz refletida ou a intensidade de luz do ambiente. Também calibrar (Calibrate) o sensor definindo o mínimo e o máximo de intensidade de luz que o sensor deverá usar 2-entrada e saída de dados que mudarão dependendo do modo de comando escolhido. • Conjunto de Instruções • • • Nome: Timer Descrição: Localizado na aba Sensor (amarela), o Timer pode ser usado para medir e comparar intervalos de tempo em segundos. Parâmetros configuráveis: 1- Escolhe o modo que queira que o timer seja executado, podendo medir (measure) um intervalo de tempo, comparar (compare) um intervalo de tempo ou resetar o tempo afim de que comece a contagem novamente 2-Entrada e saída de dados que dependerão do modo selecionado. Você pode entrar com valores que definiram o intervalo de tempo ou usar as saídas de dados para conectar o Timer com outros blocos utilizando os valores configurados. Conjunto de Instruções • • • Nome: Sound Descrição: Localizado na aba Action (verde) este bloco permite que seu Brick emita sons de acordo com o modo escolhido que pode ser o Play File, Play Tone e Play note. Parâmetros configuráveis: 1: Permite escolher os modos de sons Play file: neste modo você pode escolher arquivos de sons pré gravados disponibilizados em uma lista localizado no campo File Name. Play Tone: este modo permite tocar um tom de uma frequência sonora especifica Play Note: este modo permite tocar uma nota musical selecionada. 2: Entrada de dados onde você pode, por exemplo, configurar o volume, a frequência ou nota musical e o tipo de quantidade de vezes que o som será executado. Exemplos • Exemplo 1: • O exemplo acima utiliza os blocos Move Stereeing, Wait e Sound. O primeiro bloco faz o robô andar para frente com 25% de sua força. O segundo bloco espera até que o sensor de cor reflita uma intensidade de luz menor que 30 (quanto mais perto do zero mais próximo da cor preta). O terceiro bloco para o robô e em seguida o quarto bloco faz ele dizer stop. • Exemplos • Exemplo 2: • No exemplo acima foi utilizado o bloco de comando Loop e Move Steering Esta sequência de programação fará o robô andar para frente com 25% de sua força durante duas rotações do motor completas e em seguida ele virará em torno do próprio eixo executando apenas um rotação de motor completa, como está dentro do loop esta sequência será executada repetidas vezes ilimitadamente fazendo com que o robô siga para varias direções diferentes. • Exemplos Exemplo 3: Este programa utiliza os blocos Loop, Switch e Move Steering. Existe um Switch que usa o modo Compare Ambient Light Intensity do sensor de cor que está configurado para que se a luz do ambiente tiver uma intensidade maior que 20 o robô ande para frente e se a intensidade de luz do ambiente detectada pelo sensor de cor for menor que 20 então o robô para, ou seja, se a luz do ambiente estiver acesa o robô anda e se a luz estiver apagada o robô para. Isso ocorrerá ilimitadas vezes porque toda a sequencia de programação está dentro do bloco Loop . Carregando seu programa no Brick • • • • Para poder executar seu programa é preciso passa-lo para o Brick. Você poderá fazer isso conectando o Brick com o computador através de um cabo USB ou utilizando tanto Bluetooth quanto Wi-Fi. Neste caso usaremos a conexão via USB, para isso insira o conector mini USB na porta PC do Brick e insira o conector USB no computador. Certifique-se de que o Brick está ligado e verifique no EV3 software a área Available Bricks se a conexão está estabelecida. Agora basta clicar em Download para o seu programa ser transferido.