Adventure Design

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

1. 초음파 센서 사용하기

초음파 센서 사용하기



앞서 제작 계획서에서 언급했던 것처럼,

시리얼 그릇이 특정한 재료 선택 세션에 도달했는지

확인할 목적으로 초음파 센서를 사용해볼 예정이라고 말했었습니다.


특정 센서 앞에 그릇이 도달하면 거리가 짧아질 것이고,

거리가 짧아질 때 컨베이어가 멈추도록 구성해보고 싶었습니다.


초음파 센서와 컨베이어 벨트를 구매하긴 했으나, 배송이 아직 오지 않은 관계로(...)

학과에서 제공한 아두이노 키트에 들어있던 초음파 센서(HC-SRO4)를 이용하여

미리 초음파 센서 테스트를 해보았습니다.


(테스트를 위해 대강 회로를 구성한 모습)


시리얼 모니터로 초음파 센서가 인지한 거리 값을 찍어보니, 한가지 문제점을 찾을 수 있었습니다.

물체가 센서에 가까이 접근했다가 사라질 때 갑자기 거리값이 비정상적으로 튀는 현상이 발생했습니다.

 

(사진을 보시면, 갑자기 거리값이 200mm 대역에서 20000mm대역으로 값이 튑니다.

항상 20000mm 대역으로 튀는 것을보니

분명 오류라고 생각해, 보정해야겠다는 생각이 들었습니다.)


이를 해결하기 위해, 초음파 센서 거리측정 함수를 다시 만들었습니다.

20000이 넘어가는 값이 찍히면 거리값을 받아오지 않고,

그 이하의 값이 들어올 땐 거리 값을 3개씩 받아와, 그를 평균한 값을 거리값으로 받아오는

함수를 짰고, 다시 시리얼 모니터로 거리값을 찍어보았습니다.

이번엔 정상적으로 값이 잘 찍히고, 물체와 거리가 가까워지면 거리값이 줄어드는 현상도 잘 관찰됩니다.

이를 이용해, 초음파 센서로 시리얼 그릇이 특정 재료 선택 세션에 도달했는지 판별할 수 있을것 같습니다.

 

(컨베이어 벨트가 오고난후 계속 글을 추가해 보도록 하겠습니다. 투비컨티뉴... 배송 빨리 와주세요.)

 


1. 원래 사용한 초음파 센서 코드 


센서를 여러개 사용할 것이라 함수화 해봤습니다. parameter 부분에 초음파 핀 번호만 써주면 됩니다.


2. 초음파 센서의 안정화를 위해 직접 수정한 코드


튀는 값은 삭제 해주고, 초음파 센서의 값을 3개씩 받아와 평균내는 함수로 고쳐봤습니다.

성능이 안정화 되어 기분이 좋습니다.

댓글

댓글 본문
graphittie 자세히 보기