Mostrando postagens com marcador arduino IDE. Mostrar todas as postagens
Mostrando postagens com marcador arduino IDE. 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







quarta-feira, 20 de abril de 2022

Intel Edison e Wireshark

O pessoal do ABC Makerspace resolveu corrigir um erro na instalação do suporte para a placa Intel Edison, e descobriu que o mesmo acontece com a Intel Galileo, mas para corrigir é necessário saber onde o Arduino IDE vai buscar  os repositórios, a pendência era esse link de quando é instalado o suporte de uma nova placa.




Em conversa com o grupo, um corrigiu o erro localmente, porém é necessário enviar essa correção para os repositórios oficiais, e para descobrir a resposta deste caso foi usado o Wireshark.




As placas que usaremos para fazer o estudo são a Intel i686 Boards que é correspondente da linha de placas Intel Edison e a Intel i586 Boards, que é referente a linha de placas Intel Galileo.

Para preparar a captura a tela foi dividida no meio e deixei em uma parte o wireshark já aberto e na outra parte abri o Arduino IDE.


Área de trabalho dividida e preparada com wireshark e Arduino IDE

Se for possível, antes de tudo, para minimizar o tamanho do pacote a ser capturado pelo wireshark, precisamos garantir que todos os outros programas estejam fechados, até para evitar confusão na hora da analise.


Arduino IDE

Depois de abrir o Arduino IDE, entre em Ferramentas -> Placa -> Gerenciador de Placas, na caixa que se abre, no canto superior direito basta digitar o nome  da placa a ser adicionada, e como as duas são da Intel, o resultado será semelhante a este:


Resultado da busca por placas da Intel no Arduino IDE


Infelizmente o link "more info" nos conduz ao http://maker.intel.com/ que esta desativado. 

Para instalar o suporte às placas é só clicar em instalar e aguardar a finalização, depois para usar não se esqueça de selecionar a placa correta no Arduino IDE, entre em Ferramentas -> Placa e basta escolher a que vai utilizar.


Intel Edison


A Intel i686 Boards é a Edison com a versão 1.6.7 + 1.0, e o pacote tem 78998 kb, o arquivo gerado pelo wireshark foi de 87 MB.

Para gravar o pacote do Wireshark, foi deixado aberto o Arduino IDE no ponto exato em que começa a instalação do suporte à placa, inicio o Wireshark e na sequencia a instalação no Arduino IDE, assim que concluida a instalação paro e salvo o pacote gerado pelo wireshark.


Wireshark e Arduino IDE abertos simultaneamente para gravação do pacote


Ao analisar o pacote gravado pelo Wireshark, utilizando o filtro HTTP conseguimos o seguinte resultado:


Resultado do Wireshark com filtro HTTP2 para instalação da Intel Edison



No resultado da análise conseguimos a URL onde esta o repósitório que o Arduino IDE vai buscar os arquivos para suporte da placa.


