'본좌급 분류'에 해당되는 글 168건

  1. 2009.10.06 ipaq H3800 에서 Linux 깔기.
  2. 2009.10.06 IPAQ 에 리눅스를 깔아보자.
  3. 2009.09.25 우분투와 함께 시작 #1
  4. 2008.11.19 논문리뷰:SP를 파장 이하의 크기로 포커싱하거나 가이딩
  5. 2008.11.19 논문 리뷰 : 거친 표면으로 발생한 SP 국부환의 직접적인 관찰
  6. 2008.10.02 FDTD 잠시 맛보기로 보세요 1
  7. 2008.10.02 시뮬레이션의 준비 과정
  8. 2008.10.02 FDTD로 전자장을 시뮬레이션 해보자.
  9. 2008.09.24 피에조 스테이지의 대안 튜브 스캐너 1
  10. 2008.09.21 디락의 양자 역학

ipaq H3800 에서 Linux 깔기.

이 글은
http://www.handhelds.org/projects/h3800.html

을 대충 번역한 글입니다.

3800 위에 리눅스를 까는 것은 이전의 버전과 동일하다. 그러나 최신 부트로더를 사용하거나 task-bootstrap-2.4.18-*.jffs2 나 더 최신의 것을 까는 것이 가장 좋다.

다운 받기 : bootldr and 2.4.18.

IPAQ 에 리눅스를 깔아보자.

먼저 이 글은

http://www.handhelds.org/handhelds-faq/getting-started.html


를 대충 번역했음을 알립니다.

#. 시작에 앞서..

이번 장에선 IPAQ 위에서 리눅스가 어떻게 돌아가는지 개괄적으로 기술한다.
또한 어떤 장치들이 필요한지 기술한다.

그리고, 포켓PC 와의 듀얼 부팅을 포함하여, 리눅스를 ipaq 에 올릴 수 있는 여러 방법을 소개한다.

#. IPAQ 에서의 리눅스 설정

1. 일반적인 인스톨
일단 리눅스 인스톨과 함께 플래쉬 롬에 있는 포켓 피씨를 대체할 수 있다.
-- 생략

2. 콤팩트 플래쉬를 이용한 인스톨
액티브 싱크나 네트워크를 이용하여 linux.zip 을 CF 카드에 복사한다.
linux.zip 의 압축을 푼다.
부트 로더를 인스톨 하기 위하여 CF 에서 BootBlaster 를 실행시킨다.
조이패드의 중심을 누른채 리셋 버튼을 누른다.
부트로더의 스플래쉬 화면이 지시하는 바에 따라, vfat에서 부터 리눅스를 부팅시키기 위해선 Q 버튼(오른쪽에서 두번째 버튼)을 누른다.

3. 포켓 피씨와의 듀얼 부팅
-- 생략

#. 메모리와 파일 시스템

IPAQ과 부착된 디바이스 등 에 사용된 메모리의 타입과 파일 시스템에 따라 약간의 논란이 있다.
IPAQ 은 DRAM과 FLASH 메모리를 내장하고 있다. DRAM은 전원이 차단되면 내용이 지워진다. FLASH 는 전원이 꺼져도 내용이 지워지지 않는다.

Nor Flash, Nand Flash

플래쉬 메모리엔 Nand 형과 Nor 형이 있다. -- 중략 -- 플래쉬의 수명은 1만회 쓰기를 반복하면 다한다.

이러한 특성 때문에 플래쉬는 dram을 대신할 수 없다. -- 중략 --

IPKG, Feeds, Release, and Bootstraps.

handhelds.org 는 ipkg 라고 불리우는 패키지 포맷을 개발했다. ipkg는 rpm 패키지보다 작으며 debian 패키지와 비슷하다.  나는 어떻게 ipkg을 만드는지 어떻게 관리하는지에 대해서 ipkg 포맷과 다른 것들의 차이점에 대해 기술하겠다.

-- 중략--

ipkg 는 ipkg install 을 사용한다.

# ipkg install pyhon
...
# ipkg upgrade
...
# ipkg remove
...


#. 주의 사항
1. 부트로더와 리눅스를 인스톨하는 것인 포켓 피씨의 데이터와 어플리케이션을 손상시킬 수 있다.
2. ipaq 에 리눅스를 설치하는 것은 컴팩의 지원을 받지 못한다.
3. 리눅스를 설치하거나 포켓 피씨를 다시 설치하는 것은 ipaq 을 부팅 못하는 상태( 벽돌) 로 만들 수 있다. 컴팩 에서 이러한 상태를 되돌릴 수는 있으나 이것은 시일이 걸리며 번거롭다.

#. 시리얼 포트의 설정 및 터미털 에뮬레이터

ipaq 에 리눅스를 인스톨하거나 사용하는 동안,  부트로더의 커맨드 라인 인터페이스나 리눅스 시리얼 콘솔에 대한 터미널 에뮬레이터를 사용할 일이 있다.

시리얼 포트 보레이트 와 흐름 제어

부트로더와 handheld.org 리눅스 배포자는 보레이트를 115200 bps 로 설정한다.

하이퍼터미널

윈도우용 터미널 에뮬레이터다. 편리하다.

미니콤

미니콤은 리눅스에서의 터미널 에뮬레이터다. 하이퍼터미널보다 낫다.

#. XModem, YModem, ZModem 의 사용

세 모뎀은 시리얼 포트를 이용하여 데이타를 전송하는 세가지 방법이다. 이들은 ipaq 에서 데스크톱으로 데이타를 보내거나 받을 때 유용하다.

Zmodem 은 가장 유효하고 사용하기 쉽다. 그러나 부트로더에서 구현되지 않았다. 부트로더는 xmodem 과 ymodem 만을 지원하며 기본적으로 ymodem 을 사용한다.

xmodem 을 이용하여 ipaq 으로 데이터를 전송하는 법
 boot> load bootldr
  partition bootldr is a bootldr partition:
   requireing a bootldr or parrot image.
   After receving file, will automatically uncompress .gz images
  loading flash region bootldr
  using xmodem
  ready for xmodem download..
  ....

이 때 부트 로더는 PC로 부터 데이타를 기다리면서 도트(...) 를 프린트한다. 이제 터미널 에뮬레이터로부터 xmodem 을 시작하고 원하는 파일을 보낸다.

하이퍼 터미널을 이용하여 전송

하이퍼 터미널에서는 Trnasfer -> Send File 을 선택하면 파일 전송창을 활성화시킨다. 이 창을 이용하여 보낼 파일을 선택하고 xmodem 프로토콜을 선택하고 전송 단추를 누른다.

미니콤을 이용하여 전송

미니콤에서는 ctrl+A-z-s 를 누른다. xmodem 을 선택하고 보낼 파일의 이름을 선택한다.
부트로더가 여전히 도트를 출력한다면, Irzsz 패키지가 Linux PC 에 설치 되어 있는지 확인하라. 미니콤은 lrzsz 패키지 없이 인스톨 될 때도 있다.

Ymodem 을 이용하여 전송하기

boot > set ymodem 1


Zmodem 을 이용하여 전송하기

Z modem 은 Ipaq 에 리눅스가 깔린 경우엔 지원하나 부트로더에선 지원하지 않는다.


#. 부트 블라스터를 이용하여 부트로더를 인스톨하자.

--생략--

#. 부트로더에서 커맨드 라인을 얻자

boot > prompt

#. 부트로더의 이전 버전에서 업데이트

만약 너의 ipaq이 구번의 부트로더가 깔려있다면, 업데이트 하기를 추천한다.

boot > load bootldr

# 시리얼 포트를 이용하여 부트스트랩을 인스톨한다.

load root  를 치고 task-bootstrap.jffs2 를 xmodem 을 통해 보낸다.

boot > prompt
boot > load root
...


# CF 메모리나 하드 드라이브를 이용하여 부트스트랩을 인스톨한다.

-- 생략 --

#.  Task Complete






우분투와 함께 시작 #1

1. 시디 놓고 윈도우 처럼 설치. - 성공
-- 우분투 9.4 64bit version - okay

2. 문제 발생 ! - 한영 변환이 안됨 - 해결
- 시스템 -> 관리 -> 업데이트 관리자 -> 업데이트 (자동으로 된다)

- 터미널에서 명령 :
  $ sudo apt-get install nabi
  $ sudo im-switch -c
- 명령후 입력 후 뜨는 창에서 nabi 에 해당하는 번호 선택(4번이었음)

3. OS 시스템 언어 한글화 설치 - 해결
시스템 -> 관리 -> language -> 한글 선택

4. pdf 에서 한글이 보이지 않는 문제 - 해결
  sudo apt-get install poppler-data

5. 네트워크에서 윈도우에 설치된 프린터 가져오기 - 성공
시스템-> 관리 -> 인쇄
server -> new -> printer
네트워크 프린터 -> windows printer via SAMBA -> 찾아보기 단추
해당 워크그룹 발견 -> 해당 프린터 깔린 윈도우 발견 -> 프린터 발견
추가 -> 프린터 벤더 선택 -> 프린터 선택 -> 테스트 페이지 인쇄

6. 동영상 플레이어 설치
 sudo apt-get install mplayer mplayer-skin-blue
  vi ~/.mplayer/config 에서, 자막을 위해 다음 라인 추가
subcp=cp949
font=/usr/share/fonts/truetype/unfonts/UnDotum.ttf
unicode=1
subont-text-scale=3

7. 삼바를 설치해서 파일 공유
삼바 관련 패키지 설치
apt-get install samba smbfs

윈도우에서 우분투 공유 폴더로 접근
삼바 사용자 추가
sudo smbpasswd -a username
username은 시스템 사용자 이름으로 해야한다 그렇지 않으면 다음과 같은 오류가 난다
Failed to modify password entry for user username
비밀번호는 시스템 사용자 비밀번호와 다르게 설정 가능하다
폴더 생성
폴더에 커서를 두고 오른쪽 마우스 클릭
sharing options을 클릭
share this folder 체크
guest access에 체크하면 위에 설정한 사용자와 비번 체크 안하고 공유 폴더에 접근이 가능하다

8. root 설정
우분투에선 root 계정은 있으나 암호가 입력되어 있지 않다.
$ sudo passwd root




논문리뷰:SP를 파장 이하의 크기로 포커싱하거나 가이딩

장비 셋업

532nm 레이저  + 편광 + 하프 플레이트 + 0.5mm 이하로 포커싱
알루미늄 코팅된 파이버로 스캐닝
506nm 파장을 PMT 로 디텍팅

샘플
50nm 은/100nm 크롬 샘플에 지름이 5um 인 호를 그리며 200nm 짜리 구멍을 판다.
4um 정도 길이 250nm폭의 stripe로 가이딩


논문 리뷰 : 거친 표면으로 발생한 SP 국부환의 직접적인 관찰

장비 셋업

PSTM + uncoated fiber
HeNe Laser 633nm, 3mW  를 0.4mm 로 포커싱
SPP의 파장은 570nm 정도 - 디텍터로 PMT 를 사용
Gold film (80nm)
SPR 앵글 : 45도

결과

광신호의 세기는 10pW
파장보다 작은 구조물에서는 SPP가 발생하며,
파장보다 큰 구조물에서는 산란된다.

FDTD 잠시 맛보기로 보세요

S를 누르면 시뮬레이션을 시작합니다.

공간상에 점전하가 있을 때 전자장이 어떻게 전파하는 지 볼 수 있습니다.

바운더리에서 반사합니다. 오래 지켜보면 마치 프랙탈처럼 예쁜 무늬를 볼 수 있습니다.

사용자 삽입 이미지


다음을 누르시면 됩니다.


시뮬레이션의 준비 과정

먼저 시뮬레이션 코드를 짜기 위해서는 C,C++,Visual C 에 익숙해야 한다.

당연한 말이 아닐수는 없다.

또한 색상으로 장의 분포를 표기하기 위해서 HSI 표기에 익숙해야 한다.

상용 프로그램을 보라 촌스럽게 RGB 쓰는 경우 없다.

HSI 는 색상, 채도, 명도를 의미하며, 보통 색상과 채도를 고정시키고 명도만을 변화시키나,

채도와 명도를 고정시키고, 색상만을 변화시키는 방법이 주로 쓰인다.

하지만 윈도우에서 색상을 표시하기 위해서는 RGB 로 변환을 해야한다.

HSI -> RGB 코드는 인터넷에서 쉽게 찾을 수 있을 것이다.

프로그램의 초기 단계에서  HSI 의 색상에 따른 컬러 테이블을 만들자.

이 경우 녹색이 0 이 되며, 숫자가 커질수록 빨간색, 숫자가 작아질수록 파란색이 된다.


------------------------------------------------------------------------
 double I,S,H;
 double R,G,B;
 double domainOffset = 0.0;
 
 I = 0.9f;
 S = 1.0f;

 for(int i = 0; i < 512;i++) {
  H= (i*4.0)/511;

 if (I==0.0) {    // black image
  R = G = B = 0;

    } else {
  if (S==0.0) {
   // grayscale image
   R = G = B = I;
  } else {
   if (H<1.0) { // red domain; green acending
    domainOffset = H;
    R = I;
    B = I * (1.0-S);
    G = B + (I-B)*domainOffset;
   } else if (H<2.0) { // yellow domain; red acending
    domainOffset = H - 1.0;
    G = I;
    B = I * (1.0-S);
    R = G - (I-B)*domainOffset;
   } else if (H<3.0) { // green domain; blue descending
    domainOffset = H-2.0;
    G = I;
    R = I * (1.0-S);
    B = R + (I-R)*domainOffset;
   } else if (H<4.0) { // cyan domain, green acsending
    domainOffset = H - 3.0;
    B = I;
    R = I * (1.0-S);
    G = B - (I-R) * domainOffset;
   } else if (H<5.0) { // blue domain, red ascending
    domainOffset = H - 4.0;
    B = I;
    G = I * (1.0-S);
    R = G + (I-G) * domainOffset;
   } else {  // magenta domain, blue descending
    domainOffset = H - 5.0;
    R = I;
    G = I * (1.0-S);
    B = R - (I-G) * domainOffset;
   }
  }
 }
 color_table[i] = RGB((long)255*R,(long)255*G,(long)255*B);
 }
---------------------------------------------------------------------

본좌 또한 인터넷에 돌아다니는 코드를 고쳐서 사용했다.

수치를 대략 이정도로 하면 예쁜 컬러가 된다.

다들 예쁜 칼라를 직접 골라보시라

FDTD로 전자장을 시뮬레이션 해보자.

전자파가 다양한 매질에서 어떻게 전파될까?

복잡한 식을 보기 보다는 그림으로 본다면 이해도 빨라진다.

전자파가 공간으로 전파되는 것을 보기 위해서는 맥스웰 방정식을 풀어야 한다.

이러한 맥스웰 방정식을 컴퓨터를 이용해서 푸는 방법으로 여러가지가 있다.

FEM, FDTD, RCWA 등이 그러하다.

이 중에서 이번에 소개하는 알고리즘은 FDTD 이다.

아마 소개 정도에 그치지 않을까 싶다.

다만, 다음과 같은 프로그램을 짜보는 것이 목표가 되겠다.

시간의 흐름에 따라서 위 그림이 밑의 그림처럼 변한다.

사용자 삽입 이미지


사용자 삽입 이미지

피에조 스테이지의 대안 튜브 스캐너

SPM 의 발전은 아마도 나노 단위로 움직일 수 있는

피에조 스테이지의 활용에서부터가 아닌가 싶다.

가정에서;; 혹은 연구실 등지에서 SPM 등을 꾸미려 하는 이들에게 가장 큰 걸림돌 중 하나는

피에조 스테이지의 선택이 아닐까 싶다.

서브 나노 단위로 동작하기 위해서는 일반적인 광학기구 회사들에서 판매하는

예를 들어 Thorlabs라든가 Newport 등지에서 생산되는 피에조 스테이지는 부족하다.

이런 것들의 최소 해상도는 2.5nm 이기 때문에, 서브 나노 단위로 움직이기 위해서는

PI 와 같은 전문 브랜드의 선택이 필수적이다.

다만 PI 의 제품을 선택하는 순간, 수천만원의 예산이 필요하다는 거 ㄷㄷㄷㄷ

이를 깔끔하게 해결할 수 있는 방법으로 튜브 스캐너 라는 게 있다.

튜브 스캐너는 원통형의 작고 긴 관인데,

그 재질은 압전 세라믹이라는 것으로 되어 있다.

전극을 붙이는 방향에 따라 x,y,z 로 움직일 수 있으며,

기타 독특한 취향들을 위한 아크로바틱한 방향도 고안할 수 있을 것이다.

물론 수학을 잘해야겠지.

최소 해상도도 mV 단위의 전압을 낼 수 있는 DAC 카드 기준 서브 나노로 움직일 수 있으며

적절한 전압으로 원자 하나 하나를 구분할 수도 있다.

가격은 100만원 미만으로 구입할 수 있다.

수천만원에서 100만원 미만이라니.

1/100 로 예산이 줄게 되었다. 이제 DAC 나 ADC 카드에 좀 더 투자할 일이 남았다.

본좌는 NI 에서 나온 DAC 보급형 카드를 가지고 있는데 노이즈가 지글지글

아무리 컴퓨터와 연결되었다고 하더라도 이건 못봐줄 지경이다.

피에조 스테이지에서 절약한 돈을 이러한 곳에 투자하라.

어쨌든, 친절하게도 PI 에서 나온 카탈로그를 보면

이러한 튜브 스캐너의 사용법이 잘 나와 있다.

튜브 스캐너의 선택시 가장 중요한 것은 사이즈(사이즈로 traveling length 가 결정된다)

그리고 어떤 물질을 사용하냐 이다.

amath
각 물질마다 고유의 d_31 값을 가지게 되는데

이 값이 얼마나 움직일 것인지(del x) 결정짓는 팩터가 된다.

d_31 의 의미는 이렇게 씌여 있다.
endamath

strain coefficent(displacement normal to polarization directoin m/V)

물론 좋기만 한 디바이스는 없겠지.

Open-loop 제어를 할 수 밖에 없다.

스스로 스트레인 게이지 를 부착하면 모를까,

일단은 Open-loop 제어를 해야한다.

그게 무엇인지 모른다면 이전에 쓴 글들을 찾아보라.

그리고 더 큰 단점은

피에조 스택류에 비해서, 로드가 작다. 큰힘을 낼수도 없다.

그러므로 스캐너 위에 샘플을 올려놓기 보다는, 스캐너에 팁을 다는 방향으로 가야한다.

디락의 양자 역학


양자역학을 기술하는 방법 중 하나는 디락의 브라켓을 이용하는 것이다.

디락은 선형대수적인 방법을 사용하여 양자 역학을 기술한다.

글의 이해를 위해서는 양자 역학보다는  선형대수를 살짝이라도 알아야  한다.

좀 지루한 내용이 되겠다.

다음 기술된 내용은 사쿠라이가 쓴 Modern Quantumn Mechanics 를 참조하였다.

#. 브라켓의 발견

처음 우리가 해야할 일은 브라와 켓에 대해서 조금 알아야 한다.

알기 쉽게 설명하자면 브라는 행벡터를 의마하고 캣은 열벡터이다.

브라 벡터는 <a| 라고 표기 되며 캣벡터는 |a> 라고 표기된다.

a 는 백터의 이름을 나타내는 notation일 뿐이다.

1xN 의 행렬이 있을 때에 선형대수에 의하면 이 행렬은 N 개의 basis(기저) 로 이루

어져 있으며, 이 때 N차원이 된다.

양자역학에서 하나의 상태는 이러한 캣벡터로 나타낼 수 있으며

그 차원은 무한대가 된다

또한 이러한 무한대의 차원을 가진 백터가 성립하는 공간을

힐버트 공간이라고 부른다.

용어가 영어라서 어렵게 생각되는 것 뿐 이미 우리가 모두 알고 있는 개념이다.

#켓 공간

그렇다면 브라켓의 연산은 어떨까?

같은 차원의 행렬끼리는 더하거나 뺄 수 있는 것처럼,

브라는 브라끼리 더할 수 있으며, 켓은 켓끼리 더할 수 있다

|a> + |b> = |c>

행렬에 복소수를 곱하는 것처럼 브라켓에는 복소수를 곱할 수 있다.

또한 행렬처럼 앞이든 뒤든 어디에 붙던지 상관하지 않는다.

c x |a> = c|a> = |a>c

내부의 값이 모두 0인 켓을 영켓이라고 부른다.

#브라 공간

이제 브라 공간에 대해서 살펴본다.

브라 공간은 캣 공간에 대한 dual correspondence 를 의미한다.

대략 말해 브라 공간은 켓 공간의 거울상이라고 할 수 있다.

amath

c|a> 에 대해 브라 공간은  c^(**) <a| 가 된다.

# 내적

브라와 켓은 행과 열처럼 곱할 수 있으며,  이를 내적이라고 부르며,

그 결과는 행렬의 곱처럼 스칼라가 된다.

<a|b> = c (단 c는 복소수)

다만 그 DC(dual correspondence) 는 켤레 복소수가 된다

<b|a> = c^(**)

endamath

**내적의 물리적 의미는 a 상태 에서 b의 상태로 바뀔 확률을 의미한다. **

내적의 절대값의 제곱은 바로 그 확률이 된다.

같은 종류의 켓끼리의 내적은 실수가 되며 언제나 0 보다 크거나 같다

amath
<a|a> >= 0

켓에 브라를 곱하는 경우는 스칼라가 아닌 NxN의 행렬이 된다.

이런 경우 외적이라고 부른다.

|a> x <b|  = |a><b|
endamath

머릿속에 계속 행렬을 생각하라. (표기만 다를 뿐이다)

#고유켓

백터의 basis가 되는 켓들을 고유켓이라고 부른다.

따라서 어떠한 켓은 고유켓의 합으로 나타낼 수 있다.

amath

|a> = sum_(a ')  C_(a ') | a'>

endamath

(고유 캣이 물리에서 바로 고유 상태가 된다)

따라서 두개의 고유켓의 내적은 0 이된다. 이를 직교성(Orthogonality) 라고 부른다.

<a'|a''> = 0

# 연산자

켓의 상태를 변화시키는 것을 연산자라고 부르며,

연산자의 형태는 NxN 의 행렬이 될 것이다.

다만 함수에서는 미분 연산자등을 생각하라.

연산자의 곱은, 행렬에서의 곱처럼 교환법칙이 성립하지 않는다.

XY != YX

연산자와 켓의 곱은 다시 켓이 된다.

(NxN 행렬에 1xN행렬을 곱한 경우를 생각해보라.)

A (|a>) = A |a>

# Hermitian adjoint

연산자의 dual correspondence 를 Hermitian adjoint라고 한다 .

행렬에서 전치 행렬을 생각해보라.

amath

행렬에서의 A^T 처럼  A^+ 이라고 쓰고 대거라고 부른다.

원래 대거의 의미처럼 +대신 단검을 그려야 하는데 수식 편집기가 지원하지 않아서..

 X|a>     <- D.C. ->     <a|X^+

# Hermitian  연산자.

Hermitian adjoint 가 바로 자기 자신이 되는 것을 Hermitian 연산자라고 한다.


간단한 맛뵈기만 보았다. 좀 더 깊은 내용에 대해서는 설명할 기회가 있을 것이다.
prev 1 ··· 13 14 15 16 17 next