반응형

https://youtube.com/live/NROQCljQ_XU

 

마스터(master)와 슬레이브(slave)간 통신으로 1:2양방향 CAN통신 구현해보기!(녹칸다의 CAN통신 시즌2 3편)

녹칸다의 캔통신 시즌2 시리즈이다!
ESP32보드를 이용해서 CAN통신을 해보는 내용이다!
(시즌1에서는 아두이노 우노와 MCP2515를 활용했다)

시즌2에서 사용할 CAN통신 모듈은 SN65HVD230이다.
아두이노 우노를 활용하지 않고 ESP32보드를 활용하는 이유는 SN65HVD230모듈이 3.3V 로직레벨로 통신을 하기 때문이다.

레벨컨버터를 활용하면 되지만 연결하는게 복잡해지고 그럴바에는 ESP32나 ESP8266을 활용하는게 더 좋아 보였다.
(나중에 IoT관련 예제로 응용도 가능할 것 같음!)

녹칸다의 캔통신 시즌2의 최종목표는 자동차와 통신하는 것이다.
자동차에는 다양한 제어시스템이 있고 제어시스템간 CAN BUS로 통신을 한다.
OBD2 프로토콜을 이용해서 차량내 정보를 아두이노에서 다양하게 활용할 수 있다.
결국 CAN통신을 알아야 그것이 가능한 것이다.

크게보면 아래와 같은 목차가 있다.
(1) ESP32보드간 1:1단방향 통신
(2) ESP32보드간 1:1양방향 통신(반이중방식)
(3) ESP32보드간 1:N양방향 통신
(4) 컴퓨터와 ESP32보드간 1:N양방향 통신
(5) ESP32와 자동차간 통신(자동차쪽은 OBD2 시뮬레이터 활용)

이번편에서는 3번항목인 1:N양방향 통신을 주요내용으로 하도록 한다.
한쪽보드는 마스터이고 다른쪽보드는 슬레이브가 되는것이다.

구입해놓은 캔통신 모듈이 3개 뿐이라서 1대의 마스터와 2대의 슬레이브로 가능하다!(꼴랑 이걸로 1:N이라고 우김)

아무튼 마스터가 여러대의 슬레이브를 구별할 수 있으면 되는 것이다!

 

라이브방송중 보드가 고장남

 

(대략적인 목차)
-1:1 양방향통신 약간 복습
-기본 작동 코드 구현해보기
-ID를 구분해서 개별제어 해보기
-LED와 버튼으로 제어해보기
----------보드가 고장나서 여기까지밖에 못함-------------
-가상의 센서값 전송시켜보기
-가변저항값 측정하기
-슬레이브 내부 변수값 업다운 카운트하기
-프로토콜 체크 하는 방법에 대해서 알아보기

(예제코드 포멧 예시)
can1-1-1 : 1편의 예제 1번의 마스터코드
can1-1-2 : 1편의 예제 1번의 슬레이브 1번코드
can2-3-1 : 2편의 예제 3번의 마스터코드
can3-1-3 : 3편의 예제 1번의 슬레이브 2번코드

(예제목차)
1.마스터가 슬레이브1번(0x7E0)과 슬레이브2번(0x7E1)에 순서대로 request를 전송했을때 해당되는 슬레이브가 response하도록 기본예시를 구현하시오!(standard id사용하기)

can3-1-1.txt
0.01MB
can3-1-2.txt
0.00MB
can3-1-3.txt
0.00MB

 

2.마스터쪽에서 각 슬레이브에게 효과적으로 request하기 위해서 request부분을 함수화 하시오!

can3-2-1.txt
0.00MB
can3-2-2.txt
0.00MB
can3-2-3.txt
0.00MB

 

3.슬레이브1번과 슬레이브2번에 각각 LED가 D18핀에 연결되어있다! 마스터쪽에서 특정한 메시지를 전송하면 LED가 토글(toggle)되도록하시오!

can3-3-1.txt
0.00MB
can3-3-2.txt
0.00MB
can3-3-3.txt
0.00MB

 

4.마스터쪽에 D18과 D19에 버튼(택트스위치)을 하나씩 연결해서 D18버튼을 누르면 슬레이브1번에게 토글신호가 전송되고 D19버튼을 누르면 슬레이브 2번에 토글신호가 전송되도록 하시오!

can3-4-1.txt
0.00MB
can3-4-2.txt
0.00MB
can3-4-3.txt
0.00MB

 

(보드가 고장나서 다음주 보강예정)

반응형
Posted by 덕력킹
,