servo sg90 Подключение серво и управление с телефона

servo sg90 Подключение серво и управление с телефона

Сегодня мы рассмотрим как управлять сервоприводом, или как его многие называют сервомотором или серводвигателем. Я тоже в видео буду называть их по разному, но надо иметь ввиду, что это одно и тоже. Подключать будем такой распространённый сервомотор SG90.
Для каких-нибудь серьёзных разработок он конечно не подойдёт, а так, поиграться в самый раз.
Давайте посмотрим что мы получим на выходе.

Управление мотором происходит с помощью этого ползунка с экрана монитора или телефона.
Это немного изменённый код из видео про управление яркостью светодиода. Посмотреть его можно вот по этой ссылке. Здесь я не буду повторяться, а расскажу только то что было изменено и только то что касается сервомотора. Если, что вам будет не понятно то смотрите это видео.

Для начала надо просто подключить сервомотором и попробовать поуправлять им. Для этого загружаем скетч из библиотеки SERVO или мой скетч из архива. Ссылка на архив как всегда будет в описании. Библиотеку устанавливать не надо. Так как она идёт в стандартной установке ARDUINO IDE.

Скетч прокомментирован и думаю, что здесь всё понятно. Сначала серво устанавливается по центру, то есть в 90 градусов. Затем через каждые 3 секунды изменяется положение на 45 градусов. Дойдя до конца, до 180 градусов, снова устанавливается в положение ноль и всё начинается сначала.

Я с помощью транспортира нарисовал метки на которых должен будет останавливаться сервомотор. Но то ли мне попались плохие сервы, или они все такие, не знаю, но из 5 штук которые были в наличии у меня ни одна не показала правильные результаты. 0 и 180 градусов это чудо техники не может показать даже если перемещать его руками, да и средние значения он указывает так себе. Может вам повезёт и у вас более качественно собранные сервы. Так что смотрим, что бы у нас просто работал мотор – это показывает что он правильно подключен и можно приступать к следующему этапу.

Здесь мы задаём цикл от 0 до 180 градусов с шагом в 1 градус и паузой в 15 миллисекунд для того чтобы он успел переместиться в новое положение. Так как серво не будет ждать успеет ли переместиться в заданное положение, а начнёт выполнять новую команду. Поэтому надо обязательно дать время на выполнение предыдущей команды.
Дойдя до крайнего положения, мотор, после паузы в 3 секунды начнёт обратных ход.

Давайте посмотрим как это работает. Видим, что серво плавно, без рывков двигается от 0 до 180 градусов. Потом подождав, возвращается на место. Если у вас движение происходит рывками, то это значит у вас не хватает питания и надо подключить отдельное питание на 5 вольт.
У меня есть ещё одно видео, где я подробно рассматриваю два типа серв. Один - это сервы с движением от 0 до 180 градусов, а второй это сервомоторы непрерывного движение. Посмотреть можно здесь.

Изменять скорость движения можно двумя способами.
Первый это уменьшением паузы, а второй – это увеличением количество шагов пройденных за одну итерацию цикла. Увеличим скорость в 10 раз. Датчик стал двигаться быстрее- это сразу стало заметно.
Это происходит потому, что теперь мотор проходит не 180 шагов, а всего лишь 18 и соответственно пауз осталось тоже 18. За счёт этого и происходит увеличение скорости. И положение конечных точек осталось на месте. Всё так же 0 и 180. В следующем примере объясню о чём это я.

Теперь сделаем шаги с интервалом в 50.
Теперь мотор сделает всего лишь 3 шага. Это 0, 50, 100 и  150 в одну сторону.
И 180, 130, 80 и 30 в другую. И как я говорил количество пауз тоже уменьшилось. А ещё теперь мотор не может дойти до своих крайних точек.

Теперь мы знаем, что наш сервомотор работает, и подключен правильно. Можно переходить к управлению через WIFI.

Для этого загрузим второй скетч из архива. Как я уже говорил это почти полная копия скетча из урока про управления яркостью светодиодом. Поэтому я не буду объяснять про то что надо установить библиотеки и как настроить сеть. Куда ввести имя сети и пароль. Если не знаете о чём я, то посмотрите то видео.

Теперь как и обещал подписчикам вкратце расскажу как вывести на страницу слайдер, заголовок и цвет фона.
Здесь мы устанавливаем поддержку русской кодировки.

  •  Title – отвечает за заголовок страницы.
  • Устанавливаем шрифт Arial и выравниваем по центру страницы.
  • Размер заголовка делаем вот таким, размер, жирность и цвет цифр-значений вот таким.
  • В body устанавливаем ширину и цвет фона.
  • Здесь различные настройки для слайдера. Отступы, ширина, высота, цвет фона. Для FIREFOX сделаны отдельные настройки.

Это заголовок 2 уровня.
Эта строка отвечает за отправку значений из слайдера. Оно как и практически всё в Ардуино в диапазоне от 0 до 1023.
Про javascript я рассказывать не буду – это довольно сложно. Скажу только, что эта строчка отвечает за вывод значения на экран. Так как сюда нельзя вставить функцию map, мне пришлось сделать деление на 5.68. Получил я эту цифру разделив 1023 на 180. А это get запрос в  который передаётся значение от слайдера и всё это отправляется на сервер.

В setup нам нужно только установить скорость, указать к какому контакту подключена серва и передать в get значение от 0 до 180. Вот здесь мы воспользуемся стандартной Ардуиновской функцией map.
Вот и все настройки. Теперь снова посмотрим как это работает. Уже зная и умея создавать такие сложные страницы.

Если вам интересна эта тема, то я могу снять ещё много видео про сервомоторы и не только.
Объём вашего интереса, я буду оценивать по количеству лайков и комментариев. Чем их будет больше, тем быстрее выйдет новое видео.
Ну, а если вам нравятся мои уроки, то ставьте лайк и делитесь моими видео с другими. Это очень поможет мне в продвижении канала, а меня будет стимулировать выпускать уроки чаще и интереснее.
Вы видите ссылки на видео, которые, я думаю будут вам интересны. Перейдя на любое из этих видео вы узнаете что-то новое, а ещё поможете мне.
Спасибо.
А пока на этом всё. До встречи в новых видео.  И ещё раз спасибо за то, что досмотрели до конца.
Пока!!!