제목 : Poorman's oscilloscope 요구사항 : 아듀이노 기판 + 아듀이노 소프트웨어 + 응용 소스(첨부 파일) 이 소프트웨어는 아날로그 신호를 가시적으로 화면에서 볼 수 있습니다. 깜찍한 실시간 오실로스코프로 분해능은 10 비트 입니다. 이것은 응용소스가 업로드 된, 아듀이노 기판의 A0의 값을 읽어서, 직렬포트를 통해 송신된 값을 PC의 USB 포트에서 수신하여 작동합니다. 장치의 구성 * Processing 첨부파일을 내려받기 하십시요. * 호출방법 import processing.serial.*; * 준비물 아듀이노 소프트웨어 + 아듀이노 기판 설명 1. 첨부된 파일을 내려받고, 아듀이노 소프트웨어에서 스케치 파일로 pde를 연다. 2. 가장 아래에 첨부된 아듀이노 기판용 pde를 만들어, 컴파일 한 다음, 3. 아듀이노 기판에 업로드한다, 일단 아듀이노 프로그램을 닫는다. 4. 화면처리 코드를 작동시킨다. // 아듀이노로 만드는 USB 오실로스코프 // 아날로그 입력핀 A0의 데이터를 USB 포트로 전송하여 화면에 파형을 그린다. // 참조 사이트 : http://accrochages.drone.ws // 저자 : (c) 2008 Sofian Audry (info@sofianaudry.com ) // 이 소트트웨어는 무료이다. 배포 및 개조를 할 수 있다. GNU 일반 공개 저작권에 따른다. // 이프로그램은 자유롭게 사용하도록 배포되었다. 그러나 어떤 보증도 하지 않는다. // GNU 일반공개 저작권에 대한 상세한 내용을 받을 수 있다. http://www.gnu.org/licenses/ 다음은 아듀이노 기판에 업로드하는 응용소스이다. #define ANALOG_IN 0 void setup() { Serial.begin(9600); } void loop() { int val = analogRead(ANALOG_IN); Serial.print( 0xff, BYTE); Serial.print( (val >> 8) & 0xff, BYTE); Serial.print( val & 0xff, BYTE); } 위의 응용소스를 아듀이노 소프트웨어의 스케치 장에 붙혀 넣고, 컴파일한 다음, 아듀이노 기판에 업로드한다. 첨부파일 : Oscilloscope.pde, 크기 : 1.88 KB 화면처리 소프트웨어 // 라이브러리는 arduino-0011 > hardware > libraries > SoftwareSerial > 폴더에 // SoftwareSerial.cpp 및 SoftwareSerial.h와 SoftwareSerial.o가 들어 있다. import processing.serial.*; // 아듀이노에 저장된 라이브러리를 읽어 온다. Serial port; // 직렬 class로 부터 object 를 생성한다 int val; // 직렬포트에서 수신한 값을 저장한다 int[] values; // 수심값을 바이트로 만들어 저장한다. void setup() { size(640, 480); // 아듀이노 기판이 연결되면 포트를 연다. 속도는 9600을 사용한다 port = new Serial(this, Serial.list()[0], 9600); values = new int[width]; smooth(); // 평균화를 통해 잡음을 제거할, 라이브러리에 들어 있는 함수를 부른다. } int getY(int val) // 수신된 값을 표시할 화면의 크기에 맞춘다. { return (int)(val / 1023.0f * height) - 1; } void draw() // 그림을 그리는 주 함수 { while (port.available() >= 3) // 포트번호가 3번 이상이면, 가상 직렬포트를 읽어서 바이트로 만든다. { if (port.read() == 0xff) 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); // 화면의 배경색을 0으로 설정 stroke(255); // 255개의 배열변수를 처리할, 라이브러리에 들어 있는 함수를 부른다. for (int x=1; x<width; x++) // 변수에 바이트 단위로 저장된 데이터를 화면에 선을 그린다. { line(width-x, height-1-getY(values[x-1]), width-1-x, height-1-getY(values[x])); } } 다음 사진은 아듀이노 USB 스코프로, LED를 점등하는 1KHz PWM 파형을 측정한 그림이다. 앗, 그렇군요, 아듀이노의 스케치 기능에는 응용코드만 컴파일하고, 기판에 업로드만 하는것이 아니네요, 프로세싱이라는 처리를 이용하여, 라이브러리를 부르고, PC의 통신, PC의 화면까지 제어하네요, 음~~, 아듀이노 하드웨어를 정신없이 개발하느라, 이것 까지는 미처 몰랏네요,,,아듀이노 재미 있습니다, 프로세싱이란? 미국 MIT 대학의 미디어랩에서 개발된 시각적 표현방식의 프로그래밍 언어로, 전자 예술(electronic arts)과 시각 디자인 커뮤니티를 위해 만든 언어이며 또한 개발환경입니다. 프로세싱의 목적은 프로그래밍이 비전공인 사람들에게 쉽게 프로그래밍 개념을 배울수 있게 하는 것입니다. 프로세싱은 그림, 동영상, 소리를 만들려는 사람들을 위한, 공개소스 언어이며 제작도구(개발환경)입니다. 이것은 학습, 시작품, 제품을 위해 학생, 예술가, 창작자, 조형물 설계, 취미활동 등에 사용됩니다. 이것은 소프트웨어 스켓치와 전문가 도구로 지원하는 시각적인 문서로, 프로그램의 원리를 가르치려고 만들었습니다. 프로세싱은 동일한 분야에서, 소프트웨어 도구와는 다르게, 아티스트와 디자이너들에 의해 개발되었습니다. 현재 많은 대학에서 인문학이나 혹은 예술 전공 학생들에게 이 프로세싱을 가르치고 있습니다. 특히 미디어 아트를 하는 분들이 많이 배우고 또 실제 작품(혹은 시작품)에 사용하고 있습니다. 프로세싱은 컴퓨터에서 그림, 동영상, 소리등을 편리하게 처리할 수 있는 배우기쉬운 언어라는 것입니다. 하드웨어를 이용하는 프로세싱의 종류는 Wiring, Fritzing, Gainer, Arduino 등이 있으며, 대부분 하드웨어를 제어하는 물리적 제어와 가시적 표현을 하는 소프트웨어 프로세싱을 포함하고 있다. 이 중에서 가장 많이 사용되고, 폭 넓은 분야에 보급된 아듀이노는, 첫째로 하드웨어의 비용이 저렴하고, 두번째로, 하드웨어, 소프트웨어, 프로세싱의 표준화와 공개화로, 많은 분야에서의 활용이 기대되는 방식이다. 이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다. 이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다. Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA [출처] 아듀이노 USB 오실로스코프 (아두이노 스토리) |작성자 땜쟁이 |



때마침 지금 프로세싱 열고 있었는데요 한번 해봐야겠네요
좋은 자료입니다~ 어떤 신호에 어떤 스펙의 오실로 스코프를 이용해야 할지를 결정하는 기준에 대해서 조만간 같이 알아보아요~
이게 우리가 사용하는 정도에서 무리없이 쓸 수 있다면 임시로 사용할 수 있을 것 같은데요. ^^
맞아요 우리가 보통 하는것들은 충분히 할 수 있어요.