Introdução+-+Visão+geral+do+projeto

Home > Robótica > Projeto > Introdução > Chassi > Alumínio > Básico > Baterias > Motores > Potência > Módulo de alimentação


 * [[image:rbIntro03.jpg align="center"]] || [[image:rbIntro02.JPG align="center"]] ||
 * [[image:rbIntro04.jpg]] || [[image:rbIntro01.jpg align="center"]] ||

Este projeto é parte do trabalho aprovado para Regime de Jornada Integral (RJI) pela Fatec Americana e Centro Paula Souza. O objetivo último (ainda não atingido) é um sistema robótico móvel capaz de navegação autônoma e mapeamento automático de ambientes desconhecidos. Pretende-se atingir esse objetivo utilizando um sistema robótico de baixo custo, de tecnologia aberta e eletrônica simples, de forma que possa ser facilmente replicado por estudantes ou pesquisadores. Todo o desenvolvimento de hardware e software feito até o momento foi direcionado por estas diretivas. O projeto está em andamento, para atingir esse objetivo é preciso ainda algum desenvolvimento no hardware, mas principalmente de melhorias e acréscimos no software.

O que está sendo apresentado no momento são as versões adaptadas de protótipos que já foram produzidos para este projeto. Estes robôs, embora ainda não sejam capazes de navegação autônoma, já apresentam as habilidades básicas de comunicação, movimento, posicionamento, captura de imagens e uso de sensores/atuadores. Estas habilidades são a base para sistemas autônomos mais sofisticados, então estes robôs podem ser o ponto de partida para esse tipo de desenvolvimento.

Mas mesmo que o objetivo não seja tão ambicioso, são robôs de montagem simples e de baixo custo. O projeto aberto permite (e eventualmente sugere) o aproveitamento de sucata eletrônica para algumas de suas partes. Estas características tornam o projeto também apropriado para estudantes iniciantes ou classes de estudantes.

É um projeto aberto a colaborações, fique à vontade para participar com sugestões, críticas, artigos, circuitos, informações adicionais ou o que seja. Basta clicar em Join e acrescentar uma ou duas linhas explicando como deseja colaborar neste projeto.

Aspectos iniciais: Chassi, baterias e motores
Claro que todos os elementos de um robô são importantes, mas três deles acabam por definir todo o resto do projeto, são eles o chassi, as baterias e os motores (principalmente). Estes são os elementos mais volumosos e pesados. O chassi precisa ter volume suficiente para conter as baterias, motores, circuitos e sensores e suportar o peso de tudo isso com alguma folga.

Os motores precisam ter torque suficiente para mover todo o conjunto. Infelizmente em relação a motores elétricos, mais torque significa maior tamanho, maior peso e também maior consumo de energia. O consumo dos motores afeta diretamente a escolha das baterias que precisam fornecer energia suficiente para ativar os motores e alimentar todos os circuitos e sensores pelo maior tempo possível. Além disso, o tipo do motor vai impactar nos circuitos de controle e nos programas de navegação. E em relação a baterias, maior capacidade de armazenar energia (portanto maior autonomia) também significa mais volume e mais peso.

Para o chassi, a primeira versão utilizou um de alumínio e a versão atual usa um de acrílico. O chassi de alumínio deu bons resultados e está descrito adiante. O acrílico também deu bons resultados. Depois de algumas tentativas chegamos a um modelo que se mostrou ideal para o projeto. Também foi feita uma experiência usando chassi de madeira de balsa e alumínio, o resultado foi muito melhor que o esperado. O projeto está descrito adiante. No momento estamos avaliando um material que promete substituir o acrílico com o mesmo acabamento, mas pela metade do preço, é o PS - Poliestireno cristal, seu único problema é que não aceita corte à laser, o que limita as opções.

Sistema de direção
Ao construir um robô que se movimenta com rodas precisamos considerar como será feito o sistema de direção do robô. Existem muitas maneiras mover e direcionar um robô, mas talvez a mais simples de ser implementada seja o Sistema de Direção Diferencial (SDD) que consiste em montar duas rodas alinhadas no mesmo eixo, mas com motores independentes para cada uma.

Controlando a velocidade de rotação da cada roda é possível controlar a direção do robô. Se a intenção é que o robô ande em linha reta, as rodas devem girar com a mesma velocidade angular. Para fazer curvas basta diminuir a velocidade de rotação ou parar completamente uma das rodas. Para fazer uma curva à direita, a roda da direita deve parar ou diminuir sua velocidade e para virar à esquerda, é a roda da esquerda que deve girar mais devagar que a roda da direita. Quanto maior for a diferença de velocidade entre as duas rodas, mais fechada será a curva. Inclusive existe a opção de fazer com que as rodas girem em sentido inverso uma em relação à outra e nesse caso o robô gira em torno de um ponto que está a meia distância das duas rodas. Desta forma, nenhum mecanismo de direção é necessário, o que simplifica bastante o projeto.

O problema do SSD, é que pequenas variações na velocidade das rodas provocam erros cumulativos na trajetória, é por isso que robôs com motores DC precisam ficar o tempo todo monitorando e corrigindo a velocidade da rodas. É nesse ponto que os motores de passo levam vantagem sobre os motores DC. Estes motores são extremamente precisos.

** Motores **
Uma vez decidido que o sistema de direção será diferencial é preciso decidir que tipo de motores serão usados. As duas opções são motores de passo ou motores DC. A grande maioria de projetos de robôs de pequeno-médio porte usa motores DC porque consomem menos energia e tem um custo menor que os motores de passo. É possível conseguir mais torque e velocidade com motores menores e com menos consumo de energia do que seria possível usando motores de passo. A grande desvantagem dos motores DC é a total falta de precisão, é muito difícil controlar precisamente o giro do motor, especialmente para conseguir frações de volta nas rodas. Normalmente sistemas com motores DC precisam de encoders nas rodas para medir o giro delas. Motores DC também precisam de caixas de redução para obter torque e de um hardware de controle mais complexo.

Motores de passo são pesados e gulosos no consumo de energia. Além disso são bem lentos quando comparados a motores DC, então porque usá-los em um projeto de robô móvel?
 * Porque motores de passo **

Tudo isso é verdade, mas o uso de motores de passo simplifica muito o projeto de um robô. Com motores DC é preciso usar um encoder em cada roda para saber em que velocidade estão girando e é necessário fazer frequentes correções na velocidade para garantir que elas girem em sincronia. Motores de passo dispensam o uso de encoders ou de qualquer tipo de monitoramento para controlar a velocidade das rodas. A velocidade é determinada pelos pulsos enviados ao motor, o software controla esse processo completamente, mesmo para frações de volta. E é um sistema muito preciso, não é necessário fazer correções de velocidade para garantir a sincronia entre as duas rodas. E como são motores com alto torque, também não é preciso usar sistemas de redução, polias ou engrenagens entre o motor e a roda. A roda pode ser instalada diretamente no eixo do motor, sem caixa de redução.

Então para os objetivos do robô, consideramos que motores de passo são a escolha natural. Sobre o consumo de energia, atualmente existem opções de baterias de baixo custo e alto desempenho capazes de oferecer uma autonomia aceitável para o conjunto, mesmo com o consumo extra. Finalmente sobre o peso não há o que fazer, esses motores são mesmo pesados. Mas também são poderosos e afinal são eles que vão mover o peso todo, então não há muito problema.

E finalmente sobre o custo dos motores de passo, é verdade que são mais caros que os motores DC, mas motores DC são inúteis sem um sistema de redução e uma caixa de redução não é barata. Motores de passo podem ser conseguidos facilmente de graça em impressoras sucateadas, scanners e outras fontes. Uma boa dica é verificar em estabelecimentos que consertam impressoras. Com certeza é possível conseguir motores usados por um custo muito baixo.

**Placas de circuito impresso - Kicad**
Este projeto utiliza de preferência placas pré-montadas, mas eventualmente pode ser necessário o uso de placas feitas especialmente para o projeto e neste caso o programa utilizado para a confecção das placas é o Kicad. O Kicad é uma suíte de programas open source (GPL) para a criação de esquemas eletrônicos e circuitos impressos, totalmente gratuito e com suporte a várias línguas, incluindo português do Brasil.

Uma outra opção é usar placas padrão para montar os circuitos. Estas placas já vem com uma furação padrão e permitem a montagem de circuitos sem precisar confeccionar e corroer placas de circuito impresso. O problema é que a estética do projeto fica definitivamente prejudicada, mas funciona (quando funciona).

As placas que forem usadas neste projeto serão disponibilizadas aqui como projetos do Kicad.

**Atualização:** com o grande sucesso do arduino, placas pré-montadas com finalidades diversas estão cada vez mais comuns e baratas, especialmente com as indústrias chinesas inundando o mercado com cada vez mais opções. Na maioria dos casos isso já chegou no ponto em que não compensa produzir as próprias placas. Além do trabalho que dá, acaba saindo mais caro do que comprar a placa pronta. No decorrer do projeto são mostradas as opções disponíveis no momento e sempre possível atualizações com os novos lançamentos.

Controle de bordo: O microcontrolador
O robô têm motores, eventualmente sensores e toda uma parte de comunicação e troca de mensagens com o computador que precisam ser controlados e gerenciados internamente e para isso é preciso alguma capacidade de processamento. Existe uma variedade enorme de microcontroladores de baixo custo que são perfeitamente capazes de assumir essa tarefa. PIC e ATmega (Arduíno) são os mais conhecidos, mas existem muitos outros, como o Wixel, escolhido para ser o microcontrolador principal nesta versão inicial do robô. É verdade que existem diferenças de velocidade, capacidade de memória e recursos adicionais entre os vários microcontroladores, mas para o robô descrito aqui todos eles dão conta do recado e tem um custo muito parecido. A tabela abaixo compara algumas especificações dos três microcontroladores citados.

(*) Total de pinos de IO, inclui os pinos analógicos que também podem ser usados como pinos digitais.
 * <  ||   || [[image:http://www.grandeideiaestudio.com.br/lojavirtual/15-132-thickbox/picstamp-1.jpg width="121" height="121"]] ||   || [[image:http://arduino.cc/en/uploads/Main/ArduinoNanoFront_3_lg.jpg width="120" height="77"]] ||   || [[image:http://2.bp.blogspot.com/-54AX0UoW1Rk/UKCUKoZVicI/AAAAAAAAAKI/RxvP2fkChss/s1600/wixel.jpg width="109" height="94"]] ||   || [[image:mega.jpg width="115" height="115"]] ||   || [[image:uno.jpeg width="116" height="115"]] ||   ||
 * < Placa ||  || PIC Stamp ||   || Arduino Nano ||   || Wixel ||   || Arduino Mega ||   || Arduino UNO ||   ||
 * < Microcontrolador ||  || PIC18F2550 ||   || ATmega328 ||   || CC2511F32 ||   || ATmega2560 ||   || ATmega328 ||   ||
 * < Memória ROM ||>  ||> 32 KB ||>   ||> 32 KB ||>   ||> 32 KB ||>   ||> 256 KB ||>   ||> 32 KB ||>   ||
 * < Memória RAM ||>  ||> 2 KB ||>   ||> 2 KB ||>   ||> 4 KB ||>   ||> 8 KB ||>   ||> 2KB ||>   ||
 * < EEPROM ||>  ||> 256 B ||>   ||> 1 KB ||>   ||> ? ||>   ||> 4 KB ||>   ||> 1 KB ||>   ||
 * < Clock ||>  ||> 20 MHz ||>   ||> 16 MHz ||>   ||> 24 MHz ||>   ||> 16 MHz ||>   ||> 16 Mhz ||>   ||
 * < Pinos IO (*) ||>  ||> ? ||>   ||> 20 ||>   ||> 15 ||>   ||> 70 ||>   ||> 20 ||>   ||
 * < Entradas analógicas ||>  ||> 10 ||>   ||> 6 ||>   ||> 6 ||>   ||> 16 ||>   ||> 6 ||>   ||
 * < Saídas PWM ||>  ||>   ||>   ||> 6 ||>   ||> 7 ||>   ||> 15 ||>   ||> 6 ||>   ||
 * < Leds indicadores ||>  ||>   ||>   ||> 1 ||>   ||> 3 ||>   ||> 1 ||>   ||> 1 ||>   ||

Apesar das diferenças, todos são opções viáveis para o projeto e foram produzidos protótipos usando todos eles. Abaixo um resumo dos resultados.

Usa um micro-controlador com recursos comparáveis aos do arduino. O clock de 20 Mhz torna-o mais rápido. Tem bons recursos internos fornecidos pelo microcontrolador, por exemplo tem 1 timer de 8 bits e 3 de 16 bits. O primeiro protótipo feito para este projeto utilizou esta plaquinha. Talvez isso tenha sido resolvido agora, mas na época, o maior problema encontrado foi a falta de acesso a bibliotecas, detalhes de sua programação e programas de exemplo. Por fim o Wixel acabou ganhando a preferência, mas por outros motivos.
 * PICstamp **

Wixel Arduino Nano Arduino UNO Arduino Mega

, mas recurso que pesou a favor do Wixel não está na tabela: a comunicação wireless. O Wixel tem uma antena de RF "onboard" capaz de transmitir e receber sinais na frequência dos 2.4 GHz a uma distância máxima de 15 metros. Além disso o suporte à comunicação RF é nativo no microcontrolador, ele foi feito para isso. Um par de Wixels pode trocar mensagens usando o sistema de RF interno muito facilmente. Em uma aplicação típica, um wixel fica conectado ao computador transmitindo/recebendo as mensagens de outro(s) wixel(s) via RF. Teoricamente é possível montar uma rede wireless com até 256 wixels. E quanto ao custo é equivalente ao do Arduíno Nano e mais barato que o PICStamp.

O uso do Wixel permite criar uma versão simples e econômica do sistema robótico incluindo todas as funcionalidades pretendidas, mas com restrições relacionadas a alcance, capacidade ou quantidade. É claro que estas restrições afetam o desempenho do robô final, mas não impedem o estudo e desenvolvimento do sistema. Por exemplo, se pensarmos em um sistema de mapeamento automático, 15 metros de alcance para a comunicação RF é muito pouco para o sistema funcionar como aplicação final. Mas é perfeitamente suficiente para desenvolver e testar o sistema em quase todos os aspectos. Até o sistema chegar ao ponto em que o alcance da comunicação se torna um problema, há um longo caminho a percorrer e até lá o Wixel oferece uma solução simples e econômica.