Встроенная система: какую ОС мне использовать? - PullRequest
3 голосов
/ 18 июля 2011

Я планирую построить мою встроенную систему для обработки звука моей гитары, например, модуля, с входом и выходом и т. Д., И система, работающая с программой с предустановками, параметрами и т. Д. На небольшом ЖК-экране, должна быть мультитачдля навигации.

Сейчас я в самом начале и не знаю, с чего начать и какую систему мне следует использовать.

Он должен поддерживать функции, которые я написал выше (например, мультитач), и должен бытьбесплатно.

Встроенный Linux или Android или что?

Ответы [ 3 ]

3 голосов
/ 19 июля 2011

Используете ли вы готовые модули эффектов с каким-то интерфейсом к встроенной системе, или вы планируете использовать эффекты в своей программе?Я предполагаю, что последнее в этом ответе, пожалуйста, уточните, если я неправильно понял природу проекта:

У вас системная инженерия ...

Вам понадобится разобраться с аналогомвходы и выходы.Даже цифровые входы и выходы являются аналоговыми в некоторых отношениях для поддержания чистоты сигналов.Даже оптический сигнал будет аналогом между оптическим интерфейсом и интерфейсом процессоров.

(я знаю, что это долго, продолжайте читать, это сойдется при ответе на ваш вопрос)

У вас будеткакое-то аппаратное обеспечение к программным данным в интерфейсе, в идеале, если вы решите поддерживать разные интерфейсы, в идеале вы захотите нормализовать данные в общую форму и преобразовать данные, чтобы обработка эффектов имела дело только с одним способом.(избегая связки if-then-elses в коде, если битрейт - это то, то, иначе, если битрейт - это то, то, еще ... если битрейт - это и данные однополярны, тогда, если битрейт - это и данные биполярнызатем, еще ...).

Сложность обработки эффектов настолько сложна, насколько вы хотите, один эффект за раз или несколько?Для каждого эффекта определите параметры, которые вы хотите разрешить настраивать (я бы начал с минимального числа, которое может быть нулевым, затем добавлю параметры позже, когда все это заработает).Эти параметры должны быть глобальными в некотором смысле или для того, чтобы пользовательский интерфейс мог получить их и изменить их для обработки эффектов.

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

тогда есть пользовательский интерфейс ... легкая часть.

...

Внутренние части программного обеспечения для обработки эффектов могут быть системно-независимым кодом и, вероятно, более удобны для разработки и тестирования на настольном компьютере / ноутбуке, чем в целевой системе,имея в виду, что код должен быть написан независимо от системы и операционной системы, а также должен быть написан встраиваемым (избегайте с плавающей запятой, делений, множества локальных переменных и т. д.).

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

Другая причина разделения задач обработки состоит в том, чтобы было легче гарантировать, что процессор эффектов никогда не будет перегружен пользовательским интерфейсом. Вы не хотите поворачивать виртуальную ручку на сенсорном экране, а графическая загрузка для рисования изображения приводит к искажению звука или превращению в неприятный скулящий звук. В основном процессор эффектов критичен в реальном времени. Вы не хотите выбирать струну на гитаре, и через три секунды звук выходит из усилителя, потому что процессор также рисует анимированный фон на сенсорной панели. Эта обработка должна быть жесткой, быстрой и детерминированной, каждый if-then-else в коде должен быть учтен и сбалансирован. Если вы допускаете одновременное использование нескольких эффектов, ваш процессор должен иметь пропускную способность для обработки всех эффектов без заметной задержки, в противном случае, если нужно выбрать только один эффект за раз, процессор должен быть выбран для обработки одного эффекта с худшее вычислительное усилие. Худшее, что может случиться, - это то, что входная задержка на выходе изменяется из-за того, что делает обработка графического интерфейса, из-за чего музыка звучит ужасно.

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

Теперь там, где это становится интересным. Вы можете получить готовую встроенную Linux-систему, например, или встроенный Android, или что-то еще, написать свое приложение, которое использует последовательный протокол, при необходимости это будет клей, болт, лента, пресс-форма и т. Д. Эта система пользовательского интерфейса поверх, рядом с модуль процессора эффектов. Обратите внимание, что у вас могут быть все предложенные платформы, версия для Android, версия для Linux (без Android), версия для Mac, версия для Windows, версия для DOS, версия для qnx, версия для amiga. Вы можете попробовать 100 различных вариантов пользовательского интерфейса в одной и той же ОС, возможно, я хочу, чтобы регуляторы были ползунками, или кнопками вверх / вниз, или предметом, выглядящим как циферблат, который я использую касанием двумя пальцами для поворота, или какой-то другой мультитач жест.

И это становится лучше, вместо или в дополнение к серийному вы можете использовать модуль Bluetooth. Ваш пользовательский интерфейс может быть приложением для iPhone, Android-телефоном, ноутбуком Linux или Windows-приложением. или ваш настольный компьютер и т. д. Все это (относительно) простые платформы для написания графических пользовательских интерфейсов для выбора вещей.

Другим подходом, конечно, может быть Ethernet, в частности беспроводной Ethernet, тогда ваш пользовательский интерфейс может быть веб-страницей, и большая часть работы над пользовательским интерфейсом уже выполнена firefox, chrome или другой командой. (Беспроводная сеть Ethernet, bluetoot, zigbee или другие позволяют процессору эффектов находиться где-то в удобном месте и не должны находиться в пределах досягаемости руки / ноги).

...

Занимайтесь своей системной инженерией. Разбейте проблему на несколько больших модулей, определите интерфейсы между модулями, а затем позаботьтесь о проектировании системы, если это необходимо, внутри этих модулей, пока не получите легко усваиваемые фрагменты. Чем лучше системная инженерия и чем лучше определены интерфейсы между модулями, тем легче будет реализовать проект.

...

Я бы также исследовал процессоры xcore в xmos, у них есть очень хороший симулятор с выходным сигналом vcd, который вы также можете использовать для точного профилирования обработки ваших эффектов. Лично мне было бы очень тяжело не выбирать эту платформу для этого проекта.

Вы также должны исследовать omap из ti, это то, что находится на бигборде. Вы получаете хорошую руку, на которой уже есть linux и другие вещи, портированные и работающие на нем, но вы также получаете блок dsp, этот блок dsp может выполнять обработку ваших эффектов и, вероятно, таким образом, чтобы эти два не мешали. Вы теряете возможность физически разделять процессор пользовательского интерфейса и процессор эффектов, но получаете выгоду в другом месте и, вероятно, можете использовать встроенную доску для готовой разработки прототипа (используя аналоговый аудиовход и выход). Мне действительно больше понравился hawkboard (с hawkboard вы получаете готовую к использованию систему из коробки, с beagleboard вы тратите еще одну beagleboards за деньги на вещи, которые должны были быть на доске), но в последний раз я увидел, что у них был недостаток нестабильности с дизайном печатной платы.

Я не разбираюсь в спецификациях, но Tegra (ряд будущих телефонов на основе Tegra или будет основываться на Tegra), как и Omap, должна дать некоторую параллельную обработку с наклоном к аудио / видео, а также к графическому интерфейсу. Вам нужно только аудио и графический интерфейс (легче два из трех). Я думаю, что в продаже есть платформа для разработки с сенсорным экраном и популярными встроенными ОС.

Если вы пытаетесь сэкономить, купите себе одну из этих вещей. Остановись сейчас и иди в магазин и купи один. Доморощенный будет стоить намного дороже, даже если все дизайнерские вещи бесплатны. Аппаратные средства и расплавленные гитары и гитарные усилители - нет. Я говорю по своему опыту, много раз я тратил многие тысячи долларов на проекты, связанные с домашним пивом, чтобы избежать покупки какого-то готового продукта за 300 долларов. Я очень многому научился, и лично его создание веселее, чем его использование, я обычно откладываю его на полку, как только оно наконец заработает. YMMV

Если я неправильно понял ваш вопрос, пожалуйста, дайте мне знать, и я отредактирую / удалим / заменим все это другим (коротким) ответом.

1 голос
/ 18 июля 2011

Фактически это зависит от того, какое оборудование вы хотите запустить и с каким интерфейсом (как следствие, сколько вы будете работать на уровне драйвера ... или нет).Проблема с android остается такой же, как и с голым linux.Может быть даже хуже, если нет библиотеки уровня платформы (Java), поскольку вам придется управлять частью C (с помощью JNI) и частью Java.

Работать со спецификациями ... тогда вы сделаете правильный выбор...

Напоминание: Android основан на Linux.

1 голос
/ 18 июля 2011

Go для Android:

  • С любой другой встроенной ОС у вас будет слишком много работы по интеграции.
  • Вы можете начать с покупки готового оборудования (Galaxy Tab, телефон HTC и т. Д.), Чтобы начать разработку и быстро получить прототип
...