Buscar

Aula Robotica.ppt

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Robótica
Ciência da Computação
Unigran
*
Softwares Utilizados
Robolab:
Transferência do FirmWare
NQC:
Linguagem de Programação para robô Lego.
Bricx Command Center:
Editar e testar o programa.
Carregar o programa no robô.
*
Transmissor
Componente que utiliza luz infra-vermelha para transmissão dos programas entre o computador e o RCX. 
*
O LEGO Brick RCX
CPU do robô.
Permite até 5 programas armazenados na memória.
Permite visualizar sensores.
Controla motores.
*
O LEGO Brick RCX
Visualiza Valores dos sensores
Liga/desliga
Executa/para programa
Escolhe o programa a executar
*
A linguagem “Not Quite C” NQC
*
A linguagem NQC
(“not quite C”)
NQC é uma linguagem de programação desenvolvida por Dave Baum especialmente para robôs LEGO:
Subconjunto de Linguagem C.
NQC é fácil de usar.
Programar um robô em NQC é muito mais fácil do que programar um computador.
*
NQC: aspectos básicos
Cada programa em NQC deve ter uma “task main()” (tarefa principal):
Ela inicia a execução do programa.
Um programa pode ter diversas tarefas sendo executadas em “paralelo”:
multitasking.
Possui dois tipos de comandos:
De controle do robô.
De controle do fluxo do programa.
*
Exemplo 1
Meu primeiro programa NQC.
Anda para frente e para trás.
task main()
{
 OnFwd(OUT_A);	// Liga motor A
		OnFwd(OUT_C);	// Liga motor C
 Wait(400); // Espera 4 segundos
 OnRev(OUT_A+OUT_C);	// Reverte.
 Wait(400); 		// Espera 4 segundos
 	Off(OUT_A+OUT_C);	// Desliga motores.
}
*
Comandos de controle do robô
Comandos que acionam os sensores e atuadores do robô.
Permitem ligar e desligar os motores, ajustar a potência dos mesmos.
Permitem definir os sensores usados e ler os valores dos mesmos.
Usados em conjunto com os comandos de controle de fluxo.
*
Entradas e Saídas
Todo controle do robô é realizado sobre 3 entradas e 3 saídas.
OUT_A, OUT_B e OUT_C:
São as 3 saídas de controle do robô.
SENSOR_1, SENSOR_2 E SENSOR_3:
São as 3 entradas de sensores do robô.
*
Comandos de controle do motor
OnFwd(OUT_A);
Inicia a saída A
Se um motor estiver conectado a porta A, ele será ligado no sentido direto com máxima velocidade.
OnRev(OUT_A+OUT_C);
Reverte as saídas A e C.
Se existirem motores ligados a estas saídas, eles serão acionados no sentido reverso com máxima velocidade.
*
Comandos de controle do motor
Off(OUT_A+OUT_C);
Desliga os motores.
SetPower(força). 
A força é um número inteiro entre 0 e 7:
7 é o mais rápido.
0 o mais lento, mas ainda com movimento.
*
Comando “wait”
O comando wait faz com que a tarefa pare por um determinado tempo, dado em centésimos de segundos.
Wait(400); 
Note que as saídas são mantidas no mesmo estado pelo tempo em que a espera durar.
*
Definindo um sensor
Para definir um sensor é necessário especificar a porta e o tipo do sensor:
SetSensor(SENSOR_2,SENSOR_TOUCH);
Define um sensor de toque na porta 2.
SetSensor(SENSOR_1,SENSOR_LIGHT);
Define um sensor de luz na porta 1.
Para usar o sensor:
Use o nome da porta como variável:
SENSOR_2 == 1
*
Sensor de toque
Usado para detectar toques ou barreiras.
Retorna:
0 se aberto
1 se pressionado.
O sensor mais simples possível
*
Exemplo sensor de toque
Anda até bater em algo e o sensor de toque for pressionado:
task main()
{ SetSensor(SENSOR_1,SENSOR_TOUCH);
 OnFwd(OUT_A+OUT_C);
 until (SENSOR_1 == 1);
 Off(OUT_A+OUT_C);
}
*
Sensor de luz
Usado para cores em objetos, no chão e distâncias.
Retorna:
0 mínimo.
80 máximo.
Na prática:
< 30 é preto
> 50 é branco
*
Operadores
Operadores relacionais:
 = =,	<, <=, >	, >=
 !=	(diferente)
Operadores Booleanos:
 && (conjunção lógica)
 || (disjunção lógica)
 ! (negação)
*
Bricx Command Center
*
Templates
*
Fim
Referência:
Prof. Reinaldo Bianchi
Centro Universitário da FEI - 2007
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais