Датчики — органы чувств машины
👁️ SENSE → 🧠 THINK → 💪 ACT
┌──────┐
│ ??? │ ← Сегодня изучаем это!
└──────┘
Без датчиков робот слепой и глухой.
| Человек | Робот |
|---|---|
| 👀 Глаза | 📷 Камера |
| Сетчатка → мозг | Матрица → процессор |
Что видит робот: пиксели (миллионы точек с цветом)
| Человек | Робот |
|---|---|
| 👂 Уши | 🎤 Микрофон |
| Барабанная перепонка | Мембрана с катушкой |
Что слышит робот: волны давления воздуха → числа
| Человек | Робот |
|---|---|
| ✋ Кожа | 🔘 Кнопки, тензодатчики |
| Нервные окончания | Замыкание контакта |
Что чувствует робот: нажато / не нажато, сила нажатия
Роботы могут чувствовать то, что мы — нет!
Что делает: Измеряет расстояние до препятствия
Как работает:
1. Посылает ультразвук (писк, как у летучей мыши)
2. Звук отражается от стены
3. Датчик ловит эхо
4. Считает время → расстояние
Дальность: 2 см — 4 м
Датчик Стена
┌──────┐ │
│ ))) ─┼────── звук ────────►│
│ │ │
│ ((( ◄┼────── эхо ◄─────────│
└──────┘ │
Расстояние = (время × скорость_звука) / 2
Что делает: Измеряет температуру и влажность
Характеристики:
Применение: Метеостанции, теплицы, умный дом
Что делает: Видит чёрную линию на белом фоне
Как работает:
💡 Светодиод светит вниз
↓
═════════════ ← Белое отражает свет
───────────── ← Чёрное поглощает свет
↑
👁️ Фотодиод ловит отражение
Применение: Роботы-линейщики!
Что делает: Определяет нажатие
Состояния:
Не нажата: цепь разомкнута → 0
Нажата: цепь замкнута → 1
Применение: Пульты, концевики («доехал до стены»)
Что делает: Чувствует наклон и вращение
Внутри два датчика:
Применение: Дроны, балансирующие роботы, телефоны
Датчик выдаёт напряжение от 0 до 5 вольт.
Темно ──────────────────────► Светло
0V 2.5V 5V
Примеры: фоторезистор, потенциометр, аналоговый датчик газа
Датчик выдаёт только 0 или 1.
Не нажата: 0 (LOW)
Нажата: 1 (HIGH)
Примеры: кнопка, ИК-датчик линии, датчик касания
Датчик отправляет данные по проводам.
Датчик: "Температура=25, Влажность=60"
Протоколы: I2C, SPI, UART
Примеры: DHT11, IMU, дисплеи
// Пины
const int TRIG = 9;
const int ECHO = 10;
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
Serial.begin(9600);
}
void loop() {
// Посылаем ультразвук
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// Ловим эхо
long duration = pulseIn(ECHO, HIGH);
// Считаем расстояние (см)
int distance = duration / 58;
Serial.println(distance);
delay(100);
}
Нажми кнопку → Открой симулятор → Измени расстояние!
Какой датчик поможет роботу не упасть со стола?
A) Датчик температуры
B) Ультразвуковой дальномер
C) Микрофон
B) Ультразвуковой дальномер!
Направляем его вниз — если расстояние резко увеличилось, значит край стола!
Аналоговый датчик выдаёт:
A) Только 0 или 1
B) Напряжение от 0 до 5V
C) Текстовое сообщение
B) Напряжение от 0 до 5V
Это позволяет измерять градации (тёмно, полутемно, светло).
| Датчик | Тип | Что измеряет | Пины |
|---|---|---|---|
| HC-SR04 | Цифровой | Расстояние | TRIG, ECHO |
| DHT11 | Цифровой (протокол) | Температура, влажность | DATA |
| ИК-датчик линии | Цифровой | Чёрное/белое | OUT |
| Фоторезистор | Аналоговый | Освещённость | A0 |
| Кнопка | Цифровой | Нажатие | D2 |
| MPU6050 | I2C | Наклон, вращение | SDA, SCL |
Узнаем, как робот двигается!