Activity

Озвучка для OpenTX на базе Google Cloud Text-to-Speech

Понятно, что сейчас все уже давно себе понаделали озвучки и статья несколько (лет на восемь, ага) несвоевременна, но тут даже скорее будет вопрос, а зачем, а почему именно на базе Google Cloud Text-to-Speech, когда и других движков навалом?

Объясняю. Совсем недавно я купил себе FrSky Taranis 2019+, и, соответственно, русскую озвучку я на него взял официальную отсюда: downloads.open-tx.org/2.3/…/opentx-x9d%2B2019/ , которую сделал некий Новиков Александр, если судить по этой статье: blog.rcdetails.info/ru-open-tx/ . А сделал он её с помощью программы TTSAutomate, выбрав в ней голосовой движок гугла.

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

Я начал искать другие движки, другие голоса, и пиратскую Ivona попробовал, ничего мне не понравилось. В итоге я набрел на ссылку cloud.google.com/text-to-speech , где нашел этот самый голос - “ru-RU-Wavenet-E”.

А так как у меня не было никакого желания переделывать вообще всю системную озвучку, я решил попробовать нагенерить свои фразы с его помощью. Ну и приступ перфекционизма видимо случился, иначе я объяснить свою возню с этим гемором никак не могу.

Совершенно не рассчитываю, что кто-то будет это повторять, скорее это попытка просто зафиксировать этот квест, успешно пройденный тем не менее.

Первое, идем по ссылке: cloud.google.com/text-to-speech. Немного ниже там есть секция Demo с демонстацией голосов:

Нужно выбрать Language - Русский (Россия), Voice Type - WaveNet или Basic и Voice name несколько разных типов. Потом забиваете в поле “Text to speak” какую-нибудь фразу и нажимаете синюю кнопку “SPEAK IT”. Меняя Voice Type и Voice name подбираете для себя нужный голос. Как я уже писал, мне больше всего понравился “ru-RU-Wavenet-E”, а судя по его одинаковому звучанию с официальной озвучкой Тараниса, это он и был раньше в TTSAutomate в голосовом движке гугла.

Дальше, ниже есть секция Documentation , в которой нас интересует часть “Quickstart: Using the command line”. В ней нажимаем на ссылку Learn more и попадаем на страницу Create audio from text by using the command line.

Там написана инструкция, как и что делать для использования Text-to-Speech-запросов из командной строки (и кто владеет английским, в общем-то и сам с этим справится, без моей статьи, но про причины её написания смотри выше).

Но сначала нужно выполнить пререквизиты (Prerequisites), для чего переходим по ссылке before you begin.

Там написано, что перед тем, как использовать Text-to-Speech, мы должны сначала включить API в Google Cloud Platform Console. Для чего нужно:

  • Включить Text-to-Speech в проекте (который тоже нужно предварительно создать).
  • Убедиться, что включен биллинг для Text-to-Speech.
  • Создать сервисную учетную запись для проекта.
  • Скачать приватный ключ сервисной учетной записи себе на компьютер.

Для начала, вам понадобится аккаунт в Google. Если у вас есть электроннная почта на gmail.com, то это он и есть. У кого нет, придется завести. И залогиниться.

Дальше, на этой же странице, в секции Setting up your Google Cloud Platform project идем по пунктам и выполняем каждый из них.

Пункт 1 - синяя кнопка Sign in to Cloud Console, заходим и попадаем в консоль управления Google Cloud Platform.

Пункт 2 - синяя кнопка Go to the project selector page.

Там чуть ниже правого верхнего угла будет кнопка “CREATE PROJECT”. Нажимаем её и создаем проект, собственно. Даем имя проекту, допустим “Google TTS for OpenTX”:

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

Нажимаем три полоски в левом верхнем углу > Billing. Нам выдается окно, что у проекта нет биллинг-аккаунта:

Поэтому, нажимаем в нём ссылку “LINK A BILLING ACCOUNT”, а после этого “CREATE BILLING ACCOUNT”.

Заполняем страну и описание, в описание больше всего подходит “Personal Project,” ставим галку, что мы согласны и нажимаем синюю кнопку CONTINUE.

На следующей странице вводим свой номер телефона, нажимаем синюю кнопку “SEND CODE” и в следующем окне вводим проверочный код, пришедщий на телефон и нажимаем синюю кнопку VERIFY.

На следующей странице вводим адрес и данные своей банковской карты (не надо бояться, никто у вас оттуда ничего не спишет без спроса) и нажимем “START MY FREE TRIAL”. Кстати, 60 минут этой озвучки в месяц совершенно бесплатны, это гораздо больше, чем нам нужно.

После этого, сверху в синей строке поиска вводим “Text-to-Speech”, в результатах поиска выбираем “Cloud Text-to-Speech API” и включаем нажатие на синюю кнопку ENABLE.

Дальше, нужно будет создать сервисную учетную запись. В левом верхнем углу нажимаем три палки > IAM & Admin > Service Accounts. Там будет сверху ссылка “+ CREATE SERVICE ACCOUNT”. Нажимаем её и заполняем поля:

  • Service account name - у меня это “srv_tts”.
  • Service account description - описание, у меня это “Service Account for TTS”.

Среднее поле заполнится само автоматически. Остальное не нужно, нажимаем синюю кнопку “DONE”.

После того, как учетная запись создастся, заходим в её свойства, вкладка DETAILS, там копируем в буфер обмена Email (у меня это srv-tts@…iam.gserviceaccount.com), переходим на вкладку PERMISSIONS и нажимаем кнопку GRANT ACCESS:

Здесь в поле “New principals” вставляем наш скопированный Email и в поле “Role” выбираем Basic > Viewer (больших прав нам для этой учетной записи не нужно). Нажимаем синюю кнопку SAVE.

Далее, всё в той же учетной записи идем во вкладку “KEYS”, нажимаем кнопку ADD KEY > Create new key:

В появившемся окне оставляем предложенный тип по умолчанию JSON и затем CREATE. Нам предлагается сохранить ключ к себе на компьютер, что мы и делаем. Есть смысл сразу создать отдельную папку под это всё, например D:\GoogleTTS, как у меня. Ну и сам файл тоже есть смысл переименовать во что-то более короткое и понятное, например srv-tts.json.

Всё, с сайтом Google Cloud Platform возня закончена, начинается возня с компьютером.

В первую очередь нужно скачать Google Cloud CLI installer с этой страницы: cloud.google.com/sdk/docs/install.

Скачиваем и запускаем установку. Там ничего особенного нет, всё оставлем по-умолчанию, единственно что, я настоятельно рекомендую выбирать устаноку для “All users”:

Сможете избежать некоторых незначительных проблем в будущем.

Далее, скачиваете прикрепленный к этой записи powershell-скрипт “TTS_Generate.ps1”, открываете его каким-то текстовым редактором (можно обычным Блокнотом, у меня на скриншоте это Powershell ISE) и редактируете его следующим образом:

  • В переменной $env:GOOGLE_APPLICATION_CREDENTIALS задаем полный путь к файлу сохраненного ранее ключа, у меня это “d:\GoogleTTS\srv-tts.json”.
  • В переменной $OutputFolderPath задаем папку, в которой будут создаваться файлы json и звуковый файлы wav. У меня это "d:\GoogleTTS\Sounds". Не забудьте её создать перед запуском скрипта.
  • В переменной $Strings построчно пишем через двоеточие сначала имя файла (без расширения, оно в скрипте прибавится само), а затем фразу, которую нужно озвучить:
fm01:Режим взлёта
fm02:Режим полёта
fm03:Режим посадки

И сохраняете файл. В общем-то это всё, кто хочет, может покопаться в скрипте и ещё какие-то параметры поменять, язык, к примеру, там всё понятно.

Далее, нужно запустить скрипт, но не просто так, а с модулем Google Cloud SDK. Для этого в меню Пуск ищем “Cloud Tools for PowerShell” и запускаем его. В него вставляем полный путь к файлу скрипта TTS_Generate.ps1 и нажимаем Enter:

Если вы сделали всё правильно, то сгенерируются звуковые файлы в папке d:\GoogleTTS\Sounds\ и на этом всё, можно их копировать на SD-карту в аппаратуре. Файлы json в этой папке можно удалить, они не нужны.

В дальнейшем, если нужно будет сгенерировать новые фразы, просто пишете их в скрипте TTS_Generate.ps1 и заново запускаете его из консоли Cloud Tools for PowerShell.

TTS_Generate.zip

Лимитер для планеров класса F5J за 350 рублей. Часть 2

