Задания на олимпиаду апрель 2007
Задание 1. Устройство управления электродвигателем
Максимальное количество балов:30
Реализовать программу для устройства управления электродвигателем. Пользователь задает частоту вращения, которая должна поддерживается устройством на постоянном уровне и не зависеть от внешних нагрузок.
Требования к выполнению:
Управление двигателем и, соответственно, установка частоты вращения выполняется с помощью регулирования подаваемой мощности через ШИМ (широтно-импульсную модуляцию). Реальная скорость вращения измеряется датчиком оборотов. Программа должна регулировать мощность подаваемой энергии таким образом, чтобы частота вращения оставалась заданной и не зависела от внешних воздействий на двигатель (торможение или ускорение).
Частота задается пользователем с цифровой клавиатуры: «0» – «9» - ввод числа, кнопка «#» – зафиксировать вводимое значение и установить как заданную частоту, «*» – «СТОП», т.е. выполняется обнуление буфера ввода и задание текущей частоты в 0 (двигатель останавливается).
На цифровом индикаторе отображается одно из значений, в зависимости от режима:
Режим 1 – отображение измеренной частоты вращения, засвечена крайняя левая десятичная точка на цифровом индикаторе;
Режим 2 – отображение заданной частоты вращения, засвечены две крайние левые точки на цифровом индикаторе;
Режим 3 – отображение и ввод нового значения, точки погашены.
Режим отображения последовательно выбирается одиночными нажатиями кнопки 1. Частота вводится и задается только в режиме отображения вводимого значения. Частота задается и отображается в «об/мин». Диапазон ввода от 0 («СТОП») до 9999 (максимальные обороты).
Частота вращения контролируется и регулируется во всех режимах.
Уровень мощности, которая подается на вентилятор в процессе регулировки, отображается при помощи светодиодной линейки. На ней засвечивается «столбик» из светодиодов, длина которого пропорциональна уровню мощности (0 – все светодиоды погашены, макс. уровень – все светодиоды засвечены, ½ макс. уровня – ½ часть светодиодов засвечена и т.д.)
Работа регулятора считается стабильной, если в процессе регулирования частота вращения уходит от заданной не более чем на 100 об/мин. Проверка стабильности работы выполняется в диапазоне 200 – 6000 об/мин.
Начальное состояние:
Начальное состояние –задана частота 2000 об/мин, двигатель вращается, режим отображения текущей частоты вращения.
Задание 2. Регулятор тона
Максимальное количество балов: 20
Реализовать программу для синтезатора звукового тона. Частота задается вращением энкодера.
Требования к выполнению:
Программа постоянно генерирует звук заданной частоты на динамике. Заданная частота отображается на цифровом индикаторе.
Управление частотой выполняется вращением энкодера. Шаг изменения частоты 200 Гц.
Частота звука должна меняться в диапазоне от 500Гц до 5000Гц. Допускается отличие реальной частоты звука от заданной не более, чем на 200Гц.
Начальное состояние:
Задана начальная частота 1000 Гц.
Задание 3. Терморегулятор
Максимальное количество балов: 25
Программа для устройства терморегуляции: регулировка скорости вращения вентилятора в зависимости от температуры.
Требования к выполнению:
Программа должна обеспечивать управление скоростью вращения вентилятора в зависимости от температуры.
Установка частоты вращения выполняется с помощью регулирования подаваемой мощности через ШИМ. Реальная частота вращения отслеживается по датчику вращения.
Температура измеряется датчиком температуры(с i2c выходом). Скорость вращения вентилятора произвольная, но должна изменяться в сторону увеличения при нарастании температуры и в сторону уменьшения при падении температуры.
Необходимо обеспечить вращение вентилятора без остановок как для малых температур, так и в случае внешнего воздействия на вентилятор.
Дисплей имеет два режима индикации:
1. Режим индикации температуры в градусах. Отображается один знак после запятой.
2. Режим индикации частоты вращения в оборотах в минуту.
При нажатии на кнопку 1 режим индикации переключается.
Начальное состояние:
Начальный режим индикации – индикация температуры.
Примечание:
Температуру датчика изменять в большую сторону прикосновением и удерживанием пальца на датчике, в меньшую – путем дальнейшего самоохлаждения.
Задание 4. Контролер съема данных
Максимальное количество балов: 20
Программа для устройства автоматизации съема данных. Программа получает накопленные данные по COM-порту, анализирует их и выдает результат.
Требования к выполнению:
Через последовательный порт COM1 (скорость 2400, 8 бит, без четности, 1 стоп бит) на стенд поступает текст – поток символов. Передаваться могут любые символы (с кодами 0…255, кодировка ASCII), кроме символа с кодом 12. Символ с кодом 12 означает конец текста.
Программа должна выделить из текста десятичные числа, и вычислить их сумму. Числа отделены справа и слева как минимум одним разделительным символом. Разделительные символы – символы с кодом меньше 33, кроме символа с кодом 12).
Используются целые числа, положительные и отрицательные. Диапазон чисел, встречающихся в тексте, а также их сумма находится в диапазоне: 32768…+32767
После получения символа с кодом 12, программа должна вывести в последовательный порт сумму полученных чисел (в текстовом десятичном виде), а также символы перевода строки (коды 13 и 10). Затем ждать новую порцию текста.
Размер текста не ограничен.
Начальное состояние:
При запуске программа выдает в COM-порт строку «ready» (5 символов) и ожидает порцию текста. Для каждой порции текста начальная сумма равно 0.
Примечание:
Коды символов-цифр в таблице ASCII: «0» = 48, «1» = 49 … «9» = 57
Задание 5. Часы с настройкой
Максимальное количество балов: 15
Программа управляет работой и настройкой простых наручных часов.
Требования к выполнению:
Постоянно при работе программы считается время (часы, минуты, секунды). Точность хода – 5%
Часы имеют три режима индикации/работы. Режим индикации циклически переключается в момент нажатия кнопки 1:
1. Режим индикации времени. Два левых знакоместа цифрового индикатора отображают текущее значение счётчика часов, два правых знакоместа – текущее значение счётчика минут. Точка посередине мигает с частотой 1 Гц.
2. Режим настройки минут. Два левых знакоместа отображают значение счётчика часов, два правых знакоместа - значение счётчика минут. Индикатор счётчика минут мигает с частотой 1Гц. В момент нажатия кнопки 2 текущее значение минут увеличивается на 1, счетчик секунд обнуляется. При переполнении счётчик минут обнуляется.
3. Режим настройки часов. Два левых знакоместа отображают значение счётчика часов, два правых знакоместа - значение счётчика минут. Индикатор счётчика часов мигает с частотой 1Гц. В момент нажатия кнопки 2 текущее значение часов увеличивается на 1. При переполнении счётчик часов обнуляется.
4. Возможна реализация режима автоповтора при настройке часов и минут
Начальное состояние:
При включении начальное состояние часов: 12:00, режим индикации времени
Задание 6. Телеграф с памятью
Максимальное количество балов: 15
Реализовать устройство-телеграф, для передачи сообщений азбукой Морзе, с возможностью повтора переданной информации
Требования к выполнению:
Телеграф работает в двух режимах: передачи и повтора.
В режиме передачи выполняется передача сообщения и его запоминание. Телеграфист нажатим «ключа» (нажатим кнопки енкодера) формирует сообщение азбукой Морзе. Сообщение состоит из комбинаций «точек» (кратковременное нажатие) и «тире» (длительное нажатие), а также из пауз различной длительности).
Во время нажатия и удержания ключа программа включает любой из единичных светодиодов стенда и издаёт звук на динамике.
Программа должна обеспечивать запоминание последовательности «точек», «тире» и пауз. Первая пауза (после старта записи, до первого нажатия ключа) не записывается. Программа должна запоминать минимум 20 первых «точек» или «тире».
Режим повтора включается кнопкой 2. После однократного нажатия кнопки 2 программа воспроизводит записанную последовательность, при этом выполняется звуковая и световая индикация (такая же, как в режиме передачи).
При повторной передаче должен воспроизводится «почерк» телеграфиста, т.е. длительности «точек», «тире» и пауз должны точно повторяться.
По окончанию повтора записанное сообщение стирается, активизируется режим передачи.
Максимальная длительность сигнала и паузы 5 сек, более длинные сигналы и паузы усекаются до этого значения.
Начальное состояние:
Режим передачи, память повтора пустая
Критерии оценки:
Выполнить заданные требования.
Оценка задания может быть снижена за некачественную реализацию обработки нажатия кнопок (антидребезг)
Задание 7. Автомагнитола
Максимальное количество балов: 20
Реализовать интерфейс управления автомобильным CD-плеером.
Требования к выполнению:
Программа реализует управление воспроизведением Audio-CD, с отображением информации о ходе воспроизведения.
Управления выполняется кнопками на цифровой клавиатуре. Цифры «1», «2», «3» соответствуют клавишам плеера “play” (играть), “stop” (стоп), “pause” (пауза). Кнопка 1 и кнопка 2 – клавишам “next”(следующий) и “prev”(предыдущий).
“play” – начало или продолжение проигрывания текущего трека. При достижении конца – автоматический переход на следующий трек без паузы.
“stop” – останов, текущий трек перематывается на начало.
“pause” – пауза.
“next” – Кратковременное нажатие переход на следующий трек. При долговременном нажатии – перемотка текущего трека вперед (скорость перемотки – 20 сек трека за 1 сек удержания кнопки).
“prev” – Кратковременное нажатие: если время от начала трека до 10 сек, то переход на предыдущий трек, в другом случае – перемотка на начало трека.
При долговременном нажатии – перемотка текущего трека назад (скорость перемотки – 20 секунд трека за 1 секунду удержания кнопки).
При долговременном нажатии кнопки “next” или “prev”, в режиме перемотки трека, переход на следующий или предыдущий трек не выполняется.
На цифровом индикаторе постоянно отображается время от начала воспроизведения трека (минуты – 2 знака, секунды – 2 знака, между ними светится разделительная точка). При переключении треков на индикаторе кратковременно (1 сек) отображается номер трека.
При воспроизведении и при переходах между треками – треки переключаются по кругу ( после последнего – первый и наоборот).
Дополнительно выполняется имитация вращения CD-диска вентилятором, а также воспроизведения звука динамиком. Вентилятор вращается в режимах воспроизведения и паузы. Остановка вентилятора производится только в режиме «stop». В режиме перемотки вентилятор ускоряется. В режиме воспроизведения трека динамиком генерируется звук с частотой 1000…2000Гц.
Начальное состояние:
Трек №1, режим «стоп»
Конфигурация «тестового» диска:
Количество треков: 7. Длительность треков:
1) 1:05
2) 3:15
3) 5:45
4) 7:00
5) 4:13
6) 12:47
7) 10:00
Задание 8. Программа наименьшего размера
Максимальное количество балов: 5 … 20
Написать программу наименьшего размера, реализующую ввод цифр и их отображение
Требования к выполнению:
Программа должна обеспечить ввод цифр с цифровой клавиатуры: .от 0 до 8.
Введенная цифра отображается на светодиодной линейке позиционном коде, при этом все младшие биты
индикатора должны быть включены (одновременно светится один светодиод). При каждом новом вводе изменять отображение на введенное.
Цифра 0 должна выключать все индикаторы. На остальные символы «#», «*», и «9» программа не реагирует.
Начальное состояние:
Введено число 0
Авторы заданий Бойко А. Белоокий П. Столярчук П. сотрудники ЧМП "Оупен Систем"