Сьогодні ми продовжимо працювати ще з одним датчиком, який в собі поєднує відразу два функціоналу - акселерометр і гіроскоп - LSM6DS3. Виконаний він також з використанням технології MEMS. Встановлено на платі розширення STEVAL-MKI160V1. яка в свою чергу вставляється в плату розширення X-NUCLEO-IKS01A1. призначеної для роботи з налагоджування платою Nucleo. Ми будемо підключати дану оціночну плату до плати Nucleo STM32F401RE.
Даний акселерометр-гіроскоп також поряд з інтерфейсом I2C може підключитися і з використанням інтерфейсу SPI. Але ми будемо використовувати підключення саме по I2C, так як саме таке підключення має місце в оціночної платі X-NUCLEO-IKS01A.
Також використовувати в рамках даного заняття ми даний датчик будемо тільки як гіроскоп, так як в якості акселерометра ми його вже підключали.
Даний гіроскоп в даному датчику в порівнянні з попереднім розглянутим має наступні технічні характеристики:
Чутливість 4.375 - 70 mdps / LSb (відповідно по меншому межі стала краще);
Частота вимірів 14,9 - 952 Гц.
З деякими іншими показниками, регістрами, значеннями та іншими тонкощами гіроскопа ми познайомимося в ході його програмування.
Проект ми створимо з готового проекту, в якому ми працювали з акселерометром даного датчика - з проекту Accel_LSM6DS3, тільки назвемо ми цей проект тепер відповідно Gyro_LSM6DS3.
Запустимо проект Cube MX. Змінимо ми тут тільки швидкість USART.
/ * USER CODE BEGIN 3 * /
Для універсальності проекту, так як, можливо, пізніше ми об'єднаємо роботу з акселерометром і гіроскопом в один проект, перейменуємо функцію Accel_Ini в файлі lsm6ds0.c на Accel_Gyro_Ini. Те ж саме проробимо з прототипом і з викликом даної функції в main ().
Додамо функцію ініціалізації гіроскопа за подобою функції ініціалізації акселерометра
void GyroInit (uint16_t InitStruct)