Projeto Eletrônico


Tarefa em grupo

Tarefa individual

Objetivos de aprendizagem:

Você:

Fluxo de trabalho da semana

Tarefa da semana → introdução ao Eagle → editar esquemático/placa → fresar a placa → soldar os componentes → depurar → editar e publicar o site


Tarefa em grupo

Veja a página da tarefa em grupo

Ferramentas usadas


Software usado


Arquivos de projeto da hello board


  1. Usando os equipamentos de teste do nosso lab
  2. Comecei assistindo ao vídeo no YouTube da SparkFun sobre o osciloscópio

    Aprendi:
    • Que o osciloscópio mede tensão ao longo do tempo: dá para ver amplitude, frequência, sinais transitórios
    • Os botões importantes...

      O osciloscópio do nosso lab O osciloscópio do nosso lab

    • Calibrar a ponta de prova/ajustar o capacitor de compensação

      Ponta de prova do osciloscópio Ponta de prova do osciloscópio

      1. Na ponta de prova, selecione X10
      2. Ligue a ponta de prova na entrada do canal um
      3. Ligue a ponta de prova no gerador de onda quadrada de 1kHz 5V
      4. Ligue o osciloscópio
      5. Garanta que só o canal um esteja ligado: aperte o botão CH2 até ele desligar, e o contrário com o botão CH1
      6. Selecione o acoplamento DC com a tecla F1
      7. Aperte o botão F4 para selecionar 10X no modo da ponta de prova
      8. Aperte o botão trig/menu e selecione o tipo "edge" e a fonte CH1
      9. Selecione a inclinação (slope) como "Rise"
      10. Ajuste os botões vertical e horizontal até aparecer a onda
      11. Se a onda estiver andando, ajuste o botão de trigger até ela parar
      12. Para calibrar a ponta de prova, ajuste o parafuso na base da ponta até a onda ficar quadrada

        Foto da onda antes e depois do ajuste Foto da onda antes e depois do ajuste


  3. Introdução ao Eagle:
    1. Comecei assistindo aos tutoriais em vídeo abaixo, depois dei uma olhada no tutorial de Eagle da semana 6. Seguindo o tutorial, baixei e instalei a biblioteca Fab para o Eagle.

    Layout de placa de circuito impresso

  4. Engenharia reversa da placa do Neil

    A Hello Board do Neil A Hello Board do Neil

    1. Comecei dando uma olhada no tutorial Electronics Design - Eagle. Com o esquemático acima em mãos, comecei a redesenhar a placa no Eagle
  5. Esquemático passo a passo:
    1. Em projects → clique com o botão direito em Eagle → clique em new project → dê um nome ao projeto

      Criando um projeto novo no Eagle

    2. Clique com o botão direito no nome do projeto → new → Schematic

      Criando um esquemático novo no Eagle

    3. Digite "add" → procure cada componente

      Adicionando componentes no Eagle

    4. Posicione o componente com um clique esquerdo → repita até colocar todos os componentes do mesmo tipo → aperte ESC para adicionar o próximo componente → procure o próximo componente ou aperte ESC para voltar ao esquemático

      Posicionando componentes no Eagle

    5. Digite "rotate" e clique com o botão esquerdo na origem do componente para girá-lo até a posição desejada
    6. Digite "net" para ligar os componentes entre si
    7. Digite "name" e clique com o botão esquerdo em cima de um componente para dar nome a ele
    8. Digite "label" e clique com o botão esquerdo num fio para ligar um ao outro sem precisar desenhar um net
    9. Digite "value" e clique com o botão esquerdo na origem do componente para definir o "value" dele
    10. Digite "move" para posicionar o componente como precisar
    11. Salve o arquivo

    Esquemático no Eagle

    No esquemático acima dá para ver que a maioria dos componentes não está ligada por uma linha (o comando "net"), com exceção do cristal (XTAL1). O resto dos componentes está ligado virtualmente com o comando "label", como expliquei na letra "h" acima.


  6. Desenhando a placa
    Para posicionar os componentes na PCB, use os mesmos comandos do esquemático:
    1. Clique com o botão esquerdo em file → digite "board" → aceite o aviso e clique em yes para criar a placa e começar a desenhar a PCB a partir do esquemático criado antes

      Criando a placa no Eagle

    2. Todos os componentes vão aparecer à esquerda da placa → arraste um por um com o comando "move" + clique esquerdo e arraste para colocá-los dentro da placa
    3. Digite "rotate" para girar os componentes do mesmo jeito que no esquemático
    4. Depois de tudo posicionado → redimensione a placa arrastando as bordas da placa original com o comando "move"
    5. Digite "polygon", selecione a camada top e desenhe um quadrado em volta dos limites da placa para criar a camada de cima da PCB
    6. Digite "ratsnest" → para iniciar o autorouter, digite "auto". Esse comando é muito prático, porque dá uma ideia inicial de como rotear a placa, mas não substitui o roteamento manual

      Usando o autorouter no Eagle

    7. Selecione start

      Iniciando o autorouter no Eagle

    8. Ajuste as trilhas se precisar com o comando "ripup" para remover os caminhos colocados
    9. Coloque novos caminhos com os comandos "route" e "move" para posicioná-los melhor
    10. Digite o comando "info" + clique esquerdo para fazer o ajuste fino da posição dos caminhos e também da espessura deles

    Dá para ver como eu fiz aqui. Aumenta o volume para ouvir um pouco de Cash!

    Se não tocar, veja no YouTube!


  7. Adicionando o LED e o botão
    1. Para adicionar o LED e o botão, voltei ao esquemático
    2. No esquemático, digite "add" para adicionar dois resistores, um LED e o botão
    3. O primeiro resistor limita a corrente que vai para o LED. Ele fica em série com o LED (de qualquer um dos lados). Para dimensionar o resistor, primeiro olhei o datasheet do LED. Lá procurei a corrente direta DC, neste caso 30 mA, e a tensão direta, neste caso 2,1 V
    4. Com esses dois valores e mais a minha tensão de entrada (5 V) em mãos, coloquei os valores no site LED center para calcular o resistor certo, neste caso 100 Ohms. Na placa usei o resistor de 500 Ohms do esquemático (499 Ohms no inventário Fab), que deixa o LED bem abaixo do limite de 30 mA.

      Cálculo do resistor do LED

    5. Para o botão, usei um resistor de 10K como pull-up
    6. Como antes, usei os comandos move, rotate, label, name e copy para colocar todos os componentes no lugar

  8. Fazer a BOM (lista de materiais)
    1. Clique com o botão esquerdo no link design → clique com o botão esquerdo em Schematic

      Criando a BOM no Eagle

    2. Espere o programa mostrar o componente → digite uma nova busca caso o componente desejado não apareça → clique em manual search → escolha o componente desejado → clique em select

      Selecionando componentes para a BOM no Eagle

    3. Repita o processo anterior até encontrar todos os componentes
    4. Clique em export e salve o arquivo da BOM

      Exportando a BOM no Eagle

    Depois de umas edições, aqui está ela:

    Qtd Posição Código Digikey ou Mouser Código do fabricante Descrição
    1 U1 ATTINY44 ATTINY44 IC 4KB FLASH
    2 R1 311-10.0KFRCT-ND RC1206FR-0710KL RES SMD 10K OHM 1% 1/4W 1206
    1 R2 311-499FRCT-ND RC1206FR-07499RL RES SMD 499 OHM 1% 1/4W 1206
    1 D3 160-1169-1-ND LTST-C150GKT LED GREEN CLEAR 1206 SMD
    1 C1 445-1423-1-ND C3216X7R1H105K160AB CAP CER 1UF 50V X7R 1206
    1 FTDI Barra de pinos de 6 pinos
    1 RESONATOR XC1109CT-ND ECS-CR2-20.00-B-TR CER RES 20.0000MHZ 15PF SMD
    1 450-2058-1-ND FSM6JSMATR SWITCH TACTILE SPST-NO 0.05A 24V
    1 ISP 649-95278-101A06LF 71600-006LF Headers & Wire Housings 2X3P UNSHRD HDR 30 micro inch gold

  9. Exportando a imagem para o Fab Modules
    1. Vá em Options, Set, Misc e desmarque Display pad names, signal and via lengths. Isso evita que apareça texto indesejado na imagem exportada
    2. Na barra de camadas, selecione só a camada top

      Selecionando a camada top no Eagle

    3. Depois digite "export" → selecione image e monochrome → e em resolution digite 500
    4. Salve onde quiser

      Exportando a imagem no Eagle

    5. O resultado é uma imagem em preto e branco

  10. Editando no Gimp
    1. Com a imagem exportada do Eagle em mãos, abra no Gimp
    2. No Gimp, resolvi colocar uns textos. Foi fácil: selecionei a ferramenta de texto, depois o tamanho da fonte, e girei o texto até um lugar ideal
    3. Também apaguei as áreas pretas desnecessárias com a ferramenta balde
    4. Para criar o contorno, selecionei a área que eu queria manter e pintei com a ferramenta balde
    5. No fim você deve ter duas imagens, uma para a PCB e outra para o contorno

    Imagem da PCB pronta para o Fab Modules Imagem da PCB pronta para o Fab Modules

    Contorno da PCB pronto para o Fab Modules Contorno da PCB pronto para o Fab Modules


  11. Fab Modules e fresagem

    O processo no Fab Modules e a fresagem já estão descritos na tarefa da semana 4, então aqui vou deixar só uma imagem do resultado

    PCB fresada PCB fresada, polida com pasta de dente para ficar mais bonita


  12. Soldando/populando a PCB e depurando

    O resultado

    Como antes, a montagem e a depuração já estão descritas na tarefa da semana 4, então aqui vou deixar só uma imagem do resultado

    PCB montada PCB montada, pronta para gravar o firmware

  13. Gravar o firmware

    Aviso

    Na verdade fiz esta atividade na semana de programação embarcada. Só coloquei aqui para cumprir os requisitos da Fab Academy.

    Dito isso, segue o teste da minha placa.

    1. Identificar um código de exemplo:

      - Tem este código do Prof. Neil

    2. Identificar os comandos para compilar e gravar o firmware

      - Com todos os arquivos baixados antes numa mesma pasta, no Linux renomeio o arquivo para makefile e rodo o script para criar o firmware (vou repetir este passo toda vez que quiser mudar o código):

      mv hello.ftdi.44.echo.c.make makefile
      make

      Renomeando para makefile e compilando Renomeando para makefile e compilando

    3. Compilar o código-fonte

      - Feito no passo anterior

    4. Adaptar o makefile para funcionar com o meu programador

      Editando o makefile Tive que editar o makefile para funcionar com o meu programador. Fiz isso trocando a entrada usbtiny por USBasp 2 vezes, uma para gravar o firmware e outra para gravar os fuses

    5. Gravar o firmware

      Rode:

      make program-usbasp

      Gravando o firmware Gravando o firmware

    6. Identificar quais fuses gravar

      - Isso já estava feito no makefile

    7. Gravar os fuses

      Rode:

      make program-usbasp-fuses

      Gravando os fuses Gravando os fuses

Programadores FabISP e USBasp

Aqui mostro como usei os programadores em Dispositivos de Saída. Para outro método sem a Arduino IDE, veja Programação Embarcada

USBaspUSBasp

Programando uma placa com ATtiny44 pela Arduino IDE usando um FabTinyISP ou USBtinyISP que eu fiz.

FabISPFabISP

Programar uma placa com ATtiny44 pela Arduino IDE usando um FabTinyISP ou USBtinyISP que eu fiz funcionou bem. O único incômodo é ter que alimentar a placa-alvo.

Comece abrindo a Arduino IDE, depois em Tools escolha a placa, no meu caso ATtiny24/44/84. Depois, em Processor, escolhi ATtiny44.

Programando o ATtiny44 com o Arduino

Depois escolha o clock. Como não estou usando cristal externo, escolhi "Internal 8MHz". (Estes passos vêm da placa de Output Devices. Esta placa tem um ressonador de 20 MHz, então aqui o certo é "External 20 MHz".)

Escolhendo o clock no Arduino

Depois vá em Programmer: "USBasp", ou "USBtiny" para o FabISP.

Escolhendo o programador no Arduino

No vídeo abaixo mostro o processo de programar com o FabISP.

Para o vídeo em resolução máxima, veja no YouTube

Neste vídeo mostro o processo de programar com o USBasp.

Para o vídeo em resolução máxima, veja no YouTube


Primeiro teste

Gravando o código do Neil "hello.ftdi.44.echo.c"

Aqui, em vez de usar o terminal e o avrdude, usei a Arduino IDE, porque ela tem um monitor serial embutido.

Os resultados estão no vídeo


Gostei muito de aprender essa ferramenta nova. Eu já tinha usado o Eagle para ver PCBs, mas nunca tinha desenhado uma. Sinto que isso abre a minha cabeça para muita coisa nova que vem por aí!

Para ver como programei esta placa, veja a semana de Programação Embarcada.

← (04 mar) Escaneamento e Impressão 3D · todas as semanas · Usinagem Controlada por Computador (18 mar) →