А вот еще посмеяться

Я тут в очередной раз откопал стюардессу Intel Edison и случайно наткнулся на статейку на хабре:

https://habr.com/company/intel/blog/260943/

Если коротко – чуваки организовали на этом самом Edison опрос “электрокардиографа” с Bluetooth (электрокардиограф я пишу в кавычках, потому что вряд ли это устройство сертифицировано, как медицинское). Задача практически тривиальная – тем более, они там сами и пишут:

…работать с 6 одновременными потоками ЭКГ с частотой дискретизации 500Гц

Не знаю, какая разрядность у тамошнего АЦП – предположим, что 24 бита, с хорошим запасом (на самом деле в “электрофизиологии” редко нужна разрядность свыше 10 бит, тем более, если речь идет об ЭКГ, но специализированные АЦП для физиологических измерений выпускают с разрядностью до 24 бит). Итого “6 одновременных потоков ЭКГ с частотой дискретизации 500 Гц” превращаются в смешные 72000 бит/с – не так уж и много данных, не правда ли?

Но держитесь крепче – чуваки не зря взяли Intel Edison, весьма неслабый микрокомпьютер с двухядерным Intel Atom, работающим на частоте 500 МГц, 1 Гб оперативной памяти и Linux в качестве операционной системой – ведь обработкой ЭКГ они занялись на node.js, и при таких вводных…

Объем занимаемой памяти процессом редко превышает 100 МБ.

Следующий абзац, пожалуй, стоит привести целиком (орфография и пунктуация оригинала сохранены):

Тут наверное нужно немного отвлечься и отметить, что сенсоры можно разделить на 2 больших категории: те, которые передают некоторое измеренное число, к примеру вес или артериальное давление и те, с которых поступает непрерывный сигнал, такие как электрокардиограмма и пульсовая волна с пульсоксиметра. И если в первом случае применение производительных платформ не сильно оправдано, там по большому счету не требуются особые вычислительные ресурсы, то во втором случае простого контроллера уже не достаточно.

Не знаю, конечно, справится ли с “обсчетом” (обычно требуется какая-то фильтрация данных, “классика” здесь – фильтр Баттерворта или что-то подобное) шестиканальной ЭКГ какой-нибудь AVR – но, скажем, на ARM Cortex-M4 (который стоит на порядок дешевле Edison) можно справиться и с на порядок большим объемом данных без каких-либо проблем.

21 комментарий

  1. kettle пишет:

    Вы пропустили ключевую фразу “Блог компании Intel”, которая много чего объясняет. :)
    На интеловском хакатоне какой только бабуйни на платформе эдисона не предлагали. В т.ч. и такой, которая реализуется на простом триггере Шмидта и паре концевиков.
    Хотя надо сказать, что это был один из немногих проектов, который чуваки за полтора дня реально воплотили в “железе” и продемонстрировали работу, и по-моему даже вошли в тройку призеров, хотя по мне среди остальных вполне тянуло и на первое место.
    А что касается справится ли арм или нет – так я давеча сутки ходил с подключенным кардиографом, который писал четыре канала и на все про все требовал одной пальчиковой батарейки и что-то мне кажется, что не эдиссон там был, тем более такие уж лет 20 точно как водятся, только раньше они чуть больше батареек требовали. То-ли двух, то-ли четырех. :)

    • Intel на самом деле с эдисоном довольно круто обосрался, когда начал позиционировать его, как “пиздец мощную ардуину”, а не “мелкий-мелкий писюк с линуксом”. Хакатоны – это вообще отдельный жанр, делать там что-то серьезное обычно смысла не имеет.

      Ну а касательно холтеров – 20 лет назад они на магнитофонную кассету писали вообще :)

      • kettle пишет:

        скажите, а вы в хакатонах участие принимали? :)
        Там люди весьма таки разные приходят.

        Но на мелкий-мелкий писюк это не тянет по причине отсутствия видео и аудио, да и интерфейсов там не густо. Другое дело что сама плата с хитровывернутым разъемом и к ней непременно нужна какая-то “материнка”, а по причине убогости интерфейсов не понятно кому это надо?

        • Ну вот смотрим тот же “блог компании интел” (я просто сейчас пытаюсь сделать нечто подобное):

          https://habr.com/company/unwds/blog/396321/

          Это, кстати, одно из немногих описанных на хабре примений Edison “по назначению”, именно как маленького компьютера с Linux – то есть вопросов “а почему не Raspberry/STM32/AVR?” тут не возникает.

          Если участникам выдали бы “голые” Edison (с какой-нибудь breakout board, мы же не звери) и не менее “голые” CC2650 Launchpad – то минимум несколько часов работы ушло бы на устранение косяков Contiki OS и 6LoWPAN Border Router. Intel Edison Kit for Arduino – тоже “удовольствие” еще то, на нем “из коробки” не работает UART, например :) Оно в таком виде кому-то надо? Это в некотором смысле проблема организаторов хакатона – но как минимум “железо” должно запускаться без особых проблем (ну или быть знакомым большинству участников – что сужает выбор до ардуины), а это пока скорее фантастика.

          • kettle пишет:

            И что по этой ссылке углядеть я должен?
            “Главная проблема Edison — это разъём.” – это я и так знаю. :)

            Проблемы или не проблемы, но я своими глазами видел, как чуваки за полтора дня забубенили реально работающие прототипы на выданном им эдиссоне, брекаут борде к нему, шилде к ней с разъемами под i2c и прочие моторчики, и россыпи этих самых моторчиков, датчиков и дисплейчиков. Подозреваю, что многие тупо портировали с ардуины свои уже имеющиеся разработки, а не фигачили с нуля.

            У меня, кстати, не завелся i2c, я так и не смог ядром увидеть подключенный индикатор и положил на это хрен. :)

            • Что углядеть? В Edison можно воткнуть СУБД Tarantool разработки mail.ru вместе с довольно нетривиальным “граничным роутером” 6LoWPAN (а заодно MQTT-сервер и еще до хуя всего).

              Что же касается I2C, моторчиков и так далее – это все хорошо, но покрутить моторчики и пописать на дисплейчиках по I2C можно и без привлечения двухядерного процессора с частотой 500 МГц и гигабайта оперативки. Не видно, чем Edison в положительную сторону отличается от ардуины, например.

              • kettle пишет:

                Воткнуть-то можно. Но на буя?
                Я же фактически это “а по причине убогости интерфейсов не понятно кому это надо?” и спросил.

                Хотел я взять атмегу, а взял стм32. И не потому что мне нужна скорость или разрядность, а потому что тупо дешевле. Я бы, возможно, и эдисон взял… хотя врядли, не люблю я х86, но в этот раз он уже тупо дороже и габаритнее.

                > Не видно, чем Edison в положительную сторону отличается от ардуины, например.
                Тем, что “можно воткнуть СУБД Tarantool разработки mail.ru вместе с довольно нетривиальным “граничным роутером” 6LoWPAN (а заодно MQTT-сервер и еще до хуя всего” :)

                • > Но на буя?

                  Есть такое мнение, что во всякого рода IoT “оконечные устройства” типа лампочек и выключателей не должны лезть в интернет напрямую, а должны работать через какой-то “граничный роутер” – причем даже не сетевого уровня, как 6LBR (https://github.com/cetic/6lbr/wiki), а уровня приложений (например – датчики кидают свои данные на какой-нибудь “родительский” узел, тот их обрабатывает и дальше уже передает в какое-нибудь модное облако – ну или не передает).

                  А в этом конкретном случае достаточно имеющихся у edison интерфейсов – UART для радиомодуля с IEEE 802.15.4 и WiFi для всего остального (ну или usb-ethernet на плате Arduino Kit).

                  > Хотел я взять атмегу, а взял стм32.

                  Атмега и СТМ играют, так сказать, “на одном поле”, цена стм вполне позволяет заменить им атмегу во всех ее применениях, производительность и 32-битность тут идут, как приятные бонусы. Edison – как ты правильно заметил – “в этот раз он уже тупо дороже”, причем на пару порядков.

                  Интеловцы сначала пытались позиционировать эдисон, как замену ардуины – отсюда, например, огромное количество документации по работе, скажем, с UART через ардуинообразные “скетчи”, и нулевое количество примеров работы с этим же UART из Linux. Потом спохватились, но было уже поздно.

                  • kettle пишет:

                    Вы не маркетолух, вам не понять. :)

                    Ардуина, это, по сути, два компонента: готовая плата и IDE, причем одно никак не завит от другого. Плата, если не вдаваться в подробности, обычный evaluation board, которые есть у любого производителя МК, да даже в рамках экосистемы *duino их не то что бы вагон, но маленькая тележка, заканчивая гламурными lilypad. А в IDE железо скрыто за библиотеками, и опять же, легко заменяется на любое другое. И образно говоря получается дельфи для железа: накидал “кнопочек” на “формочку” не вдаваясь в подробности “GUI” и вуаля – работающий “софт”, который по кнопочке мигает лапмочкой. И дополните сюда огромное число всевозможных готовых шилдов, которые дают возможность накидать на “форму” не только стандартных “кнопочек”.
                    и у производителя МК есть два варианта: а) запилить свою экосистему, со своим преферансом и куртизанками, или попробовать влезть в существующую, предложив совместимый продукт, для чего надо плату совместимую по пинам и набор библиотек. У STM, например, nucleo как раз ардуино-совместима. А чем хуже intel, который тоже хочет отжать кусок IoT-пирога?
                    Если выпустить ардуино-подобное, это большое число юзеров, которых можно подсадить на свою платформу. А если обозначить как линукc-мк, то весь рынок – десяток упоротых красноглазиков, ибо остальные плотно сидят под виндой и вообще не лезут на уровень железа, очканув уже на слове “линукс”. А серьезные разработчики и так используют *дуино лишь для быстрого макетирования и у них не будет проблем работать с железом в обход развесистых *дуиновских библиотек.

                    А уровнь выше, куда вы ходите тарантул упихнуть, уже не требует того формфактора, что бы быть засунутым в габариты стакана розетки и интерфейсов от него ожидаешь чуть больше, чем торчащие два десятка GPIO. На роль шлюза больше подойдет какой-нибудь реалтековский SoC с двумя эзернетами и вайфаем.

                    • Придется тогда констатировать, что Edison – большой фейл именно маркетологов интела, не сумевших а) выделить аудитории своего продукта и б) сообщить этой аудитории его вполне очевидные преимущества. Если переходить на всем понятные аналогии – они пытались впарить автомобиль “Ока” покупателям офисных стульев на колесиках :)

                    • kettle пишет:

                      Ну да, это не столько фейл, сколько факап. :)
                      Но скорее они пытались впарить кунг на базе урала покупателям пассажирской газельки, хотя этим кунгом можно было в порядке исключения управлять с правами категории B
                      :)
                      не исключаю, кстати, что они просрут рынок ИоТ так же как некоторые бренды в свое время просрали рынок ПК.

                    • А они его уже просрали, вообще-то. Edison с прошлого года снят с производства. Ситуация такая же, как с планшетами на Atom – интел влезает на рынок “недесктопных” процессоров со своим х86, все удивляются, интел благополучно все заваливает.

                    • kettle пишет:

                      Не забывайте, что перед эдисоном было галилео.
                      Так что завершение эдисона не влечет за собой однозначный уход с рынка.
                      Тем более: https://software.intel.com/ru-ru/iot/hardware/up-squared-grove-dev-kit
                      Оно они себя ведут как IBM лет 40 лет назад: че-то надо как ПК сделать и себя на рынке представить, но вложив в это три копейки.
                      Хотя, кмк, перспективы развития IoT сейчас намного выше, чем тогда перспективы полноценных домашних ПК.

                    • На самом деле никто не знает, что такое IoT :) Какие-то определенные тенденции есть (низкое энергопгтребление, оптимизированные под это протоколы передачи данных, etc) – но у интела нет ничего и близко ложащегося в эту тематику. Зато они умеют делать процессоры.

                      Кстати, что такого особенного в Up Squared, если за те же деньги я могу взять какой-нибудь сопоставимый неттоп, а на сдачу – еще и ардуину?

                      https://www.dns-shop.ru/catalog/796d2c65fedf6479/nettopy-i-kompyutery-fleshki/

                    • kettle пишет:

                      Ну сама-то плата стоит дешевле, за 250 вам предлагают с довеском.
                      А неттоп не может похвастаться таким набором интерфейсов, проблематично у него искать где GPIO.
                      Кмк IoT это embeddeb, но объединенный в сеть себе подобных.

                    • GPIO на неттопе (впрочем, и на любом edison, unwired one, carambola и так далее) – лютый онанизм. Работать с ним из юзерспейса ужасно неудобно и медленно, а драйверы уровня ядра – занятие для сильных духом. Собственно, и в эдисоне было какое-то работающее на сотне МГц ядро, которое могло (должно?) контролировать GPIO, а в unwired то ли по SPI, то ли по UART пристегивали обычную атмегу. В Up2 так примерно и сделали, прицепив сопроцессор на “интерфейсной плате Grove”.

                    • kettle пишет:

                      Я извиняюсь, но если у вас нет GPIO, то чем вы собрались в IoTе лампочками моргать и моторчиками дрыгать?

                      На чем вы будете делать интерфейсы это уже ваше личное дело. Факт в том что они или есть, или нет. Можете подцепить по UART, если вас скорость устраивает. Но если я правильно помню, на stm32 порты тактируются от 2Мгц, успеет ваш UART за ними?

                      В едисоне, кстати, i2c с шилда были доступы в /proc
                      А уж как они там реально – мне до лампочки. Той самой, которая через этот самый i2c включается. :)

                    • > чем вы собрались в IoTе лампочками моргать и моторчиками дрыгать

                      Висящей на UART атмегой, не?

                      С морганием лампочками обычно еще как-то можно справиться из-под линукса, а вот для дрыгания моторчиками крайне желательно, чтобы используемая ОС имела приставочку real-time, и Linux здесь подходит весьма условно (я видел попытку реализовать с использованием линукса что-то типа radio duty cycle, все было, мягко говоря, ужасно).

                    • kettle пишет:

                      Вот для реалтайма на эдиссоне и было, имнип, третье ядро. :)

                      но с другой стороны, понятие реалтайма весьма относительно, если вы хотите жесткого реалтайма, то это только аппаратно, даже на атмеге. Нет, вы конечно можете выпилить все прерывания и жестко посчитать по тактам, включая все возможные ветвления, но это дюже бодрый онанизм получится.
                      а так хватило бы и аппаратных таймеров и типа того, вы же не вешаете атмегу на атмегу?
                      в конце концов – qnx это rt?
                      Кстати – давеча ролик про дефекты 3д печати смотрел… один из дефектов вызван тем, что движение тормозится на время обновления инфы на дисплее. А вы говорите – реалтайм на атмеге. :)

                    • > один из дефектов вызван тем, что движение тормозится на время обновления инфы на диспле

                      ну сдуру-то можно и хуй (напечатанный на принтере) сломать :)

                • Вот пример “правильного” применения микрокомпьютера с Linux:

                  https://habr.com/company/blackswift/blog/247817/
                  https://habr.com/company/blackswift/blog/247925/
                  https://habr.com/company/blackswift/blog/248037/

                  Да, можно примерно за то же время сделать что-то аналогичное на mbed (https://www.chipdip.ru/product/mbed-lpc1768-mbed-nxp-lpc1768-microcon – c Ethernet) или ESP8266, CC3200 и тому подобной фигне с WiFi, веб-сервер там тоже можно поднять, и управлять гирляндой через ШИМ в разы проще – но идея понятна?

Ответить

Или воспользуйтесь входом по OpenID: