diff --git a/README.md b/README.md index ea0eb1a..3561618 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,27 @@ # Tello_modules -## API дрона +## API квадрокоптера -Для начала необходимо установить любую либу которая будет кидать команды на дрон по websocket. Возмем например [эту](https://github.com/Virodroid/easyTello) +Для начала необходимо установить любую библиотеку, которая будет отправлять команды на квадракоптер по websocket. Возмем, например, [эту](https://github.com/Virodroid/easyTello) ```bash pip3 install easytello opencv-python ``` -Далее необходимо включить дрон и подключится к сети, которую он создаст (название сети похоже на: ```TELLO-56D2T8```). +Далее необходимо включить квадрокоптер и подключится к сети Wi-Fi, которую он создаст (название сети похоже на: ```TELLO-56D2T8```). -Протестировать работу можно простым скриптом, в результате которого дрон будет летать по квадрату со стороной 20 см. +Протестировать работу можно простым скриптом на языке python, в результате которого квадрокоптер будет летать по квадрату со стороной 20 см. +Создать скрипт можно по следующим шагами: + +1. Создать файл test_script.py: + +```bash +touch test_script.py +nano test_script.py +``` + +Или открыть любым другим редактором кроме nano. + +2. Cкопировать в этот файл код: ```python from easytello import tello @@ -23,29 +35,39 @@ for i in range(4): drone.land() ``` +3. Запустить скрипт: + +```bash +python3 test_script.py +``` -Описание команд для дрона можно посмотреть [здесь](http://protello.com/tello-sdk-1/). +Описание команд для квадрокоптера можно посмотреть [здесь](http://protello.com/tello-sdk-1/). ## Работа с модулями -1. Склонить данный репозиторий. +1. Загрузить на компьютер данный репозиторий. Сделать это можно либо скачав его архивом, либо с помощью следующей команды: + +```bash +git clone <ссылка на репозиторий> +``` + 2. Вставить приемник Smart Bricks в компьютер. 3. Запустить модуль коротким нажатием на кнопку. -4. Запустить TelloModule.py в исходном коде указав какой модуль необходимо тестировать +4. Запустить TelloModule.py в исходном коде указав какой модуль необходимо тестировать. Для этого любым редактором нужно открыть файл, найти следующую строку и написать в кавычках distance или sensor: ```Python # Select the module under test: distance OR sensor module = 'sensor' ``` -дабы убедится в работоспособности данного модуля. +Для исполнения программы нужно перейти в папку с файлом TelloModule.py и запустить его: ```bash cd tello_modules python3 TelloModule.py ``` -Вывод должен быть такой: +Программы должна вывести в консоль следующее: ```log -------- Test blocking mode --------- @@ -77,28 +99,35 @@ Test 9 count = 2186 forward = 208 right = 236 back = 193 left = 113 light = 852 ------------ Finish Test ------------ ``` -Если прошли 10 тестов в первом случае и 10 во втором то все хорошо, если нет то повторяем все сначала. +Для обоих (блокирующего и неблокирующего) режима должны пройти по 10 тестов. Если они прошли, то все работает корректно. Если нет, попробуйте выполнить инструкцию сначала. + -5. Запускаем test.py чтобы протестировать работу модуля. +5. Тестирование работы модуля 'distance' с помощью test.py. В результате выполнения скрипта должно открыться окно с графическим отображением показаний дальномеров. Для работы скрипта может понадобится установка модуля matplotlib. ```bash pip3 install matplotlib python3 test.py ``` -6. Запускаем test2.py чтобы протестировать работу модуля вместе с коптером. Для этого необходимо быть подключенным к сети коптера (описано выше) и установить модуль на коптер. -В тестовом примере коптер подлетает к стене если она дальше 30 см, и отлетает от нее если она ближе 20 см (измерения по переднему сенсору). +6. Тестирование работы модуля 'distance' вместе с квадракоптером с помощью скрипта test2.py. Для этого необходимо быть подключенным к Wi-Fi сети квадрокоптера (описано выше) и установить модуль на коптер. + +В тестовом примере квадрокоптер подлетает к стене, в случае если она находится на расстоянии больше 30 см, и отлетает от нее если она находится на расстоянии ближе 20 см (измерения ведутся по переднему сенсору). + +Команда для запуска второго теста: ```bash python3 test2.py ``` -7. Запускаем test3.py чтобы протестировать работу модуля sensor. + +7. Тестирования модуля 'sensor' с помощью test3.py. В результате выполнения команды в консоль будут выведены показатели датчиков. Команда для звпуска теста: ```bash python3 test3.py ``` -## Описание работы с библиотекой. +## Описание работы с библиотекой + +Для написания своиз скриптов с использованием библиотеки: 1. Необходимо добавить файл библиотеки в свой скрипт. @@ -106,7 +135,7 @@ python3 test3.py from TelloModule import TelloModule ``` -2. Необходимо создать экземпляр класса работающего с модулем, а также указать модуль с которым планируется работа, в даннос случае это distance. +2. Необходимо создать экземпляр класса работающего с модулем, а также указать модуль с которым планируется работа, в данном случае это distance. ```python mod = TelloModule('distance') @@ -122,7 +151,7 @@ mod = TelloModule('distance') line = mod.get_block_dist() ``` -Данный метод возвращает лист с шестью параметрами: +Данный метод возвращает список (list) с шестью параметрами: * счетчик (нужен для контроля количества пропущенных значений) * передний дальномер @@ -131,13 +160,13 @@ line = mod.get_block_dist() * левый дальномер * значение датчика освещенности -Для возврата значений модуля sensor в длокирующим режиме необходимо сделать следующее: +Для возврата значений модуля sensor в блокирующим режиме необходимо вызвать следующий метод: ```python line = mod.get_block_sensor() ``` -Данный метод возвращает лист с 7-ю параметрами: +Данный метод возвращает список (list) с 7-ю параметрами: * счетчик (нужен для контроля количества пропущенных значений) * температура @@ -146,7 +175,7 @@ line = mod.get_block_sensor() * индекс качества воздуха * индекс содержания углекислоты в воздухе -Так же тут необходимо отметить что все команды для коптера работают в блокирующем режиме. +Необходимо отметить, что все команды для квадрокоптера работают в блокирующем режиме. ### Неблокирующий режим работы