Занятие 9 Цифровые датчики
.docКурс «Основы робототехники». Занятие 9. Цифровые датчики
Изученные ранее датчики освещенности и температуры на основе фоторезисторов и терморезисторов являются аналоговыми – выдают уровни напряжений, зависящие от измеряемых ими параметров. Использование этих и подобных им датчиков имеет следующие неудобства:
-
необходимость калибровки и пересчета уровней напряжений в измеряемый параметр
-
при необходимости установки датчика на расстоянии от контроллера – возможны помехи в соединяющих проводах, меняющие напряжение с датчика и, соответственно, ошибки измерения
Этих недостатков лишены цифровые датчики, которые выдают измеренные величины в виде цифровых сигналов (комбинаций нулей и единиц), которые расшифровывает контроллер. Такие датчики заранее откалиброваны при изготовлении и обладают высокой помехоустойчивостью при передаче сигналов на большие расстояния.
Цифровой датчик температуры DS18B20
Используется для измерения температуры воздуха, а также различных устройств, на поверхность которых или внутрь может быть установлен (в том числе с возможностью герметизации, например, в металлической трубке). Он может измерять температуру в диапазона от -55 до +125C с точностью ±0,5C
Как и большинство датчиков, имеет три контакта: +5 В, Signal, Gnd. Сигнальный провод должен соединяться резистором 4,7 кОм с контактом +5 В (в используемом в стенде датчике с проводами такое соединение уже сделано)
Примечание: датчик подключается к контроллеру по шине OneWire, которая позволяет подсоединить до 100 датчиков на одну шину (три провода 5V, Gnd, Signal), при длине линии до 300 метров.
Практическое занятие 1. Снятие и вывод температуры
-
откройте пример работы с библиотекой опроса датчика Файл / Примеры / DallasTemperature / Simple
Примечание: для работы библиотека должна быть скопирована в папку Мои документы / Arduino / libraries (на учебных компьютерах она там уже имеется)
-
подключите датчик температуры: красный провод к 5V, черный к Gnd, белый к цифровому входу 2. Номер входа задается в строке
#define ONE_WIRE_BUS 2 |
и может быть изменен исправлением числа в конце этой строки
-
откройте Монитор порта и посмотрите измеряемую датчиком температуру. Попробуйте нагревать датчик рукой и убедитесь, что температура меняется
-
установите ЖК индикатор на Arduino и выведите на него измеряемую температуру, например, в формате
Temperature = 25,11С |
Примечание: значок выводится таким образом: lcd.print("/337");
Практическое занятие 2. Модель нагревателя для поддержания заданной температуры
Добавьте к схеме с датчиком температуры и ЖК индикатором светодиод и, используя условие if, реализуете следующий алгоритм:
если температура с датчика меньше 25 градусов – зажечь светодиод иначе – погасить светодиод |
Нагревая датчик прикосновением пальцев, убедитесь, что алгоритм выполняется
Примечание: можно подключить светодиод и DS18B20 к контактам А1…А5 шилда. В этом случае используются номера контактов: А1 = 15, А2 = 16, А3 = 17, А4 = 18, А5 = 19
Светодиод в данном случае имитирует нагреватель. Данная модель управления нагревателем является самой простой и обеспечивает низкую точность поддержания заданной температуры. В продвинутом курсе планируется изучить ПИД-регулирование, обеспечивающее более высокую точность
Цифровой ультразвуковой датчик расстояния HC-SR04
Датчик может использоваться для определения расстояния до препятствий и стен на роботах, в качестве датчика линии, например, для определения пересечения человеком дверного проема. Помимо контактов питания, имеет два сигнальных контакта – Trig (включение динамика) и Echo (снятие результата)
Датчик может измерять расстояние до препятствия, дальность работы от 3 см до 3 м (в некоторых источниках до 4,5 м), точность ±3 см
Практическое занятие 5. Измерение расстояния
-
откройте пример работы с библиотекой опроса датчика Файл / Примеры / Ultrasonic / Ultrasonic2serial
-
подключите датчик расстояния к контроллеру: красным проводом Vcc к 5V, черным (синим) GND к Gnd, еще двух цветов Trig и Echo к цифровым контактам
-
откройте Монитор порта и посмотрите измеряемое датчиком расстояние до препятствия
Практическое занятие 6. Датчик присутствия на основе HC-SR04
Можно построить датчик пересечения луча, например, направив датчик на стену и периодически измеряя расстояние до нее. Если расстояние резко уменьшилось – значит, между стеной и датчиком прошел человек.
Установите датчик так, чтобы он смотрел в стену, измерьте это расстояние и сделайте звуковую индикацию пересечения луча с использованием спикера: спикер пищит, когда расстояние стало меньше расстояния до стены-10 см, и не пищит, когда больше этого расстояния.
Практическое занятие 7. Робот, следующий за ладонью
Примечание: обязательно сохраните этот скетч, он понадобится, когда начнется изучение управления роботов-роверов
Установите на макетную плату два светодиода и подключите к контактам 3 и 5 Arduino. Данные светодиоды имитируют два мотора робота.
Напишите программу для движения робота: когда расстояние с датчика больше 30 см – ехать (зажечь оба светодиода), когда меньше 15 см – не ехать (погасить оба светодиода)
Домашнее задание
№ |
Задание |
1 |
DS18B20 и спикер. Зависимость частоты пищания от температуры, измеренной датчиком |
2 |
DS18B20 и спикер. Температура выше заданного уровня – высокая частота пищания, ниже – низкая частота |
3 |
HC-SR04 и спикер. Зависимость частоты пищания от расстояния, измеренного датчиком |
4 |
HC-SR04 и спикер. Расстояние выше заданного уровня – высокая частота пищания, ниже – низкая частота |
5 |
HC-SR04, робот. Программа обнаружения и объезда препятствий (в идеале, с демонстрацией на роботе) |
6 |
HC-SR04 и спикер. Расстояние больше заданного – высокая частота пищания, меньше – низкая частота |
7 |
HC-SR04 и два светодиода: один светодиод при увеличении расстояния горит ярче (на минимуме – не горит) второй светодиод при увеличении расстояния горит тусклее (на минимуме – максимум яркости) |
8 |
DS18B20, светодиод, ЖК экран. Вывести температуру на ЖК индикатор, если температура ниже 20 – светодиод горит ярко от 20 до 30 - горит тускло, выше 30– не горит |
9 |
HC-SR04, робот. Программа обнаружения и объезда препятствий (в идеале, с демонстрацией на роботе) |
10 |
светодиод и датчик температуры DS18B20. Вывести показания полученной с него температуры на ЖК индикатор. При температуре ниже определенного уровня (например, ниже 27 градусов) светодиод загорается и пищит спикер, а при большей температуре – потухает и замолкает |
11 |
HC-SR04 и пять светодиодов, аналоговый индикатор расстояния: менее 5 см – светодиоды не горят 5…10 см – горит один светодиод 10…15 см – горят два светодиода 15…20 см – горят три светодиода 20…25 см – горят четыре светодиода больше 25 см – горят все светодиоды |