Глава 5. Внутреннее устройство портов NXT
 | Просмотров: 8 974

Эта глава является очень близким к оригиналу пересказом первой части главы «Making a Connection» из книги «Extreme NXT». Сразу отвечу на вопрос «Почему не всей главы, а лишь её части?». Во-первых, глава слишком длинная, и читать её «в полный рост» было бы явно неудобно. Во-вторых, я отделил информацию о характеристиках портов от информации о том, как изготовить самодельные коннекторы и кабели. Не беспокойтесь, в следующей главе об этом обязательно будет рассказано. Теперь ближе к делу.
Перед тем, как начать конструировать самодельные датчики и расширители выходов, будет неплохо узнать, как устроены входные и выходные порты блока NXT, и как физически к ним подключиться. В этой главе я расскажу о назначении контактов портов, какие сигналы эти порты передают и принимают, приведу некоторые полезные характеристики, и покажу на схемах, как интеллектуальный блок управляет сервомоторами.

■ Порты NXT

С нижней стороны блок имеет четыре входных порта, пронумерованных от 1 до 4 и предназначенных для подключения датчиков (рисунок 5-1).

Рисунок 5-1. Входные порты NXT

С верхней стороны расположены три выходных порта для подключения моторов, обозначенные буквами A, B и C (рисунок 5-2), и порт USB для подключения блока к компьютеру, но он нас пока не интересует.

Рисунок 5-2. Выходные порты NXT

Если вы посмотрите сквозь прозрачную часть разъёма на концах стандартного кабеля, входящего в комплект, то увидите шесть цветных проводов: белый, чёрный, красный, зелёный, жёлтый и синий (рисунок 5-3). Назначение каждого их этих проводов зависит от того, подключен кабель к порту датчиков или к порту моторов. Также назначение может отличаться в зависимости от типа датчика, подключенного к блоку.

Рисунок 5-3. Стандартный разъём NXT

■ Входы датчиков: назначение контактов и описание сигналов

В таблице 5-1 указаны номера контактов, цвета проводов и назначение каждого провода для кабеля, подключенного к входным портам.

Таблица 5-1. Цвета и имена входных контактов

Номер контакта Цвет провода Имя Назначение
1 Белый AN Аналоговый вход/Питание 9 Вольт
2 Чёрный GND Общий
3 Красный GND Общий
4 Зелёный 4.3V Power Питание 4.3 Вольта
5 Жёлтый DIGI0 Цифровой вход 0
6 Синий DIGI1 Цифровой вход 1

Контакт 1 – Белый – AN
Вы можете использовать этот контакт для двух целей: как аналоговый вход, или как выход питания 9 вольт. Блок подаёт напряжение питания на этот контакт в течение 3-х миллисекунд, а затем считывает аналоговое значение в течение 0.1 мс. Когда Вы используете этот контакт как аналоговый вход, сигнал подключается к аналого-цифровому преобразователю (АЦП). Входной сигнал должен быть в пределах от 0 до 5 вольт, и его значение преобразуется в число от 0 до 1023. На время считывания сигнала контакт «подтягивается» к линии +5 вольт через резистор номиналом 10 кОм (находящийся внутри блока), что значительно упрощает схемотехнику большинства датчиков.

Если Вы будете использовать первый контакт в качестве источника питания 9 Вольт для датчиков, учтите, что напряжение питания на этом контакте будет равно напряжению на батареях блока NXT, и, если вы используете никель-металлогидридные (NiMH) аккумуляторы, то вы сможете получить с этого контакта напряжение около 7.2 вольта или меньше. Это напряжение используется для питания стандартных и самодельных датчиков, которым недостаточно 5 вольт, в частности, ультразвуковой датчик NXT использует его для увеличения мощности своего передатчика. На всякий случай имейте в виду, что все датчики RCX, подключаемые через адаптер (переходник), используют для своей работы именно эту линию.
Поскольку питание на этот контакт подаётся с перерывами, датчику обычно требуется конденсатор, чтобы поддерживать напряжение питания на время чтения данных. Ограничение по току нагрузки на этом контакте составляет примерно 14 мА на каждый порт. Если ток нагрузки превышает это значение, напряжение значительно падает, и датчик может работать не так, как Вам этого хотелось бы.

Контакты 2 и 3 – Чёрный и Красный – GND
Второй и третий контакты – общая земля. Эти два контакта соединены вместе внутри блока NXT и внутри стандартных сенсоров ЛЕГО. Все сигналы измеряются и формируются относительно этих общих контактов. Ваш самодельный датчик может использовать любой из этих контактов, или сразу оба.

Контакт 4 – Зелёный – Питание 4.3 Вольта
Это основная линия питания для стандартных датчиков NXT. Новые цифровые микросхемы, рассчитанные на 5-вольтовую логику, вполне могут быть запитаны от него, но бывают случаи, когда этого напряжения оказывается недостаточно для стабильной работы. В отличие от 9-вольтовой линии питания, этот выход обеспечивает суммарный ток 180 мА для всех входных и выходных портов. Каждый порт может использовать в среднем 25 мА (180 / 7 = 28.71 мА), но вполне допустимо увеличить потребление одного или нескольких портов, если остальные порты потребляют меньше или не задействованы.
В таблице 5-2 приведены значения потребляемого тока для всех стандартных датчиков NXT, и тахометров, встроенных в сервомоторы NXT.

Таблица 5-2. Потребление тока датчиками и тахометрами NXT

