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

quinta-feira, 7 de julho de 2022

Digispark - parte 2

Aqui vou apenas deixar registrado algumas anotações de comandos usados nos scripts para o HH - Digispark (54), além de observações sobre as bibliotecas usadas e até o consumo executando alguns scripts.







Consumo

Como na época do primeiro post ainda não tinha o USB Color Display Tester, aqui deixo registrado o valor consumido quando executa  um blink (Arquivo -> Exemplos -> Digispark_Examples -> Start), são 5 V e 0,011 A com a potência de 0,062 W.






Com um script simples para digitar texto no PC o consumo tem pouquíssima alteração.



Este script inclusive com algumas pequenas alterações, pode ser usado como "cofre" de uma parte de uma senha complexa, onde o digispark digita uma parte da senha a depois o usuário completa a senha digitando outra parte manualmente.


Bibliotecas

A biblioteca mais usada para "simular" o teclado é a DigiKeyboard.h.

Em alguns casos como o uso em computadores com teclado ABNT2 é necessário trocar a biblioteca padrão desses scripts por uma biblioteca adaptada,  no caso a digisparkABNT2 ou a DigiKeyboardPtBr.h

Enquanto no ®windows o arquivo scancode-ascii-table.h deve ser colocado dentro do diretório C:\Users\USUÁRIO\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkKeyboard no Linux o equivalente é home/nome_do_usuario/sketchbook/libraries.

Comando



Os comandos mais usados são:
DigiKeyboard.println ("Mensagem sempre entre aspas");
DigiKeyboard.delay (tempo em milisegundos);
DigiKeyboard.sendKeyStroke (código da tecla);


Exemplo de comandos bastante usados para scripts no Digispark no Arduino IDE




O ATtiny 85, microcontrolador do Digispark, tem 8 KB de memória flash, que em teoria significariam 8192 caracteres para uso, mas ainda existe o programa que lê o script, então considere usar no máximo a metade.

Muitas das vezes o HH - Digispark pode ser usado como um teclado para digitar alguns comandos no PC, e para facilitar o entendimento dos scripts que estou estudando vai uma tabela das teclas e os códigos usados na Arduino IDE.


Tabela com as principais teclas e seus códigos usados no Arduino IDE para o Digispark




Para usar duas teclas simultaneamente basta usar uma vírgula entre elas, como por exemplo as teclas de atalho.

A tecla TAB é nornalmente acionada por :
DigiKeyboard.sendKeyStroke (KEY_TAB); 
Em alguns casos para navegar pela tela sem o mouse, usamos a tecla TAB, em alguns casos é preciso usar diversas vezes seguidas (no exemplo esta com 3 ), e o comando pode ser substituído e simplificado por: 
DigiKeyboard.print ("\t\t\t");

Para ver como seria o resultado com a biblioteca incorreta no Digispark, basta comparar a grafia no Arduino IDE para o resultado no bloco de notas, no video abaixo:



 

Uma sugestão é criar os próprios scripts, e para ajudar sugiro ver Para que servem as teclas de F1 a F12 nos computadores.



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: