(이전 글) 2016/12/08 - [진행중인 프로젝트/Homing Robot] - 프로젝트 개요


지난 포스트에서 프로그램의 흐름을 말했는데, 여기서는 좀 더 구체적으로 방법을 설명하려고 한다.


우선 소리의 크기는 거리가 멀어질 수록 작아진다는 점에서 착안해, 마이크에 인식되는 소리의 크기는 그 마이크의 주인으로부터의 거리와 비례한다고 가정했다. (여기서 소리의 반사, 2개 이상의 음원, 거리에 따른 역자승 법칙 등은 고려하지 않았다.)


이 때 로봇에 마이크를 3개 장착하는데, 그 마이크들은 서로 120˚의 각도를 두고 각각 전방 왼쪽, 전방 오른쪽, 후방에 배치한다.

그러면 각 위치로부터 들리는 소리의 크기를 마이크 방향 벡터와 곱해서, 그 합이 음원의 위치일 것이라고 생각하고, 식을 계산했다.


이것을 구현할 때, 단순히 소리의 크기로만 계산하면 다른 소리나 잡음에 취약하기도 하고, 주인만을 찾아가기가 힘들 것이라고 생각했다.

그래서 주인은 특정한 신호를 내고, 로봇은 그 특정한 신호만 인식하기 위해 푸리에 변환을 사용했다. 푸리에 변환으로 일정한 주기의 소리를 주파수 대역별 음량으로 변환해서, 그 중 원하는 주파수 대역만 골라 사용하는 것이다.

이걸 이용해 주인, 집, 다른 사람 등 서로 다른 주파수 대역을 사용해 대상을 바꾸는 것도 생각했는데 미처 구현하지는 못하고 주인의 주파수만 따라오도록 했다.


정리하면, 주인이 특정 주파수를 내는 비콘(스마트폰의 사인파 소리 생성기 앱)을 들고있으며, 로봇은 마이크별로 다르게 들려올 그 주파수 대역의 음량을 이용해 방향을 찾는다.


여기서 주인이 내는 주파수는 사람에게 잘 안들리는, 들려도 심하게 거슬리지는 않을 18000Hz로 사용했었는데, 실험해본 결과 마이크 감도 문제인지 방향을 잘 잡지 못해서 15000Hz로 내리게 되었다.

'완료된 프로젝트 > Homing Robot' 카테고리의 다른 글

완성품 & 작동 영상  (0) 2017.01.07
프로그램 제작기  (2) 2016.12.10
로봇 따라가기의 기본 원리  (3) 2016.12.09
프로젝트 개요  (5) 2016.12.08
블로그 이미지

예비컴공돌이

각종 프로젝트 진행중! 생각날때마다 블로그 업데이트합니다.

이 프로젝트는 「신호및시스템」 과목에서 팀 프로젝트로 진행했던 작품이다.

팀 프로젝트 과제 자체는 레고 마인드스톰 EV3, 드론, 라즈베리파이 등을 이용해 자유롭게 제작하는 것이었고, 우리 프로젝트의 주제는 "애완 로봇 만들기"로, 목표는 "특정 신호를 찾아가는 로봇을 제작"으로 설정했다.


주제의 구상 과정은 이렇다.

어쩌다가 팀에서 강아지 이야기가 나오고, 그걸 중심으로 강아지에 필요한 기능들을 토론해서, 주인 명령 듣기, 주인 따라가기, 쓰다듬기 등 행동을 하면 반응하기와 같은 내용이 도출됐다.

이러한 주제 중 가장 프로젝트로서 가치있을 내용인 '주인을 따라가는 행동'을 주된 목적으로 삼았고 쓰다듬기, 꼬리 만지기에 대한 간단한 동작을 추가했으며 주인 명령 듣기는 구현을 하려 했으나 미처 완성하지 못했다.

주인을 따라가는 법에 대해, 동물은 귀가 2개라는 점에서 착안해서 2개의 마이크로 방향을 찾기로 생각했다. 그러나 생각해보니, 2개만으로는 앞/뒤를 특정할 수 없어서 일단 한 방향으로 진행해보고 멀어진다 싶으면 반대로 진행해야 함을 알 수 있었고, 따라서 마이크를 하나 더 늘려 3개를 사용하기로 했다. (삼각측량에서 평면 상의 한 점을 특정하려면 3개의 점으로부터의 정보가 필요하다는 상식이 구상에 도움이 됐다.)


주인을 찾아가는 방법은 다음과 같다.

  • 라즈베리 파이에 마이크 3개를 장착한다.
  • 라즈베리 파이에 탑재해 실행할 프로그램에서 마이크 간의 소리 크기 차이로 방향을 추정하고, 그 추정된 방향을 레고로봇에 알려줘 그 방향으로 조금씩 움직인다.
  • 방향 추정과 이동을 동시에, 반복적으로 수행해서 결과적으로 소리원(주인)에게 다가간다.


자세한 기술적, 프로그램적 내용은 다음 포스트에서 이어서 올릴 예정이다.

'완료된 프로젝트 > Homing Robot' 카테고리의 다른 글

완성품 & 작동 영상  (0) 2017.01.07
프로그램 제작기  (2) 2016.12.10
로봇 따라가기의 기본 원리  (3) 2016.12.09
프로젝트 개요  (5) 2016.12.08
블로그 이미지

예비컴공돌이

각종 프로젝트 진행중! 생각날때마다 블로그 업데이트합니다.

구상 자체는 올해 초(2016년 2월)부터 했는데, 개강, LED 큐브 프로젝트 등 다른 일들에 밀려 아직 구상과 부품 구매는 다 했지만 아직 제작을 못한 프로젝트이다.


계기는 겨울이 끝나가고 집에 있던 오래된 가습기를 버리려고 하던 때, 가습기를 뜯어봐서 어떻게 돼있나를 알아보고자 한 것이었다.

가습기를 보고 레이저가 떠올랐고, 레이저 하면 콘서트고 콘서트 하면 음악이니 음악에 반응하는 레이저 이퀄라이저를 만들자는 생각을 했다.


가습기 해부!


메인 회로 뒷면


초음파 진동자 회로



2004년도 제품이라 그런지 회로가 큼직큼직하며 SMD 부품이 없어 분석하기는 쉬웠다.


전원부의 경우,

우선 220V 전압이 회로 우측 상단으로 들어와 바로 변압기로 들어간다.


변압기는 출력이 2쌍인데, 그 중 하나는 약 16.7V의 교류 전원으로 들어오고, 이를 다이오드 브릿지를 거쳐서 한 방향으로의 펄스 파형으로 만든 뒤 캐패시터를 이용해 적당히 평활시킨다.

이렇게 평활된 전류를 7812 리니어 레귤레이터를 이용해 12V로 만들어 12V가 필요한 릴레이와, 7805 리니어 레귤레이터에 전압을 공급한다.

7805로 또다시 5V로 내려온 전압은 전면 디스플레이나 PIC 칩 등 회로 전반적으로 쓰인다.


변압기를 거친 또다른 출력은 약 교류 50V였으며, 메인 회로에 같이 들어갔다가 릴레이를 거쳐 바로 진동자 회로로 나간다.

릴레이를 통하는 구조이므로 메인 회로에서 켜고 끌 수 있게 되어있다.


사진에 보면 모터도 하나 있는데, 블로워팬의 형태이고 220V로 동작한다. 회로에서 보면 이 팬은 램프와 함께, 한쪽 극은 연결되어있고 나머지 한 극은 하나의 릴레이로 연결되어있는 것을 볼 수 있다.

히터도 220V로 동작하며, 물탱크로부터 진동판으로 가는 배수관에 감겨있다. 히터도 한 극이 릴레이에 연결돼있다.



전원부 분석을 끝내고 부품을 떼내어 만능기판에다가 재현을 해보았다.


우선 몰렉스 커넥터들이 두꺼워서 구멍을 파내느라 힘들었고,

저때 차마 다른 전선을 대서 납땜한다는 생각을 못해서 납칠이..



앙상해진 기판ㅠㅠ

'진행중인 프로젝트 > Laser EQ' 카테고리의 다른 글

프로젝트 아이디어 구상  (1) 2016.11.20
블로그 이미지

예비컴공돌이

각종 프로젝트 진행중! 생각날때마다 블로그 업데이트합니다.