brunch

You can make anything
by writing

C.S.Lewis

by 배용열 Aug 26. 2022

할로코드를 이용한 소음측정기 만들기

오늘은 할로코드를 이용하여 소음 측정기를 만들어 보겠습니다.

할로코드 자체에 소리의 크기를 측정할 수 있는 센서가 있어서 다른 외부 장치를 연결하지 않아도 소리의 크기를 측정할 수 있습니다. 따라서 지난번 글과 마찬가지로 간편하게 코딩 연습을 해볼 수 있습니다. 

특히 오늘은 소리의 크기를 mblock 스프라이트에서 수치로 확인해 보고 적절한 값의 범위를 설정하여 빛이 바뀌도록 만들 예정입니다. 따라서 할로코드와 스프라이트를 연결하는 방법도 이번 글을 통해 확인할 수 있습니다.

지금부터 작품 제작 과정을 설명하겠습니다.






먼저 소리의 크기를 측정할 수 있는 장치를 알아보면,



위 사진에서 붉은색 박스 부분이 마이크로, 소리의 크기를 측정할 수 있습니다. 작품을 완성한 후 테스트를 할 때 표시된 부분에 소리가 닿을 수 있도록 하면 좋습니다.

할로코드와 컴퓨터를 연결하였다면, 코딩을 시작해 보도록 하겠습니다.

먼저 할로코드가 인식하는 소리 크기의 정도를 mblock에서 수치로 확인해 보는 방법을 알아보겠습니다.

할로코드와 스프라이트가 통신을 하기 위해서는 확장 아이콘에서


업로드 모드 브로드캐스트를 추가합니다. 그리고 이 꾸러미에서 업로드 모드 메시지를 수신할 때 ~를 가지고 와서 ~ 부분에 시작을 입력합니다. 할로코드에서 메시지를 "시작"으로 설정하였기 때문입니다.


그리고 소리 값을 저장하여 보여주어야 하기 때문에 변수를 생성합니다.




변수는 위와 같은 방법으로 생성하면 됩니다.


그리고 변수 꾸러미에서 변수를 ~으로 설정하기 블록을 가지고 옵니다. ~ 부분에는 업로드모드 브로드캐스트 꾸러미에서 업로드모드 메시지 ~값을 가지고 와서 변수 ~ 부분에 넣습니다. 메시지 값은 앞에서 설정한 "소리"를 입력해 줍니다. 그리고 실시간으로 메시지를 반영하여야 하기 때문에 계속 반복하기를 가지고 와서 넣습니다.



완성된 모습은 위와 같습니다. 

이제는 실험을 통해서 소리 크기에 해당하는 수치가 어느 정도인지 확인을 해봅니다. 



실험을 해보면 최대 100까지 소리를 측정할 수 있습니다. 

적절한 소리의 크기와 수치를 확인해 보았다면, 이제는 소리의 크기가 달라질 때마다 led 빛의 색이 달라지도록 코딩해 보겠습니다.

지금까지 한 코딩은 모두 삭제하고, 처음으로 할로코드가 켜졌을 때 블록을 가지고 옵니다. 그리고 아까 측정한 적절한 소리 크기의 범위와 led 색을 정합니다.

저는  소리가 20보다 작을 때는 노란색, 20과 50 사이일 때는 주황색, 50과 70 사이일 때는 보라색, 70 이상일 때는 빨간색으로 설정하였습니다.

제어 블록에서 만약 ~이 참이면 블록을 가지고 오고, 연산에서 크기 비교 블록을 가지고 옵니다. 그리고 위에서 4개의 범위를 연산 블록을 이용해 설정해 봅니다. 

각 조건 블록 안에는 조명 꾸러미에서 지정한 색이 보이도록 블록을 가지고 와서 조건 블록 안에 넣습니다.


지금까지의 내용을 코딩하면 위와 같습니다. 그리고 빛의 색이 실시간으로 바뀌어야 하기 때문에 계속 반복하기 블록을 가지고 와서 위 블록들을 계속 반복하기 안에 넣습니다. 그리고 할로코드가 켜졌을 때 블록을 제일 위에 넣으면



위와 같은 모습이 됩니다.

완성된 작품을 실행해 보면 아래와 같습니다. 카메라에 할로코드를 바로 비추면 빛이 구분이 되지 않아 저는 종이에 반사하여 촬영하였습니다. 색이 실시간으로 바뀌는 것을 확인할 수 있습니다.








오늘은 할로코드를 이용하여 소리의 크기에 따라 led 빛이 달라지는 소음 측정기를 만들어 보았습니다. 특히 오늘은 업로드 모드 브로드캐스트를 이용하여 할로코드와 스프라이트가 서로 통신하는 방법을 확인해 보았습니다.

만약 led matrix 외부 장치가 있다면 led matrix 화면에 소리의 크기를 바로 나타낼 수 있겠지만, 없다면 업로드 모드 브로드캐스트가 유용하게 사용될 수 있습니다.

감사합니다.

작가의 이전글 엔트리를 이용하여 도형 그리기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari