Programming/Java2012. 2. 6. 21:09
머 이렇게 생겼군!

일단 이 예제에서 눈에 들어온 내용은,
XML을 탐색하기 위해서는 정형화된 XML 이름이 구조적으로 있어야 한다는 것.

<?xml version="1.0"?>
<company>
	<staff>
		<firstname>yong</firstname>
		<lastname>mook kim</lastname>
		<nickname>mkyong</nickname>
		<salary>100000</salary>
	</staff>
	<staff>
		<firstname>low</firstname>
		<lastname>yin fong</lastname>
		<nickname>fong fong</nickname>
		<salary>200000</salary>
	</staff>
</company>

element가 달라져도 상관은 없지만, 프로그램에 일일이 xml의 element 이름을 바꾸어 줘야 하니까
그래서는 xml을 쓰는 의미가 많이 희석이 된다.(데이터와 구현을 분리하는 의미가 없어지니)

[링크 : http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/]
    [링크 : http://docs.oracle.com/javase/1.5.0/docs/api/javax/xml/parsers/DocumentBuilder.html]
    [링크 :  http://docs.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Document.html]
    [링크 :  http://docs.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Element.html]
 
Posted by 구차니
embeded/Cortex-M3 Ti2012. 2. 5. 22:08
driverlib 관련 분석 내용 / uart 예제사용
전반적으로 초기화 설정을 보면 무언가.. 중복되도록 설정하는 느낌?
특히 UART의 경우에는 몇단계를 통해서 설정을 하는 것을 보면...

함수설명
extern void SysCtlClockSet(unsigned long ulConfig); // 클럭설정을 하도록 함.
 

extern void SysCtlPeripheralEnable(unsigned long ulPeripheral); // 포트를 사용하도록 설정함
extern void GPIOPinConfigure(unsigned long ulPinConfig); // GPIO로 쓸지 하드웨어 내장 기능을 쓸지 설정함

extern void GPIOPinTypeGPIOInput(unsigned long ulPort, unsigned char ucPins); // 해당 포트의 해당핀을 입력용으로 설정
extern void GPIOPinTypeGPIOOutput(unsigned long ulPort, unsigned char ucPins); // 해당 포트의 해당핀을 출력용으로 설정
extern void GPIOPadConfigSet(unsigned long ulPort, unsigned char ucPins, unsigned long ulStrength, unsigned long ulPadType);
                                                                                  // 해당 포트의 해당핀에 대한 GPIO 드라이브 전류와 pull-up / open-drain 설정
 

예제설명
int main(void)
{
    char cThisChar;

    // 시스템 클럭설정
    SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ);
    // UART0 기능을 사용하도록 함
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    // UART 핀이 포함된 GPIOA 포트를 사용하도록 함
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    // GPIO A의 0번 핀을 U0 RX로 사용하도록 함
    GPIOPinConfigure(GPIO_PA0_U0RX);
    // GPIO A의 1번 핀을 U0 TX로 사용하도록 함
    GPIOPinConfigure(GPIO_PA1_U0TX);
    // GPIO A의 0번 1번 핀을 UART에 할당함
    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
    // UART의 클럭소스와 Baudrate등을 설정함
    UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200,
                       (UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE));
    do
    {
        // UART0로 부터 1문자를 받아옴(blocking 방식)
        cThisChar = UARTCharGet(UART0_BASE);
        // 받아온 문자을 UART0로 출력함
        UARTCharPut(UART0_BASE, cThisChar);
    } while((cThisChar != '\n') && (cThisChar != '\r'));

    return(0);
}

'embeded > Cortex-M3 Ti' 카테고리의 다른 글

uart 인터럽트 / 폴링 충돌  (0) 2012.06.18
Ti lm3s1968 arm cortex m3 i2c  (0) 2012.02.20
Cortex-M3 인터럽트 관련 문서  (0) 2012.01.31
Cortex-M3 예제소스  (0) 2012.01.27
Cortex-M3 LM3S1968 Evaluation board  (0) 2012.01.27
Posted by 구차니
Linux/Ubuntu2012. 2. 5. 20:52
가끔 설치된 프로그램의 설정파일을 찾으려고 낑낑대는 적이 많았는데 -_-
dpkg 명령을 이용해서 해당 패키지의 설치경로를 알아내면 이런 고생은 안해도 되니 편할듯

$ dpkg -L [패키지 명]  

[링크 : http://newbiedoc.sourceforge.net/tutorials/apt-get-intro/info.html]  


단, 설치되어 있는 프로그램에 한함. 설치되지 않은 경우에는 설치하지 않았다고 나옴
$ codeblocks
'codeblocks' 프로그램은 현재 설치되어 있지 않습니다.  다음을 입력하여 이를 설치할 수 있습니다:
sudo apt-get install codeblocks
 
$ dpkg -L codeblocks
`codeblocks' 패키지는 설치하지 않았습니다.
아카이브 파일 정보를 보려면 dpkg --info를 실행하시고 (= dpkg-deb --info)
아카이브 내용을 보려면 dpkg --contents를 실행하십시오 (= dpkg-deb --contents)   

Posted by 구차니
개소리 왈왈2012. 2. 5. 14:10
게임산업 관련하여 시끌벅적해서 블로그 지인들이 글을 많이 쓰니 유행에 편승(!)하여  
타칭 게임중독자였던 구차니군의 생각을 털어놓기? ㅋ



왜 애들은 게임을 좋아하는 걸까?
 가장 단순하면서도 어른의 입장에서 이해를 하지 못하는 이유는 "즐겁기 때문"이 아닐까 생각이 된다.
게임은 재미있기 때문에 하는것이고, 이러한 재미로 인해 빠져들게 된다. 물론 그 재미의 이면에는 인간의 욕구를 충실히 충족시켜주기 때문이다. 과거의 "오락"에 중점을 두자면 구슬치기 등은 더 좋은 구슬이나 더 많은 구슬을 가지게 되는 "소유욕"을 충족시켜 주고, 더욱 현란하게 더욱 정교하게 하면서 주변의 인정을 받는 "인정욕"도 충족을 받게 된다. 물론 이러한 구조는 현대의 PC 온라인 게임에도 동일하다. 아이템을 소유하고, 더 강해지면서 랭킹이 오르면서 타인의 입에 오르내리게 되고 그러면서 명성을 얻게 된다. (혹은 PK를 통해 악명이 높아져도 타인의 입에 오르내리니) 

그렇다면 왜 애들이 게임에 빠지게되는 걸까?
 과거에는 몸으로 뛰어오는 오락이 있었고, 그렇게 몸으로 움직이며 스트레스를 풀 수 있었지만 현대에 있어서는 학교 - 학원 - 집 = 잠 이라는 경로만으로 고정되어 있기 때문에 흥미를 느낄수가 없다. 소유욕/인정욕을 넘어서야 그 다음 단계의 욕구인 자아실현욕으로 넘어가는데 소유욕과 인정욕은 거세 당한채 "부모의 자아실현욕"을 투영시켜 아이에게 상위 단계만을 요구한다. 이러한 과정에서 아이들은 상위욕구에 대한 갈망은 반발심리로 바뀌고 저수준의 말초적인 소유욕/인정욕에 목을 매게 된다. 쾌락을 얻는 도구로서의 온라인 게임들은 매우 적절한 수단이며. 이러한 자기 욕구를 충족시키기 위해 게임에 빠져들수 밖에 없게 된다. 온라인에 빠지지 않게 되면 옷 브랜드라던가 신상 IT기기 등을 통해 소유욕/인정욕에 빠지게 된다.

그렇다면 왜 어른들이 온라인 게임을 싫어하는 걸까?
 과거는 몸으로 하는 게임이었고, 몸을 잘 쓰는건 능력으로서 인정을 받았던 시대이다. 그러한 시대를 살던 분들에게 있어 오락은 게임이고 게임은 밖에 나가서 몸으로 뛰어놀아야 건전해 보이는 경향이 있다. 우중충하고 어두운 곳에서 모니터만 바라보고 하는 게임으로서는 어둠의 자식이라고 밖에 생각이 들지 않고, 컴퓨터를 잘 모르는 부모세대로서는 자신이 통제할수 없고 이해할수 없는 컴퓨터 자체를 적으로 인식하고 배척할수 밖에 없다. 그래서 통제해준다는 프로그램에 빠져들게 되고 이러한 프로그램들을 통해서 아이들과 더 멀어질수 밖에 없게 된다. 문제는 아이들의 욕구를 충족해줄수도 없으면서 수단을 가로막으면서 부모가 아이와 놀아주지 않는다는 점이다.

그럼 어떻게 하는게 좋을까?
 이상적으로는 경제 / 교육체제를 전부 갈아 엎어야 하겠지만, 최소 한도로 제한을 해서 고르자면 다음이 최소한의 노력이 아닐까 싶다. 1. 자기가 좀 피곤해도 아이와 이야기 하는 시간을 조금씩 늘리기 2. 회사에서는 무의미한 야근 하지 않도록 하기 3. 컴퓨터에 익숙해지고 아이와 함께 게임을 해보기 4. 가끔은 아이와 함께 같이 놀러가기 5. 가끔은 부모의 어릴적 오락을 같이 아이와 하기 6. 학원만 보내고 다했다고 하기 보다는 책도 사주고 같이 무언가도 만들어 보기
 어쩌면 물질/자본주의 1세대 부모의 같이 놀아주지 못하니 돈으로라도 교육을 잘 시켜주는게 아이에게 잘하는 것이다 라는 생각이 근본원인이고, 이에 파생된 과잉 교육열풍(부모의 죄책감의 상품화) / 학교 강제 야간 자율학습(부모의 편의를 위해 학교에 돈을 주고 묶어둠) / 관심부족으로 인한 인격 미성숙 등의 문제가 결과가 아닐까 싶어진다.
 아이들의 범죄도 점점 성인범죄 수준을 넘나들고 있지만 그 아이들만을 처벌할 수도 없고, 부모도 같이 처벌을 해야하지만 이미 삐뚜러진 심성을 어떻게 다시 두드려 펼지는 어른들이 고민해야 할 몫이 아닐까 생각된다. 가짜 인권주의자들의 외침만 들을게 아니라 진심됨 사랑의 매가 부활하는게 답일지도...

[링크 : http://blog.daum.net/pkh2419/12625009]

'개소리 왈왈' 카테고리의 다른 글

집, 유리컵, 돌  (2) 2012.02.09
미래의 돈줄!  (0) 2012.02.08
급 피곤  (4) 2012.02.03
보이스피싱 업그레이드~!  (0) 2012.01.28
인간에게 삶의 목표가 "찾아야 할" 목표인 이유에 대한 개소리  (0) 2012.01.20
Posted by 구차니
Linux API/joystick2012. 2. 5. 11:36
조이스틱 관련 구조체 및 매크로 내용
우분투 기준 /usr/include/linux/joystick.h 에 존재함.

#ifndef _LINUX_JOYSTICK_H
#define _LINUX_JOYSTICK_H

/*
 *  Copyright (C) 1996-2000 Vojtech Pavlik
 *
 *  Sponsored by SuSE
 */

/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or 
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 * 
 * Should you need to contact me, the author, you can do so either by
 * e-mail - mail your message to vojtech@suse.cz, or by paper mail:
 * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
 */

#include "linux/types.h"
#include "linux/input.h"

/*
 * Version
 */

#define JS_VERSION		0x020100

/*
 * Types and constants for reading from /dev/js
 */

#define JS_EVENT_BUTTON		0x01	/* button pressed/released */
#define JS_EVENT_AXIS		0x02	/* joystick moved */
#define JS_EVENT_INIT		0x80	/* initial state of device */

struct js_event {
	__u32 time;	/* event timestamp in milliseconds */
	__s16 value;	/* value */
	__u8 type;	/* event type */
	__u8 number;	/* axis/button number */
};

/*
 * IOCTL commands for joystick driver
 */

#define JSIOCGVERSION		_IOR('j', 0x01, __u32)				/* get driver version */

#define JSIOCGAXES		_IOR('j', 0x11, __u8)				/* get number of axes */
#define JSIOCGBUTTONS		_IOR('j', 0x12, __u8)				/* get number of buttons */
#define JSIOCGNAME(len)		_IOC(_IOC_READ, 'j', 0x13, len)			/* get identifier string */

#define JSIOCSCORR		_IOW('j', 0x21, struct js_corr)			/* set correction values */
#define JSIOCGCORR		_IOR('j', 0x22, struct js_corr)			/* get correction values */

#define JSIOCSAXMAP		_IOW('j', 0x31, __u8[ABS_MAX + 1])		/* set axis mapping */
#define JSIOCGAXMAP		_IOR('j', 0x32, __u8[ABS_MAX + 1])		/* get axis mapping */
#define JSIOCSBTNMAP		_IOW('j', 0x33, __u16[KEY_MAX - BTN_MISC + 1])	/* set button mapping */
#define JSIOCGBTNMAP		_IOR('j', 0x34, __u16[KEY_MAX - BTN_MISC + 1])	/* get button mapping */

/*
 * Types and constants for get/set correction
 */

#define JS_CORR_NONE		0x00	/* returns raw values */
#define JS_CORR_BROKEN		0x01	/* broken line */

struct js_corr {
	__s32 coef[8];
	__s16 prec;
	__u16 type;
};

/*
 * v0.x compatibility definitions
 */

#define JS_RETURN		sizeof(struct JS_DATA_TYPE)
#define JS_TRUE			1
#define JS_FALSE		0
#define JS_X_0			0x01
#define JS_Y_0			0x02
#define JS_X_1			0x04
#define JS_Y_1			0x08
#define JS_MAX			2

#define JS_DEF_TIMEOUT		0x1300
#define JS_DEF_CORR		0
#define JS_DEF_TIMELIMIT	10L

#define JS_SET_CAL		1
#define JS_GET_CAL		2
#define JS_SET_TIMEOUT		3
#define JS_GET_TIMEOUT		4
#define JS_SET_TIMELIMIT	5
#define JS_GET_TIMELIMIT	6
#define JS_GET_ALL		7
#define JS_SET_ALL		8

struct JS_DATA_TYPE {
	__s32 buttons;
	__s32 x;
	__s32 y;
};

struct JS_DATA_SAVE_TYPE_32 {
	__s32 JS_TIMEOUT;
	__s32 BUSY;
	__s32 JS_EXPIRETIME;
	__s32 JS_TIMELIMIT;
	struct JS_DATA_TYPE JS_SAVE;
	struct JS_DATA_TYPE JS_CORR;
};

struct JS_DATA_SAVE_TYPE_64 {
	__s32 JS_TIMEOUT;
	__s32 BUSY;
	__s64 JS_EXPIRETIME;
	__s64 JS_TIMELIMIT;
	struct JS_DATA_TYPE JS_SAVE;
	struct JS_DATA_TYPE JS_CORR;
};


#endif /* _LINUX_JOYSTICK_H */


실험적으로 소스를 짜서 해보니
버튼은 type 1
value는 0(눌리지 않음) 1(눌림)
number는 버튼 번호(1번 버튼은 0번 부터 시작)

X/Y/Z 축은 type 2
좌우는 number 0
앞뒤는 number 1
쓰로틀은 number 2
러더는 number 3 
햇좌우 number 5
햇앞뒤 number 6
 
값이 변하기 전에는 새로운 값은 읽히지 않는 듯 하고,
그런 이유로 예제 파일이 멀티쓰레드로 구성이 된 것으로 생각된다. 

'Linux API > joystick' 카테고리의 다른 글

linux force feedback  (0) 2022.06.15
리눅스에서 조이스틱 값 읽어오기  (0) 2012.02.04
Posted by 구차니
Programming/openCV2012. 2. 4. 22:32

$ cat opencv.c
/**
 * Display video from webcam and detect faces
 */
#include <stdio.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
CvHaarClassifierCascade *cascade;
CvMemStorage            *storage;
 
void detectFaces( IplImage *img );
 
int main( int argc, char** argv )
{
    CvCapture *capture;
    IplImage  *frame;
    int       key;
    char      *filename = "haarcascade_frontalface_alt.xml";
 
    /* load the classifier
       note that I put the file in the same directory with
       this code */
    cascade = ( CvHaarClassifierCascade* )cvLoad( filename, 0, 0, 0 );
 
    /* setup memory buffer; needed by the face detector */
    storage = cvCreateMemStorage( 0 );
 
    /* initialize camera */
    capture = cvCaptureFromCAM( 0 );
 
    /* always check */
    assert( cascade && storage && capture );
 
    /* create a window */
    cvNamedWindow( "video", 1 );
 
    while( key != 'q' ) {
        /* get a frame */
        frame = cvQueryFrame( capture );
 
        /* always check */
        if( !frame ) break;
 
        /* 'fix' frame */
//      cvFlip( frame, frame, -1 );
        frame->origin = 0;
 
        /* detect faces and display video */
        detectFaces( frame );
 
        /* quit if user press 'q' */
        key = cvWaitKey( 10 );
    }
 
    /* free memory */
    cvReleaseCapture( &capture );
    cvDestroyWindow( "video" );
    cvReleaseHaarClassifierCascade( &cascade );
    cvReleaseMemStorage( &storage );
 
    return 0;
}
 
void detectFaces( IplImage *img )
{
    int i;
 
    /* detect faces */
    CvSeq *faces = cvHaarDetectObjects(
            img,
            cascade,
            storage,
            1.1,
            3,
            0 /*CV_HAAR_DO_CANNY_PRUNNING*/,
            cvSize( 40, 40 ) );
 
    /* for each face found, draw a red box */
    for( i = 0 ; i < ( faces ? faces->total : 0 ) ; i++ ) {
        CvRect *r = ( CvRect* )cvGetSeqElem( faces, i );
        cvRectangle( img,
                     cvPoint( r->x, r->y ),
                     cvPoint( r->x + r->width, r->y + r->height ),
                     CV_RGB( 255, 0, 0 ), 1, 8, 0 );
    }
 
    /* display video */
    cvShowImage( "video", img );
} 

[링크 :  http://nashruddin.com/OpenCV_Face_Detection]
[링크 : http://opencv.willowgarage.com/wiki/FaceDetection]  

$ gcc opencv.c -o opencv -lcv -lhighgui
$ ./opencv  

인식이 좀 느려서 잘은 모르겠지만 뒤집히면 얼굴을 인식하진 못한다. 
(컴퓨터가 느려서 캡쳐하다가 밀림 ^^; 아무튼 인식하면 저렇게 빨간색 박스가 쳐진다.)
(화면색이 이런건 IR 카메라로 개조한 녀석이라.. OTL)

위에서 cvFlip() 함수를 주석처리 하면 상하 반전이 되지 않고 제대로 나온다.
[링크 : http://nashruddin.com/OpenCV_Examples_Part_2]


 

[링크 : http://www.mediafire.com/?01434w7wwe1db11] haarcascade_frontalface_alt.xml 파일
 

'Programming > openCV' 카테고리의 다른 글

Cmake로 openCV 컴파일 설정 및 설치하기  (0) 2012.02.12
ubuntu opencv 패키지 버전 정보  (0) 2012.02.12
우분투에서 openCV 설치하기  (0) 2012.02.04
openCV  (0) 2012.02.04
openCV OCR 예제  (0) 2011.07.17
Posted by 구차니
Programming/android2012. 2. 4. 21:36
eclipse에서 ADT plugin을 설치 하려는데 요런 에러가 발생 -_- 


Cannot complete the install because one or more required items could not be found.
  Software being installed: Android Traceview 16.0.1.v201112150204-238534 (com.android.ide.eclipse.traceview.feature.group 16.0.1.v201112150204-238534)
  Missing requirement: Android Traceview 16.0.1.v201112150204-238534 (com.android.ide.eclipse.traceview.feature.group 16.0.1.v201112150204-238534) requires 'org.eclipse.ui 3.6.2' but it could not be found 

 검색을 해보니 우분투에서는 갈릴레오 버전이고
현재 eclipse.org에서 받을수 있는 건 인디고 버전이다.
즉, 갈릴레오 버전이 낮아서 버전을 업해야지 가능하다는 이야기

[링크 : http://forjustin.egloos.com/1070695]
2010/08/25 - [Programming/android] - 좌충우돌 안드로이드 개발환경 설치하기 - 캡쳐하나 때문에 이 고생이라니! 
Posted by 구차니
Programming/openCV2012. 2. 4. 21:19
2012년 2월 에 포함된 녀석은 opencv 2.0 버전 같은데
별도로 opencvlibrary에서 받는게 나으려나?
[링크 : http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/]

$ apt-cache search opencv
libcv-dev - development files for libcv
libcv4 - computer vision library
libcvaux-dev - development files for libcvaux
libcvaux4 - computer vision extension library
libhighgui-dev - development files for libhighgui
libhighgui4 - computer vision GUI library
opencv-doc - OpenCV documentation and examples
python-opencv - Python bindings for the computer vision library
harpia - Image Processing/Computer Vision Automatic Prgm. Tool 


[링크 : http://jaehwacho.springnote.com/pages/5657783]

'Programming > openCV' 카테고리의 다른 글

Cmake로 openCV 컴파일 설정 및 설치하기  (0) 2012.02.12
ubuntu opencv 패키지 버전 정보  (0) 2012.02.12
우분투에서 openCV 카메라 영상받기 예제  (0) 2012.02.04
openCV  (0) 2012.02.04
openCV OCR 예제  (0) 2011.07.17
Posted by 구차니
Linux API/usb2012. 2. 4. 18:24
심심(?)해서 USB 조이스틱 2개를 연결해서 본 목록

$ cat /proc/bus/usb/devices 
$ cat /sys/kernel/debug/usb/devices
에는 토폴로지 별로 상세하게 출력되고 

lsusb를 통해서도 볼수는 있는데
$ lsusb -d 12bd:a02f -v 식으로 하나의 장치만을 자세히 볼수도 있다.
$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 005: ID 0583:206f Padix Co., Ltd (Rockfire) 
Bus 003 Device 004: ID 12bd:a02f  
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


$ tree -a /dev/bus
/dev/bus
`-- usb
    |-- 001
    |   `-- 001
    |-- 002
    |   `-- 001
    |-- 003
    |   |-- 001
    |   |-- 004
    |   `-- 005
    |-- 004
    |   `-- 001
    `-- 005
        `-- 001

6 directories, 7 files 


















 
$ tree -a /proc/bus
/proc/bus
|-- input
|   |-- devices
|   `-- handlers
|-- pccard
|   `-- drivers
`-- pci
    |-- 00
    |   |-- 00.0
    |   |-- 02.0
    |   |-- 02.1
    |   |-- 1b.0
    |   |-- 1c.0
    |   |-- 1c.2
    |   |-- 1d.0
    |   |-- 1d.1
    |   |-- 1d.2
    |   |-- 1d.3
    |   |-- 1d.7
    |   |-- 1e.0
    |   |-- 1f.0
    |   |-- 1f.1
    |   |-- 1f.2
    |   `-- 1f.3
    |-- 02
    |   `-- 00.0
    |-- 06
    |   |-- 00.0
    |   |-- 00.2
    |   |-- 00.3
    |   |-- 00.4
    |   `-- 02.0
    `-- devices

6 directories, 26 files 
$ tree -a /sys/kernel/debug/usb/
/sys/kernel/debug/usb/
|-- devices
`-- usbmon
    |-- 0s
    |-- 0u
    |-- 1s
    |-- 1t
    |-- 1u
    |-- 2s
    |-- 2t
    |-- 2u
    |-- 3s
    |-- 3t
    |-- 3u
    |-- 4s
    |-- 4t
    |-- 4u
    |-- 5s
    |-- 5t
    `-- 5u

1 directory, 18 files 












 

$ tree -a /dev/input
/dev/input
|-- by-id
|   |-- usb-0583_USB_2-axis_8-button_gamepad-event-joystick -> ../event10
|   |-- usb-0583_USB_2-axis_8-button_gamepad-joystick -> ../js1
|   |-- usb-12bd_5-Axis_12-Button_with_POV-event-joystick -> ../event6
|   `-- usb-12bd_5-Axis_12-Button_with_POV-joystick -> ../js0
|-- by-path
|   |-- pci-0000:00:1d.1-usb-0:1:1.0-event-joystick -> ../event6
|   |-- pci-0000:00:1d.1-usb-0:1:1.0-joystick -> ../js0
|   |-- pci-0000:00:1d.1-usb-0:2:1.0-event-joystick -> ../event10
|   |-- pci-0000:00:1d.1-usb-0:2:1.0-joystick -> ../js1
|   |-- platform-i8042-serio-0-event-kbd -> ../event5
|   |-- platform-i8042-serio-2-event-mouse -> ../event8
|   `-- platform-i8042-serio-2-mouse -> ../mouse1
|-- event0
|-- event1
|-- event10
|-- event2
|-- event3
|-- event4
|-- event5
|-- event6
|-- event7
|-- event8
|-- event9
|-- js0
|-- js1
|-- mice
|-- mouse0
`-- mouse1

2 directories, 27 files 

아무튼, 개략적으로 USB 연결시 확인해야 할 경로는 위에 녀석들 뿐이려나?

[링크 : http://docs.blackfin.uclinux.org/kernel/generated/usb/index.html] << USB API
[링크 : http://www.linux-usb.org/USB-guide/book1.html]
Posted by 구차니
Programming/openCV2012. 2. 4. 14:54
CV는 Computer Vision이라 하여 컴퓨터를 통해 영상인식을 하는 학문이고
openCV는 이녀석을 손쉽게 사용할 수 있도록 개발된 라이브러리의 모음이다.

심심해서 받아보니
OpenCV-2.3.1-win-superpack.exe 127MB 짜리가 압축을 풀어서 1.2GB 정도를 차지한다 -_-
많이 업그레이드 되어서 안드로이드 / mac / win / python / gpu 등을 지원한다.
아무튼 openCV / openCL 의 합작은 꽤나 고무적인 방향인데 언제 공부하나 ㅠ.ㅠ


[링크 : http://sourceforge.net/projects/opencvlibrary/ ] << library download
[링크 : http://opencv.willowgarage.com/wiki/ ] << openCV 공식
[링크 : http://letzrock.tistory.com/199 ]  
Posted by 구차니