Por curiosidade tentei acessar o IP encontrado (http://108.139.182.103) usando o browser e o resultado foi um erro 403.




O mesmo procedimento depois foi feito para a Intel Galileo.


Intel Galileo


A única diferença foi que no caso da Intel Galileo foi usado o filtro "http2", e para entender melhor sugiro ler HTTP/1 to HTTP/2 to HTTP/3 (em inglês).



Resultado do Wireshark com filtro HTTP2 para instalação da Intel Galileo



A Intel i586 Boards é a Galileo com a versão 1.6.7 + 1.0, e o pacote tem 56227 kb, e o arquivo gerado pelo wireshark foi de 62 MB, o link encontrado foi:

http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2


Apenas por curiosidade, como o resultado deu um IP (http://108.139.182.109), tentei acessar pelo browser, e o resultado foi um erro 403.




Assim que finalizada a correção será upada no github do ABC Makerspace.


Se gosta de plaquinhas de prototipagem já escrevi mais sobre o assunto em:


Descobri agora que é possível medir potência do sinal wi-fi com o Wireshark, depois de ver o vídeo Pick a Wi-Fi Antenna for WiFi Hacking [Tutorial] (janeiro 2023)

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

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.jsonhttps://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:


quarta-feira, 10 de março de 2021

HH - Digispark

Frente e verso do Digispark comparado à moeda de R$ 1


O Digispark é uma excelente opção para quando precisar de um microcontrolador compacto e barato, por isso o indicaria para quem quer iniciar.


Características Técnicas

 

Pinagem do Digispark ATTiny 85 - Reprodução: DevianArt

– Microcontrolador: Atmel ATTINY85
– Memória flash: 8KB
– EEPROM: 512 bytes
– SRAM: 256 ou 512 bytes
– Pinos de I/O: 6
– Conexão: USB Tipo A ou Micro USB B, depende do modelo
– Conversor analógico digital (ADC) em 4 pinos
– Baixo consumo de energia
– Dimensões da PCI:  25mm x 18,5mm x 4,5mm(USB A) ou 
                                    26,5 x 18,5 x 4,5mm (Micro USB B)

Atenção na hora da aquisição do Digispark, para verificar se é com o USB A ou USB Micro B, pois dependendo do uso, um tem mais vantagens sobre o outro, enquanto o primeiro pode ser plugado diretamente na porta USB o segundo precisa de um cabo para a conexão.



Comparativo entre os dois modelos de "Digispark" com USB tipo A na esquerda e Micro USB B na direita



Caso ainda queira se aprofundar na parte do circuito da placa pode consultar o esquema elétrico


Ambiente de Programação


Para programar usaremos a Arduino IDE, mas atenção com a versão usada,  pois os repositórios oficiais de algumas distribuições GNU/Linux estão desatualizados, não faça como eu que perdi um tempo devido a indicação ser 2:1.0.5, quando na verdade a interpretação de versão correta é 1.0.5. Caso tenha uma versão antiga instalada no Linux, lembre de primeiro remover esta para depois instalar a atualizada.

No momento que escrevo, março de 2021, a versão estável é 1.8.13, e na versão beta foi lançada a 2.0. Para evitar erros sugiro usar a versão estável, por já ter sido testada pela comunidade.



Cuidado com a versão do Arduino IDE, neste caso  é  1.0.5


No menu do Arduino IDE tem muitas diferenças entre as versões, inclusive de campos que são necessários para o correto funcionamento do Digispark. Para instalar a última versão disponível sugiro seguir o tutorial Como instalar o Arduino IDE no Linux.

Antes de usar o Digispark pela primeira vez é necessário configurar corretamente o Arduino IDE, e na barra de ferramentas, selecionar Arquivo - Preferencias, depois no campo Additional Boards Manager URL basta colar o link https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json e clique em OK.





Depois no Arduino IDE vá em Ferramentas - Placa, depois na janela Gerenciador de Placas em Tipo selecione Contribuído e role a barra lateral até encontrar Digistump AVR Boards, ou se preferir digite Digistump na caixa de busca, e depois clique em Instalar, aguarde a instalação, que aparenta parar por alguns instantes, mas tenha paciência. 




Depois de finalizada a instalação, para uso do dispositivo basta selecionar no menu Ferramentas - Placa - Digistump AVR Boards - Digispark (Default - 16,5MHz).




Agora basta testar com o código desejado ou ainda pode usar exemplos disponíveis como o Start que é similar ao famoso Blink, para encontra-lo basta ir em Arquivo - Exemplos - Digispark_examples - Start.





Caso preferir, gravei um video com esses passos , sem cortes de tempo, para ver que todo o processo não leva nem 4 minutos.






Possíveis Problemas

Alguns dos problemas que ocorrem com mais frequência são notificados na parte inferior do Arduino IDE e alguns destes são solucionados abaixo:

Mensagem  "Device search timed out"

Mensagem de erro quando não foi detectado o Digispark

A placa não foi conectada na porta USB do computador durante o tempo estipulado de carregamento do código de 60 segundos. Tente novamente realizar o procedimento, porém atente-se ao aviso para conectar a placa ao computador, durante o intervalo informado, se usar cabo verifique se o mesmo esta OK.


Mensagem  "Assertion failed: res >= 4, file library/micronucleus_lib.c, line 100"

A placa já estava conectada ao computador antes do aviso da Arduino IDE para conectar a placa. Desconecte a placa a porta USB, e então conecte-a apenas quando a Arduino IDE retornar a mensagem mencionada acima no tutorial.


Mensagem "micronucleus: library/micronucleus_lib.c:66:  micronucleus_connect Assertion 'res >= 4'  failed"

No caso de usar uma distribuição similar ao Parrot Security que tem diversas restrições de segurança use o comando no terminal ls /etc/udev/rules.d para verificar se as regras do Micronucleus já estão instaladas, caso não conste o pacote 49-micronucleus.rules no resultado então é necessário instalar na pasta /etc/udev/rules.d.

Este erro só foi corrigido graças a ajuda do Emerson do OldFatNerd.

Caso ainda esteja no mau caminho, no portal Embarcados tem um tutorial de instalação  no ®windows


Projetos com Digispark


Selecionei alguns projetos bem interessantes que podem ser feitos com o Digispark.

Fernando K tem uma vídeo aula interessante de um monitor de temperatura e umidade feito com o Digispark, além de um texto com links e detalhes, ATTINY – O Menor Arduino do Mundo.

Teclado com apenas uma tecla feito pelo Cesar Gimenes, ai você pode pensar qual o objetivo disso, e te mostro um exemplo de um projeto de botão físico para mutar o Zoom ou até encerrar o programa, nessas reuniões online que se tornaram tão frequentes.

Também é possível acionar o Digispark com módulo Bluetooth.

Um outro projeto muito util é o Password USB Key

E por último o mais complexo que encontrei é um similar ao Rubber Ducky:

Mais alguns links úteis para o genérico do Rubber Ducky são o GitHub Hak5 e o GitHub Marcus Mengs que contém os scripts do duck2spark e o DuckEnconder.



Caso queira se inspirar e conferir outros projetos que utilizam o Digispark, sugiro visitar o https://www.hackster.io/digispark.


Upgrades

Agora se quiser dar um upgrade e se tiver acesso a uma impressora 3D, em uma busca rápida no Thingverse encontrei alguns cases interessantes: