자파리 :: 초보도 따라하는 Ublox NEO 6M GPS 아두이노 작동법
반응형

오늘 쓸 주제는 GPS(Global Positioning System)라는 기계에 대해서입니다. 위성신호를 잡아서 현재 내 위치를 위도 경도를 통해 알아낼 수 있어요. 사실 티스토리에 이런 글을 쓰기는 좀 부담이 되고 아주 상세하게 글을 쓰기도 어려운 것이 사실입니다. 이 글을 따라하시려면 부품도 준비하고 프로그램도 깔려야 하고 기타 이것저것 만지고 나서 시작해야하거든요. 아주 입문인 분들은 조금 어려울수도 있어요.

그런데 필자인 저도 아두이노를 공부한지 한달도 안된 초보이고 코드는 한시간정도만 겉핥기로 공부했기때문에 제가 쓰는 글들은 초보의 입장에서 이해하기가 편하실 거에요. 코드를 알든 모르든 일단 목적을 성공하는게 중요한거 아니겠어요.

준비물: 아두이노, 점프선(전선), GPS모듈

프로그램: 아두이노 IDE(통합개발환경), TINY GPS 라이브러리

우선 아두이노를 사야할테고 점프선이나 GPS모듈 같은 것들의 준비물이 필요하겠죠. 컴퓨터에는 프로그램을 설치하고 포트를 맞추어서 보드를 연결하고 TINY GPS라는 라이브러리를 가져와서 컴파일하고 업로드해야 합니다.

네 어려운 말들이 좀 들어갑니다. 일단 패스하자구요 저도 어렵고 모두 설명하면서 가려면 글을 끝내기가 힘드니까요.

NEO 6M GPS

GPS도 여러 종류가 있습니다만 이 제품은 보드레이트가 9600입니다. 그리고 작동전압이 5볼트이니 아두이노에 최적화되어있죠. 이게 중요합니다. TINY GPS 라이브러리를 가져와서 스케치 수정을 약간 해야하거든요

스케치를 보시면 시리얼비긴, SS비긴이라는 영어가 보일거에요. 아래처럼 씌여진거요. 중간 코드는 생략합니다.

Serial.begin(115200)

ss.begin(4800);

115200이나 4800으로 설정이 되어 있을겁니다. 모두 9600으로 바꾸어주세요. 일부 블로그에는 SS비긴만 바꾸던데도 어쨌든 제가 성공한 방법 위주로 설명을 드리겠습니다. 코드 문맹이라 코드설명은 못해드려요.

다만 이 수치는 통신속도를 나타내는 것으로 기계와 프로그램이 서로 맞아야 한다는 정도만 알아두시면 되요.

그리고 결선은 아래 사진을 참고하시되 절대 똑같이 하시면 안되구요. 

이거 그대로 따라하지 마시고 밑에 글 잘 읽어주세요

타이니지피에스 라이브러리를 가져오면 만든사람 이름나오고 스케치 설명하는 부분이 있습니다.

This sample code demonstrates the normal use of a TinyGPS object.
It requires the use of SoftwareSerial, and assumes that you have a
4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).

다른건 필요없고 여기서 가장 중요한 말. 4번 핀은 리시브(수신) 3번 핀은 트랜스(발신)이라는 것입니다.

따라서

1. GPS GND(그라운드)는 아두이노의 GND에 결선

2. GPS VCC는 아두이노 5V에 결선

3. GPS RX는 아두이노 4번에 결선

4. GPS TX는 아두이노 3번에 결선

컴파일 및 업로드 하시구 IDE-툴-시리얼모니터 보시면 한줄씩 데이터가 쓱쓱 써질거에요.

시리얼모니터 볼 때도 보드레이트 9600으로 바꾸어주셔야 합니다.

그런데 독자분들은 이 단계까지 와도 안되는 분들이 대부분일거라고 봅니다. 

또 주의해야할 점이 있어요

테스트는 집안이나 베란다에서 하지 말아야 합니다. 필자가 고생한 부분입니다.

어떤 블로그에도 집안 테스트를 권장하지 않습니다.(그런데 성공했다는 분도 있습니다)

집안에서 10분기다려도 안되면 그냥 깔끔히 포기하고 야외로 나가십시오.

제가 베란다에서 창문열고 한시간동안 땀흘리며 테스트해서 실패를 해 보았으니 독자분들은 괜히 확률에 목숨을 걸고 에너지 낭비하지 마시고 야외로 바로 나가시길 바랍니다.

근데 지금은 여름이잖아요. 시원한 에어컨이 절실해요

베란다 실패사건 이후 짜증이 솓구쳐 더 이상 야외에서 실험할 엄두가 안났어요.

차안에서 에어컨을 틀고 썬루프를 열어서 시도해보았어요. 유리가 덮여있긴한데...이정도는 신호가 통과하지 않을까 싶었기 때문이에요. 성공이었어요.

GPS에 불이 깜박이는 것 보이시나요?

GPS에서 신호를 잡기 시작하면 갑자기 보드에 있는 LED가 반짝거려요. 집에서는 한번도 반짝인 적이 없었는데 말이죠. 이게 상당히 중요한 시그널입니다. 이상태로 지하주차장으로 진입하니까 LED점등이 꺼졌습니다. 그 말은 GPS가 신호를 잡을 때만 LED가 점멸한다는 것이죠. 베란다에서는 신호를 잡을 수 없었던 거에요.

아 그리고 가장 중요한것. 웹서핑하다가 알아낸 것인데 GPS 모듈에서 RX TX가 인쇄가 반대로 되었다고 합니다.....이게 말이되???? 라고 안믿다가 혹시나 해서 반대로 결선해보니까 작동을 잘하네요.

중국 제품들은 가끔 그런 경우가 있습니다. 하자인데 고쳐지지도 않는 경우요. 찍어낸 것이 있어서 그냥 파는 모양입니다. 예전에는 전자스위치인데 결선도대로 안되서 몇시간동안 고생한 적이 있었죠....그것도 프린팅이 잘못되어있는거였어요.

(수정)방금 nz gps라는 드론용 gps를 결선해서 신호받아보고 안 사실인데 이것도 결선도랑 tx rx를 반대로 해야 작동을 하네요. 아마 gps기계 문제가 아니라 코드 문제인 것 같습니다.

다음에는 디스플레이에 좌표 출력하는 것 하고 다른 GPS모듈도 되는지 실험을 해 볼 것이구요. 마이크로비트에서도 GPS사용이 가능한지 도전해보려고 합니다. 코드도 모르는 초보지만요 ㅋㅋ

왜 GPS모듈에 집착해야 할까요? 사실 GPS기능이라든가 나침반 기능은 여러분이 가지고 있는 휴대폰에 다 내장되어 있습니다. 또 휴대폰은 손전등으로 쓸수도 있고 라디오도 들을 수 있죠. 긴급구조 요청도 할 수 있고요. 그래서 사실은 휴대폰이 재난상황에서 정말 유용한 도구에요. 배터리만 떨어지지 않는다면요.

다만 이러한 모듈을 작동시키는 방법을 터득하면 다양한 기계에 응용할 수 있는 능력이 생기는 것이니까 그런점에서는 이득입니다. 드론 같은거 말이에요.

그럼 다음에 봐요~

반응형
Posted by 드워프의 자파리
: