DevBoy - como eu criei um projeto de dispositivo de código aberto e lancei um projeto no Kickstarter

Olá amigos!

Meu nome é Nikolai, sou leitor da Habr há muito tempo, mas de alguma forma não funcionou com a redação de artigos. Está na hora de corrigir esta situação, especialmente porque há apenas uma razão: eu acabei de lançar uma empresa no Kickstarter para implementar um dispositivo de código aberto.



Quem se importa - peço um gato.

Aconteceu que desde a infância eu tive acesso às tecnologias avançadas da minha época ( Atari 65XE, ZX-Spectrum, EC1841 etc. ), que predeterminavam não apenas a escolha de uma profissão, mas também instalavam um excelente ( na minha opinião ) excelente programação de hobby e desenvolvendo algo.

No futuro, o destino me apresentou outra surpresa - a possibilidade de emigração para os Estados Unidos três anos atrás. Ao mesmo tempo, tive sorte duas vezes - quase imediatamente encontrei um emprego exatamente na área que queria: C ++ e microcontroladores.

A partir deste momento, meu hobby recebeu um novo “ empurrão ”. Em primeiro lugar, conheci os excelentes microcontroladores STM32 da ST Microelectronics ( antes disso, brinquei com o Atmel AVR ). Em segundo lugar, desde o primeiro salário, comprei uma impressora 3D. Em essência, sou perfeccionista - por um lado, é bom - você faz as coisas com honestidade e, por outro ... às vezes não é possível levar o projeto ao fim apenas porque não sai " perfeito ". A impressão de caixas e a possibilidade de solicitar placas de circuito impresso trouxeram de fato as possibilidades de criação de projetos para um novo nível.

E uma vez, examinando os vários módulos solicitados para construir um osciloscópio simples e tentar colocá-los em uma tábua de pão, lembrei-me de um brinquedo que havia comprado há muito tempo quando fui para a faculdade: GameBoy . Tendo estimado rapidamente o layout possível, decidi: farei isso! E imediatamente surgiu uma idéia na minha cabeça: " Mas não são apenas botões! Às vezes, são usados ​​joysticks, às vezes são usadas torções ... por que não fazer módulos removíveis? ". E o trabalho começou a ferver: soldar o protótipo, programar, desenvolver e imprimir o estojo, programar novamente ... como resultado, mantendo um protótipo em funcionamento, chegou-se à conclusão de que a idéia não era ruim. Mais uma vez, tudo girou de uma nova maneira, apenas o estágio de pedido das placas de circuito impresso foi adicionado, e não apenas para a placa principal, mas também para todos os módulos, porque Não foi possível encontrar o adequado. Além disso, como os chineses fabricam placas de 10 peças, foi imediatamente decidido fazer uma pequena série. A propósito, depois de fazer esta série, percebi que a soldagem manualmente ( significando pequenas séries de mais de 10 peças ) não é uma opção.

Como resultado, descobriu-se:



Resumo dos Recursos:

  • Baseado no microcontrolador STM32F415RG, o núcleo Cortex-M4 operando a uma frequência de 168 MHz
  • ROM de 1024 KB e RAM de 192 KB
  • Tela de 2,8 "com resolução de 320x240 pixels e cores de 16 bits
  • Tela sensível ao toque resistiva
  • Dois slots para módulos de entrada, 4 linhas de E / S ( 2 deles podem digitalizar o sinal usando o ADC ) em cada
  • Slot de expansão com linhas de E / S de quase todos os pinos do microcontrolador
  • Slot para cartão SD
  • E, claro, de código aberto

O dispositivo em si por todos os lados:



E aqui está a pinagem do conector de expansão:



Por dentro, tudo se parece com isso:



Aqui está um módulo com um microcontrolador:



E então sua pinagem:



Módulo de tela:



E um carregador de bateria de lítio:



E, finalmente, a última parte - o corpo:





Coisas laranja são empurradores. A remoção do módulo ainda é uma tarefa. Como resultado, esses empurradores foram inventados. Quando o módulo é inserido, ele os pressiona e os botões na parte traseira ficam alinhados com o estojo. Se o módulo precisar ser removido - pressionamos o empurrador e o aperta. Então você pode facilmente e simplesmente retirá-lo.

O código fonte merece um artigo separado. Talvez eu escreva mais tarde. De software de terceiros, o System Workbench para STM32 , STM32CubeMX e FreeRTOS são usados. Todos esses são projetos gratuitos. Wrapper C ++ FreeRTOS, tarefas de manutenção de tela, tela sensível ao toque, som e entrada são escritos para isso.

imagem

A saída gráfica é especialmente interessante - o protótipo com o microcontrolador STM32F103 pode exibir um jogo do tipo Mario com uma frequência de 15 quadros por segundo com uma resolução de 320x240 e com apenas 20 KB de RAM a bordo ( framebuffer é excluído ), enquanto a limitação era mais provável devido à frequência do SPI . No STM32F415 com uma frequência SPI duas vezes maior, sai 30 quadros por segundo.

Bem, em conclusão, vou deixar os links:


Ficaria grato se você compartilhar o link do projeto com seus amigos - agora o principal é ganhar uma massa crítica de pessoas para iniciar uma reação em cadeia - é necessário que o maior número possível de pessoas interessadas aprenda sobre o projeto.

Se você me perguntar sobre planos de longo prazo, o que eu quero? No final, a resposta será simples: crie uma empresa com a ideologia do software aberto e do hardware aberto, faça o que você mais gosta e ajude outras pessoas como Adafruit e Sparkfun fazem isso.

Se de repente o texto parecer caótico - não julgue rigorosamente, já são quase uma da manhã ... faça perguntas nos comentários - tentarei responder.

Source: https://habr.com/ru/post/pt423499/


All Articles