'아두이노'에 해당되는 글 2건

  1. 2015.04.03 휴대용 GPS 위치 표시기
  2. 2015.03.06 아두이노 LED 구동

자 이번에는 아두이노와 GPS 수신기, 그리고 LCD를 이용해서 휴대용 GPS 위치 표시기를 만들어볼까 해요. 


우선 준비물

아두이노 우노 -- 1EA

GPS           -- 1EA  (U-blox 6010) 



LCD           -- 1EA  (Dfrobot LCD Keypad shield)




배선 작업이 귀찮아서 실험실에 있던 LCD 쉴드를 약간 개조해서 사용했어요. 

쉴드는 아두이노 보드 위에 땜질 없이 핀만 맞추어서 끼우도록 제작된 제품이랍니다. 

우선 스케치는 다음과 같아요. 

조금 길어서 두 부분으로 나누었어요. 길다해도 반은 변수 지정이라... 실제 주요 부분은 간단합니다. 

아래 그림의 #include<TinyGPS.h> 는 TinyGPS.h라는 라이브러리를 불러오는 명령이에요. 

물론 저 라이브러리 부분을 스케치에 다 기술할 수도 있지만 자주 사용하는 것들은 라이브러리처럼 모듈화 해두면 나중에 쓰기가 참 편하겠죠. 

그리고 많은 사람들이 친절하게도 저런 라이브러리들을 무료로 배포하고 있답니다. 

필요한 사람은 가져다 쓰기만 하면 되겠죠. 

여기서는 TinyGPS와 LiquidCrystal 라이브러리를 가져왔어요. 

LiquidCrystal은 LCD구동용 라이브러리랍니다. 

그 다음 줄은 int, long, unsigned long, unsigned short 뭐 이런 것들이 나오는데 이것들은 "변수형" 이라고 하는 것들이에요. 


아두이노 변수의 종료와 범위는 다음 표를 참조하세요. 


나중에 따로 설명할 일이 있을테니 우선은 그런게 있다는 정도로 알면 되겠어요. 

그 아래에는 LAT이라는 함수가 오고 그 내용은 Latitude의 좌료를 도 분으로 계산해주는 내용을 담고 있어요. 

그 다음은 LCD화면에 출력하는 lcd.print가 나오고 

lcd.setCursor함수는 출력하고자하는 내용이 LCD화면의 어디에서 시작하는지를 지정합니다. 

함수에 대한 설명은 아두이노 홈페이지 arduino.cc 에 자세하게 나오니 확인하시기 바랍니다. 


다음은 이제 주 스케치 부분이 되겠어요. 

셋업 함수에서는 시리얼 통신과 LCD화면 시작점 지정 및 초기 문구 출력을 하네요. 

Serial.begin(38400); 의 의미는 시리얼통신을 38400bps로 시작한다는 의미에요. 

시리얼 통신은 두 개의 기기간 정보를 주고 받는 통신 방법 중 한 가지 방법이에요. 

GPS test라는 문구를 LCD의 0,0 좌표에서 시작한다는 내용이고 2초간 표시합니다. 


그 다음은 Loop 함수가 나오고 

GPS의 data를 읽어서 윗 부분의 스케치에서 나왔던 LAT, LON 함수에 읽은 정보를 보내면 LAT, LON 함수에서 지정하는 방법으로 GPS로 부터 받아온 정보를 LCD에 표시하게 됩니다. 


다소 스케치가 어렵게 느껴질 수도 있는데 그럴 수 있어요. 

항상 프로그래밍을 배우면서 처음 하는게 Hello World 이런거만 하다 보니까 재미도 없고 진도도 안나가는데.. 조금 난이도 있는 걸 잘 모르더라도 따라서 해보면 뭔가 되는 것 같고 하면 좀 의욕이 생기지 않나요? 

그래서 거꾸로 한 번 해보고 그것을 구성하는 내용들을 차근 차근 공부해 가면 왜 그게 필요한지 알기 때문에 의지가 더 생기는 것 같아요. 

아무튼 연결하고 스케치를 업로드 하면 다음과 같이 표시되죠.. 숫자는 물론 GPS를 연결하지 않아서 저렇게 나오는 거구요. 아래사진은 스케치를 업로드하고 LCD쉴드만 연결한 생태에요. 

GPS에서 나오는 선은 4가닥으로 5V, GND, 시리얼통신(RX,TX)로 구성되어 있어요. 

GPS의 RX는 아두이노의 TX, GPS의 TX는 아두이노의 RX에 연결하고 전원선은 아두이노에서 나오는 5V전원을 연결해주면 하드웨어 세팅은 끝. 

아래 사진의 너저분한 선들이 GPS와 연결되는 선들이고 아래쪽은 전원 윗쪽은 시리얼 통신 선이 되겠습니다. 

잘 알겠지만  GPS는 실내에서는 위성신호를 받을 수가 없어 먹통이 되서 위 사진처럼 9자만 나올 수도 있어요. 

밖에 나와서 전원을 넣고 잠시 기다리면... 아래 사진과 같이 위, 경도가 LCD화면에 표시된답니다. 


다음 포스팅에서는 오늘 내용의 구성 부분인 LCD에 대해서 알아보도록 하죠.




'아두이노' 카테고리의 다른 글

아두이노 스케치  (0) 2015.04.03
아두이노 LED 구동  (0) 2015.03.06
Posted by J1Lee
,

아두이노를 시작하기 전에 기본적인 내용들이 많이 있지만 그런 것들 부터 공부하면 흥미를 잃기 쉽겠죠. 그래서 바로 실습으로... 


LED에 대한 내용은

http://benzydad.tistory.com/27


위 포스팅에서 살펴본 바와 같이 LED구동에 필요한 전압은 1.8VDC, 전류는 약 15mA입니다.

아두이노에서 출력하는 전압은 5VDC, 최대 전류는 약 40mA구요. 

전류는 필요한 만큼만 가져다 쓰는거니까 부하가 최대 전류만 넘기지 않으면 문제 없겠구요. 

전압은 5VDC로 계속 구동하면 LED수명이 짧아지겠죠? 

그래서 전압을 낮추어 주어야 하는데 간단하게 저항을 이용해서 해보도록 하죠. 

Ohm의 법칙을 살펴보면 I=V/R이니까 저항값을 알기위해서는 

R=V/I로 변환해서 사용해요. 

R=(5-1.8)/0.015 = 213Ohm

대략 200오옴 정도의 저항을 연결해 주면 되겠군요. 



이런 식으로 연결해주면 되겠어요. 위 그림의 저항 위치에 약 200오옴 정도의 저항을 연결해 주면 되겠어요. 

하드웨어는 이렇게 준비하면 되겠고 이제 소프트웨어를 만들어보아야 하겠죠.

아두이노 개발환경은 아두이노 홈페이지에서 무료로 다운로드 받을 수 있어요. 

http://arduino.cc/en/Main/Software 

에서 해당 운영체제에 맞는 항목을 다운 받아 설치하세요. 

설치후 처음으로 USB케이블을 연결하면 드라이버 찾고 그럴거에요. 

다 되고나면 다음과 같이 장치관리자를 열어서 어떤 포트에 아두이노가 연결되었는지 확인해 주세요. 


이 경우에는 COM5에 연결되었네요. 

이 보드는 아두이노 UNO R3 이고 COM 5번 포트에 연결되었어요. 


아두이노 스케치에 가 보면 아래쪽에 보드 종류와 시리얼포트가 표시되어 있어요. 

UNO는 맞는데 4번 포트에 연결되어 있네요. 

도구의 Board와 Serial Port를 해당 내용에 맞게 변경하면 되겠어요. 


LED 점멸 예제는 파일--> 예제-->01.Basic--> blink 를 누르면 위 그림과 같이 이미 작성이 되어 있어요. 


위의 화살표 버튼을 눌러 작성된 코드를 아두이노로 업로드 해요. 

그럼 잠시후에 LED가 깜빡 깜빡 1초 간격으로 점멸합니다. 

코드에 대한 설명은 다음 포스팅에서.... 

'아두이노' 카테고리의 다른 글

휴대용 GPS 위치 표시기  (0) 2015.04.03
아두이노 스케치  (0) 2015.04.03
Posted by J1Lee
,