November 29, 2020

디바이스마트 미디어:

디바이스마트 온라인 매거진 전자책(PDF)이 무료! -

2020-09-29

[61호]음성으로 제어하는 간접등 만들기 -

2020-08-26

디바이스마트 자체제작 코딩키트 ‘코딩 도담도담’ 출시 -

2020-08-10

GGM AC모터 대량등록! -

2020-07-10

[60호]초소형 레이더 MDR, 어떻게 제어하고 활용하나 -

2020-06-30

[60호]NANO 33 IoT보드를 활용한 블루투스 수평계 만들기 -

2020-06-30

라즈베리파이3가 드디어 출시!!! (Now Raspberry Pi 3 is Coming!!) -

2016-02-29

MoonWalker Actuator 판매개시!! -

2015-08-27

디바이스마트 레이저가공, 밀링, 선반, 라우터 등 커스텀서비스 견적요청 방법 설명동영상 입니다. -

2015-06-09

디바이스마트와 인텔®이 함께하는 IoT 경진대회! -

2015-05-19

드디어 adafruit도 디바이스마트에서 쉽고 저렴하게 !! -

2015-03-25

[29호] Intel Edison Review -

2015-03-10

Pololu 공식 Distributor 디바이스마트, Pololu 상품 판매 개시!! -

2015-03-09

[칩센]블루투스 전 제품 10%가격할인!! -

2015-02-02

[Arduino]Uno(R3) 구입시 37종 센서키트 할인이벤트!! -

2015-02-02

[M.A.I]Ahram_ISP_V1.5 60개 한정수량 할인이벤트!! -

2015-02-02

[디웰전자] 전류센서 파격할인!! 50% 할인이벤트!! -

2015-02-02

[에스엔에스] 신상품 대량 입고기념 할인이벤트!! -

2015-02-02

[Uni-Trend] 인기상품 10종 할인이벤트!! -

2015-02-02

신학기 기념 니덱서보모터 할인이벤트!! -

2015-02-02

[59호]SMART WAREHOUSEA

