Официальный Minix Russia - Часто задаваемые вопросы. Использование GPS в Wemos D1

Конечно, ты можешь купить GPS-приемник в Китае за несколько долларов. А можешь и не покупать - все равно он есть у тебя в телефоне, в навигаторе в машине… Но если ты хочешь быть настоящим хакером-инженером и разобраться в технологии GPS на низком уровне, то добро пожаловать в эту статью. Разберемся так, что мало не покажется!

История разработки глобальной системы позиционирования (Global Positioning System, GPS) уходит корнями в 50-е годы прошлого века, а первый спутник был запущен в 1974 году. Первоначально система использовалась лишь военными, но после трагедии с самолетом авиакомпании Korean Airlines, который был сбит над территорией СССР, гражданские службы также получили возможность работы с GPS. В 1993-м окончательно было решено предоставить GPS для использования гражданскими службами на безвозмездной основе, а после отключения намеренного округления положения точность возросла со ста метров до двадцати. В наши дни точность продолжает увеличиваться, а стоимость приемников - снижаться. Поэтому сделать GPS-логгер, ну или навигатор, может любой, кто родился с паяльником вместо…ладно-ладно, это шутка была. Одно другого не исключает:).

Матчасть

Итак, что же должно делать наше устройство?

  1. Получить информацию о текущем положении от GPS-приемника.
  2. Разобрать ее.
  3. Показать на экране текущее положение приемника, а также видимые спутники.

Для этого придется узнать, что таится за терминами GPS, NMEA-0183 и алгоритм Брезенхема.

GPS

Конечно, детально разбираться в нюансах работы GPS не требуется, поскольку всю работу по вычислению координат, скорости, курса и других параметров за нас возьмет на себя GPS-приемник. Но базу знать надо.

В первую очередь надо понять, что GPS-приемник ничего и никогда не передает спутникам (если ты мне не веришь, то просто обрати внимание, что приемники могут быть размером с флешку, в то время как антенны спутниковых телефонов порой больше самого телефона). Задача спутниковой навигации заключается в определении приемником своих координат, если известны точные координаты передатчиков. Если мы знаем расстояние до спутников, то с помощью элементарных геометрических построений можно с некоторой точностью рассчитать свои координаты.

Для нахождения расстояния между приемником и передатчиком необходимо сначала синхронизировать их часы, а затем посчитать искомое расстояние, зная скорость распространения радиоволны, а также задержку между временем передачи и временем приема.

Как я уже писал выше, приемнику необходимо знать точные положения передатчиков. Подобная информация предоставляется передатчиком и называется «альманах». Естественно, эта информация устаревает, поэтому в зависимости от «свежести» альманаха можно выделить три типа задержки между включением приемника и определения его первых точных координат: «холодный старт», «теплый старт» и «горячий старт».

Существуют способы, которые позволяют уменьшить время старта: AGPS (получение альманаха альтернативными способами - через интернет или Почтой России), DGPS (исключение искажения сигнала атмосферой) и другие. Но я их рассматривать не буду, поскольку для выполнения поставленной задачи этого не нужно.

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

NMEA-0183

NMEA - National Marine Electronics Association, а NMEA-0183 (согласно Википедии) - текстовый протокол связи морского (как правило, навигационного) оборудования (или оборудования, используемого в поездах) между собой. Вот строки, приходящие от моего приемника.

(...) $GPRMC,174214.00,A,5541.23512,N,03749.12634,E,3.845,178.09,150914,A*6F $GPVTG,178.09,T,M,3.845,N,7.121,K,A*35 $GPGGA,174214.00,5541.23512,N,03749.12634,E,1,04,4.98,178.2,M,13.1,M,*56 $GPGSA,A,3,20,14,04,17,,8.85,4.98,7.31*02 $GPGSV,4,1,16,01,67,242,02,15,03,15,04,53,284,35*74 $GPGSV,4,2,16,05,23,07,19,08,21,10,24*7F $GPGSV,4,3,16,11,14,12,12,14,35,058,37,17,24,311,34*72 $GPGSV,4,4,16,20,40,275,29,22,08,097,37,25,199,27,39,25,195,32*73 $GPGLL,5541.23512,N,03749.12634,E,174214.00,A,A*6D (...)

Сначала определим похожие части каждой строки. Легко видеть, что все они начинаются одинаково и более-менее одинаково заканчиваются. $GP - информация идет от приемника GPS (ты ведь понимаешь, что на корабле куча других датчиков: если бы у нас был аварийный маяк, то строка начиналась бы с $EP , а если эхолот, то с $SD , ну и так далее). Каждая строка обязательно заканчивается контрольной XOR-суммой всех байтов в строке начиная от $ и заканчивая * - это как раз те два символа в конце строки. И не забываем про символы и после контрольной суммы. Разберем каждую из строк подробнее.

$GPRMC,hhmmss.ss,A,aaaa.aaaa,N,bbbb.bbbb,E,c.c,d.d,DDMMYY,z1,z2,e*ff

  • GPRMC - GPS Recommended Minimum Navigation Information sentence C - рекомендуемый минимум навигационной информации, строка типа С.
  • A - флаг достоверности информации. Если V , то информации верить нельзя.
  • aaaa.aaaaa - величина широты. Первые две цифры - градусы, вторые две - целое значение количества угловых минут, после точки - дробная часть количества угловых минут (переменной длины).
  • bbbb.bbbbb - величина долготы. Первые две цифры - градусы, вторые две - целое значение количества угловых минут, после точки - дробная часть количества угловых минут (переменной длины).
  • c.c - горизонтальная скорость в узлах (умножить на 1,852 для получения скорости в километрах в час), целая и дробная части имеют переменную длину.
  • d.d - направление скорости (путевой угол, курс) в градусах, целая и дробная части имеют переменную длину.
  • DDMMYY - текущая дата.
  • z1 - отсутствующая у нас величина направления магнитного склонения.
  • z2 - также отсутствующее у нас направление магнитного склонения.
  • e - индикатор режима.
  • ff - контрольная сумма.

$GPVTG,a.a,T,b.b,M,c.c,N,d.d,K,A*e

  • $GPVTG - GPS Track Made Good and Ground Speed - строка с информацией о курсе и скорости.
  • a.a - курс в градусах.
  • T - True, флаг достоверности информации.
  • b.b - направление магнитного склонения (у нас его нет).
  • M - Magnetic, да, действительно магнитное.
  • c.c - горизонтальная скорость в узлах (умножить на 1,852 для получения скорости в километрах в час).
  • N - kNots, узлы.
  • d.d - горизонтальная скорость в километрах в час (и умножать ничего не надо).
  • K - километры в час.
  • ee - контрольная сумма.

$GPGGA,hhmmss.ss,a.a,N,b.b,E,c,d,e.e,f.f,M,g.g,M,h.h,*i

  • $GPGGA - Global Positioning System Fix Data - строка с информацией о текущем местоположении.
  • hhmmss.ss - время по всемирному координированному времени UTC, когда была произведена фиксация положения.
  • a.a - величина широты.
  • N - северная широта. Если S , то южная.
  • b.b - величина долготы.
  • E - восточная долгота. Если W , то западная.
  • c - флаг качества сигнала GPS.
  • d - количество используемых спутников.
  • e.e - фактор снижения точности (DOP, Dilution of precision).
  • f.f - высота расположения приемника над уровнем моря.
  • M - высота дается в метрах.
  • g.g - различие между геоидом (истинной формой нашей планеты) и эллипсоидом по WGS84 (трехмерная система координат для позиционирования).
  • M - различие дается в метрах.
  • h.h - номер станции, передающей поправки DGPS.
  • i - контрольная сумма.

$GPGSA,A,x,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,z1,z2,z3*i

  • $GPGSA - GPS DOP and Active satellites - строка с информацией о спутниках, использованных для определения местоположения и о факторах снижения точности.
  • A - автоматический режим выбора работы в 2D или 3D, M - ручной режим, когда жестко выбран, например, 2D.
  • x - режим работы приемника: 0 - координаты не определены, 1 - режим 2D, 2 - режим 3D.
  • y1..y12 - номера спутников, используемых для определения местоположения приемника.
  • z1..z2 - PDOP, HDOP, VDOP (факторы снижения точности по положению, в горизонтальной плоскости и в вертикальной плоскости соответственно).
  • i - контрольная сумма.

$GPGSV,a,b,c1,d1,e1,f1,c2,d2,e2,f2,c3,d3,e3,f3,c4,d4,e4,f4*i

  • GPGSV - GPS Satellites in View - строка содержит в себе информацию о номере, азимуте, высоте над горизонтом и соотношением сигнал/шум спутника. В строке максимально может быть четыре спутника.
  • a - общее количество строк GPGSV .
  • b - номер текущей строки.
  • c1..c4 - номер спутника.
  • d1..d4 - высота над горизонтом в градусах (0..90) .
  • e1..e4 - азимут спутника в градусах (0..359) .
  • f1..f4 - соотношение сигнал/шум в дБ (0..99) .

$GPGLL,5541.23512,N,03749.12634,E,174214.00,A,A*6D - на этой строке нет смысла останавливаться подробно, поскольку она содержит в себе координаты и время, а это мы уже имеем в строках GPRMC и GPGGA .

Разумеется, производителям GPS-приемников не запрещается добавлять собственные строки. У моего приемника можно при запуске увидеть такие:

$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50 $GPTXT,01,01,02,HW UBX-G60xx 00040007 FF7FFFFFp*53 $GPTXT,01,01,02,ROM CORE 7.03 (45969) Mar 17 2011 16:18:34*59 $GPTXT,01,01,02,ANTSUPERV=AC SD PDoS SR*20 $GPTXT,01,01,02,ANTSTATUS=DONTKNOW*33 $GPTXT,01,01,02,ANTSTATUS=INIT*25 $GPTXT,01,01,02,ANTSTATUS=OK*3B

Алгоритм Брезенхема

Этот алгоритм является одним из самых старых алгоритмов компьютерной графики - он был разработан Джеком Брезенхемом (IBM) аж в 1962 году. С его помощью происходит растеризация графического примитива, другими словами, этот алгоритм определяет координаты пикселей, которые необходимо зажечь на экране, чтобы полученный рисунок примитива совпадал с оригиналом.

Представим, что мы рисуем линию, идущую из точки (0; 0) в (100, 32) , как ты помнишь, у нашего экрана разрешение 128 x 64 точки. Несложно посчитать, что угол между этой прямой и осью Х составляет менее 45 градусов. Работа алгоритма заключается в последовательном переборе всех координат по оси Х в диапазоне от 0 до 100 и расчете соответствующей координаты Y. Логично, что в большинстве случаев значение координаты Y будет дробным, а это значит, что надо каким-то образом выбрать целочисленное значение координаты. Это делается путем выбора ближайшего пикселя. Для других углов наклона прямой, а также для окружностей, эллипсов и прочего алгоритм имеет аналогичный вид (подробнее о нем можно почитать в Википедии).

