GPS를 이용해본 사람이라면 다들 알고 있겠지만 대다수의 GPS가 UART를 이용하고 NMEA라는 통신 프로토콜을 사용한다. 대부분의 GPS 수신기가 같은 통신 프로토콜을 사용하기때문에 GPS 프로그램은 한번 짜두면 두고두고 쓸 수 있다. 사실 가장 쉬운 방법은 gpgga로 시작하는 문자열을 따서 ','를 기준자로 자른다음에 위도,경도, 고도를 뽑아내면 된다. GPGGA Global Positioning System Fix Data라고 한다. 여기에서 주로 알 수 있는 것은 시간, 위도, 경도, 고도 등이다. 다음은 위키에서 발췌한 내용인데 이를 참고해서 parsing 하면 쉽게 구할 수 있다. $GPGGA,114455.532,3735.0079,N,12701.6446,E,1,03,7.9,48.8,M,19..
당연한 이야기이지만 라즈베리에는 타이머 인터럽트가 존재하지 않는다. 물론 타이머 인터럽트를 복잡하게 짜는 건 여러가지 방법이 있으나 그 중 쉬운 예를 두가지 들어보겠다. 가장 쉬운건 다들 알겠지만 delay나 sleep함수를 쓰는것이다. while(1) { digitalWrite(LED1,1); digitalWrite(LED2,0); delay(1); digitalWrite(LED1,0); digitalWrite(LED2,1); delay(1); } 간단하게 1ms동안 led를 켰다가 1ms동안 led를 켜면서 500Hz로 동작하는 코드이다. 이런 코드는 구현하기는 정말 간단하지만 제어주기가 정확하지 않다는 단점이 있다. 실제로 위코드는 led 한개를 켜고 끄는 시간이 2ms에 더해지게 된다. 이를 방지..
- Total
- Today
- Yesterday
- RTSP
- vectornav
- 통신
- Raspberry
- 비전
- 복구
- 라즈베리
- vn-200
- 라즈베리 파이
- RaspberryPi
- ti
- G2
- 무선
- 라즈베리파이
- GPS
- 개발
- NMEA
- 파이
- WiFi
- Raspberry Pi
- 카메라
- dsp
- 모듈
- 소나 센서
- 영화
- C++
- 알레한드로
- 벽돌복구
- pi
- opencv
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |