게시됨 2026-03-12
한동안 스티어링 기어 제어 작업을 해오면서 먹은 것보다 더 많은 함정을 겪었습니다. 처음에는 PWM 신호에 연결하면 회전할 줄 알았는데, 결과적으로 파킨슨병처럼 진동하거나 원하는 각도로 회전하지 못하는 결과가 나왔습니다. 나중에 마음을 진정시키고 여러 차례 실험을 해보니 몇 가지 단서를 발견했습니다. 오늘은 우회를 피하는 데 도움이 되는 몇 가지 실용적인 통찰력을 여러분과 공유하겠습니다.
처음 접하게 되었을 때서보 기구s, 당신은 분명히 그 용어들 때문에 혼란스러울 것입니다. 걱정하지 마시고 분해해서 살펴보세요. 스티어링 기어는 본질적으로 DC 모터, 감속 기어 및 제어판을 통합하는 "소형 폐쇄 루프 시스템"입니다. 펄스 신호를 주면 내부 전위차계를 통해 현재 각도를 감지하고 이를 기억된 목표 위치와 비교합니다. 올바르지 않으면 정렬될 때까지 회전합니다.
그때 제가 한 일은 매우 어리석었지만 매우 효과적이었습니다. 값싼 9g을 복용했습니다.서보 기구그리고 그것을 분해해서 살펴보았습니다. 내 눈으로 출력축과 함께 전위차계가 회전하는 것을 보면서 피드백이 무엇인지 즉시 이해했습니다. 그런 다음 오실로스코프를 사용하여 제어 신호를 살펴본 결과 하이 레벨 시간이 0.5ms~2.5ms로 0도~180도에 해당하는 것을 발견했습니다. 논리가 단번에 명확해졌습니다.
프로그램은 간단해 보이지만 PWM만 보내면 되지만 안정성을 확보하기는 쉽지 않습니다. 처음에는 소프트웨어 지연을 사용하여 PWM을 시뮬레이션했습니다. 그 결과, 서보가 차례로 회전했습니다. 마이크로컨트롤러가 다른 작업을 수행해야 했기 때문에 지연이 중단되었습니다. 나중에는 타이머 인터럽트로 대체하고, PWM 파동을 생성하기 위해 하드웨어 타이머를 특별히 따로 마련해 두었고, 서보는 즉시 원활해졌습니다.
간과할 수 있는 또 다른 세부 사항이 있습니다. 바로 전원을 켤 때 GPIO 포트의 상태입니다. 마이크로 컨트롤러의 핀 출력이 시작될 때 확실하지 않으면 서보가 격렬하게 작동하여 최소한 충격을 주거나 최악의 경우 기계 구조를 손상시킬 수 있습니다. 내 해결책은 전원을 켤 때 먼저 모든 서보 관련 핀을 낮게 당긴 다음 초기화가 완료된 후 천천히 목표 각도로 가져오는 것입니다. 이 트릭은 특히 효과적입니다.
지터에 관해 말하면 여기에는 많은 트릭이 있습니다. 가장 일반적인 문제는 전원 공급 장치입니다. 서보가 시작될 때의 전류는 1A 이상으로 치솟을 수 있습니다. 전원 공급 장치가 이를 처리할 수 없고 전압이 떨어지면 제어 보드의 마이크로컨트롤러를 다시 시작해야 합니다. 단일 서보에 전원을 공급하기 위해 휴대폰 보조 배터리를 사용했는데 매우 안정적이었습니다.
쉽게 간과되는 또 다른 사항은 신호 라인의 간섭입니다. 특히 서보 케이블이 상대적으로 긴 경우 PWM 신호는 안테나처럼 작동하여 커플링 노이즈가 발생하기 쉽습니다. 해결책도 간단합니다. 신호 회선에 연선을 사용하거나 1k 저항기를 사용하여 직접 접지로 끌어내리면 지터를 효과적으로 억제할 수 있습니다. 또한, PWM 주파수가 서보에 필요한 50Hz(주기 20ms)에서 너무 멀면 제어가 부정확해질 수도 있습니다.
![]()
시중에는 온갖 종류의 서보가 있으며, 잘못된 프로젝트를 선택하면 작업이 수포로 돌아갈 것입니다. 먼저 부하를 구동할 수 있는지 여부와 직접적인 관련이 있는 토크를 살펴보십시오. 저는 보통 부하에 필요한 토크를 계산하고 30%의 여유를 둡니다. 예를 들어, 로봇 팔을 만들려면 가장 말단 관절에 가장 작은 토크가 필요하므로 베이스가 몇 배 더 커야 합니다.
그런 다음 초/60° 표시기를 사용하여 속도를 확인합니다. 예를 들어 0.12sec/60°는 0.18보다 빠릅니다. 그러나 토크와 속도는 모순되는 경우가 많으며 토크가 클수록 일반적으로 속도가 느려집니다. 마지막으로 작동 전압과 크기입니다. 보드가 감당할 수 있는지, 구조 부품을 설치할 수 있는지 확인해야 합니다. 금속 기어의 내구성과 플라스틱 기어의 가격은 예산과 적용 시나리오에 따라 달라집니다.
로봇을 만들려면 여러 개의 서보를 동시에 제어해야 합니다. 한 블록에는 IO 포트가 12개만 있습니다. 이론적으로는 직접 제어가 가능하지만 실제로는 처리할 수 없으며 동시에 시동 전류가 너무 높습니다. 내 접근 방식은 16개 채널을 관리할 수 있는 I2C 인터페이스 보드와 같은 서보 제어 보드를 사용하는 것입니다. 메인 컨트롤은 명령만 보내고 모든 PWM은 이에 의해 생성됩니다.
소프트웨어에도 주의를 기울여야 합니다. 모든 서보가 동시에 0도에서 180도로 점프하지 않도록 하십시오. 전류로 인해 전원 공급 장치가 중단될 수 있습니다. 코드에서 "시차형 시작"을 만들었습니다. 20ms마다 하나의 서보 단계만 이동하거나 느린 시작 방법을 사용하여 대상 위치로 천천히 "상승"하여 전류가 훨씬 완만해졌습니다.
제가 배운 최악의 교훈은 전원 공급 장치가 반대로 연결되었다는 것입니다. 연기가 났을 때만 일반 서보에는 역방향 연결 보호 기능이 없다는 것을 깨달았습니다. 나중에 나는 전원 코드에 다이오드를 연결하거나 플러그 작업을 하는 방법을 배웠습니다. 완벽한 디자인은 매우 중요합니다. 기계적인 한계도 있습니다. 프로그램에서 각도를 제한해야 합니다. 그렇지 않으면 서보가 벽에 부딪혀 기어가 곧 무너질 것입니다.
또한 디버깅할 때 코드만 보지 말고 기계적 조립에 더 주의를 기울이십시오. 한번은 서보가 계속 흔들리고 3일 동안 프로그램을 고생한 끝에 연결봉 나사가 헐거워져 간격이 너무 큰 것을 발견했습니다. 그 이후로 기계를 먼저 확인하고, 회로를 확인하고, 마지막으로 코드를 옮기는 습관이 생겼습니다. 이 시퀀스 덕분에 시간이 많이 절약되었습니다.
서보 제어와 관련하여 겪은 가장 이상한 문제는 무엇입니까? 댓글창에서 이야기를 나누며 함께 공부해 볼까요? 유용하다고 생각되면 좋아요를 누르고 더 많은 친구들과 공유하여 모두가 원활하게 프로젝트를 진행할 수 있도록 해주세요!
업데이트 시간:2026-03-12