Ultimate GPS logger 쉴드에서 GPS 데이터 SD카드에 로깅하기

Ultimate GPS logger 쉴드에서 GPS 데이터 SD카드에 로깅하기

GPS 로거 쉴드에서 GPS데이터를 SD카드에 저장하는 방법에 대해 알아 보겠습니다. 먼저 SD카드가 올바르게 동작하는지 확인하기 위하여 간단한 테스트를 하여 보겠습니다.

먼저 SD카드를 준비한 후에(용량은 상관없습니다) SD카드를 쉴드의 소켓에 밀어 넣습니다.

sdcard.jpg

SD Card Library 업데이트

만약 아두이노 레오나르도나 메가를 사용중이라면, "SD card on any PIN" 기능을 지원하기 위해 라이브러리를 업데이트하여야 합니다. 만약 아두이노 Uno/Duemilanove/Diecimila를 사용한다면 라이브러리 업데이트는 필요없습니다. 아래는 라이브러리 업데이트 방법입니다.


먼저 libraries 폴더를 찾습니다. 보통 아두이노 실행파일이 들어 있는 폴더에서 찾아 볼 수 있습니다. 폴더를 보면 SD폴더를 찾아 볼 수 있고 SD.cpp, SD.h등을 살펴볼 수 있습니다.

libraries 폴더에서 SDbackup이라는 폴더를 만들어 기존의 SD 폴더를 백업폴더로 옮겨 넣습니다. 이렇게 하면 기존 라이브러리는 숨겨지게 됩니다.
sdbackup.gif

https://github.com/adafruit/SD 을 방문하여 다운로드 버튼을 눌러 새로운 SD카드 라이브러리를 받고 ZIP압축을 풉니다. 풀은 압축의 폴더에 SD.cpp, SD.h파일이 있는지 확인하고 폴더명을 SD로 변경한 후 libraries 폴더에 SD 폴더를 옮겨 놓습니다.

인스톨이 끝났으면 IDE를 재시작하고 Adafruit_GPS->shield_sdlog 스케치를 열고 아두이노에 업로드합니다.

레오나르도를 사용중이라면 다음 라인은 코멘트 처리하십시오.

// while (!Serial);
setup()함수의 윗부분에 있습니다. - 디버깅을 쉽게하기 위해서 합니다.

아두이노 Uno/Duemilanove/Diecimila를 사용한다면 다음의 두 라인을 찾아서,

if (!SD.begin(chipSelect, 11, 12, 13)) {

//if (!SD.begin(chipSelect)) { // if you're using an UNO, you can use this line instead

첫번째 줄을 코맨트처리하고 두번째 줄을 살립니다.

아두이노의 스위치가 soft serial에 위치하여 있는지 확인한 후 시리얼 모니터를 엽니다. 보드레이트가 115200인지 확인합니다. 그렇지 않으면 쓰레기 값이 찍히게 됩니다.


logOK.gif

SD카드가 올바르게 초기화 되었다면, GPS에서 데이터를 읽을 수 있을 것입니다. 체크섬을 확인하여 데이터가 올바른지 확인하고 로깅합니다.

setup()함수의 윗부분에 있는 sendCommand를 수정하여 자신만의 프로그램을 작성할 수 있습니다. 예를 들면 다른 포맷으로 데이터를 받거나, 업데이트 주기를 1Hz에서 5Hz로 바꾼다던가의 일을 할 수 있습니다. 또한 fix를 얻은 이후에만 데이터가 로깅 되도록 설정할 수 있습니다.

제품정보: http://vctec.co.kr/front/php/product.php?product_no=872&main_cate_no=&display_group=

가치창조기술

Comments