Robotics

[Ball Balancing] 4. 아두이노 회로 - 3선 서보모터, 가속도센서

로보고니 2024. 12. 29. 15:48
반응형

서론

이전 글에서 드디어 공 균형 잡기 로봇의 설계와 제작이 끝났다. 아직 완성된 로봇을 공개하지는 않았지만, 잘 조립되었고, 정상적으로 작동하는 것을 확인했다. 이제는 제작된 로봇을 작동하기 위해서 아두이노를 사용하고, 3선 서보모터와 가속도센서를 연결할 것이다. 그리고 간단한 납땜을 통해서 간편하게 사용할 수 있도록 모듈화를 진행할 것이다.


아두이노 회로

아두이노 회로 - 서보모터, 가속도 센서

위의 사진은 아두이노 회로를 그린 것이다. 팅커캐드에 약간의 편집을 추가해서 만든 그림이다. 만약 회로를 처음 작성해 본다면 간단하게 빵판(브레드보드)에 먼저 구현을 해본 뒤, 동작이 원활하게 되는 것을 확인하고 납땜을 진행하는 것이 좋다. 나 역시 빵판에 회로를 구현했고, 작동이 잘 되는 것을 확인했다.
 

가속도 센서 (GY-61)

가속도 센서 (GY-61)

가속도 센서 (GY-61)의 뒷면을 부면 위의 사진과 같다. 위에서부터 하나씩 설명하겠다.

  • VCC: Voltage Collector, VCC에는 5V 전압이 들어가게 해주면 된다. 그래서 위의 회로에서 볼 수 있듯이, 아두이노 우노의 5V 핀에 연결했다.
  • X-out: X축 회전을 감지하고, 그에 따른 센서 값을 출력한다. 센서마다 수평을 맞췄을 때의 값이 다르지만 보통 320의 값이 수평을 의미한다. 그리고 기울어짐에 따라서 200~450 정도의 값을 출력한다. 이것은 아날로그 신호이기 때문에 아두이노의 A0인 아날로그 핀에 연결했다.
  • Y-out: Y축 회전을 감지하고, 그에 따른 센서 값을 출력한다. X-out과 역할과 기능이 동일하다. 이것 역시 아날로그 신호이기 때문에 A1인 아날로그 핀에 연결했다.
  • Z-out: Z축 회전을 감지하고, 그에 따른 센서 값을 출력한다. 이것 역시 위의 핀들과 같은 기능을 한다. A2 아날로그 핀에 연결했다.
  • GND: Ground, GND에는 그라운드가 연결되어야 한다. 그라운드는 일반적으로 전압이 0V인 지점들을 의미한다. 자세한 내용은 회로에 대한 공부가 필요하기 때문에, 그라운드는 그라운드끼리 연결해 주면 된다는 사실만 알면 된다. 그래서 아두이노의 GND 핀에 연결했다.

 

3선 서보모터 (MG996R)

3선 서보모터 (MG996R)

서보모터에는 두 가지 종류가 있다. 일반적으로 많이 사용하는 3선 서보모터가 있고, 더 정밀한 제어가 가능한 4선 서보모터가 있다. 여기서 말하는 3선은 선이 세 개라는 뜻이다. 우리가 사용할 MG996R 서보모터뿐만 아니라 다른 서보모터들을 보면 갈색, 빨간색, 주황색 선이 있는 것을 볼 수 있다. 각 선은 다음과 같은 기능을 한다.

  • 갈색: Ground 선이다. 위에서 말한 가속도센서의 GND와 동일하다. GND에 연결해주면 된다.
  • 빨간색: VCC 선이다. 이 모터의 전압은 4.8V~7.2V이기 때문에 그 사이의 전압을 연결해주면 된다. 나는 5V를 사용중이기 때문에 5V를 사용했으며, 더 높은 전압을 걸어준다면 더 좋은 출력을 낸다.
  • 주황색: PWM, Pulse Width Modul 선이다. 서보모터를 제어할 때 펄스 전압을 주게 되는데, 이것의 폭을 제어하게 되면 서보모터의 각도를 제어할 수 있다. 쉽게 말하면, 서보모터의 각도 정보를 전달하는 역할이다. 이것은 디지털 신호에 연결하면 되고, 나는 아두이노 우노의 ~D3과 ~D5 디지털핀에 연결했다. 이때 아두이노 우노를 잘 보면 디지털핀에 ~이 있는 것을 볼 수 있다. ~은 PWM을 위한 핀이기 때문에 서보모터를 제어한다면 해당 핀에 연결하면 된다.

납땜

모듈화된 납뗌 회로

사실 이렇게 간단한 회로를 사용할 때는 납땜이 필요 없다. 일반적으로 납땜을 사용하는 경우는 빵판을 사용하기 힘든 환경이거나 VCC 혹은 GND 선이 너무 많은 경우에 그것들은 한 곳에 모아주기 위해서 사용한다. 나의 경우에는 프로젝트 작품을 만드는 것이기 때문에 빵판보다는 조금 더 완성도 높은 결과를 만들고 싶었다.
 
그리고 가속도 센서를 plate에 부착하는데, 이때 점퍼를 사용해서 부착하게 된다면 안정성이 떨어지고, 점퍼로 인해 plate에 영향을 줄 수도 있다. 그래서 얇고 유연한 전선을 사용하여 납땜했고, 이 덕분에 plate가 회전할 때 영향을 받지 않으면서 회전할 수 있었다.


마무리

오늘은 공 균형 잡기 로봇을 제작할 때 필요한 센서와 모터, 아두이노 우노의 회로를 구성하고, 납땜해 보는 시간을 가졌다. 각 센서와 모터가 어떻게 작동되고, 각 선들이 어떤 것을 의미하며, 아두이노에 어떻게 연결해야 하는지 알아보았다. 다음 글에서는 서보모터와 가속도 센서를 구동하는 방식과 활용 및 코드를 공유할 예정이다.
 
기본적인 회로 구성과 구동 연습을 해본 뒤에는 이제 본격적인 코딩을 진행할 것이다. 원래는 가속도 센서를 사용한다면 물체의 위치를 파악할 수 있을 것이라고 생각했다. 하지만 가속도 센서가 있더라도 물체의 위치를 파악할 수 없다는 사실을 깨달았다. 그래서 물체의 위치를 파악하는 방식을 카메라를 사용해서 로봇비전으로 처리하려고 한다. 다행히도 이와 관련한 프로젝트를 해본 경험이 있기 때문에 어렵지 않게 할 수 있을 것으로 예상한다.

반응형