"최강 김조장이 - K-Cocktail Mate"의 두 판 사이의 차이

MIE capstone
이동: 둘러보기, 검색
(소프트웨어 설계 및 구현)
(소프트웨어 설계 및 구현)
40번째 줄: 40번째 줄:
 
UI에서 사용자 입력을 받아 음료 제조 과정과 온도 제어 과정을 비동기적으로 실행한다.
 
UI에서 사용자 입력을 받아 음료 제조 과정과 온도 제어 과정을 비동기적으로 실행한다.
 
처음 제안과는 달리 음료를 섞어주는 서보모터 기능이 제작 도중 제외되었다.
 
처음 제안과는 달리 음료를 섞어주는 서보모터 기능이 제작 도중 제외되었다.
 +
  
 
'''프로세스 구성도'''
 
'''프로세스 구성도'''
48번째 줄: 49번째 줄:
 
UI 프로세스에서 음료 제조 제어부와 프로세스간 데이터 통신을 위한 제어부와 데이터 통신을 멀티쓰레드로 구현했다.
 
UI 프로세스에서 음료 제조 제어부와 프로세스간 데이터 통신을 위한 제어부와 데이터 통신을 멀티쓰레드로 구현했다.
 
냉장고 프로세스에서 팬 제어와 온도 측정을 비동기적으로 수행하기 위해 멀티쓰레드로 구현했다. 또한 프로세스간 통신을 위해 공유메모리를 사용했다.
 
냉장고 프로세스에서 팬 제어와 온도 측정을 비동기적으로 수행하기 위해 멀티쓰레드로 구현했다. 또한 프로세스간 통신을 위해 공유메모리를 사용했다.
 +
  
 
'''협업 과정'''
 
'''협업 과정'''
66번째 줄: 68번째 줄:
 
홈, 모니터링, 제어 조정, 설정 탭이 있고 홈 화면에서는 음료의 비율을 조정할 수 있고
 
홈, 모니터링, 제어 조정, 설정 탭이 있고 홈 화면에서는 음료의 비율을 조정할 수 있고
 
음료 제조 시작 기능이 있다.
 
음료 제조 시작 기능이 있다.
 +
  
 
'''완성된 UI'''
 
'''완성된 UI'''

2021년 6월 19일 (토) 23:36 판

프로젝트 소개

프로젝트 명

K-Cocktail Mate

프로젝트 기간

2021.3~2021.6

팀 소개

서울시립대학교 기계정보공학과 (학번) (이름) (팀장)
서울시립대학교 기계정보공학과 20154300** 장*빈
서울시립대학교 기계정보공학과 (학번) (이름)
서울시립대학교 기계정보공학과 (학번) (이름)
서울시립대학교 기계정보공학과 20174300** 이*희

프로젝트 개요

프로젝트 요약

프로젝트의 배경 및 기대효과

프로젝트 개발 목표

동작 시나리오

구현 내용

시스템 구성

기구부 설계 및 구현

제어부 및 회로 구현

소프트웨어 설계 및 구현

프로세스 흐름도

프로세스 흐름도3.png

UI에서 사용자 입력을 받아 음료 제조 과정과 온도 제어 과정을 비동기적으로 실행한다. 처음 제안과는 달리 음료를 섞어주는 서보모터 기능이 제작 도중 제외되었다.


프로세스 구성도

프로세스 구성도2.png

UI프로세스와 냉장고 프로세스를 독립적으로 구성했다. UI 프로세스에서 음료 제조 제어부와 프로세스간 데이터 통신을 위한 제어부와 데이터 통신을 멀티쓰레드로 구현했다. 냉장고 프로세스에서 팬 제어와 온도 측정을 비동기적으로 수행하기 위해 멀티쓰레드로 구현했다. 또한 프로세스간 통신을 위해 공유메모리를 사용했다.


협업 과정

소프트웨어 구현을 UI, 펌프, 냉장고 총 세 모듈로 나누어서 제작했다. 원활한 소프트웨어 통합을 위해 Github를 사용했다. 각각 모듈의 브랜치를 만들어서 각각의 모듈을 구현한 뒤 최종적으로 통합했다.

Github.PNG

Github 주소 : https://github.com/JoHyunwoong/No.1-kim.jo.jang.lee.


UI 구현

제안서 발표 당시 UI초안

UI초안.png

홈, 모니터링, 제어 조정, 설정 탭이 있고 홈 화면에서는 음료의 비율을 조정할 수 있고 음료 제조 시작 기능이 있다.


완성된 UI

UI제작을 위해 PyQt5 프레임워크를 사용하였다. 또한 터치스크린으로 라즈베리파이 7인치 터치스크린을 사용하기 때문에 해상도에 맞게 800 * 480 해상도로 UI를 제작하였다. UI는 총 5개의 화면으로 구성되어 있다. 라즈베리파이가 부팅되면 처음으로 보이는 main화면, 칵테일 모양을 누르면 진입하는 home 화면, 모니터 모양을 누르면 진입하는 monitor화면, 제어 모양을 누르면 진입하는 parameter화면, 톱니바퀴 모양을 누르면 진입하는 setting 화면으로 구성되었다.


main 화면

Ui main.PNG

main 화면은 4개의 버튼이 존재한다. 각각의 버튼을 클릭하면 특정 기능을 수행하는 화면으로 이동하게 된다.


home 화면

UI home2.PNG

home 화면은 맥주의 비율을 조정하는 기능과 제조를 시작하는 기능들을 제공한다. 비율 조정은 슬라이더를 움직여서 할 수 있으며 제조 시작 기능은 버튼을 클릭하면 음료 제조가 시작된다.


monitor 화면

Ui monitor2.PNG

monitor 화면은 음료의 잔량을 확인하고 음료가 교체되었을 시 교체버튼을 눌러 소프트웨어에 전달하는 기능, 현재 냉장고의 온도를 표시해주는 기능, 목표온도를 설정할 수 있는 기능들을 제공한다.


parameter 화면

Ui parameter.PNG

parameter 화면은 펌프의 출력양을 조절한다. 각각의 펌프가 다른 음료를 사용하기 때문에 미세한 조정이 필요하다.


setting 화면

Ui setting.PNG

setting 화면은 음료 제조가 완료된 후 발생하는 부저의 소리를 켜고 끌 수 있는 기능을 제공한다. 또한 현재 ui에서 설정된 음료의 비율, 현재 온도, 목표 온도, 펌프 출력양을 텍스트 파일로 저장해 재기동 시 기본값으로 불러오는 기능을 제공한다.


펌프 구현


냉장고 구현

온도 측정에 필요한 온도 모듈과 팬 모듈로 구성되어 있다. 하지만 냉장고 목표온도에 비해 열전소자의 냉각능력이 부족해 팬을 항상 최대속도로 가동하게 됨으로써 팬 모듈이 제외되었다.

온도 측정 모듈은 DS18B20온도 센서와 1Wire 통신을 함으로써 온도를 읽어온다. 해당 온도센서는 디지털 출력으로 구성되어 있어 AD과정을 거치지 않는다. 읽어온 온도는 프로세스간 공유메모리의 리스트의 약속된 인덱스에 저장된다.

프로젝트 결과

최종 결과물

결과물 사진 혹은 시연 영상 등

미구현 내용

프로젝트 평가

평가항목

평가결과

느낀점

이*희 : 하드웨어가 필요한 제품을 만들 때 생각보다 많은 물적,인적 자원이 필요하다는 것을 깨달았다. 또한, 순수하게 제작으로 들어가는 시간으로 인한 작업 지연만큼, 협업으로 인한 지연 및 물품 배송 지연으로 인한 지연, 이로 인해 발생하는 추가적인 지연 요소들에 대해 체험할 수 있었다. 의사소통의 중요함과 협업 시 신경써야 할 부분들에 대해서도 배울 수 있는 좋은 기회였다.

부록