오늘은 할로코드를 이용하여 내가 가까이 가면 자동으로 켜지는 선풍기 만드는 방법을 소개해 보려고 합니다.
언뜻 듣기에는 뭔가 복잡해 보이지만, 실제로 만들어보면 굉장히 간단합니다. 특히 할로코드는 다른 오픈소스 하드웨어와 비교했을 때 센서나 동력장치를 연결하는 방법이 매우 쉽습니다. 따라서 이번 글을 천천히 읽어보면 누구나 쉽게 만들 수 있을 것이라 생각합니다.
지금부터 장치 제작 과정을 설명하겠습니다.
먼저 장치 제작에 필요한 준비물부터 설명하겠습니다.
준비물: 할로코드, 배터리, 초음파 센서, 모터 드라이버, dc 모터, 선풍기 날개, 전선 3개
여기서 사람이 앞에 있는 것을 감지하기 위한 센서로 초음파 센서를 사용하였는데, 인체 감지 센서를 사용해도 됩니다. 하지만 인체 감지 센서를 이용할 경우에는 사람이 주기적으로 움직여야 한다는 단점이 있습니다. 따라서 저는 센서와 사람 사이의 거리가 가까우면 선풍기가 작동하도록 설계하였고, 이를 위해 인체 감지 센서 대신 초음파 센서를 사용하였습니다.
앞서 이야기했던 것처럼 할로코드는 모든 연결이 매우 간단합니다. 극성의 구분이 따로 없으며, 하나의 전선으로 모든 센서 및 동력 장치를 직렬로 연결할 수 있습니다.
붉은색으로 표시된 부분에 클립 형태로 된 전선을 연결하기만 하면 할로코드와 초음파 센서의 연결이 완료됩니다.
위 사진처럼 할로코드와 센서, 모터, 배터리를 전선으로 연결하면
모든 연결이 완료되었다면, 할로코드와 컴퓨터를 연결하고 mblock를 실행하여 코딩할 준비를 합니다.
할로코드와 컴퓨터를 연결하고 mblock를 실행하였다면, mblock이 할로코드를 인식할 수 있도록 장치를 추가해 줍니다. 위 사진의 붉은색 표시를 누르면 아래와 같은 팝업창이 뜨는데
여러 장치들 중 할로코드를 선택하고 확인을 누르면 할로코드를 활용하여 코딩할 준비가 끝이 납니다.
다시 메인 화면으로 돌아오면
장치에 할로코드가 추가된 것을 확인할 수 있습니다. 이제 장치 제작에 필요한 센서를 추가해 보도록 하겠습니다.
블록 꾸러미 제일 밑에 보면 확장이라고 되어있는 아이콘이 있습니다. 확장은 장치 제작에 필요한 다양한 센서들을 코딩할 수 있도록 블록을 추가해주는 역할을 합니다. 확장을 누르면 다양한 센서들이 뜨는데, 그중 우리는 초음파 센서와 DC 모터 구동기를 추가합니다.
이제 코딩할 준비가 모두 끝이 났습니다. 본격적으로 블록을 조립하여 코딩해 보도록 하겠습니다.
첫 번째로 이벤트 꾸러미에서 할로코드가 켜졌을 때 블록과 제어 꾸러미에서 계속 반복하기 블록을 가지고 옵니다.
할로코드가 켜져 있다면 계속 장치가 작동하도록 하기 위해서 위 두 블록을 사용하였습니다.
다음은 초음파 센서가 측정한 거리가 내가 지정한 값보다 작으면 모터가 작동하고, 그렇지 않으면 모터 작동이 중단되도록 코딩해 보겠습니다.
제어 꾸러미에서 조건문 블록을 가지고 오고, 초음파 센서 블록의 물체까지의 거리 블록과 연산의 변수보다 작을 때 블록을 가지고 와서 아래와 같이 결합합니다.
초음파 센서와 물체까지의 거리가 70cm보다 작으면 작동하고, 아니면 작동을 멈추게 됩니다. 여기서 70은 제가 임의로 정한 값이기 때문에 사용자의 위치에 맞게 바꾸어서 설정하면 됩니다.
조건이 맞다면 모터가 작동하고 그렇지 않으면 작동이 중지되도록 코딩해 보겠습니다. dc모터 구동기 꾸러미에서 모터 출력 전원 변수% 블록과 모터 드라이버 전원 출력 중지 블록을 가지고 와서 위 조건 블록에 끼워 넣으면
위와 같은 모습이 됩니다.
이제 처음에 만든 계속 반복하기 블록 사이에 위 블록을 끼워 넣으면
업로드 아이콘을 누르고 연결을 누르면 장치가 연결이 되고, 장치가 연결이 되었다면
위와 같이 장치 연결됨이라는 메시지가 뜹니다. 다음으로 붉은색으로 표시된 업로드를 누르면 코딩한 내용이 할로코드에 전송되고, 장치 제작이 완료됩니다.
제작이 완료된 장치의 작동 영상은 아래와 같습니다.
영상에서 선풍기를 둘러싸고 있는 검은색 상자는 3D 프린터를 이용하여 모터와 선풍기 날개의 규격에 맞게 제작하였습니다. 혹시 필요하신 분들을 위해 3D 프린터 모델링 파일(stl 파일)을 올려놓겠습니다.
지금까지 자리에 앉으면 자동으로 켜지는 선풍기를 제작해 보았습니다.
이번 글을 천천히 읽어 보시면 누구나 쉽게 만들 수 있을 것이라 생각합니다.
감사합니다.