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)