Алгоритм Брезенхема использует только операции сложения и вычитания целых чисел: обычно использование арифметики дробных чисел замедляет работу контроллера. Обычно, но не в нашем случае, поскольку внутри контроллера STM32F303VC находится ядро ARM Cortex-M4 с FPU. FPU (Floating Point Unit) - устройство, ускоряющее работу с дробными числами (математический сопроцессор), поэтому нас ничто не ограничивает и мы можем использовать алгоритм DDA-линии . Интересную демонстрацию ускорения работы МК при рисовании фракталов можно посмотреть на YouTube .

Железо

Что же мы используем в проекте?

  • Отладочную плату STM32F3-Discovery;
  • модуль UART GPS NEO-6M от WaveShare на базе приемника u-blox NEO-6M;
  • ЖК-матрицу МТ-12864А.

Про ЖК-экран я рассказывал в сентябрьском номере (№ 188), кратко лишь скажу, что сделан он на базе контроллеров KS0108, а схема подключения к STM32F3-Discovery не изменилась: разъем для подключения экрана содержит в себе 20 пинов, описание представлено в списке по следующей маске: <номер> - <название из даташита> - <описание из даташита> - <куда подключается>.

  • 1 - Ucc - питание - к 5V на Discovery.
  • 2 - GND - земля - к GND на Discovery.
  • 3 - Uo - вход питания ЖК-панели для управления контрастностью - к подстроечному резистору.
  • 4..11 - DB0..DB7 - шина данных - к PD0..PD7 на Discovery.
  • 12, 13 - E1, E2 - выбор контроллера - к PD8,PD9 на Discovery.
  • 14 - RES - сброс - к PD10 на Discovery.
  • 15 - R/W - выбор: чтение/запись - к PD11 на Discovery.
  • 16 - A0 - выбор: команда/данные - к PD12 на Discovery.
  • 17 - E - стробирование данных - к PD13 на Discovery.
  • 18 - Uee - выход DC-DC преобразователя - к подстроечному резистору.

NEO-6M

Данный приемник производится швейцарской компанией u-blox, основанной в 1997 году. Линейка модулей Neo-6 представлена разновидностями G, Q, M, P, V и T, каждый из которых обладает своими характерными возможностями: например, Neo-6P имеет возможность очень точного (с ошибкой <1 м) определения положения за счет метода Precise Point Positioning (PPP).

Приемник Neo-6M обладает следующими свойствами:

  • время холодного или теплого старта - 27 с;
  • время горячего старта - 21 с;
  • максимальная частота выдачи информации - 1 Гц;
  • диапазон частот импульсов на пин PPS - 0,25 Гц - 1 кГц;
  • максимальная точность определения положения - 2,5 м;
  • максимальная точность определения скорости - 0,1 м/с;
  • максимальная точность определения курса - 0,5 градуса.

Neo-6M умеет использовать SBAS (Satellite Based Augmentation System) - спутниковые системы дифференциальной коррекции, что увеличивает точность определения положения до 2 м, а также AGPS (Assisted GPS) для снижения времени холодного старта. Получение данных AGPS происходит с сайта u-blox с помощью сервисов AssistNow Online и AssistNow Offline (долгосрочный альманах). Модуль обладает поддержкой протоколов NMEA, UBX и RTCM. UBX - проприетарный протокол от u-blox, а RTCM - протокол для передачи модулю данных о дифференциальной коррекции DGPS. Также для связи доступны интерфейсы UART, I2C, SPI и USB.

Для работы с приемниками существует оригинальная утилита u-center, имеющая на момент написания статьи версию 8.11 (рис. 1).

Видно, что Neo-6M обладает огромным потенциалом, но детально описать все его возможности не хватит места, поэтому ограничимся предлагаемыми из коробки: только UART на скорости 9600, только NMEA, частота импульсов - 1 Гц.

В плане подключения все предельно просто: линии VCC, GND, RX и TX на приемнике подключаем к +3.3V, GND, PA9 и PA10 на Discovery соответственно.

Программа

Она должна отображать текущее положение приемника, скорость, направление движения, факторы снижения точности, время, дату, а еще показывать в полярной системе координат используемые спутники. Вот примерно так, как это делает u-center на рис. 2.

Как только строка line от Neo-6M принимается контроллером, происходит ее разбитие на токены (массив charTokens) - на подстроки, которые в исходной строке разделены запятыми.

Char *token = malloc(strlen(line) + 1); char *token2 = malloc(strlen(line) + 1); int currentTokenNumber = 0; int currentCharInTokenNumber = 0; strcpy(token, line); char *delimeter = ","; while (token != NULL) { token2 = strpbrk(token + 1, delimeter); if (token2 == NULL) { // В конце строки меняем разделитель на "*" delimeter = "*"; token2 = strpbrk(token + 1, "*"); } /* Копируем часть строки между разделителями */ currentCharInTokenNumber = 0; /* Очищаем значение токена */ memset(charTokens, "", MAX_TOKEN_LENGTH); for (char *ch = token + 1; ch < token2; *(ch++)) { charTokens = *ch; currentCharInTokenNumber++; } currentTokenNumber++; if (delimeter == "*") { token = NULL; } else { token = token2; } }

Казалось бы, вполне логично использовать функцию strtok , но я этого не делаю. Причину покажу на примере. Пусть имеется строка a,b,c . Результат разбития ее на токены с помощью strtok будет таким: "a", "b", "c" . Для разбора NMEA это недопустимо, поскольку в этом протоколе значения токенов зависят от положения в строке. Результат работы описанного выше метода включает в себя пустые токены - "a", "b", "0", "0" "c" .

Для удобного хранения информации о положении приемника, о точности определения положения, а также о параметрах спутников были написаны три структуры данных.

Положение и скорость приемника, а также дата и время:

Struct _minimumNavigationInfo { float latitude; char latModificator; // East or West float longitude; char lonModificator; // North or South float groundSpeed; float speedAngle; float height; char heightModificator; // Metres or smth else char time; // "hh:mm:ss" char date; // "DD.MM.YY" char isValid; };

Структура точности определения координат:

Struct _fixInfo { double PDOP; double HDOP; double VDOP; };

Структура о номере спутника, его положении и качестве сигнала:

Struct _satelliteInfo { int satelliteId; float height; float azimuth; float SNR; //signal-to-noise ratio -- соотношение сигнал/шум int isFull; };

Если информация о спутнике не полная, например есть информация о высоте и азимуте, но нет о соотношении сигнал/шум, то в поле isFull записывается нулевое значение. Такие спутники при выводе на «радар» будут игнорироваться.

Заполнение структуры на основе массива токенов происходит очень просто: после разбора строки GPGSA в массиве charTokens значения факторов снижения точности *DOP находятся в элементах за номерами 15, 16 и 17.

FixInfo->PDOP = atof(charTokens); fixInfo->HDOP = atof(charTokens); fixInfo->VDOP = atof(charTokens);

Теперь можно разобранную информацию смело выводить на экран (рис. 3).


Рис. 3. А вот и реальность!

FIN

Теперь ты знаешь, что в GPS тоже нет ничего сложного (если не лезть в дебри), а если тебе хочется понять суть спутниковой навигации, то добро пожаловать на курс от Стэнфорда GPS: An Introduction to Satellite Navigation, with an interactive Worldwide Laboratory using Smartphones или от Университета Миннесоты From GPS and Google Maps to Spatial Computing на Coursera.

А в качестве домашнего задания я поставлю перед тобой три задачи: 1. Добавить возможность записи трека. 2. Заменить монохромный экран на цветной. 3. Вместе с WizFi220 (из номера 188) снабдить устройство возможностью получения A-GPS. Если возникли какие-нибудь вопросы, пиши мне на email, который можно найти в начале статьи. Удачи!

SRC

Весь код ты можешь найти на https://github.com/argrento . Просто скопируй с заменой файлы в папку Template из Standard Peripheral Library.

Не забывай заземляться! Помни, что разряд статического электричества может убить и модуль GPS, и антенну, и экран, и контроллер!

Neo - Филип Кубски (родился 15.06.1987), без лишних комментариев является лучшим игроком в игровой индустрии Counter-Strike. Начал играть и побежать с 2002 года в cs 1.6. Неоднократно забирал первое место на крупном турнире WCG. Признан лучшим игроком в 2011 году.

Переход в давался очень трудно, геймер даже подумывал сменить дисциплину, так как не мог показать той игры, которую от него все ожидали. Но Филип не из простых людей, собрался с мыслями и в составе Virtus Pro забрал EMS Katowice в 2014 году. Следом завоевал с командой: ELEAGUE S1 и DH Las Vegas 2017. За свою карьеру, успел побывать в таких командах, как: Pentagram G-Shock, Frag eXecutors и ESC Gaming. Предпочитает играть со штурмовыми и снайперскими винтовками.

Вы только посмотрите, как этот дядя раздает на турнирах.
Наиграл 916 матчей - это только по официальной версии. Проиграл всего лишь: 379. На 12.07.2018 имеет 57 кубков, где 19 за первое место, 16 за второе и 22 за третье место. Примерный заработок составляет ~ $ 492 231, без учёта кс 1.6. Ниже Вы можете ознакомиться с настройками игрока, посмотреть прицел и скачать оригинальный .

Статистика
Киллов/Смертей: 0.79 КД разница: -234 Рейтинг: 0.89 Карт сыграно: 60 Киллов за раунд: 0.57 Смертей за раунд: 0.72 Хедшотов: 41.8% Раундов сыграно: 41% Настройки мышки
DPI: 400 eDPI: 724 Частота мыши: 500Hz Чувствительность мыши в игре: 1.81 Чувствительность мыши в Windows: 6 Чувствительность мыши в зуме: 0.85 Ускорение мыши: 0 m_rawinput: 1 Игровые видео настройки
Разрешение: 800 x 600 Соотношение сторон: 4:3 Размерность: (black bars) Частота обновления: 144 Настройки прицела игрока Neo
cl_crosshairalpha "200";cl_crosshaircolor "1";cl_crosshaircolor_b "50";cl_crosshaircolor_r "250";cl_crosshaircolor_g "250";cl_crosshairdot "0";cl_crosshair_t "0";cl_crosshairgap "0"; cl_crosshairsize "4";cl_crosshairstyle "4";cl_crosshairusealpha "1";cl_crosshairthickness "0.5";cl_fixedcrosshairgap "0";cl_crosshair_outlinethickness "0";cl_crosshair_drawoutline "0"; Конфиг

Sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update

Для исправления тиринга (обрыва картинки) для драйверов Nvidia нужно в Параметрах системы- Экран- Обеспечение эффектов- в опции Предотвращение разрывов выбрать Повторное использование. Затем нужно выполнить следующие команды:

Sudo sh -c "echo "export __GL_YIELD=2USLEEP2" >> /etc/profile" sudo sh -c "echo "export KWIN_TRIPLE_BUFFER=1" >> /etc/profile"

Установка deb пакетов по умолчанию осуществляется через Центр программ Discover, при этом в системе предустановлена программа Qapt . Для того что бы сменить по умолчанию открытие deb пакетов другой программой нажимаем правой кнопкой мыши по deb пакету- Открыть с помощью- В другой программе- выбираем из списка нужную нам программу и ставим галочку на Запомнить связь с приложением (для Qapt нужно ввести название qapt-deb-installer).

Дополнительно для удобства работы с пакетами и репозиториями можно установить программу synaptic:

Sudo apt install synaptic

Подключаем репозиторий Партнеры Canonical. Открываем synaptic - настройки-репозитории- ставим галочки напротив репозитория Partner.
Встроенная программа Discover (центр программ) позволяет устанавливать и удалять программы, отключать репозитории, проверять обновления. Так же для данной программы установлен и включен виджет Обновления в системном лотке нижней панели, который уведомляет о доступности обновлений. С помощью правой кнопки мышки по виджету можно выполнить проверку обновлений в Discover. В большинстве сторонних тем отсутствует значок виджета Обновленй, да и сама возможность установки обновлений через Discover может показаться неудобной. В таком случае можно установить Менеджер обновлений из Linux Mint (в рунете часто не рекомендуют его устанавливать в KDE neon из-за возможных проблем с зависимостями, на англоязычных форумах пользователи его устанавливают и отрицательных отзывов я не встречал, так же и у меня не было с ним проблем при обновлении KDE Applications), правда скачаем deb пакет из репозитория Maui Linux. Скачиваем и устанавливаем пакет mint-common , затем пакет mintupdate .

Устанавливаем Adobe flash player для браузеров на основе Chromium:

Sudo apt install adobe-flashplugin

Ставим дополнительные кодеки:

Sudo apt install kubuntu-restricted-extras

Шрифты. Для управления шрифтами используется приложение Шрифты
По умолчанию в KDE neon установлены шрифты Noto Sans, довольно хорошие, но мне нравятся шрифты Verdana . Дополнительно установил патчи Infinility.

Устанавливаем патч и шрифты от компании Microsoft:

Sudo add-apt-repository ppa:no1wantdthisname/ppa sudo apt-get update sudo apt-get upgrade sudo apt-get install fontconfig-infinality sudo apt-get install msttcorefonts

Перезагружаем систему и запускаем скрипт настройки шрифтов из патча Infinality:

Sudo bash /etc/fonts/infinality/infctl.sh setstyle

В появившемся окне выбираем нужный нам вариант (я выбрал Win7). Далее открываем приложение Шрифты и устанавливаем нужные нам шрифты.

Устанавливаем DnsCrypt (шифрование dns трафика) с помощью нескольких команд:

Wget https://raw.github.com/simonclausen/dnscrypt-autoinstall/master/dnscrypt-autoinstall chmod +x dnscrypt-autoinstall su -c ./dnscrypt-autoinstall

Установка автоматическая с одним запросом о выборе сервера.

Ставим pavucontol для настройки звука. Лично у меня опция по настройки звука уведомлений не срабатывала в стандартном виджете Громкость, pavucontol решил проблему.

Sudo apt install pavucontrol

Рекомендую ознакомится с приложением Rambox , которое служит для объединения большого количества чатов и почтовых сервисов в одно приложение.
Можно воспользоваться репозиторием пользователя Алексея, внесшего большой вклад в популяризацию KDE в рунете, для установки некоторых программ одной командой:

Sudo add-apt-repository ppa:varlesh-l/ubuntu-tools sudo apt update sudo apt dist-upgrade sudo apt install git muon kate clementine qbittorrent libreoffice libreoffice-l10n-ru libreoffice-help-ru sudo apt install yakuake p7zip-full ffmulticonverter simplescreenrecorder youtube-dl caffeine myspell-ru

Устанавливаем Redshift (аналог f-lux в Windows) -утилиту регулирующее цветовую температуру монитора, в зависимости от времени суток:

Sudo apt install libqt5qml-graphicaleffects redshift redshift-plasmoid geoclue-hostip Затем добавляем виджет Redshift Control на панель задач.

Решаем проблему с использованием VPN, установкой утилиты Fruho. Fruho - менеджер VPN-соединений с графическим интерфейсом, работающий через автоматическую настройку OpenVPN. Количество сервисов ограничено. Я с его помощью использую SecurityKISS и VpnBook. Скачать deb пакет можно с официального сайта.

Темы оформления

Для Plasma 5.9 доступны новые темы оформления Plasma, скачать их можно из настроек внешней среды Plasma. Они позволяют изменить внешний вид по подобию таких рабочих окружений как окружение в дистрибутиве ElementaryOS, окружениях Unity (Ubuntu) и Gnome Shell.

Подробнее показано на видео: Plasma 5.9

Оформление настраивается через применения глобальных тем, а так же через темы рабочего стола и оформление окон. В настройках каждого из них доступна опция по автоматической установки новых тем из Магазина KDE .

Рекомендую попробовать тему Arc KDE. Любителям темы из дистрибутива ElementaryOS можно настроить тему следующим образом: Устанавливаем глобальную тему внешнего вида рабочего окружения ELPlas (не нажимать на применение расположения виджетов, если не хотим изменять расположение виджетов (панели и меню запуска и других виджетов), в настройках Темы рабочего стола нажимаем на Загрузить новые темы, выбираем тему Evolvere и применяем ее. Скачиваем иконки и распаковываем в директорию /usr/share/icons/. Применяем иконки в настройках Значков (Параметры системы).

Устанавливаем видео обои:

Mkdir .local/share/plasma/wallpapers cd .local/share/plasma/wallpapers git clone https://github.com/halverneus/org.kde.video.git

Можно настроить горячие клавиши в приложении Konsole (терминал), для привычного копирования и вставки через ctrl+c и ctrl+v, для этого открываем терминал - Настройки- Комбинации клавиш и выставляем нужные нам комбинации.

Стоит отметить, что несмотря на то что используется новая версия KDE Plasma 5.9, а не отточеная версия 5.8 , рабочее окружение работает стабильно. Как правило сразу же после релиза встречаются проблемы, но в KDE neon они решаются в большинстве случаев через несколько дней.

1. Какая прошивка идет предустановленной на моем MINIX устройстве?

Все устройства поставляются с последним возможным обновлением. Вы можете проверить прошивки здесь: "Settings" -> "About Device" -> "Vendor Software Version". Пожалуйста учтите что все устройства MINIX продаются с предустановленной прошивкой разрешением 720р. Это обусловленно тем, что не все телевизоры поддерживают FullHD 1080p. Пользователи, нуждающиеся в прошивке 1080p FullHD могут скачать ее на нашем форуме - www.minixforum.com .

2. Как часто обновляется прошивка для устройств MINIX?

MINIX постоянно выпускает новые прошивки для всех устройств серии NEO включая G4, X5mini, X5, X7mini, X7. Наши официальные 720р прошивки доступны для скачивания в разделе загрузок нашего сайта. Прошивки с разрешением 1080р доступны на нашем форуме MINIX http://www.minixforum.com/ .

3. Будет ли внедрена технология автоматического обновления прошивок O.T.A (Over The Air) для устройств MINIX?

В данный момент мы работаем на тестированием нашех O.T.A обновлений. Мы надеемся представить эту систему нашим пользователям в первой половине 2014 года. Пока данная система не внедрена и пользователи должны производить обновления подключая устройства к ПК и пользуясь специальным программным обеспечением. Мы надеемся на ваше понимание и стараемся подойти к добавлению данной функции максимально оперативно.

4. Могу ли я обновить прошивку на моём устройстве MINIX NEO?

Да, конечно, вы легко можете сделать это, скачав свежую прошивку для вашего устройства из раздела "Загрузки" нашего сайта.

5. Как я могу обновить прошивку на моем MINIX NEO X7?

6. Как я могу обновить прошивку на моем MINIX NEO X5?

Для обновления вам необходимо скачать свежую прошивку и инструкцию по установке в разделе "Загрузки"

7. Как я могу обновить прошивку на моем MINIX NEO X7mini?

Для обновления вам необходимо скачать свежую прошивку и инструкцию по установке в разделе "Загрузки"

8. Как я могу обновить прошивку на моем MINIX NEO X5mini?

Для обновления вам необходимо скачать свежую прошивку и инструкцию по установке в разделе "Загрузки"

9. Мой компьютер не распознает MINIX устройство когда я его подключаю, что я делаю не так? 10. Как я могу обновить прошивку с помощью моего Apple MacBook?

К сожалению, невозможно обновить прошивку используя Apple устройства. Это можно сделать только используя ПК c установленной Windows XP, Windows 7, Windows 8.

11. Могу ли я обновить прошивку с помощью SD-карты? 12. Каков обьем внутреннего хранилища у устройств MINIX NEO X5 / NEO X7?

Внутренняя память данных устройств 16Гб, некоторое количество места занято предустановленными приложениями и Android системой. Оставшееся место разделено на два раздела: Internal Storage = 3.94GB, NAND FLASH = 10.51GB.

13. Каков обьем внутреннего хранилища у устройств MINIX NEO X5mini / NEO X7mini?

Внутренняя память данных устройств 8Гб, некоторое количество места занято предустановленными приложениями и Android системой. Оставшееся место разделено на два раздела: Internal Storage = 3.94GB, NAND FLASH = 2.25GB.

14. Как я могу выключить мой MINIX NEO X5 / NEO X7?

There are two options regarding how to turn off the MINIX NEO X5 / NEO X7. Either hold down the physical power button on the side of the main unit for approx. 3 seconds. A message will appear on the screen asking if you want to power off, select yes and the device will power off. Or alternatively, you will see the power icon along the task bar at the bottom of the Android home-screen. Click this icon and you will be presented with the options to either shut down, sleep or re-boot. Choose the appropriate option.

15. Где кнопка питания у устройств MINIX NEO X5mini / NEO X7mini?

Напоминаем, что оба этих устройства не имеют кнопки питания. В тоже время, эти устройства обладают функцией включения при наличии питания auto power-on feature, что означает, что наш мультимедиа хаб может работать в режиме ожидания 24/7/365. Устройства MINIX могут похвастаться очень низким энергопотреблением, так что не стоит переживать, оставляя устройство в режиме ожидания.

16. Как я могу убрать панель с иконками внизу экрана?

Вам следует в настройках выбрать опцию auto-hide the task-bar.

17. Как я могу отключить лаунчер MINIX?

Go to "Settings", then "Apps". Select "Gridshow". Then click on "Clear Defaults". When you next press the home button you will be presented with the options of what launcher you wish to use. Remember to select "Just Once" if you don"t want to make this launcher selection permanent.

18. Какая максимальная емкость внешнего жесткого диска поддерживается при подключении к устройствам MINIX?

Устройства MINIX совместимы с внешними жесткими дисками емкостью до 2.5Тб. Так же большинство подключаемых дисков не будут требовать внешнего питания для работы, успешно питаясь от usb-порта нашего устройства.

19. Какая максимальная емкость SD-карты поддерживается при подключении к устройствам MINIX? 20. Какие приложения предустановлены на устройствах MINIX?

Наши устройства поставляются с набором предустановленных приложений: Google Chrome, Gmail, Google Maps & Google Play Store. В дополнение к этим приложениям мы также установили AirDroid, AirPin PRO, Wi-Fi Display, Cloud TV, XBMC MINIX Edition, ES File Explorer.

21. Что за приложение AirDroid, и как оно работает?

AirDroid позволит вам управлять вашим MINIX устройством с помощью любого веб браузера! Вы сможете передавать файлы между MINIX и вашим ПК, без каких либо проводов. Для более подробной информации вы можете пройти на сайт разработчика этого приложения: http://www.airdroid.com/ .

22. Что за приложение AirPin PRO и как оно работает?

AirPin PRO это очень полезное приложение для всех пользователей устройств Apple с операцинной системой iOS. Приложение обеспечивает возможность передачи аудио, видео, содержимого экрана с вашего iPhone, iPad или iTunes на ваш ТВ. Не нужно ничего устанавливать дополнительно, при наличии WIFI соединения, просто активируйте AirPlay функцию на вашем устройстве под управлением iOS. Больше информации о приложении AirPin PRO вы можете найти на сайте разработчика http://www.waxrain.com .

23. Что за приложение Wi-Fi Display и как оно работает?

Wi-Fi Display это приложение, позволяющее отражать содержание вашего Android смартфона или планшета на экране телевизора. К сожалению, Wi-Fi Дисплей не совместим с устройствами Samsung и Sony. Пожалуйста, см. ссылку на Руководство для Wi-Fi Display: http://blog.laptopmag.com/miracast-android-mini-pc

24. Какую версию Skype вы рекомендуете использовать и где её можно скачать? 25. Какие вебкамеры вы рекомендуете использовать с MINIX? 26. Какую версию Youtube вы рекомендуете использовать и где её можно скачать? 27. Могу ли я передать содержимое экрана моего компьютера на моё MINIX устройство?

Да, это возможно с помощью специальных приложений, доступных в Play Market. Мы рекомендуем "Splashtop Remote Desktop". Splashtop Remote Desktop позволяет пользователю удаленно подключаться к своему компьютеру с другого компьютера или мобильного устройства для доступа к информации и запуска приложений. Для более подробной информации посетите сайте разработчика приложения: http://www.splashtop.com/ .

Мы рекомендуем пользователям использовать устройства управления MINIX, такие как NEO A1+ или NEO A2. На рынке существует большое количество подобных устройств, однако мы не гарантируем вам полную совместимость всех функциональных кнопок с нашими MINIX медиа приставками.

29. Какую версию XBMC проигрывателя вы рекомендуете использовать и где я могу её скачать?

Наши устройства поддерживают воспроизведение видео качеством 720p и 1080р. В сети доступно очень много разных версий медиаплеера XBMC, но вы рекомендуем специальную версию XBMC MINIX Edition, разрабатываемую нами в партнерстве с XBMC. Вы можете скачать приложение в разделе "Загрузки" нашего сайта.

MINIX devices are compatible with both PlayStation and Xbox controllers, simply sync the controllers and start playing ... Additionally, MINIX devices are also compatible with Android games controllers such as the MOGA PRO Series. We recommend either for enhancing your gaming experience.

31. Есть ли какие-либо приложения для смартфона или планшета, позволяющие контролировать мой MINIX?

К сожалению, не существует приложения по управлению MINIX из iOS. Для Android, есть приложение MINIX Android Remote App, спроектированное специально для серии MINIX NEO. Приложение может быть скачано и установлено на ваш смартфон/планшет и позволяет управлять вашим MINIX устройством удаленно. Более подробно

32. Какова разница между двух и четырех ядерными устройствами MINIX?

All our devices deliver the same features; all can achieve Full HD playback, browse the web, real-time audio and video streaming, XBMC and IPTV capability, have access to Google Play Store, and include Wi-Fi Display capability and AirPlay support. The main difference between dual-core and quad-core lies in gaming performance. Whilst all our media hubs can handle traditional popular Android games such as Angry Birds etc… our latest quad-core devices – the NEO X7 and NEO X7mini – are built to handle the next generation of more graphic intensive Android games.

33. Какова разница между моделями NEO и NEO MINI?

NEO X5mini v NEO X5, NEO X7mini v NEO X7? what’s the difference? ... Well the answer is connectivity and memory. The ‘minis’ are scaled-down versions, offering less connectivity and memory but at a more affordable price. The NEO X5mini and X7mini offer one less USB port, no OTG port, no microphone or audio jack, and they also have only half the amount of internal memory – 8GB, compared to the 16GB available on the NEO X5 and X7. Other differences that should be noted is the NEO X5mini doesn’t have Bluetooth capability in contrast to the other three, and the NEO X7 is the only device to offer Dual-Band Wi-Fi (both 2.4GHz and 5GHz).

34. Какова политика MINIX относительно изменения прав доступа к "root" моего устройства?

MINIX не предоставляет гарантию в случае изменения прошивки, получения доступа к root, ремонта устройства без согласия MINIX

35. Где я могу купить устройства MINIX в России? 36. Какова гарантийная политика дистрибьютора MINIX в РФ?

Официальный дистрибьютор MINIX в РФ предлагает 1 год гарантии на свои продукты. Наша гарантия обрабатывается и осуществляется непосредственным продавцом наших устройств (дилер, дистрибьютор, магазин).

37. Как я могу связаться с MINIX в России?

Даже если на сайте продавца написано, что модуль подходит для APM, то не факт, что в нем загружены верные настройки, поэтому нам необходимо сделать эту процедуру.

Вот так выглядят модули с RCTimer.com и MyAirBot.com:

На данных кроме самого модуля имеется flash-память для хранения настроек, конвертер логических уровней и стабилизатор питания 3.3В. На некоторых модулях конвертера может не быть, но память везде быть обязана! Если ее нет, то можно смело искать другой модуль. На модуле от MyAirBot.com на борту еще имеется внешний компас и светодиод для индикации 3D-fix.

Для настройки конфигурации нам понадобится:

1) Переходник USB-COM, например на микросхеме FT232RL (может быть и другой), который мы использовали для прошивки загрузчиков ATMega32u2 и ATMega2560 .
2) Программа U-Center. Можно скачать с официального сайта по ссылке .
3) Конфигурационный файл с настройкой для APM. Скачиваем . В архиве еще имеются сохраненные мной конфигурационные файлы.

Производим подключение переходника COM и в соответствии с: VCC-VCC, GND-GND, RX-TX, TX-RX.

Подключаем разъем USB переходника в ПК, устанавливаем по необходимости драйвер, в диспетчере устройств смотрим, какой назначился порт для переходника.

Устанавливаем программу U-Center на ПК, запускаем.

Нажмите кнопку с «волшебной палочкой» для установки автоматической скорости порта.

Выберите порт, который появился при подключении переходника.

После подключения в нижней части окна должны увидеть зеленый значок, это значит что модуль успешно подключился.

Нажимаем меню «Tools», «GPS Configuration» (GNSS Configuration в свежих версиях программы).

Выбираем конфигурационный файл «3DR-Ublox.txt» и в окне диалога нажимаем «Open». Ставим галку «Store configuration into BBR/Flash».

Нажимаем кнопку «File >> GPS».

Появится окно с предупреждением о несоответствии версий конфигураций, где надо нажать «Yes» (если слева в колонке версия не отображается, то необходимо сбросить настройки модуля на стандартные. Для этого нажимаем меню «Receiver - Action - Revert Config», после чего пробуем загрузить настройки снова).

Раньше до заливки конфигурационного файла мы могли видеть цветные квадратики, полоски в окне спутников, а теперь их нет. Это нормально!

Чтобы успокоиться и посмотреть данные спутников, необходимо нажать кнопку «Debug».

Теперь полоски могут долго не появляться из-за того, что после загрузки конфигурации был произведен холодный старт модуля. Модуль должен заново получить данные от спутников, чему могут мешать естественные и искусственные объекты и т.д. Теперь просто ждем. Ждать можно долго, но обычно продохит 5-10 минут и данные начинают появляться. Модуль в этот момент лучше разместить у окна. Постепенно появится больше и больше данных.

На данном этапе настройка модуля завершена и далее можно переходить к подключению.

Также можно воспользоваться другим способом настройки, используя плату APM в качестве связующего звена между ПК и модулем GPS. Для этого необходимо загрузить особую прошивку на плату, которая качается по ссылке и загружается через Mission Planner. ВНИМАНИЕ! Летная прошивка стирается и, после процедуры настройки модуля, необходимо опять загрузить летную прошивку, а так же произвести все настройки с нуля.

Ниже представлено видео данного процесса использования контроллера APM для настройки модуля GPS.

Update 15.06.2014:

Описание загрузки конфигурационного файла через контроллер APM.

Сергей Макаров:

Давайте с самого начала:
ПРОШИВАЕМ ЧЕРЕЗ APM:

Открываете пример: Файл -> Примеры -> Communication -> MultiSerialMega.
9600 .
Идете в U-Centre, загружаете конфиг, получаете ошибку, игнорируете.
Открываете среду Ардуино, в свойствах выбираете плату и порт.
Открываете пример: Файл -> Примеры -> Communication -> MultiSerialMega.
Редактируете две строчки:
Serial.begin(38400 );
Serial1.begin(38400 );

Жмете кнопку «Загрузить». APM теперь просто транслятор сигналов на скорости 38400 .
Идете в U-Centre, меняете скорость на 38400 , загружаете конфиг, уже не получаете ошибку, радуетесь.
Что может быть проще?
PS ну настройки APM ведь сохранили? Прошиваем любимую прошивку и восстанавливаем настройки только ручками!

Update 11.08.2014: Видеоинструкция от Юлиана.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: