Введение
Основной целью на данном этапе было получение данных с MEMS гироскопа, подключенного к макетной плате по I2C шине. В этой статье мне хотелось бы рассказать, что получилось. Кому интересно прошу под кат(осторожно трафик).
Что для этого потребовалось приобрести
- Макетная плата STM32L-DISCOVERY

Почему же выбор пал именно на неё? Потому что в ней было соотношение довольно таки оптимальное цены и её возможностей из доступных на тот момент времени.
- MEMS гироскоп L3G4200D

Среди трех осевых гироскопов особо выбора не было поэтому взяли этот, так как суть заключалась пока просто изучить что и как работает, этого вполне было достаточно.
- Пара конденсаторов и резисторов
Что для этого пришлось сделать
- Разработать плату для MEMS гироскопа

Для подключения гироскопа требовалось сделать печатную плату для подключения по шине I2C согласно Datasheet'у.
- Изготовить её (сразу две на всякий случай)

- Припаять MEMS гироскоп в печке

- Припаять конденсаторы, резистор и шлейф

- На этом этапе вспомнилось, что для I2C требуется подтягивающие резисторы на питание, пришлось пренебречь эстетическим видом :( получилось вот так:

- Осталось подключить к макетной плате питание и I2C шлейф

Что для этого пришлось программно реализовать
- Получение данных с гироскопа по прерыванию на макетную плату по шине I2C, для этого потребовалось использовать библиотеку «Stm32 peripheral library»
- Передача данных на компьютер: макетная плата определяется как HID устройство и предоставляет компьютеру сформированный пакет данных с гироскопа, для этого была использована библиотека «STM32L1xx USB full-speed device library»
- Получение данных на компьютере с HID устройства, на ПК приложение писалось на C# и требовалась библиотека которая бы помогла общаться с HID устройством, в этом нам помог GNU проект «USB Generic HID Communications 2_0_0_0»
Что в итоге получилось
- В одном случае было реализовано интегрирование данных с гироскопа прямо на контроллере макетной платы и дальнейшая передача на компьютер уже значений углов, ниже пример видео:
- На самом деле, данные с гироскопа сильно зашумлены и требуют основательной математической обработки.
- Сейчас для более подробного анализа на компьютер принимаются сырые данные с гироскопа, вот как они выглядят:



