В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Апаратный Hi-Fi аудиоплеер MkII. USB-Панель управления аудиоплеером. Пример использования с Nano PI NEO2

📆10 июня 2020   ✒️Sergiy_83   🔎8.335   💬9  

Всем датагорцам привет!!! А вот и я, и снова изобретаю аудиоплеер. Смотри также цикл моих статей об аудиоплеере «Raspberry Pi» на Датагоре.
Сегодня мы будем собирать классную Панель управления с графическим дисплеем и радиальный LED-индикатор громкости.
На этот раз я решил придать устройству универсальности: долой GPIO, даёшь USB!
Кто умеет работать с мини-компами, тот легко всё настроит сам на своём любимом. А для всех остальных предлагаем отработанный вариант для Nano Pi NEO2. Образ SD-карты с ОС и настройки в комплекте.

Как это работает?

Панель работает по USB-порту на любом компе под ОС Linux. С этим модулем для изготовления навороченного плеера нам подойдёт практически любой «пирожок» — одноплатный мини-компьютер с USB: Raspberry Pi, Orange Pi, Nano Pi, Banana Pi и пр.

Что важно при выборе мини-компа

• Хорошо бы иметь иметь на борту 4 USB-входа (пусть часть с гребёнки): 1 — наша Панель управления, 2 — внешний HDD, 3 — для флешки (если надо с флешки музыку слушать), 4 — на USB DAC, например, наш Project-1 «Goldsmith».

Если портов USB не хватает, а на недорогих мини-ПК USB-порт обычно всего один, можно применить модули — хабы USB2.0. Мной на практике не проверено, я такой хаб не заказывал. Но народ пишет в Сети, что работает.


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

• Если вы предполагаете подключить внешний ЦАП по I²S, то необходимо убедиться, что у одноплатника выведен I²S (обычно на гребёнку). Есть образы ОС от Nik Kov с прописанной поддержкой I²S для следующих плат: nano pi neo2, nano pi air, nano pi neo plus2, nano pi neo, cubietruck. С другими платами нужно разбираться самостоятельно.

Видео тестирования Панели

Слушали когда-нибудь музыку на осциллографе? Хотите попробовать? А придётся! ? Просто на момент теста не было у меня внешнего ЦАПа.

Панель формирует и отправляет сигналы управления от кнопок и энкодера по USB соединению на специально написанную софтинку и далее на программный плеер Linux, а также получает от миним-компа обратную связь и отображает информацию на графическом дисплее.
? Поддерживается управление плеером со смартфона!

Особенности Панели управления

? Важнейшая фича — подключение по USB. Позволяет организовать стационарный плеер на любом Linux-компьютере, без привязки к GPIO.
? Все органы управления подключаются к плате Панели.
? Использованы популярные недорогие дисплеи (т.н. «ардуиновские»).
? Новый блок индикации уровня громкости для новой Панели.
? Платы заводские, ниже ссыка на заказ.
? Переработан код МК.

Структурная схема

Этот плеер, как законченное устройство, я пока не собрал, но ему однозначно быть. Структура его немного изменилась. Обновим в памяти что к чему, см. Рисунок 2.

Рис.2 Структурная схема аудиоплеера 2-й версии.

Эта упрощенная структурная схема, на ней не показаны еще блоки питания устройств.

USB плата расширения — обслуживает переднюю панель устройства (плеера). К ней подключается TFT дисплей, клавиатура, энкодер, индикатор уровня громкости, регулятор уровня громкости PGA2310.

Кнопки управления плеером - это обычные кнопки без фиксации, один вывод которых объединен и подключаются к общему проводу.

TFT дисплей — это китайский модуль MAR3955 или MAR3502 предназначенный для Arduino UNO, вставляются в USB плату расширения.

Энкодер регулировки громкости — обычный AB-фазный энкодер. Подключается напрямую к плате.

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

Так же возможно регулировать яркость дисплея. Регулятор громкости, как и в прошлый раз, будет на PGA2310. USB плата расширения поддерживает именно этот чип. Регулятор громкости теперь можно отключать вообще (в параметрах программы). Или можно задействовать программный регулятор громкости подсистемы ALSA, если он, конечно, поддерживается драйвером.

Дисплей, кстати, тоже можно отключить, случай когда дисплей ещё не прилетел из Китая, а уже всё собрано и слушать плеер уже очень хочется. Индикатор уровня громкости так же можно отключить в параметрах. Всё можно отключать, даже сама плата расширения не обязательное устройство.
Если в параметрах программы Audio Commander не указывать ни одного устройства, то остается только сетевое управление плеером с Андроида.

Графические дисплеи для проекта и новый интерфейс

Нормальные дисплеи в Китае найти не так уж легко. А дождаться их ещё сложнее. Я выбирал среди модулей для Ардуино, с экраном на 3,5 и 3,9 дюйма, с разрешением 480×320. Другой критерий выбора — контроллер. Нам подойдут ILI9486 (очень популярный) или ST7796S.
И, наконец, берём платы с резистором ограничения тока подсветки (R1) с обратной стороны. Таких дисплеев нашлось не мало. Основная масса из них это клоны модулей MAR3502 и MAR3955.

Дисплей 3.5 дюйма 480×320 на ILI9486 заказываем тут, тут, или тут. Везде есть выбор - с или без сенсорной панели.

Дисплей 3.95 дюйма 480×320 на ST7796S заказываем тут.

Хочу отметить, что эти модули хорошо документированы.


Рис 3. Модуль для Arduino UNO — MAR3502


Чем же они хороши? Во-первых, они яркие. Углы обзора очень даже ничего. А самое главное, подсветку запитали через резистор R1. Додумались наконец-то! В идеале нужно было бы повесить на каждый светодиод по резистору, но спасибо и на этом.


Рис 4. Модуль для Arduino UNO — MAR3955


Мы же этот резистор отпаяем совсем и соединим проводом с платой расширения для регулировки яркости подсветки. См. рисунок 4. Регулировку яркости я сделал для галочки, так как есть регулировка на индикаторе уровня громкости. Главное, что дает это соединение — это возможность выключить подсветку на время, пока дисплей не инициализарован. При старте на дисплее «каша», и, чтобы это исключить, я включаю подсветку с задержкой.

У китайских модулей от mcufriend (красного цвета обычно) подсветка сидит без резисторов прямо на питании 3.3V. Платы у них разведены под несколько дисплеев, поэтому, что там сейчас припаяно, не знает даже продавец. Не рекомендую с ними связываться!

Я по началу купил себе такой, тачскрин был наклеен криво и закрывал где-то 5 пикселей. Он долго не протянул, пустил полосу. И когда я его оторвал от платы, то заметил разрезанный шлейф, в котором была подпаяна какая-то «сопля». Я так понял, платы были косячные и они исправляли брак, ставя перемычку в шлейфе. Извращенцы. ?



Рис 5. Новый графический интерфейс 480×320

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

В прошлой версии плеера у меня было целых два дисплея, да дефицитные к тому же. Теперь я исправился. На разрешении 480×320 у меня входит вся необходимая информация на один дисплей.


Рис 6. Новый графический интерфейс 320×240 на дисплее с разрешением 480×320


Здесь вторая строка — информационная, информация постоянно меняется. Например, покрутил громкость — напишет уровень громкости на некоторое время. Шрифт новый — 8×12, немного пришлось его ужать по высоте, чтобы влезли десять строк. Да, да, в Пайнте пришлось 255 символов отредактировать. ?
Выбор контроллера дисплея и разрешение графического интерфейса производится при компиляции прошивки в файле S83_configuration.h.

Пока ждал дисплеи из Китая, сделал графический интерфейс 320×240 для контроллера RM68090, он же ILI9325, но на этих дисплеях модули я не покупал. Просто он у меня завалялся с какого-то китайского «айфона».

Схема и устройство Панели управления


Рис. 7. Схема Панели управления плеером

Схему в высоком разрешении скачать можно во вложениях. Панель выполнена на популярном микроконтроллере STM32F103C8T6.

Список элементов


Полные списки берите в pdf-ках:
🎁bom-usb-eb.pdf  489.32 Kb ⇣ 55
🎁bom-vol-leds.pdf  482.18 Kb ⇣ 45

Печатная плата в сборе


Рис 8. USB-Панель управления в собранном виде

Как говорил выше, плата заводская.

Назначение разъёмов

Рассмотрим назначение разъемов.
X1 — Подключается к USB порту компьютера.
X2 — AB-фазный энкодер. Сигналы относительно GND. Pin 5V не используется.
X3 — LCD модуль.
X4 — Плата индикации уровня громкости.
X5 — Регулятор громкости на PGA2310
X6 — Зарезервирован
X7 — Кнопки управления плеером. Сигналы относительно GND. Pin 5V не используется.
X8 — LCD модуль.
X9 — LCD модуль.
X10 — Питание платы 5V. Сигнал 'W' — сигнал для блока питания (для снятия питания). Через USB шнурок питать конечно можно, но не стоит. Лучше завести отдельно от блока питания.
X11 — Разъем программирования. Разъем для подключения программатора ST-Link v2.

Регулировка яркости дисплея

Уделим внимание схеме регулировки яркости дисплея. См. Рис. 9. Возможно, потребуется небольшая настройка.

Рис. 9. Схема регулятора яркости LCD дисплея.


Выводов у STM32F103C8T6 не хватило для моих нужд, я решил расширить их сдвиговым регистром IC3. Пять первых разрядов R2R-матрица преобразует цифровой двоичный код в аналоговый сигнал, который в свою очередь подается на стабилизатор IC4 или IC5.

Я развел плату под два вида корпусов стабилизаторов: SOT223 и TO252. Стабилизатор на 1.8V, например, LF18 или FSP2160-1.8. Основное требование к стабилизатору — это минимально возможный ток по земляному выводу GND. Иначе, этот ток будет влиять на напряжение с R2R матрицы. В идеале эти стабилизаторы должны быть выполнены по CMOS-технологии, как FSP2160, но её нигде не удалось найти.

При питании IC3 = 5V и при 50% установленной яркости напряжение с выхода R2R составит 2,5V. При запайке LF18 оно поднялось до 3V. Далее вступает в работу резистор R25, R26. Его задача — снизить это напряжение. Я хотел вместо этих резисторов ставить подстроечный, но потом забыл. Этот резистор должен обеспечить при 100% заданной яркости минимальное рабочее входное напряжение для стабилизатора, при этом на выходе LF18 получается 4,5V. Для LF18 подойдет 470 Ом.

В итоге мы получим изменение напряжения где-то от 1,8V (2V) до 4.5V. Яркость светодиодов LCD матрицы резко падает, когда на них выпадает меньше 2 Вольт. То есть, нет смысла регулировать напряжение меньше 2V. А если выходной транзистор стабилизатора полевой, как у FSP2160, то от 2 до 5V.

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

Исходный код

С помощью программы STM32CubeMX была сгенерирована заготовка USB Custom HID device, потом немножко допилена вручную. Проект для среды разработки Keil uVision 5.
Обработка энкодера и клавиатуры организована с помощью прерываний. В файле перед компиляцией S83_configuration.h выбирается графический интерфейс и тип контроллера LCD дисплея, а так же ориентация изображения на дисплее.

//Выбор графического интерфейса плеера для разных разрешений экрана
//#define CONFIG_GUI_320×240 1
#define CONFIG_GUI_480×320 1

//Выбор контроллера дисплея
#define CONFIG_LCD_ILI9486 1 //480×320
//#define CONFIG_LCD_ST7796S 1 //480×320
//#define CONFIG_LCD_ILI9325 1 //320×240
//#define CONFIG_LCD_RM68090 1 //320×240

//Выбор ориентации картинки
#define CONFIG_ORIENTATION_LANDSCAPE_01 1
//#define CONFIG_ORIENTATION_LANDSCAPE_02 1


По умолчанию выбран графический интерфейс 480×320 и контроллер ILI9486. С помощью LANDSCAPE_02 можно перевернуть изображение вверх ногами, может пригодится, если механически дисплей нужно будет перевернуть в корпусе устройства, при сборке. Ориентация осуществляется контроллером дисплея. После изменений нужно пересобрать проект.

Добавление поддержки других дисплеев

За тип дисплея (ILI9486) отвечают 2 файла S83_lcd_ILI9486.h и S83_lcd_ILI9486.с — можно назвать их драйвером. Для добавления новых дисплеев нужно написать и добавить по аналогии эти файлы. Затем указать их, аналогично используемым, в файлах S83_lcd.c S83_lcd.h и файле конфигурации S83_configuration.h.

Прошивка платы Панели управления

Прошить контроллер можно прямо из среды Keil. Можно прошить с помощью STM32 ST-LINK Utility. Я прикреплю два HEX-а для ILI9486 и ST7796S. Чисто для прошивки нет смысла устанавливать Keil. Прошивается с помощью недорогого программатора ST-Link v2.

Круговой индикатор уровня громкости


Рис 10. Индикатор уровня громкости

Эта первая схема, которую я начертил в Altium Designer и заказал печатные платы. Получилась с первого раза. Построен на пяти сдвиговых регистрах 74HC595. Четыре для светодиодов и последний для регулятора яркости.


Рис 11. Схема индикатора уровня громкости


Принцип регулировки яркости тот же, что и на плате расширения. Плата разведена под стабилизатор SOT223 (FSP2160B — 1.8V). Стоит заметить, что в даташите по FSP2160B распиновка ошибочна и соответствует классической AMS1117.

Применены светодиоды — китайские LED «кирпичики» 2×5×7 мм, яркость приблизительно 1000 — 1500 mcd.
NB! На схеме светодиоды, по ошибке, нарисовал в другую сторону, поверну как положено в следующей версии платы.

Программные новшества. Audio_commander (AC83) + клиент для Android (С83)

Подпилил напильником поддержку CUE, под все кривые CUE файлы, конечно, не подстроишься, но теперь вроде все работает, как надо. Многофайловые CUE теперь тоже учтены. Многофайловые — это когда на каждую песенку по аудио файлу, а еще бывает, например — аудио файлов 4, а треков 20.

В плеере все же должна быть возможность создавать собственные плейлисты. Добавил два типа плейлистов.

Первый тип плейлиста — это просто целевая папка.

Так как у меня плеер по папкам, то пускай, создать папку — это и будет создать плейлист. А добавлять в нее будем жесткие ссылки файловой системы. Все современные файловые системы поддерживают жесткие ссылки.

Чем хороша такая ссылка? Это готовый ярлык, ничего своего изобретать не надо. Если попытаться удалить файл, на который ссылается жесткая ссылка, то файл все равно останется в плейлисте, так как удаляется не файл, а одна из записей о файле в файловой системе. Папку тоже можно добавить в плейлист, только это уже будет символическая ссылка.
Придумать можно все, что угодно, а вот реализовать это на экране смартфона, да чтобы ещё и удобно было — это самое сложное.
Я все сделал через контекстное меню (см. рисунок 12).

Рис. 12. Контекстное меню каталога (плейлиста)


Второй тип плейлиста — фоновый плейлист.

Это временный плейлист, который мы слушаем в данный момент; при смене каталога во время воспроизведения, играющий список автоматически становится фоновым. Это сделано для того, чтобы можно было полазить по папкам и набросать в плейлист файлов. Можно выделять и выполнять некоторые действия над группой файлов. Например удалять файлы в корзину, или просто из списка, или добавлять в плейлист.

Что еще? Еще можно переименовывать файлы.

Также задействован программный эквалайзер mplayer-а, при необходимости настройки эквалайзера можно задать для каждой папки (плейлиста) индивидуально. Считается, что эквалайзер это зло, но моим 50АС-106 он очень помогает. В любом случае, этот «вредный» фильтр можно отключить и не использовать.

Mplayer

Напомню, я его использую в качестве инструмента для воспроизведения аудиофайлов. Попал он мне под руку в этот раз основательно.
Немного разобрался в исходниках, удалил все связанное с видео, или почти все. Теперь он компилируется не пол дня, как раньше, а минут 10, в зависимости, конечно, от мощности компьютера.
В планах разобраться полностью, как он устроен.

Пара слов о Nano PI NEO2

Прикупил я когда-то Nano PI NEO2, маленький, полноценные USB, чип снизу — удобно для охлаждения. И вот, дождался этот миникомп своего часа.
Апаратный Hi-Fi аудиоплеер MkII. USB-Панель управления аудиоплеером. Пример использования с Nano PI NEO2
Рис. 13. Невероятно маленький Nano PI NEO2, всего 40×40 мм!



Рис. 14. Внешний вид с обеих сторон



Рис. 15. Полная распиновка Nano PI NEO2


NanoPi NEO2 — это маленький одноплатный компьютер ARM от FriendlyElec. Используется 64-битный четырехъядерный SoC от Allwinner H5 (ARM Cortex-A53). Графический шестиядерный процессор Mail450, 512 МБ DDR3. Есть готовые файлы образов ОС UbuntuCore и Armbian.
Кроме того, в таком небольшом размере Nano PI имеет Gbps Ethernet и USB-порт.
Для хранения данных служит сменная карта microSD. Питание 5V/2A подается через разъём MicroUSB. Есть последовательный порт отладки и 24-контактный GPIO.

Купить Nano PI NEO2 можно на Aliexpress. Или у другого продавца Nano PI NEO2 v1.1. Или тут: несколько предложений Nano PI NEO2
Имеются разнообразные платы расширения с дополнительными разъёмами и функционалом.

Образ ОС на SD-карте для Nano PI NEO2

Здесь всё просто — записал образ на карту памяти и готово. Образ на microSD карту можно записать с помощью Win32DiskImager, например. Минимальный объем карты 2 Gb.

За основу был взят образ с Volumio, предложенный Nik Kov. Он дописал ядро Linux, и теперь NanoPI Neo2 может работать в двух режимах I²S — Master и Slave.
Volumio я удалил и поставил в автозагрузку свой Audio commander.

В образе включен режим Master. Можно использовать, подключив по I²S, ЦАП на PCM5102, или мой первый ЦАП на СS4350 и многие другие.

Карту нужно отформатировать в ext4, необязательно конечно, но нужно иметь ввиду что в fstab он монтируется как ext4 в /media. Туда же автоматически монтируется USB флешка, вставленная в свободное USB гнездо.

IP адрес назначается по DHCP автоматически. Я рекомендую на роутере привязать какой-нибудь IP адрес к MAC адресу, чтобы всегда назначался один и тот же IP адрес.

Настройки для входа по SSH: root / pi.

Файлы

🎁Проект Панели управления в Altium  2.81 Mb ⇣ 56
🎁Проект индикатора уровня громкости в Altium  1.27 Mb ⇣ 36
🎁Список деталей bom-usb-eb.pdf  489.32 Kb ⇣ 55
🎁Список деталей bom-vol-leds.pdf  482.18 Kb ⇣ 45
🎁Исходный код программы Панели  1.16 Mb ⇣ 43
🎁Скомпилированные прошивки для Панели  56.68 Kb ⇣ 39
🎁Исходный код Audio Commander «AC83»  125.04 Kb ⇣ 34
🎁Скомпилированные бинарники «AC83» и mplayer для разных архитектур x86, armv7, aarch64  3.54 Mb ⇣ 46
🎁Исходный код клиента для андроид «C83»  5.64 Mb ⇣ 35
🎁Установочный архив клиента для Андроид C83.apk  7.4 Mb ⇣ 38
🎁Исходный код оптимизированного mplayer  1.78 Mb ⇣ 33

Ссылки

Мой готовый образ ОС для NanoPi NEO2 в облаке mail.ru
Образы ОС от Nik Kov с прописанной поддержкой I²S
Документация на дисплейные модули MAR3502, MAR3955 и др.
Программа STM32CubeMX для быстрого конфигурирования чипов STM32
Среда разработки Keil uVision 5
Официальный Вики по NanoPi_NEO2
Программа Win32DiskImager

Спасибо за внимание.
Продолжение следует!


Быстрый заказ заводских плат проекта

Плата #1 — основная плата USB Панели управления
Плата #2 — радиальный LED-индикатор громкости

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 42 читателя.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.

13 марта 2023 изменил Datagor. Правка иллюстрации Рис. 8.

 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 3. Регулятор громкости на PGA2310... Всем читателям datagor.ru привет! Продолжаем строить аудиоплеер. Сегодня подключим к «Raspberry...
Схема на Датагоре. Новая статья Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 5, заключительная... Всем привет. Эта не последняя статья о моем аудиоплеере. Время разработки составило четыре года, и...
Схема на Датагоре. Новая статья DVD/VCR/HDD рекордеры и проигрыватели. Устройство и ремонт... DVD/VCR/HDD рекордеры и проигрыватели. Устройство и ремонт Серия «Ремонт» №107. Приложение к...
Схема на Датагоре. Новая статья DVD-проигрыватели. Устройство и ремонт... DVD-проигрыватели. Устройство и ремонт. Серия «Ремонт» №96. Приложение к журналу «Ремонт...
Схема на Датагоре. Новая статья Предварительный усилитель на аудиопроцессоре TDA7318 (TDA7313) и Arduino. Часть 1... Благодарим Тимофея Носова за идею проекта на TDA7318. При построении усилителя звуковой частоты,...
Схема на Датагоре. Новая статья Проект «BRASS». Часть 2. Блок ДУ и mp3-модуль... Привет, камрады! Всех с майскими праздниками Мира, Труда, Радио и Победы! В первой части статьи о...
Схема на Датагоре. Новая статья Ремонт и модернизация мультиметра UNI-T UT60E. Цветной TFT-дисплей, литиевый аккумулятор... Всем датагорцам и гостям нашего кибер-города привет! :bye: В статье я повествую о том, как я...
Схема на Датагоре. Новая статья Регулятор громкости на TDA7313 и PIC 16F876A.... Для новой конструкции мне понадобился блок управления громкостью и тембрами. Я выбрал...
Схема на Датагоре. Новая статья «MICROLAB M-500» на прокачку до «5.1». Часть 2: TDA7448 + ATiny26 = многоканальный Master Volume... Cнова приветствую читателей Датагора! Во второй части статьи «MICROLAB M-500» на прокачку до «5.1»...
Схема на Датагоре. Новая статья Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 1. Блок питания для Raspberry Pi (5V, 2A)... Всем привет! Давным-давно в голову мне пришла идея сделать стационарный аудиоплеер, как в старые...
Схема на Датагоре. Новая статья 10 практических устройств на AVR-микроконтроллерах. Книга 1. А.В. Кравченко... 10 практических устройств на AVR-микроконтроллерах. Книга 1. А.В. Кравченко Издательство: Москва,...
Схема на Датагоре. Новая статья Цифровой двухканальный ампер-вольтметр для блока питания на МК PIC16F876... Подобные устройства часто встречаются в бескрайних просторах Интернета. Я решил изготовить свой...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

<
Читатель Датагора

Datagor



<
Читатель Датагора

Datagor



<
Читатель Датагора

nabiullin

<
Читатель Датагора

Datagor

<
Читатель Датагора

Sergiy_83

<
Читатель Датагора

nabiullin

<
Читатель Датагора

Datagor

<
Читатель Датагора

Datagor



<
Читатель Датагора

nabiullin

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой