terça-feira, outubro 14, 2014

Metaboard na Protoboard, Passo a Passo

Já mencionei antes (aqui, aqui e aqui) a Metaboard, uma variante bem simples do Arduino mas que permite a carga de programas pela IDE do Arduino, de forma parecida com as placas oficiais. Vamos ver aqui, passo a passo, como montar uma Metaboard em uma protoboard. Será uma montagem mais enxuta do que a que eu fiz anteriormente. O guia assume que você está usando Windows.


Lista de Material
  • Uma protoboard. Embora dê para apertar em uma protoboard pequena, recomendo usar uma de tamanho médio (400 pontos ou mais) para facilitar a montagem. Atenção que algumas protoboards tem as linhas horizontais das beiradas interrompidas no meio.
  • Fios para conexão na protoboard. Você pode desfazer um trecho de cabo de rede para obter fios rígidos com bitola adequada.
  • Um Arduino Uno. Será usado apenas para gravar o bootloader no ATmega. Outros modelos de Arduino ou outros programadores de AVR podem ser usados para isto, mas o procedimento será diferente.
  • Um capacitor eletrolítico de 10uF por 10V (ou mais). Também será usando somente na gravação do bootloader. 
  • Um microcontrolador ATmega328P-PU. O modelo ATmega328-PU pode ser usado, mas requer mudança na configuração da IDE e do avrdude.
  • Um resistor de 10K. Este valor não é crítico, qualquer resistor entre 10K e 33K funcionará bem.
  • Um resistor de 1K. Você pode usar um valor menor (até 220 ohms).
  • Um cristal de 16MHz
  • Dois capacitores cerâmicos de 22pF. A especificação do ATmega fala em capacitores de 12pF a 22pF.
  • Dois diodos zenner de 3.6V, 0,5 watt
  • Dois resistores de 68R
  • Um resistor de 1M
  • Um resistor  de 1K5
  • Um LED. Em princípio pode ser qualquer LED, mas recomendo usar um LED vermelho ou verde de 3 ou 5 mm.
  • Um botão de contato momentâneo.
  • Uma chave de duas posições. Você pode usar um fio ao invés desta chave.
  • Um cabo USB com conector USB tipo A em uma ponta e fios expostos na outra. O mais fácil é pegar este cabo em um mouse ou teclado velho. Para facilitar a montagem, solde os fios em um conector macho do tipo "espeto".
  • Um multímetro para identificar os fios do cabo USB.
  • IDE do Arduino (eu usei a v1.5, mas deve funcionar com qualquer versão a partir da 1.0)
  • Bootloader e arquivos de configuração: baixe o arquivo "Metaboard PaP.zip"  dos arquivos do blog. 
  • Drivers para Windows: baixe os drivers do USBasp daqui.


Passo 1 - Preparação da IDE do Arduino

Verifique em qual diretório do seu micro está instalada a IDE do Arduino. Vou assumir aqui que está em C:\Arduino, substitua pelo diretório apropriado nas etapas abaixo.
  • Expanda o arquivo "Metaboard PaP.zip" no diretório C:\Arduino\hardware\arduino
  • Execute o arquivo batch C:\Arduino\hardware\arduino\prepmeta.bat
  • Abra a IDE do Arduino e confira que a opção Metaboard aparece no menu Tool Board.
Passo 2 - Preparação do Arduino para Gravação do Bootloader

Conecte o Arduino Uno a um PC e abra a IDE do Arduino. Confira em Tools Board que Arduino Uno está selecionado. Confira a porta de comunicação em Tools Serial Port.

Abra File Examples ArduinoISP e clique em Upload. Aguarde o término da carga e confira que não ocorreu erros. Se apareceu algum erro, verifique a conexão do PC ao Arduino se a porta correta está selecionada.

Desconecte o Arduino do PC e coloque o capacitor de 10uF entre o pino de Reset e o pino GND, tomando o cuidado de colocar no GND a perna do capacitor marcada como '-'.

Passo 3 - Montagem para Gravação do Bootloader

A primeira parte desta montagem faz parte da montagem final:
  • Coloque o ATmega na protoboard, orientando a marca rebaixada para a esquerda.
  • Coloque o cristal entre os pinos 9 e 10 do ATmega. Uma marquinha indica o pino 1, a contagem segue da esquerda para a direita pelo lado inferior até o pino 14 e continua no lado de cima da direita para a esquerda. O cristal não tem polaridade.
  • Coloque um capacitor de 22pF entre o pino 9 e o pino 8 do ATmega. Este capacitor não tem polaridade.
  • Coloque o outro capacitor de 22pF entre o pino 10 e o pino 8 do ATmega.
A segunda parte desta montagem é a interconexão ao Arduino. Após a gravação esta montagem deve ser desfeita:
  • Ligue o pino 1 do ATmega ao pino Digital 10 do Arduino
  • Ligue o pino 7 do ATmega ao pino +5V do Arduino
  • Ligue o pino 8 do ATmega ao pino GND do Arduino
  • Ligue o pino 17 do ATmega ao pino Digital 11 do Arduino 
  • Ligue o pino 18 do ATmega ao pino Digital 12 do Arduino  
  • Ligue o pino 19 do ATmega ao pino Digital 13 do Arduino 
Passo 4 - Gravação do Bootloader

Reconecte o Arduino ao PC. Selecione "Metaboard" em Tools Board. Selecione "Arduino as ISP" em Tools Programmer. Selecione Tools Burn Bootloader.

Aguarde.

Quando aparecer "Done burning bootloader", desconecte o Arduino do PC.

Em caso de erro confira os passos anteriores.

Passo 5 - Identificação dos fios do cabo USB

As figuras abaixo mostram a disposição dos sinais no conector USB e as cores usuais. Para evitar surpresas, confira com um multímetro qual fio corresponde a qual sinal.


Passo 6 - Témino da Montagem da Metaboard

Não se esqueça de desconectar o Arduino da protoboard antes de executar as etapas abaixo:
  • Conecta o cabo USB à protoboard, mas não conecte ainda ao PC
  • Ligue os sinais de alimentação da USB (GND e VBus) às barras horizontais de alimentação na protoboard
  • Ao pino 1 do ATmega devem ser ligados:
    • Resistor de 10K para o positivo da alimentação
    • Botão de contato momentâneo para terra
  • Ao pino 4 do ATmega deve ser ligado um resistor de 68R. Na outra ponta deste resistor devem ser ligados:
    • Resistor de 1M para o negativo da alimentação (GND)
    • A perna marcada com uma faixa do Zener de 3,6V. A outra perna do Zener deve ir para o terra.
    • O fio D+ do cabo USB
  • Ao pino 6 do ATmega deve ser ligado um resistor de 68R. Na outra ponta deste resistor devem ser ligados:
    • Resistor de 1K5 para o positivo da alimentação
    • A perna marcada com uma faixa do Zener de 3,6V. A outra perna do Zener deve ir para o terra.
    • O fio D- do cabo USB
  • O pino 7 do ATmega deve ser ligado ao positivo da alimentação
  • O pino 8 do ATmega deve ser ligado ao negativo da alimentação
  •  No pino 13 deve ser ligada a chave de duas posições. O outro terminal da chave deve ser ligado ao negativo da alimentação.
  • O pino 19 deve ser ligado a um resistor de 1K. A outra ponta deve ser ligada ao positivo do LED (perna mais comprida). O negativo do LED deve ser ligado ao negativo da alimentação.
  • O pino 20 do ATmega deve ser ligado ao positivo da alimentação
  • O pino 22 do ATmega deve ser ligado ao negativo da alimentação
As figuras abaixo mostram o circuito montado:


Passo 7 -Teste Final

Se você não fez isto ainda, expanda o ZIP com os drivers do USBASP em um diretório de trabalho.

Coloque a chave na posição "fechada", conecte o cabo USB ao PC e aperte o botão de contato momentâneo (Reset). Se tudo correr bem, o Windows irá reconhecer um novo dispositivo e solicitar o driver. Indique o diretório onde você expandiu os drivers.

 Na IDE do Arduino (onde ainda deve estar selecionada a placa Metaboard), abra o exemplo Blink e mande fazer o upload. Em poucos instantes o LED estará piscando alegremente.

Lembretes Finais

Para a carga de programas na Metaboard é preciso ativar o bootloader, o que é feito fechando a chave e dando o reset manual através do botão. Para que o botão de reset reinicie o seu sketch, basta abrir a chave.

A comunicação USB funciona somente dentro do bootloader. As funções Serial do Arduino continuarão usando os pinos da UART (pinos 2 e 3) que estão abertos na nossa montagem.

7 comentários:

Unknown disse...
Este comentário foi removido pelo autor.
Unknown disse...

DQ tudo bem ?
Estou usando esse post para aprender a monta minha Metaboard, uma duvida surgiu em relação ao custo-benefício entre a Metaboard e um Arduino Pro Mini por exemplo.
A Metaboard é para fins didáticos ou teria uma aplicação mais especifica ?

Daniel Quadros disse...

Marcelo, a Metaboard segue a linha "monte você mesmo", enquanto que um Arduino Pro Mini você compra montado. Uma vantagem da Metaboard em relação ao Pro Mini é que ela permite ligar direto à USB de um micro para carga de programas, enquanto que o Pro Mini requer um conversor serial ttl usb. Como a Metaboard é uma montagem artesanal e não usa componentes SMD, vai ficar maior mesmo que você faça uma placa de circuito impresso.

Unknown disse...

DQ, obrigado pela resposta, agora pude compreender.
Estou montando um joystyck para jogos de corrida e um Head Tracking com um MPU-6050 e quero usar a Metaboard.
Não sei como fica a comunicação serial, mas acho que um modulo bluetooth deve resolver.

Truman disse...

Legal esse projeto DQ!

Achei esta montagem do lilnk abaixo interessante também pois com ela pode-se usar shields para arduino. Queimei uns arduinos mas descobri que eles ainda funcionam: apenas a conexão usb ficou afetada. Fazendo o upload do código fora o arduino "queimado" funciona sem problema.

http://vonkonow.com/wordpress/2012/10/nanino-the-diy-friendly-arduino/

Daniel Quadros disse...

Truman, sei que é improvável, mas você verificou se não foi vítima dos drives que desconfiguram o FTDI?
http://dqsoft.blogspot.com.br/2014/10/novos-drivers-ftdi-para-windows-estao.html

Truman disse...

DQ acho improvável DQ porque um deles foi um curto desproposital e o outro é original. Mas vou conferir. Vai que...