Михаил Копычев - все видео автора + новые выпуски

Новые видео из канала RuTube на сегодня - 10 October 2025 г.

Михаил Копычев
  10.10.2025
Михаил Копычев
  12.09.2025
Михаил Копычев
  10.09.2025
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024
Михаил Копычев
  05.09.2024

Видео на тему: Михаил Копычев - все видео автора


Инициализация проекта для STM32 МК, варианты источников тактирования, базовые регистры, сравнение с AVR, примеры, всё это - здесь. Проект из видео: https://disk.yandex.ru/d/P3VR2aAGu3h7Zg. Полезные и всякие ссылки: Файлы CMSIS: https://disk.yandex.ru/d/Eb3jUfG-mg1b1Q; Среда разработки STM32CubeIDE: https://www.st.com/en/development-tools/stm32cubeide.html; ST-Link Server для работы программатора: https://www.st.com/en/development-tools/st-link-server.html; STM32F401xC datasheet (распределение периферии по шинам, карта альтернативных функций выводов и прочее): https://www.st.com/resource/en/datasheet/stm32f401cc.pdf; STM32F401xC reference manual (регистры и всё, что с ними связано): https://www.st.com/resource/en/reference_manual/rm0368-stm32f401xbc-and-stm32f401xde-advanced-armbased-32bit-mcus-stmicroelectronics.pdf; Cortex-M4 MCU programming manual (функционал ЦПУ, в частности - SysTick): https://www.st.com/resource/en/programming_manual/pm0214-stm32-cortexm4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf. Тайм-коды: 00:00 - Начало 00:06 - Структура МК и дерево тактирования 01:38 - Выбор источника тактирования, регистры RCC 02:11 - Регистр RCC_CR 04:35 - Регистр RCC_CFGR 06:47 - Эксперименты с HSE 07:23 - Альтернативная запись макросов 08:23 - Немножко кода 08:50 - ШИМ при частоте HSE 09:22 - Эксперименты с HSI 10:00 - ШИМ при частоте HSI 10:34 - Настраиваем PLL, регистр RCC_PLLCFGR 13:19 - Алгоритм настройки PLL 14:29 - Чтение flash, регистр FLASH_ACR 16:00 - Настройка PLL в коде, без регистрации 18:22 - Эксперименты с PLL 18:41 - ШИМ при частоте PLL 19:02 - Сравнение с AVR 20:03 - Делаем ШИМ 500 кГц на разных источниках 21:17 - Делаем ШИМ 100 кГц на AVRОсновные моменты дискретной математики, которые нам понадобятся для дальнейшего программирования, работа с файлами в CubeIDE, указатели и структуры данных. Проект из видео: https://disk.yandex.ru/d/xpUHeZUYPLXNpg. Полезные и всякие ссылки: Файлы CMSIS: https://disk.yandex.ru/d/Eb3jUfG-mg1b1Q; Среда разработки STM32CubeIDE: https://www.st.com/en/development-tools/stm32cubeide.html; ST-Link Server для работы программатора: https://www.st.com/en/development-tools/st-link-server.html; STM32F401xC datasheet (распределение периферии по шинам, карта альтернативных функций выводов и прочее): https://www.st.com/resource/en/datasheet/stm32f401cc.pdf; STM32F401xC reference manual (регистры и всё, что с ними связано): https://www.st.com/resource/en/reference_manual/rm0368-stm32f401xbc-and-stm32f401xde-advanced-armbased-32bit-mcus-stmicroelectronics.pdf; Cortex-M4 MCU programming manual (функционал ЦПУ, в частности - SysTick): https://www.st.com/resource/en/programming_manual/pm0214-stm32-cortexm4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf. Тайм-коды: 00:00 - Представление 00:16 - Операции сдвига влево и сдвига вправо 01:12 - Операция ИЛИ (OR) 01:47 - Операция ИСКЛЮЧАЮЩЕЕ-ИЛИ (XOR) 02:27 - Операция И (AND) 02:58 - Операция НЕ (NOT) 03:14 - Применение дискретки на регистрах 04:05 - Битовые операции на живом STM32 06:06 - Составные части программы 06:12 - Комментарии 06:40 - Заголовочные и СИ-файлы 08:13 - Применение заголовков и СИ-файлов на живом STM32 13:13 - Директивы препроцессора 14:10 - Типы переменных для микроконтроллеров 15:39 - Глобальные перменные 16:54 - Ключевые слова и модификаторы переменных 18:30 - Применение модификаторов на живом STM32 20:44 - Понятие функции 21:46 - Понятие цикла 22:10 - Функция int main(void) 23:12 - Указатели 24:49 - Применение указателей 29:02 - Указатели на строки 30:22 - Понятие структуры 33:43 - Указатели на структуры 35:37 - Стрелочный оператор в указателях на структуры 37:17 - преимущества использования структурБазовые сведения про STM32 микроконтроллеры и объяснение основных принципов их программирования через CMSIS. Полезные и всякие ссылки: Файлы CMSIS, которые описаны в конце видоса: https://disk.yandex.ru/d/Eb3jUfG-mg1b1Q; Среда разработки STM32CubeIDE: https://www.st.com/en/development-tools/stm32cubeide.html; ST-Link Server для работы программатора: https://www.st.com/en/development-tools/st-link-server.html; STM32F401xC datasheet (распределение периферии по шинам, карта альтернативных функций выводов и прочее): https://www.st.com/resource/en/datasheet/stm32f401cc.pdf; STM32F401xC reference manual (регистры и всё, что с ними связано): https://www.st.com/resource/en/reference_manual/rm0368-stm32f401xbc-and-stm32f401xde-advanced-armbased-32bit-mcus-stmicroelectronics.pdf; Cortex-M4 MCU programming manual (функционал ЦПУ, в частности - SysTick): https://www.st.com/resource/en/programming_manual/pm0214-stm32-cortexm4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf. Тайм-коды: 00:00 - Представление 00:22 - Применение микроконтроллеров 01:48 - Семейства микроконтроллеров 02:14 - Сравнение STM32 и AVR 05:16 - Классификация STM32 06:51 - Архитектура STM32F401xC 08:55 - Отладочная плата STM32 Black Pill 11:28 - Тактирование STM32F401xC 13:42 - Конфигурирование в CubeMX 15:03 - Чем прошивать STM32? 17:14 - В чём писать код под STM32? 18:42 - Описание CMSIS и HAL 20:37 - Применение CMSIS 23:46 - Программируем STM32 без регистрации 25:19 - Зависимости между файлами CMSISРазбираемся с преимуществами среды разработки (которая таковой не является) Visual Studio Code и системы контроля версий git в лице GitHub. VSCode - это незаменимый инструмент, если вы хотите программировать AVR микроконтроллеры, но у вас нет компьютера с Windows, а также если вы просто хотите использовать среду разработки, которая помогает вам лучше узнать про AVR-GCC и AVRDude, а также подталкивает вас писать код более грамотно (с разбивкой на файлы и вот это всё). Git - незаменимый инструмент, если вам необходимо писать код не в одиночку или вы просто хотите удобно пользоваться несколькими компьютерами для своего программирования. Тайм-коды: 00:00 Введение 00:05 Что есть Visual Studio Code? 01:20 Интерфейс VSCODE 06:06 Утилиты для программирования AVR 08:08 Компилятор AVR-GCC, прошивальщик AVRDude и репозитория Homebrew 09:46 Как пользоваться Homebrew (для macOS и Linux) 12:16 Опиши AVR-GCC и AVRDude 12:42 Расширения VSCODE - AVR Helper 14:22 Расширения VSCODE - Serial Monitor и C/C++ Extension Pack 15:25 Моя первая программа в VSCODE для AVR 20:30 Система контроля версий git и GitHub 22:30 Базовые команды git 25:35 Мой первый репозиторий в GitHub 28:19 Коммитим и пушим (commit and push) изменения в коде в GitHub 30:31 Подготовка к пулу (pull) изменений в коде из GitHub 32:40 Разбираемся с задачами (issues) и ветками (branches) 34:40 Слияние веток (merge) 36:05 Действия на локальном компе после слияния веток в GitHub 36:31 Немного про место git в процессе разработкиРазбираемся с такими сущностями в языке СИ, как указатели, структуры, а также разбиваем код на отдельные файлы, что позволит нам вывести наше программирование на новый уровень удобства и красоты. Тайм-коды: 00:00 Введение 00:09 Указатели в СИ 04:04 Пример применения указателей 10:25 Структуры в СИ, объявление структур 16:53 Указатели на структуры 19:42 Стрелочный оператор в указателях на структуры 21:28 Преимущества использования структур 22:55 Разбивка программы на файлы (.h и .c) 24:53 Пример дерева программы 25:29 Пример .h файла 27:21 Пример .c файла 30:21 Пример кода из VSCodeРассмотрим такой модуль внутри МК как таймер-счётчик. У него есть много особенностей, но нас будет интересовать в основном его способность к ШИМ-модуляции сигнала. ШИМ-модуляция - это способ кодирования аналогового сигнала с помощью дискретных импульсов постоянного периода, но переменного коэффициента заполнения. Тайм-коды: 00:00 Введение 00:27 Что такое таймер-счётчик? 02:40 Счётный регистр TCNT 03:27 Двухсоставные регистры -H и -L 04:13 Регистр сравнения OCR 05:30 Инвертированный быстрый ШИМ 07:11 Прямой быстрый ШИМ 11:19 Прямой ШИМ с ФК 13:13 Инвертированный ШИМ с ФК 14:43 Регистр(ы) настройки TCCR 15:32 Биты COM 16:51 Биты WGM 18:22 Биты CS 19:01 Повторим определение ШИМ-модуляции 20:55 Шаги для включения ШИМ на таймере 23:29 Моделируем ДПТ и светодиод в Proteus 24:26 Пишем код для ШИМа 30:04 Демонстрация работы ДПТ и светодиода IRLРазбираемся с системой прерываний в AVR на примере внешних прерываний. Источником сигнала внешнего прерывания в данном случае выступит кнопка. Рассмотрим регистры настройки внешних прерываний, функции-обработчики прерываний и примеры. Тайм-коды: 00:00 Введение 00:24 Определение прерываний 02:40 Источники сигнала прерываний 03:56 Базовые вектора (источники) прерываний 05:33 Определение кнопки 06:02 Условия для выполнения ISR 07:15 Регистр разрешения внешних прерываний 09:29 Настройка типа сигнала прерывания 13:11 Моделируем кнопку в Proteus 13:11 Пишем программу для прерывания 21:02 Демонстрация работы кода в реальной жизни 21:08 Демонстрация работы кнопки с LED матрицейВ этом видео разбираемся как работает механическая клавиатура, боремся с эффектом дребезга контактов, пишем алгоритм опроса клавиатуры и вывода цифр (и значков) на символьный жидкокристаллический дисплей. Делаем скромные попытки написать свой собственный калькулятор с одним математическим действием. Тайм-коды: 00:00 Введение 00:14 Что ты такое - кнопка? 03:16 Схема соединений кнопок клавиатуры 06:15 Регистр ввода-вывода PINx 07:58 Эффект дребезга контактов 09:21 Алгоритм опроса клавиатуры 11:38 Код опроса клавиатуры из 12 кнопок 14:38 Моделируем клавиатуру в Proteus 19:36 Демонстрация особенности опроса клавиатуры 20:05 Демонстрация работы клавиатуры IRL 20:16 Попытка написать калькулятор 26:08 Демонстрация работы кода калькулятораРазбираемся, что можно сделать с LCD экраном на плате со своим собственным микроконтроллером, подключённым к Atmega по параллельному порту. Посмотрим и разберём схему подключения, напишем функции для инициализации контроллера дисплея, посылки команды и ASCII кодов символов на дисплей. Немного бросим взгляд на работу с указателями, когда будем работать со строками. Тайм-коды: 00:00 Введение 00:06 Схема подключения 07:07 Функции для посылки команд и данных 11:25 Список команд контроллера дисплея 15:28 ASCII таблица 16:37 Функция инициализации "дисплея" 18:05 Выводим Hello, world! на экран 20:12 Моделируем экран в Proteus 20:55 Используем указатели 22:52 Демонстрация работы кода 22:58 Код, демонстрация которого былаРазберёмся, как работает и как подключается к микроконтроллеру звуковой излучатель и RGB светодиод. Напишем программу для вывода слова с использованием азбуки Морзе и световой индикации. Тайм-коды: 00:00 Введение 00:08 Схема подключения динамика и RGB диода 02:28 Сигнал на динамик 04:13 Азбука Морзе 05:41 Трёхцветный светодиод 06:39 Вырабатываем с потенциометра ШИМ на диоде в Proteus 12:26 Программируем динамик и диод в реальной жизни 13:44 Динамик "орёт" 13:48 Дополним звук светом 15:27 Звучит точка и тире 15:33 Пишем main() 17:58 Демонстрация работы программыРассказывается про устройство, подключение и управление вращением ротора шагового мотора. Рассказывается про драйвер управления шаговым мотором и про режимы его работы. Тайм-коды: 00:00 Введение 00:05 Применение шаговых моторов 01:51 Схема подключения шаговика 04:55 Режимы работы шаговика 08:49 Алгоритм программы 11:13 Моделириуем мотор в Proteus 13:17 Программный код для полушагового режима 19:08 Микрошаговые режимы на драйверах 25:54 Блок управления шаговым моторомВ видео рассказывается про работу со светодиодными сборками типа матрицы. Рассказывается процедура программирования через параллельный порт микроконтроллер, а также - описывается процесс вывода информации на матрицу посредством протокола TWI, но для этого нужна не просто светодиодная матрица, а матрица с драйвером, обеспечивающим общение по TWI. Тайм-коды: 00:00 Введение 00:11 Применение светодиодных матриц 00:53 Подключение светодиодной матрицы 04:04 Микросхема деширатора 04:57 Микросхема драйвера 07:57 Алгоритм вывода изображения на матрицу 11:56 Моделируем матрицу в Proteus 17:50 Программируем матрицу в реальной жизни 19:41 Демонстрация работы программы 20:34 Подключение матрицы по протоколу TWI 22:11 Регистры аппаратного TWI 24:09 Регистры драйвера матрицы 27:08 Алгоритм вывода изображения на матрицу (TWI) 30:15 Демонстрация работы программы (TWI)В видео рассказывается про работу с семисегментными индикаторами как с устройствами вывода цифро-буквенной информации. Рассматриваются способы подключения индикаторов к микроконтроллеру и о способах программирования, включая процедуру передачи данных по протоколу SPI. Тайм-коды: 00:00 Введение 00:04 Применение семисегментников 00:52 Устройство семисегментника 03:12 Схема включения семисегментной сборки 07:05 Микросхема-защёлка 12:38 Драйвер светодиодной сборки 13:28 Алгоритм вывода числа на семисегментники 17:34 Моделируем семисегментники в Proteus 18:42 Программируем семисегментники 21:50 Подключение семисегментников по SPI 26:28 Регистры аппаратного SPI микроконтроллера 29:47 Алгоритм вывода числа на семисегментники (SPI)Рассматривается реализация САУ на микроконтроллере. Раскрывается понятие САУ, зачем оно существует. Даются подробности о ПИД-регуляторе, об их настройке и особенностях. Приводится пример регулирования левитации магнитного подвеса с программным кодом. Тайм_коды: 00:00 Введение 00:19 Что такое "система управления"? 03:44 Примеры САУ (шар на столе) 07:06 ПИД-регулятор 09:36 Пропорциональный коэффициент (П) 10:59 Интегральный коэффициент (И) 11:58 Дифференциальный коэффициент (Д) 12:55 Подбор коэффициентов ПИД-регулятора 13:37 Как влияют коэффициенты на переходный процесс 15:20 Цифровая реализация САУ 18:04 Метод Зиглера-Никольса 19:13 Магнитный подвес, схема 21:44 Магнитный подвес, программная реализацияВ лекции рассматривается протокол обмена данным 1-Wire или Microlan и его программная реализация. Зрителю даётся представление о структуре и характеристиках этого протокола, рассматриваются его отличия и особенности по сравнению с протоколами, рассмотренными ранее. Приводятся примеры применения этого протокола, а также приводится конкретный программный пример общения с датчиком температуры/влажности по протоколу 1-Wire на основе микроконтроллера семейства AVR. Тайм-коды: 00:00 Введение 00:07 Аппаратный уровень 1-Wire 05:10 основные команды коммуникации 10:03 Пример работы с датчиком DHT11 12:55 ВременнАя диаграмма 1-Wire 13:21 Пишем программный 1-Wire 18:41 Демонстрация работы программы 19:28 Примеры применения 1-Wire 20:39 Достоинства и недостатки 1-WireВ лекции рассматривается протокол обмена данным Universal Asynchronous Receiver/Transmitter - UART и его аппаратная реализация. Рассматриваются правила обмена данными, регистры AVR микроконтроллера, ответственные за работу протокола, а также примеры применения данного протокола. В конце лекции даётся общее представление о более общем проколе обмена - USART. Тайм-коды: 00:00 Введение 00:11 Описание UART 01:13 ВременнАя диаграмма 02:56 Регистры аппаратного UART 14:18 Регистры скорости UART и интересное 16:27 Обмен данным с компьютером 17:55 Пишем программу для обмена данными 21:04 Примеры применения UART 22:11 Преимущества и недостатки UART 22:41 Начальные сведения про USARTВ лекции рассматривается протокол обмена данным Serial Peripheral Interface - SPI, в частности - его программная и аппаратная реализации. Рассматриваются правила обмена данными, регистры AVR микроконтроллера, ответственные за работу протокола, а также примеры применения данного протокола. Тайм-коды: 00:00 Введение 00:10 Аппаратный уровень SPI 03:00 4 режима работы SPI 05:53 Датчик температуры TC72 07:37 Моделируем датчик температуры в Proteus 09:03 Пишем программный SPI 18:21 Демонстрация работы кода - программный SPI 21:58 Регистры аппаратного SPI 28:39 Пишем аппаратный SPI 34:59 Демонстрация работы кода - аппаратный SPI 36:43 Семисегментник на SPI 41:36 Достоинства и недостатки SPIЛекция вводит понятие "протокола обмена данными" между микроконтроллером (микроконтроллерами) и периферийными устройствами. Протокол - это способ кодирования сообщений между ведущим и ведомым устройством, которые могут передаваться по ограниченному количество проводов. Работа с каждым устройством, работающим на том или ином протоколе обмена должна рассматриваться отдельно, так как упомянутые выше "сообщения" достаточно индивидуальны для каждого отдельно взятого устройства. В лекции рассматривается программная и аппаратная реализация протокола I2C или TWI. Рассматриваются примеры использования этого протокола, регистры МК для реализации аппаратного типа TWI. Тайм-коды: 00:00 Введение 00:22 Что такое протоколы обмена данными? 01:52 Последовательные и параллельные протоколы 03:10 Хардварный уровень TWI 04:33 Временная диаграмма протокола TWI 08:15 Использование TWI с датчиком температуры 14:42 Моделируем датчик в Proteus 15:47 Пишем программный TWI 25:13 Демонстрация работы кода - программный TWI 25:45 Аппаратные регистры TWI 34:03 Пишем аппаратный TWI 38:52 Демонстрация работы кода - аппаратный TWI 40:08 Применение TWI протокола - расширители портов 42:45 Пример расширителя портов на ARM 44:40 Устройства, использующие TWI протокол 44:54 Достоинства и недостатки TWIЛекция расскажет про то, для каких целей и как используются дальномеры или датчики расстояния. Рассматриваются три дальномера, основанный на ультразвуковом, инфракрасном и лазерном принципах измерения. Приводятся примеры программных кодов для работы с каждым типом датчика. Тайм-коды: 00:00 Введение 00:09 Ультразвуковой дальномер 00:39 Характеристики дальномер HC-SR04 01:35 Подключение УЗ дальномера 02:58 Дисклеймер по поводу обращения с 16-битными регистрами 03:03 Регистр таймера TCNT и регистры пребываний EIMSK и EICRB 04:24 Пересчёт расстояния с дальномера в человеческую размерность 05:46 Моделируем УЗ дальномер в Proteus 12:51 Программируем УЗ дальномер в реальной жизни и демонстрируем 15:04 Инфракрасный дальномер 16:38 Программируем ИК дальномер в реальной жизни и демонстрируем 20:05 Лазерный дальномер (плюс измеритель яркости - в подарок) 22:26 Алгоритм работы с лазерным дальномером 24:23 Программируем лазерный дальномер в реальной жизни и демонстрируемЛекция расскажет о том, чем отличается сервомашинка от двигателя постоянного тока и как ей управлять при помощи таймера/счётчика AVR микроконтроллера. Сервомашинка - это двигатель постоянного тока, помещенный в один корпус с управляющей электроникой и датчиком обратной связи (потенциометром). Таким образом при работе с сервомашинкой программист управляет углом поворота вала машинки (а не скоростью вращения вала, как в случае двигателя постоянного тока). Одним из вопросов, который ставится в данном видео (и в нем же разрешается) - это вопрос формирования несущего сигнала заранее заданной частоты (и, соответственно, периода), который необходим для работы с сервомашинкой. Лекция более подробно раскрывает возможности таймеров-счётчиков микроконтроллера. Тайм-коды: 00:00 Введение 00:08 Устройство сервомашинки 02:04 Управление сервомашинкой 03:29 Режимы работы таймера (в частности - переменный верхний предел) 04:54 Регистры таймера OCR и ICR 06:17 Расчёт верхнего предела (регистр ICR) 08:54 Моделируем сервомашинку и потенциометр в Proteus 13:32 Программируем сервомашинку в реальной жизни 15:42 Демонстрация работы программы 15:52 Усложнение задания 18:14 Демонстрация работы усложнённой программы 18:27 Пробуем настроить другую несущую частоту - 333 Гц