로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Sensor Applications
아듀이노 공개소스
작성자 avrtools™        
작성일 2011/08/12
첨부#1 SKETCHBOOK.zip (747KB) (Down:237)
첨부#2 poorman-scope.zip (294KB) (Down:305)
Link#1 (Down:223)
ㆍ추천: 0  ㆍ조회: 3345   
  Arduino 고속 Oscillo Scope #2
제목 arduino-scope
용도 아듀이노 오실로스코프
참조 http://accrochages.drone.ws/node/90
 
소개
작년에 이 게시판에서 소개했던 아듀이노 오실로스코프의 제작에 대한 업그레이드입니다.
USB2serial 신제품 출시에 맞추어 관련된 자료를 찾던 중, 아듀이노 오실로스코프의 개선을 해보았습니다.
개선한 부분은 8 비트 분해능을 10 비트로 올리고, 변환속도를 8 배로 올렸습니다.
 
이 장치의 구성입니다. 적색은 하드웨어를 청색은 펌웨어 혹은 소프트웨어입니다.
 M168-mini  - USB2serial Converter -  PC(프로세싱 소프트웨어)
Fastadc.pde - Virtual Serial Port      -  Poorman Oscilloscope 
 
Fastadc.pde : M168-mini 기판의 펌웨어 
M168-mini : 아듀이노 Decimila 호환 (Arduino Decimala용 Bootloader가 펌웨어로 구워져 있음)
USB2serial : M168-mini와 연결되는 USB를 Serial로 변환하는 Converter 기판 (Arduino Uno 호환)
USB port + PC : 호스트 PC
프로세싱 소프트웨어 : Processing V1.5.1을 설치
Poorman Oscillosope : 프로세싱 응용소스 (USB 포트로 들어오는 데이터를 화면에 그래프로 표시한다)

프로세싱 설치방법
프로세싱이 설치되기 위해, Java 6 Standard Edition이 먼저 설치되야 합니다.
Java가 포함된 PC용 프로세싱을 설치하려면 아래 파일을 설치합니다.

무설치 버전 프로세싱 V1.5.1 내려받기
http://processing.googlecode.com/files/processing-1.5.1-windows.zip
Java 6 Standard Edition을 설치한 PC는 다음 파일을 받아도 됩니다.
http://processing.googlecode.com/files/processing-1.5.1-windows-expert.zip

프로세싱의 압축을 풀고 processing-1.5.1의 폴더를 통째로 C:에 옮기면, 설치가 끝났습니다.

 
이제 Processing-1.5.1의 폴더안의 processing.exe를 실행합니다.
다음과 같이 아듀이노 스켓치와 같은 프로세싱 편집기 화면이 나옵니다.
  
 
첨부파일 #1 프로세싱 소스를 받아서, 압축을 풀고, SKETCHBOOK 이라는 폴더를 통째로 C:로 옮김니다.
 
 
FIle -> Preference를 누릅니다.
 
  
다음 화면이 나옵니다. Brows에서 C:SKETCHBOOK 폴더를 지정해 줍니다.
   
 
File -> Open -> Brows에서 C: -> SKETCHBOOK -> libraries -> arduino_scope ->  poorman_scope를 열고
poorman_scope.pde를 선택하고 open을 누릅니다.  프로세싱 소스가 편집기로 들어 옵니다.
 
 
프로세싱 소스의 디버깅
아래의 프로세싱 소스에서 적색으로 표시된 다음 문장을 찾습니다.
port = new Serial(this, Serial.list()[1], 57600);

직렬포트의 갯수는 아듀이노 스케치를 열고 Serial 포트를 확인했을 때 직렬포트가 2 개이고,
작은 번호의 포트를 사용한다면, [0]으로, 큰 번호의 포트를 사용한다면 [1]로 바꾸어 줍니다.

