LEGO MINDSTORMS NXT SUN SPOT Uso de tecnologias para o auxílio de professores do ensino médio e de graduações na área de informática em disciplinas exatas Gustavo Wagner – [email protected] Allyson Carneiro - [email protected] O que é o MindStorms? Robô programável da Lego; Contém peças tais como sensor de luz, de voz, motor; Pode-se usar as peças comuns do Lego; Fácil uso por adultos e crianças: não requer conhecimento prévio de hardware Robótica Como a Mente Funciona (Steven Pinker): mostra a dificuldade de replicarmos ações e reações simples de um ser humano para uma máquina Leis de Isaac Azimov (Eu, robô): 1ª lei: Um robô não pode ferir um ser humano ou, por omissão, permitir que um ser humano sofra algum mal. 2ª lei: Um robô deve obedecer as ordens que lhe sejam dadas por seres humanos, exceto nos casos em que tais ordens contrariem a Primeira Lei. 3ª lei: Um robô deve proteger sua própria existência desde que tal proteção não entre em conflito com a Primeira e Segunda Leis. 3 Por que a robótica fascina tanto? Filosofando: Vontade de criar, brincar de ser Deus? Tentativa do ser humano se auto-modelar? Implementação de abstrações/modelos Melhor ver o programa executando do que simplesmente modelagem UML :) 4 Algumas peças do MindStorms Motor e sensores Motor: Sensor de som: Sensor de toque: Sensor de luz: Algumas possibilidades de Robôs Algumas possibilidades de Robôs Programando o MindStorms Visualmente, via ferramenta da Lego; Ou com Java, usando o Lejos ou TinyVM; Algumas possíveis disciplinas Programação Progr. I, Java (Lejos), C, C++, Smalltalk (Bot-Kit), entre outras; Estrutura de Dados: Fila, Pilha, entre outros; Tópicos avançados: Controle do robô via celular com JME; 10 Algumas possíveis disciplinas Física Mecânica Clássica, entre outros Matemática Trigonometria, entre outros 11 Exemplo de Roteiro I Disciplina: Estrutura de Dados Assunto: Fila Problema: Remover todas as bolas de uma fila, na ordem Solução: Usar o MindStorms para recuperar as bolas ... Código fonte: public class Fila { Pilot pilot; TouchSensor bump = new TouchSensor(SensorPort.S1); public void go() { pilot.travel(20, true); while (pilot.isMoving()) { if (bump.isPressed()) pilot.stop(); 12 ... Exemplo de Roteiro II Disciplina: Java Assunto: Membros static Problema: ... Solução: ... Código fonte: public class MembroStatic { Pilot pilot; TouchSensor bump = new TouchSensor(SensorPort.S1); public void go() { pilot.travel(20, true); while (pilot.isMoving()) { if (bump.isPressed()) pilot.stop(); 13 ... Uso do MindStorms atualmente Atualmente é usado em várias universidades, tais como: ITA: Robótica; Universidade de Mississipi: Prog. I; IESP: Linguagem de Programação II Java; Entre outras; MindStorms + Sun Spot Tecnologias complementares USB 802.15.4 Bluetooth 15 Próximos passos Fazer integração Sun Spot e Lego MindStorms; Definir assuntos e primeiro colégio para aplicar os roteiros: Provavelmente GEO Desafio: batalha de robôs entre alunos de diferentes instituições; 16 www.gustavowagner.com Uso de tecnologias para o auxílio de professores do ensino médio e de graduações na área de informática em disciplinas exatas Gustavo Wagner – [email protected] Allyson Carneiro - [email protected]