2015년 11월 20일 금요일

[번역] 16x32 RGB LED 매트릭스의 기술적인 해설

Curtis@HobbyPCB.com에 의해서 작성됨

16x32 RGB LED 매트릭스의 블로그 연재물에서 첫 번째 사안은 디스플레이 모듈을 소개하고 어떻게 동작하는지 설명하는 것이다. 우리는 보드에 있는 모든 부품에 대해서 살펴 볼 것이고, 그곳에서 벌어지는 일들을 이해하기 쉽게 풀어 해쳐갈 것이다.

이런 설명을 위해서 우리는 3-in-1 Pixel들을 가지고 있는 16x32 P7.62 RGB LED 매트릭스를 사용할 것이다. 이게 모두 뭘 의미하느냐 하면, 16x32는 512개의 각각의 픽셀을 가지고 있는 16열과 32 행을 의미하고 P7.62는 피치가 7.62mm 혹은 픽셀 간의 거리가 7.62mm를 의미한다. 일반적인 실내 디스플레이는 P6이나 P7.62이다. 좀 더 작은 값을 갖으며, 여러분은 좀 더 실제 이미지에 가까운 디스플레이를 볼 수 있다. P6와 P7.62의 실내 디스플레이들은 3.5m 혹은 4m 정도의 시청 거리를 가지고 있다. 일반적인 실외 디스플레이들은 최소 시청 거리가 15-20m인 P16 혹은 P20이다. 3-in-1은 각 픽셀이 같은 패키지에 3개의 색상의 LED 모아놓은 것을 의미한다. (우리의 모듈은 3528 패키지이다.) 보드에 하나의 픽셀을 형성하는데 3개의 각각의 SMD LED (보통 0805)들이 같이 납땜된 3-in-3형태도 존재한다. 나는 아직 어떤 것도 테스트 해보지 못했지만, 다음에 반드시 해볼 것이다.

다음의 그림은 P6(위)와 P7.62(아래) LED 매트릭스를 보여준다. 여러분은 1.62mm가 크기에 얼마나 큰 차이를 어떻게 가져오는지 볼 수 있다.



 내가 아는한 크지 않은 320x240 디스플레이를 보여줄 수 있는 큰 Jumbo Tron 디스플레이를 상상해보자. 이 모듈을 가지고 150의 모듈이 8 inch x 6 inch 정도 크기를 만들 수 있다. 640X480 디스플레이는 이 크기의 두배가 되고 600개의 모듈이 소요된다.

자 충분히 상상 가능할 것이다. 나는 Arduino 나 EasyPIC6 (아마도 나중에) 같은 마이크로 개발 보드를 가지고 이들을 구동하기 위해서 어떻게 동작하는지 설명하고 싶다.

나의 돋보기를 가지고 되돌아 보면, 나는 다음 칩들을 손꼽을 수 있다.

74HC245D - Bus Tranciever (Non-Inverting)
CYT62726B - Constant Current LED Driver
APM4953 - Dual P-Channel Mosfet
74HC138 - 3to8 Line Decoder (ABC)
74HC04D - HEX Inverter

나는 이 칩들은 개개별로 다음 그림에서 찾아 볼 수 있다.




이제, 이들 각각의 무엇을 하고 있는지 보자. 나는 이 설명서를 세 개의 섹션으로 구분해 놓을 것이고 모듈의 enable, rows, 그리고 columns을 분리해서 이야기 할 것이다.

커넥터에 가장 가까운 칩은 Non-Inverting Bus Transceiver 인 74HC245D (빨간색)이다. 이것이 뭐냐하면, 이 경우에는 74HC245D는 parallel bus Transceiver로 동작해서, 왼쪽 핀으로 전송된 데이터를 오른쪽 핀으로 전달되도록 한다. 때때로 bus transceiver는 신호 분리 요구를 맞추어줄 뿐 아니라 bus상의 신호를 배가시키는데 사용되곤 한다. 이 경우에 나는 그져 신호를 배가하는데 사용되고 회로에 다른 곳으로 신호를 분배 시켜주는데 사용되고 있다고 생각한다.

이 모듈의 하나의 중요한 기능이고 전혀 동작하지 않는 것처럼 모듈을 만드는 것은 Output Enable (OE)이다. 여러분은 커넥터의 왼쪽 모퉁이 바닥에서 이것을 찾을 수 있다. OE는 모듈이 어떤 것을 디스플레이하기 위해서 LOW 레벨을 유지해야 한다. 기본적으로 여러분이 OE을 변경할때, 신호가 A6/B6에 있는 74HC245를 통해서 전달되고 enable 기능을 가지고 있는 74HC138의 핀 4번과 5번 (G2A/G2B)에 연결된다. G2가 high를 띄게 될때, 74HC138의 모든 출력을 끄게 된다. 이것은  활성화된 열이 없다는 것을 의미한다.

row로 관점을 바꿔보자. 이 장치의 row들은 LED의 anode (양 극)들을 선택한다. 우리는 이 모듈을 구매한 공급자로 부터 이것이 8:1 scan 모듈이라는 것을 알았다. 이것은 여러분이 영상을 출력하기 위해서 8 rows를 단위로 스캔해야 한다는 것을 의미한다. 그러나 살펴보면 모듈은 16개의 row들로 되어 있다. 우리는 2개의 row를 동시에 불 밝혀야 한다고 예상할 수 있을 것이다. 커넥터 부분을 좀 더 살펴보자. A, B, 그리고 C로 표시된 3개의 핀들을 보자. 이것들이 뭘 하는 것인지 구글 검색을 해보면 row 스캐닝을 위한 제어 핀이라는 것을 알려 준다. 이 3개의 핀들은 3to8 디코더인 74HC138을 제어한다. 의미인 즉슨 효과적으로 3개 입력이 8개의 출력 중 하나는 선택하는 것이다. 여러분이 3 비트 바이너리 조합을 전송할때, 그에 알맞은 라인이 활성화 된다. 그래서 '000'는 0번째 row를 불 밝히고 '100'은 4번째 row를 불 밝히고, '111'는 7번째 row를 불 밝히게된다. 그래서 총 8개의 조합이 가능하다. 좀 더 살펴보면, 우리는 APM4953 Dual P-Channel Mosfet을 볼 수 있다. 이것은 순차적으로 LED에 전류를 공급하도록 74HC138에 의해서 제어된다.

마지막으로, 우리는 실제의 데이터인 Column에 대해서 이야기 할 필요가 있다. row는 그져 안보이게 하나하나씩 선택되고 다시 계속 반복된다. 하나의 row에 있는 각각의 픽셀에 해당하는 column은 데이터를 수행하는 것이다. 각 row는 각각 3개의 색상을 가지고 있는 32 픽셀들로 구성된다. 우리는 두 개의 row들을 동시에 불 밝힐 것이라는 것을 안다. 칩 리스트를 살펴보면, 우리는 CYT62726(녹색)이 있는 것을 볼 수 있다. 이건 또 뭐지. 이것은 16 비트 정전류 LED 드라이버이다. 이 드라이버는 LED의 cathode (음극) 에서 적절한 총 전류를 유지하도록 한다. 이 총 전류는 여러분이 선택한 LED의 지속성을 위해서 저항으로 조절 가능하다. 보드를 살펴보면, 우리는 보드의 각 코너에 3개의 칩을 볼 수 있다. (그림에서 여러분은 단지 왼쪽의 2개만 볼 수 있고 오른쪽은 사진의 앵글때문에 그렇지 못하다.) 이 칩들은 각각 16x8를 위한 (동시에 하나의 row에 해당하는) 색상을 표현한다. CYT62726B는 MBI5026과 TB62726과 호환되는 기능과 핀아웃을 가지고 있다. 여러분은 이런 다른 칩들을 이용하는 유사한 보드를 찾아 볼 수 있지만, 모두다 동일한 기능을 한다. 입력 커넥터에 있는 R1, R2, G1, G2, U1, U2 핀들은 각 색상에 대한 데이터 라인이다. (U는 파란색이다.) 1은 위쪽 반 rows들을 의미하고 2는 아랫쪽 반 rows들을 의미한다ㅏ. 윗쪽과 아랫쪽의 칩들을 각 모음은 수평적으로 32 비트의 라인을 형성하도록 중첩되어 있다. 나는 어떻게 클럭 데이터가 입력되는지를 좀 더 이야기 할 것이다. 나의 다음 블로그에서 이 프로토콜에 대해서 다룰 것이다.

[출처 : http://www.hobbypcb.com/blog/item/3-16x32-rgb-led-matrix-technical-details.html
cached at
https://web.archive.org/web/20121201205905/http://www.hobbypcb.com/blog/item/3-16x32-rgb-led-matrix-technical-details.html ]

[번역] 16 x 32 매트릭스 구동하기

나는 최종적으로 Adafruit에서 16 x 32 매트릭스 패널을 구매했다. - 가격이 비쌌지만, 아주 많은 LED들이 있었다. 가능한 한 빨리 시도해 보기 위해서, 나는 디지탈 파형 발생기 (DWG)에 전선으로 연결했다. JaySisson에 의해서 만들어진 다음의 타이밍도는 내가 16 x 32 의 영상을 생성하기 위해서 스크립트를 작성한 것이다. 여기에 매트릭스의 한 라인을 생성하는 (LED의 2번째 열에 해당하는) CLK (파란색), OE (핑크), 그리고 LAT (녹색) 신호들을 포착한 오실로스코프이다.

LED-Matrix-Scope-1Line

Flying lead connection

나는 DWG를 flying 리드 선으로 패널에 연결했고, 총 12개의 연결로 6개의 데이터 선, 3개의 어드레스선, 그리고 CLK, OE, LAT으로 구성된다.

다음의 것은 우리가 알고 있는 것이다.

LED Panel Blue

모두 같은 색을 띄는 색상들은 아주 단순하지만 VHDL 코드를 작성하기 전에 PWM을 조절하고 테스트하기에 훌룡하다. PWM 코드를 실행하고 설정하는 몇 개의 비디오가 있다. 나는 Favicons (16x 16 웹브라우져 아이콘)을 사용했다. 자 보시라.




다음 과정은 얼마나 빠른 클럭을 적용할 수 있는지이다.그리고 다른 조건 하에서 패널이 얼마나 많은 전력을 소비하는지를 측정하는 것이다.


[출처 : rhb.me/blog/2012/05/led-matrix-bringup+&cd=1&hl=ko&ct=clnk
cached at
 http://webcache.googleusercontent.com/search?q=cache:gUDee4-3LOAJ:rhb.me/blog/2012/05/led-matrix-bringup+&cd=1&hl=ko&ct=clnk ]

2015년 11월 19일 목요일

[번역] 옷 카피하기.

바느질은 배우기 매우 쉬운 것이지만, 패턴 만들기는 완벽히 배우는데 평생이 걸릴 수 도 있는 기술이다. 여러분이 초보자 이든 경험많은 숙련자이든, 초안에서 패턴을 만드는 것은 시간이 많이 걸리고 때때로 놀랄만한 노력이 필요하다. 초안에서 패턴을 만드는 데 수일을 소요하는 것 보다, 여러분이 이미 가지고 있는 옷들을 카피하여 시간과 노력을 절약하자.

이것은 니트나 스트래치 옷의 경우 맞춤 과정이 여유를 허용하고 여러분이 성공하는데 100%의 정확성을 필요로 하지 않기 때문에 특히나 쉬운 것이다. 나는 한 예로써 니트 스웨터를 자르고 꼬매는 데 사용하고 있다. 그러나, 옷이면 어는 것이나 카피 될 수 있다.

소개해 보자면 이러한 프로젝트를 위해 나는 속도감 있게 진행 있었고, 그래서 나중에 다시 사용할 수 있는 종이로 된 패턴을 실제로 만들지 않았다. 대신 최종 옷감에 직접 그리고 garment(가봉?)을 조립했다. 종이 패턴을 만들기에 앞서 소비되는 약간의 시간은 물론 내가 한 이 작업 후에 시간이 절약될지도 모른다. 그러나 이 작업은 가봉을 카피하는데 정밀한 작업인 snazzybot의 실제 great instructable의 (특히나 정밀한 사안인  짜인 옷을 카피할 경우 유용하다.)속성의 엉성한 버전으로 생각하기 바란다.

준비 됐으면 가보자 !

1 단계: 필요한 것들


- 카피에 알맞은 가봉. 정확한 가봉이 이어야만 하는 것은 아니다. 그져 여러분이 필요한 부분을 복사할 수 있으면 된다. 예를 들면 내가 카피하고 있는 스웨터는 가벼운 웃옷이지만, 나는 단지 상반 부분만 카피하고 있다.

- 여러분의 새로운 가봉을 위한 직물의 선택, 그리고 완성하는데 필요한 (지퍼나, 장식 등등의) 필요한 어떤 것들.

- 숙련자용 초크나 초크펜

- 바느질 기계/기본적인 바느질 보조품들

2 단계; 카피 시작하기


시작할 패턴 조각을 선택하고 따라 그리기를 시작하자. 나는 팔쪽부터 시작했다.

시작하면서, 나는 조심스럽게 옷감의 팔 부분을 눕혀 놓고 평평하고 주름이 없도록 만들었다.

[출처: http://www.instructables.com/id/Copy-Your-Clothes/?ALLSTEPS]

2015년 11월 13일 금요일

Kicad의 결과물을 3D 캐드 에서 편집할 수 있게 해주는 방법

Kicad가 다 좋은데 평소에 섭섭하게 생각했던 것이 3D 모델링 기능이다. 3D 부품을 추가하고 편집할 수 있는 유일한 방법은 Wing3D 뿐인데 이것이 문제가 많은 프로그램이다. 하지만, 아래의 링크에 가면 StepUp 스크립트를 통해서 Kicad에서 FreeCad가 편집할 수 있는 형태로 export하는 방법을 제공하고 있다. 조만간 써야할 일이 발생할 것같아 이렇게 기록해 둔다.

http://hackaday.com/2015/11/08/kicad-script-hack-for-better-mechanical-cad-export/

2015년 11월 6일 금요일

[번역] 뉴럴 네트워크를 위한 Memristor 만들기

뉴럴 네트워크를 위한 Memristor 만들기 by Brian Benchoff

[출처] http://hackaday.com/2015/11/03/building-memristors-for-neural-nets/



오늘날 사용 가능한 대부분의 전자 부품들은 몇 년전에 사용 가능했던 것들이 그져 개선된 형태이다. Microcontroller들은 점점 빨라지고, memory 들은 점점 커지고 sensor들은 점점 작아진다. 그러나 우리는 수년동안 혹은 수십년동안 조차 진짜로 기발한 부품을 보지 못해왔다. memristor보다 더 기발한 응용분야를 갖는 더 흥미로운 전자 부품은 없다. 그리고 지금 그들은 Knowm으로 부터 상업적으로 사용가능하다. 이 회사는 실리콘에 직접 machine learning을 직접하는  최첨단에 있다.

디지탈 회로의 모든 관점은 '1'과 '0'의 연속으로 이루어진 정보를 저장하는데 있다. Memristor들 또한 정보를 저장한다. 하지만, 완전히 아날로그 방식으로 수행한다. 각각의 Memristor는 흐르는 전류에 따라 자체 저항을 변경한다; 양의 전압을 저장하는 것은 저항을 낮추고 음의 전압을 저장하는 것은 장치를 다시 높은 저항 상태로 되돌아 가게 한다.

이 새로운 memristor는 Boise 주립대의 Dr. Kris Campbell에 의해서 수행된 연구에 기반한다. 이사람은 우리가 올해 초에 보았던 silver chalcogenide memristors에 책임이 있는 연구자와 같은 사람이다. 이러한 초기의 장치들과 같이 Knowm memristor는 silver chalcogenide 분자들을 이용해서 만들어 진다. memristor의 저항값을 낮추기 위해서 양전압이 silver 이온들을 금속 chalcogenide 층으로 당긴다. silver 이온들은 음전압에 의해 다시 밀려나게 될때까지 이 chalcogenide 층에 머물르게 된다. 이것이 memristor의 핵심 기능이 된다. 이를 통해서 얼마나 많은 전류를 흘려 보내냐를 기억할 수 있게 된다.

금속 chalcogenide memristor의 단면 [출처 : Knowm.org]

이 기술은 2008년에 HP에서 만든 첫 번째 memristor들 과는 다르고, Knowm으로 하여금 상대적으로 높은 수율을 갖는 실리콘에서 동작하는 memristor를 만들 수 있도록 하였다. Knowm은 현재 8개 중 2개가 QC 테스트에 실패하고 있는 tier 3 memristor 부품을 팔고 있다. 모든 8개의 memristor들이 동작하는 tier 1 파트는 $220달러에 팔고 있다. 

이러한 memristor를 위한 용도로써 Knowm은 그들이 Thermodynamic RAM 혹은 kT-RAM으로 부르는 것들에 이 기술을 이용하고 있다. 이것은 훨씬 더 많이 전통적인 아키텍쳐인 컴퓨터로 가능한 것보다 더 빠른 machine learning를 허용하는 작은 coprocessor이다. 이러한 kT-RAM은 node 사이를 연결하는 link들로써 작동하는 memristor들로 구성된 binary tree layout을 사용한다.

kT-RAM 프로세서는 실생활에서 machine learning 작업들을 수행하는데 있어서 더 좋게 혹은 더 많이 효율적이라고 멀지 않은 시기에 말할 수 있게 되면, machine learning 보조 프로세서는 80년대 AI 르네상스 시기동안 개발된 machine learning 반도체의 희미하지만 분명한 반영을 가지고 있다. 30십년전, 칩위에 구현된 neural net 들은 어떤 이가 이러한 neural net들이 데스크탑 PC에 훨씬 더 효율적으로 시뮬레이션 할 수 있었을 때까지 Boston 주변에 몇 몇의 회사들에 의해서 만들어 졌다. kT-RAM은 다소 새롭고 고도의 병렬구조이고, 새로운 전자 부품을 가지고 machine learning을 직접적으로 반도체 위에 직접할 필요성이 있다. 

[번역] 진동자의 진화

진동자의 진화 by Nava Whiteford


[출처] http://hackaday.com/2015/11/03/the-evolution-of-oscillations/

내가 사용하고 있는 랩탑은 아키하바라의 중고 물품통에서 50 달러에 구입한 것으로 2.53GHz에서 동작하는 CPU를 가지고있다.이건 초당 2조5억3천만번 전자들이 체계적으로 정확히 신호를 발생한다는 것을 의미한다. 인간의 관점에서 이것은 상상할 수 없는 것이다. 2백년전만해도 인류는 아직 전자적인 진동에 관한 지식이 전혀 없었다.

물론 명확한 자연적인 진동 소스는 물론 태양이 아마도 가장 분명할 것이다. 피타고리언의 시스템은 처음 지구의 자전이 태양의 일상적인 사이클을 유발한다고 생각하였습니다. 그들의 시스템은 우리가 알고 있는 사실보다 더 난해하고 복잡하고,  중앙의 불꽃 뒤에 보이지 않게 놓인 가상의 Counter-Earth를 포함한다. 그들의 이론에 내포된 오류와 관계없이, 중앙링크는 회전과 진동사이에 만들어 졌다.

그리고 회전 운동은 초기의 전기 진동기에 이용되었다. 오늘날 이와 유사하게 사용되는 발전기에서 부터 더 난해한 장치인 차단기같은 것들이 이에 해당한다. 1838년에 Charles Page에 의해서 개발된 차단기는 단순한 진동을 만들어내기 위해 주기적으로 차단하도록 전선을 수은 통에 담글 수 있도록 수평운동이나 회전 운동을 이용하였다.

산업적인 전자 발생기쪽으로 진보하면서 전류를 발전하는 것은 일반적이 되었다. 그러나 점점 더 고 주파수가 라디오 전송을 위해서 요구되었다. 첫 번째 전송기는 spark gaps이 사용되었다. 이 단순한 전송기는 두 선로 사이의 공간에 항복전압이 발생할때 까지 캐패시터를 충전하기 위해 DC 서플라이를 사용하였다. 그러고 나서 전기는 이 공간에 기체화된 분자로 이온화 된다. 이와같이 전류가 흐르도록 허용하면 빠르게 캐패시터를 충전한다. 다시 캐패시터가 충전되면 이와 같은 과정이 반복된다.



spark gaps이 노이즈를 발생하는 동영상에서 듣고 보듯이, 실제 싸인파 출력과는 거리가 멀다. 그래서, 더 효율적인 진동을 위해서, 공학자들은 다시 회전에 의존하였다.

Alexanderson 발전기는 수백 개의 슬롯들로 나뉘어진 곳에 바퀴를 사용한다. 이 바퀴는 두 개의 코일사이에 위치한다. 한 코일은 직류 전류가 가해져서 다른 곳에서 전류를 발생하는 자기장을 만들어 낸다. 슬롯화된 디스크는 주기적으로 이 영역을 가로지르며 유도전류를 생산한다. Alexanderson 발전기는 대부분 해군 용도에 맞게 15에서 30Khz의 주파수를 생산하도록 되어있었다. 놀랍게도 Alexanderson 발전기중 하나는 1996년까지 여전히 동작하였고 아직도 동작할 수 있는 상태에 있다.

An Alexanderson Alternator 

유사한 원리가 Hammond 오르간에 사용되었다. 여러분은 아마도 이 이름을 알지 못할 것이다. 그러나 이 초기의 전자적인 기기의 소리는 알아 차릴 수 있을 것입니다.



Hammond 오르간은 울림바퀴와 픽업들의 연속된 배열을 이용하였다. 픽업은 코일과 자석으로 구성된다. 울림을 발생하기 위해서 픽업은 표면에 주름을 가지고 있는 회전 바퀴쪽으로 밀려지게 된다. 이런것들은  Alexanderson 발전기의 슬롯들과 유사하고, 울림을 만들기 위해 자석과 코일 사이에 자기장을 효과적으로 생성한다.

증폭된 진동기


지금까지 우리는 순전히 전자기계적인 기술에만 의존하는 것을만 다루었다. 그러나, 능동형 기기의 요구 측면에서 증폭기 모든 현대의 진동기에서 핵심이다. 이러한 것들 중 가장 단순한 형태는 tank 회로를 형성하는 인덕터와 캐패시터를 사용한다. tank 회로에서 에너지가 인덕터와 캐패시터 사이를  왔다 갔다 한다. 증폭기가 없다면 손실이 발생하여 진동기가 곧 멈춰 버리게 된다. 그러나 Colpitts 진동기와 같이 증폭기를 사용함으로써 이과정은 무한정 동작하도록 유지 될 수 있다.

Tank 회로의 동작 (출처 : 위키피디아)


진동기의 안정성은 라디오 전송기 같이 많은 응용분야에서 중요하다. 더 좋은 진동기는 전송신호가 스펙트럼상에서 밀리거나 겹치는 문제 없이 서로 더 밀착된 상태로 변조되도록 해주어야 한다. 그래서, 더 좋고 안정적인 진동기에 대한 추구는 계속되었다. 결국 Crystal 진동기가 발견되었고, 생산되었따. 이것은 기념비적인 노력이었다.

Crystal 진동기의 생산


아래의 비디오는 Crystal 진동기의 생산에 대해서 1940년대에 사용된 일반적인 과정을 보여준다.


브라질에서 채굴된 자연 Quartz Crystal은 미국으로 배송되고 처리된다. 내가 세어본 봐로는 총 13개의 비 단순 가공/에칭 과정들과 (엄격한 품질 제어를 포함하는)16개의 측정단계인 것으로 파악되었다. 이러한 과정들의 일부분은 X-선 Crystalography와 유사한 기술을 사용하여 X-선 아래서 Crystal의 배치하는 것 같이 매우 발전되었다.

요즘의 Crystal 진동기 생산 과정은 더 발전되었다. 1970년대 이후로 Crystal 진동기는 Photolithographic 공정에서 제조된다. crystal을 좀 더 안정화히기 위해서 열소자(OCXO)를 사용해서 제어된 온도에서 crystal을 동작하거나 온도 보상(TCXO)같은 추가적인 기술들이 적용되어 왔다. 대부분의 응용분야에서 이것은 충분히 정확하다는 것이 증명되었다. 그러나 timenuts에 대해선 충분히 정확하지 않다.

timenut의 원자 사용

timenut를 위해 충분히 정확한 것은 없다. 많은 해커들이 그들이 할 수 있는 가장 정확한 타이밍 시스템을 만들려고 노력한다. 이것은 모두 물론 그들이 만들 수 있는 가장 정확한 진동기에 의존한다.

일반적인 timenut 입는 원자 손목시계

많은 timenut들이 측정하는데 원자시계에 의존한다. 원자시계들은 가장 잘 온도가 제어된 crystal 진동기 보다 더 정확한 크기의 차원을 가지고 있다.

Bill Hammack은 cesuim beam 진동기의 동작을 설명하는 훌룡한 비디오를 가지고 있다. 기본적인 과정은 아래의 사진에서 보여진다. 요점은 cesuim 기체가 두 개의 에너지 상태로 존재하고 자기장에서 분리될 수 있다는데 있다. 낮은 에너지의 원자는 crystal 진동기에서 결정된 주파수를 갖는 라디오파 소스에 노출된다. 정확히 9,192,631,770Hz의 주파수만이 낮은 에너지의 cesuim 원자를 높은 에너지의 형태로 바꿀 수 있다. 높은 에너지의 원자는 검출기로 향하게 되고, 이 출력은 진동기의 출력의 주파수가 어긋나고 cesium 원자들이 더 이상 검출기로 향하지 않으면, 출력은 정확한 값으로 내주게 되는 것 같이 crystal 진동기를 훈련시키는데 사용된다. 이와 같은 기본 물리적 상수가 원자 시계를 보정하는데 사용된다.

cesium 원자 시계의 기본적인 작동 원리

cesium 표준은 가장 정확한 진동자로 알려지는 동안, 또 다른 원자 시계인 Rubidium 진동자 또한 많은 timenuts에서 정확하고 상대적으로 저렴한 옵션을 제공한다. 이 진동자의 가격은 전화산업의 대량 생산 때문에 낮아져왔다. 이들은 GSM과 다른 이동 라디오 시스템에 핵심이고 지금은 eBay에서 구할 수 있다.

손안에 정확한 시간 조각을 가지고 timenuts 은 수많은 흥미로운 실험들을 수행해 왔다. 내 기억에 가장 흥미로왔던 것은 상대론적 효과들에 의한 시간 차이를 측정하는 것이다. 하나의 timenut을 가지고 원자시계로 채운 자동차를 가족을 태우고 주말동안 Rainier 산까지 올라가는 경우에는 도착하였을때 그가 여행에 가져간 시계와 집에 놓아둔 것 사이에 20n초의 차이를 측정할 수 있었다. 이러한 시간 감소 효과는 거의 정확히 상대성 이론에 의해서 예측된 대로이다. 아주 인상적으로 놀라운 가족의 외출이다!

아인슈타인이 1950에 특수 상대성 이론을 제안하였을 때 기초적인 crystal 진동기 조차 존재하지 않았다는 것을 생각하면 놀라운 것이다. 그때는 Spark gap과 Alexanderson 발전기들이 여전히 일상적으로 사용되어왔을 것이다. 나는 그가 언젠가 그의 이론의 과실이 주말 취미 프로젝트로 아이들과 함께하는 여행하는 누군가에 의해서 확인되어 질 수 있을 것이라고 상상할 수 있었다고 생각하지 않는다. 세계의 해커들이여 즐기시라.