Índice:

Canivete suíço AVR: 14 etapas (com fotos)
Canivete suíço AVR: 14 etapas (com fotos)

Vídeo: Canivete suíço AVR: 14 etapas (com fotos)

Vídeo: Canivete suíço AVR: 14 etapas (com fotos)
Vídeo: REVIEW CANIVETE VICTORINOX SWISS CHAMP (canivete com 33 funções) Zona de Testes #zonadetestes 2024, Novembro
Anonim
Canivete suíço AVR
Canivete suíço AVR
Canivete suíço AVR
Canivete suíço AVR
Canivete suíço AVR
Canivete suíço AVR
Canivete suíço AVR
Canivete suíço AVR

O Swiss AVR Knife agrupa uma série de projetos de programação AVR em um único e conveniente Altoids Gum Tin. Devido à flexibilidade proporcionada pela programação do microcontrolador, ele também fornece um ponto de partida para qualquer número de projetos baseados em LEDs e saída de som. O SAK pode conter tantos programas quantos os 8K de memória permitirem e mantém oito estados para cada programa. O botão azul faz com que o SAK percorra os programas e estados - um toque rápido faz com que ele permaneça no programa, mas mude para o próximo estado (independentemente do modo como estiver definido) e um toque longo faz com que ele avance para o próximo programa. O programa atual e os estados de todos os programas são preservados na EEPROM entre os usos.

Os projetos atualmente implementados no SAK incluem o seguinte. Estes, junto com todos os outros códigos e constantes (há uma tabela de fontes completa), ocupam cerca de 4 K do espaço disponível. Muito mais espaço! MiniMenorah - Evil Mad Scientists Brain Machine - Mitch AltmanMiniPOV - Adafruit IndustriesNoise Toy - Loud Objects LED Running lights LED Candle LED Flashlight Este projeto não existiria sem a considerável generosidade de todos que contribuíram de uma forma ou de outra. Além do mencionado acima, gostaria de agradecer aos desenvolvedores das ferramentas de software utilizadas (ver em outras etapas) e a todos que disponibilizaram um site útil que facilitou meu entendimento sobre esses tópicos. Posso receber crédito direto por muito pouco do código usado neste projeto. Se você acha que o código é seu, pode muito bem ser. Deixe-me saber e terei todo o prazer em dar-lhe o crédito. Em qualquer caso, obrigado por sua contribuição:-)

Etapa 1: peças

As peças podem ser obtidas de vários fornecedores de eletrônicos. Por causa da restrição de espaço, a maioria dos componentes são necessários conforme indicado. Tudo mal se encaixa; certifique-se de que nenhuma peça substituta ocupe espaço adicional. Não substitua o ATtiny84 a menos que você tenha absoluta certeza de que os pinos correspondem. Os links que seguem as peças são para DigiKey e All Electronics. Componentes eletrônicos1 x U1 - ATtiny84 - ATTINY84-20PU-ND1 x Ux - Soquete IC DIP de 14 pinos - A32879-ND9 x LED - sua escolha de cor9 x resistores - combinados com seus LEDs2 x R1, R2 - 100 ohm 1 / 4W 1% filme de metal - 100XBK-ND2 x C7, C8 - 47uF - P5151-NDMetipo de bateria diverso 1-AA 6 "condutores de fio (1) 2461K-NDPhone jack estéreo de 3,5 mm (1) MJW-22 Interruptor rotativo SPDT 1/4 "on-on (1) MTS-4 Interruptor do botão push (1) 450-1654-NDMinty Boost O SAK é alimentado por uma única bateria AA reforçada por um chip Maxim MAX756 (o componente essencial do MintyBoost!). Os componentes abaixo são aqueles necessários para esta parte do circuito.1 x U1 - MAX756CPA DC / DC 3,3 / 5V DIP - MAX756CPA + -ND1 x Ux - Soquete IC DIP de 8 pinos - A32878-ND2 x C7, C8 - 0,1uF - 399-4151-ND2 x C3, C5 - 100uF - P5152-ND1 x L1 - 22uH radial - M9985-ND1 x D1 - 1N5818 Schottky 1A 30V - 1N5818-E3 / 1GI- WL

Etapa 2: Microcontrolador ATtiny84

Microcontrolador ATtiny84
Microcontrolador ATtiny84

Muitos projetos usam o microcontrolador ATtiny2313 de 20 pinos ou ATtiny85 de 8 pinos. Achei o ATtiny2313 muito grande (para o gabinete) e o ATtiny85 muito pequeno (memória insuficiente, pinos de saída insuficientes). O ATtiny84 é perfeito:-) O ATtiny84 tem 8K de memória flash programável (o suficiente para armazenar muitos programas pequenos), 512K de EEPROM (para armazenar o estado entre os usos), até 12 pinos de saída (para os 9 LEDs, 2 canais de saída de áudio e um botão de pressão), e muitas outras coisas que não são usadas neste projeto. Se você planeja adicionar programas, obtenha uma cópia da folha de dados do ATtiny84. Existem muitos guias de instrução para aprender a programar essa família de microcontroladores na Internet. Para obter um resumo útil sobre microcontroladores, consulte Como escolher um microcontrolador. Observação: O projeto descrito aqui não tem o MiniMenorah totalmente ativado. O MM requer nove pinos de saída, o Brain Machine dois e o botão para alterar o estado um, para um total de doze. Embora o ATtiny84 possa ser configurado para ter doze pinos de saída, isso ocorre às custas do pino RESET. Desativar o pino RESET e torná-lo I / O torna o ATtiny84 incapaz de ser programado com o programador USBtinyISP (quem não fez isso:-) e requer programação de alta tensão. Tudo está pronto para habilitar o MM, mas um programador diferente é necessário, e eu não tenho um.

Etapa 3: Ferramentas de programação AVR

Ferramentas de programação AVR
Ferramentas de programação AVR
Ferramentas de programação AVR
Ferramentas de programação AVR

Vários componentes, hardware e software, são necessários para programar microcontroladores AVR. Abaixo estão as ferramentas que utilizo. Muitos, muitos outros existem na mesma faixa de preço - de grátis a barato. Encontre um conjunto que funcione para você e fique com eles. Melhor ainda, encontre um amigo que desenvolveu um sistema e use suas ferramentas. Nada é particularmente difícil se tudo correr como anunciado, mas fazer com que todas as ferramentas funcionem juntas pode ser um verdadeiro desafio. O berço da programação foi baseado no Ghetto Programming Environment. Os pinos longos do suporte do chip wirewrap estendem-se até uma placa de ensaio e são uma configuração experimental conveniente. O único problema que encontrei é que os componentes dos pinos de programação não podem ser aterrados durante a programação. Adotei duas abordagens para resolver esse problema. O primeiro é ter dois porta-chips, um para programação e outro para operação (ver berço de 8 pinos). Isso não é ideal porque torna inutilizável grande parte da placa de ensaio e é muito chato mover o chip. A segunda é instalar um pequeno interruptor para desconectar o pino de aterramento da placa de ensaio durante a programação. Isso funciona melhor e deixa mais espaço na placa de ensaio para os componentes. Kit do ProgrammerUSBtinyISP da Adafruit Industries. Com uma pequena modificação (remova o cabo de 10 pinos e dobre os LEDs), o programador se encaixa em uma lata de chiclete Altoids. O cabo de 6 pinos pode até mesmo ser enrolado na lata para armazenamento. SoftwareWinAVR é uma coleção de ferramentas de desenvolvimento de software de código aberto para a programação de microcontroladores AVR em máquinas Windows. Ele funciona bem com o programador USBtinyISP (veja o Tutorial do AVR). Recentemente mudei de usar o aplicativo Bloco de notas do programador que vem junto com o WinAVR para usar o Eclipse com o plug-in AVR Eclipse. O Eclipse pode usar o avrdude, então você terá que instalar o WinAVR de qualquer maneira. Eclipse tem melhor gerenciamento de projeto, tutoriais úteis e é gratuito. Demorou apenas alguns minutos para instalá-lo, trabalhar com um tutorial e programar um chip. Ligue para um amigoHá muitos recursos na Internet. Procure-os, peça ajuda. As pessoas podem ser bem informadas e úteis. Isso é bom:-) Eles também podem ser desdenhosos. Isso não é legal:-(

Etapa 4: Programação do microcontrolador

Programando o Microcontrolador
Programando o Microcontrolador

Código C Não critique o que eu não entendo. Eu não sou um programador, C não é minha linguagem nativa e estou me segurando por um thread fino de Java e muita pesquisa na web quando trabalho em C. Mesmo que grande parte do código tenha vindo de outros projetos (veja os créditos), Tive de fazer alguns acréscimos e modificações. O código-fonte do Swiss AVR Knife está anexado a seguir como um arquivo-fonte c e um arquivo hexadecimal. Eu gostaria de ouvir onde o código pode ser melhorado. Há algumas alterações que prevejo fazer no código. As atualizações estão em breve. Nesse ínterim, o código funciona conforme anunciado. Fusíveis Os fusíveis do microcontrolador são confusos. Desativei alguns microcontroladores, configurando-os acidentalmente para procurar um oscilador externo e desativando o pino RESET. Eles podem ser recuperados, mas até então são apenas insetos mortos. Tenha cuidado se você decidir trocar os fusíveis. Para calcular os valores corretos dos fusíveis, use uma calculadora de fusíveis online. Selecione a parte alvo (ATtiny84) e as configurações apropriadas - oscilador RC interno funcionando a 8 MHz (valor padrão), NÃO divida o relógio por 8 internamente, habilite o download de programa serial e desabilite a detecção de queda de energia. O resultado deve ser o seguinte. -U lfuse: w: 0xe2: m -U hfuse: w: 0xdf: m -U efuse: w: 0xff: m (baixo 0xE2 alto 0xDF ext 0xFF). Você só precisa queimar os fusíveis uma vez (a menos que planeje trocá-los). O Eclipse torna isso fácil, pois tenho certeza de que fazem outros IDE. Perguntas que eu gostaria que fossem respondidas Quaisquer ideias sobre como otimizar o código Por que as luzes piscando na máquina de som e luz causam uma oscilação no tom quando habilitadas na lata, mas não na placa de ensaio? Por que o Eclipse não gosta das funções lightOn e lightOff, embora elas pareçam funcionar?

Etapa 5: conduzindo o projeto

Breadboarding o projeto
Breadboarding o projeto
Breadboarding o projeto
Breadboarding o projeto

Como grande parte do trabalho deste projeto é feito pelo microcontrolador, existem muito poucas partes externas. Depois de verificar se o programador e a cadeia de ferramentas estão em ordem, seria uma boa ideia criar um breadboard para o circuito e certificar-se de que tudo funciona como anunciado. As imagens abaixo são versões confusas do breadboard real que eu configurei. Usei os LEDs da lata do modelo e tirei o suporte e o chip para usar em várias fotos. A fiação geral basicamente conecta os pinos ativos a algumas partes e, em seguida, ao aterramento. Observação A ordem dos pinos e LEDs não é a mesma na placa de ensaio e na placa de circuito impresso (embora eu suponha que você possa torná-los iguais). No código, você verá trechos de código que precisam ser ativados ou comentados, dependendo se o destino é a placa de ensaio ou o PCB.

Etapa 6: Preparando a lata de goma Altoids

Fotos no caminhoAplique a parte inferior. A parte inferior da lata se curva para cima e para dentro. Ela precisa ser achatada para que a bateria e a placa de circuito se encaixem e assentem uniformemente. Tomando cuidado para não distorcer a lata, empurre a parte inferior até que esteja essencialmente plana. A lata precisa de três conjuntos de orifícios. Eu uso um punção de metal para marcar os locais dos furos e pontas de brad (para madeira) para fazer os furos. As pontas de brad têm um ponto central e duas arestas de corte. Eles não patinam e as bordas cortam lentamente o metal. Bits de ponta Brad estão disponíveis em Lee Valley (entre outros lugares). O primeiro é um conjunto de nove orifícios de 5 mm na parte superior da lata para os LEDs. Bits de ponto de brad métrico estão disponíveis e eles fazem orifícios limpos e confortáveis para os LEDs. Crie um modelo de papel com os orifícios marcados e transfira as marcas para o topo da lata. Para evitar empurrar a parte superior da lata para dentro, apoie a parte interna da tampa em um pequeno bloco de madeira ao perfurar e furar a parte superior. Com o papel e a madeira no lugar, faço uma covinha na lata com o soco. Ao perfurar, vá devagar no início. As arestas de corte das pontas de brad devem formar um círculo uniforme. Perfurar com a broca qualquer coisa menos perpendicular à superfície pode resultar na broca agarrando e rasgando o metal. A ponta de brad de 5 mm faz um bom orifício limpo, mas descobri que tinha que alargá-lo um pouco. Fiz isso perfurando por dentro com uma broca normal de 13/64 ". O segundo conjunto consiste em dois orifícios de 1/4" no lado direito da lata para o switch e a entrada de áudio. Por causa da estreita curvatura na extremidade da lata, esses orifícios precisam ser bem fechados. Certifique-se de espaçá-los para que os componentes caibam na lata. Centralize-os verticalmente na parte do lado visível quando a tampa é fechada. Marque com punção e fure com muito cuidado. O cuidado com os bits agarrando a lata aplica-se mais fortemente aos bits maiores. O último furo é para o interruptor de botão. Posicione o orifício na parte inferior direita de forma que o botão não interfira com os demais componentes da lata.

Etapa 7: Projetando e fazendo o PCB

Projetando e fazendo o PCB
Projetando e fazendo o PCB
Projetando e fazendo o PCB
Projetando e fazendo o PCB
Projetando e fazendo o PCB
Projetando e fazendo o PCB

Existem vários recursos na Internet que descrevem o processo de criação de PCBs. Nenhum dos métodos é infalível ou fácil, mas é importante se familiarizar com pelo menos um. Eu uso a versão freeware do Editor de Layout EAGLE da CadSoft para criar o esquema e fazer o layout da placa de circuito impresso. Minha abordagem para fabricar o PCB é descrita na etapa de Fabricação e preparação do PCB do Altoids Tin Speaker instructable. Após a transferência, gravação e perfuração da placa, você está pronto para soldar tudo junto. Observação: Minha experiência mais recente para transferir imagens para placas de circuito é o seguinte. Lave bem a tábua com detergente e esfregue com um esfregão verde. Lixe suavemente todas as rebarbas das bordas do cartão para que o papel de transferência e o ferro tenham um bom contato com o cartão. Pré-aqueça o ferro. Coloque um pedaço de papel sobre a lousa e aqueça a lousa com o ferro. Depois que a placa estiver bem quente, coloque cuidadosamente o papel de transferência preparado na placa. Ele grudará imediatamente (porque a placa está quente), portanto, certifique-se de que esteja corretamente posicionado. Em seguida, passe o ferro diretamente na parte de trás brilhante do papel de transferência. Isso nunca me causou problemas, mas você está usando seu próprio ferro. Teste primeiro. Deixe a prancha esfriar e depois coloque-a em água fria. O papel de transferência deve se soltar e deixar a imagem inteira. Use um visualizador de slides / negativos 8x para examinar a transferência e preencher todas as peças que faltam. Boa sorte.

Etapa 8: Soldar peças em PCB

Soldar peças para PCB
Soldar peças para PCB
Soldar peças para PCB
Soldar peças para PCB
Soldar peças para PCB
Soldar peças para PCB

Existem inúmeros recursos na Internet que descrevem o processo de soldagem de componentes eletrônicos em PCBs. Veja, por exemplo, o tutorial de soldagem em ladyada.net. A ordem em que você instala os componentes realmente não importa, embora eu tenha achado que trabalhar do menor para o maior é o mais fácil. Os fios LED / blinkenlight são longos o suficiente para que você possa moldá-los em um padrão semelhante a menorá na lata. Encaixe cuidadosamente os LEDs e dobre os fios de modo que a parte superior de cada LED fique posicionada de forma que ele apareça através de seu respectivo orifício. Isso pode ser desafiador, mas parece muito bom quando finalmente funciona. Se os fios forem deixados muito longos, os LEDs podem ficar comprimidos e fora de posição pela tampa da lata. Observação O LED mais à direita não está na mesma orientação que os outros oito. Certifique-se de verificar a polaridade dos LEDs em relação ao layout da placa ao instalá-los. Este LED é conectado ao pino RESET, portanto, você pode optar por não instalá-lo. Observação: Os fios para o conector de áudio e os resistores compartilham um orifício. Por conveniência, coloque os resistores na vertical de forma que o corpo do resistor não fique sobre o orifício com o fio de áudio. Prepare e instale o conector de áudio neste ponto ou espere até que esteja pronto para soldar nos resistores. Não é divertido dessoldar os resistores mais tarde.

Etapa 9: luzes piscantes

Luzes pisca-pisca
Luzes pisca-pisca

Os LEDs precisam ser protegidos por resistores. Determine a queda de tensão e os requisitos de corrente de seus LEDs e calcule os resistores apropriados assumindo uma fonte de 5 V do chip. Existem calculadoras online disponíveis para fazer isso. Faça para si um monte de luzes piscantes. Ao fazê-los para este projeto, corte o cátodo (fio negativo / curto do LED pelo lado achatado) e solde o resistor bem próximo à lente do LED. Os LEDs formam uma menorá na lata. Mesmo com o resistor quase tocando a lente, o LED mais curto no meio ficará ligeiramente amassado pela tampa da lata. Para evitar que curtos ocorram nos limites apertados da lata, cubra cada resistor com um pedaço de tubo termorretrátil.

Etapa 10: preparando o suporte da bateria

Preparando o suporte da bateria
Preparando o suporte da bateria

Deslize pequenos pedaços de tubo termorretrátil ao longo das duas pontas do suporte da bateria. Empurre-os cuidadosamente nos orifícios do suporte e encolham no lugar. Eles fornecem algum grau de proteção para os fios. (Esta instrução está duplicada na página Preparando a chave seletora.) Corte o fio preto no comprimento certo e solde no orifício apropriado na placa de circuito impresso. O fio vermelho é soldado diretamente na chave seletora; veja as instruções nessa página para saber como proceder. Em projetos anteriores, cortei as abas de retenção do suporte da bateria. Tendo feito isso no protótipo, agora me arrependo. A bateria não quer ficar firmemente no lugar. Deixe as abas começarem e remova-as apenas se tiver problemas para tirar a bateria. Apesar de dizer isso, a foto mostra um porta-pilhas com as abas cortadas. Isso ocorre porque eu o retirei de outro projeto.

Etapa 11: Preparando a chave seletora

Preparando a chave seletora
Preparando a chave seletora

Dependendo do seu switch, pode ser necessário cortar um dos pinos. Faço isso com os interruptores que uso, embora possa não ser totalmente necessário. Deslize um pequeno pedaço de tubo termorretrátil ao longo do cabo vermelho do suporte da bateria. Empurre-o cuidadosamente no orifício do suporte e encolha no lugar. Ele fornece algum grau de proteção para o fio. (Esta instrução duplica a instrução em Preparação do suporte da bateria.) Deslize outro pequeno pedaço de tubo termorretrátil no fio vermelho. Corte e descasque o fio no comprimento e aplique um pouco de solda no pino da chave e na extremidade do fio. Solde o fio vermelho do suporte da bateria diretamente no pino externo da chave. Deslize o pedaço de tubo termorretrátil sobre a junta para protegê-la e fortalecê-la. O segundo fio vai do pino do meio da chave ao PCB. Solde o fio na chave conforme descrito acima. Proteja a junta com tubo termorretrátil. Solde a outra extremidade no orifício apropriado no PCB.

Etapa 12: preparando o conector de áudio

Preparando o conector de áudio
Preparando o conector de áudio
Preparando o conector de áudio
Preparando o conector de áudio
Preparando o conector de áudio
Preparando o conector de áudio

Os fios para o conector de áudio são todos muito curtos. Aplique um pouco de solda nos pinos do conector e no fio e solde-os no lugar. Deslize pedaços de tubos termoencolhíveis sobre as juntas para protegê-los e fortalecê-los. O fio terra pode ser soldado diretamente em seu orifício. Cada extremidade dos fios de sinal compartilha um orifício com uma extremidade de um resistor. Prepare o fio e o resistor torcendo as pontas e aplicando um pouco de solda. O orifício no qual eles vão deve ser perfurado a 3/64 para acomodar os dois fios. Solde no lugar.

Etapa 13: Preparando o botão de pressão

Preparando o botão de pressão
Preparando o botão de pressão
Preparando o botão de pressão
Preparando o botão de pressão
Preparando o botão de pressão
Preparando o botão de pressão

Prepare um pequeno pedaço de arame sólido, formando-o em forma de U e se encaixando perfeitamente na parte inferior do switch. Aplique uma gota de solda em cada lado do orifício - deixe espaço para a chave - e posicione a chave no lugar. Derreta a solda e empurre o fio no lugar. Deixe a solda endurecer e repita do outro lado. Isso deve posicionar e segurar a chave no lugar. Prepare dois pedaços de fio trançado cortando o comprimento e descascando ambas as pontas. Certifique-se de que os fios sejam longos o suficiente para que a tampa da lata possa abrir totalmente. Solde os dois pinos apropriados no interruptor e, em seguida, deslize pedaços de tubos termoencolhíveis sobre as juntas para protegê-las e fortalecê-las. Solde as outras pontas em seus respectivos orifícios na placa. Passe os fios com cuidado entre os LEDs e certifique-se de que eles não fiquem em cima das baterias. Eu espalhei os dois pinos no interruptor de forma que o LED mais à direita deslizou entre eles. Os pinos do switch são MUITO frágeis (os outros dois quebraram). Observe que o pino PA7 PCINT7 6 está configurado para detectar uma mudança de estado. Pressionar o botão de pressão puxa o pino para cima e SIGNAL (PCINT0_vect) é executado. Com base na duração do pressionamento do botão, ou nada acontece (debouncing bruto), o estado é avançado (pressionamento curto) ou o programa é avançado (pressionamento longo).

Etapa 14: Fechando a tampa

Fechando a tampa
Fechando a tampa

Se tudo estiver bem neste ponto, você deve fechar a lata. Ao fazer isso, você deve ter muito cuidado com a posição dos LEDs. Acho que preciso empurrá-los para a posição com uma chave de fenda de lâmina fina para que fiquem corretamente posicionados em seus orifícios. Aplique um pouco de pressão para baixo na tampa enquanto manobra os LEDs no local e eles eventualmente irão deslizar no lugar. Você pode ter que posicionar os fios de forma que eles fiquem entre e não nos componentes. Além disso, os pinos do botão de pressão podem ter que ser dobrados para fora do caminho.

Recomendado: