', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); 'Making/스마트 디스펜서' 카테고리의 글 목록 :: MakerLee's Workspace
728x90

OLED 통합한다고 해놓고 한참 걸렸네요.

부품 수급과 드라이버 회로 테스트하고 이것저것 하다보니 많이 늦었습니다. 

 

처음 만든 회로는 실패하는 바람에 다시 한번 관련 자료를 찾아 회로를 수정하고 부품을 수급하고 테스트 과정을 거쳤습니다. 

관련 포스팅 : https://pashiran.tistory.com/1375

 

 

 

 

 

 

 

 

 

 

 

 

실크스크린을 이용해 납을 올리고 핀셋으로 하나하나 부품을 올려줍니다. 

 

 

 

 

 

저는 오븐이 아니라 핫 플레이트를 사용하는지라 앞면에 부품이 납땜된 후에 뒷면에 부품을 올리기 어렵습니다. 

그래서 급하게 솔리드웍스에서 지그 설계를 하고 출력해 사용했습니다. 

 

 

 

 

 

 

이후 뒷면은 히팅 건으로 가열해서 마무리를 해 줍니다. 

 

 

 

 

 

 

아두이노 부트로더를 올려줍니다. 

 

 

 

 

아두이노 나노를 베이스로 삼았기 때문에 위와 같이 세팅하고 부트로더를 올려주면 됩니다.

저는 아두이노에 arduino as isp 스케치를 올려 프로그래머로 사용하기에 [Programmer :"Arduino as ISP"] 를 선택했습니다. 

 

 

 

 

부트로더가 올라간 보드에 간단하게 blink 스케치를 약간 편집해 넣었습니다.

업로드해서 테스트해보면 잘 되는 것을 볼 수 있습니다. 

 

 

 

 

U8glib 예제를 넣어봤습니다. OLED도 잘 되는군요. 

점검해 보니

1. USB 커넥터를 Bottom으로 보내야 겠고

2. Reset 스위치를 제거했더니 쓰기가 불편해서 다시 넣어야 할 것 같습니다. 

3. OLED 위치도 약간 조정이 필요하네요.

 

 

 

[진짜진짜_마지막_최종] 수정 버전의 PCB를 주문했습니다. 

주문한 PCB가 올 때까지는 기존 보드를 사용하면서 스케치를 수정하려 합니다. 

728x90
728x90

이제 완성도를 높이기 위한 작업중입니다. 

시제품에서 완제품 단계로 넘어간다고나 할까요. 

 

OLED 모듈이 튀어나와 있기 때문에 설계시 걸리는 부분이 있는데요. 

이걸 어떻게 할 수 없을까 하고 검색하다 보니 드라이버 회로가 보이더군요.

 

 

 

생각보다 간단한 구성회로에 온보드로 넣기로 합니다. 

 

 

 

 

 

 

기존 회로는 부품이 전부 전면 배치였기 때문에 일부를 뒷면으로 옮기고 잘 정리하니 기존 PCB 사이즈에서 전부 집어넣을 수 있었습니다. 

 

 

 

PCB와 부품들 주문하고 기다리는 중입니다. 

도착하면 납땜하고 테스트하고 다시 3D 설계 수정하고 프로그램 마무리할 계획이고요

메이커페어 나가느라 서둘러 급하게 마감했던 물건들 처리하는데만 몇달은 걸리겠네요

 

 

 

 

728x90
728x90

프로그램을 하다 보니 모터의 기어비를 정확하게 알아두는 게 좋겠더군요. 

하지만 알리의 N20모터 판매자들은 전부 기어비를 정확하게 명시하지 않고 RPM으로만 적어두고 있습니다. 

RPM 정도는 전압만 바꿔도 엄청 차이나겠죠. 

 

 

 

 

 

 

 

갖고 있는 N20 모터들이 많다보니 이걸 좀 깔끔하게 정리하고 싶다는 생각이 들더군요. 

 

 

 

 

 

 

 

생각해 보니 이 모터의 기어박스들은 전부 깔끔하게 떨어지고 서로 호환이 가능합니다. 

그러면 기어박스의 기어비만 따로 측정해서 분류하고

모터들은 모터들끼리 분류해 놓으면 원하는 스펙을 맞춰서 사용할 수 있겠다는 생각이 들었습니다. 

 

 

 

이렇게 기어끼리 따로 분리를 해 놓고 남은 모터들에 대해선데요

 

모터 분류가 좀 애매한데, 이것도 여러 회사에서 만드는 것인지 잘 뜯어보면 디테일이 약간씩 다릅니다. 

어쨋건 저항을 재 보면 

3V 모터는 18~20ohm

6V 모터는 7~10ohm

12V 모터는 23~32ohm 

정도로 나옵니다.

3v 모터와 12v 모터의 저항값이 겹치는 부분이 있는데

실제 전원을 연결해 보면 알 수 있기도 하고 라벨을 달아서 따로 보관하려고 합니다 .

 

 

 

 

그리고 이제 기어비를 측정하기 위한 장치를 만들어 줍니다. 

엔코더가 달린 N20 모터를 달아줬습니다. 모터의 1회전마다 엔코더는 12번의 신호를 발생시킵니다.

 

 

 

 

 

 

 

그리고 이렇게 기어축에 센서를 달아서 최종기어의 1회전시 모터가 몇 회전했는지를 체크하면 기어비를 알 수 있겠죠. 

728x90
728x90

지난번 포스팅에 이어 역시나 수정사항이 또 있었지만;

 

그래도 이번엔 최종완성본이라 할 만한 물건이 나왔습니다. 

 

 

 

 

아두이노에서 5V 전원을 따오려면 별도로 납땜을 해야 합니다

사진의 빨간 전선 부분이 그 부분이고요.

 

 

 

 

 

 

 

이렇게 조립을 하면 OLED 부분이 위로 튀어나오는데

조립시에 저 부분이 케이스 안으로 들어가도록 설계하는게 힘들었습니다. 

 

 

 

 

 

 

 

 

 

동작 모습입니다. 

 

 

728x90
728x90

 

 

 

 

 

 

 

메인 프린터를 프루사에서 자작 보론으로 바꿨더니 수정사항이 또 쏟아지는군요.

크게 수정할 부분은 없고 깨작깨작 0.2mm 바꿨다가 0.5mm 바꿨다가의 반복입니다. 

 

 

 

 

이 와중에 또 설계미스가 발견되어 새 PCB 주문..

그래도 정말 이번은 [정말_진짜_최종_수정]  이라 믿어봅니다. 

 

 

728x90
728x90

미세조정을 위해 가출력해봤습니다. 

중고로 저렴하게 산 필라멘트 들로 출력을 했더니 색깔이 알록달록 하네요

 

 

 

 

 

 

 

그립감은 괜찮은 듯 하군요

 

 

 

 

 

 

프로그램 업로드를 위해 임시로 옆면에 길게 슬롯을 내 줬습니다

 

 

 

 

 

 

 

출력물의 오차 때문에 수치를 어느 정도 감안해서 설계를 하는데,

작은 물체는 오차가 심해져서 딱 맞도록 조정하는 데 여러 번 수정해야 합니다. 

며칠 간의 수정 끝에 만족할 만 하게 나왔지만 크기는 다소 커졌습니다. 

 

 

 

 

 

 

큰 덩어리의 설계는 거의 다 된 것 같습니다. 나머지는 SW와 병행해서 진행해야 할 듯. 

 

 

 

728x90
728x90

지난번 포스팅 이후 2번의 수정이 있었습니다. PCB 주문만 몇 번을 하는지 모르겠네요

전면부의 스위치 보드와 후면의 컨트롤 보드가 연결되는 형식입니다. 

 

 

 

 

 

 

두께를 최대한 얇게 해야 손잡이 부분이 잡기 쉬울 것 같아서 아두이노를 온보드로 올렸습니다. 

업로드 핀을 잘못 지정해서 점퍼를 날렸습니다. 

 

 

 

 

 

 

 

최대한 얇게 다듬었더니 전보다는 좀 보기 좋군요. 
이제 출력해가면서 맞춰봐야겠습니다. 

 

 

728x90
728x90

엔코더가 달린 모터를 사용하고 있으므로 위치의 정밀 제어를 할 수 있습니다. 

모터는 기어드 DC 모터라서 모터가 정지할때 정위치에 정지하는게 아니라 관성회전하면서 멈추는 상황이죠. 

이를 PID 제어로 정확하게 정위치에 멈추도록 제어할 수 있습니다. 

 

 

 

 

 

 

하지만 게인값을 아무리 바꿔봐도 계속 왔다갔다 하면서 제어가 안되네요. 

게인값을 수정하면 좀 변화라도 있어야 하는데 전혀 변화가 없는 느낌입니다. 

 

 

 

 

 

 

 

 

 

정/역회전을 반복하면 리셋되는 문제가 있어서 테스트보드를 다시 만들어서 테스트해보는 중입니다. 

여러모로 확인해 본 결과 전원부와 모터 역기전력만 막아주면 괜찮을 듯 하네요. 

그리고 PID 제어는 빼고 ON-OFF 로만 해도 문제 없을 것 같습니다. 

주사기를 누르는 부하가 브레이크가 되는지라 오차값 이내에서 거의 정확하게 멈추네요. 

오히려 PID 제어를 넣을 경우 목표값 근처에서 pwm 출력을 줄이므로

목표값에 다다를 때쯤 모터 제어가 급하게 변경되면서 제자리를 찾기가 힘들어지는 것 같습니다. 

 

 

 

 

 

 

전체 구조가 너무 굵고 못생긴데다 손에 잡히는 느낌도 안 좋습니다. 

구조를 변경하면서 하드웨어를 전부 재설계하기로 하고 새 PCB를 주문했습니다. 

새 PCB가 오면 기구설계를 다시 진행하겠습니다. 

728x90
728x90

 

요 며칠간 작업 진행이 잘 되어 제작에는 큰 무리가 없을 것 같습니다. 

하지만 크림납 주사기를 고정하고 밀어보니 다소 힘이 부족하더군요. 

 

 

 

 

 

 

 

아주 약간만 더 강하면 될 것 같아 더 낮은 기어비의 모터를 주문했습니다. 

하지만 그렇다고 아주 극단적으로 낮은 기어비를 주문할 순 없고

정확하게 어떤 모터가 제일 나을지 알 수 없으므로 3종류의 다른 기어비로 주문했습니다. 

이렇게 쓸데없는 부품들이 계속 남게 되는거죠. 

 

 

 

 

 

 

 

 

 

 

모터축이 1회전시 엔코더 신호는 12가 나옵니다. 

M4 볼트의 피치(리드)는 0.7mm 입니다. 

그렇다면 여기에 모터의 감속비만 넣으면 간단하게 계산이 되겠지요. 

문제는 이 모터는 구매 페이지에 RPM만 표시가 되어 있고 감속비는 써있지 않습니다. 

하지만 엔코더가 달려있으니 회전수 측정은 정확하게 할 수 있죠

 

 

 

 

 

 

 

일단 종동축이 1바퀴 회전할 때까지 모터축을 돌려봤습니다 .

모터축 1회전이 12엔코더 이므로 1224/12 = 102회전.

 

 

 

728x90
728x90

 

프루사 MK3하고 mini 하고 나눠서 출력을 했더니 양쪽 공차가 약간씩 달라서 문제네요. 

아직 더 수정하긴 해야 하는데 일단 조립은 이런 식으로 된다는 것 정리해봤습니다. 

 

 

 

 

 

습진때문에 피부상태가 너무 흉해서 장갑을 끼고 찍었습니다. 

728x90
728x90

모서리는 조금 갈아내야 합니다. 

 

 

 

 

 

 

전원은 USB 포트를 사용하게 되어 있습니다. 

하지만 아두이노 보드의 VCC를 거쳐 나오게 되면 전원칩에 무리가 가므로 모터의 출력은 USB와 직결해야 합니다. 

나노 보드에는 USB의 VCC를 바로 연결하는 핀이 없으므로 점프선을 VIN 핀과 연결했습니다. 

 

 

 

 

 

 

일단 OLED를 테스트해봅니다. 

 

 

 

 

 

 

 

엔코더 신호를 직접 OLED에 표시하도록 하고 왕복하도록 코딩한 뒤 모터를 돌려봤습니다. 

잘 되는군요. 

728x90
728x90

처음 회로를 만들고 USB 케이블을 넣자마자 아두이노 퓨즈가 타버렸습니다. 

분리하고 퓨즈 교체후 살아나긴 했습니다. 배선을 잘못 해서 VCC와 GND가 엮였더군요. 

 

아두이노 회로가 OLED 밑에 있는데다 연결된 선이 많아서 수리하기가 매우 번거롭습니다.

수리해서 다시 납땜하고 OLED 테스트를 해서 잘 나오는걸 확인했습니다. 

이후 다시 모터배선을 하고 돌아가는 걸 확인. 

이후 다시 모터 배선을 빼고 모터의 엔코더 신호를 테스트하려던 중

또다시 타는 냄새가 납니다. 

 

확인해보니 방금 떼어낸 모터선이 기판을 건드려서 합선이 났더군요.

반나절을 또 날린 느낌에 분노를 억누르며 PCB 작업을 했습니다. 

.

 

 

 

 

기판이 상하로 나뉘어야 하기 때문에 2개의 기판을 분리할 수 있게 작업을 했습니다. 

요즘은 배선을 전처럼 공들이지 않고 Autorouter로 대충 돌린다음 간단하게 수정만 하는 편입니다. 

복잡한 회로는 배선정리를 해야겠지만 제가 하는 작업은 그럴 필요가 없는 편이죠. 

 

 

 

 

잘 보면 분리되는 부분에 왠 VCC,GND가 연결되어 있습니다. 

전에 비슷한 작업을 했을 때 기판이 나뉘어있으니 별도의 디자인이라고 추가요금을 지불한 적이 있기에 그걸 회피해 볼 요량으로 꼼수를 부려봤습니다 .

 

 

 

 

 

 

하루가 지나니 support 담당자의 메일이 왔습니다. 

위 작업을 아래처럼 진행하면 안되겠냐고 합니다. 

절대 안된다고 했습니다. 

그랬더니 엔지니어에게 다시 물어보겠다고 하네요

 

 

 

 

이후로 메일이 안오길래 홈페이지에서 확인해 봤더니 In Production으로 바뀌어 있네요.

제대로 나올지 좀 걱정이 됩니다. 

728x90
728x90

내부 기판 설계를 집어넣다 보니 기판이 없이 설계를 하기는 힘든 상황이 왔습니다. 

그래서 일단 회로를 하나 제작해야 할 것 같더군요.

 

 

 

 

 

 

1.6T 기판으로 설계를 했지만 자르기가 번거로워 가위로 자를 수 있는 얇은 기판을 사용합니다. 

 

 

 

 

 

 

쉽게 잘랐습니다.

 

 

 

 

 

 

 

다른 부품들은 전부 중심선에 배치가 되는데 아두이노만 어긋납니다. 

설계할때 중심잡기가 귀찮으니 일단 중심에 넣고 선을 휘어서 연결하기로 했습니다. 

 

 

 

 

 

위아래로 어떻게 구조물이 들어갈지 모르니 튀어나온 핀들은 전부 짧게 잘라줬습니다. 

 

 

 

 

 

 

모터 드라이버는 L293을 사용합니다. 

연결핀을 납땜한 후 연결핀의 검은색 플라스틱 부품을 올렸습니다. 

 

 

 

 

이렇게 높이를 잡아 납땜했습니다. 

스위치의 상면이 OLED와 전면부 커넥터의 상면과 정렬이 되어야 합니다. 

 

 

 

 

회로는 복잡하진 않습니다만 작은 기판에 배선이 좀 귀찮을 듯 합니다. 

PCB를 제작할까 좀 고민이 되는데 여러개 제작할 것 같진 않고 해서 일단 보류입니다. 

 

 

 

 

 

납땜시 참고하려고 배선할 선들의 노트를 적어뒀습니다. 

728x90
728x90

딱 한번 크림납을 사용해 봤지만 그 편리성에 반했습니다. 

꼭 스텐실을 사용하지 않더라도 제가 SMD 작업을 많이 하는 이상 크림납 작업을 하는게 많이 편리할 것 같더군요. 

 

하지만 일반 주사기를 손으로 제어해서 크림납을 정량으로 압출하는 것은 매우 힘이 듭니다. 

 

 

 

 

 

그래서 알아보니 이런 물건이 있더군요. 

한 50년대쯤 개발된 물건 같은데 원리는 간단합니다. 

공기압력을 일정시간 ON/OFF 해서 조금씩 주사기를 밀어내는거죠. 

액체의 점도에 따라 공기압은 수동으로 조절하고요. 

당연하게도 저걸 사용하려면 컴프레서가 따로 필요합니다. 

뭐 이런 무식한 기계를 지금까지 쓰고 있나 싶습니다. 

 

 

 

 

 

 

 

https://www.i-extruder.com/

대체할 물건을 찾다가 킥스타터에서 봤던 물건이 생각나서 찾아봤습니다.

펀딩에는 실패한 것으로 기억하는데 그래도 제품은 판매를 하는군요.

주사기를 내부에 넣고 스위치를 누를때마다 뒤에서 모터가 조금씩 밀어주면 되는 시스템입니다. 

 

 

 

 

자세한 내용은 동영상 참조. 

 

 

 

 

 

 

 

비슷한 생각을 저만 한 것은 아닌지 이런 물건을 만든 분도 있더군요. 

 

 

 

 

 

 

 

일단은 한 손에 들수 있는 모양이 나을 것 같아 이쪽으로 설계를 하는 중입니다. 

보드는 아두이노 나노 보드가 들어갈 수 있을 것 같긴 한데 사이즈가 모자라면 따로 보드를 제작해야 할 것 같네요

 

 

 

 

 

 

일부만 출력해서 스위치 누름에 문제가 없는지 테스트 중입니다. 

 

 

 

 

 

주문한 모터가 도착하면 본격적으로 테스트를 해 볼 생각입니다. 

728x90

+ Recent posts