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

terça-feira, 21 de março de 2023

Badge Tosco do Sickeira V1

Como sou um excelente programador (#SQN), toda essa parte é na base do Ctrl+C e Ctrl+V com poucas adaptações das fontes citadas, e na parte de desenvolvimento de placas fiz apenas algumas simples no século passado, por isso optei na substituição algo que usei bem em 2017, uma cortadora laser.


Primeira versão do meu protótipo de badge


Essa versão já foi aposentada e estou trabalhando na segunda, substituindo por uma placa universal o MDF e os parafusos por barra de pinos.


Protótipo com parafusos M3 e espaçadores feitos com canudos


https://badgepirates.com/

https://hackaday.io/project/165320-arc-badge-dc27-indie-badge


Acrílico para fechar a parte de cima https://hackaday.com/2022/08/21/an-ascii-terminal-like-its-1974/


Material

Jumpers fêmea-fêmea
ESP32 DevKitV1
Display 2.4 TFT SPI 240 X 320 com touch
Célula de 3,7 V 18650
Placa MDF de 3mm espessura, 85mm largura, 150mm altura


Lay-out


Primeiro é preciso decidir a disposição em que os componentes ficarão, como serão com jumpers de 10 cm então pensei em deixar o ESP32 em uma extremidade e o display na outra, com a bateria no meio, porém vendo diversas placas verifiquei que pelo peso o melhor seria deixar a bateria na parte de baixo com o display na parte superior e no centro o ESP32.


Pensando em qual posição ficaria melhor para cada componente


Tem de ser com 3 encaixes para o cordão, um centralizado e 2 nas bordas, para ter opção de escolha de como deixar pendurado.


Ligação


A pinagem do ESP32 DEVKIT V1


Pinagem do ESP32 DEVKIT V1 - Reprodução: mischianti.org



Para facilitar o meu entendimento da ligação planilhei as pinagens do display, cores dos fios usados no protótipo e os pinos usados no ESP32. 

Observe que os 3 primeiros são na ordem, no 4º e 5º pinos são invertidos no ESP32 DEVKIT V1, 





No começo não usarei touch screen e nem o cartão SD, isso ficara para um futuro próximo. 





Montagem


Conforme detalhado anteriormente em Display 2.4 TFT SPI 240 X 320 com touch depois de identificado o drive do display, que no caso do meu é ILI9341 será necessário calibrar o touch e trocar os valores exibidos no programa.



Software

Além do Arduino IDE, precisamos das bibliotecas TFT_eSPI







terça-feira, 2 de agosto de 2022

Badges #badgelife

Badges

Existem badges que não fazem nada de útil, apenas piscam LEDs  como o Encrypted Wall, existem os didáticos como o TCP Packet, os saudosistas como o floppy disk e o Floppy do Lonely Hackers Club.



Badges Encrypted Wall, TCP Packet, floppy v1 e Lonely Hackers Club



Alguns outros badges interessantes são o do Tor, que é um detector de mentiras (poligrafo) e pode ser visto em Hooked to a Lie Detector [Tor Badge] | DEF CON 29.

A DEF CON 30 será entre 11 e 14 de agosto de 2022 e por enquanto essa é a lista das badges de 2022.

Tem até um mini documentário como o BadgeLife - A Hackaday Documentary de 2018.

Além dos Badges, também existem os Pins ou Shitty Add-Ons, e são em sua maioria apenas uns penduricalhos para enfeitar o Badge. 

Para isto seguem um padrão de pinagem com alimentação de 3,3V e GND, SDA (GPIO 21 no ESP32) e SCL (GPIO 22 no ESP32) da comunicação I2C, GPIO1 (TX0 no ESP32) e GPIO2 (D2 no ESP32).


Pinagem do SAO - Fonte: YouTube HackADay


Alguns exemplos de arte muito bem feita em SAOs são o Baphomet Defcon SAO, Tor SAO Def Con, 


Badges H2HC

Um costume interessante nas conferencias americanas é o uso de badges, mas aqui no Brasil é muito difícil de ver alguma, com exceção da H2HC que faz os próprios badges.


Badges da H2HC de 2015, 2016, 2017, 2018 e 2019


Badge H2HC de 2015 é basicamente um Arduino Leonardo que funciona com 5V.

Badge H2HC de 2016 é um contador binário simples baseado no nodeMCU. Usando o uplink WiFi do ESP, ele pode ser facilmente transformado em um relógio NTP.

Badge H2HC de 2017 é um pequeno injetor USB HID baseado no ATTiny85. Depois que foi descoberto que o ATTiny85 poderia ser usado para BitBang USB (ele não possui uma interface USB nativa).

Badge H2HC de 2018 é um Espressif ESP32 WROOM, que é um pequeno WiFi & Bluetooth LE System on Chip.

Badge H2HC de 2019 não consegui encontrar informações detalhadas.

Atualizado em janeiro de 2023:

Coleções de Badges

E existem alguns colecionadores de respeito.


Coleção de Badges do @hamster  Reprocução: @hamster



Coleção do d1g1t4l_t3mpl4r que estava a venda



Vídeos e Links Complementares



Neste vídeo da DEF CON 27: #badgelife Art and SAOs with Twinkle Twinkie - Hak5 2605 Twinkle Twinkie explica como fez a badge e alguns SAOs, e deixa alguns exemplos no site. 

Alex Chaveriat comenta sobre alguns Unofficial DEF CON 29 Badges #badgelife | Pre-Con Look. E já na DEF CON 29 conversa com o criador do Incredible DC801 Badge | DEF CON 29, os códigos podem ser encontrados no GItHub como o DC801 Black Mage Badge. 

Aqui vão alguns outros links para inspirar:



Se chegou até aqui e gostou, deixa um comentário ou entre em contato comigo, estou querendo desenvolver uma badge com ESP32 e um Display 2.4 TFT SPI 240 X 320 com touch e slot para cartão SD, mas vou precisar de mais gente no processo, até porque muitas coisas ainda estou aprendendo.a intenção é ser um projeto aberto e colaborativo.

terça-feira, 19 de julho de 2022

Display 2.4 TFT SPI 240 X 320 com touch e slot para cartão SD

Uma coletânea de links interessantes sobre o assunto com algumas anotações do meu aprendizado.

Existem diversos tipos de display de 2,4 polegadas TFT SPI, alguns bem simples como os de formato shield em que não precisa se preocupar com ligação, basta encaixar na placa e ligar, e também modelos com touch e sem, com slot para cartão SD, micro SD ou sem slot de cartão, e claro também existem outros tamanhos diferentes.


Frente do Display 2.4 TFT SPI 240 X 320 com touch e caneta


O modelo usado aqui é o Display 2.4 TFT SPI 240 X 320 com touch e slot para cartão SD. Onde TFT é Thin Film Transistor (Transistor de Película Fina), SPI é Serial Peripheral Interface e 240 x 320 é a resolução em pixels.


Verso do Display 2.4 TFT SPI 240 X 320 com touch


A documentação original deste display pode ser encontrada nesta wiki. E destacarei as informações que considero mais relevantes.


Especificações Técnicas

Especificações técnicas do display




Pinagem


O display tem 14 pinos sendo 9 de uso geral e 5 para acionamento do touch,  mais 4 pinos separados para o cartão SD. 



Pinagem do Diplay extraída diretamente do Datasheet



SD-CS: Chip select signal for SPI protocol (SD Card)
SD-MOSI: SPI bus write data signal
SD-MISO: SPI bus read data signal
SD-SCK: SPI bus clock signal



Arduino



Para entender se usar 5 V ou 3,3 V assista #154 - Display TFT ILI9341 - parte 1, neste outro vídeo tem ideias de montagem de um shield para o display #155 - Display TFT ILI9341 - parte 2, 







Para facilitar como deve ser feita a ligação do display usando o SPI com o Arduino, siga o esquema. 


https://capsistema.com.br/index.php/2020/11/28/como-usar-spi-no-arduino-comunicacao-entre-duas-placas-arduino/


Esquema de ligação do Arduino pelo SPI  segundo o vídeo Connect an SPI TFT with Touchscreen to your Arduino - ILI9341 LCD with XPT2046 Touch screen



A desvantagem de usar com o Arduino Uno é que é preciso usar alguns resistores.



Para meu projeto, que quero simplicidade na montagem e mais funcionalidades, acabei decidindo pelo ESP32.

ESP32



No canal XTronical explica a ligação básica no vídeo ILI9341 TFT LCD to ESP32 - Full HOW TO for display, SD card and Touch. Using TFT_eSPI driver, e mostra as bibliotecas que vai usar nos exemplos , no ®windows, no caso são TFT_eSPI antes de usar o exemplo TFT_Meters, para testar o cartão SD adicionar lib JPEGDecoder e por último para usar o touch screen usa o exemplo TFT_eSPI -> Generic -> On_Off_Button. Mais detalhes podem ser encontrados em ILI9341 TFT LCD to ESP32 – Full HOW TO.




Modelo sem touch ligado ao ESP32 Arduino-friendly 240x320 LCD Display Tutorial (ILI9341) com alguns exemplos básicos de desenho na programação. Usa as bibliotecas SPI, Adafruit_GFX e Adafruit_ILI9341.


Aqui muda o tamanho Interfacing 2.2 Inch IPS Full Color TFT Display Module with ESP32 mas os conceitos são os mesmos.

Neste caso é sem o cartão ESP32 - Touchscreen - TFT_eSPI - ILI9341.

No vídeo Displays gráficos com ESP32 e Arduino IDE 2.0 tem vários exemplos de aplicação do display TFT com o Fernando K fazendo as demonstrações, apesar de ser outro driver , no exemplo usa o  ILI9488, cita o LCD Wiki, tem uma imagem com os pinos divididos entre display, touch e cartão SD, além da tabela com ligação no ESP32.

Demonstra alguns usos da TFT_eSPI, como exemplos que podem ser acessados no Arduino IDE pelo caminho Arquivos -> Exemplos -> TFT_eSPI -> TFT_Meters,  Meter Ring, 
Cubo em 3D, 
calibração, 
Keypad_320 (verificar), 

A lib JPEGDecoder foi lenta neste exemplo, mesmo sendo ligado pelo H SPI, e explica um pouco do DrawSd Jpeg e outros códigos.


Print Screen da tabela de ligação do ESP32 ro vídeo




Para aprender a fazer interfaces simples e pouco depois dos 3 minutos tem a visão microscópica do TFT How to create a simple Touchscreen GUI || Arduino LCD & Touchscreen Tutorial
   



Visão microscópica do TFT - Prints do vídeo How to create a simple Touchscreen GUI || Arduino LCD & Touchscreen Tutorial



No canal do Ralph S Bacon além de falar que prefere o display convencional no lugar do shield, ele mostra que o display funciona corretamente com imagens em bitmap e em jpg ocorrem alguns problemas, informações retiradas do vídeo #204 TFT Touch Screen ILI9341 SPI for ESP32 (Internet Radio Research)







Se o seu for o shield recomendo estes:
Esquema de ligação do shield mcufriend 2.4 inch shield display for esp 32



Softwares


Depois de ligados os fios, primeiro precisamos identificar o chip controlador e para isso tem o programa Identificador do Brincando com ideias. não funcionou apresentou este erro

Arduino: 1.8.13 (Linux), Placa:"DOIT ESP32 DEVKIT V1, 80MHz, 921600, None"
/home/sickeira/Arduino/libraries/MCUFRIEND_kbv/MCUFRIEND_kbv.cpp:2724:30: warning: unused variable 'ILI9481_RGB_regValues' [-Wunused-variable]
         static const uint8_t ILI9481_RGB_regValues[] PROGMEM = {    // 320x480
                              ^
/home/sickeira/Arduino/libraries/MCUFRIEND_kbv/MCUFRIEND_kbv.cpp:2816:7: error: label 'common_9488' defined but not used [-Werror=unused-label]
       common_9488:
       ^
cc1plus: some warnings being treated as errors
Usando a biblioteca MCUFRIEND_kbv na versão 2.9.9-Release na pasta: /home/sickeira/Arduino/libraries/MCUFRIEND_kbv 
Usando a biblioteca Adafruit_GFX_Library na versão 1.10.13 na pasta: /home/sickeira/Arduino/libraries/Adafruit_GFX_Library 
Usando a biblioteca Adafruit_BusIO na versão 1.11.2 na pasta: /home/sickeira/Arduino/libraries/Adafruit_BusIO 
Usando a biblioteca Wire na versão 1.0.1 na pasta: /home/sickeira/.arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/Wire 
Usando a biblioteca SPI na versão 1.0 na pasta: /home/sickeira/.arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/SPI 
exit status 1
Erro compilando para a placa DOIT ESP32 DEVKIT V1




Antes de rodar esse identificador é necessário adicionar uma biblioteca, em Ferramentas -> Gerenciador de Bibliotecas,.

Depois é preciso calibrar o display, e para isso pode usar o programa calibrador do Brincando com ideias



Medidas


Na proto board com jumpers e om o ESP32 tentando ligar o display TFT coloquei o USB Color Display Tester - parte 1 quando a tela ficava totalmente branca e os resultados em 5 V foram 0,116 A e potência de 0,582 W.








Dicas

Por usar touch resistivo, é recomendado não usar botões pequenos no display.
Vídeo sobre paleta de cores #161 - Display TFT ILI9341 - parte 3 com diversos links úteis.

quarta-feira, 14 de abril de 2021

HH - ESP32

Esse é apenas uma coletânea com alguns links úteis e  informações que considero interessantes, é meu primeiro contato com esta placa que é a ESP32 DEVKITV1, a partir daqui vou usar apenas ESP32 para me referir a placa, e conforme for aprendendo compartilho aqui.


ESP32 DEVKITV1 com o chip ESP-WROOM-32 

A Espressif Systems é a fabricante do ESP32 (daí a abreviação), que de tantas variações fez o fabricante criar até uma ferramenta chamada ESP Product Selector para facilitar a vida de seus clientes, tem um vídeo com uma demonstração feita pelo Fábio Souza ou ainda tem o comparativo no site.


Vista inferior do ESP32 DEVKITV1, vulgo ESP32


Características Técnicas

O FCC ID do módulo ESP-WROOM-32 é 2AC7Z-ESPWROOM32 e podem ser encontrados diversos relatórios detalhados, incluindo as fotos internas do módulo, e aqui pode ser visto o datasheet.

O módulo é a parte do encapsulamento metálico, e as antenas ficam ao lado, mas o microcontrolador ESP32 de verdade é apenas o circuito integrado dentro do módulo, como pode ser visto nas  fotos internas do módulo.


Reprodução: Foto interna módulo


Algumas características dessa plaquinha que se destacam são:
Microprocessador dual core Tensilica Xtensa 32-bit LX6
Clock ajustável de 80MHz até 240MHz
Memória flash externa: 32Mb (4 megabytes)
Suporte a redes WiFi: 802.11 b/g/n (2,4 a 2,5GHz)
Segurança: WPA/WPA2/WPA2-Enterprise/WPS
Criptografia: AES/RSA/ECC/SHA
Modo de operação: Station / SoftAP / SoftAP + Station/ P2P
Bluetooth: v4.2 BR / EDR e BLE (Bluetooth Low Energy)

Pinagem




Esquema de pinagem do ESP32 DevKit1  - Reprodução: Circuits4you




Ambiente de Programação

Se assim como eu, optar por usar o Arduino IDE  para ambiente de programação, então sugiro que leia  Como instalar o instalar o Arduino IDE no Linux.

A fabricante disponibiliza o próprio ESP-IDF (IoT Developmant Framework). mas como já estou familiarizado com o Arduino IDE, e a versão estável é 1.8.13,  vamos continuar e adicionar a ESP32.

Antes de usar o ESP32 pela primeira vez é necessário configurar corretamente o Arduino IDE, e na barra de ferramentas, selecionar Arquivo - Preferencias, depois no campo URLs Adicionais para Gerenciadores de Placa basta colar o link https://dl.espressif.com/dl/package_esp32_index.json e clique em OK.




Atenção: Se já tem outras URLs no Arduino IDE, basta separar com uma virgula, por exemplo https://dl.espressif.com/dl/package_esp32_index.json ,  https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json.

Depois no Arduino IDE vá em Ferramentas - Placa, depois na janela Gerenciador de Placas  na caixa de busca digite "esp32", e quando aparecer "esp32 by espressif systems"  clique em Instalar.




Depois de concluída a instalação aparece a notificação INSTALLED.




Depois de instalado basta adicionar a placa DOIT ESP32 DEVKIT V1, para isso basta selecionar no menu Ferramentas - Placa - ESP32 Arduino - DOIT ESP32 DEVKIT V1.








Para verificar se a placa esta funcionando corretamente usaremos como exemplo o WIFISCAN, que se encontra em Arquivo - Exemplos - Exemplos para DOIT ESP32DEVKITV1 / WiFi - WiFiScan




Agora se ainda usa o ®windows sugiro ver esse tutorial do Fernado K.


Consumo do ESP32

Aproveitei que agora tenho um USB Color Display Tester e medi o consumo executando esse exemplo do WiFiScan, que foi de 137 mA, sendo alimentado com 5 V direto do USB do notebook.


Consumo do ESP32 quando executado o exemplo WiFiScan


Para saber o consumo sem usar o wifi com apenas um script que identifica o tipo do chip e quantos cores possui a plaquinha, usamos o GetChipID , cujo resultado pode ser visto no detalhe do monitor serial e o consumo deste é de 45 mA sendo alimentado com 5 V direto do USB do notebook.


No detalhe resultado do GetChipID, e na imagem principal o consumo


Projetos Interessantes

O Fernando K tem duas vídeo aulas introdutórias já com um programa para escanear as redes Wi-Fi e a  potência destas redes (vídeo 1 e vídeo 2) e ainda podem verificar o material usado nestas aulas, é focado em usuários do ®Windows na parte de instalação, mas para gravar o programa na plaquinha é o mesmo procedimento.

O Random Nerd Tutorials tem mais de uma centena de projetos com ESP32, e alguns que destaco são:

Alimentador para peixes Homemade Wi-Fi Fish Feeder With Camera (ESP32-Cam).

Servo motor com ESP32

WiFi Signal Strength Scanner Monitor or Checker

ESP32: Pocket Size Distance Measuring and Logger



Como fazer uma câmera de segurança IP

Um pouco mais trabalhoso é este ESP32 Wifi Robot.

ESP32 Robot Using Servos

Internet Radio Using an ESP32

Mais de 110 projetos usando ESP32 e Arduino IDE.


Variações do ESP32

Caso se interesse por outras variantes do ESP32 ainda sugiro uma lista de material bônus, no site da fabricante Espressif tem um Comparativo de Parâmetros entre os módulos disponíveis e uma lista dos DevKits com ESP32. 

O Laboratório Hacker de Campinas (LHC) tem uma série de lives chamada "LIVE - Hands On: Construindo o nodeLHC ESP32 com Kicad", usando o KiCad para desenhar a placa e o circuito, e até o momento são estas:

  1. Parte 01 - 28/08/2020 duração de 2h54m, introdução ao Ki-Cad e inicio do circuito:
  2. Parte 02 - 11/09/2020 duração de 3h10m:
  3. Parte 03 - 20/11/2020  sem vídeo, foi coleta de feedback do nodeLHC ESP32:
  4. Parte 04  sem vídeo gravado, foram as melhorias para o nodeLHC ESP32:
  5. Parte 05 - 22/01/2021 duração de 1h52m.

Mais detalhes sobre o projeto podem ser encontrados no GitHub do LHC e podem colaborar com o projeto pelo Discourse do LHC.
Também existe um vídeo Placa de desenvolvimento Open e Colaborativo nodeLHC-ESP32 - Palco: FLAHWL - Fórum de Hardware Livre da LatinoWare 2020 falando sobre o projeto.

O Pedro Minatel também fez algumas lives sobre o ESP32-C3 que usa RISC-V e até do ESP32-S3

Artigos:
Vídeos: