Будильник на языке программирования питон

XV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Будильник на языке программирования питон

Лаптева Е.Д. 1
1МБОУ лицей №40 при УлГУ г.Ульяновска
Гуськова А.Г. 1
1МБОУ лицей №40 при УлГУ г.Ульяновска
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

1. Введение

Цель: написать программу на языке программирования Pithon

Задачи:

Изучить нужную литературу

Создать визуализацию будильника

Установить библиотеки, которые понадобятся при написании кода

Написать и протестировать код

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

Актуальность: Оттого с каким настроением мы встанем утром, будет зависеть весь день. Людям очень тяжело вставать по будильнику, ведь когда мы слышим раздражающий звук, то хочется поскорее его выключить и вернуться в страну снов. Это может привести к опозданиям, испорченным нервам и недосыпу. Но почему не попробовать вставать под свои любимые мелодии, которые точно обеспечат заряд бодрости и энергии на весь день. Безусловно на современных будильниках без проблем можно поставить понравившиеся песни, но как насчет разных мелодий в каждый день недели? В понедельник можно просыпаться под симфонию № 40 Моцарта, во вторник – под любимых поп исполнителей, в среду – под Богемскую Рапсодию и т.д.

Заниматься программированием на Pithon я начала относительно недавно, но недостаток знаний в этой области не помешал мне создать несложный код для будильника с легкой визуализацией на QtDesigner [2].

2.Основная часть

2.1Модули и библиотеки

Рис.1 Модули и библиотеки

1 - Модуль sys обеспечивает доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором python. sys нужен для передачи argv в QApplication [1]

2 – clock – это название файла, где хранятся переменные, связанные с визуализацией. Из него импортируем класс Ui_MainWindow

3 – из PyQt5.QtWidgets надо импортировать виджеты QApplication и QMainWindow

4 –модуль datetime предоставляет классы для работы со временем [3]

5 – time - модуль для работы со временем

6 – threadingмодуль, позволяющий создавать потоки, т.е. запускать несколько операций одновременно [4]

7 – pygame – набор модулей для создания игр и мультимедийных приложений. Из этого модуля надо импортировать mixer для работы со звуком

2.2 Основное тело программы

Рис.2

11 – создаем класс Clock, куда передаем переменные из QMainWindow и Ui_MainWindow

12, 13 - для инициализации экземпляра класса используется метод __init__(self),

в котором можно задать параметры объекта при его создании. self – это ссылка на текущий экземпляр класса. super – это ключевое слово, которое используется для обращения к родительскому классу.

14, 15 – в переменных start_hour и start_minute будет храниться информация о времени, когда будильник будет звонить

16 – в time будет храниться информация о том, через сколько должен сработать будильник

17 - атрибут flag, которому присвоено значение False

18 – setupUi(self) нужен для инициализации нашего дизайна

19 – self.initUi() – вызов метода initUi()

21- создаём метод initUi

22 – обозначаем название будущего окна

23 - при нажатии на кнопку идет вызов метода start

24 - при нажатии на кнопку идет вызов метода stop

Рис.3

26 – метод stop

27, 28 – становится невозможным поменять значение переменных hour_input и minutes_input

29 – кнопка startButton становится неактивной

30,31– если в момент нажатии на стоп играет музыка, то она останавливается

Рис.4

33 – метод remind, куда предаются переменные music, day

34 – время, на которое должна «заснуть» программа

35, 36, 37 – вызываем мелодию в соответствии с днём недели [5]

38 – изменяем значение переменной flag на True

39, 40 – музыка играет 10 секунд и останавливается

41 - значение переменной flag изменяется наFalse

Рис.5

43 – метод start

44, 45, 46 – после нажатия на «старт» кнопки ввода часов, минут и старта становятся неактивными

47 – активная кнопка «стоп»

48, 49 – переменным start_hour, start_minutes передаются значения времени, которое выбрали

50, 51, 52 – программа считывает время в данный момент

53 – 66 – программа вычитает (в секундах) сколько времени надо ждать до звонка будильника

67 – 68 – список с музыкой

69 – в переменную day записываем номер текущего дня недели

70 – 71 – запускается поток с методом Thread

Рис.6

Запуск программы

2.3 Готовый результат

Рис.7

Результат работы программы

3. Заключение и вывод

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

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

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

Применив будильник на практике, я убедилась, что это удобно и полезно. Многие люди с трудом встают по утрам, а с будильником, который каждый день будит твоей любимой музыкой, ранний подъём не составит проблем. Создав свой будильник, я поняла, что это возможность не только получить новые эмоции и ощущения, а также набраться опыта, который в будущем будет очень востребован.

4. Список литературы

Класс sound и модуль pygame.mixer.music. [Электронный ресурс] URL: https://younglinux.info/pygame/mixer (Дата обращения: 02.03.2022)

Модуль threading на примерах. [Электронный ресурс] 10.09.2017 URL: http://python-3.ru/page/import-threading (Дата обращения: 02.03.2022)

ООП в картинках. [Электронный ресурс] 16.08.2019 URL: https://habr.com/ru/post/463125/ (Дата обращения: 02.03.2022)

Никита Прияцелюк. Создаём простое приложение с PyQt Designer: [Электронный ресурс] 30.03.2018 URL: https://tproger.ru/translations/python-gui-pyqt/ (Дата обращения:02.03.2022)

Python для начинающих. Модуль datetime: [Электронный ресурс] URL: https://pythonworld.ru/moduli/modul-datetime.html (Дата обращения: 02.03.2022)

Python для начинающих. Модуль sys: [Электронный ресурс] URL: https://pythonworld.ru/moduli/modul-sys.html (Дата обращения: 02.03.2022)

Просмотров работы: 617