'가속도센서'에 해당되는 글 3건

  1. 2015.01.15 각도센서 회로도 (2)
  2. 2015.01.15 MMA7260Q_3AXIS (2)
  3. 2011.08.15 3축 가속도 센서를 이용한 그래프!! (11)

각도센서는 디지털형과 아날로그형이 있다.

이 실험에서 아날로그 및 디지털 실험을 해 볼 것이며, SCA61T라는 모델이다.


대략적으로 스펙은 아래와 같으며, 1축 모델이다.

- Measuring ranges ±30°

- 0.0025° resolution

- Single +5 V supply


SCA61T 모델의 형태는 다음 아래와 같다.







이 모델을 가지고 설계하면서 문제점이 한가지 발생하였다.

이는 5V에서 동작하는 Chip으로써, 전압 레벨쉬프트를 해줘야하는 번거로움이 생기었다.


이에 SPI의 경우, 5V <->3.3V 데이터 통신상에는 문제가 되지 않을 것으로 예상되지만 장시간 사용시 IC에 치명적인 손상이 염려되어

전압레벨변환기은 TXS0104모델로 선정하여 회로도를 그렸다.



 회로도

 angle sensor.pdf

 




 



'DSP(28335) > 각도센서 계획중.' 카테고리의 다른 글

각도센서 회로도  (2) 2015.01.15
Posted by 숭덕이

댓글을 달아 주세요

  1. 정한별

    숭덕이님 궁금사항이 있습니다. 트렌지스터 이용해서 5v를 12v로 사용하려고하는데요. 전에 5v를 12v펜을 돌린다고 하신거를 봤습니다. 그래서 바로 하려해봤는데 티알이라는게 범용이면 어떤거든 상관없는건가요? 회로도 숭덕님이 사용한 그대로 저항 사용하면 되고요? 그리고 저는 펜 대신 12v에서 돌아가는 led를 쓸 생각입니다. 물론 에이브이알 출력으로요. 전에 어떤분이 댓글달았는데 다른 댓글이없어서 최근거에 댓글 달게 되었습니다...

    2015.01.28 11:43 [ ADDR : EDIT/ DEL : REPLY ]

2015. 1. 15. 16:42

기존에 3축 가속도센서 모듈을 가지고 있기때문에 이를 활용.

- 감도 (1.5g/2g,4g/6g) 선택가능

- 저전압 설계 (2.2V ~ 3.6V)

- 방식은 ADC로 데이터 X,Y,Z 출력


 파일

 3AXIS.pdf



MMA7260Q의 경우 Zero g offset 값은 1.65입니다. (3.3V/2 = 1.65V)

Sleep Mode 진입시 : 3uA


또한 DSP의 ADC 분해능은 2^12=4096Bit이기때문에 Atmega 10Bit보다 정밀하게 측정 할 수 있다.


예를 들면 다음 아래와 같다.


10bit 분해능 : 3.3V / 1024 = 3.223mV

12bit 분해능 : 3.3V / 4096 = 0.805mV 


로 계산된다. 이는 10bit 보다 12bit가 약 4배 정도 분해능이 좋다고 할 수 있다. 

이에 자세한 내용은 추후 공부하면서 부가적으로 설명하겠다.



이는 기준점에 따라 X,Y,Z축이 변경 됨을 확인 할 수 있다.


다음편 연재....







'' 카테고리의 다른 글

MMA7260Q_3AXIS  (2) 2015.01.15
Posted by 숭덕이

댓글을 달아 주세요

  1. 이경헌

    안녕하세요~
    MMA7260Q로 각도검출하고 있는.. 갓 제대한 대학생입니다..
    현재 제가 필요한 축값이 Y,Z축이라 OFFSET값 지정해주고 IIR필터거친 ADC값을 빼주는 단계까지 왔습니다.
    근데 지금 다른분들이 하신 소스를 보면
    1. 처음에 Volt를 구하더라구요. [ ADC값 / 4096(분해능) ] * 3.3V 해주는데... 왜 이렇게 계산해주죠?;; 그리고.. 이값이 어떤값을 뜻하는건가요?
    2. offset값 * 0.001(?) 한 값에 - 1의값 해주는데.. 이건 뭘뜻하는거죠?;;
    3. 라디안 구하는 식인데. 2의값 / 0.8 에 asin해주는데 0.8이라는 수가 어떻게 나온거죠?;
    4. 3의 값 * 어떤 값을 구하는데 이게 degree값인가요?;;

    아~~ 제대하고 공부하는데.. 너무너무 어렵네요;;;;ㅠㅠㅠ
    위에 글 짧지만 정말 도움됬습니다.!!
    행복하세요~

    2015.01.22 22:58 [ ADDR : EDIT/ DEL : REPLY ]
  2. 무사살롱

    F28334의 Vref의 경우, 3.3v입니다. 또한 28335의 경우 내부 ADC분해능은 2^12 = 4096이기에ADC = (Vin * 4096)/Vfef를 해주는 거랍니다.

    2015.01.23 10:43 [ ADDR : EDIT/ DEL : REPLY ]

 
안녕하세요 숭덕이 박제현 입니다. 또 오랜만에 이렇게 글을 쓰게 되네요!!
요즘 제품하나씩 사서 테스트하기가 힘드네요!!! 물가가 워낙에 비싸다 보니 일단 오늘은 3축 가속도센서를 이용하여
X,Y,Z 값의 데이터만 받아야겠습니다. 이 센서는 이동하는 물체의 가속도나 충격의 세기를 측정하는 센서입니다.
응용분야는 가속도 센서 측정이 필요한 모든 분야에서 사용이 가능하며, 로봇의 움직임, 기울어짐 측정가능, 예를 들어 네비게이션의 센서로 많이 활용됩니다. 요즘은 의학쪽으로  GPS를 통해 순간의 기울어짐을 보고 공공기간에 알라는 시스템이 몇가지 나온것으로 알고 있습니다. 또한 3축 가속도 센서를 가지고 계측기를 만들기에는 오차가 있기떄문에 무리가 있는 듯 합니다.
                 MMA7260Q  




2011년 8월 16일 새벽 1시 37분에 글을 올립니다.


출력방식  아날로그 
제품군  가속도계 
 X, Y, Z 
가속범위  1.5g, 2g, 4g, 6g 
감도  800mV/g, 600mV/g, 300mV/g, 200mV/g 
전압공급  2.2V ~ 3.6V 


g-Select1 g-Select2 가속범위   감도
 HIGH  HIGH 0~6g   200mV/g
HIGH  LOW 0~4g   300mV/g
 LOW  HIGH 0~2g  600mV/g
 LOW LOW  0~1.5g  800mV/g



계산 방식
1024단계로 10비트 샘플링 AVR128기준으로 설명드리겠습니다.
 Resolution = (Vout / 3.3) * 1024




        AVR128에 ADC 포트가 F포트이기때문에 ADC 0, 1, 2번 포트를 사용했습니다.


     
데이터값이 어떻게 나오는지 변화를 확인하기 위해 CP2102칩을 이용하여 USART로
통신해서 받아보겠습니다.


     
 /SLP는 저항이 PULL-UP이 되어 있어 다른신호를 인가하지 않을 경우 Normal Operation Mode로동작하고 g-Select1,2는 LOW,LOW로 줌으로써 1.5g 와 800mV/g를 사용했습니다.
기본적으로는 풀다운이 되어 있습니다.












X,Y,Z 축마다의 그래프입니다.



       




#include <mega128.h>
#include <delay.h>
#include <stdio.h>
 
char  str[50];
int ADC_I;
float ADC_X,ADC_Y,ADC_Z; 
int i=0;
//
void TX0_CHAR(char Sdata){ while ((UCSR0A&0x20)==0); UDR0=Sdata; }
 
void main(void){
    char i;       
    DDRA=0x03;
    UCSR0B=0x08; UCSR0C=6; UBRR0H=0; UBRR0L=103;  
    #asm("sei")
    
    while(1){    
       
        delay_us(104); 
       
        ADMUX=0; ADCSRA=0xE7; ADC_I=ADCW;
        ADC_X=(float)ADC_I * 3.3 / 1023.0;
        i=0; while(str[i])TX0_CHAR(str[i++]); // TXD1
//
        delay_us(104);
        ADMUX=1; ADCSRA=0xE7; ADC_I=ADCW;
        ADC_Y=(float)ADC_I * 3.3 / 1023.0;
        i=0; while(str[i])TX0_CHAR(str[i++]); // TXD1  
        
        delay_us(104);    
        
        ADMUX=2; ADCSRA=0xE7; ADC_I=ADCW;
        ADC_Z=(float)ADC_I * 3.3 / 1023.0;
        i=0; while(str[i])TX0_CHAR(str[i++]); // TXD1  
        
   sprintf(str,"%3.1f,%3.1f,%3.1f \n", ADC_X,ADC_Y,ADC_Z);
    }
}    
 


Posted by 숭덕이

댓글을 달아 주세요

  1. arnia

    안녕하세요 혹시 이 센서가 무선으로 동작을 할까요?

    2011.08.22 19:51 [ ADDR : EDIT/ DEL : REPLY ]
    • 네 가능합니다 센서의 값을 블루투스나 지그비 또한 와이파이를 이용하여 가능합니다

      2011.08.22 21:20 신고 [ ADDR : EDIT/ DEL ]
  2. 김병주

    잘보고 갑니다~

    2011.09.19 23:47 [ ADDR : EDIT/ DEL : REPLY ]
  3. 윤훈남

    와이파이를 이용해서 무선으로 작동하고자 하는데요, 문제는 무선 센서의 소비 전력입니다. 최소 6개월 마다 충전기를 다시 교체할도록 설계할 수 있을까요?

    2012.03.06 21:10 [ ADDR : EDIT/ DEL : REPLY ]
    • 숭덕이

      정확하게 해보지는 모르겠지만 태양전지를 이용해서 아침에는 태양전지를 사용하고 저녁에는 배터리로 사용하신다면 가능하리라 보이지만, 회로를 어떻게 설계하고 배터리선택이 중요하겠지요...

      2012.03.06 21:57 [ ADDR : EDIT/ DEL ]
  4. 안녕하세요

    그래프 출력은 어떻게 하는 것인가요?

    2012.03.26 21:19 [ ADDR : EDIT/ DEL : REPLY ]
  5. 고봉석

    잘 봤습니다. ^-^ 마지막 그림 인상적이네요.

    2012.05.12 16:26 [ ADDR : EDIT/ DEL : REPLY ]
  6. 박진혁

    혹 이 제품이 아닌 다른 센서인 9축 자이로 센서로도 3축 에 대한 소스가 적용이 되나요?

    2012.12.02 22:37 [ ADDR : EDIT/ DEL : REPLY ]
  7. 이지형

    안녕하세요^^ 저는 일본에서 박사과정하는 학생입니다.
    좋은 자료와 정보의 공유에 감사합니다. 하지만 여기에서 잘못된 점이 있어서 글을 남김니다. 바로 "가속범위"라고 쓰여진 표의 부분입니다. MMA7260Q의 테이터시트를 잘 읽어보면 g-Range라고 1.5, 2, 4, 6이라고 제시되어 있습니다만 이것은 앞에 +-의 기호가 제시되어 있지 않은 것입니다.^^ 즉, 4g의 경우 -4g ~ 4g가 가속범위가 됩니다. 데이터시트를 보면 착각하기 쉽게 쓰여져 있습니다만 영문을 잘 읽어보시고 실험을 해보시면 바로 이해하실수 있습니다. 실험 결과 X축의 0g에서 1.65V정도가 출력이 됩니다. 그리고 감도를 800으로 설정하여 1g를 가하면 2.45V정도가 출력됩니다. 반대로 -1g를 가하면 0.85V정도가 출력이 됩니다. 즉 1.5g 범위는 +와 -의 양측을 의미합니다. 그럼 앞으로도 좋은 정보 공유를 부탁드립니다^^

    2013.01.16 15:45 [ ADDR : EDIT/ DEL : REPLY ]
  8. 권씨

    감사합니다. 잘보고 갑니다.

    2013.02.18 15:53 [ ADDR : EDIT/ DEL : REPLY ]
  9. 꼬맹이

    잘 보고 갑니다

    2013.03.07 03:47 [ ADDR : EDIT/ DEL : REPLY ]