Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRaphael Pardo Alterado mais de 9 anos atrás
1
Lição 4: Comunicação e Processamento paralelo Soluções de Programação: RoboLab programado com NQC
2
Exercício 1 Sempre o robô deve ir para frente (fwd) por 1 seg. e irá realizar um giro para o lado do motor C por 0,85 seg. Sempre que o sensor 1 for pressionado, o robô irá para trás (rev) por 0,5 seg. e irá realizar um giro por 0,85 seg. para o lado do motor A, em seguida irá para a frente.
3
Exercício 1: Solução NQC task main() {SetSensor(SENSOR_1,SENSOR_TOUCH); start check_sensors; while (true) {OnFwd(OUT_A+OUT_C); Wait(100); OnRev(OUT_C); Wait(85); } task check_sensors() {while (true) {if (SENSOR_1 == 1) {OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); Wait(85); OnFwd(OUT_C); } }} 2ª Tarefa, realizada em paralelo Tarefa principal Chama a 2ª Tarefa
4
Exercício 2 Sempre o robô deve realizar um movimento de “quadrado”. Sempre que o sensor 1 for tocado, o robô deve ir para trás e girar no sentido contrário do “quadrado”.
5
Exercício 2: Solução NQC task main() {SetSensor(SENSOR_1,SENSOR_TOUCH); start check_sensors; start move_square; } task move_square() {while (true) {OnFwd(OUT_A+OUT_C); Wait(100); OnRev(OUT_C); Wait(85);} } task check_sensors() {while (true) {if (SENSOR_1 == 1) {stop move_square; OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); Wait(85); start move_square;} }} A entrada 1 tem um sensor de contato. Inicia os dois procedimentos Inicia e finaliza o movimento de quadrado Faz o robô realizar um quadrado
6
Mensagens Os comandos disponóveis para o kit, com relaçãoo a comunicação, são: SendMessage(n) : transmite um valor de 0 a 255, por infra-vermelho. Os outros robôs recebem a mensagem e a armazenam. Message() : utilizado para receber mensagem ClearMessage() : torna o valor da mensagem recebida igual a 0. SetTxPower(TX POWER LO) ou SetTxPower(TX POWER HI) : seta a potência de transmissão dos robôs. Dê preferência a potência baixa.
7
O robô mestre ( master ) deve enviar 3 comandos diferentes a cada 2 seg. O escravo ( slave )deve ir para frente, depois ir para trás e depois parar, ao comando do mestre Exercício 3
8
Exercício 3: Solução NQC task main() // MASTER { SendMessage(1); Wait(200); SendMessage(2); Wait(200); SendMessage(3); } task main() // SLAVE { while (true) { ClearMessage(); until (Message() != 0); if (Message() == 1) {OnFwd(OUT_A+OUT _C);} if (Message() == 2) {OnRev(OUT_A+OUT _C);} if (Message() == 3) {Off(OUT_A+OUT_C); } } Este PRGM deve ser instalado no robô mestre Este PRGM deve ser instalado no robô escravo
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.