Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Руководство по подключению Pi Servo Hat

Введение

Сервошляпа SparkFun Pi позволяет вашему Raspberry Pi управлять до 16 серводвигателями через соединение I2C. Это сохраняет GPIO и позволяет использовать встроенный GPIO для других целей. Кроме того, Pi Servo Shield добавляет подключение к последовательному терминалу, которое позволит вам подключать Raspberry Pi без необходимости подключать его к монитору и клавиатуре.

Необходимые материалы

Вот что вам нужно сделать при изучении этого руководства. Мы предлагаем приобрести чистую карту microSD, а не карту с поддержкой NOOBS, поскольку карты с поддержкой NOOBS могут не иметь достаточно новой ОС для поддержки Pi Zero W.



Кроме того, вам понадобится какой-нибудь серводвигатель для проверки установки. Попробуйте сначала протестировать примеры, приведенные далее в руководстве, с помощью обычного субмикро сервопривода.


Необходимые инструменты

Для сборки этого изделия не требуются специальные инструменты. Вам понадобится паяльник, припой и общие принадлежности для пайки.


Обзор оборудования

На доске всего несколько интересных предметов, так как эта шляпа минимально сложна в использовании.

Разъем USB Micro B - Этот разъем может использоваться только для питания серводвигателей или для питания серводвигателей, а также Pi, который подключен к шляпе. Его также можно использовать для подключения к Pi через соединение через последовательный порт, чтобы избежать необходимости использовать монитор и клавиатуру для настройки Pi.

Изолирующая перемычка источника питания - Эту перемычку можно снять (по умолчанию она замкнута), чтобы изолировать шину питания сервопривода от шины питания Pi 5V. Почему вы хотите это сделать? Если есть несколько сервоприводов или большие сервоприводы с большой нагрузкой на них, шум, создаваемый серводвигателями на шине питания, может вызвать нежелательную работу Pi, вплоть до полного сброса или выключения. Обратите внимание:пока Pi подключен к питанию, последовательный интерфейс будет работать независимо от состояния этой перемычки.

Заголовки контактов серводвигателя - Эти коллекторы разнесены, чтобы облегчить прикрепление к ним серводвигателей. Они закреплены штырями в правильном порядке для большинства разъемов серводвигателей любительского типа.

Сборка оборудования

Мы предлагаем припаять штекерные разъемы к Pi Zero W.

Мой любимый трюк в такой ситуации - припаять один штырь, затем расплавить припой на этом штыре, держа в правой руке утюг, и левой рукой отрегулировать разъем, пока он не станет ровным, как показано ниже. Убедитесь, что вы выполняете пайку более короткой стороной разъема, а более длинные контакты находятся на стороне компонентов. Прикрепив один штырь, завершите припаивание всех штырей к Pi Zero W.

Повторите шаги с женским заголовком и Pi Servo Hat.

Обязательно вставьте короткие штыри снизу платы и добавьте припой на сторону компонентов, чтобы сервоштап Pi Zero W располагался поверх штырьков штыревого разъема Pi Zero W. Вам также необходимо убедиться, что заголовок находится на одном уровне, прежде чем паять все контакты.

После того, как разъемы будут припаяны, сложите шляпу сервопривода Pi на Pi Zero W. Затем подключите сервопривод для хобби к каналу «0» в зависимости от сервопривода, который вы используете. Попробуйте взглянуть на техническое описание сервопривода для хобби или обратиться к некоторым стандартным выводам разъемов сервопривода, перечисленным в этом руководстве. Используя сетевой адаптер на 5 В, мы можем запитать Pi Zero W. Подключите сетевой адаптер к розетке для питания и подключите разъем micro-B, помеченный как порт «PWR IN» на Pi Zero W.

Программное обеспечение - Python

Здесь мы подробно рассмотрим, как получить доступ и использовать сервопривод pi в Python.

Полный пример кода доступен в репозитории продукта на GitHub.

Настройка доступа к ресурсам SMBus

Первый момент:в большинстве взаимодействий на уровне ОС I 2 Шина C упоминается как SMBus. Таким образом мы получаем первые строчки кода. Это импортирует модуль smbus, создает объект типа SMBus и подключает его к шине «1» различных SMBus Pi.
import smbus
bus =smbus.SMBus (1)

Мы должны сообщить программе адрес детали. По умолчанию это 0x40, поэтому установите значение переменной для дальнейшего использования.

 addr =0x40 

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

 bus.write_byte_data (addr, 0, 0x20) bus.write_byte_data (addr, 0xfe, 0x1e) 

Запись значений в регистры ШИМ

Это все, что необходимо сделать. С этого момента мы можем записывать данные в микросхему ШИМ и ожидать, что она ответит. Вот пример.

 bus.write_word_data (addr, 0x06, 0) bus.write_word_data (addr, 0x08, 1250) 

Первая запись производится в регистр «время начала» для канала 0. По умолчанию частота ШИМ микросхемы составляет 200 Гц, или один импульс каждые 5 мс. Регистр времени начала определяет, когда импульс достигает высокого уровня в цикле 5 мс. Все каналы синхронизируются с этим циклом. Как правило, это должно быть записано в 0. Вторая запись производится в регистр «время остановки», и он определяет, когда импульс должен стать низким. Диапазон этого значения составляет от 0 до 4095, и каждый счет представляет собой один фрагмент этого периода 5 мс (5 мс / 4095), или около 1,2 мкс. Таким образом, указанное выше значение 1250 соответствует примерно 1,5 мс высокого времени за период 5 мс.

Сервомоторы получают свой управляющий сигнал от этой ширины импульса. Вообще говоря, ширина импульса 1,5 мс дает «нейтральное» положение, находящееся на полпути между крайними значениями диапазона двигателя. 1,0 мс дает примерно 90 градусов от центра, а 2,0 мс дает -90 градусов от центра. На практике эти значения могут быть немного больше или меньше 90 градусов, а двигатель может двигаться чуть больше или меньше 90 градусов в любом направлении.

Для адресации других каналов просто увеличьте адрес двух регистров выше на 4. Таким образом, время начала для канала 1 равно 0x0A, для канала 2 - 0x0E, канала 3 - 0x12 и т. Д., А адрес времени остановки для канала 1 - 0x0C, для канала 2 - 0x10, для канала 3 - 0x14 и т. д. См. таблицу ниже.

Канал № Начальный адрес Адрес остановки
Канал 0 0x06 0x08
Глава 1 0x0A 0x0C
Глава 2 0x0E 0x10
Глава 3 0x12 0x14
Глава 4 0x16 0x18
Глава 5 0x1A 0x1C
Глава 6 0x1E 0x20
Глава 7 0x22 0x24
Глава 8 0x26 0x28
Глава 9 0x2A 0x2C
Глава 10 0x2E 0x30
Глава 11 0x32 0x34
Глава 12 0x36 0x38
Глава 13 0x3A 0x3C
Глава 14 0x3E 0x40
Глава 15 0x42 0x44

Если вы записываете 0 в начальный адрес, каждая степень смещения от 90 градусов требует записи 4,6 счета в конечный адрес. Другими словами, умножьте количество градусов смещения от нейтрали, которое вы хотите достичь, на 4,6, а затем либо добавьте, либо вычтите полученный результат из 1250, в зависимости от желаемого направления движения. Например, смещение на 45 градусов от центра будет составлять 207 (45 × 4,6) отсчетов, больше или меньше 1250, в зависимости от направления, в котором вы хотите, чтобы движение было.

Подробнее…

Руководство по подключению сервопривода Pi


Производственный процесс

  1. Руководство по созданию прототипов с ЧПУ
  2. Руководство по подключению FLIR Lepton
  3. Руководство по подключению к стартовому набору Raspberry Pi 3
  4. Руководство по подключению Qwiic HAT для Raspberry Pi
  5. Предварительно собранное руководство по подключению клина Pi с 40 контактами
  6. Простой робот Pi
  7. Руководство по силовым молотам
  8. Путеводитель по кузнечным кузням
  9. Руководство по точному литью
  10. Краткое руководство по параллелизму GD&T