산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

부품 및 소모품

Arduino Due 1 arduino.cc
3.2" TFT 400x240 SD 터치 모듈 (Due용 실드) 1 Elechouse 제품 사용
RTC DS3231 1 이베이 구매
GPS uBlox Neo 6M 1 이베이 구매
PS2 조이스틱 (Arduino용) 1 이베이 구매
DHT22 온습도 센서 1
HC-05 블루투스 모듈 1 이베이 구매
DRV8825 스텝퍼 드라이버 2
SY42STH47-1684B NEMA 17 모터 (44 N·cm 토크) 2
PCB (프로토타입 보드) 1
벨트 & 풀리 (40T x2, 10T x2, 망원경 마운트용 벨트) 2세트
저항 1k옴 10
커패시터 100µF 1
전자 부품 (와이어, 스위치 3개, 커넥터 등) 1세트

프로젝트 소개

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

개요

세계 최초의 독립형 Arduino 기반 망원경 제어 GoTo 시스템입니다.

기존 오픈소스 망원경 제어기는 라즈베리 파이(전력 소모 큼)를 쓰거나 Arduino를 PC/스마트폰/태블릿의 확장 장치로 사용했습니다. rDUINOScope는 PC, 태블릿, 휴대폰, 인터넷 연결 없이도 독립적으로 동작하며 아마추어 천문인이 밤하늘을 즐길 수 있게 합니다.

초기 목표는 SkyWatcher, Orion, Vixen 등 상용 GoTo 제품의 저렴하고 제작하기 쉬운 대안을 만드는 것이었습니다. 하드웨어 아키텍처는 Arduino DUE 보드와 시중의 저렴한 센서들로 구성됩니다. 제작 방법과 사용자 가이드는 프로젝트 웹사이트에 있습니다. 시스템의 핵심은 지속적으로 기능이 추가되는 소프트웨어가 로드된 Arduino DUE 보드입니다.

rDUINOScope는 Stellarium과도 연동됩니다.

상세 기능

rDUINOScope는 오픈소스, Arduino Due 기반 망원경 제어 시스템(GoTo)입니다. 독립형 시스템으로 설계되어 PC, 태블릿, 휴대폰, 인터넷 없이도 작동하며 멋진 관측 경험을 제공합니다.

기본적으로 최고의 250개 천체(메시에 카탈로그 및 히든 트레저 카탈로그)와 200개 항성 데이터베이스를 내장하고, 이들의 위치를 계산해 망원경을 향하게 합니다. 정렬 절차가 구현되어 있어 대상을 향해 이동할 때 "항상 접안렌즈에 들어오는" 경험을 제공하며, 대상이 접안렌즈에 들어오면 자동으로 추적합니다.

전자기기를 활용하고 싶다면 블루투스 통신(무선 설정)으로 모든 전자기기와 연결해 MEADE LX200 통신 프로토콜 기반 명령을 주고받을 수 있습니다.

모든 종류의 스테퍼 모터와 호환되며, DIY 마운트뿐 아니라 SkyWatcher, MEADE, Orion, Vixen 등 상용 제품에도 장착 가능합니다.

기능성: rDUINOScope 안에 무엇이 있나?

rDUINOScope GitHub

빌드 지침

1단계: 준비

시작 전에 소프트웨어 작동 원리를 이해해 자신의 필요에 맞게 변경하고 커스터마이징할 수 있어야 합니다. 이게 이 프로젝트의 가장 큰 강점 중 하나입니다!

이 부분을 이해하려면 프로젝트 파일에서 코드와 "libraries" 파일을 다운로드하거나 전체 패키지를 여기서 받으세요: https://rduinoscope.co.nf/downloads.php. 참조된 행 번호는 V2.1 Boiana EQ 코드 기준입니다.

Arduino 코드 구조를 아셔야 합니다. 보통 SETUP()과 LOOP() 두 섹션이 있습니다. SETUP()은 프로그램 시작 시 한 번 실행되어 시스템을 초기화하고, LOOP()는 초당 여러 번 반복 실행됩니다. 화면, 터치 입력 등이 깜빡이지 않게 하려면 Arduino가 사용자가 무엇을 기대하는지 알 수 있는 메커니즘이 필요합니다. 그래서 LOOP()에는 "터치 고려... 시간 고려..."만 있고 실제 활동은 별도 함수에서 처리해 프로그램 흐름을 제어하고 화면이 초당 여러 번 새로고침되지 않게 했습니다.

계산 로직

천체 위치 계산에 필요한 공식과 접근법은 다음 자료를 참고했습니다: https://www.stargazing.net/kepler/altaz.html - 위치, 현재 시간, 천체의 적경(RA)과 적위(DEC)를 알 때 시각(Hour Angle, HA) 계산법 설명.

