Mostrando postagens com marcador Lego Mindstorms. Mostrar todas as postagens
Mostrando postagens com marcador Lego Mindstorms. Mostrar todas as postagens

quarta-feira, 6 de março de 2013

Comunicação I²C entre Lego NXT e Arduino


Os kits de robótica Lego NXT são ferramentas de desenvolvimento fantásticas! São fáceis de se trabalhar e permitem a construção e programação de robôs de forma intuitiva e rápida (veja mais sobre esses kits aqui).

No entanto, o controlador do Lego NXT 2.0 (ilustrado na figura abaixo) possui limitação em termos do número de sensores e de motores que podem ser utilizados de maneira simultânea: usando o hardware original, apenas quatro sensores e três motores podem ser conectados simultaneamente ao controlador do robô! Para conexão de mais sensores é necessário comprar um hardware adicional que faz a expansão das entradas, permitindo que até quatro sensores sejam conectados a uma mesma entrada.


Controlador Lego NXT conectado a 4 sensores e 3 motores.

Embora tal limitação não seja um problema para muitas aplicações, em alguns casos o uso de apenas quatro sensores pode ser crítico. Uma solução de baixo custo que permite a utilização de mais sensores é conectar um microcontrolador a uma das portas de entrada do NXT e conectar os sensores ao microcontrolador. Dessa forma, o microcontrolador serve como uma "ponte", fazendo a multiplexação dos sinais dos diversos sensores ligados a ele e enviado ao NXT a leitura de um sensor de cada vez.

As portas do NXT podem utilizar dois padrões de comunicação: RS-485 ou I²C. O aluno Daniel Barcelos Mendes realizou e apresentou o trabalho “Desenvolvimento de Interface de Comunicação e Expansão para Kit de Robótica Educacional” na VII Jornada de Iniciação Científica do IFES, em outubro de 2012. Basicamente, ele implementou uma interface de comunicação entre o NXT e um Arduino. Como o Arduino possui bibliotecas para uma grande variedade de sensores, sua conexão dá ao NXT acesso a muitos sensores diferentes dos oferecidos pela Lego!

Em seu trabalho, Daniel realizou estudos de montagem e de programação do NXT (em linguagem NXC) e do Arduino, montou protótipos e testou a comunicação. Para prova de comunicação foram utilizados no Arduino um sensor de luz tipo LDR (resistor dependente de luz), um sensor de distância ultrassônico e um servomotor.

O texto completo contém códigos para Lego (NXC) e para Arduino e está disponível para download aqui.

Se você prefere realizar comunicação RS-485, veja este tutorial que já foi apresentado aqui no blog.

Divirta-se!
Até a próxima!

quinta-feira, 22 de dezembro de 2011

Oficina de Robótica no ES

Quer começar a brincar com robôs? Tem entre 12 e 16 anos?? Então esta notícia é para você!! 

A UCL - Faculdade do Centro Leste, localizada em Manguinhos (Serra, ES), vai oferecer uma oficina de Introdução à Robótica, entre 23 e 27 de janeiro de 2012. 

Na oficina serão utilizados kits de robótica da Lego. Conhece? São muito bacanas!! Eu já publiquei um post sobre eles (veja aqui).

A oficina será realizada pela Robotech - Tecnologia em Robótica Educacional, e está sendo preparada pela professora Carmen Faria Santos, que também é chefe do Laboratório de Robótica Educacional do Centro Tecnológico da UFES e membro do comitê organizacional da RoboCup Junior. 



Para mais informações sobre a oficina, clique aqui.

Até a próxima!

terça-feira, 1 de fevereiro de 2011

Robôs que evoluem e aprendem a andar!

Josh Bongard, um pesquisador da Universidade de Vermont, desenvolveu uma técnica de aprendizado utilizando algoritmos genéticos que permitiu que robôs a patas aprendessem a andar... sozinhos! E mais: ele concluiu que o aprendizado pode ser mais rápido se o corpo do robô puder ser modificado ao longo do tempo. Um detalhe muito interessante é que os robôs com tal característica "naturalmente" evoluem para o caminhar ao invés de simplesmente se arrastarem!

O vídeo abaixo mostra simulações e experimentos em que os robôs evoluem na maneira de se deslocarem. Note que os experimentos foram realizados com robôs feitos com Lego Mindstorms, naturalmente apropriados para esta aplicação!



Cientistas como Bongard acreditam que robôs possam ser programados de forma que sua tarfea seja executada a partir de comportamentos que evoluam naturalmente. Isso permite que o robô seja muito flexível e inerentemente adaptativo, ao contrário de um robô programado de forma rígida (tradicional).

O artigo completo intitulado Morphological change in machines accelerates the evolution of robust behavior foi publicado na edição de 10 de janeiro de 2011 no Proceedings of the National Academy of Sciences of the United States of America.

O Exterminador do Futuro está chegando! :-)
Até a próxima!

segunda-feira, 3 de janeiro de 2011

Lego Mindstorms NXT 2.0

Recentemente ganhei de presente o kit de robótica Mindstorms NXT 2.0, da Lego. Trata-se de um kit contendo três motores (cada um já montado em uma estrutura com caixa de redução e sensor de giro/velocidade), quatro sensores (sendo dois de toque, um de cor/luminosidade e um ultrassônico - para medir distância), além de 600 peças de Lego.



O kit traz instruções para montagem de um primeiro robô, que pode ser implementado rapidamente. Aí está o meu, com algumas modificações em relação ao que é sugerido no manual.


O NXT está sendo utilizado por muita gente para montar e programar robôs. Por ter uma interface de programação muito simples e intuitiva, é um excelente kit para iniciantes! Mas, usuários mais avançados também podem aproveitá-lo bastante! De fato, várias escolas técnicas e universidades têm utilizado o NXT em cursos de robótica.

Vários livros tratam de aplicações de robótica com o NXT. O vídeo a seguir é uma propaganda de desses livros: The LEGO MINDSTORMS NXT 2.0 Discovery Book. Ele dá uma boa ideia do que se pode fazer com esse kit!



Outro excelente livro (que eu comprei junto com o kit) é o LEGO Mindstorms NXT Power Programming: Robotics in C. Este ensina a programar o NXT usando a linguagem NXC (Not eXactly C), que é baseada na linguagem C padrão, mas inclui várias funções para comando dos motores, leitura dos sensores e acesso ao display do NXT, dentre vários outros recursos. O ambiente de programação Bricx Command Center, que é gratuito, inclui tal compilador C para o NXT.

--- incluído em 03/03/2014

O NERA - Núcleo de Estudos em Robótica e Automação do Ifes, fez a tradução para o português de um tutorial de programação em NXC. O tutorial para NXC em português está disponível aqui.

---

O vídeo abaixo ilustra o potencial deste kit da Lego. Nesta aplicação foi utilizado um acelerômetro, sensor que não está incluído no set original do NXT 2.0, mas que pode ser comprado separadamente no próprio site da Lego.


Outros fabricantes de sensores para o NXT são a a HiTechnic e a MindSensors. Esta fabrica vários sensores interessantes que a própria Lego não faz, inclusive uma câmera!

Para escolas a Lego tem kits educacionais, a preços e condições especiais.

Se você gosta de robótica e quer começar a praticar, esse kit do NXT 2.0 vale à pena!!
Até a próxima!