Плюсы

воскресенье, 22 октября 2017 г.

Karadio - интернет радио на базе ESP32

Это вторая статья о замечательном проекте Karadio, который создан хорошим программистом и я уверен человеком, - JP Cocatrix. Страница всех его проектов на Github.
Но речь пойдет сегодня о новой ступени развития проекта Karadio - интернет радио на базе ESP32.
Постараюсь очень четко и по делу написать в помощь тем, кто, как и я плохо понимает иностранные языки, электронику.  Однако, иметь такое интересное радио хочется всем. Будет и просто перевод с github и мои дополнения.
Проект находится на стадии тестирования,  уверен, это скоро изменится. Для вывода звука можно исплользовать внутренний DAC (ЦАП), находящийся в ESP32 или подключить внешний DAC, например такой на Aliexpress.Ссылка может перестать работать, но можно поиском найти по запросу I2S PCM5102 DAC или просто I2S DAC. 
При использовании внутреннего DAC ничего не нужно, кроме усилителя, например PA8403 (с регулятором громкости даже). Либо использовать уже знакомую нам связку ESP32 и VS1053, при этом будет возможность прослушивать потоки AAC, чего нельзя сказать о режиме DAC или PDM. На режиме PDM я не буду останавливаться, потому что смысл будет такой же, как и у внутреннего DAC. Я попробовал включить этот режим, но шум сильный, как во время дождя. Автор Karawin пояснил, что нужна фильтрация. Я не стал заморачиваться, потому что с внутренним DAC качество воспроизведения меня удовлетворило. Если что можно применить внешний DAC или VS1053. Еще есть режим I2SMERU для подключения какого-то особого усилителя, можете сами разузнать.
Сначала займемся прошивкой ESP32. Будем говорить о заливке уже скомпилированной прошивки в память. Все необходимое для прошивки можно взять тут. Программа для прошивки здесь. Сама прошивка в нескольких файлах тут и тут. Скриншот программы, поясняющий куда и что заливать тут. Все выставляете, как написано, но пути к прошивочным файлам у вас могут быть свои (не стоит использовать пути с кириллическими символами, лучше только латиницей). Т. е. распаковываете все файлы для прошивки в отдельную папку (можно назвать ее Flash) на диске C: , потом путем нажатия на многоточия в конце строк прописываете аккуратно все пути к этим файлам. Правее в поле вводите то, что написано, на скриншоте.

Все остальное прописываете, как на скрине, кроме порта COM, его вы меняете на свой. посмотреть его можно в Диспетчере устройств, при подключении ESP32 появится COM порт (если драйверы вы уже поставили). Драйверы зависят от вашей операционной системы  и типа USB- COM адаптера, который установлен на вашей ESP32. Скорость BAUD как на картинке. Подключаете ESP32 к компьютеру и нажимаете START (у меня было так, никаких кнопок на самой плате я не нажимал). Ждете окончания прошивки и отключаете плату от USB. Можно приступать к соединению всей периферии.

Схема соединений

Сильно схеме не доверяйте, доверяйте только себе, но нарочно я не ввожу в заблуждение. Батарейки изображены условно, необходимо подключить 5В. Сегодня измерял ток потребления 0,15А при малой громкости. Блока питания на 0,5 - 1А должно хватить. Питание зависит от усилителя.
Итак,  если вы используете VS1053, то соединения такие:
 VS1053----ESP32 (номера GPIO)

XCS-----  GPIO_NUM_32
RST-----  GPIO_NUM_12
XDCS----- GPIO_NUM_33
DREQ----- GPIO_NUM_34
MISO----- GPIO_NUM_19
MOSI----- GPIO_NUM_23
CLK-----  GPIO_NUM_18
 
У меня номера GPIO указаны на самой плате или смотрите распиновку
Если используете внешний DAC по I2S, то соединения такие:
I2S DAC----ESP32
LRCK-------- GPIO_25
BCLK------- GPIO_26
DATA------- GPIO_22
Если используете DAC самой платы ESP32, то GPIO 25 и 26 подключаете к правому и левому каналу усилителя, а также соединяете GND усилителя и GND ESP32. GPIO 22 при этом не нужен. Также и для PDM режим, только надо будет выбрать его в web интерфейсе и все (ну и про фильтр вспомните для этого режима).
На данный момент поддерживается использование дисплея  OLED SSD1306 128x64.
Подсоединяем так:
SSD1306-----ESP32
SCL------ GPIO_14
SDA------ GPIO_13
МСС -----3.3v (или 5v)
GND-------GND
 
 
Энкодер:
DT-------GPIO_16
CLK ----  GPIO_17
SW------- GPIO_5
GND ---GND
+-----+5V
 
 
Дополнительно можно подключить светодиод для индикации работы радио ---GPIO 4.

Включение 

Проверяете все соединения и подключаете питание. На схеме показано общее питание для всей схемы, но предпочтительнее использовать отдельное питание для ESP32 и усилителя, для того, чтобы избежать дополнительных шумов. В режиме DAC при общем питании шумы я не заметил и качество хорошее. Смотрите сами. 
Через некоторое время после включения ESP32 создаст точку доступа WifiKaradio с IP адресом 192.168.4.1. Подключаетесь к этой сети с компьютера и в браузере переходите по этому IP. Переходите на вкладку SETTING и находите настройки Wifi. Вписываете данные своего роутера и нажимаете Validate, радио может перезагрузиться. В роутере ищите какой адрес IP выдан радио. В некоторых роутерах можно оставить автоматическую раздачу IP (DHCP), но для отдельных устройств назначить постоянные адреса, чтобы каждый раз не отгадывать IP.

После перезагрузки переходите в SETTING в Sound Setting и выбираете режим вывода звука, затем нажимаете Validate.

После перезагрузки можете приступить к формированию своего списка радиостанций или скачать уже созданный на вкладке SETTING---Playlist.



 Сегодня поговорим о добавлении к Karadio32 внешней платы DAC PCM5102. При выводе 
через эту плату звук стал более чистым и появились басы. При минимальной громкости в Web 
интерфейсе искажений никаких нет.
На плате есть выход Line Out для подключения внешнего усилителя. Наушники в этот разъем 
не подключить, звука никакого нет абсолютно. 

Схема соединений.

Схему подсказал пользователь сообщества Karadio.

PCM5102              ESP32
LCK                         GPIO25
BCK                        GPIO26
DIN                          GPIO22
XMT(XSMT)           подтянуть к +5в через резистор 10кОм
FMT                          GND
SCL(SCK)                 GND


Могут быть незначительные различия в названиях пинов PCM5102, но догадаться можно.
Также на плате есть пины для подключения внешнего усилителя (у меня это PAM8403)  LOUT LROUT AGND. Питание подал 5в.
При использовании данной платы нужно выставить режим I2S в Web интерфейсе Karadio.

пятница, 25 августа 2017 г.

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

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



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


Кстати, очень удобный патрон, зажимает до 4 мм, совсем не бьет. Можно зажимать любые насадки для гравера или сверла. Желательно еще иметь регулятор оборотов двигателя Такой

Общий бюджет данного устройства получился около 1100 рублей (без блока питания для компьютера). Блок питания можно использовать любой на 12 В (в зависимости от напряжения двигателя), но мощность его должна быть сопоставимой с мощностью блока питания ПК. Этот двигатель потребляет на холостом ходу 1,5- 2А. Под нагрузкой ток возрастает. Блок питания на 250-350Вт справится без проблем. Даже при заклинивании насадки аварийного отключения не происходит.

Регулятор оборотов от этого двигателя нагревается очень слабо, потому что нагрузка непостоянна. Регулировка очень полезна при работе с оргстеклом и плавящейся пластмассой. А при случае можно и пятки шлифовать или ногти полировать.
Двигатель имеет шариковый подшипник в передней части, сзади втулка. Вообще, моторчик внушает доверие, очень тяжелый и добротный. Излишка мощности и надежности не бывает.

Посмотрим, что же у нас получилось в итоге.


 Корпус для двигателя сделан из отрезка канализационной трубы, с торцов заглушен оргстеклом. Вырезы в корпусе для вентиляции. Спереди специальных отверстий нет, тольк зазор между валом и корпусом (4-5 мм). Побоялся делать вентиляцию спереди, потому что двигатель насосется пыли и помрет. Почти все собрано на термоклее из пистолета (сопледав). Нагрева сильного нет и прочность достаточная. Чтобы термоклей лучше держал, нужно предварительно разогревать склеиваемые поверхности. Я использую для этого паяльный фен. Клей черный Stayer.

Самоделка во многом превосходит готовую китайскую бормашину (гравер). Я могу сравнить, потому что у меня есть и такая. Нагревается самоделка меньше, при сопоставимой мощности. Минус самоделки в недостаточной скорости вращения, 10-15 тыс/минуту для некоторых насадок маловато. Но этот вопрос можно решить, купив двигатель с большей скоростью вращения. На Aliexpress выбор достаточный.
В целом устройство меня удовлетворяет полностью. Конечно, это не болгарка и металл резать ей проблемно, даже тонкий. Режет не так быстро, но справляется. Нагрев двигателя есть, но не критичный. Есть некоторое неудобство при гравировке, держать неудобно. При использовании нужно помнить, что вал двигателя, хоть и толстый, сломать его можно или погнуть. Поэтому, не стоит забывать, что у вас в руках инструмент для тонких работ. С пластмассой, деревом и другими не очень твердыми материалами справляется замечательно. Поэтому можно порекомендовать радиолюбителям при изготовлении корпусов для поделок, раскройка печатных плат. Можно резать, сверлить, зачищать, расширять отверстия различной формы, фрезеровать.


Бормашинка претерпела некоторые изменения и обрела некоторые детали напечатанные на 3В принтере. Держатель двигателя и кожух закрывающий патрон двигателя.
Сама бормашинка стала уже аккумуляторной. Произошло это после того, как блок питания испустил дух и я временно стал пользоваться аккумулятором шуруповерта для питания бормашинки. Потом нашел корпус от старого зарядника шуруповерта Hitachi, в который точно подходили мои аккумуляторы. Устройство стало более мобильным, а аккумуляторы одновременно можно применять и в шуруповерте и в бормашинке. Кстати,  аккумуляторы шуруповерта были переделаны на Li-ion после окончания срока эксплуатации Ni-cd батарей.
Смотрите на фото, очень хорошая идея использовать корпус зарядки для этой цели.

воскресенье, 30 апреля 2017 г.

Погодная станция на ESP8266 и цветном TFT дисплее ILI9341

На этот раз хочу рассказать вам об очередном интересном проекте из интернета, который я смог повторить. Речь идет о погодной станции на базе ESP8266 и цветного TFT ILI9341 дисплее. Это не совсем погодная станция, это скорее часы с прогнозом погоды.
Данные о пронозе погоды проект берет с достаточно экзотического места wunderground
На этом сайте несложно зарегистрироваться и получить свой бесплатный API ключ, который нужно будет прописать в скетче, а также указать ваш город и часовой пояс.
Проект использует много библиотек, всех и не упомнишь, но их можно найти легко на https://github.com Это ссылка на страницу самого проекта, который создал (вернее доработал) neptune2
Исходный код проекта создал squix78 , основная разница между ними - это вид отображения часов. В проекте neptune2 часы имитируют семисегментные индикаторы зеленого цвета.
Программирование все идет через Arduino IDE, почитайте в интернете как эту плату доустановить в IDE arduino-ide-esp8266 Необходимые иконки скачиваются из интернета самой платой. Единственное, хотелось бы независимости и заливать иконки в плату самостоятельно, но пока я не смог сделать этого.Вдруг тот сайт, на котором эти иконки хранятся рухнет. Подгрузка иконок с сайта происходит не постоянно, а только при форматировании SPIFFS, в лучшем случае это будет один раз.
Позволю себе предложить вам немного измененный вариант  СКЕТЧ 
Изменил чуть цвета, прогноз погоды на четыре дня, а не на три. И еще первым в прогнозе отображается не текущий день, а следующий. А сверху крупно также, как и было на текущий день.
Ну и показываю, как у меня это выглядит.
На последнем фото заменены иконки. Захотелось свой вариант. Заливал не через SPIFFS, а файловый сервер HFS. Ссылка на готовые иконки. Луна не поменяна.

понедельник, 2 января 2017 г.

Проект онлайн-радио Karadio на базе ESP8266 и VS1053



Хочу познакомить русскоязычных пользователей интернета с очень интересным проектом под названием Karadio. Данное устройство позволяет проигрывать потоки интернет-радиостанций, которых огромное множество на сегодня. Устройство полностью автономно и способно воспроизводить потоки без участия компьютера. Устройству необходим только выход в интернет посредством Wifi (например, с помощью роутера).
Для самого минимума постройки этого проекта необходимо две платы ESP8266 и VS1053. Можно добавить дополнительно усилитель для вывода звука на динамики и различного рода дисплеи для отображения информации о потоке. Понадобится еще блок питания на 5В и 3,3В или преобразователи напряжения DC-DC. При подключении дисплея необходима плата Arduino mini или nano.
На данный момент этот проект является самым прогрессивным на территории интернета (как мне кажется).

 С руссификацией дисплея уже разобрался, нашел в интернете шрифт кириллический на ЭТОЙ странице и просто скопировал его числовой массив в один из ненужных шрифтов. Править нужно файл u8g_font_data.c по пути "C:\Users\Andrew\Documents\Arduino\libraries\U8glib_Arduino-master\src\clib" у вас может быть чуть иной путь.
Теперь все нормально отображается, стало удобнее пользоваться радио, потому что я слушаю преимущественно русскоязычные радиостанции.
Более подробно об этом проекте можно узнать на страницах сайтов:

По этим ссылкам вы можете найти схему устройства, прошивку для ESP8266 и Arduino Pro mini, а также связаться с автором проекта, написать ему сообщение. Если вам понравится эта разработка, то есть возможность поддержать автора материально.

А пока можно посмотреть на то, как получилось повторить эту конструкцию мне. Онлайн-радио сделано на базе готовой mp3 колонки (кубика) Atlanfa, которую можно найти сейчас почти везде. Отсеком для дополнительных аккумуляторов я пожертвовал и разместил в нем дисплей и Arduino nano. Слева ручка потенциометра усилителя (громкость). Справа гнездо блока питания 5В. Позже я добавил гнездо для наушников. Динамики при подключении наушников не отключаются, просто убавляю громкость усилителя на ноль. Дисплей очень маленький, но его хватает для отображения минимальной информации, тем более практика показала, что и она не нужна. В будущем автор планирует добавить управление воспроизведением с помощью IR пульта. А пока есть возможность переключать каналы через Web-интерфейс в браузере смартфона или компьютера. Правда, есть еще возможность подключить несколько обыкновенных кнопок к радио, но я не стал этого делать, потому что они тоже требуют свободного места.
После включения радио начинает играть спустя несколько секунд. Web-интерфейс немного подтормаживает и долго не появляется в браузере. А в остальном все очень здорово. Качество звука хорошее, на уровне колонки Atlanfa примерно. Слышны тихие щелчки, видимо, их дает ESP8266 своей деятельностью. Возможно, кое-где стоит проложить экранированные провода (до усилителя).
При воспроизведении потребление тока около 500мА, а в момент запуска больше одного ампера. Без усилителя потребление было меньше. А сейчас со слабым блоком питания будут циклические перезапуски. Блок питания на 5В 3А позволяет без проблем пользоваться устройством, но это с запасом (другого не было у меня).