calculateLST_HA() 함수(행 678)로 HA를 계산한 후, 이 사이트로 검증했습니다. 나중에 메시에 천체 DB를 추가한 후에는 Stellarium으로 교차 검증했습니다.

주요 문제는 공식 자체가 아니라 Arduino의 변수 타입 다루는 방식, 특히 계산 정밀도였습니다.

HA와 DEC를 구한 후 망원경을 향하게 하려면 모터가 얼마나 돌아야 하는지 알아야 합니다. 웜기어 비율(웜이 몇 바퀴 돌아야 기어가 360° 도는지)을 알아야 합니다. 제 Vixen Super Polaris는 RA/DEC 축 모두 144톱니 기어를 씁니다. 모터 회전량과 지구 자전 보상 주기를 계산하는 간단한 엑셀 파일(Gears_Stepper_Calculation.xlsx)을 만들었고, 같은 수학 모델을 코드에도 구현했습니다. 코드 상단(행 34-37)의 값만 본인 마운트에 맞게 바꾸면 됩니다.

// 마운트, 기어, 드라이브 정보
// HourAngle을 마이크로스텝 비율로 계산하는 데 사용
// 본인 설정에 맞게 이 부분 수정
// ---------------------------------------------
// 참고: RA와 DEC는 같은 기어 비율 사용 (내 경우 144톱니)
//----------------------------------------------
int WORM = 144;
int REDUCTOR = 4;        // 1:4 기어 감속
int DRIVE_STP = 200;     // 스테퍼 드라이브: 회전당 200 스텝
int MICROSteps = 16;     // 1/16 마이크로스텝 모드 (시차 추적용 - 최저 속도 결정)

비율을 계산하면 코드는 천체 좌표로 망원경을 향하게 하는 모터 회전량과 지구 자전 보상을 위한 클럭 속도를 알게 됩니다. 관련 함수는 행 906(Sidereal_rate())과 행 917(cosiderSlewTo())에서 시작합니다.

고려사항

이것은 소비자용 완제품이 아닙니다. 필요에 맞게 커스터마이징할 수 있어 유연하지만, 유연함에는 단점도 따릅니다. 그런 점들을 놓치지 않도록 "고려사항" 섹션을 포함했습니다.

if (SLEW_RA_microsteps > RA_microSteps){
  digitalWrite(RA_DIR, STP_BACK);
  digitalWrite(RA_STP, HIGH);
  digitalWrite(RA_STP, LOW);
  RA_microSteps += RA_mode_steps;
}else{
  digitalWrite(RA_DIR, STP_FWD);
  digitalWrite(RA_STP, HIGH);
  digitalWrite(RA_STP, LOW);
  RA_microSteps -= RA_mode_steps;
}

작업: 다음 코드 부분 수정: consider_Manual_Move(int xP, int yP), cosiderSlewTo(), Sidereal_rate().

활동 계획

이제 rDUINOScope GoTo 시스템 제작 활동을 계획할 시점입니다. 모든 것(HW, 도구, 재료)이 준비됐다면 2-3일 내 완료 가능합니다. 저는 밤에만 작업할 수 있었고 연구도 많이 해 4-5개월 걸렸습니다. 조립엔 대략:

2단계: 자재 조달

프로그램 작동 원리를 알았으니 자재 조달을 계획하세요.

자재 명세서(BOM): 대부분 중국 온라인 공급업체에서 구매했습니다. GPS, 블루투스, 조이스틱 등 몇 가지는 지연 방지를 위해 현지 구매했습니다. 총 약 $190 USD 들었습니다. 상용 시스템 가격에 비하면 매우 저렴합니다. 가격과 구매처 목록은 프로젝트 웹사이트(rDUINO_step2.html)와 이 페이지의 "COMPONENTS" 섹션에 있습니다.

더 싸거나 빠르게 구할 수 있다면 그렇게 하세요.

설계에 따라 40핀 케이블(TFT용), 조이스틱 고정용 플라스틱 볼트, Arduino Due 프로그래밍용 USB 케이블(박스 안에 넣어도 업데이트 가능하게), 팬 등이 추가로 필요할 수 있습니다.

집에 없다면 납땜 재료, 니퍼, 디지털 멀티미터 등도 구비하세요.

필요 소프트웨어: Arduino IDE와 관련 소프트웨어(드라이버, 보드 정의, 라이브러리)를 설치하세요:

  1. Arduino 웹사이트에서 IDE 다운로드 및 설치. 드라이버도 함께 설치됩니다.
  2. IDE 실행 → Tools → Board → Boards Manager에서 "Arduino SAM Boards (32-bit ARM Cortex-M3)" 설치.
  3. 사용한 라이브러리 팩을 다운로드해 Arduino IDE 설치 폴더의 "libraries" 폴더에 복사. (참고: "libraries"는 컴퓨터 폴더이기도 하지만 프로젝트 웹사이트의 완성 패키지 안에도 "_libraries" 폴더로 있습니다. 패키지 다운로드 후 확장자를 .ZIP으로 바꾸고 압축 해제해 "_libraries" 폴더 내용을 컴퓨터의 "libraries" 폴더에 복사하세요.)
  4. IDE 재시작 후 메인 프로그램 파일 "_02_Boiana_EQ.ino" 열기. 4개 지원 파일이 별도 탭으로 열립니다.

이제 코드 컴파일 후 Arduino Due에 업로드할 수 있습니다(Arduino를 컴퓨터에 연결한 상태에서).

참고: Arduino IDE 사용법을 모르면 공식 튜토리얼을 참조하세요.

3단계: 조립

자세한 지침은 프로젝트 웹사이트 rDUINO_step3.html 참조.

이제 실드 보드를 만듭니다. 실드 보드는 Arduino DUE 위에 쌓는 핀아웃 보드입니다. 일부 부품은 실드 보드에, 일부는 인클로저 박스에 장착하는 게 좋습니다. 제 배치는:

부품별 Arduino Due 핀 연결

부품하드웨어 핀Arduino 핀
GPS
GPS NEO 6MRX16
GPS NEO 6MTX17
RTC
RTC DS3231SDAA4
RTC DS3231SCLA5
Bluetooth
BT HC-05TXD14
BT HC-05RXD15
DHT
DHT22out3
Speaker
Piezo Speaker-2
PS2 조이스틱
PS2 joystickVRxA1
PS2 joystickVRyA0
Declination DRV8825
DEC DRV8825STEP6
DEC DRV8825DIR7
DEC DRV8825M010
DEC DRV8825M19
DEC DRV8825M28
DEC DRV8825RESET / SLEEP-
Right Ascension DRV8825
RA DRV8825STEP4
RA DRV8825DIR5
RA DRV8825M011
RA DRV8825M113
RA DRV8825M212
RA DRV8825RESET / SLEEP-
TFT Screen
TFT Shield 사용핀 (22-53) + SPI-
Day/Night Mode Switch-A3

이제 실드 보드 조립 준비 완료. 프로토타입 PCB를 준비해 어떻게 자를지 구상하세요. 모든 부품을 실장하고 배선 공간을 확보하며, Arduino에 꽂을 핀아웃을 납땜하세요. 실드 보드 위 부품이나 박스 위 부품용 커넥터로 연결되게 하세요.

아래는 조립 과정 사진입니다:

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

완성 후 보드를 연결하고 테스트했더니 작동 안 함! :( 배선 확인해보니 두 연결 사이에 브리지가 생겨 수정했습니다. 이 시점부터 모든 납땜을 꼼꼼히 검사하기 시작했습니다. 잘못된 배선으로 Arduino나 다른 부품이 타지 않은 게 천만다행입니다. NB: 모든 연결을 반드시 확인하세요! DRV8825와 모터 드라이브 배선도는 아래와 같습니다. 중요하니 꼭 따르세요.

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

적절한 전원 어댑터(12V, 1.6A) 사용하고 모터 드라이브를 전원 켜기 전에 연결하세요. NB: DRV8825에 부하가 걸린 상태에서 모터 드라이브를 연결하면 드라이버가 탈 수 있습니다!

이제 모든 부품이 납땜됐으니 모터 드라이브도 연결하고 소프트웨어를 Arduino에 로드해 전체 설정을 테스트하세요. 이 시점에선 글리치 없이 작동해야 합니다.

소프트웨어를 만져보며 사용자 인터페이스를 익히세요. 인터페이스 도움을 위해 프로젝트 웹사이트에 사용자 가이드를 만들었습니다.

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

4단계: 박스에 모두 넣기

실드 보드 준비되면 박스에 나머지 부품을 배치하고 구멍 뚫을 위치, 모양, 크기를 계획하세요. 구멍 뚫기는 작은 포켓 나이프가 최고입니다(적어도 제겐). 원형이든 사각이든 상관없고 작은 날카로운 칼로 쉽게 깎을 수 있습니다.

예외는 화면입니다. 길고 평평한 정사각형 구멍이 꼭 필요합니다. 아버지께 부탁해 절단기로 작업했습니다.

레이아웃이 마음에 들고 실행 가능하면 구멍 뚫기 시작하세요. 긴 과정이고 지저분해지지만 2-3시간이면 됩니다. 원형 구멍 필요할 때(12V 커넥터, RA/DEC 모터 커넥터)는 드릴을 썼습니다.

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

핫글루 건으로 부품을 박스에 고정하세요:

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

이제 앞면 부품(TFT 화면, PS2 조이스틱, 주야간 모드 스위치)만 남았습니다. TFT 화면에 간단한 리본 케이블(암/수 커넥터)로 연결하려 했는데 안 됐습니다. 핀이 미러링돼 TFT가 작동하지 않았습니다. 그래서 복잡한 2D→3D 변환을 통해 가진 커넥터와 리본 케이블로 문제를 해결했습니다.

긴 이야기 짧게: 로켓 과학은 아니지만 해결책 찾느라 고생했습니다. 못생긴 해결책이지만 1년 넘게 잘 작동합니다. 아래가 그 의미입니다:

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

매력처럼 작동해 박스를 완성할 수 있었습니다!

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

5단계: 독일식 적도 마운트

모터 드라이브를 마운트에 연결하는 방법은 제조사마다 설계가 달라 공유할 수 없습니다. 저는 80년대 Vixen Super Polaris를 쓰는데 아래 방식이 맞습니다. 1단계에서 코드 값을 바꾼 결정이 이제 영향을 미칩니다. 아래가 제 풀리/벨트 설정입니다.

2세트 구매했습니다. 1:4 감속 세트와 1:3 감속 세트. 감속비에 따라 풀리 간 거리가 달라 벨트 크기도 다릅니다. 미리 잘 계획하면 비용 아낄 수 있었지만 급했기에 둘 다 샀습니다.

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

벨트, 풀리, 마운트를 앞에 두고 1:4 감속이 마운트에 완벽히 맞아 그쪽으로 진행해 모터 하우징을 만들었습니다. 반나절 만에 아래처럼 나왔습니다:

전체 설정 테스트 후 소프트웨어 변수(행 35 값을 4로) 업데이트해 최종 설계를 반영했습니다. 다시 테스트하니 완벽 작동.

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

제대로 테스트하려면 맑은 별밤을 기다려야 했는데, 기다리는 동안 뭔가 아쉬웠습니다. 취미 예산으로 살 수 있는 것보다 훨씬 좋은 망원경 제어 GoTo 시스템이지만 모양이 안 예뻤습니다. 나중에 자랑스러운 rDUINOScope가 된 마무리 손질이 필요했습니다.

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

드디어 제 rDUINOScope Vixen SP 페라리 룩이 제가 느낀 그대로 완성됐습니다!

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트
Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

파일 목록

코드

코드 스니펫 #1 (마운트/기어 설정)

// HERE GOES THE Mount, Gears and Drive information.
// ... used to calculate the HourAngle to microSteps ratio
// UPDATE THIS PART according to your SET-UP
// ---------------------------------------------
// NB: RA and DEC uses the same gear ratio (144 tooth in my case)!
//----------------------------------------------
int WORM = 144;
int REDUCTOR = 4; // 1:4 gear reduction
int DRIVE_STP = 200; // Stepper drive have 200 steps per revolution
int MICROSteps = 16; // I'll use 1/16 microsteps mode to drive sidereal - also determines the LOWEST speed.

코드 스니펫 #3 (RA 모터 제어)

if (SLEW_RA_microsteps > RA_microSteps){
  digitalWrite(RA_DIR,STP_BACK);
  digitalWrite(RA_STP,HIGH);
  digitalWrite(RA_STP,LOW);
  RA_microSteps += RA_mode_steps;
}else{
  digitalWrite(RA_DIR,STP_FWD);
  digitalWrite(RA_STP,HIGH);
  digitalWrite(RA_STP,LOW);
  RA_microSteps -= RA_mode_steps;
}

GitHub

https://github.com/dEskoG/rDUINOScope

회로도

스테퍼 모터와 DRV8825 배선 및 Arduino DUE 연결:

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

모든 센서 배선 및 Arduino DUE 연결:

Arduino Due 망원경 제어 키트: TFT, GPS, RTC, 센서, 블루투스, 조이스틱 풀세트

제조공정

  1. 아두이노 나노로 물방울 고속 촬영하기 – DIY 하이스피드 포토그래피
  2. 블루투스 제어 아두이노 스파이봇(Spybot) 만들기
  3. 플릭모트(FlickMote): 스마트 홈을 위한 제스처 제어 IR 리모컨
  4. DIY 아두이노 TV B-Gone: 모든 TV를 끄는 만능 리모컨
  5. 아두이노로 만드는 대형 LED 마스터 시계 (알람 기능 포함, 12m 거리에서도 식별 가능)
  6. JX 웨이브 제너레이터 – OLED 디스플레이를 탑재한 아두이노 호환 DDS 오실레이터
  7. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  8. 아두이노 프로젝트를 위한 최적화된 전원 솔루션
  9. 아두이노, 구글 카드보드, 블루투스로 DIY VR 스케이트보드 만들기
  10. 아두이노 메가와 NEO-6M GPS 모듈 연결하기: 단계별 가이드