2013년 11월 25일 월요일

FreeCAD로 30mm Aluminum Profile의 3D 도면 그리기

 3D 프린터가 앞으로 많이 보급되게 됨에 따라 3D 캐드 프로그램이 새로이 관심을 받게 될 것으로 생각된다. 아무래도 돈 주고 사야하는 프로그램이 사용하기 편하고 기능도 다양하겠지만, 간단한 작업을 주로 하게될 대부분의 사람들에게 무료이면서 왠만한 기능은 다 가지고 있는 FreeCAD 프로그램은 대단히 유용하다.

 이 문서는 FreeCAD 프로그램을 가지고 3D의 30mm의 알류미늄 프로파일을 그리는 작업을 설명하고자 한다. 30mm 알루미늄 프로파일은 모두 동일한 단면을 가지고 있기 때문에, 단면에 대한 2D 도면을 그리고 그 도면을 z-축으로 확장(extrude) 하는 방법으로 생성하면 된다.

 먼저, 2D 도면을 가지고 있는 sketch에서 3D 물체를 그리기 위해서는 FreeCAD를 실행하고 View 메뉴의 Part Design모드를 선택한다.


그럼 다음과 같이 창과 메뉴 구성이 설정된다.


그리고 새로운 프로젝트를 생성하자.


Create sketch를 선택하여 새로운 스케치를 생성하자.


 Choose orientation 창에서 sketch가 XY-Plane을 갖도록 설정하고 OK를 선택하자. 그럼 다음과 같이 구성이 변경된다.


툴바를 활성화 시키기 위해선  Tree view에서 Sketch를 선택해야한다. 이제 실제로 30mm 알루미늄 프로파일의 단면이 어떻게 구성되어 있는지 살펴보아야 한다.

30mm 알루미늄 프로파일의 단면 도면.
출처 : http://www.valuframe.co.uk/Series-6-Aluminium-Profiles.html

위의 그림에서 보듯이 간단하지가 않다. 반복되는 문양의 네 개가 있는데 우선 좌측 아래 쪽을 먼저 그려나가 보도록 하자. 우선 'ㄴ'자 모양을 그리기 위해서 확장 툴바를 클릭하고 다중 직선 그리기 툴바를 선택하자.


그리고 아무 곳에 'ㄴ'자 문양의 도형을 그린다.


'ㄴ'자 의 수평 위치를 설정하기 위해서 'ㄴ'자의 수직변과 원점을 선택하여 녹색으로 만들고  두 지점의 거리를 설정하는 툴바를 선택한다.


그리고 그 거리를 15mm로 설정한다.


수직 위치도 마찬가지로 'ㄴ'자의 수평변과 원점과의 거리를 15mm로 설정한다.


 'ㄴ'자의 수평변의 길이를 설정하기 위해서 수평변을 선택하여 녹색으로 만들고 수평 길이를 설정하는 툴바를 선택한다.


그리고 수평변의 길이를 11.9mm로 설정하자.


마찬가지로 수직변의 길이도 11.9mm로 설정하면 도면에 자유도가 전혀 없는 상태를 알리며 도면의 도형이 전부 녹색으로 변화 한다.


 'ㄴ'자의 모서리의 모따기를 수행하기 위해서 확장 툴바에서 모따기를 선택한다.


 그리고 'ㄴ'자의 수직변과 수평변을 선택하고


모서리의 모따기를 수행한다.


모따기가 수행된후 그 반경을 설정하기 위해서 모따기된 호를 선택하고 반지를 설정하는 툴바를 선택한다.


그리고 그 반지름을 3mm로 설정한다.


그럼 마찬가지로 자유도가 전혀없는 완벽한 도면임을 말해주는 녹색으로 변화한다. 이 부분은 항상 중간 중간에 확인해 주어야 한다. 나중에 어느 부분에서 자유도 문제가 발생하면 프로그램이 중단되거나 다운된다. 그러니 매 단계에서 파일 저장을 주기적으로 해주어야 하고 중간 단계를 확인하기 위해서 각 단계마다 자유도가 없는 완벽한 도면이 되도록 만들어 주어야 한다.


나머지 변을 그리기 위해서 위해서 직선 그리기를 선택하자.


그리고 수직 성분만 가지고 있는 직선을 그리자. 직선을 그리다 보면 주변의 도형에 따라서 접선 성분이나. 접점 성분이 첨가된 직선이 만들어 지기도 하는데 항상 확인해 주어야 한다. 만약 이러한 불필요한 성분이 있다면 좌측 Tasks 탭에서 해당 성분을 찾아 일일이 제거해 주도록 하자.


그리고 접점 성분을 추가하기 위해서 접점이 되어야 할 두 점을 선택하고 접점을 만들어 주는 툴바를 선택하자.


그리고 추가된 직선의 길이를 설정하자.


길이는  3mm이다.


마찬가지로 반대편도 3mm의 수평선의 접선을 그리자.


아래의 그림에서 보듯이 3mm의 길이를 갖는 수평 및 수직 접선을 그리자.


이제는  1.5mm의 길이를 갖는 수평 및 수직 접선을 아래의 그림과 같이 그리자.


같은 작업을 수직 및 수평 방향에 대해서 수행하자.


이제는 길이의 제한이 없는 수직 및 수평 접선을 그리자. 그리고 두 직선이 접점을 형성하도록 적당히 길이를 조절하자.


접점을 형성하는 두 직선을 접점을 경계로 자르기를 하기 위해서 확장 메뉴의 trim기능을 선택하자.


그리고 수직 및 수평 방향으로 튀어 나온 부분을 제거하자. 그럼 자유도가 없는 완변한 도면임을 나타내는 녹색으로 변하게 될 것이다.


자 이제는 내부의 사각형을 그리기 위해서 툴바에서 사각형 그리기를 선택하자.


그리고 사각형 성분 이외의 성분, 접점, 접선등 과 같이 다른 도형과 연계되는 성분이 없도록 작업 영역과 멀리 떨어져서 사각형을 그리자. 만약 위와 같은 성분이 생성 되면 Tasks 탭에 가서 해당 성분을 수동으로 제거 하도록 하자.


사각형의 윗 선분의 위치를 지정하기 위해서 아래의 그림과 같이 사각형의 한 꼭지점과 한 선분을 선택하고 두 거리를 지정하는 툴바를 선택하자.


그 거리는 1.5mm로 설정하자.


그럼 사각형의 윗 선분과 이전의 도면과의 상대적이 수직 위치는 고정되게 된다.


이제는 사각형의 우측 변과 이전 도면의 상대 위치를 설정하기 위해서 사각형 우측의 한 꼭지점과 이전 도면의 한 변을 선택하고 이 거리를 지정하는 툴바를 선택하자.


마찬가지로 그 거리를 1.5mm로 하자. 그럼 다음 그리고 같이 사각형의 모양이 변하게 된다.


나머지 변들도 마찬가지로 1.5mm의 간격을 갖도록 설정하자.


그리고 새로 그려진 사각형의 좌측 하단의 꼭지점에 모따기를 수행하고 그 반경은 1.5mm로 설정하자.


이제는 원을 추가하기 위해서 원 그리는 툴바를 선택하자.


그리고 이전 도면의 간섭을 받지 않도록 이전 도면과 좀 떨어진 위치에 원을 그리자.


원의 중심을 원점에 위치 시키기위해서 원의 중심과 원점을 선택하고 접점을 만들어 주는 툴바를 선택하자.


그리고 마지막 남은 자유도인 원의 반지름을 설정하기 위해서 원주를 선택하고 반지를 설정하는 툴바를 선택하자.


반지름을 2.5mm로 설정하자.


반지름이 지정되면 자유도가 없는 상태를 알리는 녹색으로 도면이 변하게 된다.


원점에 중심을 있고 10.5mm의 가로 세로 길이를 갖는 사각형을 그리자.


직선을 추가하자. 마찬가지로 주의 할 것은 직선과 수직성분을 포함한 어떠한 성분도 갖지 않도록 이전의 도면과 멀리 떨어져서 그려야 한다는 것이다.


아래의 그림과 같이 각 꼭지점과 해당 직선이 거리 1mm를 유지하도록 설정한다. 아직 이 직선의 길이는 설정하지 않는다. 대신 양 쪽으로 접점을 형성할 정도로 알맞게 길이를 조절하자.


비슷한 직선을 하나 더 추가해 보자.


이전에 추가한 직선과 마찬가지로 1mm의 간격을 유지하도록 설정하자.


추가한 두 개의 직선으로 생기는 접점에서 발생하는 쓸모 없는 직선을 제거하기 위해서 trim을 수행하자.


이와 같은 작업을 나머지 세 모서리에 대해서 반복하자. 그럼 아래의 그림과 같이 30mm의 알류미늄 프로파일의 단면이 형성될 것이다.


이제는 이 작업 Sketch를 떠나기 위해서 esc 키를 누르자.


2D 도면을 z축으로 확장해서 3D 객체를 만들어 내는 명령을 Autocad에서 extrude라고 했는데 FreeCAD에서는 해당 scatch를 선택하고 pad로 만드는 작업이 이에 해당하는 것 같다. 위의 그림에서 보듯이 해당 scatch에 커서를 놓고 Tasks탭에서 Pad 메뉴를 선택하자. 아니면 아래의 그림과 같이 툴바에서 Pad툴바를 선택하고 extrude 할 scatch를 선택하자.


그럼 아래의 그림과 같이 높이 10mm의 알류미늄 프로파일이 생성된다. 높이의 설정은 좌측하단의 Tasks 탭 안에 Pad parameters의 length를 조절하여 변경할 수 있다.


그럼 길이를 100mm로 설정해보자. 아래의 그림과 같이 높이 100mm를 갖는 30mm 알류미늄 프로파일을 완성할 수 있다.




2013년 11월 21일 목요일

[번역중] 풍력 발전및 태양열 발전을 위한 555에 기반한 정전류 자동차용 배터리 충전기 제작하기

[출처 : http://www.mdpub.com/555Controller/]

555 칩에 기반한 새롭게 개선된 배터리 충전기
햇빛과 풍력 발전 시스템을 위한 간단한 충전기


새로운 소식 : 이 555 칩에 기반한 햇빛 충전기 프로젝트는 555칩 디자인 콘테스트의 Utility Category에서 일등 먹었습니다!!!!! 콘테스트에 대한 좀 더 자세한 내용을 원하시면 이 문서의 맨 아래로.

 몇년 전에 나는 원격에 있어서 전기가 들어오지 않는 나의 소유물에 전력을 제공하기 위해 자체적으로 풍력 발전 터빈과 햇빛 발전용 판을 만들기 시작했습니다. 충전기는 배터리가 방전되거나 과충전되지 않도록 하기위해서 풍력 혹은 햇빛 충전 시스템의 기본적인 부분이다. 이런 충전기는 배터리의 전압을 항상 감시하고, 배터리가 완전히 충전 되었을때 배터리의 충전을 중단하고 배터리가 사전에 지정된 전하량 밑으로 도달하면 다시 충전을 시작하도록 한다.


 내가 이전의(원래의) 집에서 만든 풍력 터빈, 햇빛 충전판, 그리고 충전기 디자인을 웹에 게시하였을때, 사람들에게 널리 알려지게 되었습니다. 전세계의 많은 사람들이 자신에게 알맞은 형태로 만들어 왔습니다. 그러자 나는 사람들로 부터 질문과 조언에 대한 이메일을 홍수와 같이 받았습니다. 이메일의 매우 많은 부분이 사람들이 원래의 충전기 디자인을 구성하는데 생기는 문제점들에 간한 것이었습니다. 그 디자인은 shop class에 있는 어떤 middle school lesson plans보다 더 발전된것이 확실하기 때문에 이 과정은 잘 숙련된 사람에게 구현될 수 있을 것입니다. 

 원래의 충전기 디자인은 현장에서 사용된지 몇년이 지났어도 여전히 잘 동작합니다. 전 세계의 많은 사람들이 이것의 복사본을 만들어 왔습니다. 이 충전기의 개발에 관한 원래의 이야기는 나의 풍력 터빈 페이지에서 찾아 볼 수 있습니다.

 문제는 전기분야에 대한 경험이 부족한 사람들이 이것을 만들고 동작하게 만드는데 어려움을 겪고 있는 것입니다. 이 회로는 전기 초보자에게는 좀 복잡하고 혼란스럽습니다. 세상과 좀 멀어져 있는 어떤 사람들은 필요한 모든 부품을 구하는 것에 어려움을 겪고 있었습니다. 충전기를 만드는데 도움을 요청하는 일상적인 이메일들은 나에게 이것을 다시 디자인 하도록 부추겼습니다.

 그래서 나는 나의 햇빛/풍력 충전기 회로를 아주 간단히하도록 하고자 하였습니다. 나는 가능하다면 단 하나의 IC로 회로가 이루어지도록 하고 가능한 만큼 부품의 수를 줄이고자 하였습니다. 나는 또한 세계 어느 곳에도 구하기 쉬워 보이는 부품만 포함하도록 하였습니다. 이러한 것들은 더 많은 사람들이 진행하는데 문제없이 만들 수 있도록 할 것입니다.

 나의 친구중 한명은 대중적인 마이크로 컨트롤러 칩중 하나를 사용하도록 전환할 것을 제안하였고, 모든 아날로그 회로들은 하나의 칩으로 대체하였습니다. 이것은 아마도 부품의 수는 줄이는 방법을 찾도록 해줄 겁니다. 그러나, 나는 마이크로 컨트롤러들이 너무 비싸거나 세계의 어떤 곳에서는 구하기 어렵거나, 프로그램 기술이 없는 사람들에게 어려울지도 모른다는 걱정이 있습니다. 이 후에는 마이크로 컨트롤러의 선택의 가능성이 있지만, 나는 당분간은 아날로그 회로에 머물러 있기로 하였습니다. 



여기에 나의 원래의 충전기 회로의 도면이 있습니다. 충전기 회로의 핵심은 voltage divider와 두 개의 comparators, 그리고 S-R 플립플롭으로 구성되어져 있습니다. 나의 원래의 생각은 LM339 Quad Comparator IC를 사용해서 다시 디자인하고자 하였습니다. 나는 이 회로에 두개의 comparators가 필요하였고, 칩에 있는 comparator들 중 다른 두개를 이용해서 S-R 플립플로을 만들 수 있었다. 나는 이러한 생각을 당분간 고려하였습니다. 그리고 몇 개의 테스트 회로를 빵판에 구현해 보았습니다. 나는 하지만 올바르게 동작하도록 하는데 약간의 문제가 있었습니다. 그래서 나는 당분간 이 프로젝트는 보류하고 다른 것을 하였습니다.


내가 작업하였던 다른 프로젝트들중 하나는 gold prospecting을 위해 사용한 나의 recirculating sluice box의 펌프를 위한 PWM 모터 속도 컨트롤러였습니다. 속도 컨트롤러는 555 타이머 칩을 사용합니다. 555 칩의 내부 구조의 다이어그램을 살펴보았을때 나는 나의 원래의 충전기 회로의 아주 많이 닮아 있다는 것에 놀랐습니다. 갑자기 나는 555칩을 이용하여 충전기회로를 다시 디자인하고 아주 간단하면서도 부품수를 줄이게 할 수 있을 것이라는 것을 깨달았습니다.



나의 원래의 충전기 회로와 NE555 타이머 칩의 내부 사이의 유사성을 살펴보기 위해서 왼쪽의 두 다이어 그램을 비교해 보자. 색상으로 표시된 사각형이 유사한 부분을 보여 줍니다. 555 타이머는 원래 회로의 7개의 부품을 대신하고 모든 회로의 복잡성을 아주 많이 줄일 수 있습니다. 나는 555를 타이머로서 전혀 사용하지 않을 것이기 때문에 이것은 매우 비 전통적이고 555의 알려지지 않은 사용법 입니다. 나는 555가 원래 디자인되었던 것보다 완전히 다르게 사용하도록 내부 부분을 활용하고 있습니다.


나는 작업을 시도 하였습니다. 아주 짧은 시간안에 빵판에 작동하는 프로토 타입회로를 만들었습니다. 나에게는 드문 일이지만 첫 시도에 제대로 동작하였습니다. 나는 거의 매번 와이어링 실수를 하곤 합니다. 



여기엔 새로운 충전기 도면이 있습니다. 좀더 크고 분명한 것을 원한다면 클릭을 하시기 바랍니다.

나는 부품을 쉽게 찾는데 주의를 기울였습니다. NE555는 아마도 역사적으로 가장 대중적인 IC입니다. 매년 수조개가 만들어 집니다. 세계 어디에서도 구하기 쉬울 것입니다. 나는 또한 초기 버전에서 사용한 8V 레귤레이터를 5V 레귤레이터로 변경하였습니다. 사람들이 구하기 어렵다고 불평하였거든요. 사용된 트렌지스터는 2N222, NTE123, 2N3904, 혹은 다른 유사한 일반적인 작은 NPN 트렌지스터입니다. 그리고 MOSFET은 IRF540이거나 유사한 파워 MOSFET입니다. 나는 수중에 많은 IRF540을 가지게 되었기 때문에 다른 프로젝트를 위해서 남겨 두었 었습니다. 그래서 나는 다른 것을 새로 사는 것 보다 그져 그 중 하나를 사용하기로 하였습니다. 여러분 들이 구할 수 있을 것들을 사용하시기 바랍니다.

모든 저항은 1/8 와트 용량입니다. 1/8와트 저항이 없다면 1/4와트 혹은 그 이상 용량의 저항으로 대체될 수 있습니다.  두 개의 가변저항 R1과 R2은 여러번 돌려서 설정하는 방식의 것이 이상적일 것입니다. 그러나 조절할때 약간의 정확도의 손실이 있지만 일반적인 한번 돌려서 설정하는 것으로도 대체될 수 있습니다. 나는 10K 가변저항을 많이 가지고 있어서 그것을 사용하였습니다. 10K와 100K 사이의 어떤 값도 잘 동작할 것입니다. 10% 허용오차는 모든 부품에 충분한 정도입니다. 이 회로에 그 이상의 정밀한 부품은 필요하지 않습니다.

개선 사항 

나는 R8*과 R9*의 추가적인 저항을 추가해서 위의 회로를 수정하였다. 이 330Ohm의 저항들은 회로가 실제로 동작하는데 필요하지는 않다. 그러나 만약 가변 저항들이 잘못해서 한계치에 도달하게 되거나 잘못해서 버튼이 눌려지거나, 두 버튼이 동시에 눌려 졌을때 회로가 단선되거나하는 사고를 예방하기 위해서 도움이 된다. 나의 디자인은 시중하게 최소한으로 이루어 졌고 나의 초기에 사용했던 약간 복잡한 디자인에 사용된 이 안정용 저항들을 사용하였다. 그러나, 이 디자인을 공표한 후 나는 예상치 못한 사고를 예방하기 위해서 이들을 다시 되돌려 놓은 것은 아마도 좋은 생각이라고 판단했다.


릴레이는 40A의 용량의 일반 용도의 SPDT 자동차용 릴레이 입니다. 이것은 매우 쉽게 구할 수 있을 것입니다. 자동차 부품 파는 곳이나 폐차장에 버려진 차에서 하나 구할 수 있을 겁니다. 나는 연결의 용이성을 위해서 릴레이의 핀아웃을 포함하여 그려 넣었습니다. 40 A의 용량은 과한 용량인 것 처럼 보이지만 나중을 위한 확장이 될 수 있습니다. 여러분은 아마도 단지 하나의 작은 햇빛 충전판에서 시작할 겁니다. 나중에 더 추가하거나 가능하다면 풍력 터빈으로 혹은 좀더 용량이 큰 배터리로 하게 될 겁니다. 결국은 충전기는 약간 심각한 전류를 다룰 필요가 있을 겁니다. 왜 낮 시간동안의 동작만 고려하여 동작하도록 만들지 않느냐? 다른 모든 부품은 아래에 기입되어져 있습니다.

대부분의 부품들은 여러분 지역의 Radio Shack에서 구입할 수 있습니다. 다른 부품들은 자동차 부품 가게나 Digi-Key, Newark와 같은 온라인 전자 부품 샵에서 구할 수 있습니다. 여러분들은 또한 Amazon.com에서 부품을 찾아 볼 수 도 있습니다. 나는 Ebay에서 자동차의 릴레이를 구입하였습니다. 배송비가 있지만 자동차 부품 가게보다 더 저렴하고 심지어 우체통에 정확하게 배송됩니다. 

 IC1 - 7805 5 Volt positive Voltage Regulator     R3, R4, R5 - 1K Ohm 1/8 Watt 10%  
 IC2 - NE555 Timer Chip     R6 - 330 Ohm 1/8 Watt 10%  
 PB1, PB2 - NO Momentary Contact Push Buttons       R7 - 100 Ohm 1/8 Watt 10%  
 LED1 - Green LED     Q1 - 2N2222 Or Similar NPN Transistor  
 LED2 - Yellow LED     Q2 - IRF540 Or Similar Power MOSFET  
 RLY1 - 40 Amp SPDT Automotive Relay     C1 - 0.33uF 35V 10%  
 D1 - 1N4001 or similar     C2 - 0.1uF 35V 10%  
 R1, R2 - 10K Multi-Turn Trim-Pots  

한번 빵판에 프로토 타입을 동작시켜 본후 실제로 사용하기 위한 목적으로 Radio Shack 프로토보드에 또 다른 유닛을 만들었습니다. 처음에 한 작업을 다시하는데 한 두시간 정도 소요되었습니다. 이 좀 엉성한 버전은 상자에 넣어 지고 현장에서 철저한 테스트를 가해질 겁니다.


주의할 것은 이 보드에서 나는 5V 레귤레이터로 78L05를 사용하도록 선택하였다. 이것은 작은 TO-92 패키지로 2N2222 트렌지스터와 같은 사이즈를 갖는다. 이러한 크기는 보드의 공간을 많이 확보하게 해준다. 그리고 78L05는 100mA의 출력 전류를 보여준다. 그러나 이보드를 구동하기에 충분하다. 여러분이 작은 78L05를 구할 수 없다면, 좀 더 일반적인 크기의 TO-220 패키지의 7805를 사용할 수 도 있다. 뭐 약간 더 많은 보드 공간을 확보해야하는 것 이외에 아무튼 불이익은 없다. 

여러분들이 한번 보드를 만들게 되면 이제는 세부 사항을 조절하고 보정해야할 시간이다. 나는 이 컨트롤러를 위한 하한 및 상한 전압 설정을 11.9V와 14.9V로 하였다. 이러한 설정은 언제 전력 전달을 배터리에서 더미 부하나 그 이외의 것으로 전환해야하는지를 보여준다. (여러분이 풍력 터빈에 사용하고자 한다면 더미 부하만 필요하다. 햇빛 충전판을 사용하고자 한다면, 더미 부하는 연결하지 않아도 된다.)

아마도, 회로를 보정하는 가장 좋은 방법은 배터리 연결단자에 가변 DC 파워 서플라이를 연결하는 것이다. 파워 서플라이를 11.9V로 설정하고 Test Point 1의 전압을 측정한다. 그리고 여러분이 test point 의 전압이 1.667V에 가장 가까이 도달할 수 있는 만큼 R1의 값을 조절하자. 그럼  이제 파워 서플라이를 14.9V로 변경하고 Test Point 2의 전압을 측정하자. 그리고 Test Point 2의 전압이 3.333V에 가장 가까이 도달하도록 R2의 값을 조절하자. 

입력 전압을 11.7V에서 15.1V 사이를 오르락 내리락 하면서 충전기의 동작을 테스트 해보자. 여러분들은 릴레이가 14.9V 근방에서 접촉이 발생하고 11.9V 근방에서 접촉이 해제되는 소리를 들을 수 있을 것이다. 이 두 설정된 지점 사이에서 컨트롤러는 머물러 있어야 한다. Charger와 Dump 버튼은  입력 전압이 이 두 지점 사이에 있을 때 컨트롤러의 상태를 변경하는데 사용되어 질 수 있다. 

여러분들이 나의 하한 전압이 너무 낮고 내가 너무 과 방전을 시키는 것이 아니냐고 알려주거나 나에게 이메일을 쓰고자 하기 이전에 배터리의 전압이 부하가 연결되지 않으면 일반적으로 낮은 상태가 되지 않는 다는 점을 고려해 주기 바란다. 부하가 제거되면 전압은 12V 이상으로 금방 회복 될 것이다. 그래서 여러분 들이 단번에 생각할 수 있듯이 배터리들은 많이 방전되지 말아야 한다.

회로작업이 이루어 지면 이제 생활 방수 수준의 케이스 안에 고정 한다. 릴레이는 왼쪽에 놓았다. 나는 와이어가 쉽게 모든 것에 갈 수 있도록 하기 위해서 barrier strip을 사용하였다. 그리고 높은 전류의 연결도 허용하도록 굵기가 굵은 와이어를 사용하였다. 이 정도는 40A 정도를 허용하도록 디자인 되었다. 또한 solar/wind 입력 라인에 퓨즈를 첨가하였다.


좀 더 큰 사진을 원하시면 그림을 클릭해보시라.

여기에 뚜껑이 있는 다른 사진이 있다. 이 상자는 이 작업에 적합해서 사용한 것이 아니라 내가 이미 가지고 있었기 때문에 그냥 사용하게 되었습니다. 영구적으로 외부에서 사용하고자 한다면 내가 원래 충전기에 사용하였던 것 같은 방수와 튼튼한 상자를 사용하기를 추천한다. 그러나 나는 투명한 뚜껑을 통해서 LED를 확인할 수 있고 간편하게 충전기의 상태를 구분할 수 있다는 사실은 좋다고 생각한다. LED를 위한 추가적인 구멍을 뚤지는 않았고 이 상자는 현장 테스트 목적으로 쓰게 될 것이다.


좀 더 큰 사진을 원하시면 그림을 클릭해보시라.

여기에 옆면 사진있다. 이 사진은 외부에서 전선을 연결할 수 있는 모든 커넥터를 보여주고 있다. 각각의 커넥터는 배터리의 양극과, 태양열 집전기혹은 풍력 발전을 위한 터빈의 양극 입력, 옵션 사항인 dummy load의 양극, 그리고 세 개의 그라운드와 연결되도록 되어 있다.



충전기를 설정할 때 먼저 배터리 부터 연결해야 한다. 이렇게 해야만 전기가 안정적인 전력으로 사용 되어 질 수 있다. 만약 태양열 집전기나 풍력 터빈이 먼저 연결되면 제어기는 이 상태 저 상태 사이를 심하게 유동칠 수 있다.

이제 나는 dummy load에 대해서 설명해야 겠다. 내가 만든 풍력 터빈 같은 것은 강한 바람에 대한














................................ 번역중 ..............................

2013년 11월 20일 수요일

[번역] 저 전압에서 Triode 타입의 진공관 구동시키기

[출처 : http://www.freewebs.com/valvewizard2/Triodes_at_low_voltages_Blencowe.pdf]

저전압에서의 Triode
낮은 전력 조건에서의 선형 증폭기

by Merlin Blencowe

소개:

 전통적으로, 'starved amplifier'라는 것은 극도의 저전압의 screen 전압을 가지고 pentode을 동작시키는 것을 의미하였다. 그러나 여전히 이전의 고전압을 anode에 공급하는 방식을 사용하였다. 이러한 회로들은 최적의 상태에서 고전압에 상응하는 만큼 이상의 극도의 높은 증폭율을 제공할 수도 있다는 점이 발견되었고 몇몇의 공학자들은 DC instrumentation amplifier (직류 계측 증폭기)를 위해 이러한 특성을 탐색하였다. 이런 유용한 높은 본래의 증폭율을 가지고 수많은 negativie feedback 방식들이 활용될 수 있었다(1).

 그러나, 나는 starved pentodes에 대해서 이야기 하려고 하는 것은 아니다; 이것에 대한 많은 정보들이 이미 존재한다(2, 3). 대신, 나는 정말로 낮은 전력 조건(starved condition)아래에서 정확히는 12V 이하의 조건에서 원래의 triodes 동작을 이용하려고 조사해 볼 것이다. 나는 12V가 대부분의 전압 레귤레이터가 달려있는 벽면형 변압기/메인 아답터가 제공하는 가장 높은 전압이기 때문에 이러한 특성을 선택하였다. 선형 증폭기는 실제적으로 이러한 특성하에서는 불가능 하다고 널리 알려있지만, 내가 보여주고 싶어하는 것처럼 반드시 사실은 아니다.

Anode의 특성들:

그림. 1: 12V 이하의 동작은 잘 추적이 되어 있지 않다.
 설명서들은 매우 낮은 전압 동작에 대한 어떤 유용한 정도도 제공하지 않고, SPICE 모델도 마찬가지로 사용할 수 없다. 사실, 그림 1은 우리가 얼마나 일반적인 곳에서 떨어져서 보이지 않는지 확실하게 알려주고 있다. 그러므로, 나는 4개의 대중적인 형태의 진공관의 anode의 특성을 anode의 전압을 10V까지 증가 시키면서 측정하기로 하였다 (나의 오실로스코 프의 사용가능한 수평축이 10개 밖에 안되기 때문이기도 하다). 또한, grid의 전류도 측정하였고 이것의 중요도는  결국에 가서는 명확해질 것이다.

 나는 같은 유리관안에 있는 troide들 사이의 매칭은 당연히 이루진다는 것을 알아냈다; 여러분이 고전압 동작에서 기대하는 것만큼 대부분 좋지만, 같은 모델의 서로 다른 진공관 사이에서 차이가 심하다. 특히 ECC81과 ECC83이 그러한데, anode의 저항값 (r_a)는 평균값에 +-50%정도로 변화한다. 그러나, 이러한 차이는 나중에 설명하는 것 처럼 variable-bias 회로들에 수용되어 질 수 없을 만큼 심한 것은 아니다.

 그림 2는 내가 찾아낸 anode 특성을 보여준다. 이들은 각 종류의 (다양한 제조사와 출처의) 10개의 무작위로 선택된 진공관를 측정하여 이루어졌다. 그리고 나서 결과를 평균 내었다. 비록 곡선의 모양은 우리가 고전압에서 보아 왔던 것에서 많이 다르지만, 각 종류의 진공관의 기본적인 성향은 여전히 남아 있다. 예를 들면, ECC88은 가장 좋은 선형성과 매우 높은 g_m 그리고 가장 낮은 r_a값을 보여준다. ECC81가 높은 u값을 갖지만, ECC82와 유사한 낮은 r_a값을 갖는 반면 ECC83은 높은 u와 가장 높은 r_a값을 갖는다.

그림. 2: 몇 가지의 triode 진공관의 저 전력에서의 anode 특성들

 그럼 가장 먼저 우리는 저 전압에서 ECC88이 가장 높은 증폭율과 휼룡한 선형성을 제공하도록 보여지기 때문에 가장 좋은 선택이라고 예상하게 될 것이다. 게다가, hybrid 회로에서 매우 잘 동작할 수 있다. 그러나, 몇가지 명확해질 이유 때문에 ECC82가 선택된 진공관이 되었다. 그래서 나는 대부분의 나의 테스트 회로들에서 이것을 사용하였다.

Grid 전류:

 그림 3은 같은 종류의 진공관에 대한 평균 grid 전류를 보여준다. 결과는 별로 놀랍지 않다. grid 전류가 grid와 cathode 사이의 공간을 가깝도록 만들기 때문에 grid 전류는 일반적으로 g_m과 함께 증가한다. 하지만 ECC82는 낮은 u값을 갖는 조잡하게 만들어진 grid를 갖기 때문에 예외이다. 그레서 가까운 grid cathode 공간을 갖음에도 불구하고 많은 전하를 끌어내지 못한다. 이와는 다르게 인상적인 ECC88의 아킬레스 건(Achilles' heel)은 grid 전류가 ECC81보다 두배, ECC82나 ECC83보다는 8배정도가 된다.

그림. 3: 몇 가지 대중적인 triode의 평균 grid 전류 특성 

 우리는 선택 사항이 없이 grid 전류가 거부되지 않을 만큼의 매우 낮은 grid bias 전압을 가지고 동작시켜야 해야하기 때문에 grid 전류는 저전력에서의 증폭기 디자인에 있어서 정말로 중요한 문제이다(4). 고전압에서 동작할때는 우리는 일반적으로 이러한 점을 걱정할 필요가 없고 grid의 입력 저항은 무한대라고 가정해도 좋다. 하지만, 이러한 점들은 우리가 지금 grid 전류에 걱정해야 경우에는 결단코 해당하지 않는다.

 grid 전류 곡선의 미분값의 역수(1/[미분값])는 grid의 입력 저항이고, -0.25V 정도의 bias전압에서 ECC81이 약 7Kohm을 갖는 반면, ECC82와 ECC83이 약 20Kohm을 갖는다. ECC88의 경우는 단지 3.6Kohm 밖에 안된다. grid의 전압이 더 높아 짐에 따라, 입력 저항값은 더 떨어진다. 이러한 이유 때문에 저전력 회로들은 거의 항상 낮은 입력 임피던스(저항값)으로 다루어질 필요가 있어야한다.

 좀 더 확정적으로, 이 곡선들은 단지 12V의 anode 전압에만 적용된다. 더 낮은 anode 전압에서는 anode가 전하를 자신쪽으로 끌어들여 grid에서 멀리하도록 하는데 비효율적이게 되고 grid 전류는 더 증가할 것이다. 그러나 다행히도 관심영역에 해당하는 3V에서 15V 사이의 anode 전압에 대한 이러한 변화는 무시할만하다.

 테스트된 네 종류의 진공관 중에 ECC82가 샘플들 간의 일관성이 좋고 가장 낮은 grid 전류를 갖고, 또한 최소한 내가 사는 곳에서 한 무더기의 값이 가장 저렴하기까지 하기 때문에 가장 선호하는 것이었다. 비록 많이 낮은 u값을 가지고 있기는 하지만, 이것은 다른 것보다 bias를 만들어 주는데 훨씬 덜 까다롭다. 그리고 어쨌든 매우 적은 전압 폭에 대해서까지 증폭율이 풍부할 필요는 없다.

 이제 우리는 grid 전류를 가지고 싸워야만 하기 때문에 트렌지스터 같이 진공관을 다루고 grid 전압을 높이기 위한 bias하는 것을 다룰 필요가 있다; 정상적인 cathode bias는 더 이상 유용한 선택사항이 아니다. 대신, 세 가지의 가장 유용한 bias 방법이 있다:

* 낮은 임피던스의 DC 입력(예를 들면, opamp)으로부터 grid를 바로 연결하기.
* 전형적인 grid-leak(grid에서 전류누설이 발생하는) biasing.
* Pull-up grid-leak biasing (Pull-up 저항을 이용해서 grid에서 발생하는 입력 신호의 전류 누설을 줄여주는 방법)

이와 같은 방법들은 아래에서 살펴 볼 것이다.

Hybid 회로들:

 그림 4는 grid에 다루는데 opamp를 이용하는 회로의 예를 보여준다. opamp는 출력이 완전히 그라운드로 가지는 않기 때문에 cathode의 동작 전압이 약 3V 정도가 되고 grid 전압은 그저 이보다 작아지도록 cathode 저항이 추가 되었다. 가변저항을 변경해서 opamp의 DC 출력 전압과 그에 해당하는 grid bias는 매우 쉽게 찾아진 최적의 동작 조건을 허용하면서 다른 진공관에 맞도록 변경될 수 있다. 물론 opamp는 1이상의 증폭율을 갖도록 구성되어져야 한다.

그림. 4: 낮은 임피던스 grid에 버퍼로 사용된 opamp.

 grid 멈춤자인 R4는 이것의 용도가 매우 특수하기 때문에 약간의 설명이 필요하다. 이 저항이 없으면 이 회로의 왜곡은 여러분이 triode에서 예상되는 것은 주로 2차, 4차의 harmonic(, 어떤 것은 3차 이상의)이다. 그러나, grid 멈춤자를 관통해서 흐르는 비 선형적인 grid 전류를 허용함으로써 grid에서 나타나는 신호의 전압은 양전압 쪽으로 몰리고 왜곡 이전의 상태가 될 것이다. 진공관은 이 신호를 증폭하면서 아직 왜곡을 하게 되지만, 양전압 쪽에 있는 한 최종 출력 신호는 저항이 추가되기 이전보다 덜 왜곡되도록 한다. 이것을 위해 치러야 하는 것은 grid 멈춤자의 저항값과 grid의 입력 저항에 따라 발생하는 전압 나눔 현상으로 인한 증폭율의 하락이다.

 이러한 왜곡을 제거하는 최적의 grid 멈춤자의 값은 실험을 통하여 찾아져야 한다. 나는 ECC82에 대해선 4.7Kohm이 적당한하다는 것을 발견했고, ECC81과 83에 대해서 이 값이 여전히 잘 동작하는 것 같았다. 너무 높은 값은 더 왜곡이 없는 신호를 만들도록 하지만, 회로의 harmonic 신호를 대부분의 2차에서 대부분의 홀수차로 변경한다. (음악 제작자들이 이러한 사실을 좀더 탐구해 보길 기대한다.)

 이 회로의 전압 증폭율은 ECC82에서 7.5였고, 왜곡이 나타나기 이전의 triangle 파형의 최대 출력은 1.5V peak-to-peak 였다. 4V p-p에서는 THD가 3%에 이르었다.

 이전 회로의 출력 임피던스는 20Kohm정도로 높았지만, 또 다른 opamp로 해결할 수 있다. 그림 5에 보여주듯이 이것은 anode 저항이 스스로 대처할 수 있도록 하는 가능성을 열어 준다. anode의 부하는 두 부분으로 나누어 지고 opamp의 출력은 캐패시터와 연결되어 있다. 이러한 점은 R6를 몇 mega ohm으로 보이도록 만들고 이렇게 됨으로써 (load 그래프을 수평으로 만들어) trode를 관통하는 전류를 일정하게 만들어 R6의 실제적인 효과를 증대 시킨다. 그리고 이 단계의 증폭율은 triode의 u값과 같아 지게 된다. anode 전류는 이제 일정하게 되고 u값은 크게 변화지 않기 때문에, 진공관에서 발생되는 많은 왜곡들은 사라지고 우리는 더이상 왜곡 제거를 위해서 (고의로 왜곡의 추가하길 원치 않는다면) grid 멈춤자가 필요 없게 된다. 그래도 작은 값의 R4는 측정하기 좋게 남겨 두었고 주로 떠돌이(stray) 캐패시턴스로부터 opamp를 분리 시킨다.

그림. 5: 더 높은 증폭율과 선형성을 위한
 R6의 자기 확대와 출력 버퍼로 사용되는 두 번째 opamp

 ECC82에서 15로 ECC81에서 35로 높아지는 이 회로의 증폭율의 자기 확대에 감사한다. 4V p-p 출력에서의 왜곡은 내 오실로스코프의 FFT 기능에서 측정해 본 바로는 나에게 너무 작았다. 저전력의 triode 디자인에 내재된 낮은 증폭율과 내가 시도한 모든 회로의 10Hz에서 100kHz에 해당하는 것 보다 훨씬 넓은 -1dB의 대역폭인 높은 coupling 캐패시턴스를 사용할 수 있는 자유도에 감사한다.

 그러나, 몇몇의 독자들은 다음과 같은 사항을 째빠르게 지적할 것이다. 선형 증폭이 이루어 지는 한, 진공관을 지원하기 위해 opamp를 사용하는 것은 약간 이해가 되지 않을 것이다. 결국, 우리는 단순하게 opamp회로를 만들고 진공관이 왜곡과 노이즈, 그리고 다른 제한 사항들을 제외한 아무 것도 발생시키지 않기 때문에 진공관을 불평하지는 말자. 달리 말하면, 우리가 실제로 음악적인 효과로 진공관 왜곡을 원한다면, 이러한 접근은 합리적이다. opamp들은 높은 입력 임피던스, 낮은 출력 임피던스, 진공관을 다루기 위한 추가적인 증폭을 만들어 낼 수 있다. 다른 편리한 관리자와 전기적인 스위치를 사용하는 것 없이 말이다. 이 결합이 분별있는 것이 되도록하기 위해선, 그들이 제공하지 말아야 하는 유일한 것은 진공관과 다른 우아한 왜곡이다. 이것은 전자 기타를 연저하는 어떤이에게는 매우 흥미로운 것일 수 도 있다.

순수한 진공관 회로들:

 hifi를 위해 단순하고, 순수한 진공관 line stage를 디자인하고자 한다면, 우리는 grid-leaking bias를 감수해야만 한다. 전통적인 grid-leak biasing은 단순히 grid와 cathode 사이에 직접 grid-leak 저항을 연결하고, 이 궤도에서 흐르는 grid 전류는 그림 6과 같이 grid에서 발생하는 역 전압을 원인이 된다. (여러분들이 무엇이 이러한 전류를 발생시키는지 의아해 한다면 그것은 space charge 그 자체이다.)

그림. 6: 전통적인 grid-leak biasing은
 저전력 동작에 적합하지 않다.

 그러나, 어떤이는 1Mohm 같은 grid-leak를 위해 친숙한 값의 사용을 시도하는 실수를 저지른다. 그러나 이러한 값은 저전력 동작에서 너무나도 큰 값이다; 이 값은 troide가 실제적으로 cut-off 상태로 만드는 bias가 된다. 적절히 동작하도록, ECC82의 bias가 0.2V가 되도록 한다면, 그림 3에서 처럼 grid 전류는 9uA 정도로 유추할 수 있다. 그럼 Ohm의 법칙에서 필요한 저항 Rg = 0.2/9x10^-6=22Kohm이 된다.

 정확한 grid-leak라 할지라도 큰 부족한점을 갖는다; 진공관의 입력 저항은 이 회로의 시작시 다소 낮지만, 다른 저항도 병렬로 추가해도 여전히 낮다. 저전력 조건에서 이러한 biasing 방법에 어떤 이득이 있는 것처럼 보이지 않기 때문에 이건 고려하지 않을 수 있다.

 더 유용한 접근은 pull-up grid-leak biasing이다. 이 방법은 cathode에 보다 전원에 grid-leak를 연결하는 것 이상 아무 것도 관련되는 것이 없다. 예를 들면, 12V 전원을 사용하고 -0.2V의 grid 전압을 원하면, pull-up 저항에 떨어지는 전압은 12.2V이어야 한다. grid 전류는 이미 앞에서 9uA 인것으로 알려 졌고 이때 pull-up 저항 Rg = 12.2/9x10^-6=1.4Mohm 이다. 이것은 회로의 입력 임피던스에 거의 아무런 영향이 없도록 충분히 크다.

 전원에 연결된 저항으로 음 grid 전압을 구하는 이러한 방법은 약간 이상하게 들릴 수도 있다. 하지만, 이것이 그저 저전력의 회로의 세계에서 동작하는 방식이다. 게다가 이 방법은 심지어 여러분에게 0과 양 grid bias를 허용한다. (이러한 낮은 전압회로에서는 이것을 구동하는데 triode에 아무런 피해도 주지 않는다.) 그런데, 이 bias 방법은 비록 디자이너들이 명백히 왜 동작하는지 알지 못하지만(5), 전자 기타 디스토션 패달에 대한 특허에 언급되어 있다.

 그림 7은 pull-up biasing을 사용하는 첫 번째 이론의 회로를 보여준다. 최고의 효과를 위한 이 최적의 bias는 실험에 의해서 찾아 졌다. 초기의 무왜곡 기술은 여기에서 사용되어 지지만,
증폭율은 희생되어 질 것이다 (hybrid 회로에서 증폭율의 부족은 opamp과 만들어 질 수 있기 때
문에 일반적으로 문제점이 아니다. 1Kohm의 타협 값은 나의 테스트 회로에서 11kohm 정도의 입력 임피던스로 측정되면서 사용되었다. grid 전압이 보통 음 전압이지만 cathode가 달구어 지면 양전압으로 바뀔 것이기 때문에 C1은 극성이 없는 타입 (NP) 이어야 한다.

그림. 7: 입력 임피던스를 최대화 하고
전통적인 grid-leak biasing 보다
 좀 더 넓은 grid-bias를 허용하는
pull-up grid-leak biasing.

 anode로 부터의 출력 임피던스는 물론 다소 높다. 그러나 높은 증폭율의 트렌지스터를 버퍼로
사용할 수 있다. 그림 8은  너무 많은 문제점없이 10Kohm 부하를 다룰 수 있는 버전을 보여준다.

그림. 8: 높은 증폭율의 트렌지스터에 의한 출력버퍼화

 그러나 우리는 그림 9에서 cathode follower로 트렌지스터를 데체하도록 회로를 구성해야하기 때문에 hybrid 회로로 돌아 가야한다. 이것이 여전히 감내할 수 있는 결과를 달성하면서 내가 고안할 수 있는 가장 단순한 순수 진공관의 저전력 line stage이다. pull-up 저항은 가변저항(trimpot)으로 대체되고, 이건 어떤 ECC81/82/83도 사용될 수 있게 만든다. 가변저항은 anode의
전압이 5에서 6V정도가 될때까지 조절되어야 한다. 혹은 여러분이 최적의 가변저항값을 찾는데 직접 자신의 귀를 사용할 수도 있다. 나는 ECC82를 사용해서 8.5정도의 증폭율을 측정하였고 눈에 띄는 왜곡이 나타나기 이전의 최대 출력은 2V p-p였다. 그리고 4V p-p에서 THD는 여전히 2%보다 적은 정도이고 주소 2차 harmonic이었다. 이것은 그림 4에 있는 hybrid 회로보다 실제로 좋은 결과이다. cathode follower를 제공하는 것이 약간의 왜곡 제거에 공헌하는 것 같다.

그림. 9: ECC81/12AT7, ECC82/12AU7, ECC83/12AX7을
 수용하는 실질적인 line stage

 이 회로가 의미있게 다룰 수 있는 가장 큰 부하는 100Kohm 정도이다. R5를 감소시켜서 더 많은 부하를 다룰수 있게 하는 시도는 V1의 성능을 떨어뜨리고 V2에서의 grid 전류를 증가시키는 결과가 된다. 여러분들이 가변 저항을 입력 부분으로 옮기려고 시도해 볼 수 도 있지만, 왜곡이 낮고 비선형적으로 되어 버린 입력 임피던스 때문에 심해진다; 이 회로는 정말로 낮은 임피던스의 입력 소스로부터 다루어 질 필요가 있다.

 입력 전원은 낮은 hum/noise를 얻고자 한다면 전원 레귤이터가 이루어져야 한다. 그래서 여러분이 벽면형 전원/아답터를 사용한다면, 'regulated'라는 말이 있는지 확인하기 바란다. anode 전류는 1mA보다 적지만 heater는 150mA를 필요로할 것이다. 만약 스테레오로 구성한다면 300mA. 물론 다행히도, 300mA나 500mA를 벽면형 전원에서 레귤레터하는 것은 쉬운 일이다.

결론:

 나는 이 문헌이 저전력 회로의 특색에 대한 약간의 정보를 담고 있다. 저전력에서 선형적인 증폭이 가능 하냐고 묻는 다면, 대답은 물론 예이다. 그리고 실제적인 회로는 전적으로 적용가능하다. 그리고 재미있다. 그러나 우리는 낮은 입력 임피던스, 제한된 증폭율, 그리고 작은 headroom등의 피할 수 없는 단점을 기꺼이 수용해야한다. 그렇지 않으면 우리는 이러한 문제들을 수정하기 위해서 hybrid 회로를 살펴보아야 한다. 이 문헌에서 소개되는 이러한 생각들은 좀 더 많은 실험을 위해 합리적인 platform으로 제공되기 바란다. 그리고 나는 여러분이 정말로 저전력 회로를 고안하게 되기를 바란다.

 나는 참고 문헌을 찾는데 Stephen Keller에게 도움을 받았다.

--------------------------------------------------------------------
1. Volkers, W. K. (1951). Direct-Coupled Amplifier Starvation Circuits. Electronics. (March), pp126-9.
2. Callahan, R. G. (1964). Simple High Gain DC Amplifier. Review of Scientific Instruments, 35 (6), pp759-60.
3. Kaufer, G. E. (1955). How to Design Starved Amplifiers. Tele-Tech and Electronic Industries. (January), pp68-70+104+106-11.
4. Bisso, R. J. (1957). Tube Design Considerations for Low-Voltage Operation in Hybrid Circuitry. The Sylvania Technologist. 10 (2), (April), pp38-41.
5. Butler, B. (1991). Tube Overdrive Pedal Operable Using Low Voltage DC Battery Eliminator. US Patent 5022305.

2013년 11월 16일 토요일

[번역] CAN 통신 해킹하기 : 하드웨어



 지금까지 우리는 CAN의 기초, 차량내 네트워크, 그리고 CAN 위에서 사용되는 통신규약에 대해서 논의하여 왔다. 우리는 CAN 도구에 대한 논의와 여러분 자신의 하드웨어를 만들기 위한 부품을 완성하여 나갈 것이다.

배선하기

 불행하게도 CAN을 접속하는데 어떤 표준이 존재하지는 않는다. 고속의 CAN을 위한 대부분의 공통된 커넥터는 7번핀에 CAN high와 2번핀에 CAN low를 갖는 DE-9이다. 그러나 케이블들은 서로 다를 것이고 많은 것들이 호환성이 없다.

 CAN은 신호선의 양 끝에 120옴 저항에 의해서 적절히 마무리 될 필요가 있다. 실제적으로 여러분들이 종단을 다룰때 신호선로에 한 개의 120 옴 저항을 붙일

수 있다.

도구들

 좋은 CAN 도구는 여러분이 CAN 메세지들을 주고받고, CAN 데이터베이스를 사용해서 데이터를 해석하고 CAN 통신규약을 구현할 수 있게 할 것이다. 이러한 특성을 갖는 도구들은 개방성이 없는 독점적 소유물이고 비싸지만, 몇몇의 해커에 친숙한 대체품들이 존재한다.

GoodThopter


 [Travis Goodspeed 사의] GoodFET에 기반한 GoodThopter는 신호선로에 진입하는데 Microchip사의 MCP2515, CAN to SPI 제어기를 사용한다. 이 오픈소스 하드웨어 도구는 여러분이 Python 스크립트를 이용해서 메세지를 주고 받을 수 있도록 해준다.

CAN Bus Triple


 CAN Bus Triple 장치는 세 개의 CAN 신호선로에 접근할 수 있게 해주고, Arduino와 유사한 환경에서 프로그램되어 질 수 있다. 이 오픈 소스 코드는 여러분이 2세대 Mazda 3시리즈와 작업할 수 이쎄 해준다. 불행하게도 하드웨어는 오픈소스인 것으로 보여지지 않는다.

Saleae Logic


 오픈소스는 아니지만, Saleae Logic은 CAN 신호선로를 들여다보기에 매우 간편하고 저렴한 도구이다. 이것은 CAN 트래픽을 표현하고 해석하고, 갈무리할 수 있다. 이것은 여러분이 자신의 하드웨어를 만들고자 할때 대단히 유용한다.

DIY

부품들

 여러분들이 CAN을 위한 자신만의 하드웨어를 고안하고자 한다면, 두 가지가 필요하다: 하나는 CAN 제어기이고, 하나는 CAN 송수신기이다.

 CAN 제어기는 CAN 메세지를 해석하고 생성한다. Atmel사의 Atmega32M1, Freescale사의 S08D, 그리고 TI사의 Tiva C Series 같은 내장형 CAN 제어기를 갖는 마이크로컨트롤러가 시장에 많이 있다. 내장형 CAN 제어기를 사용할때 여러분은 외장형 오실레이터를 사용해야한다. 내장된 오실레이터는 고속 CAN에 적용하기에 충분히 정확하지 않다. 만약 여러분이 기존의 마이크로컨트롤러에 CAN을 추가하고자 한다면, MCP2515은 추가해야할 사항이다. 이것은 SPI로 통신하는 독립형 CAN 제어기이다.

 송수신기는 제어기에서 신호선로로 혹은 신호선로에서 송수신기로 이동하는 신호를 변환한다. 고속과 저속의 CAN 네트워크를 위해 서로 다른 송수신기가 필요하다. NXP사의 TJA1050은 고속 신호선로에서 동작하고, ONsemi사의 NCV7356은 저속의 단일 신호선로에서 동작한다. 

개발보드들

 CAN 제어기를 갖고 있는 마이크로컨트롤러를 가지고 있는 수많은 개발보드가 세상에 존재한다. Arduino Due의 SAM3 프로세서는 제어기를 가지고 있지만, 보드에 송수신기가 없다. 여러분은 실제로 시도해 보기 위해서 CAN 신호선로용 추가 보드와 Due CAN Library를 선택할 수 있다. 

 ChipKIT사의 Max32는 Due와 유사하다. 이것은 두 개의 CAN 제어기를 가지고 있지만, 여러분이 신호선로에 실제로 접근하기 위해서 외장 송수신기를 제공할 필요가 있다. 다행히도, 이것을 위한 추가 보드가 존재한다. 이 ChipKIT은 공식적으로 Ford사의 OpenXC Platform에 의해서 지원되기 때문에 여러분은 그 펌웨어를 갈무리 할 수 있다. 

 이것이 CAN 해킹하기에 대한 우리 논의의 결론이다. 여러분들이 이제는 희망적으로 이 통신규약을 가지고 실험하고 앞으로 나아갈 준비가 되었다. 만약 질문이 있다면 주제란의 "CAN Hacking"에 있는 우리의 팁 라인에 해당하는 곳에 질문들을 보내주기 바란다. 그리고 우리는 몇몇의 질문을 들여다 볼 것이다. 여러분이 이 연재물을 좋아하고 다음 번을 위한 주제를 제안하기 원한다면 우리는 그것을 듣는 것 또한 좋아한다.