Pull to refresh
78
0
Алексей Лавренюк @Direvius

Технический менеджер продукта

Send message
Вот проект, который значительно отличается от часов и умного дома =)
Была такая идея, но мы зафиксировали напряжение аккумулятора путем исключения аккумулятора вообще и использования вместо него блока питания с постоянным напряжением. А разброс результатов — это элементарно фоновая активность на телефоне. Мы ее будем отлавливать с помощью анализа логов, как раз сейчас учимся это делать.

Про интегрирующую RC-цепочку думаем, возможно, поставим, но нужно поэкспериментировать. А реже отсылать результат нам, похоже, не потребуется — 500 SPS пролезает и через USB serial, и через UDP пакеты по WiFi. Если же взять ARM (в нашем случае это пока что Arduino Due, stm32 уже в пути), то там вообще нативный USB и 2 MB в секунду при 1 миллионе SPS тоже спокойно пролезает.

У нас многие ходят в таких футболках. Возможно, вам тоже стоит такую завести ;)
image

Это я к тому, что интерфейс приложений и их поведение подгоняется под целевую аудиторию. А мы тут на хабре не очень то похожи на всех остальных. Приходится терпеть или делать что-то свое (opensource, конечно), чтобы мир стал лучше.
Поясните +) а то нам тоже кажется, но может быть нам кажется по разным причинам.
Мы тоже с мультиметра начинали. Но возможность снимать 500 сэмплов в секунду, и даже миллион сэмплов в секунду (ARM) и передача этого в реалтайме на компьютер открывает много интересных возможностей. А так, кейсы примерно такие же смотрим +)
Радиомодуль еще очень прожорлив. Если включен только wifi, телефон просто лежит на столе с включенным экраном — 300 мА. Включаем радиомодуль — 350 мА. Выключаем wifi — 560 мА. Так что если есть wifi — лучше сидеть на wifi.
Еще интересный кейс — некоторые приложеньки, собирающие данные о положении телефона, жрут больше, если телефон в движении. Была идея собрать из лего специальную шаталку телефона, чтобы их тестировать.
Там ад и содомия, поэтому не стал публиковать прямо в статью +) Но вообще он уже на гитхабе.
Вы правы, абсолютная погрешность — это важно при сравнении измерений с разных устройств. И нам еще предстоит верифицировать результаты с устройств, калибровать их. Мы даже можем взять 20 коробочек и сравнить их друг с другом. Но сейчас мы делаем back-to-back тесты на одной и той же коробочке, поэтому на данный момент нас и наколеночный прототип устраивает. Плюс он позволяет сопоставить события из лога Android с графиком потребления — т.е. получается такой профайлинг по энергопотреблению, можно прямо локализовывать проблемы в коде.

Это все конечно не означает, что мы остановились и не думаем, как сделать лучше. У нас уже есть прототипы на ARM и ESP8266, и мы, после уточнения требований и спроса на коробочки, готовы сесть проектировать все это «по науке». Если конечно это будет оправдано.
Это позволит точно измерить потребление одного приложения на одном телефоне. А вот чтобы качественно анализировать работу приложения, его нужно тестировать на разных телефонах и в разных условиях, поэтому от измерительного прибора требуется еще и мобильность. То есть, умножьте 200 тысяч на количество приложений и на количество телефонов, на которых вы хотите тестироваться.

Иными словами, упомянутые устройства подходят нам только в качестве референсных, чтобы откалиброваться и узнать погрешность. Этого мы пока не делали, но теоретически, если учесть, что Arduino дает 10 бит на 5В, то ее разрешающая способность — это 5 мА/бит. Можно брать внешние 16-битные АЦП на ADS1115, которые соответственно дадут 0.05 мА/бит. Или другие АЦП. Характеристики MAX471 я не помню, их можно посмотреть в даташите. Там, правда, написанно, что не стоит использовать их для новых разработок, но на алиэкспрессе их столько, что нам еще на годы хватит )

Чтобы не быть голословным, вот картинка, полученная с более новой версии коробочки, которая сейчас в разработке. По горизонтальной оси — микросекунды, по вертикальной — миллиамперы. Миллион измерений в секунду, 12 бит на диапазон в 3.3В.
Да, я тоже печалюсь из-за отсутствия достойных и современных альтернатив смартфонам в виде простых и надежных трубок. Но вообще с точки зрения архитектуры андроиды довольно интересно устроены и многое можно расковырять. Вот с айфонами все намного сложнее =)
Не заставят себя долго ждать ;) Но вообще это, конечно, только первый шаг на большом пути к светлому будущему.
Ну первый стоит под 200 тыс. рублей. За эти же деньги можно собрать примерно 200 коробочек с ардуинкой =) Второй я сходу в продаже не нашел, но подозреваю, что порядок цен там такой же. При этом мы пока еще не уперлись в точность, по полученным данным вполне можно делать полезные выводы.
Чтобы подкрепить слова делом, прислал PR =)
если вы сделаете конфиги в виде питонячих файлов, пользователям будет сложно модифицировать ваши конфиги — они встанут вместе с вашей библиотекой глубоко в систему. Я считаю, что лучше сделать в человекочитаемом общепринятом формате: JSON, YAML, TOML, INI. Все они парсятся одной строкой на питоне, после подключения соответствующих библиотек.
Я бы посоветовал не делать эти массивы бинарными, а сделать человекочитаемыми, например CSV, JSON или YAML. Они у вас небольшие и на производительности это не скажется. При этом с точки зрения программирования — файлы в этих форматах вы прочитаете одной строкой на питоне.
Я думаю вполне — я бы разобрался.
Даже python3 не надо будет писать. Примерно так:
dab_deconv_area -p /home/meklon/Data/sample/test/ -t 35 -e 89 -s -a
Напишите setup.py для вашего проекта, там можно будет указать и зависимости, и точку входа (команда ляжет куда-то в /usr/bin), и многое другое. Как пример привожу собственный setup.py, документация тут.

После написания setup.py ваш проект можно будет загрузить на pypi.python.org и ставить оттуда вот так:
pip install (project name)


Или можно ставить прямо из мастер (или любой другой) ветки вашего репозитория:
pip install https://api.github.com/repos/meklon/DAB_analyzer/tarball/master

Включая Яндекс.

Без хаба все ок. Power saving можно как-то продиагностировать по логам?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity