반응형

https://youtube.com/live/Am_tL6y8ymg

[아두이노#608] Arduino에 encoder가 달린 JGA25-370모터로 PID제어를 위한 계수를 적절히 조절해서 Speed control 해보기!(녹칸다의 아두이노 시즌2)


녹칸다의 아두이노 시즌2 시리즈이다!


이번편은 607편에 이어서 모터를 PID제어해보도록 한다!
arduino에 pid library를 이용해보도록 한다!


아마 이번편에서는 PID제어를 위한 계수를 어떻게 튜닝해서 원하는 작동이 되도록 할 것인가가 주요 내용이 될 것 같다!

(커넥터)
빨간선 : 모터+
흰색선 : 모터-
노란선 : 엔코더
녹색선 : 엔코더
파란색 : 엔코더+
검정선 : 엔코더-

(필요한라이브러리)
1.Encoder
2.PID라이브러리는 라이브러리 매니저에서 검색이 안됨!
https://github.com/br3ttb/Arduino-PID-Library

(접근순서)
1.녹칸다의 아두이노 607-3번 예제와 동일하게 모터드라이버와 모터와 아두이노와 엔코더를 상호간에 연결하고 해당 예제를 업로드해서 작동테스트를 해볼 것!
2.아두이노에 PID제어 라이브러리를 추가할 것!
3.모터1번에 대해서 내가 원하는 RPM값을 입력해주면 PID제어 라이브러리가 RPM값을 맞추는 과정을 시각적으로 보여줄 것!
4.P와 I와 D의 각 계수값을 조정하면서 원하는 결과가 나올때까지 튜닝하기!
5.모터1과 모터2가 동시에 되도록 업그레이드한다!

(깨알지식)
1.아두이노의 PID제어 코드중에 Compute()함수는 가능한 빈번하게 호출되면 PID제어가 민감하게 작동한다!
2.만약 피드백받는 센서값이나 엔코더값을 측정하는데 극단적으로 5초정도의 시간이 필요하다면 pid제어를 하기전에 로봇이 넘어지던지 문제가 발생할것이다!
3.계수에 대한 녹칸다의 견해
Kp : Kp는 Ki보다 높은게 좋은거 같음
Ki : Kp보다 앞도적으로 낮은게 좋은거 같음
Kd : 상대적으로 높게되면 값이 널뛰기하는 경향이있음

(예제목차)
1.모터드라이버에 연결된 모터1번에 대해서 한방향으로 PID제어를 해보시오!(계수조정안함)

608-1(모터1개단순pid제어).txt
0.00MB

 

2.예제1에서 모터가 속도pid제어가 되도록 계수를 조정하시오!

608-2(계수조정하기).txt
0.00MB

 

3.예제2에서 엔코더값을 필터를 걸어서 pid제어에 적용하시오!

608-3(엔코더값에필터걸어보기).txt
0.00MB

 

4.모터가 한방향으로 회전하는게 아니라 양방향으로 회전하는데 어떻게 PID제어에 반영할 것인가?

608-4(모터1개양방향pid제어).txt
0.00MB

 

5.녹칸다가 가진 자동차는 모터가 2개이다! 모터2개를 동시에 PID제어하시오!

608-5(모터2개속도pid제어하기).txt
0.00MB

 

6.2축조이스틱의 x축부분을 아두이노의 A0핀에 연결하고 오른쪽으로 꺾으면 속도가 점점 증가하고 왼쪽으로 꺾으면 속도가 점점 감소하도록 하시오!

608-6(조이스틱으로속도pid제어하기).txt
0.00MB

 

7.아두이노의 12,13번핀에 버튼을 1개씩 연결하고 12번핀에 연결된 버튼을 누르면 시동이걸리고 13번핀을 누르면 시동이 꺼지도록하시오!

608-7(녹칸다의전기차에시동걸기).txt
0.01MB

반응형
Posted by 덕력킹
,