segunda-feira, 21 de fevereiro de 2011

Utilizando conversor USB TTL

Hoje venho mostrar como podemos utilizar um conversor USB TTL para enviar os dados para nossa placa Arduino Standalone. Antes de prosseguir você deve saber o que é o "standalone", você pode encontrar a postagem que fiz sobre isso clicando nesse link, em resumo, o modo standalone permite rodar o Atmega do arduino com o menor número de componentes, apenas o necessário para seu funcionamento.
Como conversor USB TTL irei utilizar o que comprei na loja Webtronico, neste link. O conversor serve para mudar o tipo de sinal que o PC envia e o que o microcontrolador deve receber para operar, você não precisa nem saber o que está acontecendo, basta fazer a correta ligação dos fios do conversor na sua versão do arduino rodando em modo standalone.
Primeiro o conversor:
 E seus pinos:
Há 6 pinos no conversor, mas para programar o Atmega em modo standalone você vai precisar de apenas 4 pinos, sendo eles:
+5V - Este pino você liga nos terminais do seu Atmega que são alimentados pelo "positivo".
GND - Este pino você conecta aos terminais do seu Atmega que são alimentados pelo "negativo".
RXD - Este pino deve ser conectado ao pino TX do Atmega (pino 3 - veja imagem a baixo);
TXD - Este pino você conecta ao pino RX do Atmega (pino 2 - veja imagem a baixo);
A imagem a seguir ilustra a pinagem do Atmega 168 que serve também para a versão 328:

Após fazer a conexão dos pinos está na hora de enviar instalar o drive, baixe deste link, e instale no seu computador, depois disso pode conectar o conversor USB TTL na porta USB (eu faço isso através de um cabo USB para ter mais liberdade para poder mover a protoboard com tudo junto pela mesa).
Depois que tudo estiver instalado você precisa enviar o código para seu Atmega, para isso abra o ambiente de programação do arduino e selecione o exemplo "blink" para testar. 
Pressione o botão reset da sua placa standalone e segure, depois clique no botão "enviar" da interface de programação do arduino e aguarde até que apareça na parte inferior uma tela como a mostrada a baixo:
Assim que aparecer a parte em branco que diz o tamanho do arquivo significa que seu código ja foi compilado e o programa começará o upload propriamente dito, nesse momento você deve soltar o botão  reset e aguardar a mensagem de upload concluído. Pronto! seu Atmega rodando em modo standalone pode ser agora programado através da porta USB como se você estivesse utilizando uma placa arduino diretamente na USB. 
Na imagem a baixo você pode ver uma versão Standalone que montei para utilizar apenas na protoboard, juntamente com o conversor conectado a ela.
Então para fazer a programação basta lembrar de pressionar o botão reset e mandar fazer o upload, quando aparecer algo escrito na área preta do software é só soltar o botão reset e aguardar o upload, simples assim.
Até a próxima.
Fonte:

quarta-feira, 16 de fevereiro de 2011

Boarduino - minha versão

Eu estava precisando rodar o arduino em uma protoboard para testes, o problema era ter que usar jumpers aos montes para fazer tudo funcionar corretamente, foi ai que tive a ideia de comprar uma placa boarduino, olhei na internet e pensei "isso eu consigo fazer!", pesquisei o esquema da placa, juntei as peças que eu tinha e montei a minha, demorei cerca de 2 horas e meia para reunir as peças, montar e testar. 
Foto da placa perfurada depois de cortada e furada para o conector DC:
 
Foto da minha boarduino montada:
Minha versão possui mais pinos que a versão da Adafruit, mas é porque eu preciso deles para meus projetos. Na imagem é possivel ver o circuito de regulagem de tensão, os LEDs (1 para indicar que está ligado, o outro pino 13). Os pinos fêmea da parte superior da imagem servem para conectar o conversor USB TTL para poder programar o microcontrolador através da porta USB do notebook.
Como a versão da Adafruit, a minha também pode ser alimentada tanto pela USB como por fonte externa, basta selecionar o jumper que fiz. A imagem a seguir mostra o jumper e os pinos onde ele pode ser conectado para a alimentação:
O jumper é conectado ao pinos machos que existem logo após o conector para fonte externa. O conversor USB TTL que utilizo para programar na USB comprei no site Webtronico: http://webtronico.com/produtos/viewSubCategoria/22 e pode ser visto na imagem a baixo:
E na foto a baixo tenho ele conectado a minha boarduino:
É o que estou utilizando para fazer os testes com os circuitos do robô explorador, pois vários circuitos estão em protoboard ainda. No próximo post vou mostrar como conectar o conversor USB TTL no computador e fazer o upload de códigos para o arduino.
Até mais.

quinta-feira, 10 de fevereiro de 2011

Robô explorador - circuito acionador do cooler da ponte H

Ontem terminei a montagem de um sistema que será muito importante no robô. Em uso contínuo a ponte H que aciona os motores provavelmente vai esquentar um pouco, e por isso precisa de um cooler para arrefecê-la, o problema é que se eu simplesmente deixar o cooler direto ligado seria desperdício de energia, porque em dias frios não aqueceria muito (se chegar a aquecer) e em dias quentes não seria necessário estar funcionando permanentemente.
A solução é acionar o cooler pelo controle remoto ou sempre que a temperatura atingir um determinado valor, o problema é a corrente fornecida nos pinos digitais do Atmega da CPU do robô, ela é muito baixa, para isso eu preciso de um circuito que aumente a corrente acionando o cooler.
Consegui um cooler de 5V e 0,5W de um notebook antigo, pequeno e de alta rotação, perfeito para a aplicação, o outro problema: escolher um transistor e calcular o resistor para ser usado. 
O transistor escolhido foi o BD135 da ST Microeletronics que possui um ganho médio de 100 (Hfe) e trabalha com correntes altas (até 1,5A) e voltagem baixa (máxima de 80V). Segundo passo descobrir o valor da resistência da base a ser utilizada.
Fazendo alguns cálculos o resultado foi um resistor de 5K, para gerar a corrente  necessária para acionar o cooler em potência máxima, mas para fazer a corrente no coletor ser maior coloquei um resistor de apenas 1K assim consigo uma corrente de até 0,5A suficiente para acionar qualquer cooler que queira colocar (a maioria dos coolers de fonte de PC é de no máximo 0,3A).
Até ai tudo bem, o problema foi quando comecei a pensar na forma de conectar ele à CPU do robô, eu não ia simplesmente deixar 3 fios soltos saindo dos conectores, um de cada lugar foi então que olhei para um servo e pensei: "vou usar o padrão futaba!" a CPU vai ter 4 saídas no padrão futaba para acionar o que for preciso, então utilizo uma para acionar o cooler, mas ao invéz de enviar sinal PWM eu vou usar apenas HIGH ou LOW. Se eu utilizasse o PWM então poderia deixar o cooler ligado permanentemente, o que não é o caso.
Revirei algumas tralhas e encontrei 3 fios nas cores que precisava para o padrão futaba (preto, vermelho e branco) montei um conector, passei cola para unir eles e pronto! A principio esse será o unico dispositivo que vou utilizar no robô que precisei montar um fio neste padrão, mas se eu tiver que montar mais alguma coisa, ai vou procurar pela internet por extensões padrão Futaba para comprar, unir os fios foi sem dúvida a pior parte!.
Fotos do sistema completo (conector + acionador + cooler):
Foto do circuito acionador:
Nessa imagem temos do lado esquerdo os 3 fios que chegam da CPU sendo o vermelho para 5V, o preto para GND e o branco para o sinal. No lado direito os dois fios que alimentam o cooler, sendo o preto para GND e vermelho para 5V.
Como os fios preto e vermelho que chegam ao circuito estarão sempre conduzindo corrente, mesmo que o sistema esteja desligado (sem sinal no fio branco), adicionei um capacitor eletrolítico na entrada para armazenar carga que será liberada instantaneamente quando o sinal chegar pelo fio branco. E como talvez eu altere o cooler por um pequeno motor brushed futuramente, já adicionei um capacitor cerâmico para filtrar ruídos que possam ser gerados nas escovas do motor.
Para aqueles que se interessaram pelo circuito, a baixo a lista e o esquema da ligação dos componentes:
 
Com esse "superdimensionamento", já que o circuito irá acionar 0,1A de corrente mas que pode acionar até 0,5A estou tranquilo, nada de aquecimento (e olha que testei durante horas..), e nenhuma interferência no microcontrolador.
Por hoje é isso, até mais pessoal.

Atualização: 13/02/11 - Adição de foto e esquema da ligação dos componentes.

quinta-feira, 3 de fevereiro de 2011

Robô explorador - diagrama de blocos

De volta ao blog depois de um mês, a postagem de hoje é apenas para mostrar o diagrama de blocos do robô explorador com arma que comecei a construir. 
A idéia é um robô que se locomove atavés de esteiras e possui 2 tipos de rádios receptores, o mais simples envia apenas sinais de HIGH e LOW para a ponte H movimentando o robô, e o segundo rádio receptor trabalha apenas com dados, que são processados e então a partir do resultado uma ação é executada no robô como ligar e desligar iluminação, mover câmera ou disparar a arma.
Não, você não leu errado, minha intenção é construir um pequeno canhão no robô, colocar a pólvora e então quando ela detonar um projétil será lançado, a principio seria um dardo com chama na ponta ou uma lâmina, a parte da pólvora já testei, só preciso melhorar a eletrônica do sistema de disparo.
A baixo a diagrama do robô:
A saída do CPU para o receptor 2 é apenas de alimentação, não aparece também no diagrama a microcâmera e o sistema de alimentação dela, pois isto será separado dos sistemas de alimentação que estão indicados.
Dos 2 servos que estão no esquema apenas o primeiro está definido sua utilização, será para movimentar a câmera lateralmente para uma visão mais ampla da frente do robô, o outro servo por enquanto fica apenas indicado.
Conforme o projeto ir evoluindo coloco atualizações aqui, até mais.