Mostrando postagens com marcador AVR. Mostrar todas as postagens
Mostrando postagens com marcador AVR. Mostrar todas as postagens

sábado, março 25, 2023

Livro GRATUITO: Aprendendo e se Divertindo com a Franzininho DIY

Uma das consequências da pandemia foi eu voltar a escrever livros. O primeiro que eu fiz teve como ponto de partida alguns posts aqui no blog sobre a Frazininho DIY (uma placa baseada no ATtiny85 simples o suficiente para ser montada em casa).

O problema deste livro foi o "timing": nesta altura os ATtiny ficaram escassos e o preço subiu muito. Mas, para não desperdiçar o esforço, fiz uma parceria com o Instituto Newton C Braga e eles estão disponibilizando o e-book gratuitamente.

Eu ainda tenho alguns kits da Franzininho DIY que pretendo usar em oficinas de solda no Graoa Hacker Clube. Fiquem de olho na página do Garoa para ver quando serão as próximas.

O link para download do livro é  https://www.newtoncbraga.com.br/index.php/42-newton-c-braga/biblioteca/20149-aprendendo-e-se-divertindo-com-a-franzininho-diy.html

Sou suspeito para falar, mas acho que o conteúdo do livro é interessante mesmo que você não tenha uma Franzininho DIY. Tem explicações legais sobre os componentes usados e as ideias dos projetos podem ser adaptadas para outros microcontroladores. Aproveito e deixo a pergunta: vocês se interessariam em livros com este mesmo tipo de abordagem usando outras placas? Se sim, quais?

terça-feira, outubro 12, 2021

ADC (Conversor Analógico Digital) - Parte 4 - ATmega328

Vamos examinar agora o ADC de um microcontrolador específico: o ATmega328 usado no Arduino Uno (de um modo geral o que vamos ver aplica também a outros membros da família ATmega e mesmo ao ATtiny).

O diagrama de blocos do ADC do ATmega328 (fonte: datasheet)


terça-feira, agosto 04, 2020

Andamento da Montagem do "ATmega Detonator"

Feitos os testes e aprendido como usar a programação paralela ("alta voltagem") do ATmega é hora de passar o circuito da protoboard para uma montagem mais definitiva ("eterna enquanto dure").


quinta-feira, julho 16, 2020

IOExpander: Usando um ATtiny24 como um Expansor de I/O I2C

Em uma etapa do meu projeto do "ATmega Detonator" achei que o PCF8574 era o culpado por problemas misteriosos. Antes de descobrir ser um simples mau contato, eu investi na linha de substituir o PCF8574 por um ATtiny24. Inicialmente parecia muito simples: controlar os inos de I/Os a partir de uma leitura ou escrita via I2C. O que eu não contava era com as dificuldades no uso da USI ("Universal" Serial Inteface) no modo escravo (já vimos anos atrás o uso no modo mestre).

terça-feira, julho 14, 2020

Programação "Alta Voltagem" do ATmega - Parte 6

Para finalizar este estudo dos comandos de programação paralela vamos olhar a leitura e escrita na Flash. Aqui a parte importante é entender como é organizada a Flash do ATmega.


terça-feira, julho 07, 2020

Programação "Alta Voltagem" do ATmega - Parte 5

Com o hardware já funcionando e sucesso na colocação no modo de programação e na leitura da identificação do ATmega, agora é hora de fazer algo útil: apagar a memória Flash e colocar os fuses nos valores de fábrica.


terça-feira, junho 30, 2020

Programação "Alta Voltagem" do ATmega - Parte 4

Montado o nosso protótipo vamos começar a conversar com o ATmega pelo modo de programação paralelo. O objetivo desta etapa é colocar o ATmega no modo programação e ler a sua identificação.


terça-feira, junho 23, 2020

Programação "Alta Voltagem" do ATmega - Parte 3

Decisões tomadas, é hora de partir para a prática. No caso montar um protótipo na protoboard.



terça-feira, junho 16, 2020

Programação "Alta Voltagem" do ATmega - Parte 2

Nesta segunda parte vou discutir algumas opções que estou fazendo no meu projeto.

Ideia atual do painel

terça-feira, junho 09, 2020

Programação "Alta Voltagem" do ATmega - Parte 1

Uma das minhas ideias mais antigas de projeto é um programador para microcontroladores ATmega (mais especificamente ATmega8, ATmega168 e ATmega328 que compartilham a mesma pinagem) usando a "programação pararela" também como conhecida como "programação de alta voltagem".

Vamos ver se escrevendo uns artigos sobre a teoria eu me animo a ir para a prática...



quinta-feira, janeiro 16, 2020

Arduino Nano 33 BLE - Primeiras Impressões

Ano passado a Arduino AG* lançou quatro novos Arduino Nano:
  • Arduino Nano Every, que usa um microcontrolador ATmega4809 que é um ATmega turbinado tanto em desempenho como em memória.
  • Arduino Nano 33 IOT, com um microcontrolador ATSAMD21 (Arm Cortex M0+) e um ESP32 para comunicação WiFi e Bluetooth.
  • Arduino Nano 33 BLE, com um microntrolador nRF52840, um Arm Cortex M4F com comunicação Bluetooth 5.0. A placa inclui um sensor inercial de 9 eixos.
  • Arduino Nano 33 BLE Sense, que é um Arduino Nano 33 BLE com uma penca de sensores adicionais na placa.
Enquanto o Every é uma evolução simples do Nano original, os demais modelos mantem o formato e a pinagem (porém operando a 3,3V) mas usam processadores ARM e possuem recursos de conectividade sem-fio.

Eu ganhei de presente um Arduino Nano 33 BLE e este é o primeiro post de uma série que pretendo escrever sobre ele.



* Para tentar diminuir a confusão entre empresa, plataforma e placa, vou chamar a empresa que projeta e vende os Arduinos oficiais pelo seu nome oficial.

quarta-feira, outubro 23, 2019

Timer1 do ATmega328 - Parte 5

Para fechar esta série de posts vamos falar das interrupções que podem ser geradas pelo Timer. Lembrando, uma interrupção é algo que interrompe o fluxo normal do programa para executar uma rotina específica (de preferência curta e rápida, para não impactar o processamento normal.


quarta-feira, outubro 16, 2019

Timer1 do ATmega328 - Parte 4

Nesta quarta parte vamos examinar um uso muito comum do timer: a geração de sinais do  tipo PWM (Pulse Width Modulation). Em um sinal PWM temos um pulso sendo repetido periodicamente; o tempo em que ele se repete é o seu período (cujo inverso é a frequência). A largura do pulso é o tempo que o sinal permanece em nível alto. É comum falarmos também no duty cycle, que é a relação entre a largura e o período (ou seja, a porcentagem do tempo que o sinal fica em nível alto).


Por exemplo, vamos considerar um pulso de 25 microssegundos (us) que se repete a cada 100 microssegundos. O período é 100 us, a frequência é 10KHz, a largura é 25uS e o duty cycle é 25%.

Embora os princípios sejam simples, os detalhes são complicados. Recomendo ler e reler o manual do ATmega  para ver todos os detalhes da programação destes modos.


quarta-feira, outubro 09, 2019

Timer1 do ATmega328 - Parte 3

Nesta parte vamos falar na função de Captura do Timer1. A figura abaixo (extraída do datasheet) é o diagrama de blocos da Unidade de Captura (troque "n" por "1" nos nomes dos registradores e dos pinos).



quarta-feira, setembro 25, 2019

Timer1 do ATmega328 - Parte 2

Continuando o nosso estudo do funcionamento e programação do Timer1, vamos examinar o modo de operação. Como vimos na primeira parte, o coração do Timer1 é um contador, que é atualizado conformes os pulsos de um clock. O modo de operação define a sequência de contagem e o que acontece com os pinos controlados pelo Timer1. Neste post vamos nos concentrar nos modos "não PWM" (que ficam para para um post específico).


quarta-feira, setembro 11, 2019

Timer1 do ATmega328 - Parte 1

A origem desta série é o meu post sobre maneiras de piscar um LED no Arduino. Os timers do ATmega, principalmente o Timer1, são muito poderosos. E, com grandes poderes, vem grandes complicações... O diagrama abaixo (extraído do manual do ATmega328) mostra os grandes blocos do Timer1 (clique para ampliar).




quarta-feira, agosto 28, 2019

Minha Primeira Placa de Circuito Impresso

Bem, não exatamente. Na minha adolescência eu fiz várias plaquinhas, mas de forma artesanal. Esta é a primeira vez que eu faço o layout no computador e envio para fabricar.



terça-feira, abril 30, 2019

Franzininho Tiny

Já falei aqui no Franzininho, uma placa baseada no ATtiny85 compatível com o Arduino e no ATtiny841, um ATtiny bastante turbinado em termos de E/S. O Fábio Souza projetou uma versão do Franzinho com o ATtiny841 e a batizou de Franzininho Tiny (a versão com ATtiny85 passa a ser chamada de Franzininho DIY).

A desvantagem de usar o ATtiny841 é que ele está disponível somente em versão SMD, portanto fica mais complicado montar em casa. Portanto este modelo será tipicamente fornecido já montado. O Fábio produziu um lote experimental da versão Tiny e eu fui um dos agraciados com uma placa.



quarta-feira, março 06, 2019

ATtiny841

Já faz muito tempo desde que eu descobri o ATtiny85 e ATtiny84. Mais recentemente eu comecei a brincar com o Franzininho, que usa o ATtiny85. Uma nova versão do Franzininho está sendo testada, e o microcontrolador que ele usa é um que eu não conhecia: o ATtiny841. Neste post, vamos ver como ele se compara com os outros dois que eu examinei no passado.

Os datasheets dos três modelos pode ser baixado do site da Microchip/Atmel: ATtiny85, ATtiny84 e ATtiny841.




quinta-feira, março 15, 2018

Franzininho: Treinador de Código Morse

Partindo para um projeto um pouco mais ambicioso, vamos ver o "Treinador de Código Morse". A ideia é simples: um botão é usado para entrar com texto em código Morse. A cada pressão um sinal sonoro é emitido num buzzer. Os caracteres reconhecidos são apresentados em um display LCD. Para conseguirmos implementar isto vamos ter que usar várias coisas interessantes.