November 25, 2024

디바이스마트 미디어:

[66호] 원하는 색상으로 제어가 가능한 아두이노 IoT 스마트 무드등 키트 -

2021-06-25

★2021 ICT 융합 프로젝트 공모전 결과 발표! -

2021-05-12

디바이스마트 국내 온라인 유통사 유일 벨로다인 라이다 공급! -

2021-02-16

★총 상금 500만원 /2021 ICT 융합 프로젝트 공모전★ -

2021-01-18

디바이스마트 온라인 매거진 전자책(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

[65호]초음파센서를 이용한 자동문 쓰레기통

65 ICT 초음파센서 (1)

2020 ICT 융합 프로젝트 공모전 장려상

초음파센서를 이용한 자동문 쓰레기통

글 | 대구대학교 정원용

 

1. 심사평
칩센 얼핏 간단해 보이지만 주제와 부합되는 명확한 목표와 결과물을 확인할 수 있습니다. 작품으로서는 충분히 아이디어를 실제로 구현한 상황이지만, 실용성 측면에서 쓰레기통에 전원을 포함한 하드웨어 회로가 장착되어야 하므로 일체형이 아닌 기존 쓰레기통에 적용할 수 있는 별도 구조는 어떨까 하는 생각이 듭니다.
펌테크 작품의 하우징 구성이 상당히 깔끔하고 훌륭하며 설계에 고생이 많았으리라 생각됩니다. 최근 코로나 등으로 위생에 관련된 비접촉식 생활용품에 관심이 많은 시기와도 맞물리는 완성도가 높은 출품작으로 생각됩니다.
위드로봇 전력 관리 부분이 추가되면 더욱 좋은 작품이 될 것 같습니다.

2. 작품 개요
2.1. 배경 및 요약
2.1.1. 더러운 쓰레기통의 위생상 문제
· 쓰레기통 공간이 없어 쓰레기를 쓰레기통 주변에 버려서 쓰레기통이 더러워짐
· 더러운 쓰레기통으로 인해 접촉하기 어려움
· 자동문 쓰레기통을 활용해 접촉을 줄여 위생상의 문제 해결

2.1.2. 쓰레기통 주변 환경 문제
· 쓰레기통의 내용물이 다 찼는지 알지 못해 쓰레기통이 넘치게 됨
· 넘치는 쓰레기통으로 인해 주변이 더러워짐
· 쓰레기통이 다 찼을 시 알림 기능으로 넘치는 쓰레기통 문제 해결

2.1.3. 작품 기능

65 ICT 초음파센서 (2)

2.1.3. 완성본

65 ICT 초음파센서 (3)
· 평상 시, 초록 LED와 쓰레기통이 닫혀있음
· 물체가 인식될 시, 쓰레기통이 열림
· 쓰레기통이 일정량 채워지면 빨간 LED로 바뀜

3. 작품 설명
3.1. 주요 동작 및 특징
3.1.1. 주요 동작 순서도

65 ICT 초음파센서 (4)

3.1.2. 자동문 휴지통 순서도
· 초음파센서를 통해 정면에 있는 물체와의 거리를 측정
· 측정된 물체와의 거리에 따라 쓰레기통이 열리고 닫힘
· 쓰레기통 천장에 있는 초음파센서로 쓰레기 인식
· 초음파센서로 쓰레기양에 따라 LED의 색깔이 바뀜

3.1.3. 물체 인식

65 ICT 초음파센서 (5)
· 가까운 거리의 물체 인식을 위한 초음파센서 사용
· 초음파센서로 가까운 거리의 물체와의 거리 측정
· 초음파센서에서 발사된 초음파가 물체로부터 반사되어 돌아온 시간으로 거리산출
· 산출된 거리가 일정 거리보다 작아지면 물체 인식

3.1.4. 쓰레기통의 자동문

65 ICT 초음파센서 (1)

· 쓰레기통의 덮개 부분이 움직이면서 쓰레기통이 열리고 닫히게 됨
· 서보모터를 축으로 덮개 부분이 돌아가도록 설계
· 물체를 인식하여 덮개가 움직이는 자동문

3.1.5. 쓰레기통 알림 기능

65 ICT 초음파센서 (6)

· 쓰레기통 알림 기능을 위해 LED를 사용
· 평상시에는 LED에 초록 불이 켜짐
· 쓰레기통이 다 찼을 시에는 LED에 빨간 불이 켜짐

3.2. 전체 시스템 구성
3.2.1. 하드웨어(HW)
아두이노 우노 보드 : 아두이노 가장 보편적이고 기본적인 보드
초음파센서 HC-SR04 : 물체와의 거리 측정을 위해 사용
서보모터 hs-311 : 쓰레기통이 열리고 닫히게 하기위해 사용
RGB 3색 LED : 상태를 LED로 표시해주기 위해 사용

3.2.2. 소프트웨어(SW)
Arduino : 작품의 소프트웨어 설계

3.2.3. 전체 시스템 구성도

65 ICT 초음파센서 (7)
3.3. 개발 환경

개발 환경
· OS : windows 10
· 개발 환경(IDE) : Arduino
· 개발 언어 : Arduino

구성 장비
· 디바이스 : 아두이노 우노 보드
· 센서 : 초음파센서(HC-SR04) :
· 사용 장비 : 서보모터 hs-311, RGB 3색 LED

4. 단계별 제작 과정
4.1. Paper Prototype

65 ICT 초음파센서 (2)

제작 계획

· 작품 기능 구현
· 외부 프레임 설계
· 3D 프린팅
· 외부 프레임 결합
· 완성품 테스트
· 외부 전원 연결

4.2. 외부 프레임 설계
프레임 Paper Prototype

65 ICT 초음파센서 (3)

3D Printing

65 ICT 초음파센서 (8)

3D 프린터 출력물

65 ICT 초음파센서 (9)

외부 프레임 결합

65 ICT 초음파센서 (4)

5. 참고문헌
· 한 권으로 끝내는 아두이노 입문 + 실전(종합편)
· https://www.youtube.com/watch?v=h7yyw6p_tZk&t=1s

6. 회로도

65 ICT 초음파센서 (10)

7. Arduino 소스코드

#include <Servo.h>
Servo servo;
// 각 핀 번호 설정
int value=0;
int echo1 = 8;
int trig1 = 9;
int echo2 = 10;
int trig2 = 11;
int red=4;
int green=3;
// 각 핀의 입출력 설정
void setup() {
Serial.begin(9600);
pinMode(trig1, OUTPUT);
pinMode(echo1, INPUT);
pinMode(trig2, OUTPUT);
pinMode(echo2, INPUT);
pinMode(red,OUTPUT);
pinMode(green,OUTPUT);
servo.attach(7);
}

void loop() {
// 1번 초음파센서에서 초음파 발사 후 초음파가 다시 돌아오는데 걸리는 시간 저장
digitalWrite(trig1, LOW);
digitalWrite(echo1, LOW);
delayMicroseconds(2);
digitalWrite(trig1, HIGH);
delayMicroseconds(10);
digitalWrite(trig1, LOW);
unsigned long duration1 = pulseIn(echo1, HIGH);
// 2번 초음파센서에서 초음파 발사 후 초음파가 다시 돌아오는데 걸리는 시간 저장
digitalWrite(trig2, LOW);
digitalWrite(echo2, LOW);
delayMicroseconds(2);
digitalWrite(trig2, HIGH);
delayMicroseconds(10);
digitalWrite(trig2, LOW);
unsigned long duration2 = pulseIn(echo2, HIGH);
// 초음파를 발산한 후 다시 돌아온 시간을 가지고 거리 측정
float distance1 = ((float)(340 * duration1) / 10000) / 2;
float distance2 = ((float)(340 * duration2) / 10000) / 2;

// 1번 초음파센서로 측정한 거리가 13cm미만일 경우 (쓰레기통에 근접하는 물체가 감지 될 경우)
if(distance1<13) // 쓰레기통의 문을 연다
{
for(;value>=0;value -=2)
{
servo.write(value);
delay(10);
}
delay(3000); // 문이 열린 후 3초의 지연시간을 준다
}else // 아닐 경우
{
for(;value<=100;value +=2) // 쓰레기통의 문이 닫힌다
{
servo.write(value);
delay(10);
}
}
// 2번 초음파센서로 측정한 거리가 9.5cm초과일 경우(쓰레기통 안의 내용물이 다 찼을 경우)
if(distance2<9.5)
{
// LED 빨간불 ON
digitalWrite(green,HIGH);
digitalWrite(red,LOW);
}
else // 아닐 경우
{
// LED 초록불 ON
digitalWrite(green,LOW);
digitalWrite(red,HIGH);
}
// 측정된 거리 값을 시리얼 모니터에 출력
Serial.print(“1 : “);
Serial.print(distance1);
Serial.print(“cm “);
Serial.print(“2 : “);
Serial.print(distance2);
Serial.println(“cm”);
delay(100);
}

Leave A Comment

*