반응형

https://youtube.com/live/vMGeb8Wjuxg

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

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

이번편은 JGA25-370모터로 PID제어를 하겠다는 내용의 마지막편이다!
뭔가 마지막을 장식해야하는데 C#윈폼과 연동해서 제어해보면 재미가 있을 것 같다!

(필요한라이브러리)
1.PID제어라이브러리
2.Encoder
3.Arduino Json(6.18.5)

(PC에서 아두이노쪽으로 전송해야할 명령)
(상황에따라서 PC가 아두이노쪽으로 전송함)
(JSON형식으로 전송함)
1.속도(RPM)를 몇으로 할 것인가?
{"CMD":"SPEED","D1":123,"D2":0,"D3":0}
2.시동을 걸거냐 말거냐?
{"CMD":"ENGINE","D1":1,"D2":0,"D3":0}
3.Kp와 Ki와 Kd의 값을 몇으로 설정할것이냐?
{"CMD":"TUNE","D1":10,"D2":20,"D3":30}

(아두이노가 PC쪽으로 전송해야할 데이터)
(0.1초간격으로 PC쪽으로 전송함)
(CSV형식으로 전송함)
1.현재 양쪽 바퀴의 RPM값
2.현재 설정되어있는 RPM값
3.시동 켜짐의 여부
4.PID제어에 사용하는 3개의 계수값
현재RPM값,모터1번RPM값,모터2번RPM값,시동여부,Kp,Ki,Kd값
(예시) "100,110,98,1,5,2,4"

(깨알지식)
1.아두이노에서 Serial.println으로 전송하면 아두이노의 시리얼 모니터에 출력이된다!
2.그런데 아두이노의 시리얼모니터는 아두이노IDE의 포함되어있는 윈도우 어플리케이션이다!
3.아두이노가 컴퓨터에 USB로 연결되게되면 COM3과 같은 전용포트번호를 자동으로 지급받게되고 윈도우 어플리케이션은 포트번호를 개방하게되면 아두이노쪽하고 통신을 할 수 있다!
4.윈도우에서 USB로 연결된 디바이스는 단하나의 앱과 통신할수있다!
5.윈도우 어플리케이션을 직접 만들때는 아두이노의 시리얼모니터가 열려있으면 작동이 불가하다!
6.C#윈폼은 visual studio를 무료로 다운받아서 개인용도로 활용할 수 있음!
7.녹칸다의 C#윈폼시리즈가 별도로 있으니 관심있으면 참고하면 됨!

 

(609편 예제)

(아두이노코드)

609-1(모터pid제어최종예제_.txt
0.01MB

 

(C#윈폼프로젝트)

example609.zip
0.08MB

반응형
Posted by 덕력킹
,