Вопрос, который вы задаете, довольно частый и довольно сложный, с множеством различных решений. Хотя в названии упоминается только акселерометр, в теле вашего сообщения упоминается гироскоп, поэтому я предполагаю, что у вас есть оба. Кроме того, есть много шагов для получения недорогих акселерометров и гироскопов для работы, одним из которых является преобразование напряжения в измерение. Я не буду покрывать эту часть.
Прежде всего, я отвечу на ваш вопрос. Вы спросили, «подсчитав» измерения гироскопа, вы можете оценить отношение (ориентацию) устройства в углах Эйлера.
Короткий ответ: Да, вы могли бы суммировать масштабные измерения гироскопа, чтобы получить очень шумную оценку вращения устройства (фактические радианы повернуты, а не отношение), однако он не сработает, как только вы повернете более одной оси. Этого недостаточно для большинства приложений.
Я предоставлю вам некоторые общие рекомендации, конкретные знания и некоторые примеры кода, которые я использовал раньше.
Во-первых, вы не должны пытаться решить эту проблему, написав программу и протестировав с помощью ИДУ. Вы должны начать с написания симуляции с использованием проверенных библиотек, затем проверить свой алгоритм/программу и только затем попытаться реализовать ее с помощью ИДУ.
Во-вторых, вы говорите, что вы хотите «счетчик крена, тангажа и рыскания от полного диапазона (0-360 градусов)». Исходя из этого, я предполагаю, что вы хотите, чтобы вы могли определить углы Эйлера, которые представляют отношение устройства относительно внешнего стационарного кадра North-East-Down (NED). Ваше заявление заставляет меня думать, что вы не знакомы с представлениями об отношении, потому что, насколько я знаю, в диапазоне 0-360 нет угловых представлений Эйлера со всеми 3-мя углами.
Приложение, для которого вы хотите использовать отношение устройства, будет иметь важное значение. Если вы используете Euler Angles, вы не сможете точно отслеживать отношение устройства, когда большие (более чем на 50 градусов) вращения выполняются на осях рулона или шага, из-за того, что известно как Gimbal Lock. Если вам требуется отслеживание таких движений, вам нужно будет использовать представление отношения кватерниона или направления косинусной матрицы (DCM).
В-третьих,, как вы сказали, что вы можете использовать бесплатный фильтр или фильтр Калмана вариант (Extended фильтр Калмана Error-State фильтр Калмана Косвенное фильтр Калмана), чтобы точно отслеживать отношение устройства путем слияния данных из акселерометр, гироскоп и магнитометр. Я предлагаю бесплатный фильтр, описанный Madgwick, который реализован в C, C# и MATLAB here. Вариант фильтра Kalman необходим, если вы хотите отслеживать положение устройства и иметь дополнительный датчик, такой как GPS.
Для некоторых примеров кода, использующего акселерометр, только для того, чтобы получить угловой шаг и рулон Эйлера, см. my answer to this other question.
Этот вопрос будет лучше подходит для http://electronics.stackexchange.com/ – Nick