DevBoy: cómo creé un proyecto de dispositivo de código abierto y lancé un proyecto en Kickstarter

Hola amigos

Mi nombre es Nikolai, he sido lector de Habr durante mucho tiempo, pero de alguna manera no funcionó escribiendo artículos. Es hora de corregir esta situación, especialmente porque solo hay una razón: acabo de lanzar una empresa en Kickstarter para implementar un dispositivo de código abierto.



A quién le importa: le pido un gato.

Sucedió que desde la infancia tuve acceso a las tecnologías avanzadas de mi tiempo ( Atari 65XE, ZX-Spectrum, EC1841, etc. ), que predeterminaron no solo la elección de una profesión, sino que también inculcaron un excelente ( en mi opinión ) pasatiempo: la programación y desarrollando algo.

En el futuro, el destino me presentó otra sorpresa: la posibilidad de emigrar a los Estados Unidos hace tres años. Al mismo tiempo, tuve suerte dos veces, casi de inmediato encontré un trabajo exactamente en el área que quería: C ++ y microcontroladores.

A partir de este momento, mi pasatiempo recibió un nuevo " empujón ". En primer lugar, me reuní con los excelentes microcontroladores STM32 de ST Microelectronics ( antes de eso, incursioné en Atmel AVR ). En segundo lugar, desde el primer cheque de pago, compré una impresora 3D. En esencia, soy un perfeccionista, por un lado es bueno, haces las cosas con honestidad, y por otro ... a veces no es posible llevar el proyecto al final solo porque no sale " perfecto ". La impresión de cajas y la posibilidad de ordenar placas de circuito impreso han llevado las posibilidades de crear proyectos a un nuevo nivel.

Y una vez, clasificando los diversos módulos ordenados para construir un osciloscopio simple e intentando colocarlos en una placa de prueba, recordé un juguete que había comprado hace mucho tiempo cuando fui a la universidad: GameBoy . Habiendo estimado rápidamente el posible diseño, decidí: ¡lo haré! E inmediatamente una idea pasó por mi cabeza: "¡ Pero no solo se usan botones! A veces se usan joysticks, a veces se usan giros ... ¿por qué no hacer módulos extraíbles? ". Y el trabajo comenzó a hervir: soldar el prototipo, programar, desarrollar e imprimir el caso, volver a programar ... como resultado, sostener un prototipo funcional, se dio cuenta de que la idea no era mala. Una vez más, todo giró de una manera nueva, solo se agregó la etapa de ordenar placas de circuito impreso, y no solo para la placa base sino también para todos los módulos, porque No se pudo encontrar el adecuado. Además, dado que los chinos fabrican tableros de 10 piezas, se decidió inmediatamente hacer una pequeña serie. Por cierto, después de hacer esta serie, me di cuenta de que soldar más manualmente (es decir, series pequeñas de más de 10 piezas ) no es una opción.

Como resultado, resultó:



Resumen de características:

  • Basado en el microcontrolador STM32F415RG, el núcleo Cortex-M4 opera a una frecuencia de 168 MHz
  • 1024 KB ROM y 192 KB RAM
  • Pantalla de 2.8 "con una resolución de 320x240 píxeles y color de 16 bits
  • Pantalla táctil resistiva
  • Dos ranuras para módulos de entrada, 4 E / S ( 2 de ellas pueden digitalizar la señal usando el ADC ) líneas en cada
  • Ranura de expansión con líneas de E / S desde casi todos los pines del microcontrolador
  • Ranura para tarjeta SD
  • Y, por supuesto , de código abierto

El dispositivo en sí desde todos los lados:



Y aquí está el pinout del conector de expansión:



Por dentro, todo se ve así:



Aquí hay un módulo con un microcontrolador:



Y entonces su pinout:



Módulo de pantalla:



Y un cargador de batería de litio:



Y finalmente, la última parte: el cuerpo:





Las cosas naranjas son empujadores. Quitar el módulo sigue siendo una tarea. Como resultado, estos impulsores fueron inventados. Cuando se inserta el módulo, los empuja y los botones de la parte posterior están alineados con la carcasa. Si el módulo necesita ser retirado, presionamos el pulsador y lo aprieta. Entonces puedes sacarlo fácilmente y simplemente.

El código fuente merece un artículo separado. Quizás lo escriba más tarde. Desde software de terceros, se utiliza System Workbench para STM32 , STM32CubeMX y FreeRTOS. Todos estos son proyectos gratuitos. Para esto se incluye el envoltorio FreeRTOS de C ++, tareas de mantenimiento de pantalla, pantalla táctil, sonido y entrada.

imagen

La salida de gráficos es especialmente interesante: el prototipo con el microcontrolador STM32F103 podría mostrar un juego tipo Mario con una frecuencia de 15 fotogramas por segundo con una resolución de 320x240 y tener solo 20 KB de RAM a bordo ( se excluye framebuffer ), mientras que la limitación probablemente se debió a la frecuencia SPI . En STM32F415 con una frecuencia SPI del doble, salen 30 cuadros por segundo.

Bueno, en conclusión, dejaré los enlaces:


Le agradecería que comparta el enlace del proyecto con sus amigos, ahora lo principal es ganar una masa crítica de personas para comenzar una reacción en cadena, es necesario que la mayor cantidad de personas interesadas puedan conocer el proyecto.

Si me preguntas sobre planes a largo plazo, qué quiero al final, la respuesta será simple: crea una empresa con la ideología de software abierto y hardware abierto, haz tu actividad favorita y ayuda a otras personas cómo Adafruit y Sparkfun lo hacen.

Si de repente el texto parece caótico, no juzgues estrictamente, ya es casi la 1 de la mañana ... haz preguntas en los comentarios, intentaré responder.

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


All Articles