Wednesday, March 13, 2019

Motorcycle carburetor/throttle digital vacuum synchronizer using BME280 pressure sensors - #3


2편에 이어서.
https://leonardkims.blogspot.com/2019/03/motorcycle-carburetorthrottle-digital.html )

TFT LCD를 연결한다.

우선 임시 배선해 놓았던 전원, 신호선을 보드 뒷편으로 옮겨서 납땜한다.
LCD가 쉴드 형식이라 상부의 커넥터를 전부 차지하기 때문이다.
그리고 LCD를 부착한다.

조그만 변화를 만들면 제대로 동작하는지 확인해보는 것이 좋다.
여러 수정을 하고난 다음 동작을 안 하면 뭘 하고 난 다음 동작하지 않는 지 찾기가 힘들다.
프로그램을 수정하지는 않았지만 우선 LCD를 장착하고 센서값을 받아오는지 확인하는 것이 좋다.

OK.
LCD에도 전원이 들어오고 센서값도 제대로 들어오고 있다.

이제 기존 프로그램을 수정한다.
멀티플렉서를 찾는 로직과 멀티플렉서의 모든 포트에서 센서를 찾는 로직을 삭제하여 0x70에서 멀티플렉서를 찾고 해당 멀티 플렉서의 0번 포트에서만 센서값을 읽는 것으로 수정한다.
센서값도 압력값만 읽어오도록 한다.

수정 후 컴파일 & 업로딩.
OK.
0번 포트 센서의 압력값만 들어온다.

자, 이제 LCD에도 뭔가를 표시하면서 동시에 센서값을 입력 받도록 한다.
0.5초 마다 LCD에 무작위 사각형을 그리고, 센서값 중 압력값만 읽어오는 프로그램으로 수정한다.

다시 컴파일 & 업로딩.

OK.
센서값을 읽으면서 화면에는 사각형을 그리고 있다.

이제 저 센서 값을 진공게이지처럼 막대로 표시하여 값에 따라 막대 길이가 달라지도록 화면에 뿌려주면 된다.

화면을 디자인한다.
기통별로 막대바가 움직이는 모습이 보이도록 디자인했으며, 0.3~1.1bar까지 0.1 bar 단위로 가로선을 표시해줬다.
0.5bar 단위의 값과 선은 노란색으로 표시했다.

나머지 센서 3개를 연결한다.


각 센서 값을 멀티플렉서를 통하여 제대로 가져오는지 확인한다.

이와 같이 센서를 초기화 하고,


이렇게 해서 값을 가져오고 그 값을 바 그래프로 표시한다.
높이 10px 짜리 바이고, 매 루프마다 지난 루프의 그래프를 지운다음 새로 가져온 값으로 그려야 한다.

이렇게 해서 센서 4개의 값을 모두 바 그래프의 높이로 반영되도록 프로그램한다.

이대로 사용하면 기통의 압력 변화에 너무 민감하게 반응하게된다.
아날로그 게이지를 갖춘 캬브레터 동조기에는 댐퍼가 제공된다하고, 이를 사용하면 지시기의 떨림이 적을 것이다.

이 디지털 동조기의 진공 호스 측에도 댐퍼를 장착하면 굳이 소프트웨어 필터를 적용할 필요가 없지만, 난 댐퍼가 없으므로 소프트웨어 필터를 적용하기로 한다.
칼만 필터를 적용한다.

케이스를 디자인한다.
각 센서를 밀폐하고 호스 피팅을 꽂을 수 있도록 디자인한다.
다음은 케이스를 3D 프린팅하여 센서와 컨트롤러를 케이스에 조립할 것이다.

- 4편에 계속


Leonard.

No comments:

Post a Comment

CBR650F 스티어링 댐퍼 장착 시 주의할 점, 장착 후 시험 주행 200km. 여주, 괴산

 CBR650F에 장착할 스티어링 댐퍼를 구매해 놨고, 드디어 장착이다. 공교롭게도 최근에 주변 지인이 핸들 털림으로 사고를 당한 터라, 이게 없이 운행하기가 부담스러웠다. 드디어 주말이 되어서 스티어링 댐퍼를 설치했다. 기본 설치는 유튜브 이곳에 잘...