quinta-feira, fevereiro 21, 2013

Usando a Metaboard na IDE do Arduino

Finalizando esta série sobre a Metaboard, veremos como usá-la com a IDE do Arduino.





O primeiro passo é acrescentar a metaboard ao arquivo de definição das placas da IDE (boards.txt). No Windows, este arquivo fica no subdiretório "hardware\arduino". Uma pequena dificuldade é que este arquivo utiliza fim de linha padrão *nix (LF) ao invés do padrão Windows (CR e LF), portanto fica difícil editar com o notepad. Eu, particularmente, uso o SciTE, mas a maioria dos editores de programa aceita o padão *nix.

Para a minha versão da Metaboard, a definição que acrescentei no final foi:

##############################################################

metaboard.name=Metaboard_100Nocao

metaboard.upload.protocol=usbasp
metaboard.upload.maximum_size=30720
metaboard.upload.speed=19200

metaboard.build.mcu=atmega328p
metaboard.build.f_cpu=16000000L
metaboard.build.core=arduino
metaboard.build.variant=standard

metaboard.upload.disable_flushing=true

A definição é quase auto explicativa. O nome é o nome que será apresentado no menu de placas da IDE. Os parâmetros de uploade informam que o protocolo a usar é o usbasp e que o tamanho máximo do programa é 30K (32K da Flash menos os 2K do bootloader). A velocidade (speed) não é importante pois a comunicação não é serial assíncrona.

Os parâmetros build descrevem o hardware. No meu caso eu uso atmega328p (a metaboard original usa o atmega168). O resto é o padrão do Arduino, incluindo o clock de 16MHz.

A estranha linha final faz a mágica da IDE entender que não é necessário configurar uma interface serial (util, já que o meu netbook não tem nenhuma).

Feita a alteração no arquivo, a IDE passará a apresenta a nova opção de placa. Aí é só usar a IDE, lembrando que:
  • A porta serial (acessada pela classe Serial) não está conectada a nada, portanto não faz muito sentido usá-la para falar com PC. Sim, você poderia conectar a estes pinos um conversor para RS232 (como o MAX232) ou para USB, mas aí não faz sentido ter o bootloader e interface USB da metaboard.
  • Você pode usar a serial da metaboard para falar com dispositivos seriais assíncronos que trabalhem com "nível TTL", como o leitor de RFID que apresentei por aqui.
  • Quando você quiser enviar um programa para a placa, deve primeiro conferir que a chave está na posição bootloader e pressionar o botão de resset.
  • O meu circuito possui LEDs vermelho, amarelo e verde ligados, respectivamente, aos DIO 13, 12 e 11, 12 e 13 e um LDR (resistor sensível a luz) ligado a AN0.
Resumindo, a metaboard é uma opção interessante para quem quer montar uma placa compatível com o Arduino, que permite gravação via USB e não precisa de comunicação serial com o micro.

4 comentários:

Camilo de Lellis Barreto Júnior disse...

Boa tarde, é possível comunicar via serial, igual o arduino?

Daniel Quadros disse...

Camilo, infelizmente a comunicação serial é somente para a carga de programas.

Paulo Roquetti disse...

montei o METABOARD, mas não consegui o driver do USBasp para win7 32bits, você tem? pode postar o link? obrigado

Daniel Quadros disse...

Paulo: o site oficial do USBasp é http://www.fischl.de/usbasp/ o driver que está lá deve funcionar com Windows 7 32 e 64 bits.