Black Swift: навіщо ми його зробили

Як шановні хабровчане знають, ось уже майже рік ми розробляємо маленький комп'ютер (приблизно з SD-картку), що працює під OpenWRT, з вбудованим Wi-Fi, USB, Ethernet, азартними іграми і доступними жінками. Дмитро dzhe вже кілька разів писав про нього — і, загалом, з кожним разом збирав в коментарях один і той же питання: а навіщо ви взагалі робите? Ну адже є ж Raspberry Pi, коштує він стільки ж, є VoCore, Carambola, Edison, зрештою, — навіщо потрібен ще один «нанокомпьютер»?

Мабуть, треба нарешті на це питання відповісти — заодно зазначивши цією відповіддю поява у нас свого корпоративного блогу (спасибі, Хабр!), а також запуск окремого веб-сайту, присвяченого тільки цього проекту.



Якщо коротко: хоча спочатку проект починався як «а чи не зробити нам нанокомпьютер як у китайців, але для себе і подешевше?», мотивація досить швидко змістилася — ми зрозуміли, що можемо зробити його якщо не дешевше, то краще і зручніше, і не тільки для себе.

Взагалі якщо подивитися на існуючі мікро — і нанокомпьютеры («нано» я умовно визначаю як всі, порівнянне зі сірниковим коробкою, а якщо воно порівнянно з пачкою сигарет — то вже «мікро», напевно, треба ж якось градацію розмірів вводити, щоб BlackSwift перестали порівнювати з RPi?), вони досить чітко діляться на дві категорії:

  • Для любителів, найяскравіший приклад — RPi у своєму класичному виконанні, так і Arduino, хоча це вже не наша вагова категорія. Дуже прості в підключенні, нічого для першого включення паяти не треба.
  • Для професіоналів — VoCore, Carambola, Intel Edison і маса інших. Дуже маленькі, легко вбудовуються в вашу власну розробку, але з порівняно високим порогом входу: з цих трьох без паяльника запустити можна хіба що VoCore, та й то цей запуск обмежиться підключенням живлення, для USB вже потрібна дочірня плата.


Так от, ми зрозуміли, що ми можемо і хочемо поєднати дві речі: зробити нанокомпьютер з низьким порогом входу і одночасно не тільки можна, але і зручний для професіоналів (зрештою, ми його хочемо самі в своїх розробках використовувати).

Що треба для любителів? Простота базового підключення (в ідеалі, харчування і якась периферія повинні підключатися взагалі без паяльника — щоб можна було відразу почати експериментувати), простота настройки, простота написання і налагодження свого софта.

Що треба для професіоналів? Мінімальні габарити, багато I/O, багато різних інтерфейсів, зручність запаювання в свою конструкцію. Простота написання і налагодження софта теж не завадить: все-таки людина може бути професіоналом від електроніки, а з OpenWRT досвід мати лише в рамках налаштування домашнього роутера.



Власне, поєднання цих вимог і народився Black Swift (я відразу обмовлюся, що це work-in-progress — з софтом поки граємося, а вже готові прототипи плати не мають, наприклад, стабілізатора 2,75 — він з'явиться у фінальній версії):

  • Два стандартних micro-USB на платі, через один подається живлення, в іншій через перехідник USB OTG можна підключити будь-якого USB-периферію, наприклад, веб-камеру. Тобто, для старту досить звичайної зарядки від смартфона.
  • Wi-Fi на платі, включаючи друковану антену.
  • Стабілізатор живлення на платі. Плата живе від 3,4 до 6 В, тобто може працювати від однієї літієвої банки (хоча якщо потрібен USB — тут, звичайно, 5 В ±5%).
  • вбудованого стабілізатора великий запас потужності: він видає до 1 А, сама плата споживає не більше 300 мА. Відповідно, можна залишок використовувати в своїй конструкції: подаєте на BSB 5 В, знімаєте з нього 3,3 до 700 мА.
  • Додатковий стабілізатор на 2,75 До 300 мА. Фокус в тому, що рекомендована максимальна напруга для GPIO в AR9331 — 2,75 (хоча з 3,3 вони теж працюють), тому BSB забезпечує простий і зручний спосіб слідувати цій рекомендації.
  • I/O у вигляді звичайних майданчиків під гребінки, хоч і з дрібним кроком (PLLD 1,27 мм). Для любителів це можливість запаяться проводами безпосередньо в плату, якщо захочеться підчепити якусь нескладну периферію, для профі — зручна установка в свої проекти (набагато зручніше, ніж при контактах по краю плати, як у Карамболи, не кажучи вже про те, що можна зробити модуль знімним або поставити його вертикально на кутовий гребінці).
  • Живлення і USB продубльовані на гребінках, звичайно.
  • Встановлена OpenWRT, відразу налаштована на роботу точкою доступу. Тобто після першого включення — просто коннектимся до плати по Wi-Fi.
  • Віртуальна машина для ПК, у якої вже все налаштоване для написання і налагодження софта під OpenWRT — ми в курсі, що далеко не всі хочуть ручками встановлювати собі OpenWRT toolchain.
  • Набір бібліотек для роботи з основною периферією — починаючи з GPIO.
  • Юзерспейс-утиліти для роботи з основною периферією. Не всі люблять програмування на C, а можливість посмикати ніжкою з юзерспейса означає, що якийсь свій фронтенд можна написати на bash-скрипти, PHP (заодно з веб-мордою) або на чому ще конкретній людині буде зручніше писати, вибір тут стає немаленьким.
  • Все це з відкритими вихідними кодами і прикладами використання.



(підключення периферії — та хоч просто проводами)

При цьому на платі досить обчислювальної потужності та пам'яті практично для всього, що душа може побажати від комп'ютера такого розміру. Для прикладу — на тому ж чіпі Atheros AR9331 роблять дешеві роутери, найвідоміший приклад — TP-Link TL-MR3020 і похідні від нього. Там 4 МБ (прописом: чотири мегабайта) флеша, при цьому в нього влазить OpenWRT з веб-інтерфейсом, і ще десь полмегабайта місця залишається. На Black Swift коштують 16 МБ флеша і 64 МБ оперативки — тобто, щоб вичерпати його ресурси, з OpenWRT треба робити щось дуже серйозне (та й у цьому випадку можна підключити до USB звичайну флешку — OpenWRT вміє їх використовувати для розширення кореневої файлової системи). З периферії — 26 GPIO, USB-хост, UART, I2S, I2C, SPI, Ethernet…

Більш того, якщо у MR3020 варто DDR-пам'ять, в системах на Ralink RT5350 (той же VoCore) — і зовсім SDR, то у нас — чесний DDR2, з відповідним збільшенням продуктивності.


(Я мигаю светодиодиком!)

Як ми бачимо застосування?

По-перше, сверхмодная зараз тема «розумного будинку» і чайників з Wi-Fi. Якщо ви хочете з цим напрямком погратися на Black Swift можна легко зробити автоматизацію і висновок в інтернет практично будь-якого пристрою, від розетки (зробити Wi-Fi-розетку на Black Swift — це як помигати светодиодиком на Ардуине, це повинен пройти кожен!) до хоч пральної машинки. Розміри дозволяють вбудувати Black Swift практично на що завгодно, велика кількість GPIO — підключити кнопки і індикатори або паралельно з рідними потрохами пристрою, або просто замість них. У найпростішому випадку, коли потрібні кілька GPIO (чайник!), обв'язку можна зробити хоч навісним монтажем, якщо треба трохи складніше або трохи красивішим — намалювати і зробити хоч ЛУТом, хоч китайцями «материнку» під Black Swift.

Можна зробити старий, але улюблений принтер бездротовим, можна колонки перетворити в Wi-Fi-радіо, можна — в mp3-плеєр, який буде грати музику з файлопомойки на домашньому NAS'е, а управлятися з будь-якого смартфона (до речі, в колонках дуже зручно заюзать один GPIO під включення-відключення живлення їх підсилювача в залежності від того, чи грає музика). У всіх випадках це буде нескладно, акуратно і заховано всередині самого пристрою.

Raspberry Pi в цій якості, як ви розумієте, як-то не дуже — вона банально не влізе всередину більшості пристроїв. Так що припиніть нас з нею порівнювати.

При бажанні можна і весь контролер «розумного будинку» зробити на Black Swift, повісивши на нього потрібні вам приймачі. Вийде просто, недорого і дуже компактно.

По-друге, хоча це вузька ніша, радіокеровані моделі. Габарити, для подорожуючого — вага (плата важить 3 грами), наявність USB веб-камеру, якщо камера не потрібна — можливість живлення від однієї банки Li… загалом, бажають розважитися тут є де розвернутися.

По-третє, звичайно, взагалі свої власні розробки. Спроектувати обчислювальний модуль такої продуктивності можуть небагато, провести — тим більше (можна, звичайно, і AR9331 вручну паяти, але це вже дуже для естетів), а от зробити під готовий модуль материнську плату — вже завдання більш ніж посильна, тим більше — під гребінки, а не напайку прямо на поверхню «материнки». Модуль можна навіть не паяти, а ставити на роз'ємі — у нього запаяти гребінку PLLD (дворядна 1,27 мм), а в плату — гніздо PBD.

Для професіоналів це буде просто зручна в застосуванні готова плата (яку, до того ж, можна офіційно купити в Росії, з усіма рахунками-фактурами і без ЗЕД), для початківців — не тільки простий у застосуванні вбудовуваний комп'ютер, але і своєрідна драбинка до більш складним розробок. Справа в тому, що з Black Swift можна розвивати свою роботу поступово: почати зі стандартною USB-периферії, потім — підключатися до GPIO через перехідник або просто подпаиваясь проводами, потім зробити свою плату з допомогою ЛУТ, потім з допомогою китайців або «Резонита»… перевага BSB в тому, що центральна частина на всіх цих етапах буде залишатися однією і тією ж.



До речі, якщо говорити про материнках — буде перехідник на гребінки 2,54 мм, і думаємо ще про devboard, на якій буде відразу максимум всілякої периферії (непрактично для практичного застосування, але зручно для налагодження), невеликій платі з кількома силовими ключами і логічними входами, і платі з AVR, на якому можна зробити АЦП на кілька каналів і ШІМ.

До речі, про AVR. Так як на Black Swift є UART — то можна в якості периферії до нього використовувати Arduino (за погодженням рівнів, звичайно: Black Swift живлення 3,3 В, а у ардуины — 5). На Arduino можна зробити вищезазначені АЦП і ШІМ, можна що-небудь жорстко риалтаймовое, а на Black Swift — основну логіку, Wi-Fi, веб-інтерфейс.

До речі, про Web-інтерфейс. Можливість без проблем підняти на платі HTTP-сервер з PHP (і навіть HTTPS, якщо хочете) — це не тільки інтерфейс в браузері, але і просте смартфонное додаток. На андроїді берете компонент WebView, який буде показувати ваш інтерфейс, додаєте до нього щіпку Network Service Discovery, на платі запускаєте веб-сервер і демон avahi (він штатно є для OpenWRT). Avahi мовить у мережу «позивні» плати, NSD по них знаходить IP пристрою, WebView показує інтерфейс з нього — отримали найпростіше смартфонное додаток для вашого проекту, яке виглядає як справжнє і навіть радує. Смикати ж з PHP ніжки Black Swift або, навпаки, читати зовнішню АЦПшку і показувати температуру води в чайнику — задача, яка у нас буде вирішуватися легко.

Загалом, напевно, треба зупиняти себе з цим «до речі», а то можна продовжувати ще довго. Крихітна плата з Wi-Fi і простим підключенням і використанням — це сильна річ.

P. S.
1) Російськомовний сайт проекту, в процесі наповнення.
2) На Kickstarter — 20 січня.
3) Пробна партія з фінальним дизайном плати — до 10 січня. Зараз семпли є, але їх небагато і вони не фінальні по функціоналу і розведення роз'ємів.
4) Номінальна вартість планується $25, для Росії розглядаємо номінальну вартість $20.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.