4.41M

этап 3. подключение датчиков

1.

Работа с Introsat
Этап 3
Подключение датчиков
Подключение
датчиков
Инициализация гироскопа
Инициализация
датчиков освещения
По завершению третьего этапа мы подключим пять датчиков к
материнской плате
Задание на
ветвление

2.

Контакты, с которыми мы будем работать

3.

Датчик – это устройство,
воспринимающее
внешние воздействия и
реагирующее на них
изменением
электрических сигналов.
Физические явления:
тепло, холод, давление и
другие -> электрические
сигналы.

4.

Фоторезистор – прибор изменяющий проводимость
(сопротивление) в зависимости от количества света,
падающего на его поверхность. Чем
интенсивнее освещённость чувствительной области, тем
меньше сопротивление.

5.

Принцип работы
Фоторел
е

6.

Передача сигнала с датчика
Аналоговым является сигнал, непрерывно
изменяющийся во времени и имеющий определённое
значение в каждый бесконечно малый момент времени.
Вся информация, идущая от окружающего мира,
является аналоговой: звук, свет и пр.
Цифровой сигнал имеет два значения - минимальное и
максимальное. В случае работы с Arduino - это значение
HIGH, соответствующее 5 В, и LOW, соответствующее 0 В.

7.

Различие аналоговых и цифровых сигналов
Аналоговый сигнал от
датчика
Цифровой сигнал от датчика
время между импульсами
- передаваемое
значение выше

8.

Оцифровка сигнала
значение измеренной величины
непрерывная функция
0
∆t
дискретная функция
∆t
t (время)
Широтно-импульсная модуляция (ШИМ)
t (время)

9.

Линия SCL является линией
тактирования и отвечает за
синхронизацию устройств между
собой по частоте работы.
Линия SDA является линией данных
и отвечает за их прием и передачу.

10.

Каждое устройство, подключенное к шине I2C имеет свой адрес.
Обычно данный адрес задается производителем устройства и
указывается в datasheet устройства.

11.

Датчик положения (motion sensor)
Вставляется в гнездо Sensor на материнской плате.
1. Подключение нужной библиотеки
2. Создание объекта
Для библиотеки Gyroscope
Для библиотеки GyroscopeV2
Gyroscope gyro = Gyroscope(Wire, address);
GyroscopeV2 gyro = GyroscopeV2(Wire, address);
1. Инициализация датчика и необходимых интерфейсов (UART, I2C)
2. Использование функций библиотеки для снятия показаний с датчика
3. Вывод показаний в UART

12.

Адрес датчика положения

13.

Методы библиотеки для датчика положения
Init() - инициализация настроек гироскопа по умолчанию.
gyro.Init();
int16_t RawX() - получение сырых данных из гироскопа по оси x. Данные не преобразуются.
int16_t RawY() - получение сырых данных из гироскопа по оси y. Данные не преобразуются.
int16_t RawZ() - получение сырых данных из гироскопа по оси z. Данные не преобразуются.
float X() - получение данных из гироскопа по оси x в град/с.
int16_t x = gyro.RawX();
int16_t y = gyro.RawY();
int16_t z = gyro.RawZ();
float x = gyro.X();
float Y() - получение данных из гироскопа по оси y в град/с.
float y = gyro.Y();
float Z() - получение данных из гироскопа по оси z в град/с.
float z = gyro.Z();

14.

Код для считывания угловой скорости
Какого участка кода не
хватает в части loop(), чтобы
жизнь не усложнялась?

15.

Подключим датчик освещенности к Introsat
Датчик освещенности

16.

Датчик освещённости позволяет измерять силу светового потока, который
падает на него. Чувствительным элементом датчика является фотоэлемент –
свет, попадая на него, преобразуется в электрический заряд.
В качестве чувствительного элемента
выступает фототранзистор TEMT7000X01
(на плате обозначен как Q1).
Выходным результатом работы датчика - сигнал ШИМ;
Чем больше значение силы светового потока, падающего на датчик, тем короче конфигурируемый
импульс. Длительность импульсов - выходная информация датчика, диапазон 0-1800 [мс].

17.

Фоторезистор подключён к АЦП
микроконтроллера по следующей схеме:
Разрядность АЦП микроконтроллера - 12 бит. Считанное с вывода
PHOTO_SENSOR напряжение передаётся по шине I2C, одно
показание представляет собой 2 байта данных. По полученным
данным можно определить коллекторный ток фототранзистора и
узнать облучённость (мВт/см2) из datasheet на фототранзистор.
Зависимость облучённости от
коллекторного тока для
фототранзистора
TEMT7000X01

18.

Подключение датчика к материнской плате
осуществляется через разъём I2C с помощью
шлейфа. При подсоединении шлейфа важно
следить, чтобы выступ на разъёме шлейфа
входил в отверстие на плате рядом с
ответным разъёмом (или в жёлоб на
ответном разъёме).
Также подключение может осуществляться проводами через разъём PLS:
Распиновка PLS разъёма датчика освещённости,
сверху - край платы

19.

Для датчиков определены адреса 0х50, 0х51, 0х52 и 0х53.

20.

Определите датчикам разные адреса, проверьте, чтобы не было
датчиков с двумя одинаковыми адресами и подключите их
короткими кабелями с разъемами micromatch, чтоб первый датчик
был подключен ко второму и тд. Запустите сканер I2C, чтобы
проверить работу датчиков

21.

Подключим необходимые библиотеки.
Зададим I2C-адреса датчиков.

22.

Подключим пространство имен и создадим объекты для датчиков
освещенности.
Попробуйте далее самостоятельно реализовать код, используя
метод для считывания данных GetLight(), которая возвращает
данные типа float.
Не забудьте инициализировать необходимые устройства и
интерфейсы.

23.

Условное ветвление
if (condition #1)
{
// выполнение команд
// при выполнении условия condition #1
}
else if (condition #2)
{
// выполнение команд
// при выполнении условия condition #2
}
else
{
// выполнение команд в случае,
// когда все проверяемые условия ложны
}

24.

Задание
Используя условное ветвление и
конструкцию if, напишите прошивку,
которая будет возвращать номер датчика,
на который будет направлен источник света
English     Русский Rules