Modo Circuitos Programados Avançado
Transcrição
Modo Circuitos Programados Avançado
Programação de Robótica: Modo Circuitos Programados - Avançado - 1 Programação de Robótica: Modo Circuitos Programados - Avançado ATENÇÃO Lembramos que você poderá consultar o Manual de Referência do Software Modelix System caso haja dúvidas sobre como utilizar algum elemento do software. Assim você sempre utilizará da melhor forma possível a vasta gama de recursos que o programa possui. O conteúdo dessa apostila é voltado para usuários que já possuem conhecimentos na utilização tanto do software Modelix System quanto da UC modelixino 2.8 e que terminaram os exercícios propostos na apostila Programação de Robótica: Modo Circuitos Programados. Para fazer os exercícios será usada a mesma bancada, porém além dos componentes apresentados anteriormente, em alguns exercícios serão apresentados novos componentes. A partir daqui os exercícios serão de maior dificuldade, dando uma base melhor para que você faça projetos com maiores níveis de complexidade. Exercício 1: Calibrando o sensor de luz utilizando variáveis. Foi mostrado na apostila Programação de Robótica: Modo Circuitos Programados, para trabalhar numa faixa específica de variação com o sensor de luz, que é possível fazer a calibração para lugares com luminosidades muito diferentes. Para facilitar essa calibração, podemos utilizar o recurso de variáveis do software Modelix System que permite armazenar o valor lido pelo sensor e executar funções de acordo com cada valor. Será usada uma entrada analógica para o sensor de luz; nomeie-a como na figura abaixo: Adicione o recurso de variáveis para sua área de trabalho clicando no botão no canto superior direito da tela. Caso tenha alguma dúvida consulte a aula 10 da apostila Programação de Robótica: Modo Circuitos Programados. Precisaremos apenas das duas variáveis já definidas, x e y, mas quando necessário, é possível adicionar mais variáveis á sua lista clicando nas opções de variáveis globais e clicando em adicionar. Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics Programação de Robótica: Modo Circuitos Programados - Avançado 2 Obs.: Os valores das variáveis numa sub-rotina não podem ser aproveitados em outras sub-rotinas, portanto é preciso armazenar os valores em cada sub-rotina. Para guardar o valor lido pelo sensor, crie uma sub-rotina chamada Armazenar determinando x e y iguais à entrada do sensor de luz, porém para que a leitura seja mais precisa, adicione blocos aguardar dando tempo para a leitura. Nesse caso, faremos a leitura do primeiro valor e do segundo valor por 5 segundos cada, se necessário, aumente esse tempo. Inicie um fluxograma para chamar a sub-rotina e armazene os valores. Dessa forma, sempre que houver alguma variação de luminosidade, será possível armazenar esses valores e utilizar uma faixa mais adequada para a sua necessidade. Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics 3 Programação de Robótica: Modo Circuitos Programados - Avançado Exercício 2: Controlando saídas digitais com variáveis. Em aulas anteriores você viu como ligar e desligar os atuadores conectados ao Modelixino 2.8 utilizando fluxogramas. Nesse exercício, dividido em duas sub-rotinas, serão mostrados dois exemplos da utilização do recurso de variáveis do software Modelix System para controlar as saídas digitais. Na primeira sub-rotina, será apresentada uma forma de usar o acréscimo de valores em variáveis para ligar e desligar um LED e na segunda sub-rotina, será mostrado o controle do acionamento de um BUZZER em função de um valor armazenado após a leitura de um sensor de luz. Portanto, usaremos duas saídas digitais e uma entrada analógica. Adicione o recurso de variáveis para a sua área de trabalho. Começaremos fazendo uma contagem, para acionarmos os atuadores por um número pré-determinado de vezes, onde teremos um valor x inicial que será acrescido até que alcance um valor limite y e ao fim dessa contagem, será iniciada uma nova tarefa no fluxograma. Comece criando uma sub-rotina chamada liga/desl LED e com dois blocos Definir, atribua x=1 e y =10. Num bloco Decisão, faça a comparação: Se x = y. Enquanto na contagem o valor de x não alcançar o valor de y, o LED será ativado por 0,5 segundos, mas quando x for igual a y, a sub-rotina será finalizada. Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics Programação de Robótica: Modo Circuitos Programados - Avançado 4 Para fazer a contagem usaremos novamente um bloco Definir, onde faremos a operação matemática: x = x + 1, que acrescentará uma unidade ao valor de x sempre que o LED ligar e desligar, fazendo com que o valor de x aumente até se igualar ao valor de y. Monte o fluxograma abaixo: Agora, armazenaremos o valor lido por um sensor de luz e em função disso controlaremos o BUZZER. Crie uma sub-rotina chamada: liga/desl BUZZER e atribua para x o valor lido na entrada do sensor de luz. Esse valor armazenado servirá como uma faixa de luminosidade. Num bloco Decisão defina: Se x<Sensor Luz, que fará a comparação dos próximos valores lidos pelo sensor com o valor armazenado. Por fim, quando o valor lido pelo sensor for menor que o valor armazenado, o BUZZER será acionado e quando o valor lido for maior, o BUZZER será desligado, da mesma forma que no fluxograma representado ao lado: Faça as devidas conexões no modelixino 2.8, chame as duas subrotinas com um bloco iniciar na área de trabalho e execute o fluxograma. Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics 5 Programação de Robótica: Modo Circuitos Programados - Avançado Exercício 3: Usando o Reversor PWM em motores. Nesta aula será apresentado um importante componente da Modelix e que tornará os seus projetos ainda mais completos: O Reversor PWM. O Reversor PWM tem capacidade para controlar dois motores e, a partir dos comandos da UC, consegue acioná-los nos dois sentidos de rotação. Possui um único pino para alimentação, a qual recomendamos que seja de no máximo 6 volts em experimentos com os componentes Modelix, para garantir a segurança e bom funcionamento, mas também suporta maiores tensões. Para motores menores, ainda é possível utilizar a alimentação gerada pela UC, mas se forem usados motores mais potentes, utilize alimentação externa. Além disso, para o controle dos motores, existem cinco pinos centrais que devem ser conectados à UC modelixino 2.8 exatamente como identificados na placa, que são os pinos: 4, 5, 6, 7 e um GND. Identificação dos pinos: 1. Alimentação externa (respeite a polaridade) 2. Entrada do Motor 1. 3. Saídas da UC. 1 4. Entrada do Motor 2. 2 3 4 Neste exemplo será usado um motor MM-F e criaremos um fluxograma para controlar o seu sentido de rotação com a UC modelixino 2.8. Começaremos com as conexões físicas. Observe o procedimento abaixo: Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics Programação de Robótica: Modo Circuitos Programados - Avançado 6 Conecte o motor ao Reversor PWM nos pinos identificados como Motor 1 e conecte, a partir da UC modelixino 2.8, um pino de saída de 5 V ao “+” e um GND ao “-“ da alimentação. Faça a conexão dos pinos: 4, 5, 6, 7 e GND da UC aos pinos do Reversor PWM exatamente como estão indicados. Após o procedimento, suas conexões devem estar assim: Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics 7 Programação de Robótica: Modo Circuitos Programados - Avançado Antes de iniciarmos a elaboração do fluxograma, existem alguns ajustes específicos para o Reversor PWM a serem feitos no software Modelix System. Clique nas abas ao lado dos nomes das saídas 4 e 7 e selecione a opção em que as saídas 4 e 5 e as saídas 6 e 7 estão juntas. A saída 4/5 é a responsável pelo controle do Motor 1 e a saída 6/7 é a responsável pelo controle do Motor 2; então mude o nome das saídas para o de seus respectivos motores. Você pode testar os motores clicando nas saídas com o botão esquerdo do mouse, para que o motor gire para frente e com o direito, para que o motor gire reverso, como mostrado nas figuras do lado direito: Exercício 4: Usando software Modelix System para controlar motores com o Reversor PWM. Nessa aula você verá como controlar as saídas para os motores com software Modelix System. Utilizando o mesmo procedimento da aula anterior, prosseguiremos criando um fluxograma que nos permitirá alterar os sentidos de rotação dos motores e a potência aplicada a eles. Para o controle da potência utilizaremos o recurso de variáveis, portanto começaremos adicionando o recurso de variáveis à área de trabalho. Arraste um bloco Saída para a área de trabalho e vá até as últimas opções de saídas. Você verá que existem opções específicas para os motores. Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics Programação de Robótica: Modo Circuitos Programados - Avançado 8 Clicando no botão frente, o motor será acionado num sentido; clicando no botão rever., o motor reverterá o sentido de rotação; clicando no botão desl., o motor irá parar. Ao lado desses comandos, existe uma aba que nos permite definir um valor em porcentagem para a potência aplicada. Recomendamos que a porcentagem inicial seja de no mínimo 30%, pois motores mais potentes não funcionam com valores menores. É possível notar que o valor da potência pode ser controlado por variáveis e é exatamente o que faremos nesse exercício. O motor começará girando com 100% da potência e aos poucos essa potência será reduzida até que chegue a 10% e o motor pare. Quando isso acontecer, o motor começará a rodar novamente, porém no sentido reverso. Aos poucos a potência aumentará até o máximo e então o motor voltará a rodar no primeiro sentido, criando assim um loop. Comece atribuindo x=100 e num bloco decisão faça a condição para x=10. Se x não estiver com o valor 10, o motor será acionado e serão retiradas 10 unidades do valor de x através da expressão x=x-10. Num bloco Saída, acione o motor no botão frente, defina o valor da potência como sendo x% e em seguida adicione um bloco aguardar para 2 segundos. Dessa forma, a potência iniciará em 100% e a cada 2 segundos será reduzida em 10%. Veja o fluxograma ao lado: Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics 9 Programação de Robótica: Modo Circuitos Programados - Avançado Quando o valor de x chegar a 10, o motor ficará parado por um segundo. Em seguida, começará a rodar no sentido reverso com x% de potência e a cada 2 segundos serão aumentadas 10 unidades ao valor de x com a expressão: x=x+10, até que chegue a 100. Num bloco Decisão faça a condição x = 100. Se o valor de x não chegar a 100, o motor continuará funcionando no sentido reverso. Quando a potência chegar a 100% o motor ficará parado por um segundo e voltará ao primeiro sentido de rotação, criando um loop. Veja como ficou o fluxograma na imagem abaixo: Impressão ou reprodução total ou parcial deste conteúdo proibida por Lei ©2012 Modelix Robotics