[아두이노#587] ESP32와 BTS7960를 소형컨베이어밸트에 연결하고 C#과 TCP통신으로 제어하기!(녹칸다의 컨베이어밸트)
프로그래밍/BTS7960과컨베이어밸트 2024. 3. 11. 22:52https://youtube.com/live/o-mKnrzJ0sU
[아두이노#587] ESP32와 BTS7960를 소형컨베이어밸트에 연결하고 C#과 TCP통신으로 제어하기!(녹칸다의 컨베이어밸트)
녹칸다의 컨베이어밸트 시리즈이다!
이번편에서는 ESP32에 대용량모터드라이버인 BTS7960을 연결해서 소형 컨베이어밸트를 제어가능하도록 한다!
그리고 기본적으로 작동시키는 방법에 대해서 알아보도록 하자!
아두이노가 아니라 ESP32가 연결되었으니 인터넷 연결이 가능한 ESP32의 기능을 활용해야한다!
TCP통신으로 원격제어하는 방법에 대해서 알아보도록 하자!
통신은 2개의 프로그램끼리 하는 것이므로 ESP32 단독으로는 할 수 없다!
컴퓨터쪽 원격제어프로그램이 필요한데 윈도우에서는 C#윈폼만한것이 없다!
C#과 ESP32를 TCP로 연결해서 소형컨베이어밸트를 제어하는 UI를 구현해보도록 하자!
이때 ESP32가 TCP서버가 되고, C#쪽이 TCP클라이언트가 된다!
(C#에서 ESP32에 접속을 시도함)
참고자료1 ESP32에 고정 IP 할당하는 방법
https://bota.tistory.com/1834
IPAddress ip (192, 168, 0, 15); //내가 원하는 IP
IPAddress gateway (192, 168, 0, 1);
IPAddress subnet (255, 255, 255, 0);
WiFi.config (ip, gateway, subnet); //내가 원하는 설정 반영
참고자료2 ESP8266에서 TCP서버로 C#과 통신하는 방법
(ESP8266과 ESP32는 거의 비슷하게 활용가능함)
https://bota.tistory.com/1723
(주의사항)
1.녹칸다의 알리표 컨베이어밸트는 한쪽방향으로만 작동가능하고 역회전이 불가능하다!(일반적인 컨베이어 밸트는 다 그러하다)
2.RPWM핀은 정회전에 관려하고 LPWM핀은 역회전에 관여하기 때문에 결국 LPWM핀은 사용할 필요가 없는 것이다!(LPWM핀은 항상 출력신호가 0이어야한다)
3.ESP32든 아두이노는 대부분 출력핀이 초기에 부팅되면 LOW로 시작하기는 하지만 확실히 하기 위해서 소프트웨어적으로 제약을 둔다!
4.ESP32가 TCP서버가 되면 C#윈폼에서 ESP32가 할당받은 IP주소를 알고있어야하는데 인터넷공유기를 활용하다보면 IP주소가 동적으로 변경될 여지가 있다!
5.ESP32가 고정IP를 설정할 수 있도록 해야한다!
6.녹칸다가 과거 ESP8266보드를 기준으로 C#과 TCP통신하는 예제는 많이 만들어두었는데 ESP32버전은 없으나 ESP32와 ESP8266의 코드는 큰 차이가 없다!
(예제목차)
1.ESP32에 대용량모터드라이버(BTS7960)을 연결해서 기본적으로 작동여부를 판단하는 코드를 구현하시오!
2.ESP32에 버튼 2개를 D13(버튼1)과 D12(버튼2)에 순서대로 연결한다음 버튼1을 누르면 작동, 버튼2를 누르면 정지 하도록 하시오!
3.예제2와 작동이 동일하지만 녹칸다가 ESP32에 시리얼통신으로 속도값을 전송해서 속도를 조절할 수 있도록 하시오!
4.C#윈폼으로 만든 윈도우앱에서 ESP32에 명령을 전송할 수 있도록 기본 껍데기를 구현하시오!(ESP32가 TCP서버, C#윈폼이 TCP클라이언트)
5.TCP 네트웍 프로그램으로 컨베이어밸트를 제어하시오!