59 ict 웨어하우스 (55

2019 ICT 융합 프로젝트 공모전 참가상

SMART WAREHOUSEA

글 | 한성대학교 박종연, 최영수

 

1. 심사평
칩센 ICT가 적용되어야 할 가장 큰 분야 중 하나가 industrial 분야입니다. 그 안에는 Smart Factory를 비롯한 물류관리도 매우 중요한 분야입니다. 작품명인 SMART WAREHOUSE가 되기 위해서는 물류의 불출이 아닌 관리에 무게를 두고 고민을 했으면 어땠을까 하는 아쉬움이 남습니다. 이는 특정 물품의 불출만이 아니라 warehouse 내의 물품 위치, 수량 등을 기본적으로 관리하고, 이를 불출까지 정확하게 할 수 있는 시스템이 되어야 합니다.
뉴티씨 스마트 공장 등에서 쓰일 수 있는 컨베이어 벨트와 원하는 물품을 창고에서 자동으로 배출할 수 있는 구조를 생각하고, 이를 구현한 것에 박수를 보냅니다. 생각만 하는 사람들도 많은데 이를 직접 구현하여 다른 사람들에게 도움을 주려고 한 점 등은 앞으로 살아가면서 삶에 큰 도움이 될 것이며, 많은 사람들에게 도움을 주실 것으로 생각합니다. 기본적으로 좋은 아이디어이지만, 좀 더 구체적인 안이 제시되었다면 좋았을 것 같습니다.
위드로봇 창의성이나 실용성 부분은 기존 제품과 차별점이 없지만 문제를 해결해 나가는 단계가 구체적으로 설명되어 있어 공모전 취지에 어울린다 생각되어 완성도 부분에 높은 점수를 부여하였습니다.
펌테크 전체적인 작품의 하우징 구성에 관련된 아이디어, 작품 완성도, 보고서 완성도 수준이 우수하였다고 생각합니다. 단 컨베이어 벨트는 모터 구동방식을 속도 조절이 가능하도록 감속기어 적용 모터를 사용하거나 PWM 제어로 구현하는 것이 좋지 않았을까? 텍스트 콘솔 방식 대신 GUI 기반의 명령제어 방식이었다면 더욱더 완성도가 높지 않았을까? 하는 생각을 해보았습니다. 학부과정의 학생이 구현하기에 적정한 난이도를 가진 작품이라고 생각합니다.

2. 작품 개요
4차 산업혁명을 통한 변화를 통해 나타난 기술 중 설계·개발, 제조 및 유통·물류 등 생산과정에 디지털 자동화 솔루션이 결합된 정보통신기술(ICT)을 적용하여 생산성, 품질, 고객만족도를 향상시키는 지능형 생산 공장을 뜻하는 스마트팩토리에서 아이디어를 얻어와 생산 공장이 아닌 물류창고 혹은 매장에서 고객의 주문을 받으면 사람이 아닌 기계가 자동적으로 주문에 맞추어 배송 준비 또는 물품을 꺼내어 준다면 편리하겠다는 생각이 들었다.
이 아이디어를 생각한 구체적인 계기는 대학 수업에 필요한 제품을 구매하기 위해 구로에 위치한 디바이스마트 매장에 방문하였던 일이 생각이 났다. 그 당시 임베디드 컴퓨터와 기초적인 지식이 없는 본인들은 매장에 제품들이 잘 정리되어 있음에도 불구하고 비슷한 생김새와 너무 많은 부품의 종류로 인해 프로젝트에 알맞은 제품을 찾는데 많은 시간을 소비하였다. 이때 본인들은 많은 제품을 사람이 기억하여 찾는 것은 힘들기도 하고 비효율적이라는 생각을 가지게 되었다. 이러한 불편함을 겪어보며 소비자가 온라인 혹은 오프라인에서 컴퓨터 혹은 웹을 통해 주문서를 작성하면 기계가 알아서 찾아 꺼내주면 편리하고 효율적이겠다는 생각을 하게 되었고 택배 포장 직전까지 자동으로 해준다면 물류창고에서의 업무 효율이 극대화될 것 같다는 생각이 들었다.

3. 작품 설명
3.1. 주요 동작 유형
3.1.1. 주문 상품 배출

59 ict 웨어하우스 (1)

일정한 각도를 회전하는 스태핑 모터를 사용하여 톱니를 일정 길이 만큼만 밀도록 설계하고, 웹에서 사용자가 주문한 제품의 개수만큼 밀어준다.

3.1.2. 배출되는 상품 외부 이탈 방지

59 ict 웨어하우스 (2)

배출된 상품이 컨베이어 벨트 밖으로 이탈하지 않도록 턱을 설치한다.

3.1.3. 배출 완료된 제품 상자에 담기

59 ict 웨어하우스 (3)

배출된 상품이 컨베이어 벨트 동작으로 인하여 상자에 담기도록 한다. 이탈 방지 벽을 설치하여 배출되는 제품이 외부로 이탈하는 것을 방지한다.

3.2. 전체 시스템 구성

59 ict 웨어하우스 (1)
3.2.1. 세부 동작 순서도

59 ict 웨어하우스 (2)

 

59 ict 웨어하우스 (3)

3.3. 개발 환경(개발 언어, Tool, 사용 시스템 등)

· HTML, CSS(웹, 웹디자인)
· NODE.JS(서버 프레임워크, JavaScript 기반)
· NODE EXPRESS(웹프레임워크)
· PUG(VIEW 템플릿)
· MySQL(데이터베이스)
· PYTHON(서버컴퓨터와 Arduino 통신)
· Arduino(C언어, 마이크로컨트롤러)
· Raspberry Pi(서버 및 Arduino 통신을 위한 초소형 컴퓨터)
· GITHUB (버전관리 시스템)
· SKETCH UP(3D모델링)

4. 단계별 제작 과정
1주차 : 디바이스마트와 관련하여 불편했던 경험을 생각하며 이를 개선하고자 노력해보았다. 물품과 관련하여 자동화를 시키고 싶어서 떠오른 서비스로 스마트팩토리란 개념을 떠올렸고 이를 우리가 어떻게 소규모로 접목시킬지 생각하였다. 생산이 자동적으로 이루어지는 스마트 팩토리를 다르게 생각해서 물류의 자동화를 강점으로 살린 SMART WAREHOUSE의 개념을 생각하였다.
물류의 자동화인 SMART WAREHOUSE를 주제로 정하고 주제 선정에 있어서 중요한 실현가능성, 독창성에 대하여 잘 들어맞는지에 대하여 고민해보았다. 우선 SMART WAREHOUSE가 얼마나 실현 가능한지 생각해보았다. 처음에 생각했던 이미지대로 만들어지게 된다면 웹과 아두이노의 연결로 인해 실제로도 무리없이 사용될 수 있다고 생각하였다. 다음은 독창성에 대하여 생각해보았다. 주변의 소규모 매장 혹은 전자부품 매장을 십여 군데를 찾아다녀보았을 때 웹에서 명령을 내렸을 때 자동적으로 물류를 해주는 것이 아닌 사람이 주문서를 들고 물품을 찾아 포장을 하는 것이 전부 다였다. 따라서 이를 도입한다면 사람이 직접 돌아다닐 필요가 없고 마지막 검사과정만 확인하면 경쟁력 있고 독창성이 있지 않을까 생각하였다.

2주차 : 아이디어에 관하여 외형적인 부분과 어떤 시스템을 이용할지에 대하여 논의가 모두 이루어졌기 때문에 SMART WAREHOUSE의 기본이 되는 컨베이어벨트의 프로토타입을 제작하기로 하였다. 그에 따른 재료구입을 완료하였고 컨베이어벨트 프로토타입을 완성하였다. 하지만 컨베이어벨트의 원통을 담당하는 원통 모양의 풀이 레일을 담당하는 종이와 잘 접합되지 않고 따로 따로 돌아가는 문제가 자주 발생하였다.
토의를 통해 문제를 해결하기 위한 2개의 가정을 해보았다. 첫 번째로는 기존에 참고한 자료와는 재료의 차이가 나서 레일이 돌아가지 않는다는 점과 임의적으로 크기를 늘려서 레일과 원통형의 원통 모양의 풀이 같이 돌아가지 않는다는 점이 있다고 생각하였다. 그에 따라서 정교한 모델링과 마모되지 않는 재질의 물품이 필요하다고 여겨졌다.

59 ict 웨어하우스 (4)

상단: 참고한 컨베이어 벨트(youtube) : 마찰력이 약간 높은 재질
하단: 컨베이어벨트 프로토타입 : 마찰력이 높은 재질

1. 참조한 자료를 통해 미니컨베이어벨트 프로토타입 제작완료
2. 주변에서 구할 수 있는 재료와 이미 있는 재료로 제작

미흡점 및 수정 계획
· 프로토타입의 원통형의 풀통 부분을 3D모델링을 통해 마찰력을 필요한 만큼만 높이고 정확한 두께로 안정감을 추구하기로 하였다,
· 마찰력이 높은 종이 대신에 마찰력이 낮은 재질의 A4로 대체
· 6각형 모양의 pvc지지대를 원통형의 나무막대로 대체할 예정

3주차 : 프로토타입에서 헛돌던 원통 교체를 위한 3D 모델링 및 프린팅한 후 출력된 원통과 컨베이어 벨트를 조립 후 동작 실험을 한다.

59 ict 웨어하우스 (4)

좌: SketchUp 프로그램을 통한 원통 3D 모델링
우: 모델링한 원통 3D 프린팅 출력

59 ict 웨어하우스 (5)

좌: 3D 프린팅한 원통과 모터와 결합하기 위한 나무막대 결합
우: 그림9-3의 물체와 컨베이어벨트간의 조립 + 모터와 나무막대와 의 결합을 위한 작은 원통형의 3D 프린팅해서 조립

미흡점 및 수정 계획
· 가벼운 재질로 바꾼 후 이전보다 잘 작동하나 마찰력이 부족하여 가끔 헛도는 현상 발생
· 3D프린터에 자주 이용되는 스타팅벨트 구입 및 조립 예정

앞서 제작한 제품의 마찰력이 너무 부족하여 가끔씩 헛도는 부분을 수정한 후, 토의를 통해 벨트의 톱니 모양이 있는 스타팅벨트를 이용하여 마찰력을 다시 높인 컨베이어 벨트를 제작한다.

59 ict 웨어하우스 (6)

좌: 원통 부분 스타팅벨트 장착
우: 레일부분에 스타팅벨트 장착

미흡점 및 수정 계획
· 좌측 원통부분과 1주차에 레일을 담당하는 종이 부분에 스타팅벨트 장착한다.
· 높은 마찰력과 뻣뻣한 종이의 재질로 인하여 스타팅벨트끼리 접합이 잘 되지 않는 것을 확인한다.
·  마찰력과 종이의 재질 문제라 판단하고 부드럽고 마찰력이 낮은 A4에 스타팅벨트를 장착한다.
· 회전은 잘 되나 모터의 힘을 잡아주지 못하고 계속해서 돌아가서 종이가 마모될 가능성이 보인다,
· 원통에 장착된 스타팅벨트만 유지하고 레일의 역할인 종이에 장착된 스타팅벨트는 제거하고 돌려보아도 제대로 돌아가지 않아 종이에 마찰력을 주는 어떤 장치가 필요하다고 생각하게 된다.

4주차 : 스타팅벨트의 톱니가 마찰력이 너무 높아 모터가 힘을 받쳐주지 못한다고 판단한 후, 전기테이프를 마찰력이 높고 뻣뻣한 종이와 부드러운 A4용지에 가로로 붙여 실험한다.

59 ict 웨어하우스 (7)

상단: 원통 부분 스타팅벨트 유지
하단 좌: 마찰력 높은 종이 + 전기테이프
하단 우: A4 + 전기테이프

· 실험결과 뻣뻣한 재질의 종이는 가끔씩 뜨는 것을 확인 A4용지는 유지성의 문제가 있지만 프로토타입에서 실험을 목적으로 하는 것에는 알맞다고 생각
· A4종이에 전기테이프를 붙여 놓은 벨트를 쓰는 것으로 결정

59 ict 웨어하우스 (8)

좌: 기존 수납함
우: 커스터마이징한 수납함

· 컨베이어벨트를 제작 완료한 후 부품함을 커스터마이징하여 제작했다.

부품함 내부 구조

59 ict 웨어하우스 (9)

 

59 ict 웨어하우스 (10)

상단: 정확한 치수를 잰 후 3D 모델링을 그린 모습

하단: 3D 프린팅 + 레크기어 장착한 모습

59 ict 웨어하우스 (11)

1번: 공구함 작동되기 전 사진
2번: 공구함 작동되고 있는 사진
3번: 공구함 완성된 내부 구조
4번: 사이드 샷

· 3D모델링 및 프린팅을 통한 부품함 내부 동작부 완성
· 간단한 아두이노 코딩을 통한 동작 테스트
· 아두이노 코딩 후 실험을 통하여 동작에 필요한 값(모터의 회전수) 조절

5주차 : 먼저 제작된 1개의 커스터마이징한 부품함 테스트후 2개를 추가 제작한다. 아두이노 우노보드를 통해 제작 중 연결 가능한 핀의 수가 부족한 것을 파악하였다. 다수의 연결 가능한 핀을 보유한 아두이노 메가보드로 교체한다. 전력소모와 전력이 일정하게 흐르지 않는 점을 발견하였으며, 전력관리를 위한 4채널 5v릴레이션 모듈을 사용하고자 한다.

59 ict 웨어하우스 (12)

좌: 아두이노 메가보드 사용, 릴레이션 모듈을 사용하여 전력을 일정하게 유지
우: 난잡한 선 정리와 모터드라이브 모듈 정리를 위한 3D프린팅 후 조립

제작한 부품을 전체적으로 조립한다.

59 ict 웨어하우스 (13)

전체적인 프로타입 모형 구조

6주차 : Raspberry pi를 와 node.js를 통한 서버 제작, Web제작

59 ict 웨어하우스 (5)

1번: Web Home 화면
2번: 수량확인 화면
3번: 주문 화면
4번: 주문성공 화면
5번: 주문실패 화면

5. 확장성 및 활용
중,대형 창고에 적층식으로 필요한 만큼 적층하여 적용할 수 있고 확장에 용이하다.

59 ict 웨어하우스 (6) 59 ict 웨어하우스 (7)

· 기본형에 상단부와 좌우로 적층 및 정렬하여 확장할 수 있다.
· 상단으로 적층할 때에는 제품 손상을 줄이기 위해 바로 떨어지지 않도록 미끄럼틀 모양의 받침을 추가로 설치한다.
· 창고에 커스텀화하여 쉽게 증설 및 감축을 할 수 있다고 생각하며, 창고에 비해 물건이 적은편인 매장에는 무인 오더기를 통하여 상품을 사용자가 쉽게 꺼낼 수 있도록 도와주는 식으로도 활용이 가능하다고 생각한다.

6. 기타(회로도, 소스코드, 참고문헌 등)
전역변수 부분

#include <Stepper.h>

const int stepsPerRevolution = 2048; // 모터별 스탭 수 설정

Stepper stepperA(stepsPerRevolution,52,48,50,46); //모터A 핀 설정
Stepper stepperB(stepsPerRevolution,44,40,42,38); //모터B 핀 설정
Stepper stepperC(stepsPerRevolution,36,32,34,30); //모터C 핀 설정

int RelaypinD = 4; // IN1 4채널 릴레이 모듈 핀 설정
int RelaypinC = 5; // IN2 4채널 릴레이 모듈 핀 설정
int RelaypinB = 6; // IN3 4채널 릴레이 모듈 핀 설정
int RelaypinA = 7; // IN4 4채널 릴레이 모듈 핀 설정

char loopn1=’z’; //웹에서 받아온 수량 개수 변수 z는 디폴트 값
char loopn2=’z’; //웹에서 받아온 수량 개수 변수 z는 디폴트 값
char loopn3=’z’; //웹에서 받아온 수량 개수 변수 z는 디폴트 값

int a1; //형변환을 위한 변수
int a2; //형변환을 위한 변수
int a3; //형변환을 위한 변수

Loop 부분

while(Serial.available()>0)
{

loopn1=Serial.read(); //라즈베리파이에서 시리얼로 입력
delay(2);
loopn2=Serial.read(); //라즈베리파이에서 시리얼로 입력
delay(2);
loopn3=Serial.read(); //라즈베리파이에서 시리얼로 입력
delay(2);

a1=(int)loopn1-48; //시리얼에서 받아온 값 CHAR에서 int로 형변환
a2=(int)loopn2-48; //시리얼에서 받아온 값 CHAR에서 int로 형변환
a3=(int)loopn3-48; //시리얼에서 받아온 값 CHAR에서 int로 형변환
}

digitalWrite (RelaypinA, HIGH);
digitalWrite (RelaypinD, HIGH);
if(loopn1 != ‘z’) //A에 주문이 들어오면 동작
{
Serial.println(a1);
Serial.println(a2);
Serial.println(a3);
digitalWrite (RelaypinA, LOW); // 릴레이 ON
pushingA(a1);
digitalWrite (RelaypinA, HIGH); // 릴레이 OFF
delay (500);
digitalWrite (RelaypinA, LOW); // 릴레이 ON
delay (500);
pullingA(a1);
digitalWrite (RelaypinA, HIGH); // 릴레이 OFF
loopn1=’z’; // 주문 플래그 초기화
}
if(loopn2 != ‘z’) //B에 주문이 들어오면 동작
{
digitalWrite (RelaypinB, LOW); // 릴레이 ON
pushingB(a2);
digitalWrite (RelaypinB, HIGH); // 릴레이 OFF
delay (500);
digitalWrite (RelaypinB, LOW); // 릴레이 ON
delay (500);
pullingB(a2);
digitalWrite (RelaypinB, HIGH); // 릴레이 OFF
loopn2=’z’; // 주문 플래그 초기화
}
if(loopn3 != ‘z’) //C에 주문이 들어오면 동작
{
digitalWrite (RelaypinC, LOW); // 릴레이 ON
pushingC(a3);
digitalWrite (RelaypinC, HIGH); // 릴레이 OFF
delay (500);
digitalWrite (RelaypinC, LOW); // 릴레이 ON
delay (500);
pullingC(a3);
digitalWrite (RelaypinC, HIGH); // 릴레이 OFF
loopn3=’z’; // 주문 플래그 초기화
conveyor(); // 컨베이어 작동
}
}

함수부분

//부품 밀기 함수
void pushingA(int a){
delay(500);
for(int i=0;i<a;i++)
{
Serial.println(“Pulling out the product….”);
stepperA.step(2048);
delay(100);
stepperA.step(1024);
delay(100);
}
delay(500);
}

//부품함 당겨오기 함수
void pullingA(int a){
delay(500);
for(int i=0;i<a;i++)
{
Serial.println(“Putting the case in place…….. “);
stepperA.step(-2048);
delay(100);
stepperA.step(-1024);
delay(100);
}
delay(500);
}

// 컨베이어 작동 함수
void conveyor()
{
Serial.println(“Conveyor belt operation………… “);
delay (1000);
digitalWrite (RelaypinD, LOW); // 릴레이 ON
delay (5000);
digitalWrite (RelaypinD, HIGH); // 릴레이 OFF
delay (1000);
Serial.println(“Complete………… “);
}

7. 회로도

59 ict 웨어하우스 (14)

8. 참고자료 및 문헌
· https://www.youtube.com/watch?v=WTtT92Gr1CY
· Do it! Node.js 프로그래밍
· 원리와 실제 리눅스 프로그래밍
· 사물인터넷을 품은 라즈베리파이
9. 작동영상
· https://www.youtube.com/watch?v=Ysacw7002vE SMART WAREHOUSE
· https://www.youtube.com/watch?v=NdeOCZxM45s SMART WAREHOUSE conbeyor belt
· https://youtu.be/wV2b3ynvDYo SMART WAREHOUSE toolbox

 

 

Leave A Comment

*