Programaçãodo RobôZug Alex Vidigal Bastos www.decom.ufop.br/alex/unipac.html alexvbh@gmail.com 1
Agenda RecursosdoZug RobôZug Controlando o Motor LEDeBIP 2
Recursos do Zug 3
Recursos do Zug Dados Complementares Comprimento: 175 mm Largura: 145 mm Altura75 mm Peso Alimentação: 6 pilhas AA Software Basic Entradaparafonteexterna9 a 12v Compatível com Windows XP ou inferior Requer porta serial RS 232 no computador Caboserial (inclusono kit) Sensores: de toque frontal 220º sensor de luzambiente180º sensor de laser sensor de cores sensor de som para comando verbal 4
O robô Zug O controle do robô é feito por um microcontrolador programável na linguagem Basic, que é de fácil compreensão. Com o software Basic, é possível controlar todas as portas do microcontrolador. 5
O robô Zug 6
O robô Zug As portas de comunicação do microcontrolador são bidirecionais, podem ser saídas ou entradas depende somente da programação que você fizer. Se a porta for utilizada como saída, ela acionará um motor, um led ou um bip, se for utilizada como entrada, ela recebe sinal externo dos sensores. 7
Exemplo (lógica 0/1) 8
Controlando o motor A corrente elétrica deste sinal é baixa não acionando cargas com grande potência, portanto se faz necessário amplificar o sinal elétrico de saída. Utiliza-se um transistor, que se comporta como uma chave para ligar cargas, amplificar a corrente e acionar um relé de alta capacidade de corrente para mover o motor do robô. 9
Controlando o motor 10
Controlando o motor O microcontrolador controla os motores dos robôs, obedecendo a programação. Os sinais de acionamento dos motores saem pelas portas de comunicação, compostas pelas portas1até4. 11
Controlando o motor 12
Controlando o motor 13
LED e BIP O robô possui um led programável, um bip programável, eumgeradordesom; O acionamento do led e do bip, são feitos pelas portas correspondentesaospin0epin7; 14
LED e BIP O robô possui um led programável, um bip programável, eumgeradordesom; O acionamento do led e do bip, são feitos pelas portas correspondentesaospin0epin7; 15
LEDeBIP 16
LEDeBIP 17
Sensores de Toque O robô ZUG possui 2 entradas programáveis para ligar sensores de toque, detectando as colisões do robô com obstáculos: porta 5 e porta 6, ativos no nível lógico 1. Chamamos de entrada quando o microcontroladorrecebe sinal elétrico de fora, pelas portas de comunicação, de forma digital. Ligado ou desligado. 18
Sensores de Toque 19
Sensores de Toque 20
Programando o Robô Zug O que devemos saber para programar? A linguagem de programação Basic Step. 21
Programando o Robô Zug O que devemos saber para programar? A linguagem de programação Basic Step. 22
Alguns comandos Output - Exemplo: output 7 -significa que a porta 7 é configurada como uma saída. Pin -Exemplo: Pin 7 = 0 -significa que a porta 7 é desligada. 23
Temporizando uma porta saída pause - Exemplo: pause 2000 - faz o programa esperar 2 000 milisegundos(ms). goto - Exemplo: retorno:... goto retorno -ele salta para onde está escrito a palavra retorno, reiniciando todo o ciclo. 24
Exercício Nosso objetivo agora é fazer um pisca-pisca com o ledda porta 7 do microcontroladordo robô. Vejamos a estratégia para a execução do programa. 1º ligaro led; 2º pause ; aguardar 2 segundos. 3º desligaro led; 4º pause ; aguardar 2 segundos. 5º retornar ao primeiro passo 25
Comentários É possivelescrever comentários na área de trabalho, ao lado da programação, desde que precedido por apóstrofo ( ). Com a presença do apóstrofo o hardware desconsidera, não entende como instrução. Este hábito ajuda o estudante de robótica e programação a entender o programa. Exemplo: output 7 declara a porta como saída 26
Gerando Sons O robô possui um BIP na porta 0 e um conector para ligação externa de um altofalantede 8 ohms. 27
Exercício Nosso objetivo agora é fazer um programa para fazer um bip a cada 1 segundo; desligando e ligando o bip. 28
Recebendo Sinais Externos O microcontroladordo robô percebe sinais externos vindos dos sensores, desde que as portas sejam devidamente programadas. O primeiro passo é configurar a porta para ser uma entrada, com o comando input. Vamos utilizar a entrada ligada ao sensor da porta 5 ladodireitoueé o sensor de toque frontal do lado direito; 29
Exemplo Fazercom queo robô ligue o led(porta 7),ao toque do sensor frontal. Como que o microcontroladorvai saber que tocamos no sensor da porta 5? if pin5 = 1 then led 30
Exemplo 31
Exercício 1) Desenvolva um programa para o led desligar quando pressionar o sensor frontal? 2-Façaoledpiscarquandopressionarosensorfrontal. 3 - Faça um programa para ligar o led, quando pressionar o botão frontal, e desligar quando pressionar a 2ª vez. 4-Façaoprogramaligaredesligarobipacadatoquenosensor alternadamente. 32
Recebendo Sinais Externos O microcontroladordo robô percebe sinais externos vindos dos sensores, desde que as portas sejam devidamente programadas. O primeiro passo é configurar a porta para ser uma entrada, com o comando input. Vamos utilizar a entrada ligada ao sensor da porta 5 ladodireitoueé o sensor de toque frontal do lado direito; 33
Programando os motores 34
Programando os motores O desenho ao lado mostra como devemos programar os motores M1 e M2, visto o robô de cima. O motor 1 (M1) fica a direita, o motor 2 (M2) fica a esquerda. pin1 = programaa porta1 pin2 = programaa porta2 pin3 = programaa porta3 pin4 = programaa porta4 35
Exercícios -Motores Programa 1 -Robô anda para frente um tempo Programa 2 -Robô anda para trás um tempo Programa 3 -Robô gira 90,com uma só roda Programa 4 -Robô gira no próprio eixo 36
Exercícios -Motores 1 -Quantos milisegundossão necessários para o robô girar 90? 2 -Quantos milisegundossão necessários para o robô girar 180? 3 -Quantos milisegundossão necessários para o robô girar 360? 37
Exercícios -Obstáculos Como vamos programar o robô para desviar de obstáculos? É simples. Vamos passo a passo. Em ordem, como proceder na programação. 1 O robô vai em frente; 2 Bate o sensor do lado direito (porta 5); 3 Desligam-se os motores, e o robô pára; 4º O robô dá uma ré (anda para trás); 5º O robô gira 90 para a esquerda. 38
Perguntas 39