4.03.3. Лабораторная работа №4.3.3.md
Робот-аватар
Тема работы
Мы научились считывать положение потенциометра и управлять углом сервопривода. Теперь давайте объединим эти два навыка в одном проекте! В этой лабораторной работе мы создадим простую систему, в которой вращение ручки потенциометра будет напрямую управлять углом поворота сервопривода. Это основа для создания множества удивительных устройств, от простых манипуляторов до сложных роботов-аватаров.
Цель
- Создать замкнутую систему: «вход (датчик) → обработка (микроконтроллер) → выход (исполнительный механизм)».
- Закрепить использование функций
analogRead()
иmap()
. - Понять, как подобные системы используются в реальной робототехнике.
Оборудование и материалы
- Отладочная плата
Рудирон
. - Макетная плата и модуль питания.
- Аккумуляторная батарея 9В.
- 1 сервопривод MG995.
- 1 потенциометр (10 кОм).
- Соединительные провода.
- USB-кабель для подключения
Рудирона
. - Компьютер с
Arduino IDE
.
Ход работы
-
Роботы-аватары и телеуправление
Представьте себе робота-манипулятора на опасном производстве или робота-хирурга, выполняющего сложную операцию. Как человек ими управляет? Очень часто для этого используется принцип, который мы сегодня реализуем. На суставах специального управляющего костюма, надетого на оператора, установлены датчики угла (например, потенциометры). Когда человек двигает рукой, микроконтроллер считывает изменение углов и по сети передаёт эти данные роботу. А на суставах самого робота установлены сервоприводы, которые в точности повторяют движения человека.
Такое устройство, повторяющее движения оператора, называется системой телеприсутствия или роботом-аватаром. Сервоприводы в таких системах играют роль «мышц» или суставов, а потенциометры — роль «нервных окончаний», считывающих положение.
Сегодня мы создадим миниатюрную версию такой системы.
-
Сборка схемы
Мы объединим схемы из двух предыдущих лабораторных работ.
- Подключите потенциометр:
- Крайние выводы — к
3.3V
иGND
. - Центральный вывод — к аналоговому входу
A0
.
- Крайние выводы — к
- Подключите сервопривод MG995:
- Питание (красный и коричневый провода) — к внешнему источнику 5В на макетной плате.
- Сигнальный провод (оранжевый) — к ШИМ-пину 9.
- Соедините земли! Обязательно соедините пин
GND
Рудирона
с общей шинойGND
на макетной плате.
- Подключите потенциометр:
-
Написание и загрузка кода
- Установите перемычку
PRG | RUN
в положениеPRG
. -
В
Arduino IDE
введите следующий код:#include <Servo.h> // Создаём объект для сервопривода Servo myServo; const int potPin = A0; // Пин для потенциометра void setup() { // Привязываем сервопривод к пину 9 myServo.attach(9); } void loop() { // 1. Считываем значение с потенциометра (от 0 до 4095) int potValue = analogRead(potPin); // 2. Масштабируем это значение в диапазон углов сервопривода (от 0 до 180) int angle = map(potValue, 0, 4095, 0, 180); // 3. Отправляем команду на сервопривод myServo.write(angle); // Небольшая задержка для стабильности delay(15); }
- Нажмите кнопку «Upload», чтобы загрузить код на плату.
- Установите перемычку
-
Проверка работы
Сразу после загрузки кода начните медленно вращать ручку потенциометра. Вы увидите, как вал сервопривода в точности повторяет ваши движения, поворачиваясь в соответствующий угол от 0 до 180 градусов.
Результаты
Вы создали полноценную мехатронную систему! Ваше устройство считывает аналоговый сигнал с датчика, обрабатывает его и преобразует в управляющее воздействие для исполнительного механизма. Вы своими руками собрали прототип системы телеуправления.
Анализ результатов
Сердце этой программы — всего три строки в loop()
: 1. int potValue = analogRead(potPin);
— мы получаем «сырое» цифровое значение от 0 до 4095, соответствующее положению ручки потенциометра. 2. int angle = map(potValue, 0, 4095, 0, 180);
— мы преобразуем этот широкий диапазон в более узкий диапазон углов, с которым работает наш сервопривод (0-180 градусов). 3. myServo.write(angle);
— мы отдаём команду сервоприводу повернуться на рассчитанный угол.
Эта простая цепочка действий лежит в основе огромного количества автоматизированных систем.
Выводы
В этой лабораторной работе вы объединили свои знания об АЦП и ШИМ, чтобы создать интерактивную систему управления. Вы увидели, как с помощью простых компонентов можно реализовать сложные концепции, лежащие в основе современной робототехники. Теперь вы готовы к созданию собственных роботов, манипуляторов и других удивительных проектов.
Вопросы для самопроверки
- Какую роль потенциометр играет в этой схеме? А сервопривод?
- Зачем в коде используется функция
map()
? - Что произойдёт, если сервопривод будет питаться не от внешнего источника, а от пина 5V
Рудирона
? - Как изменить код, чтобы сервопривод двигался только в диапазоне от 45 до 135 градусов?
- Подумайте, где ещё, кроме роботов-аватаров, можно использовать такую систему управления?
Вы проделали огромную работу и создали свою первую мехатронную систему! В следующей лабораторной работе мы познакомимся с ещё одним популярным устройством управления — джойстиком.
- Страницы
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home
-
imgs
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home