Comments 177
Время жизни энкодеров и кнопок в разы дольше чем время жизни неподдерживаемого приложения в любом облачном маркете.
На примере моей микроволновки с энкодером и кнопками оно больше времени существования самих маркетов и даже парочки ОС. Так что я никогда не куплю девайс, единственным интерфейсом у которого будет приложение.
Скажите, у Вас есть современный кондиционер/телевизор. А как Вы ими управляете?
Только есть одно но, из-за ограниченности ресурсов стоящего внутри железа многие функции в меню сильно урезаны в функциональности, а многие и просто недоступны. Да если-бы и не было ограничений, то, например, нарисовать произвольную раскабловку шин данных собранного экрана проще, удобнее, приятнее и быстрее с любимого ноутбука. ;-)
не самая лучшая реализация но всё же…
не самая лучшая реализация но всё же…
Да, значительно более лучшая реализация на этом виде на заднем плане на столе стоит.
ну или интерфейс осциллографа
Пример неудачный от слова «совсем»
Лучший интерфейс для осциллографа — физический, какой он, собственно, и есть. Это становится понятно только тогда, когда за ним реально поработаешь, а всё ПО на полноценных ПК/ноутах может носить только вспомогательные функции.
Это только кажется, что если там много всяких крутилок, то их можно убрать куда-нибудь в меню и оставить один большой экран. Нет. В процессе работы они все, что вынесены отдельно, используются. При чём не глядя. Всё, что можно убрать, уже убрано.
и о чорт! статья не про это! она про BlackBox… про генератор исходного кода обработки бинарного протокола.
Есть вещи, для которых сенсорный экран (смартфон) в качестве интерфейса действительно имеет место быть.
Хотя не спорю, удобно, что места на столе занимает минимум. Я бы прикрепил как дополнительный монитор жестко к полке — как-раз будет перед глазами и держать второй рукой не надо.
Управляю обычным пультом — так удобнее всего:
— пульт всегда заряжен (для зануд: да, батарейки раз в год можно и поменять)
— физические кнопки
— цена: можно ронять, можно позволить более небрежное обращение в угоду комфорта
— всегда в комнате
— всегда работает и не отваливается (привет обновлениям)
А приложением поигрался и забыл.
но есть кондиционер… пульт от которого давно потерян. и не мной
зато на маркете есть приложение в котором прошиты практически все кондиционеры и телевизоры.
установил. пользуюсь. доволен.
— мобильник у меня всегда заряжен. и на счету есть деньги. и я слежу за этим. я современный человек. без связи никак.
— сенсорный экран с мультитачем
— на рынке очень много дешевых планшетов и мобильников
— всегда с собой
— всегда работает.
что я делаю не так?
Так и напрашивается эпитет «успешный» (ради чего-то же должны быть все эти усилия, раз вы на них акцентируете внимание, при том что они очевидны)
А если серьёзно, то вопрос и не стоит, кто именно, что-то делает не так.
У всех свои предпочтения. И пока приверженцев определенных предпочтений будет весомая доля, с точки зрения бизнеса их придется учитывать.
Я понимаю, что со временем обычный пульт станет отдельной опцией, а потом и вовсе исчезнет. Но, на данном этапе он лично мне более удобен.
Для примера, даже Apple TV идет с «обычным» пультом.
Бабушка: Внучек, где пульт от кондиционера? мне жарко…
Внучек: Бабушка, возьми планшет на диване, запусти приложение MyCoolControl, закрой рекламу крестиком в углу, подключи по блютуз устройство Cool_In_Room_143, в поле температуры введи нужную температуру.
Бабушка: Пойду лучше смузи налью и на гироскутере покатаюсь…
Мне кнопки удобнее, можно ночью нащупать и не будить жену ярким светом подсветки.
Поэтому пульт от кондиционера должен быть прикреплен к стене, как и выключатель освещения, и термостат
… И в этом случае весь этот зоопарк пультов может быть заменен одним единственным планшетом, закрепленным на той же стене, работающем в режиме 24/7 и который может управлять и отоплением и кондиционированием и светом и жалюзями и погоду на улице показывать и все это через один интерфейс. Не находите, что это будет и эстетичней, удобней, дешевле и более заточено на будущее?
Таких приложений сегодня уже есть вагон и маленькая тележка. Какая-никакая конфигурация конечно-же требуется и заключается в большей степени в создании пользовательских экранов. Есть как платные, так и бесплатные приложения. Есть даже инсталляторы, которые за деньги сделают нужный Вам дизайн.
Да и всегда найдется какой нибудь производитель, чья техника не будет совместима с конкретным приложением.
Да и всегда найдется какой нибудь производитель, чья техника не будет совместима с конкретным приложением.
Такие производители сегодня долго не живут. Да и OpenSource Сommunity не дремлет. Если устройство популярно, то его протокол/API очень быстро взламывается и добавляется в библиотеку совместимых устройств.
С другой стороны я лично уже давно не покупаю "экзотику", совместимую только со своим родным приложением. Это привязка к производителю и плохой способ сэкономить.
И кстати, в будущем точно не будет никаких планшетов для управления техникой. Обои-телевизоры, мысле-передатчики, компактные ДНК-сенсоры… вот более вероятное будущее.
Планшет не тормозит, никогда не виснет и никогда не вовремя не обновляется.
Зависит от планшета и софта на нем. Моя эксплуатация показала, что можно получить достаточно надежное и неубиваемое решение, годное даже для детской комнаты. Для ванной комнаты и наружки возможно есть проблемы, но я даже не пытался еще подыскивать варианты.
… и является единственной точкой отказа для всех систем…
А это еще почему? В этом то и отличие планшета от единственного и неповторимого пульта. Вы можете иметь столько экземпляров планшетов у себя в доме, сколько хотите и везде иметь одинаковый софт и дублировать функции как угодно.
В этом то и отличие планшета от единственного и неповторимого пульта.
Ну, грубо говоря, с пультами тоже проблем нет. «Единственный и неповторимый» можно накопировать сколько угодно раз, при цене вопроса в 5$ (планшет-то подороже выйдет).
«Единственный и неповторимый» можно накопировать сколько угодно раз, при цене вопроса в 5$
Ну это вы говорите о ширпотребе, продающемся на Али. А вот когда вам нужен будет особый пульт от какого-нибудь экзотического кондиционера, который больше не производится, цена вопроса иногда может вырасти до стоимости нового кондиционера с установкой. То же самое с некоторыми дизайнерскими термостатами и выключателями
С экзотикой не выйдет конечно, но на то она и экзотика.
Вы привели замечательный пример. Представим что в ваших весах нет индикации веса. Вы встаете на них и получаете вес на свой смартфон. Далее вас нет дома, а встать на весы желает еще ваша жена и дочка. Приведете тут порядок действий который нужно провести с весами и другими смартфонами (весы ведь спарены с вашим мобильником)?!
скажите, а вы на практике как часто используйте Bluetooth устройства? ну там наушники, мышки, клавиатуры, очистители воздуха...?
если не часто, то на ютюбе это можно наглядно увидеть.
Еще стоит упомянуть чехарду с профилями и протоколами BT из за которых большинство устройств просто превратится в тыкву в скором времени, когда исчезнет родное приложение из маркета.
если бы подобное происходило повсеместно со всеми Bluetooth устройствами, об этой технологии, кроме её создателей, никто бы не узнал.
Ну возьмем идеальные весы. Вы ушли на работу, жена встает на весы, ничего на смартфон не получает, чертыхается и лезет в инструкцию читать про pairing. Вы приходите домой, встаете на весы и ваш вес добавляется в историю веса жены на ее смарте. Теперь чертыхаетесь оба и идете покупать весы с индикацией.
Я хочу этим сказать что задача использования бытовых устройств с БТ совместно несколькими людьми нормально вообще не решается.
код сгенеренный BlackBox потрабелен.
Только это все далеко от уровня бытового использования устройств без индикации, которых по описанным в этом посте причинам не существует.
Но конкретно на счет весов упомянутых в статье, позволю себе с Вами не согласиться.
У меня дома есть эти ми-весы, связаны с несколькими телефонами и спокойно узнают каждого члена семьи. Более того, когда встаю на весы и беру на руки маленькую дочку — приложение показывает мне ее вес и пишет его в отдельный профиль. Батарейки не вынимал из них с момента покупки (более 2х лет уже...). На индикацию не смотрю (зрение поганое), и я их даже иногда полностью из-под шкафа не достаю. Т.ч. при нашем паттерне использования — абсолютно не доставляют проблем ни мне ни жене ни периодически приходящим бабушкам и без индикации обошлись бы спокойно. Но с экранчиком они все-же лучше, чем совсем без него.
С весами хороший пример. Обычно, весы у меня в одной комнате, а телефон в другой. На кой мне красивые графики я не знаю, Альцгеймер меня пока не застиг и я свой средний вес помню. И/или реперные точки.
С телевизором тоже хороший пример. У меня есть пульт и приложение на телефоне. Приложение использую совсем редко, когда совсем уж делать нечего, а тут одновременно с телевизором телефон в руки попался. Телефон, опять же, как правило где-нибудь далеко, а телевизор хочется переключить прямо сейчас. Пульт, правда, дети тоже постоянно теряют, поэтому востребованность пульта примерно равна востребованности кнопок на телике. А, да, у детей кнопочные телефоны (смарты не выживают если на них с горки кататься или по гаражам лазить), поэтому работа с теликом в вашем варианте детям недоступна?
Кондиционер… у него "пульт" в стену вделан. Офигенно удобно и не потеряешь :)
Реально, управлять с телефона/планшета чем-то, что не встроено в телефон жутко неудобно.
ЗЫ у меня ещё и микроволновка с единственным, да ещё и механическим органом управления. Из многих опробованных вариантов этот — самый удобный.
Представил себе микроволновку с управлением от телефона. Отличная вещь, если хочешь сделать подарок заклятому врагу!
это ПО разработано под прориетарную систему, намеренно, с участием производителя оборудования (без копирайта, но содержало валидные сертификаты) и занесено физически (на флэшке) с использованием инсайда на объекте. Если придаваться панике, то с таким же стечением обстоятельств можно испортить даже используя кнопочный вектор атаки.
P.S. С целью развернутого пояснения к моей предыдущей лаконичной фразе.
— Зачем?
— С bluetooth все становтся лучше!
Как дополнение к основному (классическому) управлению, пойдет. Хотя часто является лишним и ведет к удорожанию конечного продукта. Как замена основному управлению — НЕТ.
Да, телевизором можно управлять с телефона, но при поломке пульта, пошел и купил новый.
Да, стиральной машиной можно управлять с телефона, но белье с порошком в нее само не загрузится!
Я за прогресс, но не нужно к машине приделывать 5е колесо!
а рыночек сам всё порешает.
Разработка пульта сводится к разработке дизайна в лучшем случае, всё остальное вам сделают под заказ за копейки, а то просто берётся OEM за 1$ и клеится своя наклейка.
Вы же при производстве электроники не собираетесь разрабатывать отдельно комплектующие, вы просто их покупаете. Пульт — такая же деталька, микросхема в большом и красивом корпусе, модификаций которых вам предложат миллион.
И бывает внешне пульт такой же но ревизия уже другая — на плате рисунок другой, микросхема другая… Так что с физическими пультами заморочек не меньше чем обновлять софт и править баги, только латентность гораздо больше.
А вот начинка — одна и та же. Микросхемка-ASIC на несколько стандартных протоколов и разное количество кнопок.
Если современный производитель решился разработать пульт на контроллере (про ASIC уже молчу), да со своим протоколом — сам себе буратино, ибо встанет в копеечку.
Сложнее дело обстоит с пультами кондиционеров, там логика работы устройства находится в пульте, плюс он с обратной связью. Тот естественно дороже.
Наверное, такие и бывают, но что-то мне не попадались :) Тем более, что бы еще и с логикой работы кондиционера внутри — это вообще непонятно из каких соображений надо делать :)
Пульт от телевизора, если подумать, сама по себе специфичная штука. На нем обычно есть только кнопки без каких либо дисплеев и индикаторов. Обратная связь — через телевизор. Поэтому вполне понятно, что приложение на телефоне — это overkill — для телевизора нужно управление только в одном направлении — от человека.
В данном случае я уверен, что приложение на телефон — это неправильное направление развития. Голосовое управление, например, было бы куда более подходящим методом, так как имеет те же характеристики, что и пульт — оно однонаправленное.
По крайней мере для совместимости с новыми версиями мобильных платформ. Не говоря уже об исправлении ошибок.
Или придется всё это хитро завуалировать от зорких глаз рыночка. Например, включив цену разработчиков в стоимость, а пульта нет?
Вы, по-моему, недооцениваете стоимость работы Китайских программистов. Более того, как правило, все они сидят на фиксированной зарплате. И если такой специалист уже есть в штате на фабрике (а он 100% есть, и не один), то его труд по написанию/изменению приложения пульта дополнительной стоимости не создает. Да и поддержка такого приложения — минимум трудозатрат, как правило ограничиваются добавлением новых кодов для нового оборудования производителя.
Так что без пульта будет все-же дешевле. Вон уже пошли телеки с одной физической кнопкой на юните.
Но, практика показывает, что на устройства 2-3 летней давности уже практически не выходят апдейты. Моему кондиционеру 8 лет, и его пульт отлично работает до сих пор. А, теперь представьте, что за 8 лет произошло с приложениями в вашем смартфоне, и сколько смартфонов сменилось…
Програмер может спать, если работы мало, а может работать. Не нравится как один работает — заменят на другого.
Для фабрики затраты — одни и те же.
И я не говорил, что мне это нравится, но судя по всему, производители идут по этому пути. Я лишь поясняю, почему им это выгодно.
Будут писать апдейты ровно до тех пор, пока у них покупают эту технику.
Как вариант, сделают универсальный пульт на все модели и будут поддерживать по тому же принципу как поддерживаются драйвера на видеокарты.
у как бы физический пульт тоже не сам себя делает и настраивает
Выше уже написал — пульт относится к части комплектующих и покупается отдельно, наряду с остальными.
Рынок действительно все порешает.
Та, что без пульта будет стоить дороже. Т.к. спрос на стиральную машину без кнопок-крутилок будет около нулевой, покупать ее будут только узкий круг гиков, соответственно производить ее будет дорого.
P.S. У меня спутниковый ресивер может управляться как с веб-морды, так и с приложения. В итоге обе эти опции используются только в одном случае — когда надо поставить таймер на запись. Все. В остальных случаях используется пульт т.к. он доступнее и быстрее.
Во-первых, экономия будет копеечной. Ибо разработка пульта уже выполнена (есть же аариант с пультом, а производство копеечное.
Во-вторых, пульт просто удобнее ибо тактильные ощущения позволяют выключить телевизор неглядя.
В-третьих, люди обустраивающие медиацентры на базе пк/одноплатников вполне себе покупают пульты за цену сравнимую с ценой бюджетного телевизора.
Что удобнее — пульт с 4 мя кнопками: «громкость и переключение каналов» или мобильное приложение, которое не работает без доступа к интернету, да еще и требует постоянного запуска себя?
Так ли вам нужен блютуз в чайнике, ведь воды в нее он сам не нальет.
Вы пользовались осциллографами приставками к ПК? По своему опыту знаю, что лучше отдельного прибора со своим экраном — только отдельный прибор со своим экраном.
Увы, безуспешно. В ценовом диапазоне 20-80 тыс. нет ни одного ТВ с удобным и простым пультом. Даже самые глупые ТВ (с минимум функций) имеют слишком замороченные пульты, у всех без исключения основные кнопки (включение, каналы, громкость) мелкие и расположены впритык с остальными.
Пришлось позже купить универсальный обучаемый пульт за 300 р., типа такого.
самомобучаемое(читает коды старого пульта) и позволяет конструировать интерфейс мобильного пульта.
оставив только те кнопки которые нужны.
для андроидов с ИК
Ну есть у меня андроид с ИК (Redmi 3). Есть как родное ксяомишное приложение-пульт, так и сторонних куча бесплатных и не очень. Поиграл в самом начале чуток- настроил сплит, спутниковое, телевизор. Думал, ну всё, минус три пульта. Ан нет, через неделю-полторы минус все эти приложухи, ибо эти тихий ужос, а физические пульты вернулись на свои законные места.
Весьма обрадовало что вы пошли дальше тезисов, и соорудили для всего этого какие-то инструменты. Но вот предоставление этих инструментов в виде SaaS, на мой взгляд, всё портит. Я бы не стал добавлять такое в свой проект.
виде SaaS, на мой взгляд, всё портит.
а на мой взгляд, как раз наоборот. на стороне сервера будет трудиться команда поддержки, которая будет собирать пожелания, анализировать и аккумулировать лучшие практики.
Я бы не стал
не надо. это сделает Ваш конкурент.
Схема сборки с отправкой email куда-то — это полный трэш. Нормальные люди делают скрипты или плагины к sbt системам сборки.
Проект — реально чёрный ящик, совершенно непонятно, как работает полученный код. Я бы не рисковал такое использовать. Лучше построить свой лунапарк. Или взять MQTT.
совершенно непонятно, как работает полученный код.
какой именно? демо код на JAVA? на C? на С#?
или вы уже отправили свой дескриптор на кодогенерацию? обычно приходить подтверждение. скажите какой проект, я посмотрю.
Лучше построить свой лунапарк.
отлично! больше хороших решений!
Или взять MQTT.
управлять коптером с земли?
Все, что привязано к интернету, без интернета превращается в тыкву.
Стоимость телефона для управления может превышать стоимость исходного устройства на порядок, а дешевый/старый телефон — тупить, не поддерживать софт, глючить и тд. В отличие от этого железные кнопки и энкодеры никогда не тормозят и не глючат (при грамотном проектировании схемы).
Беспроводные каналы по радио подвержены помехам и перегрузке.
И главное — спаять мультивибратор на дискрете или логике можно через 10 минут после открытия схемы и прочтения описания даже с нулевым опытом. Сколько часов потребуется для написания того же мультивибратора для МК, отладки и прочего?
И не забывайте, что правильный мультивибратор требует двух микроконтролеров (шутка. если что)
Нет, спасибо.
Железные кнопки и энкодеры заменяются любыми кнопками и энкодерами — хоть из 2 полосок жестянки. Установив дисплей с тачскрином, можно с удивлением обнаружить через пару лет, что он уже снят с производства. и заменить его не на что. Особенно если он какой-нибудь нестандартный.
Было 2 микроволновки — одна с механическим реле времени, вторая — с сенсорными кнопками. Первая отремонтировалась покупкой механического реле за 150р, а вторую пришлось списать, потому что «плата управления более не выпускается, у вас старая модель». Прошивки управления тоже нет" И все.
Плёночную буквально вчера реанимировал. Точнее сказать, клавиатуре уже кирдык, просто вынес аккуратно на панель две железных кнопки, проследив цепь и подпаявшись к плате. Продублировал «Старт» и «Стоп», из остального разве что разморозка иногда использовалась, остальное никогда.
Во первых — меньшее количество компонентов!
Во вторых — предсказуемость работы. На МК мультивибратор будет начинать строго с заданной фазы, а не как в дискретном в зависимости от луны, качества исполнения компонентов и влажности воздуха в комнате. Кроме того, есть исполнения контроллеров с температурной компенсацией тактовой частоты, а при необходимости добавлением внешнего кварцевого резонатора получаем точность поддержания временных интервалов до 5-6 знаков. В то время как обычный дискретный мультивибратор способен обеспечить лишь 2 знака. Есть конечно исключения — такой себе мультивибратор как ГИАЦИНТ, но сложность его конструкции…
Сделать мультивибратор на МК гораздо быстрее чем спаять дискретный(если не учитывать время установки Arduino IDE, но скажем так купить необходимые детали паяльник и припой тоже время занимает и гораздо больше) — взять готовый пример мигания светодиодом.
Недостатки же дискретной схемы — спаял и в 9 из 10 случаев оно НЕ ЗАРАБОТАЕТ по причине несоответствия параметров деталей, незамеченного непропая или КЗ в схеме. Уверен, тот кто впервые сталкивается с электроникой без инструкции(готового разжёваного примера и работающего паяльника с подходящим припоем) не запустит мультивибратор и за пару часов, какие там 10 минут? В своё время лабораторки по ТОЭ показали это довольно таки наглядно. Почему-то только у меня одного мультивибратор заработал сразу, а секрет прост — просто у меня уже был минимальный опыт.
В третьих, сделать устойчивый дискретный мультивибратор с периодом следования импульсов в несколько часов, как?
Сейчас, кстати, с применением математики связь стала возможной при уровне сигнала ниже уровня шумов на 28дБ, ну это не менее 100 раз. Сделать такой дискретный приёмник? как? Благодаря цифровой связи мобильник обеспечивает приемлемую связь при высоком уровне помех и уровне сигнала порядка -100дБ(-70дБ на мобильнике это 3 палки из 5 по уровню сигнала). В дискретной аналоговой технике это на уровне фантастики.
Для периода в несколько часов надо использовать не мультивибратор, а иную подходящую схемотехнику.
И еще раз повторюсь — изучение программирования тоже входит в «сделать». Только вот все упорно это отрицают.
ЦОС — это уже немного другая история. Хотя и у цифровой связи есть неустранимые проблемы, в частности бесит, когда цифровое ТВ намертво виснет при слабом сигнале. аналоговое лишь зашумливало картинку.
Если взять равные условия — ширину полосы цифрового потока в 8Мгц, как аналогичного аналогового, то обеспечить устойчивость картинки к помехам можно гораздо лучше чем у аналогового сигнала. Но зря чтоли цифровое ТВ внедряют? Основное преимущество цифры — уплотнение каналов на ограниченном частотном ресурсе при прочих равных условиях приёма.
когда цифровое ТВ намертво виснет при слабом сигнале. аналоговое лишь зашумливало картинку.
На самом деле цифровое будет показывать без единого квадратика при уровне сигнала, на котором на аналоге и силуэтов не рассмотреть. Если виснет — это уже за гранью для аналога вообще.
Хотя и у цифровой связи есть неустранимые проблемы, в частности бесит, когда цифровое ТВ намертво виснет при слабом сигнале. аналоговое лишь зашумливало картинку.это не всегда минус. Лучше не иметь информацию, чем иметь искаженную. Не в случае с тв конечно
при необходимости добавлением внешнего кварцевого резонатора получаем точность поддержания временных интервалов до 5-6 знаков. В то время как обычный дискретный мультивибратор способен обеспечить лишь 2 знака.
Никто не мешает прицепить резонатор и к дискретному мультивибратору :)
Сделать мультивибратор на МК гораздо быстрее чем спаять дискретный
Очень спорное утверждение :)
Недостатки же дискретной схемы — спаял и в 9 из 10 случаев оно НЕ ЗАРАБОТАЕТ по причине несоответствия параметров деталей, незамеченного непропая или КЗ в схеме.
Вы столько ужасов понаписали про конструкцию из трех деталей, что просто диву даешься как у людей работают конструкции из десятков и даже сотен деталей :)
Уверен, тот кто впервые сталкивается с электроникой без инструкции(готового разжёваного примера и работающего паяльника с подходящим припоем) не запустит мультивибратор и за пару часов, какие там 10 минут?
А тот, кто впервые сталкивается с МК, не запустит его и за пару дней :)
А тот, кто впервые сталкивается с МК, не запустит его и за пару дней :)
Очень хорошо помню и свой первый мультивибратор, и свой первый МК. Разница по времени между ними была 15 лет.
Таки да, на МК времени больше ушло :) Но не два дня, а как раз пару-тройку часов. При том тогда только на ассемблере всё писалось.
Если Вы, впервые "взяв в руки" микроконтроллер и не обладая навыками программирования, сделали на нем за три часа работающий мультивибратор, то я могу только позавидовать Вашей способности молниеносной самообучаемости :)
У меня пара дней ушли только на курение даташитов с пониманием принципов работы микроконтроллеров, плюс не помню сколько еще было потрачено на создание работающего программатора :)
Ну и при том, что для создания мультивибратора (Hello World в мире МК) не надо знать конкретный МК от и до, нюансы выясняются позже.
А с программатором я смухлевал — готовый взял у знакомого :) Потом, конечно, свой собрал.
С дискретной логикой и программированием и я был к тому времени знаком очень неплохо — например, задолго до этого я уже собирал среди всего прочего на дискретной логике "звуковую плату" со входом и выходом для компьютера и писал на ассемблере "драйвер" для нее под DOS :) Но вот микроконтроллер потребовал переосмысления многих вещей :)
Но вот микроконтроллер потребовал переосмысления многих вещей :)
Мне как-то наоборот, «в тему» вошел. :)
В любом случае последние несколько лет ничем уже подобным не занимался, над ардуинкой с сыном сидели немного и всё. Пришлось пересилить себя. Ужас эта ардуина конечно, но сын заинтересовался, это самое главное.
Знаю товарища, он мультивибратор строго по инструкции на 176ЛА7 умудрился сделать так что у него микросхема задымила от кроны. Вот специально захочешь так не сделаешь.
Насчет замены кнопок на приложение забыли упомянуть еще один момент — кто будет писать приложение под телефон? Если все кнопки-крутилки-экранчики я разведу и запрогаю за два вечера, то приложение буду писать примерно вечность, или же придется нанимать человека, который умеет это делать, платить ему деньги и потом возмущаться почему ничего не работает (а в высокоуровневом софте со множеством целевых устройств и ОС баги будут всегда, в то время как прошивку МК можно довести — и обычно доводят — до идеала)
Хорошо, допустим у нас по условию задачи очень маленькое или глубоко спрятанное устройство, где кнопки ставить просто некуда. Ну или еще какая причина для управления с компьютера. Пишем протокол, окей, но зачем же кодогенераторы? Программисты настолько разучились держать в голове больше трех ветвлений? Есть примеры хороших протоколов, которые вполне можно написать руками, поддерживающие сколько угодно любых команд и никогда не сбоящие. Посмотрите на любое устройство, подключаемое по последовательному интерфейсу, авторы которого недостаточно стары, чтобы использовать MODBUS. RFID считыватели, купюроприемники, да сотни их. Всё прекрасно пишется руками под любой функционал.
А MAVLink чудовищен просто с самого рождения. Создан был как универсальный протокол для всех, большая часть его сообщений не поддерживается ни одним полетным контроллером, многие поддерживаются не так как хотелось бы пользователю и еще пойди разберись как и почему он (не)работает. Не надо так. Есть устройство, есть задача, под неё пишется протокол. Уж поверьте моему опыту, это упрощает разработку настолько, что даже в случае кардинальных перемен в ТЗ переписывание вообще всего с нуля становится вопросом пары дней нормального программиста.
Это ведь софт, его всегда можно переписать. Лучше закладывайте универсальность в железо, ведь его в случае чего переделывать гораздо дольше и дороже.
вопросом пары дней нормального программиста.
вы гений. стабильный(как это недавно стало модно говорить) гений. реальность показывает что увы, не все такие. вместо ручного кодирования создают кодогенераторы. ленивые наверно.
Просто избалованные гигабайтами и гигагерцами. Почему то во времена первых полетов на Луну абсолютно всем программистам удавалось обойтись без многослойных пирогов из фрэймворков. И как то удавалось держать в голове каждый регистр. Да, их было меньше, чем сейчас, нынче и задач больше и кодеров надо много. Но ведь могли же люди писать вот так, не могла эволюция за 4 десятка лет дать такой обратный ход.
И так то я не против, пусть пишутся фреймворки и крутятся на них одиэсочки. Но не надо с таким подходом идти в хардварь. Я уже устал эти решения выкорчевывать из каждого второго проекта
и не пустит мне кипяток когда я в душе :D
Кстати идея — краны с вайфаем! Удобно же, зашёл в душ, открыл приложение, выбрал температуру — вода пошла! Нажал «выключить» — упс… телефон что-то залило, не работает, но не беда — у нас же смартфонов как грязи, мы же люди современные!
Всегда так заканчивается.
1. устройство самопальное, т.е. есть контроль над прошивкой и железом
2. устройств или много однокнопочных, или они распиханы по глухим углам, или нельзя установить экран/лампочку, или интерфейс уж очень замудренный
3. планшет или телефон не выносится из помещения, где живёт управляемое оборудование и не заменяется на другую модель
4. ну и интернет — нафиг. Локальное приложение, планшет в режиме точки доступа или BT.
Жаль только, что если устройство повиснет или заглючит, придётся все равно с матюками цеплятся по UART.
Вынесенные интерфейсы, изменение конфигурации устройств на микроконтроллерах, это один из многих вариантов его применения.
Но, каждый видит и читает то, что понимает. Придется писать отдельную, скучную статью.
Приложение как альтернатива и расширение физического интерфейса — поддерживаю. Как единственный вид интерфейса — ни в коем случае. В большинстве бытовых приборов в 90% случаев используется всего 3-5 функций (в телевизоре, например, вкл/выкл, переключить канал, изменить громкость, иногда выключить звук). Все эти чаще всего используемые функции должны быть доступны в физическом интерфейсе — быстро, одним движением. Телевизор, управляемый только из приложения на смартфоне — это извращение. Бытовые весы без дисплея, выводящие показания только на смартфон — это извращение в квадрате.
Однако, если возникнет потребность в сложном протоколе, посмотрю в сторону BlackBox
он не описывает пакет. и какие данные передаются в пакете.
BlackBox — по описанию создает код который способен, сформировать пакет, залить данными, сжать данные перед отправкой, посчитать CRC, приложить к пакету… и так далее
в тексте есть ссылка на на дескриптор протокола mavlink
это не сам протокол, а только дескриптор. по нему будет сгенерировано куча кода.
как TCP или UDP.
никаких модификаций в BlackBox вносить не нужно. код сгенереный BlackBox создаст пакет, предоставит API заливки пакета данными, сериализации его в бинарный вид (байтовый массив) который вы самостоятельно передаете, любым транспортным протоколом.
а на сервере все наоборот. посмтотрите. все примеры доступны в репозитории.
Я принял решение в своих изделиях разделить управляющий контроллер и GUI на разное железо.
Т.е. управляющий контроллер не имеет на борту GUI, и работает в реальном времени.
А для GUI берется обыкновенный Raspberry Pi или его аналоги с линуксом, который связывается с управляющим контроллером по какому либо из локальных интерфейсов (в моем случае это CANopen) и уже дает пользователю все возможности настройки и управления — по BT, Wi-Fi, Ethernet и пр. Финальная цель одна и та же — дать пользователю управлять моим изделием с планшета/телефона
Но тем не менее Ваш подход тоже интересен. Допустим у меня есть STM32F4XX с подключенным к нему Bluetooth модулем. И мне нужно посылать на STM32 управляющие команды и принимать диагностическую информацию на смартфон. Как ваша идея может мне помочь? У вас уже есть работающие приложения — примеры?
для GUI берется обыкновенный Raspberry Pi или
зачем? будет хуже чем любой, даже древний, мобильник…
CANopen
зачем? у вас связь происходит по длинным протяженностью(50-100 метров) проводам?
на линии куча устройств которые могут конфликтовать?
У вас уже есть работающие приложения — примеры?
простите, вы ТОЧНО прочитали написанное?
ок. найдите в тексте и начните читать с
Для получения сгенерированного и оттестированного кода необходимо:
и ссылки. в тексте очень много ссылок, на исходники, на документацию
если останется непонятно, продолжим.
зачем? будет хуже чем любой, даже древний, мобильник…
Я имел ввиду в качестве сервера, которому и будет подключаться мобильник или любой другой клиент в том числе удаленный.
CANopen
зачем? у вас связь происходит по длинным протяженностью(50-100 метров) проводам?
на линии куча устройств которые могут конфликтовать?
Да. Это принятый стандарт в моей отрасли. Система состоит из центрального контроллера и кучи разбросаных I/O модулей.
Для получения сгенерированного и оттестированного кода необходимо:
Хмм, я не заметил ссылки на App Store, или хотя бы на .apk файл демки. Без этого как-то не хочется даже открывать исходники или документацию и терять свое время.
Я принял решение в своих изделиях разделить управляющий контроллер и GUI на разное железо.
Вообще-то по уму так и делается.
usbMsgLen_t usbFunctionSetup(uchar data[8])
{
usbRequest_t *rq = (void *)data;
byte addr = rq->wIndex.bytes[0]; // Адрес порта или регистра
byte val = rq->wValue.bytes[0]; // Значение для записи
switch(rq->bRequest)
{//----------------------------------------------------------
// Работа с портами и регистрами ввода/вывода.
//----------------------------------------------------------
case RQ_IO_READ: // Чтение байта с порта ввода/вывода
dataBuffer[0] = _SFR_IO8(addr);
usbMsgPtr = dataBuffer;
return 1;
case RQ_IO_WRITE: // Запись байта в порт ввода/вывода
_SFR_IO8(addr) = val;
return 0;
}
/* default для не реализованных запросов:
на хост обратно данные не возвращаются */
return 0;
}
Но я видел и проекты, которые использовали эту прошивку с модификациями как раз для опроса датчиков или управления ШД; правда, там где были критичны временные интервалы, были сделаны в прошивке функции, которые дергались по USB, и дополнительно прописаны обработчики соответствующих прерываний
Всё зависит от задачи, и в принципе нет «плохих» или «хороших» подходов, есть плохие и хорошие реализации :)
Далее. Телефоны тормозят. Тормозит само приложение, тормозит связь. На той же стиральной машине мне нужно после загрузки белья сделать 5-7 нажатий чтобы началась стирка. С телефоном пока дойдешь до телефона, пока откроется приложение, пока свяжется со стиральной машиной… С чайником ещё веселее — одно нажатие кнопки заменяется всей этой ерундой.
Третье. Беспроводной модуль связи тоже может отказать. Легко и непринужденно. И устройство превратится в кирпич.
И последнее. Удобный интерфейс сделать сложно. Реально сложно. Очень много приложений для смартфона напоминают мне картинку «Превозмогая трудности». И если для приложений общего назначения часто есть аналоги, то для конкретных устройств их нет и никогда не будет.
Итог. Управление со смартфона имеет право на жизнь только если его можно отключить из нормального кнопочного интерфейса с экраном.
Проверить, что спецификация успешно компилируется, и послать её исходник, в виде аттачмента письма на почтовый адрес OneBlackBoxPlease@outlook.com.
Плюс одно подтверждение названия проекта.
Холивар не о чем (ибо отсутствует основа понимания схемотехники и подхода к задаче), видимо хотелось просто что-то написать на Гиктаймсе.
Экраны и кнопки будут всегда, т.к. вместо заумного и избыточного мобильного устройства, всегда есть надежность, простота использования в законченном изделии.
Вопрос, а служба круглосуточная? Сколько операторов в онлайне? Если один человек — это несерьезно. Когда проект завязан на одного человека, никто не застрахован от его хотелок, ошибок или исчезновения (смерть например).
А серьезно станет всё, когда она превратится в техподдержку очередного фреймворка и захочет за это денег. Какие гарантии, что все предыдущие скомпилированные проекты, дорвавшись потом хоть раз до интернета (ну, мало ли?) не сделают из моего дома гостиницу «Экономическая»?
И кто несет ответственность за баги в скомпилированном коде и логику его работы. Автопроизводители то еще не до конца определились по поводу автопилотов и вспомогательных систем.
Вопрос, а служба круглосуточная?
пока нет. все на самом начальном этапе.
просто то, что сработало у меня, показалось мне красивым и начало приносить прибыль, я решил сделать публичным достоянием.
Сколько операторов в онлайне? Если один человек — это несерьезно. Когда проект завязан на одного человека, никто не застрахован от его хотелок, ошибок или исчезновения (смерть например).
сейчас команда — это один человек.
поэтому, для того чтобы успевать, всё, что можно было автоматизировать, уже автоматизировано.
со временем, когда у этого проекта, в его новой форме, появится некоторая модель получения прибыли, появится команда.
… и захочет за это денег.
скорее всего проекты малой сложности, и полностью открытые, так и останутся бесплатными.
этот проект не попытка поправить свои финансы. у меня с этим и так не плохо.
хочется сделать, полезный сервис, который будет совершенствоваться и привлекать качеством продукта. его самоокупаемость при стабильном развитии — уже для меня будет успехом.
Какие гарантии, что все предыдущие скомпилированные проекты проекты, дорвавшись потом… до интернета
вы получаете полностью протестированный, заказанный код в исходниках.
из обременений у вас только обязательство указывать, что в вашем продукте используется код сгенерированный BlackBox.
код от BlackBox не лазит в интернет. он помогает только удобно упаковать (сериализовать) данные в байтовый массив и восстановить их обратно. вы самостоятельно решаете, как эти данные будут переданы.
гарантией вашей безопасности является ваша грамотность. впрочем это касается не только кода от BlackBox.
И кто несет ответственность за баги в скомпилированном коде и логику его работы.
ответственность за баги кода от BlackBox будет такая же, как и создателя у продукта, в котором этот код будет работать.
хотите разделить ответственность?
не вопрос, обсудим.
одновременно с вопросом о разделе прибыли.
www.youtube.com/watch?v=goIE7KRxXcI
Там есть своя специфика. Например оператор CNC может иметь на руках толстые рабочие грязные перчатки, которыми в тач-скрин тыкать не очень, а в большие кнопки — легко. Обычно это всего несколько кнопок — старт/стоп и выбор нескольких предварительно запрограммированных программ, иногда кнопки ручного управления, где важна скорость реакции и тактильная обратная связь. Ну и кнопка аварийной остановки — грибок — маст хэв должна быть железная по правилам безопасности.
Как управлять микроконтроллером, не привлекая внимания санитаров