Skip to content

Дронпоинт внутренний API

Аппаратный API дронпоинт2

Плата управления аппаратурой дронпоинт2 построена на микроконтроллере
stm32F103ZET6. Обмен данными с верхними программными уровнями осуществляется по USB, а конкретней через реализацию Maple Serial(COM порт). Для приема команд и отсылки данных по uart(COM порт) используется протокол JSON.
Имеются следующие группы команд:

  1. Команды перемещения каретки, навигация по ячейкам.

  2. Команды специальных операций. Это допустим загрузка или выгрузка контейнера в
    ячейку, установка контейнера в коптер и.т.д.

  3. Команды тестирования отдельных элементов и сценариев. Можно использовать
    для управления какими-то отдельными исполнительными механизмами. Допустим
    пощелкать соленоидом отсека выдачи, открыть или закрыть замок контейнера на
    коптере, открыть или закрыть замок крышки зарядки, то-есть это те простые
    операции которые входят в состав более сложных команд специальных операций.
    Также сюда входят сценарии тест оси Z, тест оси X, комплексное перемещение по
    различным ячейкам с погрузкой и выгрузкой контейнера и.т.д.

  4. Команды посадочному столу. Исполнительным механизмом посадочного стола
    является механизм позиционирования. Он выполняет функцию центрирования
    коптера после посадки т.е. выставляет его точно над верхним люком, точное
    положение коптера очень важно для операций установки и снятия контейнера.


Команды перемещения каретки

Команда перемещения каретки может иметь следующий вид
{"command": "goto_cell", "params": {"x": 2, "y": 2, "z": 1}}
Команда goto_cell имеет следующий набор параметров:
Z уровень каретки по z от 0 до 8
X положение каретки по x от 0 до 4
Y положение каретки по y от 0 до 3
Здесь Y выполняет следующую роль когда 1 то после
выхода каретки на заданную ячейку команды погрузки
и выгрузки будут выполняться с задней ячейкой, когда
3 то с передней, если 2 это просто перемещение.
Перед у дронпоинта там где отсек выдачи.
Команда перемещения каретки может иметь следующий вид
{"command": "goto_cell", "params": {"Xkr": 1, "y": 2, "z": 7}}
Когда в команде присутствует параметр Xkr это воспринимается как
движение каретки к позиции установки или снятие крышки зарядки.
У дронпоинт2 имеется 8 ячеек для установки крышки зарядки, следовательно
параметр может принимать от 0 до 7. Остальные параметры не несут смысла.
Заставить каретку выйти на позиции операций с крышками зарядки можно
также используя такие команды: {"command":"posKR0"} {"command":"posKR1"}
{"command":"posKR3"} и.т.д.
Также имеются следующие команды перемещения
{"command":"posOV"} - позиция отсека выдачи, равносильна команде
{"command": "goto_cell", "params": {"x": 2, "y": 3, "z": 1}}
{"command":"posDN"} - позиция операций с дроном(подается перед операциями
с дроном, вставить или снять контейнер).


Команды специальных операций.

{"command":"loadingCELL"} - загрузка в ячейку переднею или заднею будет зависеть
от того, что было указанно в параметре Y команды goto_cell при перемещении к этой ячейки. Напомню если "y": 3 это перед, если "y": 1 это зад, если "y": 2 это просто перемещение.
{"command":"unloadingCELL"} - выгрузка из ячейки передней или задней также
зависит от параметра Y команды goto_cell.
{"command":"lock_top_hatch_lock"} - установка верхнего люка.
{"command":"release_top_hatch_lock"} - снятие верхнего люка .
{"command":"charging_cover_removing"} – снятие крышки с зарядки.
{"command":"charging_cover_install"} – установка крышки на зарядку.
Номер крышки задается позицией на которой стоит каретка. То есть перед операциями с
крышками надо выполнить команду перемещения к нужной ячейки крышки. За это отвечает параметр Xkr команды goto_cell или команды {"command":"posKR0"} {"command":"posKR1"}
{"command":"hatch_delivery_open"} - открыть люк отсека выдачи.
{"command":"hatch_delivery_close"} - закрыть люк отсека выдачи.
{"command":"container_insert"} – установка контейнера в коптер.
{"command":"container_removing"} – снятие контейнера с коптера.
Эти операции выполняются при открытом верхнем люке и нахождении каретки на
определенной позиции. Для дронпоинта2 позиция операций с коптером следующая
{"command": "goto_cell", "params": {"x": 2, "y": 2, "z": 5}}
Но так как у разных дронпоинтов эта позиция может отличатся есть специальная команда
{"command":"posDN"}


Команды тестирования.

{"command":"Ztest"} - тест оси Z.
{"command":"Ytest"} - тест оси Y.
{"command":"Xtest"} - тест оси X.
{"command":"ABlock"} – выдвинуть крышки платформы А
{"command":"BBlock"} – выдвинуть крышки платформы B
{"command":"VLtest"} - тест верхнего люка
{"command":"lockKR2O"} - открыть замок крышки KR2
{"command":"lockKR2C"} - закрыть замок крышки KR2
{"command":"lockKR3O"} - открыть замок крышки KR3
{"command":"lockKR3C"} - закрыть замок крышки KR3 и.т.д.
{"command":"LockConO"} - открыть замок контейнера коптера
{"command":"LockConC"} - закрыть замок контейнера коптера
{"command":"testSol"} - тест соленоида отсека выдачи
{"command":"tesCont"} - тест контейнера коптера устанавливает и снимает 10раз.


Команды посадочному столу.

{"command":"centr"} – сдвигает механизм позиционирования(центрирует коптер).
Команда подается после посадки коптера. Выставляет коптер над верхним люком.
{"command":"uncentr"} – разводит механизм позиционирования. После того как
контейнер с грузом и крышкой установлен в коптер, и верхний люк закрыт. Далее можно
взлетать.