Um robô por aluno: uma realidade possıvel
Transcrição
Um robô por aluno: uma realidade possıvel
Um robô por aluno: uma realidade possı́vel Rafael V. Aroca1 , Renata Pitta1 , Aquiles Burlamaqui 1 , Luiz M. G. Gonçalves1 1 DCA – Universidade Federal do Rio Grande do Norte (UFRN) Natal – RN – Brazil {aroca,pitta,aquiles,lmarcos}@natalnet.br Abstract. We present here some works developed at the NatalNet laboratory that make possible projects such as “one robot per student” from the economical and technical points of view. The described solution can be applied for students of all ages, making the system suitable for pre-scholar activities, basic level teaching, high school, technical courses and graduate courses. The low cost of the didactic robot presented in this work is due to the fact that it does not have a processor, as it relies on the mobile phone of its user as the control unit (in Brazil, there is more than one mobile phone for each inhabitant). Moreover, a user-friendly programming platform is also presented. Resumo. Apresentamos neste artigo alguns trabalhos desenvolvidos no laboratório NatalNet que tornam viável iniciativas do tipo “um robô por aluno” tanto do ponto de vista econômico quanto técnico. A solução descrita pode ser usada com alunos de todas as idades, possibilitando seu uso em atividades pré-escolares, no ensino básico, fundamental, médio, técnico e superior. O baixo custo do robô didático discutido neste trabalho deve-se ao fato deste não possuir processador, já que ele conta com o telefone celular do usuário como unidade de controle (no Brasil existe mais de um telefone celular para cada habitante). Além disto, uma plataforma de programação amigável também é apresentada. 1. Introdução O uso de robótica em ambientes educacionais vem se tornando cada vez mais presente nos mais diversos nı́veis de ensino, desde o ensino para pequenas crianças até na graduação e pós graduação. De fato, diversos autores já demonstraram que o uso de robôs na educação proporciona ambientes estimulantes e motivadores [Soto et al. 2006, Hamblen and Hall 2004, Alves et al. 2011, Howard and Graham 2007], além de uma experiência única de aprendizado [Weinberg and Yu 2003]. De fato, Rawat e Massiha demonstram dados confirmando que o retorno dos alunos em aulas que envolvem robótica é “supreendentemente positivo” [Rawat and Massiha 2004]. Contudo, existem dois principais problemas para a adoção mais abrangente de tecnologias de robótica na educação: os altos custos e a dificuldade de uso. Com relação aos custos, Alves et al também alertam que os altos custos de robôs podem impedir seu uso em salas de aula [Alves et al. 2011, Galvan et al. 2006]. Além do mais, Lumsden e Ortega-Sanchez afirmam que existe uma escassez de plataformas robóticas de baixo custo [Lumsden and Ortega-Sanchez 2010]. Este problema é ainda mais grave no Brasil, onde muitas escolas e alunos sofrem dificuldades econômicas, não podendo adquirir facilmente robôs ou kits de robótica. A questão de facilidade de uso também é peça fundamental para o sucesso de projetos de robótica educacional. O uso do sistema deve ser fácil não apenas para os alunos, mas também para os professores, já que muitos educadores não possuem grande experiência com softwares de robótica. Neste sentido, Dipietro et al explicam que quando o software de um sistema computacional é intuitivo, a adoção em massa deste produto é uma consequência [Dipietro et al. 2008], citando o exemplo do tablet pioneiro, o iPad da Apple. Neste artigo propomos uma solução para esses problemas através do uso de um robô de baixo custo (cerca de R$ 50,00) que utiliza o telefone celular dos alunos como unidade de controle. Como o Brasil possui mais de 1,3 telefones celulares para cada habitante [Teleco 2012a], acreditamos que caso um aluno não possua um telefone celular, ele poderá obter um facilmente, mesmo que seja um modelo antigo que alguém não use mais. Para facilitar o uso, todo ambiente de programação do robô fica embarcado no celular, e pode ser acessado por qualquer computador via web, dispensando a necessidade de instalação e configuração de softwares especı́ficos. O ambiente permite tanto programação gráfica em alto nı́vel conectando blocos, quando em baixo nı́vel usando várias linguagens de programação. Com esta solução, esperamos tornar viável uma realidade de “um robô por aluno”. Este texto está organizado da seguinte forma: primeiro apresentamos na seção 2 alguns trabalhos relacionados que incluem sistemas robóticos de baixo custo e ambientes de programação. Em seguida, a seção 3 apresenta nossa proposta de solução com detalhes para ser reproduzida. Finalmente, a seção 4 apresenta nossas considerações finais. 2. Trabalhos relacionados A ideia de um “robô por aluno” (URA), que pode ser uma extensão do projeto já existente “um computador por aluno” (UCA), foi sugerida várias vezes pelo Prof. Dr. Aquiles Burlamaqui em comunicações pessoais realizadas no laboratório NatalNet-UFRN. Uma proposta semelhante feita pelo Prof. James McLurkin, de uma universidade americana, ganhou destaque da imprensa internacional no final do ano de 2011, bem como recebeu diversos prêmios pela proposta de um robô por aluno de engenharia. McLurkin defende um curriculum acadêmico onde cada aluno deve ter seu próprio robô, permitindo assim testes e estudos de lições individuais, bem como a realização de trabalhos em equipe [Rice University News 2011]. Para tanto, McLurkin criou uma plataforma robótica de baixo custo (segundo o autor) chamada R-One que custa cerca de US$200,00. O autor também abriu uma empresa e pretende comercializar este robô a partir de 2012. Ele acredita que este custo possibilite a adoção em massa destes robôs em escolas. No momento, cada estudante novato da universidade de Rice, nos EUA, recebe seu próprio robô R-One no primeiro dia de aula [Rice University News 2011]. Também com a intenção de possibilitar que cada aluno tenha seu próprio robô para fazer lições em casa, Lauwers desenvolveu o Finhch, um robô com custo de US$99,00 já à venda no mercado americano [Inovação Tecnológica 2012]. Este robô inclui sensores de temperatura, luminosidade, acelerômetro, sensor de toque, LEDs, câmera, microfone e alto falantes. Segundo Lauwers, o foco deste robô não é para ensino de robótica, mas para facilitar e tornar mais atrativo o aprendizado de programação de computadores (na versão atual usando Java). A intenção desta iniciativa é tornar aulas de programação mais interessantes, dispensando a necessidade dos alunos construı́rem seus próprios robôs [Inovação Tecnológica 2012]. Deve-se notar que este robô não é autônomo: ele não possui baterias e opera somente quando conectado a um PC via cabo USB. Todos algoritmos são executados no PC, que envia comandos para leitura de sensores e movimento das rodas [Lauwers and Nourbakhsh 2010]. Outros autores também apresentam projetos de robôs de baixo custo com valores entre US$ 200,00 e US$ 1.000,00 [Greenwald and Kopena 2003, Dinh and Inanc 2009, Hamblen and Hall 2004, Lumsden and Ortega-Sanchez 2010]. Nota-se assim que o termo “baixo custo” é relativo. Neste intervalo de preço também se encontra o Lego NXT Mindstorms, uma plataforma robótica amplamente usada em ambientes escolares. Uma tecnologia nacional para ambientes educacionais é o robô Curumin, comercializado pela empresa Xbot. Embora ele já seja adotado em diversas escolas, seu custo é ainda maior que os valores já mencionados. Este robô oferece uma ferramenta de programação para plataforma Windows, que permite aos alunos definirem as tarefas do robô conectando blocos graficamente [Netto et al. 2012], assim como é feito no ambiente do Lego NXT. Um dos problemas dos sistemas mencionados é que todos eles requerem a instalação de softwares especı́ficos e configuração de computadores. Embora esta tarefa não seja altamente complexa, ela pode ser difı́cil de ser realizada por professores de escolas de nı́vel médio e fundamental sem experiência em informática. Além do mais, para instalação dos softwares, é necessário privilégios de administrador no computador, dificultando a instalação dos ambientes de programação em computadores de uso público como escolas, bibliotecas e tele-centros. Uma solução proposta por diversos autores, é disponibilizar ambientes de programação e desenvolvimento de robótica via Web [Belousov et al. 2001, Garrett and Thornton 2005, Aroca et al. 2012b, Popescu et al. 2008], de forma que qualquer computador ou dispositivo com um navegador Web pode ser usado para programar e controlar o robô, dispensando a necessidade de instalação de softwares. Um projeto de destaque é o Mindstorms Internet Control Environment (MICE) [Garrett and Thornton 2005], que permite programar e controlar Kits Lego via Web usando uma variação da linguagem C. Outro projeto interessante, criado pelo Google e atualmente mantido por pesquisadores do MIT, é o MIT App Inventor, um sistema Web que permite criar aplicações para telefones celulares com sistema operacional Android de forma gráfica (conectando blocos), incluindo comandos para controle de Legos Mindstorms, e em seguida gerar um pacote de instalação para ser instalado em telefones com o sistema Android [MIT 2012]. O MIT App Inventor explora uma possibilidade interessante, que é o uso de um telefone celular como unidade de controle de um robô, e permite que toda programação seja feita via web e de forma gráfica. Entretanto, tanto este como os outros projetos mencionados têm custos relativamente altos para escolas com poucos recursos financeiros e certamente para que cada estudante adquira o seu próprio robô. Na seção 3 descrevemos nossa proposta para oferecer um sistema com alta flexibilidade, poder computacional e baixo custo. 3. Nossa solução Nossa proposta consiste em uma técnica para construção de robôs didáticos usando um telefone celular como unidade de controle, como descrito originalmente por Aroca et al [Aroca et al. 2012a]. Os telefones celulares atuais têm capacidade de processamento entre 500 e 1000 vezes superiores às capacidades dos computadores de bordo das naves Apollo que foram para a Lua. Além do mais, os telefones contam com diversos recursos úteis para um robô, como por exemplo acelerômetros, câmeras, reconhecimento de voz, sı́ntese de voz e acesso à Internet. O uso de telefones celulares como base de uma plataforma robótica é ainda mais interessante no Brasil, já que em Maio de 2012, o Brasil tinha aproximadamente 255 milhões de celulares [Teleco 2012a] (1,3 celulares para cada habitante [Teleco 2012a]). Além disto, o telefone celular, é o segundo equipamento eletrônico mais presente na vida de nossa população. Como se sabe, a televisão é o aparelho eletrônico predominante nos domicı́lios brasileiros. Assim, uma pesquisa feita em 2010, que incluiu áreas rurais, mostrou que 95% dos lares possuem televisão, seguido de 83% que possuem celulares. Já os lares com microcomputador são 38% [Teleco 2012b]. Além disto, outra pesquisa mostra que 77% das famı́lias que ganham menos de 10 salários mı́nimos possuem celulares. Para as pessoas que ganham mais que 10 salários, este número é superior a 97% [Teleco 2011]. Outra vantagem desta abordagem é reaproveitar telefones celulares usados, já que estes aparelhos são frequentemente trocados no Brasil. Tipicamente os robôs educativos são construı́dos com microcontroladores, como o PIC, o MSP430 ou o AtMega (popular por ser usado no Arduino). Estes sistemas são práticos e de baixo custo, porém limitados em capacidade computacional, além de necessitarem diversos sensores externos, e um nı́vel de conhecimento intermediário de eletrônica e computação para seu uso. Quando se deseja construir robôs que devem executar algoritmos mais sofisticados e sistemas e visão de máquina, normalmente se usa um notebook ou netbook como unidade de controle, permitindo assim executar algoritmos mais avançados, usar a câmera, Internet e outros recursos de um PC. A solução que propomos tem a vantagem de aproveitar diversos sensores já disponı́veis em um telefone celular, e atingir capacidade de processamento comparável com a de um netbook. A tabela 1 faz uma breve comparação de cada um destes sistemas. Note que tanto no robô com PC quanto com microcontrolador, diversos sensores adicionais devem ser comprados, conectados, e trabalho adicional de programação deve ser feito para poder usar estes sensores. 3.1. Hardware Para que o celular possa controlar o robô, basta conectar nosso circuito à saı́da de fones de ouvido do celular, e através de diferentes frequências de áudio (análogas às notas musicais: cada nota tem uma frequência) geradas pelo celular, um circuito eletrônico decodifica estas frequências e controla o movimento de cada motor. Até dois motores podem ser ligados em cada canal de áudio, de forma que a saı́da estéreo tı́pica permite controlar 4 motores, ou 2 motores e 4 quatro atuadores do tipo liga/desliga simultaneamente. A figura 1 mostra o diagrama elétrico completo do circuito de controle. Notamos que embora tenhamos mencionado um celular com sistema Android, qualquer aparelho Recurso Netbook Telefone (*) Microcontrolador Velocidade da CPU / Memória 1GHz/1GB 500MHz/512MB 40MHz/8KB Duração da bateria 8-12h 10-20h 20h ($25) Câmera VGA 2x6 MegaPixel +$100 + trabalho Receptor GPS +$200 Embutido +$200 + trabalho Acelerômetro +$70 Embutido +$70 + trabalho Wifi / Bluetooth Embutido Embutido +$250 + trabalho Reconhecimento de voz Médio Ótimo + trabalho Bússola +$70 Embutido +$70 + trabalho Microfone / alto falantes Embutido Embutido +$20 + trabalho Visão computacional OpenCV OpenCV + trabalho Linguagens de programação Muitas Muitas Assembler, C Controle de motores +$100 +$50 Embutido Tamanho Médio Pequeno Pequeno Preço (R$) 700 (1140) 250 (300) 100 (835) Tabela 1. Tabela comparativa de unidades de controle para robôs. O preço final é o preço apenas da unidade de controle, e o valor entre parênteses é o preço da unidade de controle com os sensores. (*) Preço de um telefone celular com sistema operacional Android no mercado brasileiro em Jun/2012 com os recursos mencionados que possa gerar sons pode ser usado. Assim, o sistema não é limitado a um celular, já que qualquer outro dispositivo que emita sons pode ser usado, como um PC, um tablet, ou até mesmo um reprodutor de músicas (MP3 por exemplo). A tabela 2 mostra um resumo dos custos do circuito. O circuito é baseado no trabalho de Aroca et al. [Aroca et al. 2012a], onde maiores detalhes podem ser encontrados, inclusive detalhes da extensão deste sistema para leitura de estado de sensores também usando áudio. No circuito da figura 1, um decodificador (MT8870) de Dual Tone Multi Frequency, DTMF, recebe o sinal sonoro do celular e o decodifica em 4 bits. Estes bits são usados para controlar uma chave analógica (4066N) que altera o valor da resistência conectada ao circuito gerador de pulsos (555). O 555, por sua vez, gera um sinal do tipo Pulse Width Modulation, PWM, com ciclo determinado pelo resistor escolhido via sinal de áudio. Dois servo-motores são conectados a cada um dos 555, e o sinal de PWM controla cada motor de forma independente com comandos de frente e ré. Variações no intervalo do áudio enviado para o circuito podem controlar a velocidade dos motores. Os resistores variáveis (trimpots) são para ajuste fino de velocidade e direção de cada motor, e podem ser substituı́dos por resistores convencionais após estabelecer um valor de resistência desejável para cada robô. Os motores utilizados são servos tipicamente usados em aeromodelos. A grande vantagem destes motores é seu baixo custo, e o fato deles já incluirem caixa de redução e circuito de controle de motor, reduzindo os gastos. Eles podem ser usados diretamente para construir pequenos braços robóticos. Caso o projeto seja um robô móvel, eles devem ser modificados para rotação contı́nua. Recomendamos o uso de polar-rotores de antenas parabólicas, já que estes já permitem rotação contı́nua, sendo necessário apenas desconectar os terminais do sensor de posição e ligar dois resistores de mesmo valor no lugar Item Quantia Valor (R$) CI MT8870 1 6,90 CI 555 2 1,70 CI 4066 1 1,30 Diversos (resistores, capacitores, etc) 1 2,00 Motores (polar rotor de parabólica) 2 28,00 Placa de circuito impresso 1 9,00 TOTAL 48,9 Tabela 2. Custos do protótipo construı́do com peças compradas em pequena quantia. Material comprado em Jul/2012 deste sensor para que ele funcione em rotação contı́nua. A figura 2 mostra o robô proposto construı́do usando partes de brinquedos velhos em sua estrutura. 3.2. Software Como prova de conceito, desenvolvemos um software para controle e programação dos robôs para plataforma de celulares Android. Se necessário, este sistema pode ser desenvolvido para outras plataformas de telefonia celular. O ambiente de programação foi batizado como anwide: Android web based integrated development environment, e disponibilizado na Internet como software livre, de forma que tanto o software quanto o código fonte (open source), podem ser baixados livremente a partir do site web http://code.google.com/p/anwide/. Após ser instalado e executado no telefone, o anwide mostra o IP (endereço do dispositivo na rede) do celular onde ele está instalado. Para possuir este endereço, o celular deve estar conectado na Internet, em uma rede local ou operando no modo roteador (AndroidAP). Em seguida, o usuário deve usar um navegador web, em qualquer computador conectado à mesma rede, ou no próprio telefone e acessar o IP exibido na tela. Ao acessar o sistema, o usuário terá acesso ao aplicativo Web mostrado na figura 3. Lembramos que o anwide é executado completamente no telefone do usuário, dispensando conexão com Internet ou o uso de qualquer computador auxiliar. Como pode ser visto na figura 3, a área do lado direito permite construir um programa apenas encaixando blocos. Quando o programa está pronto, o usuário clica em um botão que transforma os blocos em um programa na linguagem Python, e o executa no celular. Embora nossos testes tenham sido feitos em Python, outras linguagens são suportadas. Se o usuário desejar, ele pode editar, também via Web, diretamente o código fonte Python e executá-lo, permitindo alto grau de personalização e a possibilidade de programação avançada. Embora ainda não tenhamos implementado todas funções do sistema operacional Android, já é possı́vel usar a sı́ntese de voz deste sistema. No momento estamos trabalhando em blocos para controle de robôs Lego Mindstorms e blocos para leitura de Figura 1. Diagrama elétrico do circuito para controle de dois motores a partir de tons de áudio provenientes de um telefone celular Figura 2. Robô de baixo custo construı́do usando um telefone celular como computador de controle sensores do telefone celular. Estes recursos já estão funcionais usando diretamente a linguagem Python. Mais detalhes sobre o uso da linguagem Python para leitura de sensores do celular com sistema Android e controle de robôs podem ser encontrados no trabalho de Aroca et al [Aroca et al. 2012b]. Figura 3. Captura da tela do sistema Web embarcado no celular, o anwide. No lado direito o programa pode ser feito conectando os blocos. No lado esquerdo, o programa é traduzido para código fonte Python, e na parte esquerda inferior o resultado da execução do programa é mostrada 4. Conclusão Apresentamos neste trabalho uma alternativa de baixo custo para construir robôs educativos com alto grau de flexibilidade e poder de processamento. O sistema pode ser construı́do por cerca de R$50,00 (sem contar o valor do telefone) quando as peças são compradas em pequena quantia em lojas especializadas. Se compradas em maior quantia, para vários alunos, os preços podem ser reduzidos. Para 100 unidades, por exemplo, o valor reduz cerca de 30%. Devido ao seu baixo custo, torna-se mais fácil oferecer este sistema para cada aluno, facilitando a implementação de programas do tipo “um robô por aluno”. Com isto, os alunos podem levar seus robôs para casa, bibliotecas, telecentros, e outros ambientes para experimentar e fazer lições. Como o sistema de programação é baseado na Web, qualquer computador com navegador web pode ser usado. Lembramos que nosso sistema é patenteado, o que garante que qualquer pessoa pode construir e replicar o sistema livremente e sem custo para fins de pesquisa e uso pessoal, mas caso uma empresa venha a vender um sistema baseado em nossa técnica, devem ser pagos royalties à UFRN. 5. Agradecimentos Agradecemos o apoio e o financiamento do Conselho Nacional de Desenvolvimento Cientı́fico e Tecnológico (CNPq). Referências Alves, S., Filho, H., Pegoraro, R., Caldeira, M., Rosario, J., and Yonezawa, W. (2011). Proposal of educational environments with mobile robots. In Robotics, Automation and Mechatronics (RAM), 2011 IEEE Conference on, pages 264 –269. Aroca, R. V., Burlamaqui, A. F., and Gonçalves, L. M. G. (2012a). Method for reading sensors and controlling actuators using audio interfaces of mobile devices. Sensors, 12(2):1572–1593. Aroca, R. V., Guardiman, R. Q., and Gonçalves, L. M. G. (2012b). Web-based robot programming environment and control architecture (aceito para publicação). In Latin American Robotics Symposium / Simpósio Brasileiro de Robótica. Belousov, I. R., Chellali, R., and Clapworthy, G. (2001). Virtual reality tools for internet robotics. In ICRA, pages 1878–1883. IEEE. Dinh, H. and Inanc, T. (2009). Low cost mobile robotics experiment with camera and sonar sensors. In American Control Conference, 2009. ACC ’09., pages 3793 –3798. Dipietro, L., Sabatini, A., and Dario, P. (2008). A survey of glove-based systems and their applications. Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE Transactions on, 38(4):461 –482. Galvan, S., Botturi, D., Castellani, A., and Fiorini, P. (2006). Innovative robotics teaching using lego sets. In Robotics and Automation, 2006. ICRA 2006. Proceedings 2006 IEEE International Conference on, pages 721 –726. Garrett, A. and Thornton, D. (2005). A web-based programming environment for lego mindstorms robots. In Proceedings of the 43rd annual Southeast regional conference - Volume 2, ACM-SE 43, pages 349–350, New York, NY, USA. ACM. Greenwald, L. and Kopena, J. (2003). Mobile robot labs. Robotics Automation Magazine, IEEE, 10(2):25 – 32. Hamblen, J. and Hall, T. (2004). Engaging undergraduate students with robotic design projects. In Electronic Design, Test and Applications, 2004. DELTA 2004. Second IEEE International Workshop on, pages 140 – 145. Howard, A. and Graham, E. (2007). To encourage and excite the next generation of engineers through human-robot interaction projects for space exploration. In American Society for Engineering Education Annual Conference, Hawaii, June 2007, Hawaii, June. Inovação Tecnológica (2012). Cientistas propõem um robô por aluno. Redação do Site Inovação Tecnológica. On-Line. Disponı́vel em: http: //www.inovacaotecnologica.com.br/noticias/noticia.php? artigo=um-robo-poraluno. Acesso em Jul/2012. Lauwers, T. and Nourbakhsh, I. (2010). Designing the finch: Creating a robot aligned to computer science concepts. In AAAI Symposium on Educational Advances in Artificial Intelligence. Lumsden, J. and Ortega-Sanchez, C. (2010). Modular autonomous robotics platform for educational use. In TENCON 2010 - 2010 IEEE Region 10 Conference, pages 1577 –1582. MIT (2012). Explore mit app inventor. On-Line. Disponı́vel em: http://explore. appinventor.mit.edu/. Acesso em Jul/2012. Netto, A. V., Miranda, F., Silva, W., and Freitas, Y. (2012). A block programming interface for educational mobile robots. In Robocontrol: Proceedings of 5th workshop in applied robotics and automation. Popescu, D., Selisteanu, D., Dinulescu, I., and Popescu, L. (2008). Web based telematics application for robotics. In Computing in the Global Information Technology, 2008. ICCGI ’08. The Third International Multi-Conference on, pages 19 –24. Rawat, K. and Massiha, G. (2004). A hands-on laboratory based approach to undergraduate robotics education. In Robotics and Automation, 2004. Proceedings. ICRA ’04. 2004 IEEE International Conference on, volume 2, pages 1370 – 1374 Vol.2. Rice University News (2011). All for one, ’r-one’ for all. On-Line. Disponı́vel em: http://engineering.rice.edu/NewsContent.aspx?id= 3491. Acesso em Jul/2012. Soto, A., Espinace, P., and Mitnik, R. (2006). A mobile robotics course for undergraduate students in computer science. In Robotics Symposium, 2006. LARS ’06. IEEE 3rd Latin American, pages 187 –192. Teleco (2011). Estatı́sticas de domicı́lios brasileiros (ibge - pnad). On-Line. Disponı́vel em: http://www.teleco.com.br/pnad.asp. Acesso em Jul/2012. Teleco (2012a). Estatı́sticas de celulares no brasil. On-Line. Disponı́vel em: http: //www.teleco.com.br/ncel.asp. Acesso em Jul/2012. Teleco (2012b). Estatı́sticas do brasil - geral. On-Line. Disponı́vel em: http://www. teleco.com.br/estatis.asp. Acesso em Jul/2012. Weinberg, J. and Yu, X. (2003). Robotics in education: Low-cost platforms for teaching integrated systems. Robotics Automation Magazine, IEEE, 10(2):4 –6.