Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 6518 | 답변완료AM-RFMOD 사용 질문입니다. | 임경종 | 2011-11-03 | 1,293 |
|
안녕하세요 며칠전에 아래와 같이 구성한다고 Q&A 게시판에 글을 올렸습니다.
( 온도센서(sht75) ->AVR(AB-M128-B) -> AM-RFMOD ~~~(무선)~~~> AM-RFMOD ->
-> AD-USBSERIAL -> PC )
답변 잘 보았구요 말씀하신 것처럼 연결을 해 보았습니다. AM-RFMOD에 크로스케이블도
포함이 되있어서 쉽게 연결하였습니다.
우선 첫번째 송신 AM-RFMOD 에서 CR1에서 빨간색 불이 깜빡입니다.
두번째 수신 AM-RFMOD 에서는 아무런 변화가 없습니다.
말씀하신것처럼 AM-RFMOD -> AD-USBSERIAL -> PC 을 연결하였고
AM-RFMOD 에 전원을 따로 연결해줘야 하나요?
4핀 크로스케이블 이용하면 5V 공급되는게 아닌가요?
그리고 유선으로 했을때처럼 하이퍼터미널을 통해서 확인하는게 맞나요?
어디에서 잘못된건지 알수가 없네요..ㅠ
또 sht75 소스는 ber rate 이 9600 으로 설정되어 있는데
AM-RFMOD 의 기본 설정 ber rate 값은 115200 인데 9600으로 바꿔야 하나요?
이 설정값을 바꾸려면 메뉴얼을 보니까 Token2 라는 프로그램? 같은걸 쓰는 것 같은데..
너무 막연하게 질문이 많았습니다. 답변해주시면 감사하겠습니다.~!
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
답변 드릴께요.
>안녕하세요 며칠전에 아래와 같이 구성한다고 Q&A 게시판에 글을 올렸습니다.
>
>( 온도센서(sht75) ->AVR(AB-M128-B) -> AM-RFMOD ~~~(무선)~~~> AM-RFMOD ->
>-> AD-USBSERIAL -> PC )
>
>답변 잘 보았구요 말씀하신 것처럼 연결을 해 보았습니다. AM-RFMOD에 크로스케이블도
>포함이 되있어서 쉽게 연결하였습니다.
>
>우선 첫번째 송신 AM-RFMOD 에서 CR1에서 빨간색 불이 깜빡입니다.
>
>두번째 수신 AM-RFMOD 에서는 아무런 변화가 없습니다.
>
>말씀하신것처럼 AM-RFMOD -> AD-USBSERIAL -> PC 을 연결하였고
>AM-RFMOD 에 전원을 따로 연결해줘야 하나요?
>4핀 크로스케이블 이용하면 5V 공급되는게 아닌가요?
===> USB Serial의 점퍼 연결하셔야 4핀 크로스 케이블에서 전원 공급됩니다. 점퍼 연결 확인하세요.
>
>그리고 유선으로 했을때처럼 하이퍼터미널을 통해서 확인하는게 맞나요?
==> 네 같습니다.
>
>어디에서 잘못된건지 알수가 없네요..ㅠ
>
>또 sht75 소스는 ber rate 이 9600 으로 설정되어 있는데
>AM-RFMOD 의 기본 설정 ber rate 값은 115200 인데 9600으로 바꿔야 하나요?
==> sht 소스를 115,200bps로 바꿔서 쓰는 겟 좋겠습니다. 왜냐하면, RFMOD를 자료실->기존자료실의 RFMOD_UTIL이라는 프로그램으로 해도 되고, 터미널에서 해도 되고 하는 데, 혹시 하시다가 실수하실 수도 있고 해서, 간단한 게 sht 소스 고치는 거라 그렇습니다.
수고하세요.
>
>이 설정값을 바꾸려면 메뉴얼을 보니까 Token2 라는 프로그램? 같은걸 쓰는 것 같은데..
>
>너무 막연하게 질문이 많았습니다. 답변해주시면 감사하겠습니다.~!
>
>
|
||||
| 6517 | 답변완료모터에 이상한 값이 들어가는것 인가요??;; | 신승현 | 2011-11-04 | 1,230 |
|
void main(void){
unsigned char ah0,al0;
unsigned char ah1,al1;
unsigned int ch0, ch1, cht;
int sensor0, sensor1, sensor_t;
init_devices();
PORTC = 0x00;
ADCSRA &= 0x7f;
ADMUX = 0x40; // 외부의 AVCC 단자로 입력된 전압을 사용, ADC0 사용
while(1){
int d,i;
sensor0 = 0x00;
sensor1 = 0x00;
sensor_t =0x00;
ch0 = 0;
ch1 = 0;
ADCSRA = 0xc7; //ADC 활설화 및 시작, 단일변환모드, 분주비 = 128
ADMUX = 0x40;
al0 = ADCL;
ah0 = ADCH;
ch0 = al0+ah0*256;
//ADMUX = 0x41;
// al1 = ADCL;
//ah1 = ADCH;
//ch1 = al1+ah1*256;
printf("data : %d\\r\\n", ch0);
// printf("data : %d\\r\\n", ch1);
if (ch0 >= 100){
sensor0 = 0x01;
sensor1 = 0x00;
}
// if (ch1 >= 100){
// sensor1 = 0x01;
// }
sensor_t = sensor0+(sensor1*16);
switch(sensor_t){ //PORTB = led
case 0x01 : PORTB = 0x0f; break;
// case 0x10 : PORTB = 0xf0; break;
// case 0x11 : PORTB = 0xff; break;
case 0x00 : PORTB = 0xaa; break;
}
if (ch0<=100){
DIR1_ON; // Ch1 정방향
DIR2_ON; // Ch2 정방향
for(i=0;i<5;i++){ // 100 번 PWM 발생
PWM1_ON; // PWM1 신호 1
PWM2_ON; // PWM2 신호 1
delay(100);
PWM1_OFF; // PWM1 신호 0
PWM2_OFF; // PWM2 신호 0
delay2(10);
}
}
if (ch0>=100){
DIR1_OFF;
DIR2_ON;
for(i=0;i<10;i++){ // 100 번 PWM 발생
PWM1_ON; // PWM1 신호 1
PWM2_ON; // PWM2 신호 1
delay(200);
PWM1_OFF; // PWM1 신호 0
PWM2_OFF; // PWM2 신호 0
delay2(3);
}
}
}
}
#define MOTOR_PORT PORTC
#define PWM1_ON (MOTOR_PORT|=0x01)
#define PWM1_OFF (MOTOR_PORT&=0xFE)
#define DIR1_ON (MOTOR_PORT|=0x02)
#define DIR1_OFF (MOTOR_PORT&=0xFD)
#define ENABLE1_OFF (MOTOR_PORT|=0x04)
#define ENABLE1_ON (MOTOR_PORT&=0xFB)
#define BREAK1_ON (MOTOR_PORT|=0x08)
#define BREAK1_OFF (MOTOR_PORT&=0xF7)
#define PWM2_ON (MOTOR_PORT|=0x10)
#define PWM2_OFF (MOTOR_PORT&=0xEF)
#define DIR2_ON (MOTOR_PORT|=0x20)
#define DIR2_OFF (MOTOR_PORT&=0xDF)
#define ENABLE2_OFF (MOTOR_PORT|=0x40)
#define ENABLE2_ON (MOTOR_PORT&=0xBF)
#define BREAK2_ON (MOTOR_PORT|=0x80)
#define BREAK2_OFF (MOTOR_PORT&=0x7F)
메인함수하고 define 되있는 것들입니다. 이걸 넣고 AVR을 돌리면
센서에 어떠한 값이 읽히던지 모터가 한쪽만 돕니다. 센서를 읽지 않았는데도
양쪽다 돌아야할 것이 한쪽만 돕니다... 그래서 모터 부분을 지우고 해봤는데도
모터를 연결하면 모터가 돌고 그럽니다... 뭐가 잘못 된건지..
관리자 답변
안녕하세요, 뉴티씨입니다. 문의 내용 확인하였습니다. 추가 문의사항은 [email protected] 또는 02-704-4774로 연락 주시기 바랍니다. 감사합니다.
|
||||
| 6516 | 답변완료잔상기를 만들려고하는데 어떤 스탭모터를 사용하면 되나요? | 이충렬 | 2011-11-04 | 1,333 |
|
모듈이나 키트쪽보다는 스탭모터부터해서 차근차근 만들어보고싶어서요
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
첨부한 동영상은 잔상기를 만들고 있는 중인 예입니다.
본사의 킷트를 활용하여 만든 잔상기 입니다.
ATMEGA128 킷트를 활용하여 만들고 있지요.
이 잔상기는 모터로 SPG의 아날로그 스위치로 제어하는 모터인데요.
BLDC로 보입니다.
하지만, 본사의 SE-SM9K 정도의 모터를 쓰셔도 되겠습니다.
포토 인터럽트 등으로 위치를 찍어가면서 뿌려야 사진이 안돌아 가고 한자리에서 나오게 됩니다.
수고하세요.
>모듈이나 키트쪽보다는 스탭모터부터해서 차근차근 만들어보고싶어서요
|
||||
| 6515 | 답변완료USBISP 질문드립니다. | 아트아트 | 2011-11-04 | 1,399 |
|
여기 제품 아트메가 128모듈과 USBISP로 SD카드와 SPI통신을 하려고 하는데요.
PORTB의 SCK가 SD카드와 USBISP가 겹치네요.
계속 USBISP로 전원을 썼었는데요.
이 USBISP를 완전히 전원용도로만 사용하게 하는 방법은 없을까요?
스위치 조작으로 가능한가요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티시 제품을 이용하여 주셔서 감사합니다.
USBIP를 전원으로만 활용하려면, 커넥터를 별도로 제작하거나, 나머지 선들을 빼놓고 VCC, GND 족만 연결하면 뙤겟습니다. 스위치 조작만으로 되지는 않습니다.
수고하세요.
>여기 제품 아트메가 128모듈과 USBISP로 SD카드와 SPI통신을 하려고 하는데요.
>PORTB의 SCK가 SD카드와 USBISP가 겹치네요.
>계속 USBISP로 전원을 썼었는데요.
>이 USBISP를 완전히 전원용도로만 사용하게 하는 방법은 없을까요?
>스위치 조작으로 가능한가요?
|
||||
| 6514 | 답변완료AD-USBISP-L V03.5 문제 | 송영진 | 2011-11-06 | 1,320 |
|
안녕하세요 예전에 같은 문제로 문의드렸던 학생입니다.
지난번에 도움주신건 감사합니다.
그런데 아직 중3인지라 AVR에 집중하지 못해 AS를 보내고도 한참후에야 다시 꺼내들게 됬습니다.
그때 ISP문제로 문의를 하자 고장인것 같다고 하셔서 여름에 AS로 ISP하고 atmega128 모듈을 보냈었는데 아무 문제도 없다고 하셔서 좀 당황했습니다.^^ 전에 썻던 글과 상태는 똑같습니다. 드라이버도 다 깔고 현재 ISP가 제대로된 드라이버 이름으로 COM4에서 잡히네요.
아무래도 제 노트북 문젠 것 같은데 원격으로 설정좀 해주셨으면 좋겠습니다. 주말이면 더욱 좋겠지만 안되실것 같아서..... 수능날(11/10 목)되시는지요? 다른 주중에는 학교 끝나고 일이 많아서 1시간정도 밖에 시간이 않나서요. 정 않되시면 주중에 시간 내겠습니다. 메일은 매일 확인하니까 [email protected]이나 핸드폰(못받을 수도 있습니다.)으로 연락 주시면 매우 감사하겠습니다.
관리자 답변
안녕하세요? 고객님,
원격으로 지금 봐드릴 수 있는 데, 문자 보냈는 데, 잠든 것 같네요.
수능날 회사로 연락 주세요.
봐드릴께요.
수고하세요.
>안녕하세요 예전에 같은 문제로 문의드렸던 학생입니다.
>지난번에 도움주신건 감사합니다.
>그런데 아직 중3인지라 AVR에 집중하지 못해 AS를 보내고도 한참후에야 다시 꺼내들게 됬습니다.
>그때 ISP문제로 문의를 하자 고장인것 같다고 하셔서 여름에 AS로 ISP하고 atmega128 모듈을 보냈었는데 아무 문제도 없다고 하셔서 좀 당황했습니다.^^ 전에 썻던 글과 상태는 똑같습니다. 드라이버도 다 깔고 현재 ISP가 제대로된 드라이버 이름으로 COM4에서 잡히네요.
>아무래도 제 노트북 문젠 것 같은데 원격으로 설정좀 해주셨으면 좋겠습니다. 주말이면 더욱 좋겠지만 안되실것 같아서..... 수능날(11/10 목)되시는지요? 다른 주중에는 학교 끝나고 일이 많아서 1시간정도 밖에 시간이 않나서요. 정 않되시면 주중에 시간 내겠습니다. 메일은 매일 확인하니까 [email protected]이나 핸드폰(못받을 수도 있습니다.)으로 연락 주시면 매우 감사하겠습니다.
>
|
||||
| 6513 | 답변완료모터가 혼자 돌아갑니다. | 신승현 | 2011-11-06 | 1,354 |
|
void main (void){
unsigned char ah0,al0;
unsigned int ch0;
int sensor0;
init_devices();
ENABLE1_OFF;
ENABLE2_OFF;
ADCSRA &= 0x7f;
while(1){
ch0 = 0;
sensor0 = 0x00;
ADCSRA = 0xC7;
ADMUX = 0x40;
al0 = ADCL;
ah0 = ADCH;
ch0 = al0+ah0*256;
printf("data : %d\\r\\n", ch0);
if(ch0 >= 100){
sensor0=0x01;
}
switch (sensor0){
case 0x00 : PORTB = 0xaa; break; //PORTB = LED
case 0x01 : PORTB = 0x0f; break;
}
}
}
이런 소스에서 왜 연결하면 모터가 가동이 될까요... 분명히 위에다 작동하지말라고 까지 입력을 했는데;;... 자꼬 모터가 돌아가내요.. init_devices() <<<이걸 지우지 안는이상 계속 도내요..
관리자 답변
안녕하세요?
일단, 하드웨어 이상이 없는 지 확인하기 위해서 자료실의 예제 소스를 넣어서 테스트 하는 것이 좋겠습니다. 이상 없다면, 소스 문제로 들어가면 좋겠습니다.
그리고, define 문이나 include 문 같은 전처리문은 소스 맨 앞에 넣어야 합니다.
일단 하드웨어 확인하고서, 파일로 소스 문제가 확실해 지면, 소스를 올려 보세요.
수고하세요.
>void main (void){
> unsigned char ah0,al0;
> unsigned int ch0;
> int sensor0;
> init_devices();
> ENABLE1_OFF;
> ENABLE2_OFF;
> ADCSRA &= 0x7f;
> while(1){
> ch0 = 0;
> sensor0 = 0x00;
> ADCSRA = 0xC7;
> ADMUX = 0x40;
> al0 = ADCL;
> ah0 = ADCH;
> ch0 = al0+ah0*256;
> printf("data : %d\\r\\n", ch0);
> if(ch0 >= 100){
> sensor0=0x01;
> }
> switch (sensor0){
> case 0x00 : PORTB = 0xaa; break; //PORTB = LED
> case 0x01 : PORTB = 0x0f; break;
> }
> }
>}
>
>이런 소스에서 왜 연결하면 모터가 가동이 될까요... 분명히 위에다 작동하지말라고 까지 입력을 했는데;;... 자꼬 모터가 돌아가내요.. init_devices() <<<이걸 지우지 안는이상 계속 도내요..
|
||||
| 6512 | 답변완료센서에서 나오는 출력값 질문입니다. | 최승훈 | 2011-11-07 | 1,368 |
|
전에 써주신 답변 잘 받았습니다. 전에 다음과 같이 답변해 주셨는데요
>질문1. 먼저 매우 기초적인 질문입니다.^^ 코드상에선 상위 비트와 하위비트로 나누어서 상위비트에 256을 곱해서 ch라는 하나의 문자로 표현했는데 %d로 ch0을 출력한 이 값이 각속도 값을 의미하는 것인가요?
== 네 그렇습니다.
여기서 ch0으로 출력되는 값이 voltage값인가요??
감도가 0.5mV/각속도 인데
예를들어 현재 ch0을 출력했을경우 260이란 숫자가 나옵니다.
이때 가속도를 10만큼 움직였을 경우 5mV가 더해지고 265가 되는건가요??
전에 했던 질문 번호는 14084번입니다
사용하는 코드는 센서에 올려주신 코드를 이용하고 있고 사용하는 프로그램은 codevision입니다.
항상 친절한 답변 감사드립니다.
관리자 답변
안녕하세요? 고객님,
아래 답변을 보시면, 도움이 되실 듯 합니다.
- 아래 -
http://newtc.co.kr/board/view.php?id=faq&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=4
4번에 보면 잘 나와 있습니다만
스케일 백터와 고객님의 값을 이용하여 계산해 내야 각속도가 나옵니다.
즉, 고객님이 뽑은 ADC 값들을 이용하여, 각속도를 계산해 내는 겁니다.
수고하세요.
>전에 써주신 답변 잘 받았습니다. 전에 다음과 같이 답변해 주셨는데요
>
>>질문1. 먼저 매우 기초적인 질문입니다.^^ 코드상에선 상위 비트와 하위비트로 나누어서 상위비트에 256을 곱해서 ch라는 하나의 문자로 표현했는데 %d로 ch0을 출력한 이 값이 각속도 값을 의미하는 것인가요?
>== 네 그렇습니다.
>
>여기서 ch0으로 출력되는 값이 voltage값인가요??
>감도가 0.5mV/각속도 인데
>예를들어 현재 ch0을 출력했을경우 260이란 숫자가 나옵니다.
>이때 가속도를 10만큼 움직였을 경우 5mV가 더해지고 265가 되는건가요??
>
>전에 했던 질문 번호는 14084번입니다
>
>사용하는 코드는 센서에 올려주신 코드를 이용하고 있고 사용하는 프로그램은 codevision입니다.
>항상 친절한 답변 감사드립니다.
|
||||
| 6511 | 답변완료SE-SM9K 모터 사용자 입니다 | 오한영 | 2011-11-07 | 1,291 |
|
SE-SM9K를 구매해서 사용하고 있습니다
모터만 출력 줘서 돌렸을 때는 소리가 모터 도는 소리정도만 나는데..
기구부에 물리니 공진이 생겨서 그런지 소리가 상당히 크게 들리는데
소리를 안나게 할 수 있는 방법이 있을 까요??
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
모터를 돌리는 주파수를 11kHz 정도의 타이머로 돌리니, 소리가 많이 줄어듭니다.
모터와 기구부의 접촉부 사이에 고무판 등으로 완충을 하시면 소리가 많이 줄어듭니다.
수고하세요.
>SE-SM9K를 구매해서 사용하고 있습니다
>
>모터만 출력 줘서 돌렸을 때는 소리가 모터 도는 소리정도만 나는데..
>
>기구부에 물리니 공진이 생겨서 그런지 소리가 상당히 크게 들리는데
>
>소리를 안나게 할 수 있는 방법이 있을 까요??
|
||||
| 6510 | 답변완료AVR오프라인 교육있나요? | 교육생 | 2011-11-07 | 1,225 |
|
AVR 관련해서 오프라인 교육계획있나요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
12월 둘째 주 정도에 한 번 무료 교육 진행할 까 합니다.
1-2월에도 한 번 교육을 할 예정입니다.
별도 공지하겠습니다.
수고하세요.
>AVR 관련해서 오프라인 교육계획있나요?
>
>
|
||||
| 6509 | 답변완료하이퍼 터미널사용방법을... | ..... | 2011-11-07 | 1,457 |
|
컴파일러는 ICCAVR을 씁니다.
하이퍼 터미널을 쓰는 방법을 알기위해 예제를 다운 받아서 AVR에 넣고
UART0에 연결했습니다. 그다음에 터미널 탭에 있는
Show Terminal Window << 이곳으로 들어가서 Open com port을 눌러도
창에 아무런 반응이 없습니다. 포트도 마췄고... 뭐가 문제인지...
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
혹시, 어떤 예제를 다운로드 받으셨는지요?
자료실->기존자료실에서 printf 라고 쓰시면 printf 관련된 예제들이 나옵니다.
그 중 해당 MCU의 예제를 쓰시면 되겠습니다.
- 추천 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=printf&select_arrange=headnum&desc=asc&no=238
위의 추천 예제는 터미널을 9,600bps, n.8.1.로 연결하고 UART0로 PC와 연결하였을 때의 예제입니다.
연결 후 키보드를 누르면, 대문자 A, B, C, D 에 대해서는 그 키가 눌렀다고 말해줍니다.
printf("\\r\\nPressed A"); 이렇게 말이죠.
하지만, 나머지 키들은 반응하지 않습니다. default에서 //로 된 부분을 걷어내면 뭔가 반응합니다.
혹시, UART0와 PC의 시리얼 포트와의 연결을 레벨을 맞춰서 한 것이 맞는 지 확인해 보세요.
본사의 모듈이나 보드인 경우, UART0 라고 된 커넥터 중에 3핀 약간 누런 커넥터 몰렉스 호환 5267-3 커넥터라면 RS-232C Level(+-12V) 구요. 그렇지 않고, 4핀 하얀 커넥터 몰렉스 호환 5045-4 커넥터라면, TTL Level(5V level) 커넥터 입니다.
참고하셔서 하시기 바랍니다.
이 하드웨어적인 연결에서 많이들 실수합니다.
수고하세요.
수고하세요.
>컴파일러는 ICCAVR을 씁니다.
>
>하이퍼 터미널을 쓰는 방법을 알기위해 예제를 다운 받아서 AVR에 넣고
>
>UART0에 연결했습니다. 그다음에 터미널 탭에 있는
>
>Show Terminal Window << 이곳으로 들어가서 Open com port을 눌러도
>
>창에 아무런 반응이 없습니다. 포트도 마췄고... 뭐가 문제인지...
|
||||
| 6508 | 답변완료자이로센서 질문입니다, | 최승훈 | 2011-11-07 | 1,186 |
|
답변 감사합니다. 말씀해주신 게시판을 열어 확인하였습니다.
그렇다면 다음과 같을 때 제가 이해한 바가 맞는지 확인하여 주세요
현재 260이란 값이 나오고 있지만 그건 각속도가 0일때의 값이고
질문1. 1024 분해능을 제공해주신 코드에선 이용하고 있는것이고
질문2. AM-GYRO V02를 사용하는 경우 출력되는 값이 260에서 270이 되었을 경우
1024분해능에서 1 변홍할 때의 각속도 값이 6.4453125degree/sec이므로
10이 변동되었으니 각속도 값이 64.453125deg/sec라는 말씀이신건가요??
4. 최종적인 각도 계산을 위한 Scale Vector 값 관련
AM-GYRO V01 ( 즉, IDG300) 이용시,
- 1024 분해능에서 1 변동할때의 각속도 값(Vref = 3.3V) :
3.22265625 mV / ( 2mV/degree/sec) = 1.611328125 degree/sec
- 1024 분해능에서 1 변동할때의 각속도 값(Vref = 5V) :
4.8816568mV / ( 2mV/degree/sec) = 2.4408284 degree/sec
AM-GYRO V02 ( 즉, IDG650) 이용시,
- 1024 분해능에서 1 변동할때의 각속도 값(Vref = 3.3V) :
3.22265625 mV / ( 0.5mV/degree/sec) = 6.4453125 degree/sec
- 1024 분해능에서 1 변동할때의 각속도 값(Vref = 5V) :
4.8816568mV / ( 0.5mV/degree/sec) = 9.7533136 degree/sec
5. 즉, 정리하여 보면, 각속도 구하는 기본식은
( 각속도 초기 adc값 - 센서 회전된 adc 값 ) * scale vector
여기서 adc 샘플링 시간을 누적시키면 각도가 됩니다.(적분)
adc 샘플링 주기가 예로 0.01초이면
degree += (( 각속도 초기 adc값 - 센서 회전된 adc 값 ) * scale vector ) * 0.01sec
관리자 답변
네 그렇습니다.
자이로마다 조금씩 값은 다를 수 있지만,
가만히 있을 때 나오는 값이 있고, 그 값이 260일 수 있겠지요.
그리고, 제가 드린 소스는 1024 분해능으로 사용하여 값을 받아서, 계산한 내용입니다.
또한, 질문 2에서 내용은 맞습니다.
수고하세요.
>답변 감사합니다. 말씀해주신 게시판을 열어 확인하였습니다.
>그렇다면 다음과 같을 때 제가 이해한 바가 맞는지 확인하여 주세요
>현재 260이란 값이 나오고 있지만 그건 각속도가 0일때의 값이고
>질문1. 1024 분해능을 제공해주신 코드에선 이용하고 있는것이고
>질문2. AM-GYRO V02를 사용하는 경우 출력되는 값이 260에서 270이 되었을 경우
>1024분해능에서 1 변홍할 때의 각속도 값이 6.4453125degree/sec이므로
>10이 변동되었으니 각속도 값이 64.453125deg/sec라는 말씀이신건가요??
>
>4. 최종적인 각도 계산을 위한 Scale Vector 값 관련
>
> AM-GYRO V01 ( 즉, IDG300) 이용시,
> - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 3.3V) :
> 3.22265625 mV / ( 2mV/degree/sec) = 1.611328125 degree/sec
> - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 5V) :
> 4.8816568mV / ( 2mV/degree/sec) = 2.4408284 degree/sec
>
> AM-GYRO V02 ( 즉, IDG650) 이용시,
> - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 3.3V) :
> 3.22265625 mV / ( 0.5mV/degree/sec) = 6.4453125 degree/sec
> - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 5V) :
> 4.8816568mV / ( 0.5mV/degree/sec) = 9.7533136 degree/sec
>
>5. 즉, 정리하여 보면, 각속도 구하는 기본식은
> ( 각속도 초기 adc값 - 센서 회전된 adc 값 ) * scale vector
> 여기서 adc 샘플링 시간을 누적시키면 각도가 됩니다.(적분)
> adc 샘플링 주기가 예로 0.01초이면
> degree += (( 각속도 초기 adc값 - 센서 회전된 adc 값 ) * scale vector ) * 0.01sec
>
|
||||
| 6507 | 답변완료KT-M128에서 PWM 을 사용하려고하는데요. | 김길현 | 2011-11-07 | 1,133 |
|
안녕하세요.
KT-M128 에서 PB4(OCR0) 포트를 PWM으로 사용하려고 하는데요.
설정 값을 정확하게 어떻게 넣어야 할지 모르겠네요.
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0x00; //set count
OCR0 = 0x1C; //set compare*/
TCCR0 = 0x71; // 여기를 71로 해서 PC PWM 모드로 설정했습니다.
TIMSK = 0x41; // ? timer interrupt sources
ETIMSK = 0x00; // ?extended timer interrupt sources
}
int main(void)
{
...
DDRB = 0x10; // PB4를 출력으로 선언했구요.
...
while(1)
{
for(cLight=0;cLight<255;cLight++)
{
OCR0 = cLight; // <-- duty비 조절 ( PWM을 변화주기)
_delay_ms(10);
}//for()
}//while(1)
...
}//main()
이렇게 OCR0의 값을 변화를 주어서 변경하는 것이 아닌가요?
아니면 설정때문에 그런가요?
타이머 강좌내용은 보았는데요, m128을 사용해서 pwm 제어 강좌는 못 본것 같아서요.
그럼 수고하세요,
관리자 답변
PWM으로 무엇을 하는 것이 목적인가요?
목적에 따라서, 다른 방식을 사용하는 것이 좋아서요.
예를 들어서, 일반적으로 모터 속도 등을 제어하는 것은 PWM의 Duty cycle을 변경함으로서 가능해 집니다. 따라서, 이경우 PWM Fast 모드나 PWM Phase Correct mode를 사용하게 됩니다.
PWM Phase Correct mode가 보다 정밀한 모드이죠.
어떤 경우이든지간에 둘 다 사용이 가능합니다.
따라서, Normal 모드의 경우는 위상만 바뀌거나 하는 경우라서 이런 경우는 거의 사용하지 않습니다.
강의록 8비트 타이머 강좌 쪽에 보면, 목적에 따라서, PWM 방법을 정하는 것이 나와 있습니다.
수고하세요.
>안녕하세요.
>
>KT-M128 에서 PB4(OCR0) 포트를 PWM으로 사용하려고 하는데요.
>
>설정 값을 정확하게 어떻게 넣어야 할지 모르겠네요.
>
>
>void timer0_init(void)
>{
> TCCR0 = 0x00; //stop
> TCNT0 = 0x00; //set count
> OCR0 = 0x1C; //set compare*/
> TCCR0 = 0x71; // 여기를 71로 해서 PC PWM 모드로 설정했습니다.
>
> TIMSK = 0x41; // ? timer interrupt sources
> ETIMSK = 0x00; // ?extended timer interrupt sources
>}
>
>int main(void)
>{
>...
>
> DDRB = 0x10; // PB4를 출력으로 선언했구요.
>...
> while(1)
> {
> for(cLight=0;cLight<255;cLight++)
> {
> OCR0 = cLight; // <-- duty비 조절 ( PWM을 변화주기)
> _delay_ms(10);
> }//for()
> }//while(1)
>
>...
>}//main()
>
>
>
>
>이렇게 OCR0의 값을 변화를 주어서 변경하는 것이 아닌가요?
>
>아니면 설정때문에 그런가요?
>
>타이머 강좌내용은 보았는데요, m128을 사용해서 pwm 제어 강좌는 못 본것 같아서요.
>
>
>그럼 수고하세요,
|
||||
| 6506 | 답변완료공간마우스 제작 프로그램과 블루투스 | 이재현 | 2011-11-08 | 1,654 |
|
안녕하세요 강좌에 있는 공간마우스를 2축 자이로 센서로 제작하고 있습니다.
강좌에서처럼 UART0 을 통해 PC와 AVR을 직접연결했을 때는 마우스가 잘 작동합니다.
저는 PC - AVR 연결사이에 블루투스 모듈 FB155BBC 을 이용하여
무선 공간마우스로 활용하려고 합니다.
PC와 블루투스 모듈 사이에 페어링은 원활하게 되었습니다. (모듈이 SLAVE, PC가 MASTER)
하지만 블루투스로 연결되어 생기는 COM 포트를 이용해서 마우스 프로그램을 실행시키면
전혀 입력을 받지 못합니다.
제 소견으로는 BAUD RATE가 마우스의 ADC소스코드와 윈도우 프로그램에서는 115200kbps로
되어있는 반면, 블루투스는 9600kbps를 기본으로 하고 있기 때문인것 같아서
여러번 블루투스 모듈의 baud rate를 115200kbps 수정하여 작업해 보았으나 계속 통신으로 전송되는 결과가 전혀없습니다...
일단 상태는 이렇구요.
질문은 다음과 같습니다.
1. adc.c 프로그램과 윈도우 소스코드에서 통신 설정할때를 모두 9600kbps로 변경하면 작동하지 않는가요? avr 코드에 대해서 잘몰라서 어떻게 수정해야 baud rate를 낮추는지 모릅니다... 만약 가능하다면 수정 방법을 알고 싶습니다.
2. 유선으로 UART 통신을 한 것은 하이퍼터미널을 이용해서 AVR -> PC로 송신되는 정보를 확인하는게 가능합니다.(전부 깨지긴 합니다만 최소한 전송이 계속되있구나는 알수있습니다.) 이와 비슷하게 UART에서 블루투스로 연결하여 PC랑 페어링 했을 때 PC로 데이터가 전송되고 있는지 확인할 수 있는 방법이 있나요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
답변 드릴께요.
>1. adc.c 프로그램과 윈도우 소스코드에서 통신 설정할때를 모두 9600kbps로 변경하면 작동하지 않는가요? avr 코드에 대해서 잘몰라서 어떻게 수정해야 baud rate를 낮추는지 모릅니다... 만약 가능하다면 수정 방법을 알고 싶습니다.
==>
아래와 같이 함수를 바꾸면, 9,600bps로 AVR 쪽이 변경됩니다.
이는 본사 모듈의 경우인데, 16MHz, ATMEGA128 사용시입니다.
//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x67; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0x18;
}
>
>2. 유선으로 UART 통신을 한 것은 하이퍼터미널을 이용해서 AVR -> PC로 송신되는 정보를 확인하는게 가능합니다.(전부 깨지긴 합니다만 최소한 전송이 계속되있구나는 알수있습니다.) 이와 비슷하게 UART에서 블루투스로 연결하여 PC랑 페어링 했을 때 PC로 데이터가 전송되고 있는지 확인할 수 있는 방법이 있나요?
==> 마찬가지로 UART를 터미널 통하여 확인하면 되겠습니다.
>안녕하세요 강좌에 있는 공간마우스를 2축 자이로 센서로 제작하고 있습니다.
>
>강좌에서처럼 UART0 을 통해 PC와 AVR을 직접연결했을 때는 마우스가 잘 작동합니다.
>
>저는 PC - AVR 연결사이에 블루투스 모듈 FB155BBC 을 이용하여
>
>무선 공간마우스로 활용하려고 합니다.
>
>PC와 블루투스 모듈 사이에 페어링은 원활하게 되었습니다. (모듈이 SLAVE, PC가 MASTER)
>
>하지만 블루투스로 연결되어 생기는 COM 포트를 이용해서 마우스 프로그램을 실행시키면
>
>전혀 입력을 받지 못합니다.
>
>제 소견으로는 BAUD RATE가 마우스의 ADC소스코드와 윈도우 프로그램에서는 115200kbps로
>
>되어있는 반면, 블루투스는 9600kbps를 기본으로 하고 있기 때문인것 같아서
>
>여러번 블루투스 모듈의 baud rate를 115200kbps 수정하여 작업해 보았으나 계속 통신으로 전송되는 결과가 전혀없습니다...
>
>일단 상태는 이렇구요.
>
>질문은 다음과 같습니다.
>
>1. adc.c 프로그램과 윈도우 소스코드에서 통신 설정할때를 모두 9600kbps로 변경하면 작동하지 않는가요? avr 코드에 대해서 잘몰라서 어떻게 수정해야 baud rate를 낮추는지 모릅니다... 만약 가능하다면 수정 방법을 알고 싶습니다.
>
>2. 유선으로 UART 통신을 한 것은 하이퍼터미널을 이용해서 AVR -> PC로 송신되는 정보를 확인하는게 가능합니다.(전부 깨지긴 합니다만 최소한 전송이 계속되있구나는 알수있습니다.) 이와 비슷하게 UART에서 블루투스로 연결하여 PC랑 페어링 했을 때 PC로 데이터가 전송되고 있는지 확인할 수 있는 방법이 있나요?
|
||||
| 6505 | 답변완료SE-SM9K 모터 계속된 질문입니다 | 오한영 | 2011-11-08 | 1,117 |
|
11khz 주파수로 설정하려면 step을 어떻게 잡아줘야 하나요??
지금 제가 설정한 값은
#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0x00) // 16 Step : 0.1125
#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0x40) // 8 Step : 0.225
#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0x80) // 4 Step : 0.45
#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0xc0) // 2 Step : 0.9
이렇게 설정을 해 놓았는데..
흠.. 답변 부탁드릴께요
관리자 답변
안녕하세요? 고객님,
타이머 등을 이용하여 PWM 값을 변경하는 포인트를 11kHz로 준 것입니다.
실제로 변경이 그 때마다 된다는 말은 아닙니다.
그 때마다, 변경할 지 말지 결정하는 포인트가 타이머 인터럽트 발생 시점으로 보시면 됩니다.
즉, MS2 라면, 클럭을 넣어주는 타이밍을 말합니다.
우선, 기구적으로 잡는 것이 가장 확실합니다.
수고하세요.
>11khz 주파수로 설정하려면 step을 어떻게 잡아줘야 하나요??
>
>지금 제가 설정한 값은
>
>#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0x00) // 16 Step : 0.1125
>#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0x40) // 8 Step : 0.225
>#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0x80) // 4 Step : 0.45
>#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0x3f)|0xc0) // 2 Step : 0.9
>
>이렇게 설정을 해 놓았는데..
>
>흠.. 답변 부탁드릴께요
|
||||
| 6504 | 답변완료AVR ISP 의 이상동작. | 정경호 | 2011-11-09 | 1,256 |
|
100ma 이하의 보드를 주로 사용해서..
USB 전원 스위치를 사용하고 있습니다.
V3 를 1년정도 사용하다 USB 전원이 안되길래;;
하나 더사서 사용하는데 이놈은 1개월만에 고장이 났네요;;
증상은
USB 전원 출력 불가..
타겟보드에 별도 전원 물려도 ISP 불가 입니다.
Check that the ISP programing frequency specified on the 'Main' page is well below 1/4 of the clock frequency of the device.
수리가 가능할까요?
증상은 위 두대가 동일합니다.
그리고 A/S 보내면 작년에산 3.0 버전을 cp210x 드라이버랑 호환되게끔
변경도 해주실 수 있나요? 아무리 따라해도 잘 안되서요.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
수리가 가능합니다.
본사로 보내주시면 수리 됩니다. 수리비용 관련해서는 수리 전에 미리 전화 드립니다.
V03.5로 변경도 가능합니다. 본사로 보내주세요.
수고하세요.
>100ma 이하의 보드를 주로 사용해서..
>
>USB 전원 스위치를 사용하고 있습니다.
>
>V3 를 1년정도 사용하다 USB 전원이 안되길래;;
>
>하나 더사서 사용하는데 이놈은 1개월만에 고장이 났네요;;
>
>
>증상은
>
>USB 전원 출력 불가..
>
>타겟보드에 별도 전원 물려도 ISP 불가 입니다.
>
>Check that the ISP programing frequency specified on the 'Main' page is well below 1/4 of the clock frequency of the device.
>
>
>
>
>수리가 가능할까요?
>
>증상은 위 두대가 동일합니다.
>
>
>그리고 A/S 보내면 작년에산 3.0 버전을 cp210x 드라이버랑 호환되게끔
>
>변경도 해주실 수 있나요? 아무리 따라해도 잘 안되서요.
|
||||
