서론
나는 기계공학과 학생이다. 이번 기계공학실험 수업을 들으며 미니 프로젝트가 주어졌다. 주제는 아두이노를 사용하여, 두 개의 서보모터를 사용하여, plate 위에 있는 공의 균형을 잡는 것이다. 흔히, Ball Balancing 혹은 Balancing Ball 등으로 불리며, PID 제어를 공부할 때 많이 하는 주제이다. 난이도는 조금 높지만 그래도 흔한 아두이노 프로젝트로 알려져 있다. (참고 영상: https://www.youtube.com/shorts/PfjV1vAq0rU)
보통은 이미 주어진 모델이 있고, 학생들이 PID 제어만을 연습하기 위해서 코딩을 한다. 하지만 이번 실험 수업에서는 그저 아두이노 우노(Arduino UNO)와 서보 모터 두 개, 가속도 센서 한 개만을 제공해주었다. 즉, 내가 설계부터 회로 제작, 코딩까지 모든 것을 해야 한다.
Ball Balancing
Ball Balancing은 말 그대로 공의 균형을 잡는 것이다. 아주 쉬운 방법으로는 마치 시소처럼 1차원 상에서 가속도 센서 혹은 초음파 센서 등을 활용해서 공의 균형을 잡을 수 있다. 하지만 이번에 내가 하고자 하는 프로젝트는 2차원 상에서 서보모터 두 개를 활용해서 공이 plate 밑으로 떨어지지 않도록 할 것이다.
그렇다면 3차원 상에서 제어를 할 수도 있을까? 만약 서보 모터를 세 개 사용한다면 위의 영상에서처럼 공을 튀기는 것까지 가능할 것이다. 그렇다면 z축이 추가되기 때문에 3차원 상에서 제어를 한다고 할 수 있다. 이것 말고도, 서보모터를 마치 2DOF 로봇팔처럼 만든다면 3차원으로 제어가 가능할 것 같다. 하지만 이것은 너무 어렵기 때문에, 일단 2차원에서 제어하는 것을 도전해보고, 잘 된다면 추가적으로 진행할 예정이다.
Workflow
이 프로젝트를 원활히 진행하기 위해서 workflow를 작성해봤다.
- 전체적인 구조물 설계 및 3D 프린터로 출력하기
- 아두이노에 3축 가속도 센서(GY-61 ADXL335)를 연결하여 센서 값 확인하기
- 아두이노에 360도 서보모터(MG996R)를 연결해서 서보모터 제어하기
- 구조물에 센서와 서보모터를 연결해서 PID 제어하기
마무리
공 균형 잡기 프로젝트의 난이도 자체는 엄청 어렵지는 않을 것 같다. 3D 설계 및 3D 프린터로 출력을 해본 경험도 있고, 아두이노를 활용해서 센서 값 측정을 해본 경험도 있다. 그리고 제어 공학을 배웠으며 PID 제어를 해본 경험도 있다. 서보모터에 대에서만 공부해보면서 전체적인 프로젝트를 해보는 경험에 중점을 둬야 할 것 같다.
'Robotics' 카테고리의 다른 글
[Ball Balancing] 2. 인벤터 도면으로 3D 프린터 (3DP-110F) 출력하기 (0) | 2024.11.23 |
---|---|
[Ball Balancing] 1. 인벤터로 동작 시뮬레이션 확인하기 (1) | 2024.11.22 |
[OpenCV] 2. 아루코마커 인식하기 (ArUco marker) (0) | 2024.11.14 |
[OpenCV] 1. 카메라 캘리브레이션 (Camera Calibration) (1) | 2024.11.13 |
[OpenCV] 0. 로봇 비전을 활용한 상자 분류 프로젝트 (0) | 2024.11.12 |