반응형

부제: Wemos d1 + CNC v3을 이용한 OnStep 제작 삽질기

 

들어가기

 

10여년 전 대학원 생활을 시작하면서, 밤하늘의 별을 보는 일이 거의 없어졌습니다. 무거운 장비를 들고 나가기에는 대학원 생활이 정신적인 여유가 없었습니다. 그럼에도 간단히 별을 보겠답시고 Kenko사의 SE120과 GSO사의 ATZ 경위대만 남겨뒀습니다. 이제는 봉급쟁이라 돈도 시간도 여유가 있을법도 한데(돈은 스쳐지나가고 있는지라 여유가 없네요), 요즘에는 아주 가끔 1년에 한두번 정도 집 앞에서 간단히 보는 정도입니다. 오랫동안 별을 보지 않아서 그런지 이래저래 수동으로 관측대상을 찾는 일도 귀찮고, 미동나사를 돌려가며 대상을 수동으로 추적하는 것도 여간 귀찮은 일이 아니더군요.


그러다 최근 파견 근무 때문에 이사를 하고 ATZ 경위대를 담은 가방을 제 책상 밑에 두게 되었는데, 어느날 문득 가방을 열었다가 "3D 프린터 보드를 이용해서 컨트롤하면 되지 않을까?" 생각이 들었습니다. 근데, 세상은 넓고 제가 생각한 것은 전세계 어디선가 이미 누군가가 생각하고 실행을 옮겼더군요. 그렇게 OnStep이란 것을 알게 되었습니다. OnStep을 알기 전에는 좌표계 계산과 천체 좌표 목록 등 어떻게 계산하고 데이터 베이스를 만들어 컨트롤할지, 코딩을 하면 얼마나 오래 걸릴지 고민이었는데 이미 만들어진 것을 가져다 쓰면 그보다 좋을 순 없겠죠.

 

어떤 기반으로 할까 (Wemos R32 + CNC v3)

 

OnStep 그룹에 가입하고 하나씩 살펴보니 어떤 기반으로 제작할지 고민이 되었습니다. Arduino Mega에 CNC쉴드를 달아 쓰는 것부터, STM32라든지, PCB 기판을 제작해서 Mini나 Max시리즈를 만드는 것까지 다양해서 고민이 되었습니다. 처음에는 Mini나 Max로 제작할까 생각을 해봤는데, 정밀한 사진을 찍을 것도 아니고, 드래곤볼 모으듯이 부품을 모으는 것도 귀찮고 경위대에 크게 돈을 들이지 말자는 생각에 Wemos R32에 CNC쉴드를 이용하는 것으로 정했습니다. (시간이 지나 생각해보면 Max나 Mini로 해도 크게 돈 들어가는 것은 없었을 것 같네요)

Wemos d1 r32 카피 보드

 

CNC V3.0 쉴드

그렇게 해서 구매한 wemos d1 r32 보드와 CNC v3쉴드입니다. 정확히 말하면 wemos는 아니고 어디 카피 버전이고, CNC쉴드는 V3.0으로 해야합니다.

 

납땜을 하고 싶지 않았는데..

 

개인적으로 초등학교 저학년때부터 아카데미 전자키트를 조립하곤 해서 납땜을 해본 경험은 있지만, 가급적으로 납땜을 안하려고 했습니다. 그럼에도 납땜을 해야할 일이 생기더군요. 우선 wemos 보드에 12 V 어댑터를 꽂는 단자가 있고, 여기서 CNC쉴드로 12 V를 보내줘야 하는데 우선 떠오르는 방법이 그냥 전선을 납땜하는 방법이었습니다.

 

그냥 전선을 납땜하여 연결합니다...

 

위의 사진처럼 극성에 맞춰 wemos 보드에 전선을 납땜하여 붙이고 CNC쉴드에 연결하였습니다. 납땜을 안하려면 아래 사진과 같이 2분배 케이블을 구매하셔서 2개 단자 중 하나를 잘라내고 선을 따서 사용하는 방법도 있습니다. 저는 배송비가 물건값보다 더 나가기에 납땜하는 것을 택했습니다.

12 V 2분배 케이블

 

 

CNC쉴드의 10 kΩ의 저항 제거

 

CNC v3.0 쉴드는 보통 아두이노 등 5 V 보드에 붙여 사용하는데, wemos 보드가 3.3 V라서 CNC쉴드에 있는 10 kΩ을 제거해야 한답니다.

R1 위치의 저항은 그냥 잘라내는 걸로..

위 사진의 R1 위치가 10 kΩ이 붙어있던 위치입니다. 납땜으로 떼어내니 귀찮습니다. 그냥 잘라내시면 됩니다. (이때, 10 kΩ 저항을 잘 보관했어야 했습니다. 운이 나쁘면 이 저항을 써야할 수 있습니다...)

 

모터 드라이버의 선택

 

wemos d1 r32 + CNC v3 조합에서 추천되는 모터드라이버는 LV8729와 S109입니다. 요즘에는 취급하는 곳이 많지 않지만 3D 프린터 부품 파는 스토어에 보면 1개에 만원 안쪽으로 살 수 있습니다. OnStep 위키에서 설명하는 가격의 메리트가 없긴 합니다. 알리익스프레스에서 사면 물론 싸겠지만, 그냥 국내에서 LV8729를 구매했습니다. 1/16 Step을 쓸거라면 A4988와 같이 한 개에 1천원 내외의 드라이버를 사용해도 되긴 합니다. TMC 모터 드라이버를 써도 되는 것 같긴 한데, 귀찮은 작업이 많아 보였습니다. 



일반적으로 LV8729를 검색하면 아래 표를 보게 되는데, CNC v3 쉴드에는 MS0, MS1,MS2로 숫자가 1씩 낮게 표기 되어 있습니다. 

저는 1/64 step으로 설정하였고, 따라서 CNC 쉴드 상 MS1, MS2에 점퍼를 꽂았습니다. 나중에 필드 테스트 때 토크가 딸리면 1/32로 바꾸던 V_ref 값을 조절해야 할지 모르겠습니다. (나중에 마음이 바뀌어서 1/32로 바꾸었습니다. 사진들에는 1/64 step으로 점퍼를 달아놨지만, 현재는 1/32 step으로 점퍼를 수정하여 달아놨습니다.)

 

이전에 3D 프린터를 제작하곤 할 때 보면 모터드라이버를 구매하거나, 관련 보드를 사면 점퍼들이 여럿 꽂혀 있어서 남아 돌곤 했었는데, 이번에는 점퍼를 하나도 주질 않아서 당황했습니다. 하나에 10원도 안되는 부품을 몇 천원 택배비를 내고 구매하긴 아깝더군요. 납땜으로 연결하려다, 오랫동안 사용하지 않던 전자보드에서 점퍼를 뽑아다 썼습니다. 다음부턴 기회될 때 점퍼를 조금씩 구매를 해야겠습니다.

 

 

ST4 인터페이스를 위한 저항연결

 

나중에 SHC(Smart Hand Controller)를 제작하여 컨트롤러로 제어할 생각이므로, ST4 연결을 위해 Pull up 저항을 연결하였습니다. pull up 저항에 대한 정확한 개념은 모르겠습니다. 시그널을 정확하게 원하는 값으로 보내주는 역할인 듯 한데, 그냥 그런게 있는갑다 생각하고 있습니다.

 

 

위 사진처럼 2 kΩ저항을 연결하였습니다. (지저분한 납땜 보소.. 다이소 인두기 탓을 해봅니다.)
본래는 아래 사진과 같은 저항을 연결하는 것이지만 2 kΩ저항을 이용해서 만들었습니다. 2 kΩ 근처 값이면 어느 저항이든 가능하답니다.

납땜이 지저분하게 되어 알아보기 힘드시겠지만 CNC쉴드에는 저항 4개 각각 아래 부분에 연결되어 있고, 저항 위쪽으로는 저항끼리 연결되어 왼쪽 끝 3.3 V핀에 연결하였습니다. 저항과 바로 위 핀에 연결한게 아닙니다. 오히려 쇼트나는 것을 방지하기 위해서 캡톤테잎으로 막았습니다.

그냥 저항 사서 깔끔하게 붙이면 되긴 하지만, 저는 집에 굴러다니는 저항을 이용해서 저렇게 했습니다. 

 

DC to DC 컨버터, 삽질의 시작

 

Wemos d1 보드 중 DC to DC 컨버터가 제대로 작동하지 않는 것들이 가끔 있습니다. 12 V 전원만 인가하였을 때, 5 V 나 3.3 V핀에서 아주 낮은 값이 나오는 보드가 있을 수 있습니다. Onstep 그룹에서도 언급되기도 했지만 상세한 설명이 없어서 뭔지 몰랐었고, 주로 일본 블로그에서 확인할 수 있었습니다.
12 V만 인가하였을 때, 5 V와 3.3 V 핀에서 값이 근접하게 나오면 아래의 삽질은 무시하셔도 됩니다. 잘되는 것을 함부로 인두로 지졌다간 귀찮아집니다.


Wemos d1 + CNC v3 조합은 블루투스를 이용하여 휴대폰 어플로 조작 가능합니다. 제 경우에는 결국 컨트롤러를 제작하여 사용할 예정이긴 하지만, 컨트롤러 제작 전에 보드가 제대로 작동하는지 확인할 필요가 있었습니다. 우선 모터들이 작동하는지 확인하는 과정에서 이상한 점을 알게 됩니다.

  • 마이크로 5핀을 Wemos d1 보드와 컴퓨터를 연결해 둔 상태에서는 블루투스가 잡힘. 이후에 12 V를 인가하여도 문제 없음
  • 마이크로 5핀을 Wemos d1 보드와 고속충전기 5 V와 연결하면 블루투스가 잡히지 않음. 보드의 LED도 들어오지 않음 (전류가 높은건가...)
  • 12 V를 Wemos d1 보드에 먼저 연결하면 (마이크로 5핀은 연결 안하거나, 12 V 인가 후 연결할 경우) 블루투스가 잡히지 않음. LED도 안들어옴.

 

필드에서는 12 V 배터리 하나만 이용하고 싶은데, 마이크로 5핀으로 따로 5 V 값의 전압으로 전원을 공급해야 하는 것은 마음에 안듭니다. 게다가 보조배터리로 연결해보니, 전류값이 높아서인지(추측) 제대로 작동하지 않습니다.

 

이제부터 삽질이 시작되었습니다. 구글링을 해보니 일본의 모 블로거께서 블루투스의 안정을 위해 보드에 47 kΩ 저항을 연결했다는 사진을 보게 됩니다.

 

출처: https://teraoblog.wordpress.com/2021/09/17/the-wemos-r32-with-cnc-v3-shield/

 

우선 말씀드릴 것은 위의 사진은 잘못 연결된 것으로 보입니다. 위의 사진대로 따라했다 피곤해졌습니다. 기존에 있던 103 칩저항을 제거하고 47 kΩ을 연결했는데, 이러면 원하는 12 V 전원 하나로 블루투스가 연결되지 않습니다. 해당 블로그에서는 블루투스에 안정을 위함이라 설명하였으나, 옵션이며, 안해도 잘된다고 설명하였습니다. 네, 마이크로 5핀으로 적절한 전압을 먼저 인가하고 있으면 됩니다. 또, 그렇게 설명하였고요.

 

저는 회로를 모르니 이를 이해할 능력도 안되고, 저렇게 하면 되겠거니 아무 생각없이 냉납이 속출하는 저가의 다이소 인두로 103 칩저항을 지져서 날려버립니다. 그리고 47 kΩ저항을 그 위치에 연결해봤습니다. 네, 아무런 효과가 없었습니다. 다시 인두로 지져서 103 칩저항으로 바꿔줍니다. 12 V만 인가하였을 때, 작동하지 않습니다. 그 일본 블로거 분께서 대체 왜 이런 효과없는 일을 했을까 좀 더 구글링을 해보고, OnStep 그룹을 뒤져보니 아래와 같이 다른 일본 블로거의 사진을 보게 됩니다.

 

출처: https://takashi-lab.hatenablog.jp/entry/2021/05/15/190000

 

사진을 보시면 103 칩저항이 붙어있는 상태에서 47 kΩ 저항을 병렬로 붙였습니다. 103 칩저항이 10 kΩ이니, 병렬으로 47 kΩ을 연결하면 약 8.25 kΩ이 됩니다. 칩저항을 날려버리고 47 kΩ을 연결하면 그냥 47 kΩ이니, 8.25 kΩ과 47 kΩ은 많은 차이가 있습니다.

 

결론적으로 위의 사진처럼 병렬로 연결해야 12 V 전원만 인가할 때에도 블루투스가 안정적으로 작동합니다. (다시 이야기 하지만 DC to DC 컨버터가 본래 정상이면 이 짓을 안해도 잘 작동합니다.)

위 사진을 보고 당황스러운 마음에 다시 다이소 인두로 열심히 지져 봅니다. 네. 103 칩저항이 사망했습니다. 그리고 기판의 구리선이 일부 떨어져 나갔습니다.


좋은 인두 쓰세요. 

잠깐 Wemos d1 보드에 애도를 표하려다 떨어져 나간 기판 도선이 결국 옆에 473 칩저항으로 가는 것으로 보이길래 473 칩저항 쪽으로 일반 저항을 연결을 시도합니다.

 

앞서 CNC v3에서 떼어낸 10 kΩ 저항을 잘 가지고 있었다면 좋았을텐데, 마땅한 저항이 없어서 4.7 kΩ 한 개와 2 kΩ 두 개를 직렬로 연결하여 전선을 이용해 사망한 103 칩저항 위치에 연결합니다. 저항이 병렬처럼 보여도 기판 뒤쪽에서 직렬로 연결했습니다. 제 경우에는 테스터기를 찍어보니 저항이 8.5 kΩ으로 나왔는데, 12 V 전원만 인가하여도 블루투스도 잡히고, LED 등도 들어옵니다.

 

일본 블로그에서는 47 kΩ 저항을 병렬로 연결하여 5 V 핀에서 4.8 V가 나오게 되었다고 설명하였는데, 제 경우에는 5.2 V가 나옵니다. 저항 조합을 이리저리 바꿔가며 7~9 kΩ 주변 값으로 많이 테스트를 해봤는데, 저는 오히려 9.1 kΩ에서 딱 5 V 값이 나오는 것을 보니 보드마다 조금씩 다르지 않을까 싶습니다. 

 

혹시 몰라 하나 여분으로 가진 새 보드의 103 칩저항에 47 kΩ을 병렬로 연결해서 측정해보니 5 V 핀에서 5.4 V가 나왔습니다. 여분의 보드에 47 kΩ을 연결할 때에도 이걸 왜 하는 것인지 몰랐습니다. 멀쩡하게 작동하는 보드에 불필요하게 저항을 붙인 것일 수 있습니다. 저항 연결 전에 5 V 와 3.3 V 핀의 전압 값을 먼저 확인해봤어야 합니다. 잘 나오면 이 짓을 할 필요가 없습니다. 전압이 낮게 나온다면 그냥 103 칩저항에 47 kΩ을 병렬로 붙이면 제일 속 편합니다. 앞서 저세상으로 보낼 뻔했던 제가 가진 보드는 테스트 해보니 합성저항이 7 kΩ 후반 ~ 9 kΩ 초반 값이면 잘 작동하였습니다. 다시 강조하건데, 12 V만 인가했을 때, 부팅 잘되고 5 V, 3.3 V 다 잘나오면 할 필요 없는 작업입니다. 저는 여분의 보드에 확인도 없이 쓸데없이 납땜한 것일 수 있습니다.

 

이게 비단 블루투스만을 위한 작업은 아니었습니다. DC to DC컨버터가 제대로 작동하지 않으면, 블루투스나 ST4 연결 등이 제대로 작동하지 않습니다. 5 V핀과 3.3V핀에서 해당하는 전압에 근접한 값이 나와야 합니다.

 

블루투스가 잘 안잡혀서 고생할 때, wifi 모듈을 따로 달아서 SWS(Smart Web Sever)로 하는게 더 편하지 않을까 생각했었지만, 모듈이 없어 시도해보진 않았습니다. 아마 안되겠지요. DC to DC 컨버터가 정상작동 안하면 그냥 ESP32가 부팅(?)을 안합니다.

 

웃긴건 wemos d1 보드가 wifi를 지원하는 보드이긴 하나, onstep을 설치하여 wifi를 사용할 때에는 별도로 wifi 모듈을 따로 달아야 한답니다. 연산능력에 한계가 있다합니다..

 

DS3231 Real Time Clock (RTC) 모듈 연결

 

휴대폰 블루투스로 연결하면 시간 설정하는 것은 쉽고 순식간에 되기 때문에 굳이 필요하지 않지만, 제 경우에는 컨트롤러를 따로 제작하여 사용할 생각이므로 매번 시간을 설정하기 귀찮을 것 같아 DS3231 RTC 모듈을 연결하였습니다.

 

DS3231 모듈을 연결하는 것도 당황스럽습니다. Wemos d1 r32 보드와 CNC v3 쉴드를 연결해보면 알겠지만, 두 보드가 핀이 1대 1로 정확히 갯수가 맞는게 아닙니다. 위 사진에 wemos d1 r32 보드의 SDA, SCL은 CNC v3 쉴드에 연결되지 않는 부분이고, DS3231 모듈을 쓰려면 이 2개의 핀을 이용해야 합니다. 저는 점퍼선의 끝을 90도로 꺽어서 연결하였습니다.

 

 

대강 1차적인 작업은 끝났습니다. OnStep도 올려보고 모터도 연결해서 테스트를 해봤습니다.
이제 방열판 달고, 모터/컨트롤러/전원스위치 등을 어떻게 연결하고, 케이스는 어떻게 제작할지 고민해봐야겠습니다. 처음부터 계획적으로 시작한게 아니다 보니, 그냥 그때그때 다음 단계를 고민하며 즉흥적으로 하다보니 난잡해지고 있습니다.

 

[취미 생활/별보기] - #2 방치된 수동 경위대를 GOTO 경위대로 만들기 (OnStep)

[취미 생활/별보기] - #3 방치된 수동 경위대를 GOTO 경위대로 만들기 (OnStep)

[취미 생활/별보기] - #4 방치된 수동 경위대를 GOTO 경위대로 만들기 (OnStep)

반응형

+ Recent posts