본문 바로가기

Robot/Block Coding

젤리비 서보 확장 보드 사용하기와 mBlock 확장 기능 사용하기

2019년의 첫 글을 젤리비관련 글로 올리네요^^ 로봇 젤리비를 소개했던 적이 있습니다. 로봇 젤리비는 저의 두 번째 책인 생각대로 블록코딩 1권2권에서 하드웨어 파트를 완성하면 만들어지는 로봇입니다. 그런데 많은 독자들께서 책의 용도외에 많은 활용을 하려고 하니 약간씩 한계를 만나게 되신거죠. 그래서 로봇 젤리비의 확장 기증을 만들게 되었습니다.

헉~ 뭔가 멋지지 않나요? 네 일단 집게를 추가하게 되었죠. 아직 이 사진들은 프로토타입이라 실제 공개될때는 조금 다를겁니다.

왼쪽에 집게를 구동하기 위한 서보모터 드라이버와 블루투스를 포함한 확장 보드와 집게가 보이네요^^

초음파센서와 서보모터를 추가할 수도 있습니다. 이 초음파센서 모듈은 아쉽게도 현제는 3권에는 포함되지 않을 것 같습니다. 이제 이 보드를 사용하게 해드려야 하는데요. 문제는 이렇게 서보모터를 여러개 사용할 수 있도록 확장한 보드는 Adafuit의 Servo driver를 사용하고 있는데요. 이게 블록코딩으로는 바로 만들 수가 없습니다.ㅠㅠ. 오늘은 mBlock이 지원하는 확장기능으로 블록코딩 블록을 만들어 볼까 합니다.

먼저 어떻게 확장 모듈을 만드는지를 알 수 있는 방법은 mBlock의 확장 메뉴에서 확장 관리를 누르고

Demo를 찾는 겁니다. Demo를 설치하고, 난 후 상단의 설치됨을 눌러서 설치된 확장 모듈 중에 Demo를 찾아서 소스보기를 누릅니다.

그러면 폴더가 나타나는데, Demo를 복사해서 원하는 이름의 폴더를 하나 더 만듭니다. 저는 이 이름을 jellibi_addon이라고 했습니다.

그리고 다시 확장 관리에 가보면 jellibi_addon이 나타난 것을 확인할 수 있습니다.

이제 또 하나 할 일이 서보 드라이버를 제공하는 adfuit의 github에 가서 cpp와 h 파일을 받습니다.

그 파일의 이름을 변경해서 위 그림 처럼 넣습니다. 해당 파일을 열어서 Adafuit_PWMServoDriver를 모두 PWMServoDriver로 변경합니다. 왜 이렇게 했냐면 아두이노에서는 잘 동작하게 하려면 위 모듈을 라이브러리로 설치해야하는데, mBlock에서도 그렇게 하려고 했더니 라이브러리 추가 설치가 별도로 독립적이었습니다. 그래서 일종의 namespace 혼돈이 일어니지 않도록 작업한 것입니다.

이제, 아두이노에서 위의 심플한 코드를 테스트해보고 이상이 없으면...

Demo에서 복제한 jellibi_addon 폴더에 PWMServoDriver.cpp와 PWMServoDriver.h를 src 폴더에 넣고, jellibi_addon.s2e 파일만 편집을 합니다.

나머지는 건드리지 않아도 되지만, 위와 같이 넣어줍니다. 저 그림 윗 부분은 개인 설정에 가까워서 바로 확인할 수 있을 겁니다.

이제 jellibi_addon을 켜고~

이렇게 확장 블록이 잘 나타나는 것을 확인할 수 있습니다.

이렇게 만들 수 있는거죠^^

이 이 방법은 mBlock의 아두이노 모드에서만 잘 동작합니다. 스크래치 모드는 어렵더라구요ㅠㅠ.

이제 시리얼포트를 연결하고~

아두이노에 업로드까지 해서 모터가 잘 동작하는지 확인하면 됩니다.

이제~~~ 확장 모듈을 관리하는 mBlock의 사이트에 가서 github 계정으로 로그인을 합니다.

그리고~

만들어둔 확장모듈을 잘 zip핑해서 드래그해서 넣어두면 됩니다.

이제 이렇게 깔끔하게 우리 젤리비 서보드라이버 확장모듈을 사용할 수 있게 됩니다. 소스코드가 궁금한 분들은 저 모듈을 설치해서 확인하면 되겠죠^^

반응형