PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Su Dung GPS Module (http://www.picvietnam.com/forum/showthread.php?t=12262)

lambaotrung 21-03-2012 11:19 AM

ah. sorry cac bac.

lambaotrung 26-03-2012 09:33 AM

Trích:

Nguyên văn bởi tienchuan (Post 54945)
@ Trung : vì làm code minh họa ví dụ nên chắc a longtu ghi nhầm đó, bạn cộng thêm 1 để lấy các giá trị đó, tức vĩ độ sau dấu phẩy thứ 3, kinh độ sau dấu phẩy thứ 5,... còn chữ A sau chuỗi thời gian báo hiệu cho biết thời gian thu được có hợp lệ hay chưa (A: có,V:ko),còn các chữ cái N - Bắc; W - Tây; E - Đông; S - Nam để chỉ hướng.
Bạn coi thêm định dạng chuỗi GPRMC trong chuẩn NMEA quy định để biết thông tin của chuỗi.
Còn về vấn đề tọa độ của Module gởi về , ở đây mih nói module sim 548C vì đang dùng, nếu dùng module khác, bạn coi datasheet module gởi về chuẩn gì, tra chuẩn, để biết thông tin của chuỗi.
Ở đây mih lấy cái chuỗi ở trên làm lun, chuỗi GPRMC.
$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,1 30694,004.2,W*70
Trong đó:
+ kinh độ(ddmm.mmmm) : 5133.82=51 độ+33.82 phút=51,5637độ
+vĩ độ(dddmm.mmmm):00042.24=0 độ+ 42.24 phút=0,704độ
Sau lên gg sợt cái là qua tới bên London lun, chắc nhà a longtu ở gần đó :D
p/s:mọi người coi giúp e đổi đúng chưa mà sao đi xa quá :D


bác ơi bác giải thích rõ hơn về tính toán tọa độ dc ko bác.. em ko hiểu máy về tọa độ đó

longtu 26-03-2012 10:13 AM

1 Attachment(s)
Trích:

Nguyên văn bởi lambaotrung (Post 55122)
bác ơi bác giải thích rõ hơn về tính toán tọa độ dc ko bác.. em ko hiểu máy về tọa độ đó

- Step 1: Từ chuỗi data $GPRMC...bạn sẽ có được dữ liệu về kinh độ và vĩ độ.
Ví dụ:
$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,1 30694,004.2,W*70
Trong đó:
+ Kinh độ(ddmm.mmmm) : 5133.82=51 độ+33.82 phút=(51 + 33.82/60) phut= 51.563666
+ Vĩ độ(dddmm.mmmm):00042.24=0 độ+ 42.24 phút=(00 + 42.24/60) phút= 0.704
Chú ý: Dấu ngăn cách thập phân là dấu ".".
Step 2: Vào: http://www.google.com/maps
Step 3: Nhập Kinh độ và vĩ độ: (51.563666,0.704)

jamaicatrang 26-03-2012 11:31 AM

em đang làm về module thu tín hiệu gps hiển thị trên lcd.
em sử dụng avr atmega16, lcd16*2, module thu holux m_9129.
Anh longtu cho em hỏi: để hiển thị tín hiệu thu đc lên máy tính em có sử dụng thêm MAX232, em không biết cách kết nối giữa 4 linh kiện trên với nhau, em phải làm tn?
a giúp e vs nhé! thank

longtu 26-03-2012 11:46 AM

Trích:

Nguyên văn bởi jamaicatrang (Post 55127)
em đang làm về module thu tín hiệu gps hiển thị trên lcd.
em sử dụng avr atmega16, lcd16*2, module thu holux m_9129.
Anh longtu cho em hỏi: để hiển thị tín hiệu thu đc lên máy tính em có sử dụng thêm MAX232, em không biết cách kết nối giữa 4 linh kiện trên với nhau, em phải làm tn?
a giúp e vs nhé! thank

Tôi gợi ý bạn như sau, bạn sẽ tự mình tìm hiểu tiếp để hoàn thành sản phẩm của mình:
- Microcontroller AVR + GSP module: Giao tiếp với nhau qua các chân TX và RX. Tuy nhiên, ban chỉ cần xử dụng chân GPS_TX + MCU_RX để nhận dữ liệu từ GSP module. (Chân GPS_RX: dành cho việc upload firmware, thông thường việc này dành cho nhà sãn xuất...).
Chú ý: Microcontrller AVR có VCC là bao nhiêu Voltage? Và GPS_TX có mức điện áp ở mức 1 và o là bao nhiêu? Có đủ để MCU hiểu không?
- Microcontroller + LCD: Bạn sử dụng Text LCD cho việc hiểu thị nội dung data GPS. Hãy tìm hiểu cách sử dụng Text LCD và các kết nối với MCU, firmware điều khiển...

Bạn không cần sử dụng Max232 nếu như không cần giao tiếp giửa MCU và PC.

Thân,

jamaicatrang 26-03-2012 03:08 PM

cảm ơn a!
anh ơi! để kết nối với max232 với MCU, thì làm tn ạ?
giúp em với!

longtu 26-03-2012 04:23 PM

Trích:

Nguyên văn bởi jamaicatrang (Post 55140)
cảm ơn a!
anh ơi! để kết nối với max232 với MCU, thì làm tn ạ?
giúp em với!

Bạn là sinh viên ngành gì vậy? Tôi đoán bạn không phải sinh viên ngành điện tử. Hơn nữa, trong luồng này, chúng ta đang tập trung nói về các sử dụng GPS module mà thôi. Các câu hỏi như bạn(về max232 và MCU) bạn nên tìm kiếm trên diễn dàn picvietnam, internet... hay mở 1 luồng khác với mục đích này nhé.

PS: Bạn tham khảo ở đây: http://www.mikroe.com/eng/chapters/v...xamples/#c4v13

Thân,

jamaicatrang 26-03-2012 04:44 PM

uki!
sorry nhé! thank

jamaicatrang 27-03-2012 09:06 AM

anh longtu ơi! cho e hỏi là: em dung module holuxm_9129 thì có giống vz con Ub-93 ko ah?
do điện áp vào của MCU là 5v ko tương thích vs module GPS , em có phải mắc thêm tranzitor ko?

longtu 27-03-2012 09:55 AM

Trích:

Nguyên văn bởi jamaicatrang (Post 55173)
anh longtu ơi! cho e hỏi là: em dung module holuxm_9129 thì có giống vz con Ub-93 ko ah?
do điện áp vào của MCU là 5v ko tương thích vs module GPS , em có phải mắc thêm tranzitor ko?

Bạn cần phải đọc kỹ những bài viết ở luồng này từ đầu đến bài của bạn, đừng bỏ xót bạn nhé. Nó sẽ có ích cho bạn, với lại chỉ nên hỏi những gì mà chưa có bài viết trả lời thôi. Dừng lặp lại câu hỏi đã có trả lời bạn nhé.

PS: Xem lai:
#3: http://www.picvietnam.com/forum/show...73&postcount=3
#20: http://www.picvietnam.com/forum/show...9&postcount=20

lambaotrung 27-03-2012 06:15 PM

bác longtu cho em hỏi cái này.

trong chuổi GPRMC của GPS gởi về.
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4 ,230394,003.1,W*6A

vậy làm sao mình biết chuổi đó kết thúc.

với lại trong hàm RDA có đoạn này em khổi hiểu
if(check<7)
{
if((GPSbuffer[check-1]) != (GPRMC[check-1]))
check= 0;
}
bác long tứ giải thích giúp em nhá.

longtu 27-03-2012 09:27 PM

Trích:

Nguyên văn bởi lambaotrung (Post 55205)
trong chuổi GPRMC của GPS gởi về.
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4 ,230394,003.1,W*6A
vậy làm sao mình biết chuổi đó kết thúc.

Data nhận được từ vệ tinh luôn bắt đầu bởi ký tự "$". Bạn dựa vào đây để biết bắt đầu 1 chuỗi data mới hay là kết thúc chuỗi data trước.

Trích:

Nguyên văn bởi lambaotrung (Post 55205)
với lại trong hàm RDA có đoạn này em khổi hiểu
if(check<7)
{
if((GPSbuffer[check-1]) != (GPRMC[check-1]))
check= 0;
}

Đoạn code ngắt RDA này của tôi nhằm mục đích chỉ xét chuỗi $GPRMC(từ $ đến C có 6 ký tự). Vì vậy, ngay khi xét 1 chuỗi data mới, tôi cần lấy dủ 6 ký tự đầu tiên của chuỗi này rồi mới kiểm tra xem có phải là chuỗi $GPRMC hay không. Vì vậy mới có đoạn code if(check<7)...

Bạn thấy đó, chỉ cần tập trung suy nghỉ là bạn có thể tự trả lời câu hỏi của bạn được rồi. Cố gắng suy nghĩ thêm nhé.

Thân.

lambaotrung 28-03-2012 12:46 AM

Đã giải quyết dc vấn đề bất đầu 1 chuổi và biết khi nó kết thúc một chuỗi là mình tra xét " $ " nếu có dấu $ thì bất đầu ghi các giá trị đó vào 1 mãng thứ 2 và kết thúc ghi khi gấp dấu $ tiếp theo và các giử liệu đó sẽ nạp chòng và Mãng thứ 2 . em đả làm dc sao 1 buổi chiều mày mò viết cách tính... cảm ơn bác longtu nhiều.

dc cải tiếng lại từ code của bác longtu

ở đây thì em tìm dấu ','. mình có thề tìm dấu gì tùy ý mình như: $ ,*,# ...
VOID saudau_1()
{
CHAR I;
char trunglap[7];
i=comma_position[0]; //
int a;
for (a=0;a<comma_position[0];a++) // nó sẽ tăng mãng trunglap[] lên đến khi gập
// dấu ',' kế tiếp và gáng vào 1 mãng có tên
//là mãng : và gang cac gia tri
//
trunglap[a]=mang[i++]; // nếu trong chuổi có 1 dấu ',' hay 1 "$" thì có
//thể thay như thế này " tringlap[a]=mang[a];
//
/// "mang[]" <=> GPSbuffer[] cua bác longtu vi em viết theo ý của em
}
lcd_putcmd(0x80);
printf(lcd_putchar,trunglap); // xuat chuoi ra man hinh LCD.
// chung ta ko the dung printf de ep keu mang ky tu vao lcd_putchar.
}

với cách này em đã tách 1 chuổi lớn thành nhiều chuổi nhỏ hơn.
vị du: $abcd $cdft $1234
các bác xem có cách nào đơn giản hơn chi giúp em.

lambaotrung 28-03-2012 12:58 AM

sáng ra tìm lại lai thì thấy hàm này có vấn đề.

nếu 1 chuổi gởi đi chí có 1 ký tự mình muốn tìm như " $ " thi nó ko tìm dc chuổi đó.

bui ngoc vu 28-03-2012 11:58 PM

Xin chào cả nhà!Mình đang làm đề tài về điều chế FSK dùng vi điều khiển PIC,phát đi ở tần số 8MHZ.Bác nào có kinh nghiệm thì chia sẻ cho mình một chút.Cám ơn rất nhiều!


Múi giờ GMT. Hiện tại là 08:33 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam