terça-feira, dezembro 14, 2021

Ruminações sobre o "log4Shell" (CVE-2021-44228)

Domingo, estou desligando a TV para dormir e o celular dispara: mensagem, email e chamada de voz! É um cliente preocupado com a vulnerabilidade no log4j descrita no CVE-2021-44228. Neste post vou falar um pouco sobre o que é, porque preocupa (e porque não), como resolver e algumas divagações filosóficas sobre como essas falhas surgem.

"Foi o Java que me deu"

quinta-feira, dezembro 09, 2021

(Mini) Avaliação: Raspberry Pi zero 2 W

Seis anos atrás a Raspberry Foundation surpreendia muita gente ao lançar a Raspberry Pi Zero, uma pequena placa com capacidade computacional próxima à Raspberry Pi original e o incrível preço de US$5. Pouco mais de um ano depois ela foi seguida pela versão Zero W, com WiFi e Bluetooth, por US$10 (veja minhas mini avaliações aqui). No final de outubro passado foi anunciada uma nova versão, o Raspberry Pi Zero 2 W. Vamos ver o que mudou e o que permanece o mesmo?

No alto, à esquerda, a Raspberry Pi Zero. À direita, a Zero W. Na frente, a Zero 2 W.


quinta-feira, dezembro 02, 2021

Dezesseis Anos do Blog

 E chegamos a mais um aniversário do blog! Hora do tradicional balanço anual.


quinta-feira, novembro 25, 2021

Avaliação: Robocore Vespa

Neste post vamos dar uma olhada na placa Vespa da Robocore, que é uma placa voltada para robótica  utilizando o microcontrolador ESP32. 


terça-feira, novembro 16, 2021

ADC (Conversor Analógico Digital) - Parte 8 - ADS1115

Desta vez, ao invés de falar em um ADC interno a um microcontrolador, vamos falar de um ADC em um circuito integrado separado. Módulos com o ADS1115 são facilmente encontráveis e são uma opção popular para os Raspberry Pi.

Módulo ADS1115


quinta-feira, novembro 11, 2021

Franzininho DIY: Detector de Proximidade

 Já faz mais de três anos desde o último post com um projeto com a Franzininho DIY! Finalmente acho que estou avançando em uma ideia daquela época: juntar todos estes projetos em um livro. Daí veio a busca por ideias para novos projetos. O primeiro resultado está aqui.


terça-feira, novembro 09, 2021

ADC (Conversor Analógico Digital) - Parte 7 - RP2040

Chegou a vez de falar do conversor analógico digital do RP2040, que é o microcontrolador usado na Raspberry Pi Pico.

Diagrama de Blocos do ADC do RP2040 (fonte: datasheet)


terça-feira, novembro 02, 2021

ADC (Conversor Analógico Digital) - Parte 6 - ESP32

Embora seja mais conhecido por incorporar WiFi e Bluetooth, o ESP32 é bastante rico em recursos. Um deles é o ADC, que é bastante complexo. Vamos dar uma olhada rápida no que é oferecido.

O ESP32 possui dois conversores analógico digitais de 12 bits, capazes de operar de forma simultânea e independente. As opções de entrada incluem 18 pinos e mais 4 sinais internos; os resultados podem ir para cinco controladores diferentes (ADCn CTRL), conforme mostrado na figura abaixo (atenção que pad-in[n:0] indica n+1 pinos).

Diagrama de Blocos do ADC do ESP32 (fonte: manual de referência técnica)

domingo, outubro 31, 2021

Resenha: A Trilogia Thrawn (Star Wars)

Publicados entre 1991 e 1993, os três livros que compõem a Trilogia Thrawn tem sido bastante mencionados desde o anúncio da terceira trilogia de filmes (muitos afirmam que a trama neles é muito superior à da "trilogia Disney"). Resolvi dar um tempo na minha leitura de livros físicos (e sérios) e verificar.

terça-feira, outubro 19, 2021

ADC (Conversor Analógico Digital) - Parte 5 - MSP430F2013

Faz algum tempo que não falo no MSP430, um microcontrolador muito interessante mas que não fez muito sucesso com os makers. O modelo MSP430F2013 foi o primeiro que eu tive contato como parte da ferramenta eZ430-F2013. E este modelo contém um ADC Sigma Delta (SD16).

Diagrama de bloco do SD16 (fonte: MSP430x2xx Family User Guide)


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)


quinta-feira, outubro 07, 2021

Memórias dos Anos 2000: A Unidade de Negócios de Software

Nesta fase das minhas memórias não vou tentar ser cronológico, nem muito específico ao trabalho na Seal; vou tentar falar de algumas coisas mais genéricas sobre trabalhar com software em empresas cuja atividade principal é vender hardware.


terça-feira, outubro 05, 2021

ADC (Conversor Analógico Digital) - Parte 3 - Sigma Delta

Embora o mais comum nos microcontroladores seja implementar o ADC usando a Aproximação Sucessiva (SAR - que vimos no post anterior), alguns utilizam o mais sofisticado (e complicado) Sigma Delta (também chamado de Delta Sigma).

Diagrama de um ADC Sigma Delta (extraído da ref 3)


terça-feira, setembro 28, 2021

ADC (Conversor Analógico Digital) - Parte 2 - Aproximação Sucessiva

Uma forma bastante comum de implementar um ADC é através de aproximação sucessiva. Como veremos, este método fornece um resultado preciso com um circuito de (relativo) baixo custo, em troca de um tempo maior de conversão.

Diagrama de Blocos - Adaptado de https://en.wikipedia.org/wiki/Successive-approximation_ADC


quinta-feira, setembro 16, 2021

Memórias dos Anos 90: O Personal Shopper System

Vou quebrar a sequência cronológica dos meus posts de memória e voltar alguns anos atrás para falar de um sistema que eu conheci nos anos 90 e que eu vi em prática recentemente: o PSS (Personal Shopper System). Neste sistema, o cliente do supermercado realiza ele mesmo a leitura dos códigos de barras dos produtos à medida em que os pega nas gôndolas (prateleiras) e coloca no carrinho. Parece uma viagem? Está funcionando desde os anos 90 em lojas do supermercado Albert Heijn na Holanda.


terça-feira, setembro 14, 2021

ADC (Conversor Analógico Digital) - Parte 1

Este post é o primeiro de uma série a respeito de um recurso importante dos microcontroladores: o conversor (de) analógico (para) digital. Depois que a gente aprende o analogRead do Arduino, corre-se o risco de tratar o ADC como se fosse um periférico perfeito, que magicamente converte uma tensão em um número. Nesta série vou estudar o que é um ADC, quais suas características importantes, as formas comuns dele ser implementado e ver como ele é em alguns microcontroladores populares (e também num componente externo).

Um dos exemplos de AnalogRead na IDE do Arduino


quinta-feira, agosto 26, 2021

Memórias da Entrada no Terceiro Milênio

 Existiu uma certa confusão sobre as celebrações de "virada do milênio" serem feitas no início ou final do ano 2000 (a wikipedia em inglês tem um texto sobre isso). Na prática, nós comemoramos no final de 1999. O que vou falar aqui abrange 1999 e 2000, um período meio confuso para mim.


terça-feira, agosto 24, 2021

Primeiras Impressões: Adafruit Feather RP2040

Para a sua primeira placa de microcontrolador, a Raspberry Pi Foundation decidiu criar o seu próprio microcontrolador, o RP2040, e oferecê-lo para outras empresas projetarem as suas próprias placas. Uma destas placas é a Feather RP2040 da Adafruint.


terça-feira, agosto 17, 2021

Acelerômetro 3 Eixos MMA8452: Um Módulo MicroPython para Usar com o Raspberry Pi Pico

No post anterior vimos um pouco sobre este sensor e um exemplo de uso com o Arduino. Neste post vamos ver como usá-lo com o PiPico, programando em MicroPython.


quinta-feira, agosto 12, 2021

Memórias dos Anos 90: Os Primeiros Coletores Symbol com Windows CE

No apagar das luzes do século XX a Symbol estava se encaminhando para o seu ápice, comemorando a ultrapassagem de 1 bilhão de dólares de faturamento anual. Uma parte importante desta receita era um contrato com o governo americano envolvendo novos modelos de coletores.

PPT2700, PDT7200 e PDT7500 (não em escala!)

terça-feira, agosto 10, 2021

Acelerômetro 3 Eixos MMA8452: Introdução e uso com um Arduino

Mais um sensor para a coleção! Este é um acelerômetro capaz de medir a aceleração em três eixos (X, Y e Z, onde Z normalmente é a vertical) e que implementa várias funções adicionais para facilitar o seu uso.

terça-feira, agosto 03, 2021

Usando Display LCD TTF de 2,4" com CircuitPython na Franzininho WiFi

Em um post anterior eu estudei a comunicação com este display, que é baseada em enviar de forma paralela oito bits de dados/comando. Para fins de teste, naquele post eu controlei um a um os sinais de dados. Mas isso é um gargalo, principalmente quando vamos programar em CircuitPython

Programando em C no Arduino, é fácil trabalhar num nível abaixo e acessar direto os registradores e atualizar os oito pinos de dados de uma vez. Nest post vamos ver a maneira "pythonica" de fazer isso.



domingo, agosto 01, 2021

(Mini)Crítica: As Séries Marvel na Disney+: WandaVision, The Falcon and The Winter Soldier e Loki

Uma grande expectativa se formou com relação a estas séries, que se propõem a fechar algumas pendências de "Vingadores: Ultimato" (o nome original, "Endgame", me parece mais apropriado). É também "preparação essencial para os filmes da fase 4 do MCU" (aprendemos alguma coisa com o "Capitã Marvel é essencial para Vingadores: Ultimato"?). Seguem os meus comentários, sem grandes spoilers.


quinta-feira, julho 29, 2021

Memórias dos Anos 90: SPT-1500 e Palm

Eu já escrevi, em 2006, um outro artigo sobre isso (O Longo Adeus ao Symbol Palm Terminal). Dê um pulinho lá e leia, pois vou tentar não ser repetitivo. Já de volta? Então vamos lá!



quinta-feira, julho 22, 2021

Memórias dos Anos 90: Marketing de Produto

Estamos chegando ao final dos anos 90 e a uma fase mais confusa da minha vida profissional. Vocês já me imaginaram trabalhando com Marketing?

Você compraria um coletor desse sujeito?


terça-feira, julho 20, 2021

Projeto: Timer com o Raspberry Pi Pico

Já é hora de eu apresentar um projeto completo com o PiPico! Este timer é uma montagem simples e me diverti bastante com o visual.



domingo, julho 18, 2021

Crítica: War of Honor (Honor Harrington #10)

Insistindo na saga de Honor Harrington, outro livro longo, mas uma leitura que foi mais suave.


quinta-feira, julho 15, 2021

Memórias dos Anos 90: Serviços Sistêmicos Profissionais

O título acima é meio grosseiro, mas foi o que achei em um documento. Embora eu me lembre de muitos detalhes da minha vida profissional, devo reconhecer que às vezes tenho dificuldade em dizer quando foi cada coisa. Há pouco tempo achei um CD de backup de 2002, para mim surpresa ainda estava legível e tinha documentos do tempo que trabalhei na Seal. Isso possibilitou delimitar melhor esta fase.

Logo (não oficial)


terça-feira, julho 13, 2021

Raspberry Pi Pico: Gerando Vídeo Alfanumérico Colorido

Como mencionei algum tempo atrás, um dos meus projetos com o PiPico é fazer um terminal de vídeo alfanumérico, para usar com meus projetos com microprocessadores antigos (Z80, 6502, etc). Como parte deste projeto, eu preciso aprender como gerar um vídeo alfanumérico colorido (a meta é pelo menos 24 linhas de 80 colunas).

Minha ideia foi fazer algo semelhante ao que é feito no modo alfanumérico da CGA/EGA/VGA, armazenando os códigos dos caracteres e um byte de atributo para cada um, gerando em tempo real a sequência de pixeis correspondente. Pelo pouco que eu tinha lido sobre as rotinas (experimentais) de geração de vídeo VGA com o PiPico, me parecia algo viável. Mas eu acabei sofrendo bastante para fazer o básico funcionar e, por enquanto, tive que me conformar com 40 colunas...


domingo, julho 04, 2021

Resenha: Thelonious Monk: The Life and Times of an American Original

Uma leitura um pouco diferente: a biografia do compositor e pianista de jazz Thelonius Sphere Monk. Esta leitura me faz relembrar a minha descoberta de Monk e aprender um pouco sobre as dificuldades que ele e outros artistas negros passaram.


terça-feira, junho 29, 2021

Gravando Firmware "AT" no Módulo ESP-01 (ESP8266)

Uma coisa que pode fazer falta no PiPico é a comunicação WiFi, o módulo ESP-01 me pareceu uma solução pequena e barata. Em uma primeira abordagem vou usar o firmware que trabalha com "comandos AT" (explico já). Embora normalmente este firmware já venha instalado, eu achei que era fácil gravar e resolvi ter certeza que tinha a versão mais recente. E aí se foram seis horas, a maior parte de frustração...


quinta-feira, junho 24, 2021

Memórias dos Anos 90: Um Bate-e-Volta

Uma das características dos meus anos na Seal foram as viagens internacionais. Pelo menos uma vez para o ano eu ia para o exterior (exceto por uma única vez, sempre para algum lugar nos EUA), quase todas as vezes para um treinamento ou evento técnico. Mas esta viagem em 1998 para Cincinnati foi diferente.

A lembrança da viagem


domingo, junho 20, 2021

Crítica: O Legado de Jupiter (a finada série da Netflix)

 Esta crítica é meio tola, já que a série foi cancelada. Mas a primeira e única temporada continua disponível e alguém pode estar se perguntando se vale a pena ver (spoiler: não).


terça-feira, junho 15, 2021

Calculando Pi na Plaquinha (Uno, PiPico, ESP32, BlackPill, etc)

Uma coisa que está na minha lista faz algum tempo é fazer testes de velocidade com as várias plaquinhas que eu tenho. Mais pela brincadeira, pois estes testes normalmente não representam direito o desempenho em aplicações reais. E aí me surgiu a ideia de fazer a comparação calculando os dígitos do Pi.


quinta-feira, junho 10, 2021

Memórias dos Anos 90: Spectrum 24 (parte 2)

Nesta segunda parte vou falar sobre as mudanças na série 3000 de coletores para suportar o Spectrum24 e duas linhas novas de coletores. Espero que parte destas coisas tenha algum interesse mais geral que simplesmente listar modelos de equipamentos obsoletos...

As versões retail e industrial do PDT61xx, o PDT68xx e o VRC69xx

terça-feira, junho 08, 2021

Sensor Ultrassônico HC-SR04 com o Raspberry Pi Pico (usando o PIO)

À medida em que vou entendendo o funcionamento do PIO (Programmable I/O) do Raspberry Pi Pico, mais oportunidades de usá-lo eu vou enxergando. O dispositvo da vez é o sensor de distância HC-SR04, cujo funcionamento já examinamos oito anos atrás (!).


quinta-feira, maio 27, 2021

Memórias dos Anos 90: Spectrum 24 (parte 1)

No post anterior eu falei sobre o Spectrum One, um sistema de rádio específico para os coletores da Symbol. O sistema seguinte de RF da Symbol foi o Spectrum 24, que tinham aspirações bem maiores.


terça-feira, maio 25, 2021

Examinando um Shield Arduino com Display LCD TTF de 2,4" Sensível ao Toque - Parte 2

Na primeira parte vimos como é a interface com o controlador do display.  E a detecção de toque? Esta parte não é tratada pelo controlador, porém utiliza alguns pinos em comum com ele. Quais pinos e como implementar a detecção de toque deu um pouco de trabalho.


quinta-feira, maio 20, 2021

Memórias dos Anos 90: O Sistema Spectrum One

 Uma das vantagens dos coletores da Symbol em relação à concorrência era o sistema Spectrum One de comunicação por rádio. Nos meus primeiros anos na Seal eu trabalhei muito com ele (posteriormente foi montado um time só para cuidar dos projetos com rádio frequência).

A base de rádio do Spectrum One. A antena era externa e existiam muitas opções

terça-feira, maio 18, 2021

Examinando um Shield Arduino com Display LCD TFT de 2,4" Sensível ao Toque

Esta é mais uma daquelas plaquinhas que a gente acha em vários lugares (eu comprei no Mercado Livre). Um detalhe importante é que existem muitas variações com a aparência semelhante (este site estranho lista uma dezena de variações). A que eu tenho tem a identificação "tftlcd for arduino uno (spiflash)".


domingo, maio 16, 2021

Crítica: Star Wars - Rebels

Concluído "The Clone Wars", emendei com  Rebels, que é uma espécie de continuação (entre as duas temos agora "The Bad Batch"). Segue um crítica onde tentei pegar leve nos spoilers.

Os rebeldes. Dá para descobrir quem é quem pelas minhas descrições?


quinta-feira, maio 13, 2021

Memórias dos Anos 90: Coletores de Dados II

Como a "série 3000" rodava DOS (DR_DOS para ser exato) algumas pessoas pensavam que dava para escrever programas em qualquer linguagem (de preferência Clipper, estamos nos anos 90). Mas a compatibilidade limitada e a pouca memória levava à minha velha amiga, a linguagem C.

Gerando um arquivo HEX para carga no coletor


terça-feira, maio 11, 2021

Raspberry Pi Pico: Usando o PIO para Interfacear um Teclado PS/2

Uma das características mais interessantes da PiPico é o PIO - Programmable Input/Output, que permite executar pequenos programas de manipulação de entrada e saída digital em paralelo à execução dos núcleos ARM Cortex M0+.

Resolvi estudar o PIO fazendo a interface com um teclado PS/2, que já examinamos aqui no blog. Neste post anterior nós usamos um Arduino e os dados eram lidos bit a bit em uma interrupção gerada pelo sinal de clock. Com a PIO o processador vai receber direto o dado completo.

Sou sujinho mas funciono, viu?


quinta-feira, maio 06, 2021

Memórias dos Anos 90: Coletores de Dados I

Como já mencionei, a maior parte do meu trabalho na Seal foi relacionado a coletores de dados (principalmente, mas não exclusivamente, fazendo programas para eles). É hora de começar a falar sobre eles.

Coletânea de fotos dos coletores da Serie 3000, fora de escala
Em sentido horário, partindo do alto à esquerda: PDT3300, LRT3800, PDT3500 e
PDT3100. No centro o VRC3910.


terça-feira, maio 04, 2021

MicroPython ou CircuitPython?

As placas que estou usando atualmente (a Franzininho WiFi e a Raspberry Pi Pico) possuem suporte tanto do MicroPython como do CircuitPython. O que são estes dois ambientes e o que tem de igual e diferente entre eles?


quinta-feira, abril 29, 2021

Memórias dos Anos 90: Código de Barras III

 Vamos encerrar estas lembranças sobre código de barras falando num outro fornecedor de aparelhos para a Seal: a Accu-Sort. A Seal fechou a representação em torno da época que eu entrei, o primeiro treinamento foi bastante marcante.

O modelo 55, bem em surrado e sem a cor azul de fábrica.


terça-feira, abril 27, 2021

Raspberry Pi Pico: Gerando Vídeo VGA Colorido

No post anterior sobre o PiPico vimos como gerar vídeo composto monocromático. Agora vamos ver algo mais útil: como gerar vídeo VGA colorido.

A foto é ruim e o monitor tem um defeito no canto superior direito, mas o importante é que funciona!


quinta-feira, abril 22, 2021

Memórias dos Anos 90: Código de Barras II

Continuando a falar sobre código de barras, vou falar neste post sobre a impressão e as soluções que a Seal oferecia para isso.

Algumas impressoras da época que comecei a trabalhar na Seal


domingo, abril 18, 2021

Crítica: Web Development with Angular and Bootstrap

Se já era esquisito eu estar programando "back-end" com Spring Boot, eis que agora estou programando "front-end" com Angular... Logo vocês poderão dizer que eu sou um programador "full-stack"!

Algum dia eu escrevo um post explicando porque considero as aplicações web um monte de gambiarras (no bom e no mau sentido). Angular está lá para o topo: a ideia é que a sua aplicação é um imenso JavaScript que vai rodar no browser e criar dinamicamente o HTML. Para obter as informações da retaguarda são, tipicamente, usadas API Rest. E na verdade você não escreve diretamente o JavaScript, grande parte é gerada automaticamente a partir de decorators e templates; o que você escreve é em TypeScript que é uma versão fortemente tipada do JavaScript. Só que o browser não entende TypeScript, ele é traduzido para JavaScript pelo Angular. O resultado é bem interessante.

Como de costume, resolvi ler um livro para aprender e, aproveitando uma oferta da Packt, o escolhido foi este "Web Development with Angular and Bootstrap" de autoria de Sridhar Rao Chivukula e Aki Iskandar. A minha experiência com livros da Packet tem variado bastante, o que acredito indicar que eles não são muito seletivos sobre o que publicar. Será que desta vez eu gostei?



quinta-feira, abril 15, 2021

Memórias dos Anos 90: Código de Barras I

Embora a Seal viesse a trabalhar com muitas outras coisas, ela era conhecida principalmente por vender equipamentos relacionados a código de barras. Já escrevi alguns posts técnicos sobre isso, aqui vou dar uma visão mais geral sobre o assunto no contexto da Seal.


terça-feira, abril 13, 2021

Usando a Raspberry Pi Pico na IDE Arduino - Suporte Oficial e Não Oficial

Talvez estejamos mal acostumados, mas a forma oficial da Raspberry para programação C/C++ na PiPico vem sendo considerada bastante complicada. É necessário instalar vários softwares (um plugin para o Visual Code automatiza isto, mas ainda são vários passos a serem seguidos) e a criação de um novo projeto requer mais que simplesmente dar File New e sair digitando.

O que muitos desejam é o suporte ao PiPico na IDE do Arduino. E isso já existe, tanto de forma oficial como não oficial. Vamos ver aqui como instalar e alguns detalhes sobre isso (por enquanto ainda não tenho muita experiência com as duas opções).