segunda-feira, 21 de junho de 2010

Robótica para todas as idades no Brasil

A robótica no Brasil começa a criar agora suas raízes indo além do meio acadêmico, além dos materiais convencionais e fazendo que pessoas multi-disciplinares criem coisas fantásticas.

Temos participado de vários eventos e tido a oportunidade de conhecer pessoas incríveis de todo o Brasil, que vem nos surpreendendo semanalmente. Materiais com memória de forma, mecanismos alternativos de comunicação sem fio e inúmeras plataformas eletrônicas vem surgindo com viabilidade para serem utilizadas até dentro de sua casa.

Na nossa visão e missão queremos que cada vez mais o Brasil se coloque como um país produtos de tecnologias, além do software. Podemos criar hardware e invenções incríveis dentro da nossa casa, ou nosso escritório. Esta verdade pode ser comprovada na última semana, onde tivemos o prazer de poder participar de eventos relacionados a robótica no Brasil e vamos resumir nossas participações a seguir.

I Torneio Juvenil de Robótica de São Paulo - IME / USP
Este incrível evento aconteceu em um sábado chuvoso no agradável ambiente da cidade universitária, no prédio do IME. Organizado pelo Prof. Luis Rogério do Colégio Objetivo, o evento reuiniu uma quantidade incrível de jovens (300+) e robôs (50+). O prof. Luis Rogério, usuário da nossa placa Program-ME / Arduino, nos convidou e literalmente abriu as portas para nós apresentarmos uma oficina e também montarmos um stand onde fizemos diversas demonstrações.



Com uma faixa etária de dar inveja (pudéra tivéssemos robótica no 1o grau!), os robôs competiram em diferentes categorias, sendo a mais disputada o sumo. Existe uma arena e o pessoal monta um robô e desenvolve uma programação com objetivo de tentar tirar o outro robô da arena. A competição aconteceu com as plataformas Lego NXT e Vex.



Uma outra categoria que pessoalmente acabei me divertindo muito, foi a de dança, pois como alguns dos leitores deste blog sabem, ano passado desenvolvemos um número de dança de robôs com a famosa paródia do "Bug Novo". Mas ainda uma surpresa maior, alguns alunos dançam junto com os robôs como vocês podem ver na amostra deste vídeo:


Tivemos a oportunidade de apresentar uma oficina da construção de robôs com Arduino e também assistir do Gogo-board, um interessante projeto de placa que utiliza PIC com USB embarcado no circuito e diferenciais inteligentes no sistema de regulagem de tensão.

Simpósio de Educação Profissional e Tecnológica da Baixada Santista

O evento na Praia Grande foi patrocinado pela Season, parceiro Globalcode na Baixada Santista e em São José dos Campos, e tivemos a oportunidade de apresentar uma versão em palestra do tema "Aprendendo a programar de forma divertida e eficiente". Com um público bastante híbrido com jovens (bem jovens) a professores, fizemos algumas colocações de dicas profissionais, escolha de carreira e logo fomos mostrando o mundo da programação com Java, Arduino, Program-ME's e demonstrações inspiradas na Copa do mundo.

Muito legal é apresentar como funciona um computador falando desde eletrônica analógica, digital, transistores até o código propriamente dito. É um desafio maior ainda fazer isso em pouco mais de uma hora.
Desenvolvemos ali na hora um exemplo de código bem simples com pisca LED, depois mostramos como acionar uma tomada, depois mostramos como acionar uma buzina que é incrivelmente barulhenta.

Foi realmente divertido e todos puderam entender o funcionamento com bastante empolgação da plateia.


Depois do término da palestra fomos conhecer a feira com uma exposição muito bacana mesmo, diversas engenhocas interessantes mostrando na prática toda a parte mecânica, eletrônica e software. Braços robóticos, acionamentos pneumáticos entre outros apresentados por estudantes foram bem legais.

Agradecemos o pessoal da Season que trabalha com uma competência incrível e sempre apaixonados pela computação, o que representa o espírito de parceria com a Globalcode.

Vinicius Senger
http://twitter.com/vsenger
http://program-me.ning.com
http://loja.eletronlivre.com.br
http://blog.globalcode.com.br/search/label/Vinicius%20Senger

terça-feira, 8 de junho de 2010

Controlando até 6 motores DC com um único Program-Me

Durante as aulas da primeira turma do Curso de Robótica na Globalcode, os alunos mostraram vários projetos de robôs que eles construíram ou estavam construindo. Dentre esses projetos tivemos um com LEGO que apresentava a seguinte dificuldade:

Controlar 5 motores DC de LEGO com o Program-Me utilizando a menor quantidade de portas possível.


Os motores LEGO possuem um conector proprietário conforme figura ao lado, sendo que após algumas verificações concluimos que os terminais associados ao motor são os identificados como C1 e C2, ou seja, esses são os terminais que devem ser conectados na Ponte-H.




Para conectar os motores de LEGO em uma ponte-H, é recomendado utilizar cabinhos de extensão da própria LEGO como adaptadores. Basta cortar esses cabinhos ao meio e você terá 2 adaptadores que evitarão a necessidade de danificar os cabos originais dos motores.


O controle básico de cada motor DC exige uma ponte-H que necessita normalmente 3 portas (uma PWM para controle de velocidade e duas digitais para controlar a direção do motor), porém se utilizarmos 3 portas por motor já estaríamos gastando 15 portas do Program-Me o que não era interessante, pois sobrariam poucas portas para sensores e comunicação.

Na figura abaixo temos um diagrama básico de um chip de ponte-H para dois motores, onde o lado esquerdo controla um motor e o lado direito controla outro motor.



Funcionamento da Ponte-H

Analisando apenas o lado esquerdo da figura acima temos o seguinte:

As entradas IN1 e IN2 controlam a direção de rotação do motor, enquanto na entrada ENABLE1 aplicamos o sinal PWM que determinará a velocidade do motor.
Quando o sinal aplicado na entrada IN1 é igual a "1" e o sinal aplicado na entrada IN2 é igual a "0"(zero) o motor gira para um lado, se o sinal aplicado na entrada IN1 é igual a "0" e o sinal aplicado na entrada IN2 é igual a "1" o motor gira no outro sentido. Se o sinal aplicado em ambas as entradas (IN1 e IN2) for igual a 0 ou 1, os terminais do motor serão curto circuitados criando o efeito de freio do motor.
Como para este projeto o recurso de freio motor não é necessário ele foi descartado.
As saídas OUT1 e OUT2 são os pontos onde conectamos os terminais do motor.

Com o objetivo de utilizar menos portas do Program-Me, colocamos um transistor NPN que inverte o sinal aplicado na entrada IN1 e aplica na entrada IN2. Dessa forma conseguimos controlar a direção do motor utilizando apenas uma porta digital. Essa inversão poderia também ser executada por um circuito integrado de portas inversoras (por exemplo o SN7404), mas para simplificar as conexões na protoboard achei melhor utilizar os transistores.

Na figura abaixo temos o diagrama de montagem da ponte-H para 6 motores com todas as conexões com o program-Me.



Os transistores são todos BC548 e os resistores de 10K.




Como a ponte H utilizada é a L293D, não é necessário montar diodos externamente.

Com esse circuito deixamos todas as portas analógicas do Program-Me livres para conectar sensores e as portas digitais 0 e 1 disponíveis para comunicação com o módulo Xbee que permitirá o controle remoto do robô.