Parte 2: Módulos e AppStore. ESPboy - um gadget para jogos retrô e experiências com a Internet das coisas

Desde a publicação do primeiro artigo sobre o dispositivo ESPboy que eu projetei no microcontrolador ESP8266, já passou muito tempo.





No entanto, algo foi feito durante esse período:


  1. Traga o próprio dispositivo para a fase de produção
  2. Crie módulos de expansão, escreva software para eles e depure
  3. WiFi Apple iStore Google play market
  4. Arduboy Arduboy ESPboy
  5. Little Game Engine


Comparação do ESPboy com o M5Stack, MeowBit e Dingoo A-320 Eu me cansei de soldar



e consegui negociar com os excelentes chineses do www.makerfabs.com que reuniram algumas dúzias de kits para montagem final independente. A qualidade acabou ótima, pela qual muito obrigado a eles. É necessário soldar apenas 4 peças para fazê-lo funcionar.



Ele rapidamente distribuiu um lote de testes para aqueles que desejam participar do desenvolvimento do projeto, e seria necessário solicitar mais, mas você precisa descobrir como lidar com o controle aduaneiro. Se você encontrar vários dispositivos do mesmo tipo em um pacote, há risco de atraso e desmontagem prolongada.



Módulos de expansão e software para eles


Em seguida, conseguimos coletar módulos de protótipo e escrever para cada software, o que transforma o ESPboy em um dispositivo completo, conforme o planejado. Para fazer isso, basta conectar o módulo desejado ao slot de expansão e atualizar o firmware. Fontes no github .



Existem várias outras iterações para trazer todos os módulos para o estágio de produção.

É necessário desenhar placas de circuito impresso, fazer listas verificadas de componentes disponíveis e baratos, escrever instruções detalhadas, organizar tudo na forma de baleias, prontas para montagem e na forma de produtos já montados.

Espero ter tempo para fazer tudo isso antes do final deste ano.

Hoje, as seguintes extensões estão totalmente preparadas e depuradas:

  1. Mini teclado completo
  2. Estação Meteo
  3. Leitor de mp3
  4. Radio FM
  5. Navegador GPS
  6. Módulo DAC para tocar música
  7. LORA messenger
  8. Telefone GSM

Também estão no trabalho algumas idéias mais interessantes, espero contar em breve.

Algumas palavras sobre cada módulo


1. Um mini teclado completo

Baseado no teclado do smartphone Blackberry Q10, controlado pelo expansor de portas MCP23017.



muitas informações sobre os sinais no loop do teclado e a tarefa é solicitar um conector + adaptador para o cabo e soldar esse conector no adaptador. Dado o tamanho do conector em alguns milímetros e o tamanho dos contatos literalmente do cabelo, a tarefa não é fácil.

MCP23017 funciona no i2c e não houve problemas no plano de software. É necessário interrogar a matriz do teclado para procurar contatos fechados e interpretar corretamente os sinais no layout do teclado. Os detalhes são visíveis nos códigos-fonte .



2. Estação Meteo

Qual trabalhador do arduino não coletou a estação meteorológica. Você não encontrará tal coisa na natureza.
Minha versão usa um sensor de pressão / umidade / temperatura i2c BME280 e também um sensor de CO2 - SGP30 .

Como um bônus - relógio em tempo real DC3231 , que também permite exibir a hora correta.

Ainda se pensava em adicionar um sensor de raios / raios AS3935 , mas um pouco caro. Talvez mais tarde.



O módulo em si acabou por ser pequeno, o código está aqui .

Como uma versão estendida, fiz uma peça maior no teste. Não gostei, mas o vídeo do experimento foi preservado.



3. MP3 player

Usou o DFplayer mini mp3 , da mesma maneira que é descrita nos artigos sobre este módulo .

O único problema é que as pessoas defeituosas geralmente se deparam e não trabalham de forma estável ou nem sequer funcionam. O código-fonte .

4. Rádio FM

Como base, foram utilizados o módulo sintonizador fm SI4703 e uma biblioteca levemente dopada da mathertel .



O rádio toca com bastante tolerância em fones de ouvido, a busca por estações e até o RDS funciona. O código está aqui.



5. Navegador GPS

Nenhum lugar para ir sem navegação. Portanto, é claro, decidi montar um módulo adicional para esta tarefa.
Usei o chip WAVGAT GY-NEO6MV2 com o qual não havia absolutamente nenhum problema. Implementou dois ekarana. Um é o modo de navegação livre, o segundo é o modo de seguir para um ponto da memória. Teoricamente, você pode colocar um mapa lá, mas essa é uma tarefa longa. O código fonte ainda está lá .



5. Módulo DAC para reprodução de música

Ao desenvolver o emulador ZX Spectrum , surgiu a idéia de emular seu coprocessador musical AY-3-8910. A emulação de software na dinâmica interna acabou, mas os custos do processador para síntese e qualidade do som deixaram muito a desejar. No final, o Spectrum on ESPboy ganhou, mas apenas na versão 48k sem emulação AY, porque até havia memória suficiente disponível de ponta a ponta (literalmente algumas dúzias de bytes por pilha permaneciam).



No entanto, graças aos esforços de Shiru e seus experimentos com som , apareceu um módulo DAC para o ESPboy e uma música do espectro AY-3-8910 Spectrum para o jogador PT3 .

O módulo foi usado no PCM5102 com suporte para a interface I2S (para não confundir com I2C ). Sempre existem códigos-fonte .



7. LORA messenger

Há pouco tempo, tornou-se uma tecnologia muito popular LORA - protocolo de transmissão de economia de energia de pacotes curtos de dados no ar, por longas distâncias. Vasculhei e descobri transceptores baratos da EBYTE .

E com potência máxima, eles cortam até 8 km na linha de visão. Aqui você precisa entender que os obstáculos na forma de terreno e desenvolvimento urbano reduzem drasticamente esse indicador, bem, o ruído urbano também. No entanto, em condições suburbanas, ou se satélites com torres GSM, por exemplo, caírem, este é um excelente canal de comunicação. As experiências resultaram na criação de um módulo de bate-papo completo no ar. O próprio módulo criptografa o pacote, mas também estou no topo como uma opção AES (isso está desativado por padrão).

TivePara ficar confuso com a biblioteca sob o transceptor, porque os existentes eram de buggy ou eu não entendia como eles funcionam.





8. Telefone hacker GSM

Depois de encontrar o designer de telefones Ringo (anteriormente Maker Phone) na rede , fiquei muito surpreso com o preço e a complexidade. Tendo experiência com os conhecidos módulos SIM800 da empresa SimCom, ele rapidamente lavou o telefone.

Claro, não é tão conveniente quanto os smartphones modernos favoritos de todos, mas não espia nem rouba seus contatos.





O software escrito suporta o mínimo necessário:

  • Exibição da hora atual
  • Atender e encerrar chamadas
  • Discando um número
  • Receba e envie SMS

Além disso, a tela exibe todas as informações de serviço na operação do transceptor GSM. Pedidos e respostas de estações base e o inferno sabe o que mais. Não sou especial, mas é interessante assistir.

Como bônus, você pode inserir comandos AT de baixo nível para controlar o transceptor, como nos velhos tempos dos modems dial-up, e esses comandos são 600 páginas na documentação do SimCom . Bem do que um campo de pesquisa para verdadeiros hackers de chapéu branco.

ESPboy App Store - Catálogo de aplicativos online


Estudando a documentação do ESP8266 e lembrando-me do WiFi a bordo, fiquei especialmente impressionado com a capacidade de atualizar seu firmware via http / https , ou seja, pela rede. Considerando que programar microcontroladores é uma tarefa problemática, e atualizar firmware é quase sempre hemorróidas, eu realmente queria mudar isso.

Como é a atualização do firmware do microcontrolador da maneira usual?

  1. Se o USB-TTL estiver incorporado, considere-se com sorte. Caso contrário, é necessário procurar um conversor USB-TTL separado e descobrir como conectar
  2. Conecte o dispositivo com um fio ao computador e configure o driver
  3. Instale o Arduino IDE
  4. Instale a extensão ESP8266 no IDE do Arduino
  5. Baixar código fonte
  6. Para entender quais bibliotecas são usadas lá e quais versões (o que nunca é óbvio)
  7. Pesquise e baixe todas as bibliotecas das versões necessárias e instale-as (e isso, em princípio, nem sempre é possível)
  8. Lide com as opções de compilação, defina-as (o que também não é óbvio)
  9. Se você finalmente conseguiu chegar à compilação, consiga vários erros
  10. Execute danças com pandeiros, solucionando erros de compilação (às vezes isso acontece mais de um dia, e mesmo com kalachs ralados às vezes fica nervoso)

É claro que é difícil para os iniciantes dominar essa missão e isso é um obstáculo crítico ao entrar no tópico de programação de microcontroladores, rotobotecnia e outras coisas.

E como isso pode ser mudado?

O próprio catálogo de aplicativos online reduz a tarefa de atualizar o firmware para as seguintes etapas simples:

  1. Selecione uma rede WiFi na lista
  2. Selecione um aplicativo da lista
  3. Espera meio minuto

Bem, não é beleza e felicidade!

Aqui está o código fonte da parte do cliente para conectar e desfrutar .



Porto da Biblioteca Arduboy2


Cerca de um ano atrás, depois de projetar o ESPboy e testá-lo com força e força, ele se deparou com um projeto Arduboy comercialmente bem-sucedido .

Sob esse maravilhoso gadget, como se viu, não foram escritos alguns jogos legais de código aberto, e uma comunidade amigável está se desenvolvendo até hoje.

O desenvolvimento de jogos para o Arduboy é baseado na biblioteca lib do Arduboy2 .

Depois de portar esta biblioteca para o ESPboy, tornou-se possível recompilar dezenas de ótimos jogos com o Arduboy com o mínimo de ajustes de código.

Fontes de biblioteca, jogos portados e instruções sobre como portar qualquer coisa, desde Arduboy até ESPboy, novamente no github.



Novos jogos no Little Game Engine


Paralelamente ao projeto ESPboy, o projeto de fantasia de console do Little Game Engine está sendo intensamente desenvolvido .

O trabalho dos jogos feitos no Little Game Engine é suportado pelo ESPboy e Igor, o autor do mecanismo, não deixa de nos agradar com os novos lançamentos .

O desenvolvimento desses jogos é simples e direto, e também é acessível para quem deseja através do ambiente de desenvolvimento (IDE), que roda em qualquer navegador e possui um compilador e emulador embutidos .

As fontes do jogo são abertas, visíveis no IDE ao escolher um jogo e estão disponíveis para edição e experimentação. Para jogar, você precisa selecionar "compilar" acima do código do jogo e clicar no ícone "reproduzir" no lado esquerdo da janela do emulador. A descrição "C" dessa linguagem LGE também é muito detalhada.

O código fonte do próprio mecanismo também está disponível para revisão.



Assim, o trabalho no projeto continua.

Ainda há muitas coisas interessantes. E a adição de novos elementos do ecossistema do ESPboy e a integração mais completa dos componentes existentes para simplificar o trabalho com o dispositivo, tanto para usuários quanto para desenvolvedores.



Obrigado a todos que contribuem para o projeto: Dmitry (Praga) , Alexander (Shiru) , Mikhail G.,
Igor (Corax) , Alex (AlRado) , Mikhail (Torabora), Andrey S. , George P., Roman (orsweb) ) , Scott (MLXXXP) , Haroldo (Haroldo-OK) , John E , Marcus de Verdier , Loopingstar , AccidentalRebel e muitos outros que jogam, lêem, testam, codificam, transmitem, aconselham e gostam.

Todo o sucesso bom e criativo!

Atenciosamente,
RomanS

All Articles