Учимся программировать микроконтроллеры (Дмитрий Забарило)
?
Программист микроконтроллеров – это не только современная специальность, но и специальность будущего, поскольку в скором времени все системы и устройства будут роботизированы, поэтому резко возрастет спрос на робототехников. А толковый робототехник должен хорошо знать не только механику, но, в первую очередь, и программирование микроконтроллеров.
Для кого предназначен курс
Данный курс рассчитан главным образом для начинающих, но также будет полезен тем, кто уже имеет некоторый опыт программирования микроконтроллеров, а также студентам соответствующих специальностей.
Отличительной особенностью данного онлайн курса является простота и доступность изложения материала. Поэтому курс пригоден даже для тех, кто не обладает глубокими знаниями в области программирования и электроники.
Какой тип микроконтроллеров будем изучать
Выбирать в качестве обучения тип микроконтроллера следует с учетом спроса рынка. Если посмотреть вакансии, связанные с программированием микроконтроллеров, то можно обнаружить, что более чем в 90 % вакансий требуются программисты микроконтроллеров линеек AVR и STM. Микроконтроллеры STM являются довольно мощным «оружием», но сложны для понимания начинающим программистам, кроме того STM не выпускаются в DIP корпусах, что создает некоторое неудобство на начальных этапах изучения, — их без специальных переходников не установить на макетной плате.
По этим причинам мы будем изучать микроконтроллеры серии AVR, что позволит более глубоко понять структуру и механизм программирования микроконтроллеров. Кроме того, освоим МК AVR, Вам будет очень просто самостоятельно освоить ARDUINO. Более того, после изучения МК AVR ARDUINO покажется не такой уже интересной «штукой» и возникнет желание перейти к освоению МК STM.
Для обучающих целей за базовый МК мы примем ATmega8, но также будем тренироваться писать коды для МК других типов: ATmega48, ATmega16, ATmega8535, ATmega328, ATtiny2313, ATtiny13 и др.
В общем, после изучения курса вы сможете написать программу для любого МК серии AVR, так как мы будем подробно изучать даташиты МК разных типов.
На каком язык программирования будем писать программы
В основном микроконтроллеры программируют на таких языках: C, С++, Python, а также на Ассемблере. Знать ассемблер – это хорошо, но опыт показывает, что программирование микроконтроллеров для начинающих выглядит гораздо интересней и увлекательней на языке C. Поэтому в данном курсе особое внимание уделяется языку C, причем С излагается с учетом того, что у слушателей ранее не было никакого опыта программирования вовсе, то есть мы будем изучать C от самых базовых понятий до вполне приличного уровня.
По мере прохождения курса программа будет корректироваться с учетом пожеланий слушателей. Например, если кому-то из слушателей нужно будет решить конкретную практическую задачу по пройденному материалу, и всем остальным слушателем это будет интересно, то мы займемся решением данной задачи – разработаем и запрограммируем реальное полезное электронное устройство.
Программа курса включает следующие основные пункты:
- Общие понятия об МК и перспективы развития. Среда разработки и эмуляция работы микроконтроллера.
- Порты ввода-вывода микроконтроллеров. Настройка портов на вход и выход.
- Библиотека задержек. Формирование временных интервалов. Оператор if.
- Подключение кнопки. Дребезг контактов и борьба с ним. Оператор while.
- Логические и побитовые операции.
- Таймер-счетчики микроконтроллера. Настройка таймер-счетчиков. Переполнение и сравнение значений таймер-счетчиков. Таймер-счетчик в режиме захвата. (Формирование звука, изменение яркости света).
- Внешние прерывания микроконтроллеров. Прерывания от таймер-счетчиков.
- Общие сведения о семисегментных индикаторах. Подключение семисегментных индикаторов к микроконтроллерам. Семисегмментные индикаторы с общим анодом и общим катодом.
- Принцип работы динамической индикации. Подключение многоразрядной динамической индикации к микроконтроллерам. Массивы.
- Оператор switch case. Подключение динамической индикации к произвольным выводам микроконтроллера.
- Таймер и секундомер с применением динамической индикации.
- Широтно-импульсная модуляция микроконтроллеров AVR. Регулировка мощности с помощью ШИМ. Регулировка яркости освещения с помощью ШИМ. Формирование звука с помощью ШИМ микроконтроллера.
- Принцип работы и настройка аналогово-цифрового преобразователя МК.
- Цифровой вольтметр на МК.
- Создаем цифровой амперметр и вольтметр-амперметр на МК. Ваттметр на микроконтроллере.
- Подключение датчиков с аналоговым выходом к МК. (Датчик температуры, уровня воды, ультразвуковой датчик расстояния и т.п.).
- Принцип работы и настройки аналогового компаратора.
- Энергонезависимая память микроконтроллера. Настройка EEPROM МК. Счет, запоминание и отображение количества событий.
- Принцип работы и настройки интерфейса I2C (TWI) МК AVR. Подключение внешней EEPROM к микроконтроллеру по каналу I2C.
- Подключение датчика температуры и углубленная работа с даташитами устройств с интерфейсом I2C. Настройка, отладка и выявление ошибок при передаче данных по I2C. Подключение датчиков температуры и датчиков влажности.
- Подключение жидкокристаллических дисплеев к микроконтроллерам.
- Принцип работы и настройки интерфейса UART микроконтроллера AVR.
- Применение потоков данных при управление микроконтроллером по команде, поступающей из компьютера посредством интерфейса UART.
- Подключение различных датчиков к микроконтроллеру по интерфейсу UART.
- Интерфейс SPI. Принцип работы и настройки.
- Подключение датчиков по интерфейсу SPI.
Курсы состоят из 33 занятия, начинаются 15 октября 2019 года и будут проходить до 31 января. Занятия будут проводится 3 раза в неделю. Длительность занятий 2..2,5 часа.