domingo, agosto 10, 2014

Crítica: AVR Programming

"Make: AVR Programming", de Elliot Williams é um livro que se propõe, primariamente, a ensinar a programar em C microcontroladores da linha AVR. Mas ele vai além, incentivando os leitores a criarem os seus próprios projetos microcontrolados.


O livro cobre um volume respeitável de assuntos, desde a preparação do ambiente e os rudimentos da linguagem C, até assuntos mais avançados como comunicação SPI e I2C. O ambiente utilizado é o "avr-gcc toolchain", o mesmo que eu costumo usar.


A leitura deste livro foi um pouco diferente para mim, por ser um assunto que eu já conheço bastante. Apesar disto, eu aprendi muito com ele. Embora nem sempre as explicações seguissem a linha que eu usaria, elas me pareceram bastante claras e precisas (a única parte que eu não gostei foi a explicação sobre ponteiros).

Um ponto que me chamou a atenção foram os vários exemplos práticos, muito criativos. O último exemplo é bastante sofisticado: um voltímetro que fala as leituras. Nestes exemplo é utilizado o ATmega168; é trivial adaptar para o ATmega328 que é um modelo mais popular atualmente. A maioria dos componentes parecem ser relativamente fáceis de achar, exceto pelo sensor de temperatura do exemplo de comunicação I2C que só encontrei no formato SMD. Nas críticas na Amazon, existem algumas (poucas) reclamações quanto a falta de instruções mais detalhadas para a parte prática. Ainda não montei os exemplos, pretendo documentar a minha experiência à medida em que for fazendo as montagens.


O índice e mais alguns detalhes podem ser vistos no site da O'Reilly. Tem até uma amostra grátis, com o primeiro capítulo. Aliás, este site é um bom local para a compra em formato eletrônico. O eBook é fornecido em vários formatos e sem DRM. A única dica é aguardar uma das frequentes promoções para pegar um bom desconto no preço.

O livro procura assumir que o leitor não tem grandes conhecimentos de programação, linguagem C e eletrônica. Entretanto, uma leitura específica sobre estes assuntos será necessária para um domínio melhor. Como já comentei, não gostei da explicação sobre ponteiros na linguagem C. Senti também falta de uma discussão maior sobre os problemas de acesso concorrente a variáveis e registradores quando se utiliza interrupções.

Apesar de ser um livro extenso (mais de 400 páginas), nem todas as funcionalidades do ATmega são descritas. No último capítulo o autor listas alguns das que não couberam no livro.

Veredito

Fortemente recomendado para quem está interessado em projetos com microcontroladores.


Um comentário:

Ronaldinho disse...

Estou lendo este livro, atualmente estou no cap10. Fazendo todos os exemplos a medida que vou lendo, usando o 328p e avrgcc com o Makefile do proprio autor. Estou gostando muito e também recomendo. Este livro pra mim foi um achado, era o livro que eu precisava para conhecer sobre AVR, que até então estava limitado a Arduino.