Устройство Потребляемый ток
Датчик касания 0
Датчик звука 1.7 мА
Датчик освещения (подсветка выкл.) 2.6 – 3 мА
Датчик освещения (подсветка вкл.) 16.3 мА
Ультразвуковой датчик 4 мА
Тахометр мотора 9 – 12 мА
Все моторы и датчики RSX (через адаптер) 0

Контакты 5 и 6 – Жёлтый и Синий – DIGI0 и DIGI1
Эти контакты используют цифровые сигналы уровня 3.3 В и непосредственно подключены к микропроцессору блока NXT. Они в основном используются для связи по протоколу I2C, который будет подробно обсуждаться в одной из следующих глав, но также могут использоваться как обычные сигнальные линии. Когда контакты используются как выходы, необходимо учитывать ограничение в 3.3 Вольта. Когда эти контакты используются как входы, блок NXT сам ограничивает уровень сигналов, чтобы уберечь электронику от повреждений. Эти цепи имеют ограничительные резисторы по 4.7 кОм, включенные последовательно в каждую линию. В результате этого, даже если напряжение сигнала от датчика слишком высокое, ток на входе будет достаточно низким, и процессор не будет повреждён. Это утверждение не относится к случаям, когда Ваш здравый смысл не сможет убедить Вас, что не стоит подключать к порту контроллера 220 Вольт напрямую из розетки.
В дополнение к протоколу I2C, контакт DIG0 используется датчиком освещенности для переключения состояния подсветки – включено (отраженный свет) или выключено (окружающий свет). Он также используется датчиком звука для переключения между режимами DB (абсолютная громкость звука) и DBA (уровень звука, приравненный к чувствительности человеческого уха).

■ Выходы моторов: назначение контактов и описание сигналов

В таблице 5-3 указаны номера контактов, цвета проводов и назначение каждого провода.

Таблица 5-3. Цвета и имена выходных контактов

Номер контакта Цвет провода Имя Назначение
1 Белый M1 Питание мотора
2 Чёрный M2 Питание мотора
3 Красный GND Общий
4 Зелёный 4.3V Power Питание 4.3 Вольта
5 Жёлтый TACHO0 Цифровой вход 0
6 Синий TACHO1 Цифровой вход 1

Контакты 1 и 2 – Белый и Чёрный – M1 и M2
Эти контакты подают питание к мотору. Максимальное напряжение равно напряжению батарей блока (9 В для стандартных батареек, 7.2 В для аккумуляторов). Мотор управляется цепью, называемой Н-мостом (микросхемы LB1836M и LB1930M). Н-мост состоит из четырех транзисторов, на последующих схемах транзисторы пронумерованы от 1 до 4.
Управляющая цепь построена так, что транзисторы 1 и 2 с одной стороны, и 3 и 4 с другой стороны не открываются одновременно, чтобы избежать короткого замыкания в цепи. Схема 5-4 показывает состояние транзисторов при движении вперёд, открыты транзисторы 1 и 4. Схема 5-5 показывает движение назад, открыты транзисторы 2 и 3. Схема 5-6 показывает направление тока при торможении, открыты транзисторы 1 и 2. Схема 5-7 соответствует свободному вращению мотора - все транзисторы закрыты, ток отсутствует.

Схема 5-4. Движение вперёд (Forward)


Схема 5-5. Движение назад (Reverse)


Схема 5-6. Торможение(Brake)


Схема 5-7. Свободное вращение (Coasting)

Скорость вращения мотора регулируется способом широтно-импульсной модуляции (ШИМ), как показано на диаграмме 5-8. Питание мотора быстро включается и выключается с определенным интервалом. Скорость вращения электромотора зависит от среднего значения напряжения, подведенного к нему, и ШИМ является наиболее простым способом регулировки напряжения.

Схема 5-8. Диаграмма ШИМ для обеспечения 35% скорости мотора

Со стандартной прошивкой длина цикла ШИМ составляет 128 нс. Это соответствует частоте 7800 Гц, которая находится в слышимом диапазоне, в результате Вы иногда можете слышать «писк», исходящий от мотора. Для стандартных сервомоторов NXT зависимость между скоростью вращения мотора и приложенным напряжением – линейна. Допустимый ток на выходных портах составляет примерно 800 мА для порта А, и 500 мА для портов В и С. Микросхема драйвера имеет тепловую защиту, которая ограничивает ток при перегрузке или перегреве.

Контакт 3 – Красный – GND
Это общий «земляной» контакт. Контакты 2 и 3 соединены между собой в датчиках, но не в моторах. Если датчик будет случайно подключен к порту мотора, питание мотора будет закорочено на землю. К счастью, в блоке есть защита на этот случай, но лучше лишний раз не ошибаться.

Контакт 4 – Зелёный – Питание 4.3 Вольта
Этот контакт подключен к линии питания 4.3 В, общей для всех портов блока. Питание с этого контакта используется тахометром сервомотора.

Контакты 5 и 6 – Жёлтый и Синий – DIGI0 и DIGI1
Эти два входа используются для получения сигналов от оптического тахометра, встроенного в мотор NXT. Тахометры генерируют прямоугольные импульсы, которые позволяют блоку NXT определить скорость и направление вращения мотора. Два импульса сдвинуты относительно друг друга на четверть полной длины импульсного цикла. На схеме 5-9 показан сигнал от мотора, вращающегося вперёд, а на 5-10 – назад. Частота импульсов зависит от скорости вращения мотора. Один полуцикл сигнала соответствует одному градусу поворота мотора.

Схема 5-9. Импульсы при вращении мотора вперёд


Схема 5-10. Импульсы при вращении мотора назад