Ara, да? Или модульный смартфон будущего

в 14:42, , рубрики: google ara, Блог компании Papa Buba Diop, Разработка под android, Электроника для начинающих, метки:

В конце января в Сингапуре прошла конференция Google, посвященная Project Ara.

Любителям конструкторов будет интересно узнать о свежем состоянии проекта, а остальным читателям напомню, что Project Google Ara (название не я придумал) — это модульный смартфон будущего, в котором пользователь сам выбирает компоненты не только по стоимости, но и по функционалу.

image
Работа смартфона будущего с модулем измерения радиации.

Темы конференции: текущее состояние Project Ara, планы по выходу на рынок модульного смартфона Ara, изменение аппаратной платформы Spiral, программные средства управления и проектирования, презентация модулей разработчиков, программа поддержки разработчиков, каналы продаж смартфона и модулей к нему.

Конференцию мы посетили, как официально признанные разработчики собственного устройства DO-RA.Module.

Далее, по-порядку.

В середине декабря мы получили от Google девелоперский КIT (системная плата смартфона Ara).

image
Комплект разработки модульного смартфона Spiral -1. Слева направо — процессорный модуль, хаб, I2C- шлюз.

Самое сложное было правильно соединить провода к хабу. Как нормальные программисты, мануалов читать не стали. С ходу ничего не заработало.

Пришлось читать и перекручивать 12 проводов из 16. Крутить BNC-разьемы была самой сложной задачей в освоении Spiral. Все остальное гораздо проще. Все остальное — это запустить с тестовым сенсором (сенсор частоты сердцебиения прилагался) всю систему. Затем мы заменили тестовый сенсор на сенсор ДО-РА и переписали софт под свой протокол I2C.

Кусок кода, с тремя комментариями

package com.google.araploxio;

import android.content.Context;
import android.hardware.I2cManager;
import android.hardware.I2cTransaction;
import android.os.Handler;
import android.util.Log;

import java.io.IOException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Sensor {
    // The 7-bit slave address
    private static final int address = 0x11;
    private static final String bus = "/dev/i2c-4";

    private Context context;
    private I2cManager i2c;
    private Handler handler;
    private ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

//////////////////////////////////////////////////////////////////////////////////////////////////
//
// Описание транзакций чтения данных
//


    private static final I2cTransaction[] totalCountRead = {
        I2cTransaction.newWrite(0x02),
        I2cTransaction.newRead(2)
    };
    private static final I2cTransaction[] radiatoinRead = {
        I2cTransaction.newWrite(0x04),
        I2cTransaction.newRead(2)
    };

//////////////////////////////////////////////////////////////////////////////////////////////////
//
// Получаем системный сервис
//

    public Sensor(Context context, Handler handler) {
        this.context = context;
        this.i2c = (I2cManager)context.getSystemService("i2c");
        this.handler = handler;
    }

    private I2cTransaction[] execute(I2cTransaction[] txns) {
        I2cTransaction[] results;
        try {
            results = null;
            for (I2cTransaction txn: txns)
                results = i2c.performTransactions(bus, address, txn);
        } catch (IOException e) {
            throw new RuntimeException("I2C error: " + e);
        }
        return results;
    }

    public void start() {
        executor.scheduleAtFixedRate(collector, 500, 500, TimeUnit.MILLISECONDS);
    }

    public void stop() {
        executor.shutdown();
        try {
            executor.awaitTermination(500, TimeUnit.MILLISECONDS);
        } catch (InterruptedException e) {
            assert false;
        }
    }
        

//////////////////////////////////////////////////////////////////////////////////////////////////
//
// Разбираем результат, пришедший от датчика
//


    private final Runnable collector = new Runnable() {
        public void run() {
            I2cTransaction[] results;
            byte[] data;

            results = execute(totalCountRead);
            data = results[0].data;
            int count = (((int)data[1] & 0xFF) <<  8) |
                    (((int)data[0] & 0xFF) <<  0);

            results = execute(radiatoinRead);
            data = results[0].data;
            int radiation = (((int)data[1] & 0xFF) <<  8) |
                    (((int)data[0] & 0xFF) <<  0);

            Log.d("DORA", "count =" + count + " radiation = " + radiation);

            handler.obtainMessage(0, count, radiation).sendToTarget();
        }
    };
}

И со всей этой компактной системой мы улетели в Сингапур.

