Skip to content

Где какие порты на плате

iakov edited this page Mar 20, 2014 · 12 revisions

Для платы версии 4:

Сервомоторы

  • JE1 — /sys/class/pwm/ehrpwm.1:1
  • JE2 — /sys/class/pwm/ehrpwm.1:0
  • JC1 — /sys/class/pwm/ecap.0
  • JC2 — /sys/class/pwm/ecap.1
  • JC3 — /sys/class/pwm/ecap.2
  • JE4 — /sys/class/pwm/ehrpwm.0:1

Для управления ШИМ-генератором используются следующие файлы из данных каталогов.

  • request — "включить/выключить" режим ШИМ-генератора для данного порта. Перед работой с портом надо записать туда '1' (0x31) Без этого порт не заработает. Выключать режим не обязательно.
  • /run — включить('1' или 0x31)/выключить('0' или 0x30) генератор ШИМ-сигнала.
  • /duty_ns — время импульса единичного сигнала ШИМ в наносекундах (PWM duty cycle in nanoseconds)
  • /period_ns — период ШИМ в наносекундах. Для ТРИКовских сервомоторов — 20 мс.
  • /period_freq — частота ШИМ обратное значение периода). Для ТРИКовских сервомоторов — 50 Гц.

Для каждого типа устройства, подключенного к ШИМ-генератору, значения, которые должны быть записаны в duty_ns и period_ns, различаются. Для ТРИКовских сервомоторов они следующие.

  • /period_ns — всегда 20 000 000, что соответствует 20 мс.
  • 1800000 — сервомотор крутится с максимальной скоростью "вперед"
  • 1200000 — сервомотор крутится с максимальной скоростью в обратную сторону
  • 1500000 — сервомотор остановлен -- forcebreak
  • 0 — питание на мотор не подается (аналог 0 в /run)

У "угловых" сервомоторов, которые только на 180 крутятся числа иные! Детальное пояснение про ШИМ и сервоприводы

Пример команды для сервомотора, подключенного к JE4:

  echo 1 > /sys/class/pwm/ehrpwm.0:0/request
  echo 20000000 > /sys/class/pwm/ehrpwm.0:0/period_ns
  echo 1700000 > /sys/class/pwm/ehrpwm.0:0/duty_ns
  sleep 3
  echo 1300000 > /sys/class/pwm/ehrpwm.0:0/duty_ns
  sleep 3
  echo 1 > /sys/class/pwm/ehrpwm.0:0/run

Силовые моторы и энкодеры

Силовые моторы управляются через шину I2C.

  • JB1, JM1 — Порт 1. I2C-адрес для задания частоты PWM: 0x10, для задания мощности: 0x14, для задания значения энкодера: 0x30
  • JB2, JM2 — Порт 2. I2C-адрес для задания частоты PWM: 0x11, для задания мощности: 0x15, для задания значения энкодера: 0x31
  • JB4, M1 — Порт 3. I2C-адрес для задания частоты PWM: 0x12, для задания мощности: 0x16, для задания значения энкодера: 0x32
  • JB3, JM3 — Порт 4. I2C-адрес для задания частоты PWM: 0x13, для задания мощности: 0x17, для задания значения энкодера: 0x33

Для задания значений используется команда i2cset следующего формата:

    i2cset -y 2 0x48 ADDRESS VALUE MODE

Для получения значений — команда i2cget следующего формата:

    i2cget -y 2 0x48 ADDRESS MODE

Последние два параметра у обеих команд необязательные.

Аргументы принимают следующие значения:

  • ADDRESS — i2c-адрес (см. выше)
  • VALUE — задаваемое значение. Для частоты PWM это шестнадцатеричное двухбайтовое значение от 0x00 до 0xFFFF. Для задания мощности — однобайтовое значение от 0x9C до 0x64 (от -100 до 100 в десятеричной системе).
  • MODE — параметр, определяющий размер аргумента VALUE. w для двухбайтового значения, b для однобайтового.

Для сброса значения энкодера по соответствующему адресу необходимо записать значение 0x00. После этого, выполнив команду i2cget для того же адреса, будет получено изменение значения энкодера с момента сброса.

Аналоговые порты

Аналоговые сенсоры управляются через I2C шину.

  • JA1 — Порт 1. I2C-адрес порта: 0x25

  • JA2 — Порт 2. I2C-адрес порта: 0x24

  • JA3 — Порт 3. I2C-адрес порта: 0x23

  • JA4 — Порт 4. I2C-адрес порта: 0x22

  • JA5 — Порт 5. I2C-адрес порта: 0x21

  • JA6 — Порт 6. I2C-адрес порта: 0x20

      Пример запроса значения сенсора с порта JA1: i2cget -y 2 0x48 0x25
    

Цифровые сенсоры

  • JD1 — Файл /sys/devices/platform/da850_trik/sensor_d1
  • JD2 — Файл /sys/devices/platform/da850_trik/sensor_d2

Диапазон возвращаемых значений от 30000 до 350000.

LED

  • Зеленый — /sys/class/leds/led_green/brightness
  • Красный — /sys/class/leds/led_red/brightness

Значение 0 означает выключенный LED, 1 — включенный. Если включить оба, то будет "оранжевый".

Кнопки

Для обработки кнопок используется файл /dev/input/event0, из него возвращается два значения — код кнопки и значение.

Акселерометр

Акселерометру соответствует /dev/input/event1, и из него возвращается три проекции вектора ускорения на оси x, y и z. Диапазон значений от -32767 до 32767. В спокойном состоянии показывает проекции вектора g.

Гироскоп

Гироскоп — /dev/input/event2, возвращает проекции угловой скорости. Диапазон значений от -32767 до 32767.

Для платы версии 5: