반응형

https://youtube.com/live/qpTGiYQnp60

[아두이노#573] 아두이노에 16채널 아날로그 멀티플렉서(74HC4067)을 이용해서 스마트깔창(족압센서)을 연결하고 측정하는 방법!(녹칸다의 아두이노)

이번 녹칸다의 아두이노에서는 스마트깔창을 사용해보도록 한다!
스마트깔창은 그냥 아두이노에서 사용하던 압력센서를 발바닥 모양으로 여러개 붙여서 제품화 해놓은 것이고 족압센서라고 한다!

녹칸다가 구입한 족압센서는 FS-INS-16Z-V1이라는 제품이다!
알리에서 구입했고 26~27달러 정도이다!

이 족압센서는 압력센서를 발바닥모양으로 16개를 배치해놓았다!
아날로그 값으로 측정을 해야하기 때문에 아두이노에 아날로그 입력을 사용해야한다!

아두이노우노는 아날로그 입력핀이 6개이고 메가는 16개가 있기 때문에 아두이노 메가 보드를 사용하면 스마트깔창을 바로 활용할 수 있다!

그러나 녹칸다는 이번 예제를 아두이노 우노로 만들고자 한다!(특별한 이유는 없음)

아두이노 우노는 아날로그 입력이 6개뿐이기 때문에 아날로그 핀을 확장하기 위해서 멀티플렉서(74HC4067)을 이번기회에 함께 알아보도록 한다!

이 멀티플렉서는 디지털핀 4개와 아날로그핀 1개를 이용하면 16개의 아날로그 입력을 커버할 수 있다!
병렬로 입력되는 16개의 아날로그 입력을 일렬로 줄세워서 하나씩 입력받는다고 생각하면 된다!
이때 4개의 디지털핀은 0~15까지의 채널을 지정하고 해당되는 채널의 값을 1개의 아날로그 핀으로 아두이노에게 출력해주는 것이다!

아무튼 16채널 아날로그 멀티플렉서를 사용하면 스마트깔창을 아두이노에 사용할 수 있을 것 같다!

문제는 구입한 족압센서가 20개의 핀을 가지는 FPC필름 형태로 되어있어서 아두이노에 연결할 수 없다!
녹칸다는 납땜전문가가 아니기 때문에 별도의 커넥터를 만들 수 없어서 이것도 알리에서 검색해서 구입했다!(이건 라이브 방송에서 보여주도록 함)

이 커넥터는 스마트깔창의 FPC필름을 연결하면 2.54피치를 가지는 2x10의 핀소켓이나 핀헤더로 변환이 가능하다! 커넥터라기 보다 컨버터라고 하는게 적합하겠다!

그럼 스마트깔창과 FPC필름 컨버터를 연결하고 컨버터와 74HC4067과 아두이노를 어떻게 잘 섞어서 연결하면 되는 것이다! (연결방법은 라이브방송에서 함께 알아보기)

아래와 같은 목차로 진행해보도록 하자!
1.스마트 깔창에 대한 기본적인 준비물 소개하기!
2.74HC4067의 작동원리를 알아보기 위해서 광센서(CDS) 4개로 4채널 입력 구현해보기!
3.스마트깔창(족압센서)와 16채널 아날로그 멀티플렉서로 전체적으로 연결해서 측정값을 시리얼모니터에 출력해보기!
4.출력한 값을 시각적으로 표현해보기!(특별하게 시각화할 도구가 마땅치 않으므로 C#윈폼으로 구현하도록 함)

 

(라이브방송에서 작성한 참고자료)

 

(제품명)
FS-INS-16Z-V1

(비트필드 참고자료)
union{
  uint8_t pinNum;
  struct{
    uint8_t S0 : 1;
    uint8_t S1 : 1;
    uint8_t S2 : 1;
    uint8_t S3 : 1;
  };
}mybit;

(깔창 핀배열)
1-연결안함
2 - 8(C7)
3 - 5(C4)
4 - 1(C0)
5 - 2(C1)
6 vcc(5V)
7 - 11(C10)
8 - 14(C13)
9 - 16(C15)
10 - 15(C14)
11-연결안함
12 - 13(C12)
13 - 4(C3)
14 vcc(5V)
15 - 7(C6)
16 - 10(C9)
17 - 3(C2)
18 - 6(C5)
19 - 9(C8)
20 - 12(C11)



(C#윈폼 개발환경 구성하기)
1.구글에서 visual studio라고 검색하면 다운로드 받을 수 있음!(공짜)
2.설치를 해야하는데 대략 설치를 진행하면 되는데 잘안되면 녹칸다에게 댓글달기!
3.프로젝트는 C# 폼프로젝트에서 .net framework라고 된것을 선택해야함(중요)

(C#윈폼쪽 참고자료)
1.C#윈폼에서 투명도를 바꾸기 위해서는 0~255사이의 값을 입력한다!
2.아두이노의 10bit 아날로그값은 0~1023의 범위를 가진다!
3.0~1023의 범위를 비례식에 의해서 0~255사이 값으로 바꿔야한다!
4.C#쪽에서 10bit값을 받아서 0~255사이 값으로 바꾸는 방법이 있고, 아두이노에서 애초에 측정할때 0~255사이로 측정하는 방법이 있다!
5.C#에서 필요한 0~255사이란 값은 단순히 색을 표현하기위해서(시각화하기 위해서)필요한 값이고 0~1023구간을 0~255사이값으로 바꾸면 데이터의 해상도가 줄어들게 된다!(정밀함이 더 떨어지게된다)
6.시각화와 동시에 데이터를 기록하거나 분석하는 목적이라면 측정한 순수한 데이터 자체가 정밀할 수록 더 이득이다!
7.결론적으로 아두이노는 최대 해상도로 측정해서 전송하고 C#쪽에서 데이터를 가공하는게 더 적절하다고 판단된다!

(예제)
1.광센서(CDS) 4개를 이용해서 아날로그 멀티플렉스(74HC4067)의 기본원리를 알아내시오!

573-1(멀티플렉서의원리알아보기).txt
0.00MB

2.광센서 4개의 값을 비트필드를 이용해서 출력하시오!

573-2(비트필드로아날로그값입력받기).txt
0.00MB

3.스마트깔창(족압센서)을 멀티플렉서를 이용해서 아두이노 우노에 연결하고 측정한값을 시리얼모니터에 출력하시오!

573-3(족압센서의16채널값을측정하는예제).txt
0.00MB

4.스마트깔창에서 측정한 값을 실시간으로 C#윈폼화면에 간단하게 출력하시오!(+데이터 레코딩하기)

(아두이노 코드는 3번과 동일함)

example573-4.zip
0.09MB

반응형
Posted by 덕력킹
,