Итак, в Сингапур мы привезли три рабочих модуля DO-RA.Module-1, 2, 3, отличающихся друг от друга лишь габаритами: 39х17х7 мм, 27х17х7 мм, и самый компактный из них 18х18х3,5 мм.

image
На фотографии для масштаба изделий присутствовал квотер (25 центов), но его кто-то стащил.
Дорисуйте квотер мысленно в верхнем правом углу.

Также мы имеем программное обеспечение DO-RA.Soft под платформу Android для управления собственным модулем анализа радиационной обстановки и измерения избыточного ионизирующего излучения вокруг нас. Эти модули могут монтироваться в разные электронные устройства для контроля и сигнализации об уровне радиации в окружающей среде.

Конференцию открыл руководитель Project Ara, Paul Eremenko, прилетевший сюда из США.

image
Glavkosmos, забаненный на Хабре до 2016 года и Paul Eremenko.

За период конференции было сделано около двух десятков докладов от руководителей и разработчиков Project Ara, производителей электроники и программного обеспечения, в частности: Toshiba, Marvell, Foxconn Interconnect, Quanta Computer, Synopsys, IDT на заявленные темы. Предоставленная информация была полезна, теперь мы детально понимаем суть проекта Ara и, надеюсь, идём в ногу с ключевыми игроками и разработчиками модулей Ara, без отставания по дизайну устройства и программному обеспечению.

Как нам кажется, модульный смартфон — это пока более экзотика и отчасти исследовательский проект для понимания предпочтений пользователей, скрытая суть которого, возможно, определение наиболее интересных модульных разработок для будущих смартфонов. Не исключено, что в ближайшем будущем самые выдающиеся электронные модули для нашей жизни станут стандартом для индустрии смартфоностроения и будут ставиться, как штатные компоненты во все новые смартфоны. Так в своё время фото камера для телефона сначала была экзотикой, а теперь фото/видео камеры планируют ставить по нескольку штук на один смартфон.

С точки зрения открытости платформы для разработчиков, Google совершил чудо, открыв бесплатно свою платформу и оснастив всех желающих разработчиков девелоперскими инструментами и программами. Например, пару лет назад для участия в аналогичной разработке тот же Qualcomm мог попросить у разработчика за ординарную лицензию девелопера для своих чипсетов до $3 млн. Почувствуйте разницу?!

На конференции в Сингапуре было заявлено, что с 25 января 2015 г. аккредитованным разработчикам проекта Ara будет предоставлена новая платформа Spiral-2 с MDK 0.2, обладающая большим количеством интерфейсов и технических возможностей, а во втором квартале 2015 г. будет выпущена Spiral-3 c MDK 0.5. К концу года Google в рамках Project Ara планирует выпустить пилотный проект работоспособного модульного смартфона с 20-30 модулями, прошедшими технические испытания и сертификацию. Предполагается, что тестовый объем модульных смартфонов, около 50 тыс. штук, будет выпушен к концу текущего года. А зона тестирования выбрана Пуэрто-Рико, где максимальный процент смартфонов у населения, широкое проникновение Интернет и действуют американские стандарты для сотовых операторов связи.

Относительно приза Google в $100K за разработку самого выдающегося модуля для смартфона Ara было отмечено, что в связи с техническими задержками поставок Spiral-1 и Spiral-2, подача заявок на участие в конкурсе продлено до 1 марта, видеосюжеты о разработках модулей надо подавать до 15 апреля, подведение итогов конкурса на лучший модуль для Ara состоится до 1 мая 2015 года.

Из реальных компонентов для смартфона Ara на конференции был презентован также модуль компании Vestigen из Словакии. Анонсированный модуль позволяет делать экспресс-анализы состава жидких сред, включая анализ крови и, в частности, контролировать показатель уровень инсулина.

Итоги конференции для ОАО «Интерсофт Евразия»:

1. Получена достоверная информация о текущем статусе Project Ara/Google непосредственно от его разработчиков и идеологов, что позволяет синхронизировать планы по разработке и коммерциализации DO-RA.Module для модульного смартфона Ara.

2. Установлены прямые контакты с руководителем Project Ara, г-ном Paul Eremenko и его командой, а также с производителями компонентов перспективных модулей к смартфону Ara, в лице представителей компаний: Toshiba, Marvell, Foxconn, Quanta Computer и др.

Спасибо за внимание.

Автор: PapaBubaDiop

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js