1 / 8

Exercício 1

Lição 4: Comunicação e Processamento paralelo Soluções de Programação: RoboLab programado com NQC. 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.

Download Presentation

Exercício 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lição 4: Comunicação e Processamento paraleloSoluçõ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 Tarefa principal 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); } }} Chama a 2ª Tarefa 2ª Tarefa, realizada em paralelo

  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 A entrada 1 tem um sensor de contato. 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;} }} Inicia os dois procedimentos Faz o robô realizar um quadrado Inicia e finaliza o movimento de 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. Exercício 3 • 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

  8. 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);} } } Exercício 3: Solução NQC Este PRGM deve ser instalado no robô mestre Este PRGM deve ser instalado no robô escravo

More Related