스마트 팩토리 ( smart factory )
- 스마트 팩토리란? 설계 및 개발, 제조 및 유통 등 생상과정에 디지털 자동화 솔루션을 결합한 지능형 생산 공장
- 공장 내 설비와 기계에 사물인터넷을 설치하여 공정 데이터를 실시간으로 수집하고, 이를 분석해 스스로 제어할 수 있게 만든 미래의 공장입니다.
개요
발표자료 및 시연 영상
https://drive.google.com/drive/u/1/folders/1S4-qjXNvgSVtVAN566lB0PACdmTJGy4S
문제인식
- 자동화된 생산라인에서 어떻게 하면 수율을 올릴 수 있을까?
- 자동화된 생산라인에서 어떻게 하면 안정성을 높일 수 있을까?
- 자동화된 생산라인과 IOT는 어떻게 접목될 수 있을까?
전략
스마트 팩토리에 꼭 필요한 요소
- 생산라인의 자동화, 무인화
- 데이터를 수집하여 기계가 스스로 판단
- 언제 어디서든 모니터링 가능한 환경
구체화
1. 자동화, 무인화
- 영상처리를 활용해 제품의 불량여부 검출 및 분류
- 작업자의 접근을 막는 안전장치 사용
2. 데이터를 수집하여 기계가 스스로 판단
- 타이어의 크기만 분류하므로 딥러닝이 아닌 OpenCV를 사용
- 영상처리한 데이터는 데이터베이스에 저장
3. 언제 어디서든 모니터링 가능한 환경 구축
- 앱을 통해 실시간으로 생산라인을 모니터링
- 앱을 통해 생산라인의 작동을 제어
- 디지털 트윈을 사용해 가상환경에서 생산라인 모니터링
프로젝트 설계도 및 배치
제어흐름도
회로도
역할 분담
JAEWOOK6488
총괄
- 프로젝트 기획 및 물품구매
- 각 센서들의 동작을 구현
- 노션관리
brainKimDu
하드웨어 팀장
- 하드웨어 설계 및 구현
- 데이터 흐름 구체화(제어흐름도 작성
- 깃 관리
fb059
디지털 트윈 담당
- 언리얼 엔진을 통한 디지털 트윈 설계 및 구현
- 데이터 베이스와 언리얼 엔진 연동
- 하드웨어 디자인 설계
MiMi012
데이터 팀장
- 각 파츠별 주고받는 데이터 정의
- 데이터 베이스 관리 및 여러 모듈과의 연동 구현
- Notion 기록 담당
isakjo
앱 담당
- 프로젝트 제어, 모니터링용 앱 개발
- 프로젝트 전체적인 디자인 개발
- Notion 기록 담당
PART 1. 물품구매와 각 센서들의 동작 구현
필요물품 및 프로그램 정리
ㅇ 컨베이어 벨트
>> 컨베이어 벨트 구매 및 제작
>> 아두이노를 통한 구현 과정
아두이노와 모터드라이브를 통해 컨베이어벨트의 속도 조절
초음파센서를 이용하여 작업자가 접근하는 경우 컨베이어벨트 비상 정지
비상정지 버튼을 누르는 경우 컨베이어벨트 비상정지
LCD 구현
LCD를 화면에 띄우는 것과 시리얼 통신으로 입력받은 데이터를 LCD에 띄우는 것을 구현함.
서보모터
서보모터를 통해 불량품과 양품을 구별함.
레이저 센서
레이저 센서를 통해 물품을 인식하고, 개수를 카운트하도록 구현함.
PART 2. 생산품의 불량여부 판단
OpenCV 허프변환을 통한 원검출
동전을 검출해보기
컨베이어 벨트에서의 circle detection 실험
- 알고리즘
PART 3. 컨베이어 벨트에서 센서들을 활용하여 불량여부 판단하고 분리하기 (모든 요소 결합하기)
완성된 하드웨어의 모습
-컨베이어를 구동하는 아두이노와 서보모터를 동작해 물품을 분류하는 아두이노로 구성됨.
동작 설명
A 아두이노가 컨베이어 벨트를 구동
카메라를 통해 원을 detection -> B아두이노에 데이터를 전달 -> 레이저센서에서 거리가 detection시 서보모터 작동
PART 4. 데이터의 흐름 정리 및 firebase에 데이터 전송
목표
- 아두이노와 노트북간의 통신과 같은 데이터의 흐름을 정의하고 정리한다.
- 아두이노의 멀티스레딩 환경 구현 - 파이썬
- firebase에 데이터를 올리는 과정을 구현한다. https://firebase.google.com/ (기획시 Cloud로 AWS를 사용하려 했으나 flutter 앱과 연결을 구현하기 어려워 파이어베이스로 수정)
구현과정
- 우선 가상환경에 firebase_admin을 pip로 다운로드 하여야 한다.
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
from firebase_admin import db
cred = credentials.Certificate("json파일 위치 지정")
firebase_admin.initialize_app(cred, {
'databaseURL' : "데이터 베이스 주소"
})
db = firestore.client()
doc_ref = db.collection(u'err_rate').document(str(T))
doc_ref.set(({u'rate': R, u'trial': T}))
- 다음의 코드를 활용하여 데이터를 올린다.
프로젝트에 사용하는 데이터
PART 5. 플루터를 통한 모니터링 앱구현
목표
- 블루투스를 통해 컨베이어 벨트의 작동 및 중지 명령
- 생산라인 상황을 실시간으로 모니터링 할 수 있는 시각화 자료 제공
앱 UI
처음 시작화면
- 블루투스를 통해 컨베이어 벨트 아두이노와 통신한다.
메인화면
- 컨베이어 벨트를 작동 시키거나 정지시킬 수 있다.
- 사람의 동작을 감지한 경우 (초음파 센서)
시각화 데이터
- 메인화면에서 실시간 데이터 버튼을 클릭하면 다음과 같은 화면이 나온다.
PART 6. 언리얼엔진을 통한 디지털트윈 구현
목표
- 가상공간에 생산라인을 구현하여 가상공간에서 실시간 모니터링
구현 과정
'ㅇ 프로젝트 > TEAM_스마트 팩토리' 카테고리의 다른 글
IOT 프로젝트 개요서.. (0) | 2023.02.07 |
---|---|
IOT 스마트 팩토리를 마무리하면서 (0) | 2023.01.10 |
9. 일단 순조롭게 잘 진행되고 있다. (0) | 2023.01.05 |
8. 프로젝트 중간 보고서 (0) | 2023.01.02 |
7. 레이저 센서 구현하기 , 초음파 센서 합치기 (0) | 2023.01.02 |