arduino와 processing을 연동 하면서, processing 언어가 어떻게 자바로 바뀌는지 궁금했다.
export application 하니 win32, win64 에서 동작할 수 있도록 코드가 생성된다. windows32 디렉토리와 window64 디렉토리가 생기고, 각각 lib, source 디렉토리와 serial 통신이 가능한 dll파일과 exe 파일이 생긴다.
자바소스는 source디렉토리에 보니 processing언어로 된 원래 코드와 변환된 자바 코드가 있다.
기존 코드는 다음과 같다.
// 버튼의 값이 true이면 led을 끼고, false이면 led를 끈다.
자동으로 변환된 자바 코드이다.
PApplet을 상속받은 클래스를 하나 만들고, PApplet의 method를 override 하도록 되어 있다.
이렇게 만들어진 PApplet 을 바로 쓰면 애플릿으로 바로 쓸 수 있고,
main 메서드만 추가하면 어플리케이션처럼 쓸 수 있도록 짜 있다. 전형적인 어플 개방 방식을 쓰고 있다.
lib/core.jar 파일에 processing.core.JApplet 클래스가 존재한다. JApplet 클래스는 java.awt.Applet 을 상속하고, java.awt의 이벤트 계열 리스너와 쓰레드를 상속해서 쓰고 있다.
...
}
lib/args.txt 파일을 보니, 클래스이름과 jar 파일 classpath가 적힌 것 같다.
lib/RXTXcomm.jar 파일을 살펴보니. gnu.io 패키지를 가지고 있다. serial 통신을 지원하는 library인데 정체가 무엇일까 하는 생각이 들었다. http://users.frii.com/jarvi/rxtx/ 웹 페이지에 자세한 설명이 있다. 이 라이브러리는 LGPL 라이선스 이고 java에서 사용할 수 있도록 만들어진 serial, parallel 통신 library이다.
이 페이지는 old 해졌고, http://rxtx.qbang.org/wiki/index.php/Main_Page 페이지가 최신 소개 페이지이다.
serial port 통신에 대한 얘기들과 예제들이 있다. java로 쉽게 개발할 수 있도록 고생하셨다. 짝짝~
생각보다 processing의 원리가 무척 간단하다는 생각이 들었다. 단순히 java 언어로 변환하고, library만 지원하는 구조가 아닌가 생각이 든다. 그래서 예술가들이 processing 언어를 쓰는 것 같다.
'아두이노' 카테고리의 다른 글
me2day 의 특정 글에 리플을 달면 램프 깜박이게 하기 (아두이노-이클립스-Serial RXTX 연동) (0) | 2011.12.16 |
---|---|
프로세싱(processing) + 이클립스(연동) (1) | 2011.12.12 |
[아두이노] 프로세싱 연동 - 어플에서 버튼을 누르면 불 깜빡거리게 하기 (0) | 2011.12.08 |
[아두이노] 프로세싱(Processing) 과 아두이노(arduino)를 연동해보기 (3) | 2011.12.08 |
아두이노 Arduino 1.0 Release (0) | 2011.12.02 |