RepRap 기반의 3D 프린터 제작에 가장 많이 사용되는 보드 중에 하나인 Arduino MEGA 2560과 RAMPS 보드에 대해 분석을 해보고자 한다.

(사진 및 회로도 출처 : http://arduino.cc/ )

http://arduino.cc/en/uploads/Main/arduino-mega2560_R3-sch.pdf

Arduino MEGA 2560 R3 보드의 회로도이다.

Arduino MEGA 2560은 크게 두 부분으로 나눌 수 있다. PC와 통신을 담당하는 Atmega16u2와 실제 기능을 수행하는 Atmega2560.



USB를 통해 PC와 통신을 담당하는 부분이며, Atmega16u2 나 Atmega8u2 등의 칩이 사용된다. R3 버전의 보드부터 Atmega16u2 가 사용됐다.
이 Atmega16u2에 올라가는 펌웨어를 잘 개발하면, USB2Serial 을 통해 시리얼 포트로  gcode를 전송하는 것이 아니라,
native usb device로 동작하여 binary gcode 를 전송하거나, SD 카드를 PC 와 연결된 상태에서 인식하도록 하는 것 등의 작업이 가능하지 않을까 싶다.

                 


Arduino MEGA 2560 보드의 외부 전원 회로이다. 
X1은 보드상의 DC 잭이고 아답터를 통해 전원을 공급받는다.
D1은 다이오드이며 역전류를 방지한다. 
VIN은 Shield의 파워커넥터와 연결이 된다. 따라서 Shield를 통해서 전원을 공급받을 수 있다.
D1 다이오드는 Shield 를 통해 공급받은 전류가 아답터 쪽으로 역류하지 않도록 한다.
IC1 은 정전압 레귤레이터 이다. http://www.nxp.com/documents/data_sheet/NX1117C_NX1117CE_SER.pdf
이 레귤레이터를 통해 5V 전원이 모두 공급되므로 이 레귤레이터의 용량(1A)을 초과하지 않는 선에서 회로를 추가해야 한다.
리니어 레귤레이터 이므로 입력과 출력 전압 차이는 모두 열로 손실된다. 
Arduino.cc 에서는 7~12V 전원을 사용할 것을 권장하고 있다. 

PC1, PC2, C2 는 안정적인 전원을 공급할 수 있도록 구성된 커패시터이다.



Power-on-reset 회로이다. 
5V 전원이 공급될 때 저항과 커패시터의 RC 딜레이에 의해 일정 시간 동안 리셋을 유지시켜 디바이스가 정상동작 하도록 한다.


  

(햐안 점이 1번 핀)

프로그래머를 이용해 Atmega2560 에 직접 프로그래밍을 하기 위한 프로그래머 포트 이다.

      


5V 전원이 공급되면 켜지는 LED 이다. 회로상엔 녹색 LED.

     



Digital13(or PWM)핀을 통해 제어할 수 있는 LED이다. 회로도 상엔 노란색.
IC7A는  OPAMP 인데 위와 같이 회로를 구성하면, voltage follower 로써 동작한다.
Voltage follower 회로는 입력전압과 동일한 전압을 출력해주는 회로이다.
3번 핀을 통한 전압 입력이 그대로 1번 핀으로 출력된다.
대신 전류 공급은 IC7A를 통해서 하기 때문에, 부족한 포트의 전류를 보완해줄 수 있다.

                                                                                          

                                                                                                                             

                                                                                            

                                                                             


Arduino MEGA 2560은 다양한 방법으로 보드의 전원을 공급받을 수 있다.

1. 외부 DC 아답터
2. Shield 
3. USB

Atmega2560 이 사용하는 전압은 5V 인데, 위 세가지 방법으로 5V 전원을 공급받을 수 있다.
1, 2 번의 경우 제일 처음에 설명한 외부 전원 회로와 레귤레이터를 통해 5V를 공급한다.
3 번의 경우 Atmega16u2 에 연결된 USB를 통해 전원을 공급받는다.

문제는 USB와 DC 아답터 혹은 Shield 를 통한 전원 공급이 동시에 이루어질 경우,
레귤레이터에서 생성된 5V와 USB 단자의 5V 가 충돌하여 PC의 USB 단자가 망가질 우려가 있기 때문에, 
PC를 보호하기 위한 회로가 위의 회로이다.

우선 오른쪽의 IC6(LP2985-33)을 통해 5V 전원으로부터 3.3V 전원을 생성한다.
생성된 3.3V 전압은 IC7B 의 6번핀으로 입력된다. 
IC7B는 IC7A와 마찬가지로 OPAMP이다. (IC7A와 IC7B 는 하나의 부품이며 동일 회로가 2개 내장되어 있다.)
위와 같이 회로를 구성하면 비교기로 동작한다. 
OPAMP의 +입력과 -입력의 전압을 비교하여 + 입력이 큰 경우 VDD(이 경우엔 5V)를 출력한다.
+입력단은 CMP가 연결되어있고, -입력단은 앞에서 생성된 3.3V가 입력되었다.

CMP는 VIN을 10K옴 저항 두개로 분배(전압분배법칙)하였기 때문에 VIN/2 (V)의 전압이 생성된다.
즉 VIN에 6.6V 보다 큰 전압이 들어오면 IC7B의 출력은 VDD(5V), 6.6V보다 작은 전압이 들어오면 GND(0V) 이다.

T1(FDN340P) 는 Single P-channel MOSFET이다. https://www.fairchildsemi.com/ds/FD/FDN340P.pdf

   

P-Channel MOSFET은 일종의 전자 스위치이다. 
G(Gate)에 IC7B의 출력(GATE_CMD)가 연결되어있고, D(Drain)에 USBVCC가 연결되어있고, S(Source)에 +5V가 연결되어있다.
전류는 Source 에서 Drain으로 흐르므로 위 회로에서는 반대로 연결하는 것이 더 낫지 않나싶다.

Gate 입력이 0V(Source 보다 낮은 전압)일 때 P-Channel MOSFET은 ON된다. Gate 입력이 5V(Source 보다 높은 전압)이면 OFF된다.
즉 VIN의 입력이 6.6V보다 크면 GATE_CMP가 5V가 되어 MOSFET이 OFF되고 USB 전원이 차단된다. 
외부 DC 아답터나 Shield 를 통해 6.6V 이상의 전원을 공급 받을 경우 USB 전원이 차단된다는 이야기다.


Atmega2560이 동작하기 위해 필요한 기본 회로이다. Crystal 을 통해 시스템 클럭이 생성된다. 
AVCC는 ADC 같은 Analog 회로를 위한 전원이다. 

나머지 회로들은 Arduino 의 입출력 포트를 포함한 shield 와 연결되는 커넥터 들이다.

Shield로 부터 VIN을 공급받고 Shield 에 5V, 3.3V를 공급하기 위한 전원 커넥터이다.


Analog0~15 핀이다.


Digital0~53 핀이다.
Digital 핀들의 일부는 특정한 용도로 사용될 수 있다. 
예를 들면 50~53 핀은 SPI 통신을 위해 사용될 수 있고,
Digital0, 1, 14~21 은 UART, IIC 등의 통신용으로 사용이 가능하고,
Digital2~13은 PWM 제어용으로 사용할 수 있다.







Posted by mahnee

제작된 Huxley를 열심히 테스트 중이다.


베드도 알루미늄 가공하여 붙여주고,

베드 조립하면서 알게된 사실은 Y축 벨트의 장력 때문에 프레임이 살짝 휜다는 것!!


그래서 프레임을 보강하기로 했다. 



일단 핫베드를 떼어낸다.





핫베드는 MK2 Heated PCB위에 알루미늄 판을 바로 올렸는데, 혹시 사용중 쇼트가 생길까 걱정되어 캡톤테잎을 붙여주기로 했다.

PCB의 사이즈 보다 조금 크게 자른다.




테잎이 너무 얇아 붙이는데 좀 고생을 했다.

아이패드에 보호필름 붙이던 실력을 발휘해서 붙였다.




붙이고 남은 부분은 뒷면으로 돌려 마무리~!




깔끔하게 붙었다.





자.. 이제 프레임을 보강할 차례.

프레임을 보면 화살표 표시한 곳이 안쪽으로 휜것을 볼 수 있다.


타이밍 벨트의 장력에 의해 휜 것이다.





보강용 전산볼트를 절단한다.

원래 삼각형 프레임을 구성하는 전산볼트 길이는 310mm 지만,

바깥쪽에서 조여줄 필요는 없고 모터와의 간섭을 피하기 위해 300mm 로 절단했다.




볼트류를 절단할 때는, 안쪽에 너트 두개를 넣고 시작하는 것이 좋다.

절단시 두 개의 너트가 볼트를 잡아주고, 가이드 역할을 한다.

또한, 절단 후 망가진 나사산을 복구하는 역할도 한다.


나사를 길이에 맞게 끼우고, 바이스에 물려준다.




쇠톱으로 절단을 했다.

절단면이 거칠다. 

바이스로 안쪽 너트만 물리고 바깥쪽 너트는 빼준다.

이 때 일차적으로 나사산이 복구된다.




줄로 절단면을 다듬는다.

그리고 남은 너트를 빼면 다듬으면서 망가진 나사산이 다시 복구 된다.

너트를 빼고 절단면을 줄로 살살 한번더 다듬는다.

이렇게 하면 절단후 너트를 끼우는 것도 쉽다.




미리 뽑아둔 보강용 부품.

삼각형 프레임을 구성하는 부품 중 상단에 올라가는 부품을 수정했다.

프레임을 분해하지 않아도 끼울 수 있게 홈을 팠다.


이 중 하나는 모터와 간섭을 피하기 위해 일부를 잘라냈다.




적당한 간격으로 보강용 부품을 한쪽에 끼운다. 

모터쪽에 먼저 끼우고 간격을 맞추기 쉽게 조정했다.




이런 식으로 끼워지게 된다. 




반대쪽에 부품을 끼우기 전에 부품과 잘라둔 전산 볼트를 아래와 같이 결합한다.

(다 조립하고 보니 와셔를 안끼웠다.)




반대쪽도 간격을 맞춰 부품을 끼워준다. 

이때 전산 볼트의 한쪽을 모터쪽 부품에 먼저 끼워주고 프레임을 조립한다. 






보강용 부품을 끼우고 간격을 재보면,

원래 270mm 이어야 하는 간격이 3mm 가 줄어들어있다.

너트를 돌려 간격을 다시 맞춘다.





간격이 270mm 로 조정되었다.




다시 위에서 보면, 안쪽으로 휘었던 프레임이 곧게 보강이 된 것을 볼 수 있다.




다시 베드를 조립하고 수평 조정을 하면 끝.


Posted by mahnee

모델 출처 : http://www.thingiverse.com/thing:72040


원료 : 잘난남자님 플라실 오렌지색(?)

배율 : 0.5

노즐 온도 : 205

베드 온도 : 100 

속도 : 40mm/s

채움 : 25%(의미없음)

압출량 : 100%

레이어 두께 : 0.2mm

벽두께 : 1.2


출력시간 : ?분(기억 안남 ㅡㅡ;)



품질을 높이기 위해 온도를 낮춰 보았다.

205도에서도 잘 뽑힌다. 




근데... 뒷태가 엉망..




디테일 샷.(클릭하면 커짐!!)


      


'공작 > 3D 출력물' 카테고리의 다른 글

안녕 문어!  (0) 2014.04.10
Posted by mahnee

블로그 이미지
온갖 자작과 공학 전반에 걸쳐 관심이 많은 ..
mahnee
Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함