Page 214 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 214
6. 소프트웨어
가. python + pycharm ( 택배 보관함 세부 동작 및 터치스크린) # -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import * from PyQt5 import QtGui, uic from PyQt5.QtGui import
* from PyQt5.QtCore import * import RPi.GPIO as GPIO import time
CalUI = '/home/pi/n_choice.ui' # UI 불러오기
KeyPadUI = '/home/pi/new_KeyPad.ui' OpenUI = '/home/pi/open-box2.ui' CloseUI =
'/home/pi/close-box.ui' ClosingUI = '/home/pi/close_door.ui'
GPIO.setmode(GPIO.BCM) LEDbar = 17
GPIO.setup(LEDbar, GPIO.OUT,initial=GPIO.LOW)
ma=21 GPIO.setup(ma,GPIO.IN)
pin = 18
GPIO.setup(pin, GPIO.OUT) p = GPIO.PWM(pin, 50)
p.start(7.5)
class TaskThread(QThread): finished=pyqtSignal() def run(self):
time.sleep(4) while(True):
print(GPIO.input(ma)) if GPIO.input(ma)!=0:
break time.sleep(2)
GPIO.output(LEDbar,GPIO.LOW) p.ChangeDutyCycle(7.5) self.finished.emit()
class KeyPadDialog(QDialog): # 고객 keypad 창 기능 구현
def init (self): QDialog. init (self)
self.ui = uic.loadUi(KeyPadUI, self) # UI 불러오기
self.ui.showFullScreen()
# 키패드버튼과 연결된 함수
self.num_pushbutton_1.clicked.connect(lambda
state, button=self.num_pushbutton_1: self.NumClicked(state, button))
self.num_pushbutton_2.clicked.connect(lambda
state, button=self.num_pushbutton_2: self.NumClicked(state, button))
self.num_pushbutton_3.clicked.connect(lambda
state, button=self.num_pushbutton_3: self.NumClicked(state, button))
self.num_pushbutton_4.clicked.connect(lambda
state,
- 223 -