반응형

https://youtube.com/live/LMif2Tz1UQc

[아두이노#550] 16채널 서보(servo)모터 드라이버(PCA9685)를 아두이노(arduino)로 제어해보기!(sg90)

550편인데 500편이라고 잘못말함.. (방송 끝날때즘 파악한 녹칸다)

이번편은 아두이노에 16채널 서보모터(servo motor) 드라이버인 PCA9685를 연결해서 서보모터(sg90) 16개를 제어해보는 것이 주제이다!
16채널이라는 것은 서보모터 16개를 동시에 제어할 수 있음을 의미한다!

물론 아두이노의 디지털핀을 활용해도 가능하긴 하지만 아두이노는 소프트웨어적인 제어만 담당하고 하드웨어적인 제어는 모듈로써 구현하는 것이다!
(이러면 동작도 확실하고 아두이노의 부담도 확 줄어들듯함!)

아두이노와 PCA9685은 I2C통신으로 연결하고 아두이노용 라이브러리를 이용해서 제어하는 것으로 확인된다!
어떻게하면 서보모터(sg90)를 내가 원하는 형태로 제어할 수 있을지 함께 알아보도록 한다!

아래와 같은 목차를 가지고 분량을 채워나가보도록 하자!
1.연결하는 방법과 라이브러리 설치하는 방법!
2.서보모터 1개를 연결했을때 제어하는 방법 알아보기!
3.서보모터 1개를 시리얼 모니터에 각도를 입력해서 제어해보기!
4.서보모터 16개를 연결하고 시리얼 모니터로 제어하는 방법 알아보기!
5.버튼을 눌러서 일부 채널의 각도를 제어해보기! -삭제
6.조이스틱을 이용해서 일부 채널의 각도를 제어해보기!
7.블루투스모듈(HC06)을 연결해서 블루투스 통신으로 제어해보기!(with appinventor) -삭제
8.USB로 연결된 아두이노를 이용해서 C#윈폼에서 PC제어해보기!(with C#winform)
9.(여기까지 시간이 남으면) nRF24L01을 이용해서 원격제어해보기! -삭제

 

(설명)
1.아두이노에 라이브러리를 설치해야한다! 라이브러리 매니저에서 "adafruit pwm" 검색한다음 2.4.1버전 설치하기!
2.라이브러에서 pwm값을 함수의 입력으로 하는데 150이라는 값이 0도에 해당하고 600이라는 값이 180도에 해당된다!
3.주파수값은 기본 50으로 되어있는데 서보의 각도가 내가 원하는 위치로 이동안하면 가감할수있다!(서보모터의 종류마다 다를수있다)
4.sg90은 주파수값이 60인게 적절했다!
5.서보모터의 각도를 제어하는 함수!
pwm.setPWM(채널, 0, 150~600); //채널(0~15)

(실제로만든 예제)

1.서보모터 드라이버에 서보모터 1개를 연결하고 0~180도 180~0도 사이를 왔다갔다 하도록 하시오!

550-1(기본제어하기).txt
0.00MB


2.녹칸다가 시리얼모니터에 희망하는 각도를 입력하면 그각도로 이동하도록 하시오!(0~180)

550-2(시리얼입력으로제어하기).txt
0.00MB


3.서보모터를 16채널로 확장하고 시리얼입력으로 아래와 같은 규칙으로 입력하면 각 채널의 서보모터가 작동되도록 하시오!
  -0 90  : 채널0번을 90도로 이동!
  -1 180 : 채널1번을 180도로 이동!

550-3(시리얼입력으로16개제어하기).txt
0.00MB


4.내가 원하는 각도를 1개 입력하면 16개의 서보모터가 순차적으로 그 각도로 회전한다!

550-4(16개동시에시리얼입력으로제어하기).txt
0.00MB


5.홀수번째 서보모터는 0-90도 반복하고 짝수번째 서보모터는 90-0도를 반복하도록 하시오!

550-5(서보모터2세트움직이기).txt
0.00MB


6.(2축조이스틱)을 이용해서 x축은 짝수번째서보모터가 반응하고 y축은 홀수번째 서보모터가 반응하도록하시오!(각축의 중심아날로그값은 대략 512이다)

550-6(조이스틱으로제어하기).txt
0.00MB


7.USB로 연결된 아두이노가 PC로부터 명령을 받아서 16개채널의 서보모터를 제어하는데 이때 명령을 내리는 주체가 C#윈폼이 되도록하시오!(아두이노의 시리얼모니터는 꺼져있어야 가능함)

550-7(씨샵으로제어하기).txt
0.00MB
example550.zip
0.05MB


8.서보모터 4개를 사용하는 아크릴 로봇팔을 연결해서 제어해보기! 시리얼 입력으로 +를 입력하면 회전축이 10도씩 증가하고 0를입력하면 10도씩 감소하고 1을 입력하면 로봇팔이 앞으로 전진하고 2를 입력하면 로봇팔이 뒤로 후퇴하고 3을 입력하면 집게가 벌어지고 4를 입력하면 집게가 오므려지도록하시오!

550-8(4축로봇팔시리얼제어하기).txt
0.00MB


9.2축조이스틱을 이용해서 (8)예제를 작동시키시오!

550-9(조이스틱으로4축로봇팔제어하기).txt
0.00MB



반응형
Posted by 덕력킹
,