Curso de Arduino – Aula 4 – Construindo uma placa compatível Arduino

[sc name="estilos_lista_colorida"]

Apresentando o X-Duino

Na aula deste curso sobre o hardware Arduino, pudemos aprender como é composto o hardware de uma placa arduino oficial. A partir de agora, vamos analizar o circuito da nossa versão de Arduino, o X-Duino. Tenha em conta a imagem acima e abaixo bem como a legenda. construindo_xduino_esquema_explicado Legenda:
  • Fonte de Alimentação Principal
  • Fonte de Alimentação Secundária (opcional)
  • Hardware USB
  • Filtro para tensão de referência
  • Conectores de sinais com pinos de alimentação
  • Proto area integrada
construindo_xduino_placa_explicada

Fonte de Alimentação.

xduino_fonte_alimentacao
A função da fonte de alimentação é fornecer tensões de um certo valor, com o mínimo de alterações ou ruídos em relação à tensão desejada. A nossa placa usa um micro-controlador que requer uma tensão regulada de 5 Volts com corrente de 500mA (0,5 Ampére) em pleno funcionamento. A fonte de alimentação principal, baseado no chip 7805 que fornece 5 Volts e 1 Ampére, permite que nossa placa seja alimentada por baterias ou fontes com tensões desde 7 Volts até 35 Volts. O 7805 é o componente preto e grande que fica no canto superior direito da imagem ao lado. Existem outros circuitos que necessitam de 3,3 Volts para funcionar. Por isso incluimos uma fonte de alimentação adicional. Usamos o chip LM317 que é um regulador ajustável, e permite que qualquer tensão seja obtida, apenas trocando o valor de dois resistores. Existe até uma calculadora no nosso site aqui que deve ser utilizada quando desejamos uma tensão específica. O LM317 não foi soldado na placa exemplo. Ele tem o mesmo formato do 7805. Note a posição do LM317 é do lado esquerdo do 7805, note os tres pinos e o espaço para o dissipador de calor dele. A fonte de 3,3 Volts é opcional, necessária apenas em alguns casos, e deixar sem os componentes não afeta o funcionamento da X-Duino

Hardware USB

xduino_usbA grande dificuldade de construir uma placa arduino "oficial" é o chip FTDI232, usado para a conversão USB-Serial usado para realizar a programação e depuração. Esse chip é caro e dificílimo de soldar, então não queria usá-lo na nossa versão de placa. Porém não é possível ligar uma Arduino direto em um PC, seja via porta RS232 ou USB porque o chip usado (atMega) tem apenas porta serial TTL. A placa Severino adotou uma elegante solução para esse caso, usando transistores baratos para converter a porta serial TTL para uma porta RS232. Uma pequena obra de arte podemos dizer. Eventualmente essa solução necessita um cabo conversor USB-SERIAL para funcionar em notebooks e pcs mais novos. Depois de quebrar a cabeça a respeito do que fazer para programar a placa, encontrei uma solução praticamente pronta. Uma implementação do protocolo de comunicação USB direto no firmware do Arduino. Outra obra de arte e o criador é a Objective Development. A biblioteca que eles criaram pode ser usada para comunicação entre o software do Arduino para gravação do programa. Baixei os fontes do bootloader para arduino aqui: USBaspLoader Depois ajustei ele só um pouquinho e compilei um novo bootloader para o X-Duino usando eclipse+winAVR. Usando apenas 3 resistores, dois diodos e software, o X-Duino usa comunicação USB baseada em software, ou seja, ao invés de usar um chip especial ou um cabo conversor USB para efetuar a gravação do programa, usamos uma solução codificada no próprio bootloader. No final da alua tem os links para baixar os fontes do X-Duino e os arquivos .hex compilados para o atMEGA8, 168 e 328p  

Filtro para tensão de referência

xduino_filtroO micro-controlador que usamos no arduino tem uma eletrônica interna dedicada a realizar medições externas de tensão. Isso é util quando usamos sensores e desejamos "ler" valores dele. Esta eletrônica chama-se Conversor Analógico/Digital e o X-Duino tem seis pinos que podem realizar leitura de tensão entre 0 e 5 Volts, nos entregando no programa uma variável que vale 0 para zero volts e 1024 quando a leitura chegou nos 5 Volts. Veremos isso adiante com mais detalhes na Aula 6 - Exemplos Para que a leitura seja a mais precisa possível, o micro-controlador precisa de uma tensão de referência para comparar com o sinal a ser medido. Essa tensão de referência deve ser o mais estável possível, portanto além de uma fonte de alimentação estável incluimos um filtro adicional do tipo LC (uma bobina e um capacitor), que implementamos entre a fonte de alimentação e o pino de referência do chip. Na imagem nota-se uma peça verde, é um jumper usado para conectar o 5V da alimentação na entrada do filtro, ou usar outra tensão na entrada do filtro. A necessidade de usar outra tensão de referência é quando por exemplo desejamos ler sensores alimentados pela fonte de 3,3 V e temos que usar essa tensão como referência, e não os 5V. Então removemos o jumper e conectamos a tensão no pino que fica do lado de dentro da placa, esse pino é a entrada do filtro.  

Conectores de sinais com pinos de alimentação

Uma placa arduino possui os terminais de sinais em duas fileiras de conectores "fêmea", para que seja possível encaixar fios e realizar as conexões externas. Nossa versão de placa, pode ser montada com conectores fêmeas ou macho, chamados barra-pino, mas adicionalmente à fileira de sinais, colocamos duas fileiras adicionais, disponibilizando em uma os 5 Volts da alimentação e em outra, o terra ou negativo da alimentação (zero Volts) Passa a ser muito prático conectar as coisas na X-Duino, porque para cada pino de sinal dispomos dos pinos de alimentação, não sendo necessário emendas externas. No caso de uma arduino, ao conectar mais eletrônica externa é necessário dividir os pinos gnd (terra) e 5 V, que são apenas dois furos na placa. construindo_arduino_pinos construindo_xduino_pinos  

Proto-board Integrada

Para terminar a lista de alterações, incluimos um conjunto de "ilhas" ou "pads" alinhados em uma distância padrão, permitindo que eletrônica adicional seja incluída na placa e conectada ao resto do circuito através de fios construindo_xduino_protoarea  

Configurando a X-DUINO na IDE Arduino 1.0

Para que a placa X-Duino possa ser listada como uma placa válida na IDE, um arquivo precisa ser alterado. Esse arquivo é o arquivo boards.txt, que armazena informações de configurações que a IDE utiliza para lidar com cada modelo de placa Arduino. Abra o arquivo boards.txt. Ele fica localizado: no GNU/Linux /usr/share/arduino/hardware/arduino/boards.txt, no windows ele fica na subpasta C:\Arquivos de Programas\Arduino 1.0\hardware\arduino\boards.txt

xduino_linuxpathCaminho do arquivo boards.txt no Ubuntu

xduino_winpathCaminho do arquivo boards.txt no Windows

Adicione ao seu arquivo boards.txt o conteúdo do arquivo boards.txt fornecido na última página da aula, e salve o arquivo. Se alguma tela do arduino estiver aberta, feche todas e abra a IDE novamente.

xduino_ideconfig

Considerações adicionais

Para realizar a gravação da nossa placa, conecte um cabo USB no conector da placa (dica: esse cabo existe na sucata de mouse). Pressione o botão reset para avisar o bootloader que um programa será enviado para a placa. Neste momento o PC identifica a X-DUINO como dispositivo USB. Abaixo duas formas de verificar se o X-Duino conseguiu conectar.
X-Duino executando o programa "blink". Note o cabo USB conectado na placa.

X-Duino executando o programa "blink". Note o cabo USB conectado na placa.

No caso de PCs rodando windows, um driver deverá ser instalado na primeira vez que a placa for conectada. Disponibilizamos um pacote na última página da aula. Abra então o gerenciador de dispositivos e veja a placa instalada: xduino_winusb

No GNU/Linux e no MAC OSX nenhum driver é necessário. Depois de pressionar o botão de reset, execute o comando lsusb no shell.

xduino_linuxusb

Após pesquisar sobre o uso do circuito USB da X-DUINO para realizar a comunicação serial para depuração, ainda não consegui fazer funcionar. Portanto, para realizar a depuração ou comunicação através da porta serial TTL, um conversor adicional deverá ser utilizado. Na próxima página confira os links para baixar o material para construir sua X-DUINO! Veja abaixo um exemplo da nossa placa em ação!