Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Занятие 9 Цифровые датчики

.doc
Скачиваний:
87
Добавлен:
10.03.2016
Размер:
628.22 Кб
Скачать

Курс «Основы робототехники». Занятие 9. Цифровые датчики

Изученные ранее датчики освещенности и температуры на основе фоторезисторов и терморезисторов являются аналоговыми – выдают уровни напряжений, зависящие от измеряемых ими параметров. Использование этих и подобных им датчиков имеет следующие неудобства:

  • необходимость калибровки и пересчета уровней напряжений в измеряемый параметр

  • при необходимости установки датчика на расстоянии от контроллера – возможны помехи в соединяющих проводах, меняющие напряжение с датчика и, соответственно, ошибки измерения

Этих недостатков лишены цифровые датчики, которые выдают измеренные величины в виде цифровых сигналов (комбинаций нулей и единиц), которые расшифровывает контроллер. Такие датчики заранее откалиброваны при изготовлении и обладают высокой помехоустойчивостью при передаче сигналов на большие расстояния.

Цифровой датчик температуры DS18B20

Используется для измерения температуры воздуха, а также различных устройств, на поверхность которых или внутрь может быть установлен (в том числе с возможностью герметизации, например, в металлической трубке). Он может измерять температуру в диапазона от -55 до +125C с точностью ±0,5C

Как и большинство датчиков, имеет три контакта: +5 В, Signal, Gnd. Сигнальный провод должен соединяться резистором 4,7 кОм с контактом +5 В (в используемом в стенде датчике с проводами такое соединение уже сделано)

Примечание: датчик подключается к контроллеру по шине OneWire, которая позволяет подсоединить до 100 датчиков на одну шину (три провода 5V, Gnd, Signal), при длине линии до 300 метров.

Практическое занятие 1. Снятие и вывод температуры

  1. откройте пример работы с библиотекой опроса датчика Файл / Примеры / DallasTemperature / Simple

Примечание: для работы библиотека должна быть скопирована в папку Мои документы / Arduino / libraries (на учебных компьютерах она там уже имеется)

  1. подключите датчик температуры: красный провод к 5V, черный к Gnd, белый к цифровому входу 2. Номер входа задается в строке

#define ONE_WIRE_BUS 2

и может быть изменен исправлением числа в конце этой строки

  1. откройте Монитор порта и посмотрите измеряемую датчиком температуру. Попробуйте нагревать датчик рукой и убедитесь, что температура меняется

  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. Измерение расстояния

  1. откройте пример работы с библиотекой опроса датчика Файл / Примеры / Ultrasonic / Ultrasonic2serial

  2. подключите датчик расстояния к контроллеру: красным проводом Vcc к 5V, черным (синим) GND к Gnd, еще двух цветов Trig и Echo к цифровым контактам

  3. откройте Монитор порта и посмотрите измеряемое датчиком расстояние до препятствия

Практическое занятие 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 см – горят все светодиоды