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