DevBoy — як я створив проект пристрої з відкритим вихідним кодом і запустив проект на Kickstarter

Привіт друзі!

Мене звати Микола, читачем Блогів є давно, а от з написанням статей якось не склалося. Пора виправляти цю ситуацію, тим більше, що як раз є привід — тільки що я запустив компанію на Kickstarter для реалізації пристрою з відкритим вихідним кодом.

Кому цікаво — прошу під кат.

Так вже склалося, що з дитинства я мав доступ до прогресивних технологій свого часу(Atari 65XE, ZX-Spectrum, EC1841 і т. д.) що зумовило не тільки вибір професії, але і прищепило відмінне(як я вважаю) хобі — програмування і розробка чого-небудь.
У подальшому доля подарувала мені ще один сюрприз — можливість еміграції в США три роки тому. При цьому мені пощастило двічі — практично відразу я знайшов роботу саме в тій області, якою хотів: C++ та мікроконтролери.
З цього моменту моє захоплення отримало новий “поштовх“. По-перше я познайомився з чудовими мікроконтролерами STM32 від компанії ST Microelectronics(до цього я бавився з Atmel AVR). По-друге, з першої зарплати купив 3D принтер. По своїй суті я перфекціоніст — з одного боку це добре — робиш речі на совість, а з іншого… деколи не виходить довести проект до кінця тільки тому, що не виходить він “перфектно“. Друк корпусів і можливість замовлення друкованих плат фактично вивели можливості по створенню проектів на новий рівень.

І ось одного разу, перебираючи різні замовлені модулі для побудови найпростішого осцилографа і намагаючись розмістити їх на макетної платі я згадав про іграшці яку давним давно колись купив коли ходив ще в коледж: про GameBoy. Швидко оцінивши можливу компонування вирішив: буду робити! Причому відразу в голові промайнула думка: “А адже не тільки кнопочки використовуються! Іноді використовуються джойстики, іноді використовуються крутилки… а чому б не зробити знімні модулі?“. І робота закипіла: пайка прототипу, програмування, розробка і друк корпусу, знову програмування… в результаті тримаючи в руках робочий прототип прийшло усвідомлення того, що ідея не погана. Знову все закрутилося по-новій, тільки додався етап замовлення друкованих плат, причому не тільки для mainboard але і всіх модулів, т. к. відповідних знайти не вдалося. Причому, оскільки китайці виготовляють плати по 10 штук, відразу було вирішено робити дрібну серію. До речі, після виготовлення цієї серії я зрозумів, що паяти далі в ручну(мається на увазі дрібні серії більше 10 штук) — це не варіант.

Читайте також  Наскільки R швидкий для продуктива?

У підсумку вийшло це:

Підсумкові характеристики:

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

Сам пристрій зі всіх сторін:

А ось так виглядає терморегулятори роз’єми розширення:

Всередині все виглядає так:

Ось так виглядає модуль з мікроконтролером:

А так його призначення:

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

І зарядника для літієвої батареї:

І нарешті остання частина — корпус:


Помаранчеві штучки — це штовхачі. Отримати модуль та ще задачка. В результаті були придумані ці штовхачі. Коли модуль вставлений він придавлює їх і кнопки ззаду виявляються врівень з корпусом. Якщо ж модуль треба витягти — нажимаємо на штовхач і він видавлює модуль вгору. Далі можна легко і просто його витягнути.

Вихідний код заслуговує окремої статті. Можливо напишу пізніше. З стороннього ПЗ використовується System Workbench for STM32, STM32CubeMX і FreeRTOS. Це всі безкоштовні проекти. До цього всього написані C++ FreeRTOS wrapper, завдання обслуговування екрану, тачскрін, звуку та тексту.

Особливо цікавий висновок графіки — прототип з мікроконтролером STM32F103 міг виводити на екран гру типу Маріо з частотою 15 кадрів в секунду пр 320×240 і маючи всього 20 Кб ОПЕРАТИВНОЇ пам’яті на борту(фреймбуфер виключається), при цьому обмеження швидше за все було з-за частоти роботи SPI. На STM32F415 з частотою SPI вдвічі більшою виходить 30 кадрів в секунду.

Читайте також  WPA3 міг би бути і безпечніше: думка експертів

Ну і на закінчення залишу посилання:

  • Вихідний код можна знайти у сховищі на GitHub: github.com/nickshl/devboy
  • 3D файли разом і першоджерелом для OpenSCAD можна знайти на Thingiverse: https://www.thingiverse.com/thing:3068887
  • І, власне, сторінка проекту на Kickstarter: www.kickstarter.com/projects/devboy/devboy-modular-system-your-ideas-become-a-reality

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

Якщо запитати мене про довгострокові плани, чого ж я хочу в підсумку відповідь буде простою: створити компанію з ідеологією open software і open hardware, займатися своєю улюбленою справою і допомагати іншим людям.

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *