-
Notifications
You must be signed in to change notification settings - Fork 55
Где какие порты на плате
Для платы версии 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
Для управления моторами используются следующие файлы из данных каталогов:
- duty_ns — время импульса единичного сигнала PWM
- period_ns — период мотора в ns
- period_freq — частота мотора (обратное значение периода)
Для каждого типа мотора значения, которые должны быть записаны в эти файлы, различаются. Для ТРИКовских моторов они следующие:
- 1800000 — мотор крутится с максимальной скоростью "вперед"
- 1200000 — мотор крутится с максимальной скоростью в обратную сторону
- 1450000 — мотор остановлен
- 0 — питание на мотор не подается
Пример команды инициализации сервомотора, подключенного к JE4:
echo 1 > /sys/class/pwm/ehrpwm.0:0/request
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, и из него возвращается три проекции вектора g на оси x, y и z. Диапазон значений от -32767 до 32767.
Гироскоп
Гироскоп — /dev/input/event2, возвращает проекции угловой скорости. Диапазон значений от -32767 до 32767.
Для платы версии 5: