====== Драйвер сервоприводов 4tronix servo:bit: инструкция, примеры использования и документация ======
Используйте драйвер сервомоторов [[amp>product/microbit-servobit?utm_source=man&utm_campaign=microbit-servobit&utm_medium=wiki|servo:bit]] для управления до 16 сервомашинками одновременно, на базе которых вы можете создавать гексаподов, роботов манипуляторов и других ботов.
{{ :products:microbit-servobit:microbit-servobit.7.jpg?nolink |}}
Драйвер сервомоторов servo:bit выполнен специально для контроллеров [[amp>collection/microbit?utm_source=man&utm_campaign=mmicrobit-servobit&utm_medium=wiki|BBC micro:bit]].
===== Подключение и настройка =====
Для старта необходимо [[#аппаратная_часть|подключить железо]] и [[#программная_часть|выполнить программную настройку]].
==== Аппаратная часть ====
Драйвер сервомоторов подключается к платформе micro:bit через фирменный краевой разъём.
Используйте любой источник питания, главное что бы силовое напряжение вписывалось в диапазон от 5 до 6 вольт. Соответственно сервомоторы подбирайте с таким же номинальным напряжением от 5 до 6 вольт. Мы рассмотрим подключение одного сервопривода, но вам доступны к коммуникации одновременно 16 моторов.
=== Что понадобится ===
* 1× [[amp>collection/microbit?utm_source=man&utm_campaign=microbit-servobitt&utm_medium=wiki|Платформа BBC micro:bit]]
* 1× [[amp>product/microbit-servobit?utm_source=man&utm_campaign=microbit-servobit&utm_medium=wiki|Драйвер сервомоторов servo:bit]]
* 1× [[amp>product/servo-fs90?utm_source=man&utm_campaign=microbit-servobit&utm_medium=wiki|Сервопривод FS90]]
* 4× [[amp>product/battery-aa-duracell?utm_source=man&utm_campaign=microbit-drivebit&utm_medium=wiki|Элемент питания AA]]
* 1× [[amp>product/battery-holder-3x2-aa?utm_source=man&utm_campaign=microbit-servobit&utm_medium=wiki|Батарейный отсек 1×4 AA]]
* 1× [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=:microbit-servobit&utm_medium=wiki|Кабель USB (A — Micro USB)]]
=== Как собрать ===
- Установите платформу micro:bit в гнездо под краевой разъём на плате servo:bit.{{ :products:microbit-servobit:microbit-servobit-hardware.1.png?nolink |}}
- Подключите к плате servo:bit сервопривод к контакту ''4''.{{ :products:microbit-servobit:microbit-servobit-hardware.2.png?nolink |}}
- Установите четыре элемента питания AA в батарейный отсек и подключите в силовой клеммник на плате.{{ :products:microbit-servobit:microbit-servobit-hardware.3.png?nolink |}}
- Включите драйвер сервомоторов, для этого переключите тумблер питания в режим ''ON''.{{ :products:microbit-servobit:microbit-servobit-hardware.4.gif?nolink |}}
- Подключите micro:bit к компьютеру по USB.{{ :products:microbit-servobit:microbit-servobit-hardware.5.png?nolink |}}
==== Программная часть ====
- [[products:bbc-microbit-v2|Запустите BBC micro:bit]].
- [[https://makecode.microbit.org/|Откройте облачную среду программирования MakeCode]].
- Создайте новый проект.{{ :products:microbit-servobit:microbit-servobit-software.1.gif?nolink |}}
- Установите дополнительное программное обеспечение для miniBit:\\
Окно компонентов
Расширенные
Добавить расширение
и вбейте в поиск строку ServoBit. Далее жмите по иконке найденного расширения для установки модуля. После установки в окне компонентов вы увидите иконку ServoBit.{{ :products:microbit-servobit:microbit-servobit-software.2.gif?nolink |}}
- В установленном ПО для драйвера сервомоторов вы найдёте блоки для управления сервоприводами и индикаторного адресного светодиода.{{ :products:microbit-servobit:microbit-servobit-software.3.gif?nolink |}}
На этом этапе servo:bit настроен на работу с системой micro:bit и можно смело переходить к [[#примеры_работы|примерам работы]].
===== Примеры работы =====
Рассмотрим несколько примеров по работе с драйвером сервоприводов servo:bit. Каждый пример сопровождается инструкцией по визуальному программированию в среде MakeCode, а затем кодом на JavaScript и Python.
Для старта [[#подключение_и_настройка|подключите железо и выполните программную настройку]].
==== Проверка светодиода ====
Для начала проведем тест на светодиодную индикацию, заставим пользовательский светодиод ''Status'' по очереди зажигаться красным, зелёным, синим и белым цветом.
=== Пример для визуального программирования ===
- Соберите схему из визуальных блоков.{{ :products:microbit-servobit:microbit-servobit-examples-blink-blocks.1.png?nolink |}}
- Нажмите на иконку со значком USB для загрузки программы в плату micro:bit.{{ :products:microbit-servobit:microbit-servobit-examples-blink-blocks.2.png?nolink |}}
- После прошивки micro:bit, адресный светодиод WS2812B на плате servo:bit будет по очереди мигать красным, зелёным, синим и белым цветом.{{ :products:microbit-servobit:microbit-servobit-examples-blink.gif?nolink |}}
=== Пример для JavaScript ===
- Переключите визуальный режим MakeCode на текстовый редактор JavaScript.{{ :products:microbit-servobit:microbit-servobit-examples-blink-javascript.1.gif?nolink |}}
- Прошейте платформу кодом приведённым ниже.
basic.forever(function () {
ServoBit.setLedColor(0xFF0000)
basic.pause(1000)
ServoBit.setLedColor(0x18E600)
basic.pause(1000)
ServoBit.setLedColor(0x0080FF)
basic.pause(1000)
ServoBit.setLedColor(0xFFFFFF)
basic.pause(1000)
})
- После прошивки micro:bit, адресный светодиод WS2812B на плате servo:bit будет по очереди мигать красным, зелёным, синим и белым цветом.{{ :products:microbit-servobit:microbit-servobit-examples-blink.gif?nolink |}}
=== Пример для Python ===
- Переключите визуальный режим MakeCode на текстовый редактор Python.{{ :products:microbit-servobit:microbit-servobit-examples-blink-python.1.gif?nolink |}}
- Прошейте платформу кодом приведённым ниже.
def on_forever():
ServoBit.set_led_color(0xFF0000)
basic.pause(1000)
ServoBit.set_led_color(0x18E600)
basic.pause(1000)
ServoBit.set_led_color(0x0080FF)
basic.pause(1000)
ServoBit.set_led_color(0xFFFFFF)
basic.pause(1000)
basic.forever(on_forever)
- После прошивки micro:bit, адресный светодиод WS2812B на плате servo:bit будет по очереди мигать красным, зелёным, синим и белым цветом.{{ :products:microbit-servobit:microbit-servobit-examples-blink.gif?nolink |}}
==== Запуск одного сервопривода ====
А теперь заставим вал сервопривода медленно повернуться на угол 60 градусов, а затем на угол −60 градусов и так по кругу.
=== Пример для визуального программирования ===
- Соберите схему из визуальных блоков.{{ :products:microbit-servobit:microbit-servobit-examples-single-servo-blocks.1.png?nolink |}}
- Нажмите на иконку со значком USB для загрузки программы в плату micro:bit.{{ :products:microbit-servobit:microbit-servobit-examples-single-servo-blocks.2.png?nolink |}}
- После прошивки micro:bit, вал сервопривода начнет медленно поворачиваться на угол 60 градусов, а затем на угол −60 градусов и так по кругу.
=== Пример для JavaScript ===
- Переключите визуальный режим MakeCode на текстовый редактор JavaScript.{{ :products:microbit-servobit:microbit-servobit-examples-single-servo-javascript.1.gif?nolink |}}
- Прошейте платформу кодом приведённым ниже.
ServoBit.centreServos()
basic.forever(function () {
ServoBit.moveServo(4, -60, 60)
ServoBit.waitServo(4)
basic.pause(100)
ServoBit.moveServo(4, 60, 60)
ServoBit.waitServo(4)
basic.pause(100)
})
- После прошивки micro:bit, вал сервопривода начнет медленно поворачиваться на угол 60 градусов, а затем на угол −60 градусов и так по кругу.
=== Пример для Python ===
- Переключите визуальный режим MakeCode на текстовый редактор Python.{{ :products:microbit-servobit:microbit-servobit-examples-single-servo-python.1.gif?nolink |}}
- Прошейте платформу кодом приведённым ниже.
ServoBit.centre_servos()
def on_forever():
ServoBit.move_servo(4, -60, 60)
ServoBit.wait_servo(4)
basic.pause(100)
ServoBit.move_servo(4, 60, 60)
ServoBit.wait_servo(4)
basic.pause(100)
basic.forever(on_forever)
- После прошивки micro:bit, вал сервопривода начнет медленно поворачиваться на угол 60 градусов, а затем на угол −60 градусов и так по кругу.
===== Элементы платы =====
{{ :products:microbit-servobit:microbit-servobit-annotation.png?nolink |}}
==== Драйвер сервомоторов PCA9685 ====
Плата servo:bit выполнена на микросхеме {{ :products:microbit-servobit:pca9685-datasheet.pdf |PCA9685}}, который принимает команды по I²C интерфейсу от платы BBC micro:bit и может управлять до 16 сервоприводами в одно время.
==== Разъём подключения силового питания ====
Для подключения силового питания сервомоторов используйте клеммник под винт. В клемму с шелком ''+'' подключайте положительный провод питания, а в клемму ''−'' — отрицательный провод или землю. Рекомендуемое входное напряжение от 5 до 6 вольт. Клеммник питания продублирован штыревыми соединителями «папа».
Контакты клеммника и штыревых соединителей электрически соединены на плате без всяких защитных элементов. При питании платы одновременно через оба разъёма от разных источников вы рискуете спалить устройство.
==== Порт micro-USB ====
Плату servo:bit можно запитать также через порт micro-USB. Этот способ пригодится если у вас нет под рукой внешнего блока питания или сборки батареек.
Порт micro-USB предусмотрен только для питания устройство. Через него нельзя программировать BBC micro:bit и другие модули.
==== Контакты подключения сервоприводов (штыри) =====
Сервоприводы подключаются к плата servo:bit через контактные штырькиS/V/G, где:
* S — сигнал с номером от 0 до 16.
* V — питание сервомоторов. Берется от силового клеммника.
* G — земля.
Не пытайтесь подключить в контакты для сервомоторов другие модули и датчики, вы рискуете спалить устройство. Для этих целей разработана специальная плата расширения [[amp>product/microbit-breakout?utm_source=man&utm_campaign=microbit-drivebit&utm_medium=wiki|micro:bit Breakout]].
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| ON | Индикатор подачи силового питания. Горит при подключенном напряжении в [[#разъём_подключения_силового_питания|силовой клеммник]] и включенном [[#тумблер_включения|тумблере питания]], во всех остальных случаях не горит.|
| STATUS | Пользовательский адресный светодиод {{ :products:microbit-servobit:ws2812b-datasheet.pdf |WS2812B}}. Как управлять светодиодом читайте в [[#примеры_работы|примерах работы]].|
==== Контакты ввода-вывода (луженные отверстия) ====
На плате присутствуют луженные отверстия которые дублируют контакты питания и ввода вывода подключенной платформы BBC micro:bit. Для удобства коммуникации рекомендуем обратить внимания на [[amp>product/pin-headers?utm_source=man&utm_campaign=microbit-servobit&utm_medium=wiki|контактную гребенку PLS-40]], которая облегчит доступ к заветным пинам.
==== Тумблер питания ====
За подачу питания от [[#разъём_подключения_силового_питания|силового клеммника]] используйте механический переключатель на плате. Состояния модуля также дублирует информационный светодиод.
* ON — модуль включен. Светодиод горит.
* OFF — модуль отключен. Светодиод не горит.
==== Преобразователь напряжения ====
На плате расположен понижающий линейный регулятор, который преобразует напряжение с [[#разъём_подключения_силового_питания|силового клеммника]] до точных 3,3 вольт с максимальным выходным током 500 мА. А далее напряжение поступает через [[#гнездо_под_краевой_разъём_bbc_microbit|краевой разъём]] на плату BBC micro:bit. Это позволяет питать всю конструкцию от одного источника питания, т.е. только от силового клеммника без необходимости питать отдельно плату micro:bit.
==== Гнездо под краевой разъём BBC micro:bit ====
Драйвер моторов drive:bit содержит гнездо {{ :products:microbit-servobit:microbit-edge-connector-cylconn-180degree-datasheet.pdf |Edge Connector Cylconn 180 Degree}} для подключения платы BBC micro:bit через краевой разъём. Никаких проводов и тем более пайки не понадобится.
===== Габаритный чертёж =====
[[this>_media/products:microbit-servobit:microbit-servobit-dimensions.pdf|{{:products:microbit-servobit:microbit-servobit-dimensions.png}}]]
===== Характеристики =====
* Модель: 4tronix servo:bit
* Совместимость: микрокомпьютеры BBC micro:bit
* Разъём модуля: гнездо под краевой разъём micro:bit
* Индикация: RGB-светодиод WS2812
* Микросхема драйвера: PCA9685
* Количество подключаемых сервоприводов: 16
* Напряжение питания: 5–6 В (с защитой от переполюсовки)
* Рабочее напряжение сервоприводов: 5–6 В
* Ток нагрузки: до 3,2 А (по 200 мА на канал)
* Размеры: 65×30,5×11,6 мм
===== Ресурсы =====
* [[amp>product/microbit-servobit?utm_source=man&utm_campaign=microbit-servobit&utm_medium=wiki|Драйвер сервоприводов servo:bit]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/microbit-servobit.svg|Векторное изображение драйвера сервоприводов servo:bit]]
* [[https://makecode.microbit.org/|Среда программирования MakeCode]]