Видеокурс "Создание устройств на микроконтроллерах"
2990
1025
0
1025
ХИТ

Видеокурс "Создание устройств на микроконтроллерах"

  • Цена:
    2990

    ПОДРОБНОЕ ОПИСАНИЕ

    Автор: Максим Селиванов

    Хотите научиться разрабатывать действительно серьезные устройства на микроконтроллерах, как это делают настоящие профессионалы? Авторский обучающий видеокурс по созданию устройств на микоконтроллерах.

    Для кого этот видеокурс.

    • Этот курс для тех, кто не хочет ограничиваться в своем развитии простыми или готовыми примерами.
    • Курс отлично подойдет тем, кому важно создание интересных устройств с полным пониманием того, как они работают.
    • Курс хорошо подойдет и тем, кто уже знаком с программированием микроконтроллеров на языке Си и тем, кто уже давно программирует их.

    Темы рассмотренные в курсе:

    • Воспроизведение звука
    • Беспроводной обмен данными
    • Работа с микросхемой часов реального времени
    • Радиочастотная идентификация
    • Работа с цветными жидкокристаллическими TFT дисплеями


    Создание устройств на микроконтроллерах. ATmega16 и TFT дисплей. (Максим Селиванов)
  • Микросхема часов реального времени

    • Урок №1. Введение (37:26)

    Общие сведения по микросхеме часов реального времени DS3231 и DS3231M. Основные характеристики: основной функционал, интерфейс обмена данными, диапазон питания, потребление тока, точность хода, тип резонатора, тип корпуса и т.д. Распиновка различных корпусов микросхемы. Схема подключения. Модульные платы с микросхемой. Принципиальная схема, особенности схемных решений и подключения к микроконтроллеру. Поддельные микросхемы.

    • Урок №2. Регистры и режимы работы (36:43)

    Подробное рассмотрение документации на микросхему DS3231М. Характеристики микросхемы. Функционал микросхемы. Режимы работы микросхемы. Настройка функций будильников микросхемы. Подробный разбор каждого вывода микросхемы. Карта памяти и регистры микросхемы. Режим измерения температуры.

    • Урок №3. Протокол обмена данными (13:39)

    Подробное описание режимов чтения и записи регистров по шине I2C. Описание протокола обмена по шине I2C на информационном уровне. Режим однократного чтения и записи регистров. Режим чтения и записи нескольких регистров подряд.

    • Урок №4. Библиотека DS3231 (24:12)

    Библиотечные функции для чтения и записи времени и даты. Функции записи/чтения регистров. Переключение режимов работы микросхемы. Настройка режимов будильников.

    • Урок №5. Проект для тестирования DS3231 (41:43)

    Проект для тестирования функций микросхемы DS3231. Подробный разбор функций для изменения режимов работы DS3231. Краткие сведения по работе с библиотекой дисплея на базе контроллера HD44780. Использование библиотеки обмена данными по шине I2C. Использование программной/аппаратной реализации шины I2C.

    • Урок №6. Практика работы с DS3231 (20:17)

    Несколько практических советов по подключению и работе с дисплеем на базе HD44780. Использование на практике библиотеки для реализации шины I2C. Запуск проекта на реальном микроконтроллере и тестирование различных режимов работы.

    Модуль беспроводного обмена данными

    • Урок №1. Введение в микросхему NRF24L01 (33:23)

    Введение в микросхему приемо-передатчика NRF24L01+. Основные области использования микросхемы. Преимущества использования микросхемы. Основные характеристики и режимы работы. Модули на основе микросхемы. Рекомендации по подключению модулей к микроконтроллеру.  Аналоги и модификации микросхемы, подделки микросхемы.

    • Урок №2. Интерфейс обмена данными (27:09)

    Выводы интерфейса модуля NRF24L01 для подключения к микроконтроллеру. Разбор протокола обмена данными через SPI. Документация на NRF24L01+. Обзор основных характеристик микросхемы, режимов работы и регистров микросхемы. Диаграмма состояния. Таблица команд микросхемы.

    • Урок №3. Регистры и режимы работы (21:41)

    Подробный разбор диаграммы состояния. Пошаговая настройка микросхемы на передачу и на прием. Задание адресов передатчика и приемника. Функция передачи, приема и подтверждения приема.

    • Урок №4. Библиотека NRF24L01 (46:21)

    Разбор библиотеки управления NRF24L01. Программный интерфейс SPI для обмена данными. Каналы и адреса приема/передачи данных. Буферы приемника и передатчика микросхемы. Функции управления режимами микросхемы, передачи и приема.

    • Урок №5. Простой пример передачи и приема данных (45:31)

    Простой проект для тестирования основных режимов приема и передачи данных с выводом результатов на терминальную программу ПК. Состояния микросхемы после отправки и приема пакетов данных. Настройка прерываний. Работа программы на практике.

    • Урок №6. Передача и прием данных с оценкой состояний регистров (32:25)

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

    Модуль воспроизведения звука

    • Урок №1. Введение в микросхему WTV020 (20:11)

    Постановка задачи воспроизведения звука при помощи микроконтроллера. Краткий обзор микросхемы WTV020. Модули на основе микросхемы WTV020. Подключение модуля и интерфейс управления. Основные преимущества и недостатки модуля. Особенности схемы питания модуля. Поддерживаемые звуковые форматы и типы SD-карт.

    • Урок №2. Подробное описание модуля и интерфейса связи (30:23)

    Распиновка модуля на основе WTV020. Обзор компонентов на плате модуля. Доработка схемы коммутации питания. Выбор величины напряжения питания карты. Интерфейс управления. Схема подключения к микроконтроллеру. Команды управления. Интерфейс для передачи команд управления. Карты, с которыми модуль может работать не корректно.

    • Урок №3. Программы для подготовки звуковых файлов (25:56)

    Программа для конвертации звуковых файлов в формат AD4. Специальный формат для выбора имен звуковых файлов. Подготовка SD-карты для записи файлов. Специальная программа для записи звука. Обзор специальных режимов воспроизведения звуковых файлов.

    • Урок №4. Пример управляющей программы для модуля (31:02)

    Управление модулем с микроконтроллера через последовательную шину. Разбор функции для передачи управляющих команд на модуль. Команды для выбора трека, переключения треков, изменения громкости, остановки и начала воспроизведения.

    Радиочастотная идентификация (RFID)

    • Урок №1. Введение (40:43)

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

    • Урок №2. Физические основы передачи данных (18:18)

    Теория физического взаимодействия считывателей и RFID меток. Виды взаимодействия: электрическое поле, магнитное поле, электромагнитное поле. Обмен данными через индуктивную связь. Внутреннее устройство RFID меток и считывателей. Колебательный контур RFID-метки и считывателя.

    • Урок №3. Стандарты радиочастотной идентификации (35:57)

    Виды RFID карт и меток. Классификация карт по частотам работы. Основные сферы и области применения карт в зависимости от частотного диапазона. Низкочастотные карты стандарта EM-marine, высокочастотные карты стандарта Mifare, карты компании HID.

    Карты стандарта EM-Marine (EM4100)

    • Урок №4.1. Введение в стандарт карт EM-Marine (EM4100) (14:25)

    Карты стандарта EM-marine. Форм-фактор исполнения карт. Сферы использования. Протокол передачи данных от карты. Формат хранения ID-кода. Основы работы карты. Запись индивидуального идентификатора на картах.

    • Урок №4.2. Схема считывателя (27:27)

    Схема простого активного считывателя меток на 125 кГц. Конструкция антенны колебательного контура. Настройка колебательного контура. Подбор конденсатора для резонанса в колебательном контуре. Программы для расчета параметров колебательного контура.

    • Урок №4.3. Протокол передачи данных (26:09)

    Подробный разбор протокола передачи данных. Манчестерский код. Дешифровка манчестерского кода. Преамбула сигнала. Групповой идентификатор, индивидуальный идентификатор метки. Контроль строк на четность. Контроль столбцов на четность. Определение начала посылки.

    • Урок №4.4. Программа для считывания ID-кода карты (61:17)

    Подключение схемы считывателя к микроконтроллеру. Программа для дешифрации манчестерского кода. Передача считанных байт на терминальную программу ПК. Временные параметры манчестерского кода. Алгоритм нахождения преамбулы. Контроль строк и столбцов на четность. Байты индивидуального и группового кода.

    • Урок №4.5. Практика считывания ID-кода карты (7:48)

    Демонстрация работы программы для считывания ID-кода карт. Считывание брелков и карт стандарта EM-Marine.

    • Урок №4.6. Дополнение к программе считывания ID-кода карты (18:17)

    Усовершенствованная версия программы для считывания меток с манчестерским кодом в разных форматах. Автоматическое распознавание прямого и инверсного манчестерского кода. Нахождение преамбулы в прямой и обратной логике.

    Карты стандарта Mifare

    • Урок №5.1. Введение в стандарт Mifare (49:37)

    Основные сведения о картах стандарта Mifare: Mifare Ultralight, Mifare Classic, Mifare Plus, Mifare DESFire, SmartMX. Карты совместимые с картами стандарта Mifare. Память карт. Защита информации от считывания и записи. Сферы использования карт. Карты для оплаты проезда в общественном транспорте. Электронные документы с биометрическими данными. Физические основы передачи данных. Модифицированный код Миллера. Несущая частота 13,56 МГц

    • Урок №5.2. Микросхема MFRC522. Введение. (21:47)

    Основные сведения о микросхеме MFRC522: поддерживаемые карты, интерфейс обмена данными, буфер данных, питание и подключение. Модуль RC522. Распиновка контактов в разных типах модулей. Протокол обмена данными через SPI. Команды приема и передачи байт данных. Регистры MFRC522. Подключение микроконтроллера к модулю.

    Урок №5.3. Основы работы с микросхемой MFRC522 (43:31)

    Подробный разбор документации на MFRC522. Выбор интерфейса для обмена данными. Протокол обмена. Инициализация. Расчет контрольной суммы CRC16. Команды микросхемы MFRC522. Прием и передача данных. Описание основных функций для обмена данными через интерфейс SPI с микросхемой MFRC522. Особенности работы с FM17522 (аналог микросхемы MFRC522).

    Карты стандарта Mifare Ultralight

    • Урок №5.4.1. Введение в стандарт карт Mifare Ultralight (30:01)

    Обзор карт стандарта Mifare Ultralight. Разбор документации на карту. Команды для управления картой. Карта памяти. Семибайтный уникальный идентификатор. Ячейки однократно программируемой памяти. Идентификатор производителя. Байты блокировки страниц. Диаграмма состояния карты.

    • Урок №5.4.2. Разбор функций проекта для работы с Mifare Ultralight (21:59)

    Обзор проекта для работы с картами Mifare Ultralight . Разбор функций для обмена данными. Команды отклика, чтения, записи, останова карты. Перевод карты в режим останова. Запрос типа карты. Команды REQA и WUPA. Чтение идентификатора. Два уровня антиколлизии карты.

    • Урок №5.4.3. Пример чтения карты (33:31)

    Считывание данных с карт Mifare Ultralight. Передача считанных данных в терминальную программу ПК. Считывание байт ATQA и SAK. Определение типа карты по байтам ATQA и SAK. Различия между командами REQA и WUPA. Различия в считывании карт с разной длиной идентификатора.

    • Урок №5.4.4. Пример записи карт (18:41)

    Разбор функций для записи данных на страницы карты. Запись байт в однократную область памяти. Виды ошибок при записи данных. Активация защиты страниц от записи с использованием бит защиты от записи.

    • Урок №5.4.5. Дополнение по картам Mifare Ultralight (16:42)

    Отличия в ответах ATQA и SAK для различных карт стандарта Mifare c 7- и 4-байтным идентификатором. Формат хранения данных в билете Московского метрополитена: номер билета, дата покупки, срок действия, количество израсходованных поездок.

    Карты стандарта Mifare Classic

    • Урок №5.5.1. Введение в стандарт карт Mifare Classic (20:10)

    Карты Mifare Classic 1K, 4K, Mifare Mini, Mifare ID. Основные характеристики, преимущества и недостатки. Области применения карт. Понятие блоков и секторов карты. Трейлер сектора. Ключи аутентификации А и В. Биты доступа сектора. Структура памяти карты, блок производителя, аутентификация и права доступа к секторам карты. Процедура доступа к памяти. Шифрование передаваемых данных.

    • Урок №5.5.2. Разбор функций проекта для работы с Mifare Classic (24:07)

    Чтение, запись и аутентификация карт. Команды отклика, чтения, записи, останова и аутентификации карты. Процедура аутентификации в секторе карты по ключам А и В. Абсолютный адрес аутентификации сектора. Команды REQA и WUPA. Чтение и запись 16 байт блока сектора. Чтение идентификатора. Обмен зашифрованными данными.

    • Урок №5.5.3. Понятие трейлера сектора и бит доступа (23:05)

    Формат трейлера сектора. Формат хранения ключей A и B в трейлере сектора. Формат хранения бит доступа. Режимы доступа к данным сектора. Условия доступа к трейлеру сектора, условие доступа к блокам данных. Изменение режимов доступа. Выбор типов операций с блоками данных. Блокировка блока данных. Транспортная конфигурация карты.

    • Урок №5.5.4. Пример чтения карт (29:15)

    Чтение идентификатора и блоков секторов карт стандарта Mifare Classic, Mini, ID. Автоматическое распознавание, выбор и аутентификация карт с 4- и 7-байтным идентификатором. Поведение карты при считывании недоступных секторов.

    • Урок №5.5.5. Пример записи карт (16:14)

    Практика записи данных в блоки секторов. Разбор функций для записи в блоки данных секторов карт. Ошибки записи секторов карт.

    • Урок №5.5.6. Изменение ключей доступа (26:44)

    Практика изменения ключей доступа А и В для секторов карты. Значение ключей по умолчанию. Считывание и изменение ключей доступа в ASCII-символах через терминальную программу. Блокировка работы карты в случае ошибки аутентификации.

    • Урок №5.5.7. Изменение уровней доступа (50:43)

    Практика задания уровней доступа для блоков сектора. Работа с картами при аутентификация по ключу А и ключу В. Чтение и запись данных на разных уровнях доступа с аутентификацией по разным ключам. Формат хранения уровней доступа блоков в полях бит доступа. Ограничение доступа при аутентификации по открытому ключу В. Отличия в ограничениях доступа для оригинальных и неоригинальных карт стандарта Mifare. Блокировка сектора при нарушении формата хранения бит доступа.

    Раздел "Радиочастотная идентификация" можно приобрести отдельно!

    Цветные жидкокристаллические TFT дисплеи

    • Урок №1. Введение в физику жидкокристаллических дисплеев (54:08)

    Физические принципы работы жидкокристаллических (ЖК) дисплеев. Виды ЖК-дисплеев. Основные преимущества ЖК-дисплеев. Понятие активной матричной адресации с использованием нелинейных ключевых элементов на базе тонкопленочных транзисторов. Управляющие контроллеры дисплеев.

    • Урок №2. Управляющие контроллеры дисплеев (30:53)

    Обзор производителей контроллеров дисплеев. Внешний вид. Краткие сведения по интерфейсам в контроллерах. Расположение кристаллов контроллеров на дисплеях. Технологии COG и COF. Разрешение дисплеев и диагональ экрана.

    • Урок №3. Схемы подключения и интерфейсы (44:13)

    Виды интерфейсов дисплеев, основные сведения о подключении дисплеев к микроконтроллеру. Распиновка контактов дисплейного модуля. Напряжения питания дисплейных модулей. Краткие сведения о работе с сенсорным экраном и слоте для подключения SD-карты.

    • Урок №4. Направление развертки и начало координат (12:16)

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

    Библиотеки контроллеров дисплеев

    Контроллер SSD1289

    • Урок №5.1.1 Общее описание (31:59)

    Общие сведения о дисплеях на базе контроллера SSD1289. Обзор документации.

    • Урок №5.1.2. Библиотека (38:39)

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

    • Урок №5.1.3 Демонстрация работы (4:08)

    Демонстрация работы тестовой программы. Влияние настроек на работу дисплея.

    Контроллер ILI9325

    • Урок №5.2.1. Общее описание (29:22)

    Общие сведения о дисплеях на базе контроллера ILI9325. Обзор документации.

    • Урок №5.2.2. Библиотека (18:17)

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

    Урок №5.2.3. Демонстрация работы (4:53)

    Демонстрация работы тестовой программы. Влияние настроек на работу дисплея.

    Контроллер ILI9341

    • Урок №5.3.1. Общее описание (30:51)

    Общие сведения о дисплеях на базе контроллера ILI9341. Обзор документации.

    • Урок №5.3.2. Библиотека (26:54)

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

    • Урок №5.3.3. Демонстрация работы (3:56)

    Демонстрация работы тестовой программы. Влияние настроек на работу дисплея.

    Контроллер SSD1963

    • Урок №5.4.1. Общее описание (50:52)

    Общие сведения о дисплеях на базе контроллера SSD1963. Обзор документации. Особенности схемы подключения.

    • Урок №5.4.2. Библиотека (23:56)

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

    • Урок №5.4.3. Демонстрация работы (4:28)

    Демонстрация работы тестовой программы. Влияние настроек на работу дисплея.

    Графическая библиотека

    • Урок №6.1. Введение (42:35)

    Краткий обзор возможностей графической библиотеки по выводу на дисплей графических примитивов, сложных изображений, текстовых сообщений. Краткий обзор функций. Пример сохранения в программной памяти массива графического изображения и массивов шрифтов. Отображение кириллических символов на дисплее. Задание типа и размера шрифта.

    • Урок №6.2. Вывод графических примитивов (30:52)

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

    Вывод изображений из памяти программ

    • Урок №6.3.1. Вывод простого изображения (23:56)

    Разбор работы функции для вывода сложных графических изображений на дисплей. Пример работы функции для вывода простого изображения из памяти программ. Представление изображения в виде массива. Требования к массиву изображения. Задание размера изображения. Искажения изображения при неверных указаниях его размеров.

    • Урок №6.3.2. Программа конвертации изображения в код (18:08)

    Программа для конвертации сложного графического изображения в числовой массив. Требования к формату массива после конвертации. Конвертирование изображения ручным способом.

    • Урок №6.3.3. Вывод сложных изображений (30:50)

    Пример вывода на дисплей различных изображений. Типы искажений изображения при неверно заданных размерах и направлении автоинкремента. Зарисовка экрана скопированным изображением.

    Вывод текста

    • Урок №6.4.1. Введение (53:57)

    Разбор проекта для демонстрации вывода текстовых сообщений на дисплей. Разбор функций для вывода текстовых сообщений. Основные параметры шрифтов, необходимые для отображения на дисплее. Представление шрифтов в виде массивов в программной памяти. Кодовая таблица windows-1251.

    • Урок №6.4.2. Программа для генерации шрифта (24:19)

    Пример работы в программе для генерации массивов символов из различных шрифтов. Задание параметров шрифтов. Создание пользовательских символов.

    • Урок №6.4.3. Практика вывода текста (12:44)

    Дополнительные моноширинные шрифты. Установка дополнительных шрифтов. Большой шрифт семисегментного индикатора. Подключение новых шрифтов в графическую библиотеку.

    Вывод изображений с SD-карты

    • Урок №7.1. Введение в библиотеку Petit FatFS (31:19)

    Преимущества использования SD-карт для хранения больших файлов. Необходимость использования файловой системы. Основные сведения о библиотеке FatFS. Урезанная версия Petit FatFS. Основные преимущества Petit FatFS и недостатки. Области применения, состав библиотеки. Подключение микроконтроллера к слоту SD-карты на различных дисплеях.

    • Урок №7.2. Обзор библиотеки Petit FatFS (21:17)

    Разбор состава библиотеки. Типы данных в библиотеке. Основные настройки библиотеки. Рекомендации по настройке. Пример низкоуровневых функций для взаимодействия с SD-картой.

    • Урок №7.3. Чтение данных с SD-карты с использованием библиотеки (41:16)

    Подробный разбор проекта с библиотекой Petit FatFS . Порядок использования функций библиотеки Petit FatFS  для чтения файлов с SD-карты отформатированной под файловую систему FAT16 и FAT32. Функции монтирования/демонтирования диска, открытия файла и чтения файла.

    • Урок №7.4. Подготовка изображения для записи на SD-карту (23:47)

    Разбор формата BMP для хранения изображения. Формат RAW. Конвертация изображения в RAW-формат.

    • Урок №7.5. Практика считывания изображений (13:42)

    Пример проекта для считывания различных графических изображений с SD-карты и вывод изображений на дисплей.

    Сенсорный экран дисплея

    • Урок №8.1. Введение (29:14)

    Виды сенсорных дисплеев. Принцип работы 4-проводного резистивного сенсорного экрана. Плюсы и минусы резистивного экрана. Сенсорный экран на различных дисплеях. Микросхемы для обработки сигналов с сенсорного экрана. Различия между ADS7843, ADS7846, XPT2046 и TSC2046. Выводы на дисплеях для взаимодействия с микросхемой обработки сенсорного экрана.

    • Урок №8.2. Обзор микросхемы XPT2046 (27:24)

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

    • Урок №8.3. Простой пример работы с микросхемой XPT2046 (53:37)

    Пример считывания данных с микросхемы. Подробный разбор протокола взаимодействия с микросхемой. Формат посылки данных. Считывание результатов АЦП. Преобразование считанных данных в координаты на экране. Определение усилия нажатия. Дребезг при касании сенсорного экрана. Использование фильтров для определения координат касания дисплея. Расчет корректировочных коэффициентов для точного определения координат точки касания.

    • Урок №8.4. Библиотека для работы с микросхемой XPT2046 (31:54)

    Библиотека для считывания координат точки касания. Настройка библиотеки под дисплеи с различным положением точки начала координат. Алгоритмы эффективного подавления дребезга при касании экрана. Алгоритм точного определения точки касания.

    • Урок №8.5. Калибровка сенсорного экрана (46:32)

    Функция калибровки экрана с автоматическим расчетом калибровочных коэффициентов. Определение точки касания с использованием калибровочных коэффициентов. Коэффициенты пропорциональности по осям. Смещение точки начала координат. Расположение калибровочных точек на дисплее.

    • Урок №8.6. Практика работы с сенсорным экраном (36:23)

    Проект для демонстрации работы сенсорного экрана. Вывод рассчитанных значений калибровочных коэффициентов на экран. Отображение координат точки касания на дисплее. Пример рисования на экране дисплея. Отражение координат по оси Х и оси Y. Перемена осей Х и Y местами. Пример изменения работы функций для разных точек начала координат.

    • Урок №8.7. Сенсорный экран в дисплеях SSD1963, ILI9341, ILI9325 (9:10)

    Демонстрация работы сенсорного экрана в дисплеях на базе контроллеров SSD1963, ILI9341, ILI9325. Пример настройки библиотеки сенсорного экрана под каждый дисплей.

    • Урок №8.9. Улучшенные версии библиотек контроллеров TFT (26:04)

    Доработанная версия библиотеки для взаимодействия с дисплеями на низком уровне.

    • Урок №8.10. Улучшенная версия графической библиотеки (11:29)

    Версия графической библиотеки с дополнительными функциями.


  • Создание устройств на микроконтроллерах. ATmega16 и TFT дисплей. (Максим Селиванов)

ПОХОЖИЕ ТОВАРЫ

© ИнфоКурс 2012 - 2024