과제 목적
반에서 쓰레기통 비우는 담당을 맡고 있는데, 우리반 친구들은 정말 분리수거를 안 한다. 분리수거 각 통에 무슨 통인지 너무 아래에 써 있어서 잘 안 보인다. 이 작품은 쓰레기를 정해진 위치에 올려놓고, 손가락으로 숫자만 표시하면 알아서 그 쪽으로 분리해주는데, 분리수거의 과정을 하나 정도는 줄여줄 수 있을 것 같아서 만들게 되었다.
최종 프로젝트 영상
프로젝트 코드
코드펜
마이크로비트 MakeCode
기타 자료
•
영상 편집:
느낀점
제작 과정
이번 주에 택배를 시키고 받은 박스와, 평소에 챙겨놓는 이면지를 사용해 쓰레기통의 형태를 구현했다.
원래 양쪽 끝에 서보모터를 연결해서 안정적으로 움직일 수 있게 하려고 했는데, 서보모터 2개를 작동하게 하는 건 어려움이 있을 것 같아 한 쪽에만 서보모터를 설치하고 테이프로 고정했다.
반대쪽에는 분류하는 판이 안정적으로 돌아갈 수 있게 하는 지지대를 설치해 테이프로 고정하였다.
영상은 제작할 때 찍은 타임랩스이다. 하드웨어 제작에는 1시간 정도, 소프트웨어 제작에는 3시간 30분 정도 걸렸다. 코드펜은 html 코드 작성을 chatGPT가 많이 도와줘서 많이 걸리지 않았는데, 소프트웨어와 하드웨어를 연결해야 하는 마이크로비트 코드를 작성하는 게 조금 오래 걸렸다.
어려웠던 점, 문제 해결
마이크로비트 코드를 작성할 때 기본값인 180도 서보모터에서 360도 서보모터로 설정을 바꾸는 것을 몰랐다가 나중에 알게 되었고, 돌아가는 각도를 10도씩 바꿔가며 작동을 확인하는 과정이 오래 걸렸다. 또한, 서보모터를 디씨모터를 연결하던 0번 핀과 1번 핀에 연결하고 작동을 시키는데 서보모터가 안 움직이길래 계속 문제를 찾고 있었는데, 서보모터는 S0 핀에 연결해야 한다는 것을 알게 되었다.
코드펜은 joo.is/송신과수신 에서 소스코드를 받아왔고, chatGPT에게 MediaPipe를 이용해 손가락 개수를 인식하고, 그에 따라 마이크로비트에 다른 신호를 전송하도록 코드를 요청했다. 받은 코드에서 일부분을 직접 수정하면서 원하는 사이트를 만들었다. 오류가 날 때는 오류가 나는 원인을 예상해서, chatGPT에게 그 부분이 어떻게 작동하는지, 어떤 코드 부분에 해당하는지 물어보고 직접 고치기도 했다.
예를 들어, 손가락을 인식할 때마다 마이크로비트에 신호를 전송하게 했더니 너무 많이 전송되었는지 반응이 실시간으로 일어나지 않길래, 10초에 한 번씩 신호를 송신하는 코드를 chatGPT에게 요청했고, 실행시켜보니까 10초는 너무 긴 것 같아서 직접 5초로 수정하였다.
또한, chatGPT가 만들어준 html 코드를 보면 마이크로비트로 “종이” “플라스틱” 등 한글을 전송하도록 되어있었는데, 더 간편하게 a, b의 한 문자 알파벳으로 전송하게 하고 싶어서 조건문으로 직접 수정하였다.
어떻게 서보모터를 고정시켜야할지, 지지대를 안정적으로 만들어야 할지 고민하는 과정도 있었다. 우선 테이프로 고정시켰는데 잘 작동하긴 했지만, 박스에 작은 구멍을 뚫어 볼트너트를 이용했으면 더 간편하고 안정적이었을 것 같다.










