Программирование микроконтроллеров на С++

Григорьева Светлана Владимировна

*InstructorProfile(zh-CN)*

内容描述: Данная дисциплина изучает основы структурного и модульного программирования на языке C++, структуру программ для микроконтроллеров семейства ATmega, принципы работы современных интегрированных сред разработки, а также особенности использования Arduino IDE для создания и загрузки программ на Arduino-совместимые платы. Предназначена для формирования у студентов практических навыков программирования микроконтроллеров и разработки встроенных приложений с применением инструментов C++ и Arduino.

贷款数: 5

Пререквизиты:

  • Математика 1

*СomplexityDiscipline(zh-CN)*:

*TypesOfClasses(zh-CN)* *hours(zh-CN)*
*Lectures(zh-CN)* 15
*PracticalWork(zh-CN)*
*LaboratoryWork(zh-CN)* 30
*srop(zh-CN)* 30
*sro(zh-CN)* 75
*FormOfFinalControl(zh-CN)* экзамен
*FinalAssessment(zh-CN)* письменный экзамен

零件: Вузовский компонент

循环次数: Базовые дисциплины

Цель
  • формирование теоретических знаний и практических навыков в области программирования на языке С++ электронных устройств автоматизированных систем управления на основе микропроцессорных контроллеров.
Задача
  • изучение языков программирования, технологий проектирования программного обеспечения;
  • освоение основ структурного и модульного программирования на языке С++;
  • освоение современных интегрированных сред разработки программных продуктов;
  • приобретение умений разработки программного обеспечения микроконтроллеров семейства ATmega;
  • формирование навыков программного управления электронными устройствами систем автоматизации, выполненными на основе микроконтроллерных плат.
Результат обучения: знание и понимание
  • выбирать инструментальные и отладочные средства разработки и имитации при создании программного обеспечения электронных устройств и приборов систем автоматизации на основе микропроцессорных контроллеров;
Результат обучения: применение знаний и пониманий
  • применять технологии структурного и модульного программирования на языке С++ при разработки программного обеспечения микропроцессорных контроллеров систем управления;
Результат обучения: формирование суждений
  • организовывать процесс по разработке и внедрению программных комплексов систем автоматизированного управления различными объектами производства;
Результат обучения: коммуникативные способности
  • формулировать проблемы и представления предлагаемого проектного решения в области организации работ по разработке и эксплуатации микропроцессорных комплексов в системах автоматизации, как специалистам, так и неспециалистам;
Результат обучения: навыки обучения или способности к учебе
  • владеть языком программирования С++ для разработки и эксплуатации программного обеспечения автоматизированных систем управления.
*TeachingMethods(zh-CN)*

интерактивная лекция (применение следующих активных форм обучения: ведомая (управляемая) дискуссия или беседа; модерация; демонстрация слайдов или учебных фильмов; мотивационная речь);

информационно-коммуникационная (занятия в компьютерном классе с использованием профессиональных пакетов прикладных программ);

поисково-исследовательская (самостоятельная исследовательская деятельность студентов в процессе обучения).

*AssessmentKnowledge(zh-CN)*

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

*Period2(zh-CN)* *TypeOfTask(zh-CN)* *Total(zh-CN)*
1  *Rating(zh-CN)* Практическое задание "Введение в программирование на С++" 0-100
Практическое задание "Структурное программирование"
Практическое задание "Операторы выбора"
Практическое задание "Циклы"
Практическое задание "Файловый ввод-вывод"
Практическое задание "Одномерные массивы"
Практическое задание "Двумерные массивы"
Практическое задание "Основы работы с функциями"
Рубежный контроль 1
2  *Rating(zh-CN)* Практическое задание "Arduino и аналоговые датчики" 0-100
Практическое задание "Arduino и цифровые датчики"
Практическое задание "Ввод/вывод данных"
Практическое задание "Использование Arduino в качестве контроллера исполнительных устройств"
Практическое задание "Система Умный дом"
Рубежный контроль 2
*TotalControl(zh-CN)* экзамен 0-100
*PolicyAssignmentTask(zh-CN)*
*TypeOfTask(zh-CN)* 90-100 70-89 50-69 0-49
Excellent *Grade4(zh-CN)* *Grade3(zh-CN)* *Grade2(zh-CN)*
Собеседование по контрольным вопросам Демонстрирует системные теоретические знания, владеет терминологией, логично и последовательно объясняет сущность явлений и процессов, делает аргументированные выводы и обобщения, приводит примеры, показывает свободное владение монологической речью и способность быстро реагировать на уточняющие вопросы Демонстрирует прочные теоретические знания, владеет терминологией, логично и последовательно объясняет сущность, явлений и процессов, делает аргументированные выводы и обобщения, приводит примеры, показывает свободное владение монологической речью, но при этом делает несущественные ошибки, которые исправляет самостоятельно или при незначительной коррекции преподавателем Демонстрирует неглубокие теоретические знания, проявляет слабо сформированные навыки анализа явлений и процессов, недостаточное умение делать аргументированные выводы и приводить примеры, показывает недостаточно свободное владение монологической речью, терминологией, логичностью и последовательностью изложения, делает ошибки которые может исправить только при коррекции преподавателем. Демонстрирует незнание теоретических основ предмета, несформированные навыки анализа явлений и процессов, не умеет делать аргументированные выводы и приводить примеры, показывает слабое владение монологической речью, не владеет терминологией, проявляет отсутствие логичности и последовательности изложения, делает ошибки, которые не может исправить даже при коррекции преподавателем, отказывается отвечать на занятии
Работа на практических занятиях Выполнил работу в полном объеме с соблюдением необходимой последовательности действий; отчет оформлен в соответствии с требованиями; правильно выполняет анализ ошибок. При ответе на вопросы правильно понимает сущность вопроса, дает точное определение и истолкование основных понятий; сопровождает ответ новыми примерами, умеет применить знания в новой ситуации; может установить связь между изучаемым и ранее изученным материалом, а также с материалом, усвоенным при изучении других дисциплин. Выполнил работу по требованию к оценке «5», но допущены 2-3 недочета. Ответ обучающегося на вопросы удовлетворяет основным требованиям к ответу на 5, но дан без применения знаний в новой ситуации, без использования связей с ранее изученным материалом и материалом, усвоенным при изучении других дисциплин; допущены одна ошибка или не более двух недочетов, обучающийся может их исправить самостоятельно или с небольшой помощью преподавателя. Выполнил работу не полностью, но не менее 50% объема, что позволяет получить правильные результаты и выводы; в ходе проведения работы были допущены ошибки. При ответе на вопросы обучающийся правильно понимает сущность вопроса, но в ответе имеются отдельные проблемы в усвоении вопросов курса, не препятствующие дальнейшему усвоению программного материала; допущено не более одной грубой ошибки и двух недочетов. Выполнил работу не полностью или объем выполненной части работ не позволяет сделать правильных выводов. При ответе на вопросы демонстрирует не владение основными знаниями и умениями в соответствии с требованиями программы; допущены больше ошибок и недочетов, чем необходимо для оценки 3 или не может ответить ни на один из поставленных вопросов.
рубежный контроль Рубежный тест: 18-20 баллов – продемонстрированы знания на высоком уровне Рубежный тест: 14-17 баллов – продемонстрированы знания на базовом уровне Рубежный тест: 13-10 баллов – продемонстрированы знания на удовлетворительном уровне Рубежный тест: 0-9 баллов – знания считаются не освоенными
*EvaluationForm(zh-CN)*

Итоговая оценка знаний обучающего по дисциплине осуществляется по 100 балльной системе и включает:

  • 40% результата, полученного на экзамене;
  • 60% результатов текущей успеваемости.

Формула подсчета итоговой оценки:

И= 0,6 Р12 +0,4Э
2

 

где, Р1, Р2 – цифровые эквиваленты оценок первого, второго рейтингов соответственно; Э – цифровой эквивалент оценки на экзамене.

Итоговая буквенная оценка и ее цифровой эквивалент в баллах:

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

Оценка по буквенной системе Цифровой эквивалент Баллы (%-ное содержание) Оценка по традиционной системе
A 4.0 95-100 Отлично
A- 3.67 90-94
B+ 3.33 85-89 Хорошо
B 3.0 80-84
B- 2.67 75-79
C+ 2.33 70-74
C 2.0 65-69 Удовлетворительно
C- 1.67 60-64
D+ 1.33 55-59
D 1.0 50-54
FX 0.5 25-49 Неудовлетворительно
F 0 0-24
Темы лекционных занятий
  • Введение в программирование на языке С++. Инструментальное программное обеспечение. Классификация и эволюция языков программирования. Технологии программирования. Современные интегрированные среды. Структура программы на языке С++. Элементы языка С++.
  • Условные структуры. Операция сравнения и логические операции. Условные операторы if ... else. Оператор выбора switch.
  • Структуры повторения. Структура повторения while (ПОКА). Структура повторения do/ while. Структура повторения for (ЦИКЛ).
  • Потоки и файлы. Потоковый ввод/вывод файлов. Стандартные функции ввода и вывода.
  • Массивы. Объявления массивов. Инициализация массивов. Доступ к элементам массива. Операции с элементами массива.
  • Алгоритмы сортировки. Сортировка методом пузырька. Сортировка выбором. Быстрая сортировка. Сортировка с использованием стандартных функций.
  • Функции. Локальные переменные. Формальные параметры. Глобальные переменные. Вызов функций. Прототипы функций. Рекурсия.
  • Адреса и указатели. Операция получения адреса. Объявление и инициализация переменных указателей. Указатели и массивы. Операции над указателями. Динамическое выделение и освобождение памяти.
  • Проектирование систем измерения и управления на основе микроконтроллера. Микропроцессоры и микроконтроллеры. Системы на основе микропроцессоров. Внутреннее устройство микроконтроллера. Программирование и программное обеспечение микроконтроллеров.
  • Микроконтроллеры ATmega на базе платы Arduino. Отладочные платы Arduino: особенности и возможности. Схема распиновки модуля Ардуино. Платы расширения.
  • Программирование микроконтроллера ATmega на базе платы Arduino. Правила программирования микроконтроллера ATmega на базе платы Arduino. Особенности синтаксиса. Структура кода. Основные функции.
  • Programming the ATmega microcontroller based on the Arduino board. Rules for programming the ATmega microcontroller based on the Arduino board. Syntax features. Code structure. Basic functions.
  • Базовые функции платы Ардуино (продолжение). Операторы времени. Расширенный ввод/вывод. Работа с последовательным портом.
  • Программирование и отладка приложения для микроконтроллеров. Особенности современных сред разработки. Возможности. Интегрированные среды разработки программ для микроконтроллеров. Способы прошивки микроконтроллера ATmega на базе платы Arduino. Виртуальный Arduino и отладка электронных схем.
  • Современные микроконтроллеры. Обзор современных микроконтроллеров. Преимущества и недостатки. Области применения. Перспективы развития.
Основная литература
  • Конова Е.А., Г.А. Поллак. Алгоритмы и программы. Язык С++: учебное пособие. – 4-е изд., стер. – Санкт-Петербург: Лань, 2019. – 384 с.
  • Шилдт Г. C++. Базовый курс. – 3-е изд. – Москва: Вильямс, 2019. – 624 с.
  • Орленко П.А., Евдокимов П.В. C++ на примерах. Практика, практика и только практика. – СПб.: Наука и Техника, 2019 год. – 288с.
  • Белов A.B. Программирование ARDUINO. Создаем практические устройства.- СПб.: Наука и Техника, 2018. - 272 с.
  • Simon Monk. Programming Arduino. Getting Started with Scetches. 2-е изд. – СПб.: Питер, 2017. – 208с.
Дополнительная литература
  • Страуструп Б. Язык программирования C++. Специальное издание. – Москва: Бином, 2017. – 1136 с.
  • Павловская Т. А. C/C++. Программирование на языке высокого уровня: для магистров и бакалавров. - Санкт-Петербург, 2017. - 460 с.
  • Основы программирования на языках Си и C++ для начинающих. Режим доступа: http://cppstudio.com/
  • Программирование на С и С++. Режим доступа: http://www.c-cpp.ru/