Conheça o Livro AVR e Arduino: Técnicas de projetos

O Arduino sem dúvida se tornou a porta de entrada para o desenvolvimento com microcontroladores e hoje é muito utilizado para aplicações rápidas, como a validação de ideia, conceitos e projetos makers. Porém, quando se vai desenvolver um produto ou uma aplicação mais elaborada (até mesmo uma biblioteca para o Arduino) é necessário conhecer os detalhes do microcontrolador, como sua arquitetura, periféricos, registradores e técnicas de programação.

 

Nesse artigo vou apresentar o livro AVR e Arduino: Técnicas de projetos. O livro escrito por Charles Borges de Lima e Marco V. M Villaça traz, em suas mais de 600 páginas, diversas técnicas de projetos e programação usando os microcontroladores AVR, em especial o ATmega328, usado na placa Arduino UNO. Veja a seguir um resumo do que é abordado no livro.

 

Livro AVR e Arduino: Técnicas de projetos

 

 

O livro AVR e Arduino: Técnicas de projetos

 

O livro começa com uma excelente introdução sobre microcontroladores, onde são apresentados os conceitos básicos sobre microprocessadores e memórias. Depois é apresentada uma lista de microcontroladores presentes no mercado e, por fim, uma introdução aos microcontroladores Atmel AVR.

 

No capítulo 2 é apresentado o microcontrolador ATmega328, explicando todos os detalhes de hardware: memórias, pinagem, sistema de clock, Reset e, por fim, o sistema de gerenciamento de energia em modo sleep. Tais informações são encontradas facilmente nos datasheets dos componentes, porém os autores as apresentam de forma clara e objetiva.

 

No capítulo 3 os autores apresentam a placa Arduino UNO, exibindo os seus recursos e os detalhes do seu hardware. Para saber mais sobre essa placa, acesse o artigo Arduino Uno. Na sequência é apresentado, passo a passo, como criar um projeto no Atmel Studio 5 e como simular usando o Proteus ISIS. E para fechar esse capítulo, é apresentado como fazer o upload do .hex para a placa Arduino UNO usando o AVRdude. Confira como criar um projeto no Atmel Studio aqui: Primeiros passos com Atmel Studio.

 

O capítulo 4 é focado em programação. Após uma breve introdução sobre algoritmos, fluxogramas e máquinas de estados, é apresentada a linguagem Assembly, de forma breve. Em seguida os autores fazem uma excelente apresentação sobre a linguagem C, abordando os tipos de variáveis, modificadores de tipo, conversão de tipo e modificadores de escopo. Também são apresentados todos os operadores da linguagem, estruturas de controles e repetição, as diretivas de pré-compilação, ponteiros, matrizes e vetores, structs e funções. Há um subcapítulo dedicado ao trabalho com bits, onde são apresentados exemplos de manipulação de pinos de I/O através de operações com os registradores. E para finalizar, os autores apresentam dicas para produção de um código eficiente e  de estruturação do programa. Sem dúvidas, esse é um excelente capítulo para quem quer aprender linguagem C para programação de microcontroladores.

 

Entrando nos periféricos do Atmega328 e suas aplicações, são apresentados os pinos de I/Os. Inicialmente são apresentados os detalhes internos dos pinos e os registradores responsáveis pela configuração, leitura e escrita. Em seguida são apresentadas algumas rotinas de atraso em Assembly e depois um exemplo para acionamento de led (o famoso blink), tanto em asm quanto em linguagem C. Na sequência é ensinado como ler chaves tácteis, onde os autores explicam sobre o bounce e como eliminar esse efeito através de código usando técnica de debounce. Continuando e explorando as saídas digitais, o próximo exemplo faz acionamento de display de LED de 7 segmentos. Os exemplos ensinam como fazer a conversão para 7 segmentos usando tabela armazenada na memória flash. Para finalizar com “chave de ouro” esse capítulo, é explicado como acionar Displays LCDs alfanuméricos de 16 x 2, tanto com interface de dados em 8 bits quanto em 4 bits. São apresentadas as ligações elétricas e bibliotecas de acionamento desenvolvidas pelos próprios autores. Também é apresentado como criar caracteres customizados nesse tipo de display. São propostos diversos exercícios no final de cada tópico.

 

Antes de avançar para os demais periféricos, é apresentado um capítulo dedicado às interrupções. São exibidos os conceitos relativos às interrupções, listando as interrupções do atmega328 e, por fim, explorado as interrupções externas com exemplos de aplicações. As demais interrupções serão explorados no decorrer do livro.

 

Na sequência, os autores dedicam um capítulo para explicar sobre leitura e escrita na memória EEPROM interna do microcontrolador. São apresentadas rotinas em asm e em linguagem C.

 

Continuando explorando os pinos de I/O, é apresentando um capítulo que explica sobre leitura de Teclado Matricial. Os autores explicam detalhadamente como fazer a leitura e ligação elétrica do teclado no microcontrolador e por fim apresentam uma biblioteca em linguagem C para leitura de teclados 4X4.

 

O capítulo 9 apresenta detalhadamente os temporizadores/contadores presentes no Atmega328. São apresentados os seus registradores, configuração para os diversos modos de funcionamento, sendo que no final são exibidas algumas aplicações para acionamento de motores com PWM e módulo de ultrassom.

 

O Capítulo 10 é para quem gosta de trabalhar com músicas. Após uma introdução sobre arquivo RTTTL, os autores apresentam um exemplo de programa para leitura desse tipo de arquivo e reprodução de música. É um exemplo bem interessante para aprender sobre configuração e uso de timers.

 

Para maximizar o uso dos pinos do microcontrolador são exibidas no capítulo 11 algumas técnicas de multiplexação. Entre elas estão: Expansão de I/O mapeada em memória, conversão serial/paralelo e paralelo/serial, multiplexação de display de 7 segmentos e técnicas para acionar mais de um led por pino. São apresentados diversos exemplos de circuitos e códigos.

 

Ainda trabalhando com displays, há um capítulo dedicado para display gráfico monocromático de 128 x 64, baseado nos controladores KS0108B e KS0107. São apresentados todos os detalhes desse display e ligação do mesmo no microcontrolador, assim como exemplos para conversão de figuras e biblioteca para manipulação.

 

O capítulo 13 é muito interessante, ele mostra como trabalhar com formas de onda e sinais analógicos. É explicado sobre discretização de sinais com cálculos e exemplos, conversor DA com rede R/2R, conversor DA com sinal PWM, sinal PWM para conversor DC-DC buck e, por fim, como converter DC para AC. É um capítulo bem interessante, e para quem tem interesse no assunto, recomendo a série escrita pelo Felipe Neves Utilizando microcontroladores para controle de conversor DC-DC personalizado.

 

Os capítulos 14 a 17 foram reservados para a comunicação SPI, USART, I2C e 1 Wire, respectivamente. São apresentados todos os detalhes das comunicações, configurações dos registradores responsáveis por cada uma no Atmega328 e diversos exemplos práticos, que você pode testar facilmente em um simulador ou na bancada.

 

Ainda trabalhando com sinais analógicos, no capítulo 18 é explicado o uso do comparador analógico. São exibidas algumas técnicas e exemplos para leitura de resistência e capacitância.

 

Dando sequência à leitura de sinais analógicos, o capítulo seguinte explora o conversor Analógico-Digital do ATmega328, com diversos exemplos práticos, sem deixar a teoria de lado, sobre esse periférico muito utilizado em projetos.

 

No capítulo 20 os autores explicam como mesclar assembly com a Linguagem C, apresentando alguns exemplos de código. Na sequência, o capítulo 21 apresenta uma explicação sucinta sobre RTOS, com exemplos usando o BRTOS, um RTOS desenvolvido por brasileiros e gratuito.

 

Apesar do livro trazer no título o nome Arduino, foi reservado apenas o capítulo 22 para explicação da IDE e funções das suas bibliotecas. O foco do livro é a programação do microcontrolador ATmega328 sem as camadas de abstração oferecidas pelas bibliotecas Arduino e, assim, o leitor aprender de fato como programar o microcontrolador e usar seus recursos.

 

Os autores finalizam o livro com um excelente capítulo sobre os Fusíveis e gravação do ATmega328.

 

O livro ainda traz excelentes materiais de referências nos Apêndices: 

  • Assembly do ATmega;
  • Display LCD 16 x 2 - Controlador HD44780;
  • Erros e ajustes da taxa de Comunicação USART;
  • Circuitos para acionamentos de cargas;
  • Projeto de placa de Circuito Impresso - Básico;
  • Tabelas de Conversão;
  • Registradores de I/O do ATmega328.

 

No vídeo a seguir o autor apresenta o livro:

 

 

Conclusão

 

É um excelente livro para quem quer aprender sobre programação de microcontroladores. Apresenta diversos exemplos que podem ser aplicados facilmente na prática ou em simuladores, diversas bibliotecas de software e aborda conceitos importantes para o desenvolvimento de projetos com microcontroladores. Recomendo fortemente a leitura e estudo de cada capítulo. Após o estudo e execução dos exemplos, o leitor poderá explorar todos os recursos dos periféricos do microcontrolador, criar suas próprias bibliotecas e desenvolver códigos eficientes para o microcontrolador, até mesmo bibliotecas para o arduino.

 

A autor dispoibilza em seu site materiais de download como: programas, imagens e exercícios. Também há uma lista de erratas sobre o livro. Confira aqui.

 

[Atualização]  - Os autores disponibilizaram o download do livro em PDF. Disponível aqui: https://borgescorporation.blogspot.com.br/2012/05/avr-e-arduino-tecnicas-de-projeto.html

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Fábio Souza
Engenheiro com experiência no desenvolvimento de projetos eletrônicos embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil. Também atua no ensino eletrônica e programação pelo Brasil. É entusiastas do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware, como o projeto Franzininho Participou da residência hacker 2018 no Redbull Basement. Quando não está ministrando palestras, cursos ou workshops, dedica seu tempo “escovando bits” ou projetando placas eletrônicas.