레이블이 DIY인 게시물을 표시합니다. 모든 게시물 표시
레이블이 DIY인 게시물을 표시합니다. 모든 게시물 표시

2015년 11월 19일 목요일

[번역] 옷 카피하기.

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

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

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

준비 됐으면 가보자 !

1 단계: 필요한 것들


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

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

- 숙련자용 초크나 초크펜

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

2 단계; 카피 시작하기


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

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

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

2013년 12월 2일 월요일

아크릴 판으로 다시 제작한 노트북 스탠드

이전에 버리는 종이 박스로 노트북 스탠드를 제작하였다. 하지만 시간이 지남에 따라 모서리가 점점 찌져지기 시작했다. 그래서 같은 사이즈로 다시 아크릴 판넬로 제작 하였다.


다음은 각각의 부속에 대한 도면들이다.




노트북의 화면이 약간 더 기울어져야 할 듯하다. 우선은 귀찮기 때문에 임시 방편으로 사용하고 나중에 좀더 각도를 줄여서 갂어야 겠다.

쥐덧

같이 일하는 프랭크가 영어로 쥐덧을 설명하다  답답한나머지 머신샵에서 보여준 멋진설명입니다.

2013년 10월 4일 금요일

[추가중] 공돌이의 가내 수공업을 위한 준비

PCB Etching 도구

레이져 프린터 혹은 UV LED 조명, 투명 프린터 용지, 약간의 화학약품, 구멍뚤기위한 탁상용 핸드드릴.

탁상용 핸드 드릴 - 드레멀 사의 핸드드릴이 유용한 것 같다. 일부 몇몇 CNC 머신에 이 드레멀 사의 핸드 드릴을 회전자(spindle)로 사용하기 때문에 나중에 CNC 머신제작 하고자 할때 드레멀 드릴을 회전자로 그대로 사용할 수 있고(http://www.instructables.com/id/Building-a-drawer-slide-CNC-machine-for-under-200/, http://www.jcopro.net/2011/08/01/a-dremel-tool-mount-for-the-zen-toolworks-cnc-router/http://www.lirtex.com/robotics/diy-cnc-machine/) 그 부분을 플라스틱을 녹여 분사해 주는 것으로 바꾸면 충분히 3D 프린터로도 사용할 수 있다. 드레멀 사의 핸드 드릴은 너무나도 많기 때문에 좀 더 살펴봐야 하지만, 아래의 링크를 살펴보면 CNC 라우터의 회전자로 사용하기에 200시리즈는 소리도 너무 크고 스피드도 만족 스럽지 못하다고 4000시리즈를 사라고 추천해 준다. (http://www.jcopro.net/2011/12/02/what-is-the-best-dremel-tool-spindle-for-your-cnc-router/) 아무튼 나중을 위해서 드레멀사의 핸드 드릴을 구매해야 겠다.

UV LED 조명 - 아직 어느 파장으로 해야하는지 알지 못하겠다. 보통은 400nm를 사용하지만, 아직 많이 찾아 보질 못했다. 문제는 어느 정도의 광량이 필요하고 어느 정도의 전력이 요구 되냐 이지만, 회로구성은 MOSFET과 TR그리고 전류 감지용 와트 저항만 있으면 충분히 대용량의 LED도 작동 시킬 수 있기 때문에 크게 걱정되지 않는다. 아래의 사이트는 UV 대역을 투과 시키는 투명한 유리를 시용해서 만든 것 같다. 참고해 볼 만하다.

 http://www.instructables.com/id/DIY-Portable-UV-Exposure-Box-PCB-Making-Gadget/

PCB 에칭용 화학 용품들 -

3D 프린터

현 시점에서 $1000 ~ $2000달러의 금액이면 기본적이 환경을 갖출 수 있다. 소프트웨어는 STL 파일 형식만 지원하면 구동이 가능한것으로 보인다. 현 시점에서 3D 프린터에 대한 관심이 많아서 그런지 너무나도 많은 제품들이 존재 한다. 하지만 살펴본 바에 의하면 아래의 제품이 추가적으로 갖추어야 할 것들이 존재하지만(모터 드라이버, 스핀들, 3D 프린터 액서서리, 등등) 나중에 CNC로도 사용할 수 있고 3D 프린터로도 사용할 수 있고 실용성이 많은 것 같다.

http://www.zentoolworks.com/index.php?cPath=14

혹시 맘이 바뀔지도 모르니깐 다음의 사이트도 저장해 둔다. 대단히 많은 제품에 대해서 보기 쉽게 비교해 놓은 사이트다.

http://www.3ders.org/pricecompare/3dprinters/


납땜 도구

예전의 핫꾸 납땜기가 더 좋은데 지금 나오는 알록달록한 것은 가격도 비싸고 필요하지 않은 기능이 많다.

부품 상자

칩저항, 칩 캐패시터, 자주 사용하는 파워 레귤레이터, 범용 TR 혹은 MOSFET

칩저항 - 4.7KΩ, 10KΩ, 1KΩ, 220Ω, 240Ω, 2KΩ, 330Ω, 100KΩ, 10Ω
칩캐패시터 - 1uF, 47uF, 100uF, 470uF,
파워 레귤레이터 - LM317, LM2575
범용 TR 혹은 MOSFET - 2N3904, 2N3909, 2N222,

... 추가중.

2012년 12월 26일 수요일

[작업중] 블루투스 기계식 키보드 만들기

1. 서론

Bluetooth 기능이  필요하기 때문에 무엇보다도

HID 규격을 지원하는 Bluetooth 모듈의 선택이 우선되어야 한다.

회사에서는 어떨지 모르겠지만 개인이 구할 수 있는 것들은

그리 많은 것들이 보이지 않는다. 아래의 링크가 거의 유일한 것 같다.

https://www.sparkfun.com/products/10253

가격은 $15으로 착하지 못하다.

모듈이 SMD 방식으로 부착되어야 하기 때문에

우선은 $45나 하는 모듈로 구매해야한다.

https://www.sparkfun.com/products/10938

해볼까 말까?

Bluetooth 모듈 말고도 나머지 기계적인 부분과 하우징

그리고 Keyboard의 Matrix를 처리할 컨트롤러 같은 문제 들이 남는다.


2. 설계


2.1. 하우징 설계


이건 많은 키보드를 보고 설계를 하는 작업이 우선 되어야 겠다.

한번 제작하면 금액과 연결되는 부분이기 때문에

고급 스러운 알류미늄으로 제가하는 것 보다.

우선은 아크릴을 이용해서 제작해 보아야 겠다.

2.2. Keyboard Matrix 컨트롤러 


이것은 조금만 찾아 보면 수월하게 검색이 가능하다.

이미 USB 인터페이스로 제작해서 사용하고 있는 것들이 있다.

그 들 중 대부분은 AVR을 이용하고 있다.

가장 대표적인  것이 Aikon Keyboard 컨트롤러다.
혹은 Open source keyboard controller 를 키워드로 해서 검색하면 많은 것을 찾을 수 있다.

하지만, Aikon Keyboard 컨트롤러는 otd 사이트에 가입하지 않으면 볼 수 없다.

그래서 AVR을 가지고 비슷한 작업을 수행한 다른 공개된 작업들을 찾아 보았다.


위의 두 프로젝트의 회로도를 살펴보면 USB 통신을 위한 전용칩이 없다.

물론, AVR 내부 블럭에도 USB 통신을 위한 모듈이 존재 하지 않는다.

소스코드를 살펴보면 알 수 있겠지만, 

Full speed 의 USB Stack을 소프트웨어로 구현하고 있다.

이 방식은 이미 AVR의 ISP 프로그래머인 USBtinyISP AVR Programmer를 제작할때

인식하지도 않고 사용해본 경험이 있다.

가끔 연결이 해제되는 경우가 있었지만, 대체적으로 잘 작동하였던 것으로 기억한다.

다음 사이트에 가면 소스 코드를 구할 수 있다.


이것은 예전에 TinyAVR 프로그래머에서 사용하였던 기억이 있다. 잘 동작하였던 것으로 기억된다. 

2.2.1. 소프트웨어로 구현된 USB 방식의 Keyboard 컨트롤러


그럼 V-USB의 사용법을 살펴보고 나머지 두 작업의 소스코드를 살펴보아야 겠다.

rump 소스코드는 대부분이 V-USB의 코드가 차지 하고 있고

나머지는 키코드를 처리하는 main.c와 ibm 키보드의 키맵 해더파일이 차지하고 있다.

V-USB는 usbdrv.c와  oddebug.c의 c 언어로된 소스코드와

usbdrvasm.S의 어셈블리 코드로 구성되어 있다. 

모든 동작의 주된 알고리즘은 main.c에 구현되어져 있다.

main.c에 USB HID 장치로 인식되기 위한 descriptor가 정의 되어 있다.

이와 같은 부분은 용도에 따라 나중에 변경 가능하다.

아마도, VID, PID 것은 바꾸어야 할 것이다. 기존의 드라이버와 충돌이 발생할 수 도 있으니.

/* USB report descriptor (length is defined in usbconfig.h)
   This has been changed to conform to the USB keyboard boot protocol */
char usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] PROGMEM = {
0x05, 0x01,            // USAGE_PAGE (Generic Desktop)
0x09, 0x06,            // USAGE (Keyboard)
0xa1, 0x01,            // COLLECTION (Application)
0x05, 0x07,            //   USAGE_PAGE (Keyboard)
0x19, 0xe0,            //   USAGE_MINIMUM (Keyboard LeftControl)
0x29, 0xe7,            //   USAGE_MAXIMUM (Keyboard Right GUI)
0x15, 0x00,            //   LOGICAL_MINIMUM (0)
0x25, 0x01,            //   LOGICAL_MAXIMUM (1)
0x75, 0x01,            //   REPORT_SIZE (1)
0x95, 0x08,            //   REPORT_COUNT (8)
0x81, 0x02,            //   INPUT (Data,Var,Abs)
0x95, 0x01,            //   REPORT_COUNT (1)
0x75, 0x08,            //   REPORT_SIZE (8)
0x81, 0x03,            //   INPUT (Cnst,Var,Abs)
0x95, 0x05,            //   REPORT_COUNT (5)
0x75, 0x01,            //   REPORT_SIZE (1)
0x05, 0x08,            //   USAGE_PAGE (LEDs)
0x19, 0x01,            //   USAGE_MINIMUM (Num Lock)
0x29, 0x05,            //   USAGE_MAXIMUM (Kana)
0x91, 0x02,            //   OUTPUT (Data,Var,Abs)
0x95, 0x01,            //   REPORT_COUNT (1)
0x75, 0x03,            //   REPORT_SIZE (3)
0x91, 0x03,            //   OUTPUT (Cnst,Var,Abs)
0x95, 0x06,            //   REPORT_COUNT (6)
0x75, 0x08,            //   REPORT_SIZE (8)
0x15, 0x00,            //   LOGICAL_MINIMUM (0)
0x25, 0x65,            //   LOGICAL_MAXIMUM (101)
0x05, 0x07,            //   USAGE_PAGE (Keyboard)
0x19, 0x00,            //   USAGE_MINIMUM (Reserved (no event indicated))
0x29, 0x65,            //   USAGE_MAXIMUM (Keyboard Application)
0x81, 0x00,            //   INPUT (Data,Ary,Abs)
0xc0                   // END_COLLECTION
};

하드웨어 구성은 간단하기 때문에

포트를 설정하고 데이터를 감시하는 기능을 위주로 살펴 보도록 하자.

int main(void) {
uchar updateNeeded = 0;
uchar idleCounter = 0;
memset(reportCache, 0, sizeof(reportCache));
wdt_enable(WDTO_2S); /* Enable watchdog timer 2s */
hardwareInit(); /* Initialize hardware (I/O) */
odDebugInit();
usbInit(); /* Initialize USB stack processing */
sei(); /* Enable global interrupts */
/* Main loop */
for (;;) {
/* Reset the watchdog */
wdt_reset();
/* Poll the USB stack */
usbPoll();
/* Scan the keyboard for changes */
updateNeeded |= scankeys();
/* Check timer if we need periodic reports */
if (TIFR & (1 << TOV0)) {
/* Reset flag */
TIFR = 1 << TOV0;
/* Do we need periodic reports? */
if (idleRate != 0) {
if (idleCounter > 4) {
/* Yes, but not yet */
/* 22 ms in units of 4 ms */
idleCounter -= 5;
} else {
/* Yes, it is time now */
updateNeeded = 1;
idleCounter = idleRate;
}
}
}
/* If an update is needed, send the report */
if(updateNeeded && usbInterruptIsReady()) {
updateNeeded = 0;
usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
}
}
return 0;
}
위의 코드의 초기화 과정을 간단히 시간 순서대로 풀어 써보면 다음과 같다.

  1. 캐시 변수 초기화
  2. 왓치도그 타이머 초기화(비정상적인 상황 발생시 강제적인 하드웨어 리셋을 하기위한 기능으로 추정됨)
  3. 하드웨어 초기화 (키보드의 메트릭스를 구성하는 Row와 Column입력을 감시하기위한 입력 포트 설정과 Keyboard의 상태 LED를 표시하기위한 출력 포트 설정을 할 것으로 추정됨)
  4. 그리고 나머지 디버깅을 위한 도구 초기화와 V-USB의 초기화, 마지막으로 모든 가능한 인터럽트처리를 위한 전역 인터럽트를 사용 가능하도록 설정하여 모든 준비를 마친다.
  5. 그리고 메인 루프의 처리과정은 다음과 같이 풀어 쓸 수 있다.
    1. 왓치도그 타이머 리셋(강제적인 리셋이 안되도록 주기적으로 타이머를 갱신 시켜줌)
    2. 소프트웨어 USB 스텍 처리
    3. Keyboard의 값 처리 (이 부분이 무엇보다도 중요한 부분이 되겠다.)
    4. 일정 시간 주기로 어떠한 작업을 하기 위한 타이머 처리 루틴.
    5. 그리고 일정 시간이 되고 USB의 인터럽트 전송의 처리가 가능한 상태이면 USB의 인터럽트 전송을 이용하여 reportBuffer값들을 호스트 컴퓨터에 전송한다. 다른 말로 키보드 값을 전송한다.
  6. 대부분의 것들은 명확해 졌지만 가장 중요한 함수인 Keyboard의 Matrix 구조에서 입력되는 값을 처리하는 루틴인 scankeys()은 아직 미지의 영역이다. 이 부분에 대해서 좀더 자세히 살펴보도록 하자.
  7. scankeys()함수를 알아보기 이전에 Keyboard의 matrix 구조가 어떻게 이루어 지는지 그리고 Mechanical Keyboard의 배선과 고려해야 할 사항은 없는지 기존의 자작 Mechanical Keyboard를 중심으로 제작 과정을 살펴보아야 한다.

2.2.2. USB 기능이 내장된 AVR을 이용한 Keyboard 컨트롤러







Keyboard 컨트롤러의 초기화시 USB 접속이 이루어 졌는지 아닌지를 판단하거나

Bluetooth를 통해 호스트 컴퓨터와 접속이 가능한지에 대한 

선택이 앞으로 추가해야할 작업으로 판단되어 진다.

우선은 USB 연결과 Bluetooth 연결이 모두 가능하도록 하는 것이 목적이지만,

 AVR의 성능에 따라서 여러가지의 선택사항을 고려해야 한다.
      • USB의 접속이 이루어 졌는지 판단하는 루틴
      • Bluetooth 접속이 가능하지 판단하는 루틴
      • 이것도 저것도 아니면 대기하는 루틴
      • 혹은 물리적인 스위치로 USB 연결과 Bluetooth 연결을 선택하도록 하는 루틴
      • 아니면 USB 전송과 Bluetooth 전송을 동시에 가능하도록 해야할 지 판단하는 루틴
    • 그리고 VUSB를 사용하기 위해서 메인 클럭에 제한이 있다. 12Mhz, 12.8Mhz, 15Mhz, 16Mhz, 16.5Mhz, 18Mhz, 20Mhz등이다. 우선 CPU로 사용하려고 하는 ATmega16을 16Mhz로 동작하도록 해야 겠다. 그럼 5V로 동작해야 한다.
    • Bluetooth로 동작할 경우 Battery를 전원으로 사용해야 하기 때문에 lithum-Ion 혹은 Lithum-Polymer Battery의 3.7V를 5V로 Step Up 해주는 레귤레이터의 사용이 불가피하다. 그리고 전원 효율을 생각하면 무조건 Switching 방식으로 가야하고 그와 더불어 USB포트로 연결되었을때 3.7V Battery를 충전하는 IC도 추가적으로 사용해야 할 것 같다.
    • 결과적으로 전원부의 설계가 많이 복잡해 질것같다. 다행히 Arduino를 지원하는 Battery를 포함한 Shield들이 있으서 그것을 참고하면 많은 도움이 될 것 같다.
  • 우연히 얻게된 
  • 키보드 PCB 제작
    • 자작으로 단면 PCB 제작이 답인 것 같다.
    • 우선 단면 동판이 구입 가능한지 물론 A4용지 정도의 크기로 말이다. 그럼 우선 제작할 수 있는 키보드는 Tenkeyless만 가능 할 것 같다.
    • 하드웨어의 구성은 AVR 우선적으로 필요한 포트는 USB 접속을 위한 2개의 포트, Bluetooth 모듈과의 연결에 필요한 RS232 규격의 Tx, Rx포트, 나머지 Keyboard의 Matrix구조와 연결할 24개의 포트가 필요하다. 그러면 총 28개의 포트가 최소한 필요로 한다.

작업중..........................


2012년 6월 28일 목요일

간단한 노트북 스탠드 만들기

적당한 크기의 튼튼한 종이 박스를 구한다.



사용할 노트북을 대고 자를 위치를 표시한다.


 




위치대로 자른다. 




반대편도 마찬가지로 자르고 모서리 부분을 견고하게 하기 위해서 테이프로 마감 처리한다.





잘 잘라졌는지 올려 본다.








뭔가 좌우가 맞질 않으면 주춧돌 용도의 무언가를 언져서 테이프로 붙여 버린다.




이젠 자우가 잘 맞는다. 잘 된다. 



2011년 11월 20일 일요일

ASUS 1215T 여러가지 문제점들

전에는 touchpad 동작에 문제가 많아 분해하는 과정에서 유격이 발생하고 몇몇 힌지가 부러져 버렸다. 문제 해결은 touchpad의 금박에 접촉되는 두개의 패드만 제거 하면 되었다.
그리고 그 이후 데비안에서 xorg.conf를 변경하고 테스트 하던중 마우스가 혼자서 춤을 추길래 재부팅을 하였다. 화면이 나오질 않았다. 부팅과정은 외장 모니터를 연결해본 결과 정상적으로 동작하는 것을 확인 할 수 있었다. 우선 변경하였던 Xorg.conf를 원상 복구하고 외장 모니터를 연결해서 원상 복구 시켰다. 하지만, 노트북 lcd는 복구 불가능 한 것 같아 보였다. ASUS A/S에 갔다 첫날엔 부품 없다고 다음날 오라는 통보를 받았다. 다음날 갔다. 1시간 이상 걸린것 같다. 엔지니어 분도 미안했는지 LCD 연결 케이블 까지 같이 갈아 드리려다 보니 시간이 지체되었다고 하시며 교체한 케이블도 보여주었다. 우선은 잘 동작하는 것 같아 만족스럽게 가지고 왔다.

몇일 사용하던중 노트북 Lid "closed"가 동작하지 않는 것을 발견하였다. 뚜껑이 닫혀도 화면은 여전히 밝게 나오고 있었다. 우선은 ACPI의 동작을 의심해 보았다. 코딩으로 LID의 동작을 모니터링 해 보았다.


#include

void main(void)
{
char state[80];

FILE *fd;

while (1) {
fd = fopen("/proc/acpi/button/lid/LID/state", "r");
fgets(state, 80, fd);
printf("%s", state);
fclose(fd);
sleep(1);
}
}


위와 같이 코딩하고 다음과 같이 컴파일하고 실행 하였다.

# gcc test_lid.c

# ./a.out

그리고 뚜껑을 닫아 보았다. 여전히  "state: open"이라는 메시지만 나온다.
하드웨어 적인 문제로 의심을 확정하게 되었다. 우선 뚜껑 주변에 스위치를 찾아 보았다.
어디에도 뚜껑이 닫히는 것을 감지할만한 스위치는 없었다. 검색해 보니 LCD하단에 자석이 있어야 동작을 한단다. 

출처: http://www.insidemylaptop.com/images/Asus-Eee-PC-1201n-screen/replace-damaged-laptop-screen-11.jpg

위 그림의 노란색 화살표가 바로 뚜껑이 동작하게 해주는 자석이다. 뜯어 보니 자석인 사진의 위치보다 한참 위에 있었다. A/S기사의 실수 였다. 핀셋으로 위치를 내렸지만 볼트 머리때문에 사진의 위치까지는 내려가지 않았다. 하지만, 동작은 하였다. 그냥 덥었다. 하도 뜯었다 조립했다를 반복했더니 유격이 있다. 에휴,. 깨끗하게 쓰고 싶었는데 걸래가 되었다. 

2011년 7월 29일 금요일

5각형으로 만든 돔 (Geodesic dome)

조명 장치와 카메라를 여러대 달려고 구상중 아크릴판을 통짜로 가공하는 방식은 너무나도 번거롭고 모양의 변형이 많다.

그래서 구조적으로 견고하고 일정한 반경의 돔을 간단한 기초 작업으로 쉽게 만드는 방법을 찾던 중 pentagon(5각형)으로 암실 돔을 구성하면 어떨까? 하고 찾아 보았다. 외국에서는 과학 캠프나 실습차원에서 많이 하는 것 같다. 나도 예전에 서울 대공원에서 본 것 같은 기억이 있다. 가본지 너무 오래 되어서 아마도 거기 입장료가 좀 쎘었던거 같다.

아무튼 http://hilaroad.com/camp/projects/dome/domemath.html 에 가보면 원하는 직경의 Geodesic 돔을 구성할 수 있는 계산을 할 수 있게 해준다. 다음에는 이것을 번역해 보아야 겠다. 위와 같은 것을 레고 처럼 구성할 수 있다면 조명과 카메라를 자유 자재로 안정적인 위치에 고정 시킬 수 있을 거 같다.

Hila Science Camp

Dome Math

Geodesic Domes



돔을 만드는 사람들은 이러한 방식의 돔을 2V Icosa Alternate 라고 부른다.  icosahedron의 각 삼각형 표면안에 딱 맞는 4개의 삼각형에 의해서 만들어 진다. icosahedron란 뭔가? icosahedron는 고대 그리스인들에 의해서 만들어진 5개의 구조물(solids) 중의 하나이다. 이것이 그들 5개이다:



어떻게 이름 지어졌을까? 우측 맨 끝이 icosahedron이다. 이것은 20의 삼각형 면을 가지고 있다.
여러분이 정말로 정말로 알고 싶다면, 다음의 링크를 따라가서 어떻게 삼각형이 icosahedron의 각각의 삼각형에 맞아 떨어지는지 알아 볼 수 있다. - Icosahedron Domes Explained!

맨 위에서 보여주는 것과 같은 돔을 만들기 위해서, 여러분은 40개의 삼각형, 30개의 isosceles 삼각형, 그리고 10 equilateral 삼각형을 만들어야 한다.

돔을 디자인해 봅시다!

1단계:

여러분이 만들고자하는 돔의 직경을 결정하자. 우선 작은 30cm정도의 직경을 갖는 작은 모델을 만들어 보자.

2단계:

필요한 삼각형의 크기를 결정하자. 우리가 만들어야할 삼각형은 각면에 접착용 탭이 필요하다. 다음과 같이 생겼다:


10개의equilateral 삼각형은 각 면이 "A" 길이로 같다. "A"를 결정하기 위해서 "Chord Factor" 라고 불리는 숫자를 사용한다.
"A"를 위한 chord factor는 0.61803. "A"의 길이를 결정하기 위해서 여러분이 디자인한 돔의 반경에 이 chord factor를 곱하자. 반경은 직격의 1/2에 해당한다는 것을 잊지 말자. 지금 디자인하는 돔은 직경이 30cm이고 반경은 15cm이다.


A = 돔의 반경 x 0.61803
A = 15 cm x 0.61803
A = 9.27045 cm
A=9.27 cm

30 isosceles 삼각형은 한 면이 "A"이고, 두 면은 "B"이다. "A"값은 9.27cm으로 알려져 있고, "B"를 계산하기 위해서 우리는 다른 chord factor를 사용한다. "B"를 위한 chord factor는 0.54653이다.



B = 돔의 반경 x 0.54653
B = 15 cm x 0.54653
B = 8.19795 cm
B = 8.20 cm


3단계:

이 돔을 구성하기 위해서 "A"와 "B"값으로 구성된 삼각형 요소들을 만들어야 한다. 단단한 cardboard위에 30cm 직경의 원을 그리고 다음 링크의 내용을 따라하도록 하자. instructions for constructing the  50 cm dome.어떤 크기의 돔이라도 만들 수 있다. 그저 반경에 chord factor만 곱하면 된다. 그리고 나서 조립하는 순서만 따라하면 된다. 

이 페이지는  Hila Science Camp: http://hilaroad.com 에 의해서 만들어 졌습니다.



돔 조립하기


Geodesic dome들은 우아하고 정교한 구조물이다. 가벼운 무게와 강인함으로 인해서 재료를 아주 효율적으로 사용하도록 만든다. 북극과 같은 먼 지역에서 사용하기에 이상적인 구조다. 언젠가 달이나 covering(?) 도시에서 돔 구조물을 볼지도 모른다.


이 사이트는 종이로 geodesic dome을 만드는 과정을 차례차례로 제공한다. 그 내용은 다른 크기의 dome을 디자인할 수 있는 것도 포함한다.

이 프로젝트는 많은 지방과 주에서의 과학과 기술 교과 과정의 구조와 매커니즘 부분을 지원한다. 교과 과정의 목표는 geodesic dome이나 shell 구조물을 구축하는 것을 종종 포함한다. geodesic dome은 독특한 구조에서 생기는 응측력과 팽창력을 보여준다. 여러분은 다양한 재질로된 geodesic dome을 구축할 수 있다. 지금의 dome은 종이로 구축될 것이다. 다른 크기의 dome을 구축하기 위해선 여기서 제시된 디자인 개념을 사용하고 Bristol 보드나 골판지, plywood 심지어는 얼음과 같은 재료로도 도전해 보자!

6, 7 학년의 학생에 대해서 어떤 교사들은 활기차고 화려한 조작으로 변화 시켜서 이 같은 활동을 미술 시간과 결합하기도 한다.

이 프로젝트의 수학적인 부분은 8학년과 9학년의 응용 수학에 아주 적당하다. 응용 수학과 "구조와 매커니즘"에 대한 여러분의 주와 지방의 교과 과정 문서를 확인해보자.


Geodesic Dome 구축하기

Geodesic dome은 Buckminister Fuller에 의해서 대중화 되고 삼각형들의 구조적 접목이 dome이나 shell 구조물의 고유의 강도에 더해 졌다.


다음은 50cm의 직경을 갖는 geodesic dome의 구축하는데 필요한 지시사항들이다. 여러분이 다른 크기의 dome을 만들고자 한다면 다음 링크를 따라하자.  - DOME MATH

먼저 아래에 보여진 삼각형들의 정확한 그림을 생성해서 시작해보자. 여러분은 30개의 B-A-B 삼각형과 10개의 A-A-A 삼각형이 필요하다. 이 삼각형으로 만들어진 유닛들은 기본 구성 요소가 된다. 여러분은 이 삼각형들을 정확하기 만들어야 하기 때문에 제시된 수치들은 매우 중요하다. 콤파스와 자를 사용하자. A, B의 수치는 삼각형의 각 면의 길이가 되고 접착면을 위한 tab은 여분이 됨을 주의하자.




A-A-A 삼각혀은 equilateral 이라고 하고, B-A-B 삼각형은 isosceles라고 한다.



이것은 기하학에서 훌룡한 예제가 된다. 각 삼각형의 요소요소의 정확한 도면을 만들기 위해서 콤파스와 자, 연필로 작업하자.

각 삼각형의 도면을 그린 후 photo copy만으로 dome을 만드는데 충분하다. 어떤 종류의 종이도 적당하다.
두 가지 색상의 종이를 사용하자. 하나는 A-A-A 삼각형에, 다른 하나는 B-A-B 삼각형에 사용하자. 색상을 다르게 하는 것은 구축을 쉽게하고 여러분의 dome을 좀 더 극적이게 보이도록 만든다.

나는 이 삼각형들의 도면을 그리고 싶지 않다. 그져 dome을 만들고 싶다!
좋다. 이미 그려진 요소들을 위한 프린트 가능한 페이지에 대한 링크를 따라가라.


Link to template for A-A-A triangle: (PDF File)

Link to template for B-A-B triangle: (PDF File)




주의 사항: 프린트 한후 "A"와 "B"면이 정확한 길이로 프린트 되었는지 확인하라. 모든 프린트가 동일한 해상도 이지는 않다.

삼각형을 잘라내고 tab 라인을 조심스럽게 접자. 깔끔하게 접는 것이 무엇보다도 중요하다.
다섯개의 A-B-B삼각형을 조합해서 pentagon을 만들자. "B"면을 접착면을 활용해서 접착시키자. 접착용 풀은 이 프로젝트에 아주 적당하다.





pentagon의 외부 면이 삼각형의 "A" 면이 되도록하는 것을 명심하자.




완성된 pentagon은 위의 이미지와 같게 보여야 한다. 가운데가 쏫아 올라와야 한다. 다섯개의 pentagon을 더 만들자.

판지로 75cm 직경의 원은 만들어서 dome을 위한 바닥을 만들자. 
그리고 그 바닥의 중앙에 50cm 직경의 원은 그리자.

바닥의 중앙의 25cm의 원을 잘라내자. 이것은 dome의 안쪽을 접근할 수 있도록 해줄것이다.




중요: 원 주위에 chords의 나열을 조심스럽게 그리자. 각 chord의 길이는 "A"이다.

50cm dome을 위해서 A값은 15.45 cm 이다. 원 주위에 10개의 chord가 완벽하게 들어 맞도록 위치시키자.

이 라인들은 각 삼각형이 어디에 위치해야하는 지를 알려준다.


두개의 pentagon 사이에 하나의 A-A-A 삼각형을 붙여서 두개의 pentagon을 붙이자.
또 다른 삼각형은 다음과 같이 추가하자.

이 완성된 부분의 바닥 부분에 접착제를 붙이고, chords의 한 부분에 각 삼각형의 한 면을 위치시키자. 



계속해서 pentagon과 삼각형을 추가하고, 접착제로 이들은 고정시키자.



equilateral ( A - A - A ) 삼각형은 맨 꼭대기의 pentagon 사이사이에 붙이자.
  
매 꼭대기에 마지막 pentagon을 붙이자.




여러분의 dome은 완성되었다. dome에 관한 것을 더 배우고 싶다면 다음의 링크를 따라가자.  Dome Math. 

이 페이지는  Hila Science Camp: http://hilaroad.com 에 의해서 만들어 졌습니다.


그리고 좀 더 복잡하고 실제적인 내용은 다음 링크를 따라가 보자. 다른 내용도 유용한 것들이 많다. - http://www.byexample.com/articles/topics/geodesic_domes

2011년 7월 15일 금요일

FabFi - 무료, 공개된 오픈 소스 장거리 wireless ethernet 전송 시스템(Reflector + Router)

[출처] http://fabfi.fablab.af

FabLab의 공용으로 성장중인 시스템이다. 제목에서 보듯이 장거리 wireless ethernet 신호를 전송해 줄 목적으로 된 소스가 공개된 시스템이다. 서울에서는 필요없을 수도 있겠지만 wireless 네트워크가 미약한 지방의 경우 활용 용도가 분명히 있을 것이다. 그래도 reflector는 충분히 wireless 전파가 미약한 곳에서 RF 전파를 포집하는데 많은 도움이 될 수 있는 안테나 증폭기로 사용될 수 있을 듯 싶다. 찾아 보면 reflector의 도면 파일이 있다. 현재 케냐와 아프가니스탄 같은 기반시설이잘 갖추어 지지 않은 곳에서 구현되고 있다.

현제 wiki에서 제공하는 내용은 맨 처음으로 구성된 아프가니 스탄의 Jalalabad의 FabFi를 기반으로 설명하고 있다. 이 시스템은 uplink와 Open courseware 미러링을 제공하고 링크할 수 있는 거리는 3,880m이다.

FabFi의 안테나는 reflector와 router로 구성된다. reflector는 직접 개개인이 만들어야 하고, router는 수정된 기존 상품이다. reflector 디자인은 4인치에서 18인치까지로 범위가 다양한다. (plywood, signboard, 아크릴로 만든다.) radio frequency(RF)에 대한 반사 재료로 chicken wire(?),  스텐레스 짠 그물망, 그리고 강철로 된 윈도우 스크린를 사용한다. 특히 똑똑한 아프가니스탄 사람들은 오래된 USAID 쿠킹 오일 캔을 reflector로 사용하기 시작했다.

router는 쉽게 판매되는 가정용 wireless AP에 수정된 router-radio-antenna를 사용한다. 버전 3.0에서는 FabFi는 공식적으로 Linksys WRT54GL과 ASUS WL-520GU를 지원한다. 비록 다른 많은 router들도 그에 걸맞는 image를 생성하면 쉽게 사용할 수 도 있다. FabFi는 OpenWRTOpenWRT 8.09.2 (Kamikaze) firmware가 구동되는 상황에서 구동된다.


FabFi 기술 요약

개요
 
FabFi은 확장가능한 장거리 P2P 시스템이고 mesh hybrid-wireless broadband transmission 기반시설이다. 개념은 간단하다. 간단하고 지능적이고 서로 연결가능한 network가 불안정한 상황에서도 믿을 수 있는 network 환경을 만들어 낼 수 있다는 개념이다. FabFi는 low-cost 장치를 아주 먼거리에 대해서 직접적으로 통신할 수 있도록 하는 간단한 물리 개념과 아주 다양한 상황들에 적용할 수 있는 탄력적인 구성을 활용한다.

극한의 상황에 대해서 RF(Radio Frequency) 에너지를 방향 전환시킬 수 있는 wire mesh surface를 갖는 제작된 RF reflector위에 상용 wireless routers를 장착하여 사용한다. Reflector의 증폭율은 reflector의 크기와 사용된 재료에 의존한다. 그러나 현재의 디자인에서는 15dBi정도로 높게 측정되어진다.

A Single FabFi Link

FabFi 시스템에서 단일 wireless link는 wireless router가 장착된 두 대의 reflector로 구성된다. 이와 유사하게, 두 대의 router도 wired 연결로 link될 수 있다. 단일 router는  동시에 wireless 연결과 wired연결 둘 다로 link될 수도 있다. 이 시스템은 수많은 방법으로 구성된 개개의 link에 대한 구성도 가능하다. (매우 먼 거리나 작은 지역에 많은 사용자를 수용할수 있는 링크 같은 것들 말이다. 이 링크의 중요한 요소는 "meshing"이라는 것이다. mesh network는 구조화 되지 않는 ad-hoc같은 방식으로 하나 이상의 다른 근방의 디바이스에 접속할 수 있도록 허용하는 시스템이다. Mesh network는 소프트웨어가 network의 topology(구조)를 감지해서 실시간으로 자동적으로 데이터의 흐름을 결정하기 때문에 강인하고 단순하다. 전통적인 mesh network들은 단일 라디오와 wireless 만으로된 연결과 모든 방향을 커버할 수 있는 안테나에 의존하기 때문에 구조적으로 제한되어져 있다. 가능한 상황에 따라서 직접적인 wireless link나 유선 전송을 이용해서 Fabfi 시스템은 매우 큰 규모의 한곳에 고정되서 사용하는 mesh network를 구성할 수 있도록 최적화 되어 있다. 높은 데역폭의 좁은 영역의 uplink에 의존하지 않고 지역내에서 강인한 디지털 통신이 가능한 규모에서는 가격이 비싸고 많은 지역에서 사용 불가능하다. 좀 더 자세한 설명을 해주는 에니매이션을 확인해보자. (2MB의 용량으로 다소 시간이 걸릴수 있다.)
Meshing 101...
Reflector의 작동 방식


A FabFi Parabolic Reflector
FabFi의 reflector는 포물선의 준선에 수직한 전파가 포물선의 표면에 접촉할 때 이 전파들을 포물선의 초점에 모이게 하는 포물선 모양(Y=cX^2)의 구조를 사용한다.(이것에 대한 좀더 자세한 것은 Mathworld 를 보라...) RF 전파를 반사 시킬 수 있는 window screen, chicken wire같은 것을 3차원 의 포물선 모양을 이루는 frame에 붙이고 정확하게 계산된 추점에 wireless router를 붙인다. 그럼 전송 지점의 router에서 오는 RF 에너지가 수신부의 router에서 RF 에너지가 효율적으로 모아진다.

Reflector 만들기 


Cutting a Reflector From Acrylic
FabFi 시스템의 본질적인 부분은 지역특색에 따라 사용가능한 어떤 재료로도 구현할 수 있는 유연성이 있다는 것이다. 필요한 모든 것들은 2D 디자인 파일을 프린트하고 여러분이 찾을 수 있는 재료를 조각으로 만들 수 있는 능력이면 된다. 여러분이 Fab Lab을 가지고 있다면. 나무나 금속, 아크릴로 직접 reflector를 만들기 위해서 CNC 나무 제단기나 레이져 커터를 사용할 수 있다. 그러나 진흙으로 빚거나 돌을 깍거나 얼음 블럭을 끌로 파거나 해서 만들지 못할 이유는 없다. 2009년 1월에 초기 배치시 Jalalabad에서는 세 가지의 다른 reflector 디자인이 구현되었다: 큰 4인치의 나무로 된것과 2인치의 나무 버전 그리고 18인치의 아크릴 버전이 구현되었다. 반사면의 재질은 chicken wire와 스테인레스 강철로 짜여진 그물망과 window screen이 될 수 있다.
Three reflector Versions
다음으로 실제 현장에서 필요한 것들은 봉합된 방수가 가능한 뺏다 낄 수 있는 조립품의 수정된 reflector 디자인을 개발하는 것이다. 이 새로운 디자인 2010년 여름에 개시 되었다.
Reflector with integrated weatherproofing
그러나 멀리 볼 것도 없이 network 사용자들은 이미 지역적으로 구할 수 있는 고철 더미로 만든 reflector를 디자인하고 만들고 있다. 아직 중요한 부분에 정교한 장업이 필요하지만, 이 reflector들은 기술적인 면에서 지역 인력이 자체적으로 개발되는 기술이 전파되고 있다는 분명한 신호이다. 이것들은 모두 $3달러 이하의 가격이다.!
Reflector with integrated weatherproofing
Router와 FabFi 펌웨어는 OpenWRT라 불리는 open source 3rd party 펌웨어를 사용한다. OpenWRT는  리눅스 기반의 유연성을 장점으로 가지고 있어 FabFi 장치들은 다양한 범위의 모니터링과 자가 진단 도구들을 운용할 수 있다. 현재의 시스템은 실시간 network 모니터링과 local web을 저장해 집중된 접근을 제어하는 기능과 사용자 관리, 요금 부과를 위한 사용량 추적을 지원한다. 이 모든 것들은 $50에서 $100 달러의 장치에서 구현된다. 자동 구성 기능은 FabFi 1.0이 발표된 이후로 지속적으로 개선되어 왔다. 지금은 다중 fabfi상에서 다중 router를 지원하고 있다. 그리고 802.11n의 속도로 network를 구성할 수 있는 능력이 있다. 개발 부서에서 사용하는 전원인 안정적인 전원은 계속적인 도전거리다. 편리하게도 지금 지원하는 모든 장치들은 12VDC에서 동작하고 자동차나 작은 엔진 베터리에서 직접 전원으로 사용 될 수 있다. 자동차 배터리와 두 대의 비싸지 않은 충전기는 Jalalbad network에서 두 개의 큰 distribution  허브에서 작동하는 믿을 만한 UPS 장치로 작동한다. 도시의 전원없이 거의 이틀동안 router 를 동작시킬수 있는 전원이다. 케냐에서 주 전원과 태양열 전원을 모두 지원하는 network에 어느 node에나 부착할 수 있고 방수 기능이 있는 UPS를 지원하는 "node in a box"를 고안했다. 다음 개발 버전은 router에 연결된 일반 UPS나 제작된 UPS에 장착하는 100-240VAC switching power를 이용해서 설치할 수 있도록 하는 bare-bone 타입의 12V-12V UPS가 될 것이다. 바람이나 다른 그 지역에서 생산되는 전력으로 동작하는 충전회로들은 동시에 진행되는 FabLab의 프로젝트이다.


Fab Future는 미적인 부분도 고려되었을 뿐만 아니라, Fabfi는 일상적으로 모래 폭퐁이 부는 여름의 Jalalabad에서 130F의기온인 혹독한 아프가니스탄 기후에서도 놀랄정도로 안정적인 것이 증명되어 왔다. 2010년도 초여름에 fabfi 시스템을 client 장치에 직접 wireless 접속하도록 제공하고 통신망 규모의 wifi ISP업체를 운영해 왔다. 2년 이상의 운영하는 동안 한편으로는 여전히 하드웨어적인 실폐가 발견되기도 한다. 앞으로의 가장 큰 과제는 uplink 대역폭 문제이다. 많은 나라들은 범용적인 접속 문제의 해결방안으로써 "mobile broadband"를 밀고 있지만, 대부분의 지역에서의 실제적인 현실은 mobile 장치들만으로는 어떤 보조없이 감당할만한 충분한 가격이나 충분한 효율을 제공하지 못한다. 케냐에서 fabfi는 mobile 연결이 사용자당 데이타 허용량이 감소해서 단지 접속의 도구로 전락한 상황에서 통신하는데 가치있는 서비스를 제공한다.

이것에 관한것이다 기타 다른 프로젝트의 진행 과정은 여기 FabFi Blog에서 살펴 볼 수 있다.

reflectror 만들기

http://fabfi.fablab.af/distribution.html에 가서 알맞은 크기의 디자인을 다운로드 받아서 나무를 자르고 조립한다. 원하면 페인트를 칠하거나 실링을 할 수 도 있다. 그리고 조립된 프레임에 철로된 그물망이나 스크린을 고정시킨다. 고정면이 구부러지거나 주름이 생기지 않도록 단단하게 해야한다.

 
라우터 구성하기


안테나 설치하기


reflector에 router를 고정시킨다. 비가 올 경우를 대비해서 router주변을 비닐 봉다리로 둘러 싸거나 방수가 되는 플라스틱 박스를 사용한다. router에 전원을 인가하고 LAN포트에 인터넷이 연결될 수 있는 ethernet 케이블을 연결시킨다. 다른 FabFi의 방향으로 안테나를 조절한다. 컴퓨터의 LAN포트에 연결해서 연결상태를 점검한다. 안테나를 끈을 이용해서 단단히 고정한다.

2011년 2월 26일 토요일

Hack cooling system of MSI U100

1. 준비물

* 방열판



* 동관


2. 방법

* 팬에 기름칠하기




* 동관 구부리기



* 동관 납땜으로 연결하기




* 동관 연결하기








3. 결과

* 연결된 모습

* 온도 변화 (조각모음과 인터넷 사용중)



4. 결론

 mcu와 브릿지를 덥고 있던 껍딱지를 제거하고 써멀 구리스와 방열판 작업만으로 40~50 도 사이의 최고온도를 보였으나 거기에 덧붙여 동관의 팬의 영향권에 들도록 추가작업을 해주면 평상시에는 20~30도 이고 최고온도는 30~40도 사이에 오게 된다.

 MSI에서 나온 아톰 플렛폼의 넷북은 모두 이러한 방식의 쿨링 시스템을 쓴다;(방열판은 전혀 없고 스텐으로 되어 있는 방열판 비스무리한 것은 열 전달이 의심스러운 껌딱지로 접촉되어 있으며 하나의 칩은 아예 신경쓰지 않았다.) 가장 효과적인 방식은 cpu와 브릿지칩의 모든 부분이 시스템팬의 접촉면에 연결된 방식이지만 구조상 불가능한 경우 위와 같은 방식으로 어느 정도 효과적인 온도 하락 효과를 기대할 수 있다. 이미 나온 MSI의 아톰 기반 넷북에 모두다 응용 가능할 것으로 기대한다. (무엇보다도 asus의 쿨링 시스템 정도의 신경을 MSI가 써주기 바란다.)

 앞으로 시스템 팬의 스댕 상판을 구리판으로 교체시켜서 구리 동관과 납땜으로 연결해 좀더 효과적으로 온도를 떨어뜨리도록 하고자 한다.