즉, USB2serial 기판을 연결하면 제어판 - 장치관리자에서 COM4로 나타나고,
아듀이노 스케치의 Serial Port를 열면, COM3와 COM4가 있다면, [1]로 설정합니다.
만일 스켓치에 통신포트가 3 개이고, 마지막 COM5가 아듀이노 통신포트라면 [2]로 변경합니다.
 
이제 Arduino 기판이 USB 포트에 연결되어 있다면, 프로세싱 편집기의 좌측 실행단추를 누르면,
프로세싱 실행화면이 나오고 아듀이노 오실로스코프가 작동됩니다.

M168-mini 기판은 ATmega168 칩이 탑재되어 있고. 여기에 아듀이노 펌웨어를 사용하면,
A0~A7의 10비트 분해능의 아날로그 포트 (디지털 입출력 겸용으로 아날로그는 입력전용)가 있습니다.
스코프 입력으로 설정된 A0 핀을 GND와 VCC에 연결해 보니, 스코프 레벨이 0% ~ 100%로 표시됩니다.

아래 화면은 A0 핀에 연결된 시험용 104K 캐패시터의 자연방전 상태를 보여줍니다.
   
 
제가 프로세싱 화면 처리를 잘 못해서 단순 디버그만 했습니다.
프로세싱 실행화면이 시간축이 고정이므로 높은 주파수가 들어오면 불편합니다.
다음 화면 처럼, 중간 눈금도 있고, 배경도 부드러운 색상으로된 화면이 아쉽네요. ^^;
 

 
프로세싱 소스 poor
man_scope.pde
import processing.serial.*;
Serial port;


int val;
int[] values;


void setup(){
  size(320, 240);
  port = new Serial(this, Serial.list()[1], 57600);
  values = new int[width];
  smooth();
}


int getY(int val){
  return (int)(val *(height -10) /1024.0f) - 1;
}


void draw()
{
  while (port.available() > 1){
  val = (port.read() << 8) | (port.read());
  }

  for (int i =0; i <width -1; i++){
    values[i] = values[i +1];
  }


  values[width -1] = val;
  background(0);
  stroke(255);
  for (int x =1; x <width; x++){
    line(width -x, height -11 -getY(values[x -1]), width -1 -x, height -11 -getY(values[x]));
   }
}

아듀이노 소스
아듀이노 0017 이나 0022를 실행하고, File -> Open -> Brows에서
C: -> SKETCHBOOK -> libraries -> arduino_scope -> arduino_fastadc를 열고
arduino_fastadc.pde를 선택하고 Open을 누르면, 아듀이노 스켓치에 소스가 들어 옵니다.
  
 
위와 같이 Tools -> Board에 "Arduino Decimilla"가 나오고
Tools -> Serial Port에 COM3 이나 COM4가 선택되어 있어야 합니다.
 
좌측 첫번째 컴파일 단추를 누르고, Done Compile이 나오면 펌웨어의 컴파일이 끝납니다.
우측 두번째 Upload 단추를 누르면, 컴파일된 펌웨어가 아듀이노 기판에 Upload 됩니다.
이상이 없다면, USB2serial 기판의 TXD-LED는 송신 데이터를 표시하기 때문에 계속 점등됩니다.

아듀이노 소스 arduino_fastadc.pde
적색으로 표시된 부분은 10 비트 ADC의 샘플링 횟수 4 회와 관련이 있는 상수들입니다.

double accumulator = 0;
short   temp = 0;
short   samples = 0;

int Vin;
 
#pragma vector =ADC_vect
ISR(ADC_vect)
{
  accumulator += ADC;
  samples++;
}
 
void init_adc(void)
{
  ADCSRA =(1<<ADEN)|(1<<ADIF)|(1<<ADIE)|(1<<ADSC)

  |(1<<ADATE) |(1<<ADPS2)|(0<<ADPS1)|(1<<ADPS0);
  ADMUX = (0<<REFS1)|(0<<REFS0);
  ADCSRA |= ADSC;
}
 
void over_sampled()
{
  noInterrupts();
  accumulator += 5;
  accumulator *= 0.9993;


  temp =(int)accumulator %4;
  accumulator /=4;
  if(temp >10) accumulator++;
  Vin =(int)(accumulator);


  samples = 0;
  accumulator = 0;
  interrupts();
}
                             
void setup(){
  Serial.begin(57600);
  Serial.println(" ");
  init_adc();
}


void loop(){
  if (samples >=4){
    over_sampled();
    Serial.write((Vin >>8) & 0xFF);
    Serial.write(Vin & 0xFF);
  }
}

첨부파일 #2는 프로세싱에서 실행파일을 출력한 것입니다.
압축을 풀고, poorman_scope.exe를 실행하면
프로세싱을 열지 않아도 스코프를 사용할 수 있습니다.
 
주의
1. SKETCHBOOK 아래의 libraries 폴더에 첨부된 프로세싱 소스와 arduinoscope.jar 파일이 있어야 합니다.
2. Serial port의 통신속도는 115200 bps를 권장합니다. 57600 bps는 PC와의 통신속도 오차로 문제가 있습니다.
 
이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
AVRTOOLS™


   
윗글 Arduino MIDI의 소개
아래글 Arduino Uno 및 USB2serial Uno의 소개
    N         제목    글쓴이 작성일 조회 추천
61 비접점식 QTouch 방식 근접검출 스위치 leeky 2016/01/21 (목) 1074 0
60 Arduino 고속 오실로스코프 #3 avrtools™ 2012/03/29 (목) 18175 0
59 아날로그 8ch 데이터 로거 avrtools™ 2012/03/29 (목) 3057 0
58 Arduino DMX512 송신기 제작 avrtools™ 2012/03/15 (목) 3208 0
57 nRF24L01 무선모듈의 사용방법 avrtools™ 2012/03/07 (수) 6497 0
56 초음파 거리 측정기의 제작 avrtools™ 2011/09/18 (일) 5277 0
55 3축 가속도 센서 ADXL335 avrtools™ 2011/09/09 (금) 3802 0
54 Arduino Uno USBserial 펌웨어의 변경 avrtools™ 2011/08/27 (토) 3327 0
53 Arduino MIDI의 소개 avrtools™ 2011/08/19 (금) 3704 0
52 Arduino 고속 Oscillo Scope #2 avrtools™ 2011/08/12 (금) 3345 0
51 Arduino Uno 및 USB2serial Uno의 소개 [2] avrtools™ 2011/07/30 (토) 3625 0
50 Arduino IDE에서 AVRISP-mkII 사용방법 avrtools™ 2010/10/22 (금) 8294 0
49 아듀이노 초음파 거리측정 및 응용 avrtools™ 2010/03/14 (일) 4367 0
48 M328-USB의 비밀 온도센서 avrtools™ 2010/01/02 (토) 3774 0
47 M168-mini로 만드는 USBasp avrtools™ 2009/10/10 (토) 5717 0
46 OBDuino ISO9141 소스의 설명 avrtools™ 2009/10/08 (목) 4444 0
45 아듀이노 0017 업그레이드 avrtools™ 2009/08/18 (화) 3953 0
44 Arduino 0015 업그레이드 avrtools™ 2009/06/01 (월) 3654 0
43 CC2500 Zigbee RF Modem #1 [4] avrtools™ 2008/11/20 (목) 6985 0
42 아듀이노 소프트웨어 Ver 0012 avrtools™ 2008/09/23 (화) 4145 0
41 Arduino 소프트웨어 설치방법 avrtools™ 2008/08/31 (일) 5837 0
40 아듀이노 PC 카메라 제작 avrtools™ 2008/10/28 (화) 7483 0
39 아듀이노 AVR-ISP V2의 제작 [6] avrtools™ 2008/10/22 (수) 8639 0
38 아듀이노 J1850-PWM 스캐너 avrtools™ 2008/10/15 (수) 4684 0
37 아듀이노 MPGduino의 제작 avrtools™ 2008/10/11 (토) 5179 0
36 아듀이노 OBD-II PID 처리함수 avrtools™ 2008/10/12 (일) 5833 0
35 아듀이노 OBD-II PID 송수신 함수 avrtools™ 2008/10/09 (목) 10058 0
34 아듀이노 ODB-II 스캐너 제작 [9] avrtools™ 2008/10/04 (토) 17993 0
33 아듀이노 AC전원 THD 측정 [2] avrtools™ 2008/09/30 (화) 7032 0
32 아듀이노 소프트방식 16Bit ADC avrtools™ 2008/09/23 (화) 5748 0
31 아듀이노 초음파 모듈의 제작. avrtools™ 2008/09/22 (월) 5118 0
30 아듀이노 Wii 프로세싱 avrtools™ 2008/09/20 (토) 4320 0
29 아듀이노 초음파 거리측정 avrtools™ 2008/09/20 (토) 6311 0
28 아듀이노 8x5 초소형 전광판 avrtools™ 2008/09/11 (목) 4881 0
27 아듀이노 4선식 터치패널 avrtools™ 2008/09/10 (수) 4817 0
26 아듀이노 2색 8x8 LED avrtools™ 2008/09/10 (수) 5142 0
25 아듀이노 24x6 LED 전광판 avrtools™ 2008/09/10 (수) 5688 0
24 아듀이노 8x8 LED 프로세싱 avrtools™ 2008/09/10 (수) 4266 0
23 아듀이노 32x16 RGB 전광판 avrtools™ 2008/09/06 (토) 13895 0
22 아듀이노 맥박검출기 avrtools™ 2008/09/03 (수) 9851 0
21 아듀이노 적외선 거리센서 avrtools™ 2008/09/01 (월) 6147 0
20 아듀이노 DMX 수신장치 [7] avrtools™ 2008/08/31 (일) 7098 0
19 아듀이노 AVR-ISP 만들기 avrtools™ 2008/08/30 (토) 4345 0
18 아듀이노 POV #3 avrtools™ 2008/08/30 (토) 3636 0
17 아듀이노 POV #2 avrtools™ 2008/08/30 (토) 3409 0
16 AVR 병렬포트 굽기장치 avrtools™ 2008/08/30 (토) 5489 0
15 아듀이노 DMX 송신기 avrtools™ 2008/08/28 (목) 5330 0
14 아듀이노 부트로더의 개조 [1] avrtools™ 2008/08/28 (목) 5991 0
13 아듀이노 병렬포트 굽기장치 avrtools™ 2008/08/26 (화) 4396 0
12 아듀이노 POV #1 avrtools™ 2008/08/26 (화) 3658 0
11 아듀이노 MIDI 드럼 leeky 2008/08/24 (일) 4990 0
10 아듀이노 SD/MMC 카드 avrtools™ 2008/08/24 (일) 9969 0
9 아듀이노 MIDI 플륫 avrtools™ 2008/08/24 (일) 3843 0
8 아듀이노 RGB LED avrtools™ 2008/08/23 (토) 5258 0
7 아듀이노 USB 오실로스코프 [2] leeky 2008/08/21 (목) 6823 0
6 가속도계 ADXL202 응용소스 avrtools™ 2008/08/20 (수) 5136 0
5 아듀이노 가속도센서 avrtools™ 2008/08/18 (월) 5171 0
4 아듀이노 RC서보 제어 avrtools™ 2008/08/17 (일) 5468 0
3 아듀이노 910-ISP 만들기 avrtools™ 2008/08/16 (토) 5035 0
2 아듀이노 온도센서, XBee 송수신 avrtools™ 2008/08/15 (금) 7920 0
1 아듀이노 기본명령 avrtools™ 2008/08/07 (목) 7059 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0