Хабрахабр

[recovery mode] DevBoy — как я создал проект устройства с открытым исходным кодом и запустил проект на Kickstarter

Привет друзья!

Пора исправлять эту ситуацию, тем более что как раз имеется повод — только что я запустил компанию на Kickstarter для реализации устройства с открытым исходным кодом. Меня зовут Николай, читателем Хабра являюсь давно, а вот с написанием статей как-то не сложилось.

Кому интересно — прошу под кат.
Так уж сложилось, что с детства я имел доступ к прогрессивным технологиям своего времени(Atari 65XE, ZX-Spectrum, EC1841 и т.д.) что предопределило не только выбор профессии, но и привило отличное(как я считаю) хобби — программирование и разработка чего-нибудь.

При этом мне повезло дважды — практически сразу я нашел работу именно в той области которой хотел: C++ и микроконтроллеры. В дальнейшем судьба преподнесла мне еще один сюрприз — возможность эмиграции в США три года назад.

Во-первых я познакомился с замечательными микроконтроллерами STM32 от компании ST Microelectronics(до этого я баловался с Atmel AVR). С этого момента мое увлечение получило новый "толчок". По своей сути я перфекционист — с одной стороны это хорошо — делаешь вещи на совесть, а с другой… порой не получается довести проект до конца только лишь потому, что не выходит он "перфектным". Во-вторых с первой зарплаты я купил 3D принтер. Печать корпусов и возможность заказа печатных плат фактически вывели возможности по созданию проектов на новый уровень.

Быстро прикинув возможную компоновку решил: буду делать! Причем сразу в голове мелькнула идея: "А ведь не только кнопочки используются-то! И вот однажды, перебирая разные заказанные модули для построения простейшего осциллографа и пытаясь разместить их на макетной плате я вспомнил об игрушке которую давным давно когда-то купил когда ходил еще в колледж: о GameBoy. И работа закипела: пайка прототипа, программирование, разработка и печать корпуса, опять программирование… в результате держа в руках рабочий прототип пришло осознание того, что идея-то не плоха. Иногда используются джойстики, иногда используются крутилки… а почему бы не сделать съемные модули?". подходящих найти не удалось. Опять все закрутилось по-новой, только добавился этап заказа печатных плат, причем не только для mainboard но и всех модулей, т.к. Кстати, после изготовления этой серии я понял, что паять дальше в ручную(имеется ввиду мелкие серии больше 10 штук) — это не вариант. Причем, поскольку китайцы изготавливают платы по 10 штук, сразу было решено делать мелкую серию.

В итоге получилось это:

Итоговые характеристики:

  • Базируется на микроконтроллере STM32F415RG, ядро Cortex-M4 работающее на частоте 168 MHz
  • 1024 KB ПЗУ и 192 KB ОЗУ
  • 2.8" экран с разрешением 320x240 точек и 16-тибитным цветом
  • Резистивный тачскрин
  • Два слота для модулей ввода, 4 I/O(2 из них могут оцифровывать сигнал с помощью АЦП) линии в каждом
  • Слот расширения с I/O линиями практически от всех выводов микроконтроллера
  • Слот для карт SD
  • И конечно же Open-source

Само устройство со всех сторон:

А вот так вот выглядит распиновка разъема расширения:

Внутри все выглядит так:

Вот так выглядит модуль с микроконтроллером:

А так его распиновка:

Модуль экрана:

И зарядника для литиевой батареи:

И наконец последняя част — корпус:

Извлечь модуль та еще задачка. Оранжевые штучки — это толкатели. Когда модуль вставлен он их придавливает и кнопки сзади оказываются вровень с корпусом. В итоге были придуманы эти толкатели. Далее можно легко и просто его вытянуть. Если же модуль надо извлечь — наживаем на толкатель и он выдавливает модуль вверх.

Возможно напишу её позже. Исходный код заслуживает отдельной статьи. Это все бесплатные проекты. Из стороннего ПО используется System Workbench for STM32, STM32CubeMX и FreeRTOS. К этому всему написаны C++ FreeRTOS wrapper, задачи обслуживания экрана, тачскрина, звука и ввода.

image

На STM32F415 с частотой SPI вдвое большей выходит 30 кадров в секунду. Особенно интересен вывод графики — прототип с микроконтроллером STM32F103 мог выводить на экран игру типа Марио с частотой 15 кадров в секунду пр разрешении 320x240 и имея всего 20 Кб ОЗУ на борту(фреймбуфер исключается), при этом ограничение скорее всего было из-за частоты работы SPI.

Ну и в заключение оставлю ссылки:

Буду признателен если вы поделитесь ссылкой на проект со своими друзьями — сейчас главное набрать критическую массу людей, что бы запустить цепную реакцию — необходимо что бы о проекте узнало как можно больше заинтересованных людей.

Если спросить меня о долгосрочных планах, чего же я хочу в итоге ответ будет простым: создать компанию с идеологией open software и open hardware, заниматься своим любимым делом и помогать другим людям как делают это Adafruit и Sparkfun.

Если вдруг текст покажется сумбурным — не судите строго, сейчас уже почти час ночи… задавайте вопросы в комментариях — постараюсь ответить.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть