domingo, dezembro 29, 2019

Resenha: The Apollo Guidance Computer

O computador de bordo da Apollo (AGC) é considerado um marco. Este livro detalha a sua arquitetura de hardware e software e o seu uso na ida e volta à Lua.




quarta-feira, dezembro 25, 2019

Módulo Bússola com HMC5883L ou QMC5883L

Mais uma vez minha memória me prega peças... Comecei a escrever este post supondo que era a primeira vez que mexia com uma  "bússola eletrônica" (ou magnetômetro), mas já fiz alguns posts sobre isso em 2015! Peço desculpas pelas repetições de algumas explicações.

O módulo que vamos ver aqui eu adquiri na FilipeFlop, mas módulos semelhantes são achados em todos os botequins que vendem Arduino. É um módulo de bússola com três eixos (já explico), com interface I2C. Na hora de colocar para funcionar surgiram algumas questões interessantes (ou frustrantes, dependendo do ponto de vista).


quarta-feira, dezembro 18, 2019

A Grande Lista de Ideias de Projetos ("GLIP")

Ao longo dos anos venho acumulando ideias de projetos. O problema é que a facilidade em me interessar por projetos é ordens de grandeza maior do que a minha capacidade em terminá-los. O resultado é a Grande Lista de Ideias de Projeto, cujo conteúdo atual  eu listo abaixo como sugestão para quem está procurando algo para fazer. Alguns estão só na forma de ideias vagas, outros tem as peças separadas e outros começaram a ser montados e acabaram encostados.

2016 foi quando eu passei a limpo a lista. Tem coisas muito mais antigas nela.

segunda-feira, dezembro 02, 2019

Quatorze Anos do Blog: Hora de Parar?

Foi no começo de dezembro de 2005 que eu escrevi o primeiro post deste blog. Ter um blog estava na moda. Desde o começo a temática era vaga, e nestes 14 anos teve um pouco de tudo. O ritmo dos posts foi crescendo, até atingir um pico de 180 por ano em 2009 e 2010. Daí até 2015 eu tentei ficar nos 100 posts por ano, mas depois a coisa descaiu.



domingo, novembro 17, 2019

Crítica: Introducing Python

Algumas décadas atrás, quando eu tive o meu primeiro contato prático com programação, eu queria aprender todas as linguagens a que tivesse acesso. Com o passar dos anos, fui ficando mais seletivo e passando a apresentar resistência a algumas linguagens.

De forma meio inesperada, Python é uma destas linguagens. A importância dos espaços na linguagem conflita com o meu aprendizado inicial numa época em que se afastava dos cartões perfurados e a liberdade de forma era uma vantagem apregoada por tudo que era novo. A impossibilidade de declarar o tipo das variáveis se choca com a minha forma habitual de desenvolvimento e levanta preocupações sobre a detecção de erros somente em campo (não estou sozinho nisto). E tem uma série de incômodos, entre os quais a incompatibilidade da versão 3 com a versão 2 (o fato de ainda estar falando isto 10 anos depois do lançamento da versão 3 mostra como o problema é grave).

Mas eu insisto em aprender Python. Já escrevi diversos pequenos programas (principalmente no Raspberry), mas estou longe de saber de cor a sintaxe e meu código certamente não é "pitônico". "Introducing Python" veio como parte de um monte de livros em uma oferta do Humble Bundle e é a minha tentativa mais recente.



domingo, outubro 27, 2019

Resenha: Understanding the Linux Kernel

Qual programador não tem o interesse em saber como funciona (por dentro) um sistema operacional? "Understanding the Linux Kernel", de Daniel Bovet e Marco Cesati se propõe a ser um passeio guiado pelas principais estruturas de dados, algorítimos e truques de programação do Linux, explicando como ele trabalha e porque "funciona tão bem em uma grande variedade de sistemas".



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, outubro 02, 2019

(Mini) Avaliação: Raspberry Pi 4 Modelo B

Mais uma geração da Raspberry Pi, desta vez com algumas mudanças significativas, e mais uma mini-avaliação (como eu fiz com as Raspberry 3, 2 e 1B+). Entre a 3 e a 4 tivemos a 3B+ que eu não cheguei a colocar a mão.


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, setembro 04, 2019

De Volta ao Básico: Piscando um LED de Quatro Formas Diferentes

É um ritual obrigatório: a primeira coisa a fazer com uma placa ou microcontrolador é piscar um LED. Vamos ver aqui quatro formas diferentes de fazer isto com um Arduino Uno.


domingo, setembro 01, 2019

Crítica: Avengers Masterworks Vol 3 e 4

Eu comprei estes livros sabendo que já tinha lido o volume 2, mas ao começar a ler não lembrava nada das histórias anteriores... Nestas horas o blog é a minha extensão de memória. Realmente eu li o vol 2 - em 2009! Impressionante como 10 anos se passaram tão rápido.


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.



domingo, agosto 25, 2019

Resenha: The Mold in Dr. Florey's Coat: The Story of the Penicillin Miracle

Meus conhecimentos sobre a penicilina eram poucos antes de ler este livro: uma certa ideia da sua importância para a medicina e uma lembrança de ter sido descoberta acidentalmente por um cientista chamado Fleming. Não desconfiava da importância de vários outros personagens, que são o foco deste livro, nem as circunstâncias e os dramas da comprovação da sua eficácia e do desenvolvimento das técnicas necessárias para a sua produção.



quarta-feira, agosto 21, 2019

Projeto: Contagem Regressiva

Este é mais um dos meus "projetos quase inúteis com excesso de tecnologia". Como vocês devem ter visto nos posts de aniversário do blog, eu gosto de mostrar contadores em displays. No caso eu queria mostrar uma contagem regressiva para um evento, em semanas e dias.



domingo, agosto 18, 2019

Crítica: Space Odyssey: Stanley Kubrick, Arthur C. Clarke, and the Making of a Masterpiece

O meu primeiro contato com 2001 foi o livro do Arthur C Clarke, na biblioteca do ginásio. O filme eu só vi um bom tempo depois. "Space Odyssey: Stanley Kubrick, Arthur C. Clarke, and the Making of a Masterpiece" foi a minha oportunidade de conhecer mais sobre o processo que gerou os dois.


quarta-feira, agosto 14, 2019

Obtendo a Data e Hora Atual de um Servidor NTP

De vez em quando precisamos da data e hora atual em um projeto com microcontrolador. Uma opção é incluir um relógio não volátil (como eu fiz aqui), mas quando temos conexão à internet podemos obter estas informações de um servidor NTP.


quinta-feira, agosto 08, 2019

Montando um Kit de Detector de Metais

O Pakéquis já comentou sobre este kit no seu blog e canal do Youtube, mas eu tenho uma certa ligação afetiva com detectores de metais e vou me arriscar a chover no molhado.



quarta-feira, julho 10, 2019

ESP32/Arduino: NVS e Preferences

No post anterior falamos na emulação de EEProm no suporte ao Arduino da ESP32, vamos ver agora as formas recomendadas pela ExpressIf para armazenamento não volátil de informações.

quarta-feira, maio 15, 2019

ESP32/Arduino: Partições da Flash e emulação de EEProm

Nos Arduinos baseados nos microcontroladores ATmega, a Flash é interna ao microcontrolador e tem uma organização bastantes simples: o bootloader e a aplicação, com tamanhos e posições definidos pelos fuses.

No ESP32 a Flash é externa (mas está dentro do módulo) e possui um esquema mais flexível que permite criar várias partições.

A Flash é o CI na parte de baixo - fonte: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/


domingo, maio 12, 2019

Crítica: Thor Masterworks Vol 6

Continuando a minha leitura das histórias antigas do Thor, chego ao volume 6 com as revistas de junho de 67 a maio de 68.



domingo, maio 05, 2019

Crítica: Flag in Exile

Continuando a leitura da saga de Honor Harrington, um livro que retorna o ritmo que tinha decaído no anterior (que eu critiquei aqui).


Spoiller alert: esta crítica referencia parcialmente o desfecho do livro anterior.

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.



domingo, abril 28, 2019

Resenha: The Surgeon

Cheguei neste livro quando a esposa estava passeando pelos canais da TV e achou um seriado policial chamado Rizzoli & Isles. A primeira reação foi "eu não conheço esta atriz de Law & Order?" (resposta: sim). Nos créditos dizia que era baseado numa série de livros, fiquei curioso, dei uma olhada na loja do Kindle - e aqui estamos.



quarta-feira, abril 24, 2019

Um primeira olhada no ESP32

Como sucessor ao bem sucedido ESP8266, a Espressif criou o ESP32. Embora o primeiro destaque seja a inclusão do suporte ao Bluetooth, este módulo apresenta várias características interessantes.

Módulo ESP-WROOM-32

domingo, abril 21, 2019

Resenha: Bad Blood - Secrets an Lies in a Silicon Valley Startup

Em 2015, a revista Forbes apontou Elizabeth Holmes como a mais jovem bilionária americana. Isto graças à estimativa do valor de US$9 bilhões da empresa que ela fundara em 2003, a Theranos. Esta empresa teria desenvolvido um aparelho capaz de realizar mais de uma centena de exames de sangue a partir de uma pequena picada na ponta do dedo (e entregar os resultados mais rápido e com mais precisão que os aparelhos já existentes). No ano seguinte, a revista revisou a fortuna de Elizabeth para zero, após reportagens que revelaram que o aparelho não funcionava.

Bad Blood conta a história da Theranos e tenta explicar como um logro deste tamanho ocorreu.



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.




domingo, março 03, 2019

Livro e Filme: The Sum of All Fears

Sou um fã ocasional dos livros e filmes do agente Jack Ryan. O meu pai tem uma coleção quase completa dos livros e um li uma boa parte deles. The Sum of All Fears (A Soma de Todos os Medos) é um caso um pouco especial, pois é um livro que o meu pai não tinha.

Quando vi no cinema até achei que era um roteiro original. No ano passado o filme passou várias vezes na TV por assinatura (vocês sabem como é, quando resolvem passar um filme ficam martelando por semanas) e eu acabei comprando o eBook. E assim surgiu a ideia de comparar o livro com o filme.

Obs.: spoillers ahead!


sábado, fevereiro 09, 2019

Jogo do Mês: Space Quest II

Após décadas finalmente joguei este jogo. Eu comprei e joguei o primeiro Space Quest quando foi lançado no Brasil. Alguns anos depois eu comprei e joguei os capítulos IV e V (que já adotavam o formato point-and-click com gráficos VGA e suporte a placa de som). Os capítulos II e III ficaram lá para trás. Em 2010 (!) eu adquiri no gog.com um pacote com Space Quest I, II e III, mas ficou mofando no HD até o ano passado quando joguei o Space Quest I.


quarta-feira, fevereiro 06, 2019

Usando um Teclado PS/2 com um Arduino

Um projeto que está na minha lista há algum tempo é um mini terminal baseado no Arduino para uso com os computadores básicos que eu montei com o Z80 e 6502. Para o display vou usar um LCD alfanumérico de 4 linhas de 40 caracteres; para o teclado a ideia é usar um teclado de PC, o que nos traz a este post.


quarta-feira, janeiro 30, 2019

Sensores de Temperatura: Odds & Ends ("Miudezas")

Os meus estudos e testes com sensores de temperatura nos últimos 6 anos* foi "coroado" com um vídeo mostrando os sete sensores que eu analisei:


Este post contém alguns comentários diversos que não merecem um post para cada um.

* o primeiro artigo sobre sensor de temperatura foi em 2013, sobre o LM35.

quarta-feira, janeiro 23, 2019

Sensor de Temperatura (e Umidade) HDC1080 (ou compatível) com Raspberry Pi

Depois do post anterior, parecia fácil ligar o HDC1080 ao Rasberry Pi. Bem, ligar é fácil (só ligar os sinais de mesmo nome) mas o software deu mais trabalho do que eu esperava.



quarta-feira, janeiro 16, 2019

Sensor de Temperatura (e Umidade) HDC1080 (ou compatível)

Tantos sensores e tão pouco tempo... Acho que este vai ser o último sensor de temperatura que vou examinar por algum tempo. Eu comprei a plaquinha na China, mas tem também em lojas brasileiras e no Mercado Livre. O verso da placa lista nada menos que cinco possíveis componentes, que imagino serem compatíveis. Usei como base para este post o datasheet do HDC1080, que você pode baixar do site da Texas Instruments.



quarta-feira, janeiro 09, 2019

Usando um Termistor NTC

Já experimentei vários sensores de temperatura aqui no blog. Vou examinar agora um sensor bem simples, que é a base de alguns dos que já testei: o termistor.

Um termistor é um resistor cuja resistência varia com a temperatura. Bem, praticamente todo resistor varia com a temperatura, porém normalmente queremos que esta variação seja pequena, pois queremos uma resistência constante. Num termistor estamos interessados em ter uma variação de resistência previsível e mensurável.


quinta-feira, janeiro 03, 2019

Curso KiCad Like a Pro

Algum "amigo de Facebook" postou uma oferta do curso "Tech ExplorationsTM KiCad like a Pro" da Udemy por R$6,00. O preço de lista é R$279,99, no momento está por R$25,99 ("preço válido por só mais dois dias"). Por R$6,00 e sendo um assunto que me interessa, não deu para resistir.




terça-feira, janeiro 01, 2019

Resoluções de Ano Novo - Edição 2019

Mais uma vez é hora de ver como me saí com as resoluções do ano passado e fazer uma nova lista.

Resoluções do Ano Passado

Em 2018 a lista foi menos ambiciosa que nos anos anteriores:
  • Praticar alguma atividade física: No mínimo retomar as caminhadas com a cachorra. Teve seus altos e baixos.
  • Levar até o final alguns projetos: Mantenho a meta de 4 projetos (um por trimestre). Vários projetos médios com o Franzininho (mas o livro não rolou ainda), alguns projetos com o Raspberry. Principal montagem foi o RetroServer.
  • Manter um ritmo nas postagens no blog: Vamos ver se consigo implantar o esquema de um post por semana e montar aquele buffer que eu sempre falo. Fracasso!
  • Ler livros técnicos: Tentar ler um livro técnico em cada quatro livros lidos. Segundo a contagem do Goodreads, foram 52 "livros"*, dos quais 5 não ficção.
Como de costume, o resultado foi ruim...


Resoluções para 2019

Em 2019 devem continuar as mudanças na vida pessoal e profissional. As resoluções não mudam muito dos dois anos passados:
  • Praticar alguma atividade física: Pelo menos uma caminhada com a cachorra por semana, de preferência duas.
  • Levar até o final alguns projetos: Mais uma vez a meta é de 4 projetos (um por trimestre).
  • Achar um ritmo para as postagens no blog: Começar com um post por semana e montar aquele buffer que eu sempre falo.
  • Ler livros técnicos: Ler um livro técnico por trimestre.
  • Fazer até o fim cursos on-line: Concluir pelo menos dois cursos.
  • Fabricar uma PCB: O único curso on-line que concluí em 2018 foi de projeto de PCB, vamos ver se em 2019 finalmente fabrico uma.