mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-26 11:43:25 +00:00
docs: add markdownlint config
This commit is contained in:
5
.markdownlint.json
Normal file
5
.markdownlint.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"MD003": false,
|
||||
"MD013": false,
|
||||
"MD033": false
|
||||
}
|
||||
@@ -5,13 +5,12 @@
|
||||
|
||||
Убедиться в работоспособности подключения, выполнив на Raspberry Pi:
|
||||
|
||||
```
|
||||
```bash
|
||||
rostopic echo /mavros/state
|
||||
```
|
||||
|
||||
Поле `connected` должно содержать значение `True`.
|
||||
|
||||
|
||||
Подключение по USB
|
||||
---
|
||||
|
||||
|
||||
@@ -2,40 +2,40 @@
|
||||
|
||||
Хорошая статья, которая объясняет принцип работы ESC \(Electric speed controller\) регуляторов: [http://www.avmodels.ru/engines/electric/esc.html](http://www.avmodels.ru/engines/electric/esc.html)
|
||||
|
||||
#### Зачем перепрошивать?
|
||||
## Зачем перепрошивать?
|
||||
|
||||
Иногда требуется поменять один из параметров регулятора, например направление вращения мотора, минимальная и максимальная скважности PPM сигнала на входе контроллера, уровень громкости звуковых сигналов, издаваемых мотором или время, через которое регулятор начинает напоминать, что он включён.
|
||||
|
||||
#### Программа для прошивки регуляторов
|
||||
## Программа для прошивки регуляторов
|
||||
|
||||
Для прошивки самых разнообразных ESC регуляторов существует программа [BLHeliSuite](https://github.com/4712/BLHeliSuite) \(для Windows\).
|
||||
|
||||
Для запуска программы \(BLHeliSuite.exe\) необходимо распаковать архивы BLHeliAtmelHEX.zip и BLHeliSilabsHEX.zip в папку с программой.
|
||||
|
||||
#### Программатор для прошивки регуляторов.
|
||||
## Программатор для прошивки регуляторов
|
||||
|
||||
Чтобы прошить регулятор, необходим программатор, который умеет общаться с контроллером регулятора по 1-wire протоколу. Один из способов добыть программатор - взять подвернувшуюся под руку ардуинку и прошить её специальной прошивкой. В BLHeliSuite есть инструмент для создания интерфейсов программаторов.
|
||||
|
||||
Создание программатора на примере Arduino Mega.
|
||||
|
||||
1. Запустите программу BLHeliSuite и выберите вкладку Make interfaces.
|
||||
1. Запустите программу BLHeliSuite и выберите вкладку Make interfaces.
|
||||
|
||||

|
||||
|
||||
2. Подключите Arduino к компьютеру, при необходимости посмотрите в диспетчере устройств номер COM порта, к которому подключена плата.
|
||||
|
||||
3. Нажмите Arduino 4way-interface в разделе Make Arduino Interface Boards и выберите файл прошивки. После выбора файла начнётся прошивка контроллера.
|
||||
3. Нажмите Arduino 4way-interface в разделе Make Arduino Interface Boards и выберите файл прошивки. После выбора файла начнётся прошивка контроллера.
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
4. После прошивки Arduino вернитесь на вкладку Silabs ESC Setup и подключитесь к Arduino, предварительно выбрав интерфейс программатора 4way-if и COM порт Arduino.
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
#### Подключение ESC регуляторов к Arduino.
|
||||
## Подключение ESC регуляторов к Arduino
|
||||
|
||||
Для прошивки или изменения настроек регуляторов необходимо подключить сигнальные порты (обычно белого цвета) ESC регуляторов к портам Arduino, предварительно посмотрев в мануале (см. рисунок ниже), какие порты используются для соединения с регуляторами. Так же нужно соединить GND Arduino с землёй одного из регуляторов (обычно черного цвета). Регуляторы должны быть подключены к питанию, а если к регуляторам подключены моторы, **на них не должно быть винтов**.
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
В случае с Arduino Mega, сигнальные порты регуляторов подключаются к портам D43-D49 и D51.
|
||||
|
||||
#### Изменение настроек ESC регуляторов.
|
||||
## Изменение настроек ESC регуляторов
|
||||
|
||||
Для загрузки информации о версии прошивки и настроек регуляторов нужно нажать на кнопку Check.
|
||||
|
||||
@@ -64,15 +64,15 @@
|
||||
|
||||
Для отображения настроек со всех регуляторов одновременно можно воспользоваться вкладкой ESC Overview.
|
||||
|
||||
#### Прошивка ESC регуляторов.
|
||||
## Прошивка ESC регуляторов
|
||||
|
||||
Файлы с прошивками регуляторов находятся [здесь](https://github.com/cleanflight/blheli-multishot/tree/master/BLHeli_S%20SiLabs/Hex%20Files).
|
||||
|
||||
Для перепрошивки регуляторов нужно нажать на кнопку Flash BLHeli и выбрать файл прошивки с типом контроллера, название которого указано в рамке названия прошивки и находится сверху во вкладке Silabs ESC Setup (в случае контроллера, который используется в конструкторе Клевер 2, это A-H-70).
|
||||
Для перепрошивки регуляторов нужно нажать на кнопку Flash BLHeli и выбрать файл прошивки с типом контроллера, название которого указано в рамке названия прошивки и находится сверху во вкладке Silabs ESC Setup (в случае контроллера, который используется в конструкторе Клевер 2, это A-H-70).
|
||||
|
||||
Для перепрошивки отдельного регулятора нужно сделать все остальные неактивными.
|
||||
|
||||
#### Видеоинструкция по перепрошивке ESC регуляторов
|
||||
## Видеоинструкция по перепрошивке ESC регуляторов
|
||||
|
||||
Для лучшего понимания того, что описано в статье, рекомендуем посмотреть наглядное руководство по подключению электроники и прошивке регуляторов на английском языке на [youtube](https://www.youtube.com/watch?v=i6lhMcQLRSU&feature=youtu.be).
|
||||
Для лучшего понимания того, что описано в статье, рекомендуем посмотреть наглядное руководство по подключению электроники и прошивке регуляторов на английском языке на [youtube](https://www.youtube.com/watch?v=i6lhMcQLRSU&feature=youtu.be).
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ TCP-бридж
|
||||
---
|
||||
|
||||
Изменить параметр `gcs_bridge` в launch-файле:
|
||||
|
||||
```xml
|
||||
<arg name="gcs_bridge" default="tcp"/>
|
||||
```
|
||||
@@ -32,6 +33,7 @@ UDP бридж (с автоматическим подключением)
|
||||
---
|
||||
|
||||
Изменить параметр gcs_bridge в launch-файле:
|
||||
|
||||
```xml
|
||||
<arg name="gcs_bridge" default="udp-b"/>
|
||||
```
|
||||
|
||||
49
docs/leds.md
49
docs/leds.md
@@ -1,6 +1,6 @@
|
||||
## Работа со светодиодной лентой на Raspberry 3
|
||||
# Работа со светодиодной лентой на Raspberry 3
|
||||
|
||||
#### Подключение и определение типа ленты
|
||||
## Подключение и определение типа ленты
|
||||
|
||||
Есть два основных типа адресуемых светодиодов: WS2812 и WS2812B. Принцип управления один и тот же, однако тайминги разные. Найдите на ленте чип светодиода и определите сколько у него ножек: 6 или 4. Если ножек 6, то это WS2812, если 4 - то WS2812B или его аналог SK6812.
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
Типы лент для обозначения ленты в коде описаны в [файле](https://github.com/jgarff/rpi_ws281x/blob/master/ws2811.h). Основные типы лент - это WS2812\_STRIP \(для WS2812\) и SK6812\_STRIP \(для WS2812B или SK6812\).
|
||||
|
||||
#### Установка библиотеки для работы со светодиодной лентой
|
||||
## Установка библиотеки для работы со светодиодной лентой
|
||||
|
||||
Определите папку, в которой будут находиться файлы библиотеки, и открыть путь к этой папке в терминале. По-умолчанию можно использовать домашнюю папку, для перехода в неё нужно выполнить команду
|
||||
|
||||
@@ -51,7 +51,7 @@ sudo python ./setup.py build
|
||||
sudo python ./setup.py install
|
||||
```
|
||||
|
||||
#### Пример программы для светодиодной ленты на RPI3
|
||||
## Пример программы для светодиодной ленты на RPI3
|
||||
|
||||
Откройте в текстовом редакторе файл strandtest.py из папки python/examples \(находится в папке с библиотекой\)
|
||||
|
||||
@@ -96,7 +96,7 @@ sudo python strandtest.py
|
||||
|
||||
Права администратора необходимы для выполнения скрипта, т.к. без них нет доступа к функциям прерывания, которые использует библиотека для работы с лентой.
|
||||
|
||||
#### Совместимость с ROS и python
|
||||
## Совместимость с ROS и python
|
||||
|
||||
При запуске программы с помощью sudo пользовательское окружение изменяется и появляются ошибки импорта библиотек, т.к. в окружении отсутствуют необходимые пути. Чтобы добавить в окружение пути к библиотекам python и пакетам ROS, необходимо добавить в файл /etc/sudoers следующие строки:
|
||||
|
||||
@@ -107,7 +107,7 @@ Defaults env_keep += "ROS_ROOT"
|
||||
Defaults env_keep += "ROS_MASTER_URI"
|
||||
```
|
||||
|
||||
#### Функции для работы со светодиодной лентой
|
||||
## Функции для работы со светодиодной лентой
|
||||
|
||||
Для подключения библиотеки и её корректной работы требуется подключить следующие модули: neopixels - для работы ленты, time - для управления задержками, sys и signal для прерываний и формирования управляющего сигнала.
|
||||
|
||||
@@ -144,23 +144,23 @@ pydoc neopixel
|
||||
|
||||
```(bash)
|
||||
Help on module neopixel:
|
||||
|
||||
|
||||
NAME
|
||||
neopixel
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
# Adafruit NeoPixel library port to the rpi_ws281x library.
|
||||
# Author: Tony DiCola (tony@tonydicola.com)
|
||||
|
||||
|
||||
CLASSES
|
||||
__builtin__.object
|
||||
Adafruit_NeoPixel
|
||||
|
||||
|
||||
class Adafruit_NeoPixel(__builtin__.object)
|
||||
| Methods defined here:
|
||||
|
|
||||
|
|
||||
| __del__(self)
|
||||
|
|
||||
|
|
||||
| __init__(self, num, pin, freq_hz=800000, dma=5, invert=False)
|
||||
| Class to represent a NeoPixel/WS281x LED display. Num should be the
|
||||
| number of pixels in the display, and pin should be the GPIO pin connected
|
||||
@@ -168,38 +168,38 @@ pydoc neopixel
|
||||
| parameters are freq, the frequency of the display signal in hertz (default
|
||||
| 800khz), dma, the DMA channel to use (default 5), and invert, a boolean
|
||||
| specifying if the signal line should be inverted (default False).
|
||||
|
|
||||
|
|
||||
| begin(self)
|
||||
| Initialize library, must be called once before other functions are
|
||||
| called.
|
||||
|
|
||||
|
|
||||
| getPixelColor(self, n)
|
||||
| Get the 24-bit RGB color value for the LED at position n.
|
||||
|
|
||||
|
|
||||
| getPixels(self)
|
||||
| Return an object which allows access to the LED display data as if
|
||||
| Return an object which allows access to the LED display data as if
|
||||
| it were a sequence of 24-bit RGB values.
|
||||
|
|
||||
|
|
||||
| numPixels(self)
|
||||
| Return the number of pixels in the display.
|
||||
|
|
||||
|
|
||||
| setBrightness(self, brightness)
|
||||
| Scale each LED in the buffer by the provided brightness. A brightness
|
||||
| of 0 is the darkest and 255 is the brightest. Note that scaling can have
|
||||
| quantization issues (i.e. blowing out to white or black) if used repeatedly!
|
||||
|
|
||||
|
|
||||
| setPixelColor(self, n, color)
|
||||
| Set LED at position n to the provided 24-bit color value (in RGB order).
|
||||
|
|
||||
|
|
||||
| setPixelColorRGB(self, n, red, green, blue)
|
||||
| Set LED at position n to the provided red, green, and blue color.
|
||||
| Each color component should be a value from 0 to 255 (where 0 is the
|
||||
| lowest intensity and 255 is the highest intensity).
|
||||
|
|
||||
|
|
||||
| show(self)
|
||||
| Update the display with the data from the LED buffer.
|
||||
|
|
||||
|
||||
|
|
||||
|
||||
FUNCTIONS
|
||||
Color(red, green, blue)
|
||||
Convert the provided red, green, blue color to a 24-bit color value.
|
||||
@@ -207,7 +207,7 @@ pydoc neopixel
|
||||
and 255 is the highest intensity.
|
||||
```
|
||||
|
||||
#### Почему именно так и можно ли по-другому?
|
||||
## Почему именно так и можно ли по-другому?
|
||||
|
||||
Основные типы лент, которые используются для Clever3, это WS2812, WS2812B и SK6812 \(аналог WS2812B\). Они управляются по одному и тому же принципу: для массива светодиодов в ленте отправляется пакет данных по 24 бита на светодиод; каждый светодиод считывает первые 24 бита из пришедших к нему данных и устанавливает соответствующий цвет, остальные данные он отправляет следующему светодиоду в ленте. Нули и единицы задаются разными сочетаниями длительностей высокого и низкого уровня в импульсе.
|
||||
|
||||
@@ -227,4 +227,3 @@ pydoc neopixel
|
||||
3. Если нам важна и работа аудио, и подключение к SPI устройств кроме лед ленты, то можно управлять лентой по каналу PCM \(GPIO 21 или 31\). При этом никаких дополнительных манипуляций с распберри не требуется.
|
||||
|
||||
Исходя из вышеперечисленных способов управления лентой, наилучшим вариантом, позволяющим управлять лентой, сохранить работоспособность встроенной аудиосистемы и возможность подключения всяческих устройств и датчиков по SPI, является управление по каналу PCM \(GPIO 21\) с использованием 10 канала DMA.
|
||||
|
||||
|
||||
@@ -47,4 +47,3 @@ MAVROS подписывается определенные ROS-топики в
|
||||
`/mavros/setpoint_raw/global` — отправка пакета [SET\_POSITION\_TARGET\_GLOBAL\_INT](https://pixhawk.ethz.ch/mavlink/#SET_POSITION_TARGET_GLOBAL_INT). Позволяет установить целевую позицию в глобальных координатах \(ширина, долгота, высота\), а также скорости полета. **Не поддерживается в PX4** \([issue](https://github.com/PX4/Firmware/issues/7552)\).
|
||||
|
||||
[Упрощенное управление коптером с помощью Simple Offboard](simple_offboard.md).
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Настройка Wi-Fi
|
||||
|
||||
Wi-Fi адаптер на Raspberry Pi имеет два основных режима работы:
|
||||
|
||||
1. **Режим клиента** – RPi подключается к существующей Wi-Fi сети.
|
||||
2. **Режим точки доступа** – RPi создает Wi-Fi сеть, к которой вы можете подключиться.
|
||||
|
||||
@@ -116,7 +117,9 @@ ___
|
||||
Ниже вы можете узнать больше о том, как устроена работа с сетью на RPi.
|
||||
|
||||
# Устройство сети RPi
|
||||
|
||||
Работа сети на образе **2017-11-29-raspbian-stretch-lite** поддерживается двумя предустановленными службами:
|
||||
|
||||
* **networking** — служба включает все сетевые интерфейсы в момент запуска [5].
|
||||
* **dhcpcd** — служба обеспечивает настройку адресации и маршрутризации на интерфейсах, полученных динамически или указаных в файле настроек статически.
|
||||
|
||||
@@ -188,9 +191,11 @@ network={
|
||||
```bash
|
||||
sudo systemctl restart dhcpcd
|
||||
```
|
||||
|
||||
## DHCP сервер
|
||||
|
||||
### dnsmasq-base
|
||||
|
||||
`dnsmasq-base` – консольная утилита, не являющаяся службой, для использования dnsmasq как службы надо установить пакет `dnsmasq`.
|
||||
|
||||
```bash
|
||||
@@ -264,7 +269,6 @@ fi
|
||||
EOF
|
||||
```
|
||||
|
||||
|
||||
## Ссылки
|
||||
|
||||
1. [habr.com: Linux WiFi из командной строки с wpa_supplicant](https://habr.com/post/315960/)
|
||||
|
||||
@@ -97,3 +97,10 @@ rosservice call /get_telemetry "{frame_id: ''}"
|
||||
```
|
||||
|
||||
Больше примеров использования сервисов для автономных полетов квадрокоптера Клевер можно посмотреть в [документации ноды simple_offboard](simple_offboard.md).
|
||||
|
||||
Работа на нескольких машинах
|
||||
---
|
||||
|
||||
Преимуществом использования ROS явлется возможность распределения нод на несколько машин в сети. Например, ноду, осуществляющую распознование образом на изображении можно запустить на более мощном компьютере; ноду, управляющую коптером можно запустить непосредствено на Raspberry Pi, подключенном к полетому контроллеру и т. д.
|
||||
|
||||
Для запуска ноды
|
||||
|
||||
@@ -29,4 +29,3 @@ http://192.168.11.1:8080/stream_viewer?topic=/main_camera/image_raw&quality=1
|
||||
Также доступны параметры `width`, `height` и другие. Подробнее о `web_video_server`: http://wiki.ros.org/web_video_server.
|
||||
|
||||
TODO: иллюстрации.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user