Продолжаем, часть вторая. Первая здесь: Лимитер для планеров класса F5J за 350 рублей. Часть 1

  1. Скачиваем программу RS232-терминала, в принципе можно любой, но я тоже буду использовать Termite (скачать можно отсюда: www.compuphase.com/software_termite.htm ) и запускаем её.

  2. Заходим в настройки программы выставляем их в соответствии с даташитом JDY-23 так:

  • Порт - COM12 (тут ставите свой порт)
  • Бит в сек. - 9600
  • Биты - 8
  • Стоп. биты - 1
  • Чётность - нет
  • Polling - 150 ms

Для JDY-23 обязательно нужно поставить селектор на “Добавить CR+LF”, иначе получите ошибку Err:1003. Остальное оставляем по умолчанию.

  1. После выхода из настроек, терминал должен автоматически подключиться, если нет, нажмите на поле “Нет подключения. Установить связь”. После этого там должно появиться что-то типа того: “COM12 9600 bps, 8N1, без управл. потоком”.

  2. Вводим команды:

  • AT+VER - необязательно, просто для проверки функционирования устройства.
  • AT+MAC - аналогично, чтобы просто узнать MAC-адрес устройства.
  • AT+NAME<имя устройства> - задаем имя устройства. Без параметров выводит текущее имя устройства.
  • AT+BAUD3 - задаем скорость передачи данных 19200 bps.

Учтите, что скорость поменяется только после выключения и включения Bluetooth-модуля и если после этого вы вдруг опять захотите к нему подключиться терминалом, в настройках нужно будет выставить скорость 19200 bps.

Что касается имени, я не стал его менять и оставил по умолчанию. Если же вы планируете участвовать в соревнованиях, где будет как минимум два таких устройства, есть смысл сменить имя на что-то более уникальное. Есть, конечно уникальный MAC-адрес, но с именем будет удобней. Как-то так, к примеру:

AT+NAMELIMITER001
  1. Всё модуль настроен, отпаиваем проводки от него.

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

  3. Прикладываем модуль с обратной стороны ардуины.

Я паял в такой последовательности:

  • Сначала все провода к Bluetooth-модулю, красный (VCC) самый длинный, немного с запасом. Черный (GND) покороче, можно тоже немного с запасом.
  • Провод RXD - TXO прикидываем точно, учитывая резистор, от него проще плясать будет (опять же, можно взять обычные резисторы, а не SMD, немного подальше тогда отодвинется модуль, да и ничего страшного). Я паял сначала резистор к проводу, потом провод к Bluetooth-модулю.
  • Провод TXD - RXI будет изгибаться и пересекаться с предыдущим, надо его поточнее прикинуть. Я паял аналогично, сначала резистор к проводу, затем провод к модулю.
  • Когда все провода припаяны к модулю, прикладываем его на свое место и точно обрезаем провода VCC и GND по месту.
  • Аккуратно припаиваем сначала RXD - TXO, держа резистор пинцетом (счастливые люди те, кто возьмут обычные резисторы).
  • Затем аналогично TXD - RXI. Так как провода пересекаются, между ними обязательно должна быть изоляция.
  • И затем оставшиеся VCC и GND.
  1. С пайкой закончили, теперь надо прошить устройство. Подключаем USB-UART к лимитеру так:
  • DTR - DTR
  • RXD - TXO
  • TXD - RXI
  • +5V - VCC
  • GND - GND

И подключаем USB-UART к компьютеру. У меня тут уже готовое устройство на фото, но я бы советовал подождать с обтяжкой термоусадкой до полной проверки устройства.

  1. Скачиваем программку gcUploader отсюда: getchip.net/…/136-gc-uploader-avtomaticheskijj-zag…

Запускаем её, в появившемся маленьком окошечке нажимаем на шестеренку (Options):

Type выставляем “Pro Mini”, порт ставим свой (у меня COM12), а в поле HEX тащим из проводника файл прошивки (limiter.zip надо распаковать из вложения к этой статье или в теме Вячеслава), после этого путь к файлу там автоматически прописывается.

И нажимаем изображение чипа в левом верхнем углу, прошивка идет какое-то недолгое время, несколько секунд, пока не появится зеленая галка. Всё, готово.

  1. Теперь надо проверить. Подключаем к питанию разъем лимитера, который идет от регулятора хода (мама), напряжение должно быть 5V. Можно и сразу в самолет подключить, если кто сильно хочет.

Берем мобильный телефон на Android (для iOS придется поискать что-то аналогичное), заходим в “Play Market”, вводим в поиске “Serial Bluetooth Terminal” и выбираем из найденного списка Serial Bluetooth Terminal от Kai Morich, устанавливаем его.

Включаете Bluetooth и геолокацию на телефоне, потом открываете приложение “Serial Bluetooth Terminal”. При открытии приложения оно запросит разрешения, их надо ему обязательно дать, иначе оно не сможет искать наш лимитер. После открытия приложение выглядит как-то так:

Нажимаем три полоски в правом верхнем углу программы > Devices. Там переключаемся на вкладку Bluetooth LE и нажимаем кнопку SCAN рядом с шестеренкой в правом верхнем углу. При сканировании должен найтись наш лимитер. У меня это JDY-23 здесь:

Нажимаем на него и должен произойти коннект с лимитером:

Водим команды по одной

fly
inf
prm

Они должны отобразить разную интересную информацию. Всё, проверка пройдена. Можно еще видео посмотреть у Вячеслава:
rcopen.com/blogs/81730/23762

Для соревнований, нужны всего два параметра, собственно, Time motor и MAX_Start_Altitude.

Первый - это время работы двигателя в секундах, должно быть не больше 30-и. Если добавлено “DUBLE START!!!”, значит было повторное включение. Время мотора считается с первой секунды, но если время включения не превысило 2-х секунд, то система перейдет в начальное состояние и полет не будет засчитан. Таким образом пилот может включить модель и безбоязненно проверить работу мотора перед стартом коротким включением газа (до 2-х секунд). Автор устройства сделал это специально. Выходя на старт пилот должен быть абсолютно уверен, что техника работает и готова к полету.

MAX_Start_Altitude - это максимальная высота взлета модели с момента старта до момента выключения двигателя плюс 10 секунд. Именно эту цифру нужно писать в протокол.
Остальные параметры подробно расписаны у Вячеслава в статьях:
rcopen.com/blogs/81730/23390
rcopen.com/blogs/81730/23472

  1. Смываем флюс, обрезаем торчащие концы пинов, советую также их немного затупить надфилем, чтобы термоусадку не прорвать и, собственно, надеваем её и термоусаживаем. Я ещё предварительно из термопистолета в некоторых местах клеем капнул, чтобы провода не болтались. Финальное фото лимитера:

  2. Проверить решил на самолёте, не в полёте, так как не сезон, а так, поставил лимитер в свой планер (не весь, правда, а только фюзеляж), включил двигатель и полез с ним по лестнице. Двигатель отключился через 30 секунд, тут всё отлично. Постоял наверху 10 секунд, слез обратно. Вот такая информация была после этого, на 4.5 метра вверх залез:

Ну и лог тоже интересно посмотреть, но это уже сами ) Обратите внимание, что кнопки на M1…M6 можно привязать свои команды, как раз самые используемые шесть туда отлично поместились.

Фуух, всё, закончил )

limiter.zip

Лимитер для планеров класса F5J за 350 рублей. Часть 1

Ну не совсем 350, если честно, еще нужен будет преобразователь USB to TTL UART за 120 р., но, он покупается только один раз. Конечно, если вам нужен всего один лимитер, то от этого конечно не легче, но, тем не менее, даже 470 рублей в 12 раз меньше, чем 5700 рублей стоимости того же Altis Nano. На мой взгляд, это просто невероятно дёшево.

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

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

Сразу хочу предупредить, что, хоть эта статья и не является полным клоном статьи Вячеслава, принципиально нового в ней ничего нет (ну, разве что замена Bluetooth-модуля JDY-08 на JDY-23 и то это не очень принципиально), просто всё то же самое хотел описать более подробно, со всеми граблями, на которые я наступил.

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

  1. Основная плата Arduino Pro Mini 328P-AU 5V (на 5V нужна, обратите внимание) - 195. 55 р.
  2. Датчик высоты - I2C SPI BMP280 3.3 Digital Barometric Pressure Altitude Sensor - 45.81 р.
  3. Bluetooth-модуль - JDY-23 Bluetooth 5.0 Module - 86.61 р.
  4. USB 2.0 to TTL UART модуль - 6pin CP2102 USB 2.0 to TTL UART Module - 115.24 р.
  5. Резисторы на 1кОм в любом магазине радиодеталей типа Чип и Дип. Стоят копейки, 2-3 рубля за штуку, рублей на 10-20 всего выйдет.

В статье у Вячеслава указан Bluetooth-модуль JDY-08, но с момента ее написания прошло уже два года и он стал стоить какие-то совсем негуманные деньги (для такой мелочи). Поэтому, по совету автора, я приобрел модуль JDY-23, который ничем не хуже, зато сильно дешевле.

Стоимость я указал с самой дешёвой доставкой, на aliexpress надо быть аккуратнее, так как иногда продавцы меняют доставку по умолчанию на более дорогую.

Кроме того, понадобятся провода с серво-разъёмами папа и мама. Вообще, у каждого уважающего себя моделиста, эти провода должны иметься в достаточном количестве. У кого вдруг нет, можно купить удлинитель типа такого www.aliexpress.com/item/1005003259123577.html (запрос в поиске “servo cable extensions”) и разрезать его пополам, как раз получится то, что надо.

Также нужны будут временные провода для прошивки, можно наколхозить из тех же удлинителей, у меня же валялись такие штуки www.aliexpress.com/item/32228711415.html (запрос “2.54mm Pin Breadboard Cable Wire Arduino”), из них и взял.

Для начала схема. Лично мне её очень не хватало, потому что не всегда из фотографий понятно, что и к чему припаивать. Поэтому пусть будет. Схема нарисована для обычных людей, электронщики, будьте снисходительны к системному администратору, который компьютерные сети рисовать умеет, а всякие там печатные платы - нет. Схема и прочие фотографии в тексте кликабельны, по ссылке фото оригинального размера, чтобы было лучше видно:

Дальше сам процесс пошагово.

  1. Берем плату ардуины и припаиваем к ней разъём для программирования. С самой платой в комплекте идет идет угловой разъем из 6-и пин, нам же нужно только 5, поэтому один аккуратно отрезаем, он еще пригодится в будущем.

Разъём припаиваем наоборот (для большей компактности всего устройства), вставляя в плату длинными концами, а пластмассу в дальнейшем (в самый последний момент) уберём, для лучшего контакта, так как коротких концов может просто не хватить. Разъём припаиваем к контактам DTR, TXO, RXI, VCC, GND. Вывод GND в правом нижнем углу остается пустым, он нам ещё пригодится.

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

  1. Припаиваем два прямых пина к A4 и A5. Их удобней припаять в первую очередь, кроме своей основной функции, они будут работать как направляющие для проводов:

Что-то фото не очень удачное, вот с такого ракурса еще (это уже почти готовое устройство):

wr8jxg.dm.files.1drv.com/…/5.jpg?psid=1 (1.0 MB)

  1. Выпаиваем кнопку Reset-а, она не нужна, так как может случайно нажаться и будет мешать проводам.

  2. Дальше, на мой взгляд, удобней припаять минус. Берём провода с серво-разъёмами, один папа, другой мама и обрезаем с нужным запасом. Я, не мудрствуя лукаво, взял размеры проводов, выходящих за пределы платы, равными размеру аналогичных проводов в лимитере Altis V4 - 110 мм. Плюс по самой плате 40 мм, плюс запас 10 мм. Итого по 160 мм на каждый провод. И всё равно два раза перепаивал и вышло на сантиметр короче, чем надо, так что если кто в себе не уверен, лучше не 10 мм, а побольше запаса взять.

Прикидываем так, оба минусовых (черных) провода будут паяться к выводу GND, оставленному нами пустым в шаге 1, их нужно сделать примерно на сантиметр-полтора короче остальных проводов (те потом по месту отрежутся). Фото для пунктов 4…7:

  1. Припаяли минусовые, красиво уложили, дальше плюсовые (красные) паяем к выводу RAW. У меня что-то они получились коротковаты и вышло не очень, лучше из сделать немного подлиннее и обвести вокруг, чтобы получился прямой угол, тогда они не будут мешать датчику сверху. Перед пайкой, можно прикинуть, надеть датчик на пины A4 и A5 сверху, тогда будет понятно, какой длины делать плюсовые провода.

  2. Дальше, сигнальный (белый) провод (который идет к приемнику) будет контактировать с выводом 2 через резистор 1 кОм, но припаивать его мы будем к выводу 3, просто для лучшего крепления резистора.

Если честно, на мой взгляд не стоит оно того и можно взять обычный резистор, а не мучиться с SMD-шным. Но меня что-то перфекционизм заел и захотелось повторить подвиг Вячеслава. Я это сделал, конечно, но сто раз пожалел и проклял всё. Так как перепаивал несколько раз это место, в процессе умудрился выломать 3-й вывод из платы, слава богу что 3-й - лишь технический и не нужен нам. Если кто геройствовать не хочет, тому лучше взять обычный резистор и припаять его к выводу 2.

В итоге этих мучений я сформировал для себя следующую последовательность действий:

  • Отрезаем провод по месту с небольшим запасом (делать кривую в виде буквы S, как у меня, необязательно, но небольшой запас не помешает), зачищаем конец (лучше не облуживать, а то может и в отверстие не влезть и резистор к нему плотно не прижмётся) и вставляем его в вывод 3.

  • Берем SMD-шный резистор, прикладываем одним концом вплотную к проводу в выводе 3, вторым к выводу 2, пинцетом прижимаем его к плате и как-то фиксируем эту конструкцию, чтобы освободить руки.

  • Аккуратно припаиваем, причем резистор сверху платы со стороны выводов 2 и 3, а с обратной стороны - торчащий из пина 3 провод, на всякий случай.

  • Так как вывод 3 используется только для того, чтобы получше закрепить резистор, то нужно с обратной стороны платы аккуратно перерезать идущую к нему дорожку (а если паяете обычный резистор к пину 2, то, соответственно, резать ничего не нужно):

    У меня это автоматически получилось в тот момент, когда я случайно выломал этот вывод целиком, как я писал выше.

  1. Сигнальный (белый) провод, идущий от регулятора хода (ESC), загибаем и проводим под проводами, припаиваем его к выводу 7, тут всё просто.

  2. Припаиваем пины для выводов GND сверху и VCC внизу платы. Тут как раз пригодится тот угловой пин, который остался от разъёма для программирования в шаге 1. Правда, нужен второй такой, у меня угловых еще был запас, но, можно и из прямого согнуть, впритык, но хватит. Для VCC гнём примерно так:

убираем пластмасску, прикидываем с датчиком, как это будет стоять и припаиваем. Можно и потом конечно подогнуть, но, на мой взгляд всё же лучше поменьше гнуть уже припаянный на плате.

С выводом GND я сделал неправильно, не так понял, что в статье написано и почему-то подумал, что “площадка” - это одно из двух больших отверстий в датчике. Поэтому решил, завести его внутрь площадки отверстия, мне показалось так удобней, можно датчик просто сверху надеть на контакты и спокойно паять. Но, оказалось, что под “земляной площадкой” имелся в виду металлизированный слой на плате датчика, поэтому, спаяв всё устройство, я удивился, что датчик не заработал.

Полностью переделывать я не стал, на датчике BMP280, зачистил этот уголок вот так:

и капнул туда припоя, чтобы он соединился с пином GND.

Но, лучше, конечно, так не делать, а подогнуть пин снаружи датчика и припаять к зачищенному участку, как у Вячеслава и сделано, собственно. Фото, как надо, у меня нет, потому что уже сделал, как не надо.

  1. В этом пункте как раз берем датчик BMP280 и припаиваем все 4 пина к нему, VCC, SCL,SDA и GND. Про GND я в предыдущем пункте написал. Фото тоже там же.

  2. Подготовка Blueetooth-модуля к прошивке. В отличие от JDY-08, на модуле JDY-23 нет обозначений выводов и пришлось лезть в Интернет и искать на него даташит. В нём вот такая схемка:

Временно припаиваем провода с разъемами к модулю, к следующим выводам:

  • 1 VCC
  • 2 GND
  • 19 TXD
  • 20 RXD
  1. Вставляем разъемы в USB-UART-модуль так:
  • 1 VCC -> +5V
  • 2 GND -> GND
  • 19 TXD -> RXD
  • 20 RXD -> TXD

  1. Скачиваем драйвер для USB-UART модуля. Для того, который я купил (гуглится запросом “usb-uart cp2102 driver”) отсюда: www.silabs.com/…/usb-to-uart-bridge-vcp-drivers . Устанавливаем драйвер и подключаем модуль к USB-порту компьютера.

  2. Заходим в настройки диспетчера устройств Windows > Ports (COM и LPT) и ищем там наше устройство USB to UART. У меня это выглядит как-то так:

Нам оттуда нужен только номер порта, у меня это 12-й порт.

Так как весь текст в статью не влез, превышено какое-то количество символов, пришлось ее разбить на две части, вторая часть здесь: Лимитер для планеров класса F5J за 350 рублей. Часть 2.

Места для полётов в городе Орле

Решил написал этот пост в блоге, так как редактировать в форуме нельзя, всю информацию напишу здесь и буду её периодически обновлять, возможно пригодится тем, кто в Орле еще не влился в тусовку авиамоделистов (если такие еще есть конечно 😃 ), а также гостям города, решившим полетать вместе с нами. На форуме я создал тему Полёты в городе Орле, в которой продублировал этот пост и там же предлагаю всем писать о своем желании полетать в тот или иной день, чтобы вам могли составить компанию другие моделисты.

1. В Пугачевке сменилось начальство на более адекватное, полёты нам там разрешили, так что снова добро пожаловать. Только ведите себя прилично, рядом с самолетами и гостиницей не летайте, во время полетов тоже.

Аэродром в Пугачёвке, первое и лучшее место для полетов. Раньше, в сезон орловские моделисты собирались там буквально каждое воскресенье, сейчас, к сожалению, такого уже нет, так что всем добро пожаловать. Время - 18…22 часа, раньше обычно нет смысла, так как там проходят тренировки планеристов (на настоящих планерах которые летают, с человеком внутри 😃 ). Ну и ветрено днем обычно (зато термики 😛 ). Позже, соответственно, темно.

Из-за огромности поля (3x5 км) летать можно на чем угодно, недаром здесь проводятся чемпионаты России по свободнолетающим моделям и ракетомодельному спорту (проводились вернее, сейчас из-за проблем с гостиницей это стало проблематично 😦 ) плюс МАП осенью. Чемпионаты России на настоящих планерах тоже бывали когда-то.

Находится здесь: yandex.ru/maps/-/CCUveLTyLA

Смотреть в режиме спутника, потому что в режиме карты полная фигня. Ниже картинка, где нас на самом поле аэродрома искать. Обычно конечно и так видно 😃

Официальный адрес - д. Пугачёвка, Планерная улица, 97, Центральный планерный аэроклуб.

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

2. ВПП на 909-м, находится за кольцом на ул. Кромская, 12. На машине туда не заехать сейчас, ворота закрыты, к сожалению.

Находится здесь, смотреть в режиме спутника: google.ru/…/data=!3m2!1e3!4b1!4m6!3m5!1s0x0:0x0!7e….

3. Поле отдано под строительство, ни подъехать, ни летать там невозможно, это поле вычеркиваем, увы.

Карачевка. Небольшое поле за автодромом на Карачевском шоссе, смотреть в режиме спутника:
maps.google.ru/maps/ms?msid=207006599345061208268.….
Поворот на него сразу после автодрома.

Обычно там проводятся городские соревнования по свободнолетающим метательным моделям планеров. Полетать также вполне возможно, тем более что туда можно добраться не только на личном, но и на общественном транспорте.

Проезд по полю:

4. ВПП Лаврово - сразу за Лаврово есть старая взлетно-посадочная полоса для сельхозавиации. Резервная площадка, находится дальше всех и используется обычно, когда в Пугачевке нет возможности полетать из-за разных причин (тренировки планеристов/парашютистов, например).

Находится здесь, смотреть в режиме спутника: maps.google.ru/maps/ms?msid=207006599345061208268.….

5. ВПП на Наугорске, находится на Наугорском шоссе, перед поворотом на биофабрику. Возможно кому-то будет ближе, я сам не был там уже много лет. Также можно добраться на общественном транспорте, 3-ка автобус и маршрутки разные, которые на ЗБК идут.

Находится здесь, смотреть в режиме спутника: maps.google.ru/maps/ms?msid=207006599345061208268.….

Пост создан по мотивам этих тем:
Есть ли кто из Орла?
Есть ли пилоты в Орле?
уже закрытых.

Поправки и дополнения пожалуйста пишите в теме или в комментариях, буду вносить по мере сил 😃

Несколько фотографий, позволяющих оценить масштабы поля в Пугачевке: