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)

longtu 22-12-2011 09:45 AM

Su Dung GPS Module
 
Chào các bạn,

Mình vừa có dịp làm việc với GPS module, một chút kinh nghiệm mình xin chia sẽ đến diễn đàn của chúng ta.

Mục đích:
- Giới thiệu loại GPS module rẻ và có bán ở VN, phù hợp với các ứng dụng nhỏ độ chính xác vừa phải.
- Cách kết nối phần cứng cho GPS module.
- Cách tách chuỗi dữ liệu cần thiết từ chuỗi dữ liệu của GPS module.
- Một số lưu ý khi vẽ mạch PCB

longtu 22-12-2011 10:07 AM

1. Một số loại GPS module
 
2 Attachment(s)
GPS module có các hãng thông dụng sau:
- Holux
- Globalsat
- Royaltek
- Skylap
- FTech
- Simcom
- ...
Tấc nhiên là tùy thuộc vào ứng dụng mà ta chọn loại GPS module phù hợp.
Nếu các bạn cần tư vấn chọn lựa GPS phù hợp hãy liên lạc với anh Linh: http://vn-et.com
Mình cũng đã từng nhờ anh Linh tư vấn chọn lựa loại GPS phù hợp, giá cả hợp lý. Nhân đây cũng xin cám ơn anh Linh, nhờ có anh mà mình đã làm xong sản phẩm của mình.

Mình giới thiệu một số loại GPS module giá thành hạ: Khoảng 300k-400K
- M89
- GR89
- UB93
Chú ý: Giá GPS module tăng dần theo thứ tự bên trên(chênh lệch nhau khoảng vài chụp ngàn).

Phụ kiền cần thiết cho GPS module:
- Ngoài GPS module, chúng ta cần phải có GPS anten. Có 2 loại External hay Internal anten
1. External anten: Nếu bạn chòn loại anten này phải cần mua thêm RC-C-SMA connector để có thể gắn trực tiếp trên mạch PCB. Xem hình External Anten.
2. Internal Anten: Xem hình ảnh Internal Anten. Với loại này, connector cho anten nay mình không tìm được, đành phải cắt bỏ connector này. Khi cắt bỏ đầu connector sẽ có: đây lõi(tín hiệu GPS-RF) + lưới bọc bên ngoài(nối mass).

longtu 22-12-2011 10:29 AM

2. Cách kết nối phần cứng tối thiểu để GPS hoạt động.
 
1 Attachment(s)
Mình làm việc với UB93 GPS module, vì vậy mình trình bày kết nối phần cứng cho module này. Loại module khác cũng sẽ tương tự.
- Kết nối phần cứng: Xem hình ảnh đính kèm.
Chú ý:
+ Tùy chọn sử dụng loại External hay Internal anten. Tuy nhiên, kinh nghiệm của mình thì Internal anten(nhỏ gọn, sắp xếp đặt được ngay trên mạch PCB được) hoạt động tốt không thua kém gì External(to, dây dài để có thể kéo ra bên ngoài).
+ Chân 1PPS: chân này được nối qua 1 Led. Ý nghỉa như su:
* Led tắt: chưa thu được tín hiệu từ vệ tinh.
* Led sáng: đang dò tìm tín hiệu từ vệ tinh
* Led chớp tắt: Tín hiệu thu được từ vệ tinh là tốt.
Khi kết nối GPS thành công, cứ khoảng 1s, GPS sẽ nhận được tín hiệu từ vệ tinh và khi đó ta chỉ cần quan sát Led này chớp tắt có nghỉa là việc thu tín hiệu đã tốt.
+ Chân TX0: Chân truyền dữ liệu từ GPS module. Để có thể xử lý data từ GPS module thông qua việc giao tiếp với Microcontroller, ta sẽ dụng chân này. Tuy nhiên, GPS module sử dụng 3.3V, microcontroller thông dụng lại là 5V. Vì vậy việc thêm 2 transistor(xem hình) là cần thiết.
Ngõ ra TX_GPS sẽ đuợc nối vào chân RX của microcontroller.

longtu 22-12-2011 11:11 AM

3. Cách tách data cần thiết từ chuỗi data nhận được từ Vệ tinh
 
Việc kết nối GPS module(chân TX0) với Microcontroller qua chân RX, ta sử dụng ngắt RDA để thực hiện việc lấy chuỗi data cũng như tách lấy dữ liệu cần lấy.
Ví dụ: Chuỗi data cần lấy:
$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,1 30694,004.2,W*70
Ghi nhận:
*Sau dấu "," thứ nhất: Thông tin thời gian
*Sau dấu "," thứ 2: thông tin Latitude
*Sau dấu "," thứ 4: thông tin Longitude
* ....
Code:

char GPSbuffer[70];
char GPRMC[6]={"$GPRMC"};//Nếu muốn lấy chuỗi data ta GPRMC
char Comma_position[13];
int8 check= 0;
/* Find comma in GPS datas -------------*/
Void FindComma()
{
  int8 i, counter= 0;
  for(i= 0;i<70; i++)
  {
      if(GPSbuffer[i]== ',' )
        Comma_position[counter++]= i;
  }
}
/*Received data from GPS module: ------------*/
#INT_RDA
Void Receive_GPSbuffer()
{
  char c;
  c= getc();
  if(check == 69) return;
  GPSbuffer[check++]= getc();
  if(check<7)
  {
      if((GPSbuffer[check-1]) != (GPRMC[check-1]))
        check= 0;
  }
}
Void TimeGPS()//Vi dụ mang tính minh họa lấy thời gian từ GPS module.
{
  char i;
  i= Comma_position[0];  //ngay sau vị trí dấu , đầu tiên là thông tin THOI GIAN
  printf("TIME(HHMMSS): %c%c:%c%c:%c%c\r\n",GPSbuffer[i+1],GPSbuffer[i+2],
                                    GPSbuffer[i+3],GPSbuffer[i+4],
                                    GPSbuffer[i+5],GPSbuffer[i+6]);
 
  delay_ms(10);
}
Void LatitudeGPS()
{
char i;
 i= Comma_position[2];
...
}
Vode LongitudeGPS()
{
char i;
 i= Comma_position[4];
...
}
Void GetData()
{
  FindComma();
  TimeGPS(); 
  LatitudeGPS();//*Sau dấu "," thứ 2: thông tin Latitude
  LongitudeGPS();//*Sau dấu "," thứ 4: thông tin Longitude
  //...
  check= 0;//The next get GPS datas.
}

void main()
{
  if(check == 69) GetData();
}

Code trên, chỉ là để minh hoạ cách lấy data cũng như tách lấy data cần sử dụng. Các bạn thay đổi để phù hợp với ứng dụng của mình.

longtu 22-12-2011 11:21 AM

Tổng kết:
 
- Hy vọng qua các bài viết ở trên, các bạn có thể hiểu cách thức làm việc với GPS module. Từ đó tuỳ biến sử dụng cho sản phẩm của mình.
- Nếu có chổ nào chưa thật rõ ràng, các bạn cần thêm thông tin, hãy gửi email cho mình(xem chữ ký).

longtu 22-12-2011 03:24 PM

4. Một số lưu ý khi vẽ PCB
 
3 Attachment(s)
Một số chú ý khi vẽ PCB cho đường RF và các đặt GPS module trên mạch PCB.

lambaotrung 12-03-2012 10:30 PM

cũng rất cảm ơn bạn, nhưng mình đọc đi đọc lại bài viết của bạn máy lần..... nhưng minh chưa biết làm thế nào.... kết nói kiễu sao với PIC hay là loại VĐK nào...

vd: bạn có thể đưa lên 1 bài về những gì bạn đạt dc ở một modell cụ thể ra làm sao. và bạn đã dạt đến mức nào..

trong diễn đàn cũng có 1 bạn cũng muốn tiềm hiểu về GPS về hiễn thi tọa đô lên màn hình LCD. để đạt dc như thế mình làm sao bạn có thể giúp thêm ko.


ví dụ modell GPS kết nói với VDK kiểu gì loại gì.....

và giá trị của modell GPS đưa cho vi điều khiển dưới dạng nào... ..


mong bạn giúp nhiều hơn. chân thành cảm on.

longtu 13-03-2012 09:42 AM

Trả lời bạn Lâm Bảo Trung
 
Chào Trung, mình trả lời các câu hỏi của bạn ở dưới email của bạn:

[Lâm Bảo Trung]:cũng rất cảm ơn bạn, nhưng mình đọc đi đọc lại bài viết của bạn máy lần..... nhưng minh chưa biết làm thế nào.... kết nói kiễu sao với PIC hay là loại VĐK nào...
[Tuân 2012.03.13]: Trung để ý, mình cũng đã gửi schematic cho việc kết nối giữa GPS module và Microcontroller PIC(Microcontroller khác cũng tương tự). Việc giao tiếp giữa GPS và Microcontroller chỉ đơn giãn qua chân TX. Chú ý mức điện áp chỉ 3.3V cho GPS và thường 5V cho Microcontroller(xem hình ảnh schematic đã gửi).

[Lâm Bảo Trung]:vd: bạn có thể đưa lên 1 bài về những gì bạn đạt dc ở một modell cụ thể ra làm sao. và bạn đã dạt đến mức nào..
[Tuân 2012.03.13]: Bạn mong muốn gì ở GPS module, phải chăng là lấy và sử dụng được các thông tin nhận được từ vệ tinh thông qua GPS module này: thời gian, kinh đọ, vĩ độ... Bài viết của mình đã làm được điều này rồi mà. Bạn cần xem lại đoạn code mình đã gửi lên diễn dàn, đó là code tham khảo để lấy các thông tin từ vệ tinh. Còn mục đích sử dụng thì tùy vào ứng dụng, tùy vào mục đích của bạn.

[Lâm Bảo Trung]:trong diễn đàn cũng có 1 bạn cũng muốn tiềm hiểu về GPS về hiễn thi tọa đô lên màn hình LCD. để đạt dc như thế mình làm sao bạn có thể giúp thêm ko.
[Tuân 2012.03.13]: Việc hiển thị tọa độ lên LCD cũng đơn giản như bạn muốn hiển thị 1 data nào đó lên LCD mà thôi. Bạn đã làm được đến đâu(xem các câu hỏi bên dưới)?:
- Microcontroller mà ban tìm hiểu là gì(PIC, AVR, AMR...)?
- Bạn đã sử dụng được LCD với Microcontroller chưa?
Tiếp theo bạn thay data ở trên bởi dữ liệu là tọa độ rồi cho LCD hiển thị thôi.

[Lâm Bảo Trung]:ví dụ modell GPS kết nói với VDK kiểu gì loại gì.....
[Tuân 2012.03.13]: Hình như bạn không đọc kỹ bài viết của mình, không xem các hình ảnh dính kèm về schematic...
[Lâm Bảo Trung]:và giá trị của modell GPS đưa cho vi điều khiển dưới dạng nào... ..
[Tuân 2012.03.13]: Hình như bạn không đọc kỹ bài viết của mình, không xem các hình ảnh dính kèm về schematic, đoạn code minh họa...

mong bạn giúp nhiều hơn. chân thành cảm on.
[Tuân 2012.03.13]: Không ai giúp bạn được nếu như bạn chưa thật sự cố gắng, chưa tìm hiểu kỹ. Tấc cả các câu hỏi trên của bạn mình cho rằng bài viết của mình đã trả lời được hết rồi, hãy đặt câu hỏi cho đúng vấn đề, tấc cả mọi người trên diễn dàn này đều sẵn sàng giúp đở.

lambaotrung 14-03-2012 10:06 PM

máy bác ơi cho em làm phiền.....

cái chuyện làm modull để từ từ rành rẻ về PIC thì hay làm. bày giờ em muốn làm 1 bài tập về truyền nhận dữ liệu từ PIC này sang PIC kia ( PIC1 đến PIC2) qua cổng RS232.

em truyền 1 số "123 " , hay 1 chử cái " A " đi và dùng ngắt RDA thì mình làm tốt và hiện thị giá trị lên LCD tốt.

nhưng khi em truyền 1 mãng char string[]=" PICVIETNAM ";
dùng lệnh Printf(string); nói chung thì no truyền đi dc.

nhưng ở phần PIC nhận thì em chỉ nhận dc có chứ "P" khi em dùng lệnh

IN=getc(); thì chi hiện chử 'P' á. . // khai bao char IN[10];

khi dùng lệnh gets(IN); thì nó đơ luôn. ko hiện hồn chử gì lên LCD cả.

các bác giúp em chổ này và bác Longtu ơi bác giúp noi rõ hơn về việc tìm dấu " , ". nhé anh. thật tình thi em chậm tiêu lam. đoạn code của bác em đọc tởi đọc lui 2 ngày mà chưa nghộ ra dc nhiều.


em kết nói 8bit với LCD qua portD.

tienchuan 17-03-2012 12:22 AM

Trích:

Nguyên văn bởi lambaotrung (Post 54834)
máy bác ơi cho em làm phiền.....

cái chuyện làm modull để từ từ rành rẻ về PIC thì hay làm. bày giờ em muốn làm 1 bài tập về truyền nhận dữ liệu từ PIC này sang PIC kia ( PIC1 đến PIC2) qua cổng RS232.

em truyền 1 số "123 " , hay 1 chử cái " A " đi và dùng ngắt RDA thì mình làm tốt và hiện thị giá trị lên LCD tốt.

nhưng khi em truyền 1 mãng char string[]=" PICVIETNAM ";
dùng lệnh Printf(string); nói chung thì no truyền đi dc.

nhưng ở phần PIC nhận thì em chỉ nhận dc có chứ "P" khi em dùng lệnh

IN=getc(); thì chi hiện chử 'P' á. . // khai bao char IN[10];

khi dùng lệnh gets(IN); thì nó đơ luôn. ko hiện hồn chử gì lên LCD cả.

các bác giúp em chổ này và bác Longtu ơi bác giúp noi rõ hơn về việc tìm dấu " , ". nhé anh. thật tình thi em chậm tiêu lam. đoạn code của bác em đọc tởi đọc lui 2 ngày mà chưa nghộ ra dc nhiều.


em kết nói 8bit với LCD qua portD.

đọc xog bài của bạn mih cũng đơ lun, hehe :D
bây h bạn làm từ từ cho hắn khỏi đơ :D
bạn muốn kiểm tra bên gởi đã gởi được hay chưa thì test qua Hyper Terminal đã nhé, nếu nhận OK hết rồi hãy kết nối với PIC để xử lý
Bên Pic nhận thì làm ngược lại, lấy Hyper gởi xuống chuỗi gì đó rồi cho hiện lên LCD
Xong 2 cái, bạn cắm lại vs nhau là OK thôi,
Nhớ đấu chéo 2 dây TX và RX nhé
p/s: bày vẻ bạn đủ thứ để cho có việc làm+ lần sau nên tạo chủ đề mới để hỏi nhé, làm loãng topic của a longtu :D
Thân.

lambaotrung 19-03-2012 11:37 AM

cám ơn các anh.

hiện em đã làm tốt việc nhận và xử lý tách chuổi dữ liệu qua rs232 giữa 2 PIC. côi như phần cần cơ bản em đã làm xong.

bày giờ quay lại đoạn chuỗi giữ liệu của bác Longtu.
$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,1 30694,004.2,W*70

sau dấu ',' thứ 1: là thời gian ok em hiểu.
sau dấu ',' thứ 2: là vĩ độ " latitude " A,5133.82 đoạn này em ko hiểu.
sau dấu ',' thứ 4: là kinh độ " longitude" N,00042.24 đoạn này cũng ko hiểu.

ở 2 đoạn kia là các con số phần tích thế nào anh longtu. nếu như ở miền nàm thi nằm trong khoảng
- longitude: 105 độ, 55' 37.04" E.
- latitude: 10 độ 08' 59.07" N. " là tọa độ của máy tính em cung cấp vì máy laptop có card wwan + GPS.

như vậy em so sanh với đoạn code cua modull GPS đưa ra thì em ko hiểu luôn.. híc bác longtu giúp em. giải thích thêm nhe. cảm ơn bác longtu và các bác đã có những lời khuyên cho em và em đã thành công. hihi

tienchuan 19-03-2012 11:09 PM

@ 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

lambaotrung 20-03-2012 09:44 AM

chưa hiễu về công thức tính toán kinh độ ,vĩ độ cũa bác.

kinh độ: (ddmm.mmmm): " độ độ phút phút. phút phút phút phút ".
cách quy đổi 5133.82= 51 độ+ 33.82 phút =51,5637 độ bác....
em chưa hiểu, bác nói rõ hơn về cách tính đi.

bac nay len GG lam sao search ra vi tri cua minh test xem minh dung hay sai bac.

em dung URL nay tim ma ko dc: http://www.google.com/maps?q=[1]+[2]&t=m&z=16
[1] kinh do= 5133.82
[2] vi do= 00042.24

e dua du lieu nhu tren vao doan URL kia ong GG bo tay.

lambaotrung 20-03-2012 11:23 AM

may bac oi trong protues cua minh co mo phong dc su giao tiep truyen thong RS232 giua Microcontroller va PC ko cac bac.. chi giup em nha hom bua em len youtube em xem 1 doan video anh kia lam dc chuyen do. ket hop voi mot phan mem viec bang Visua C# de goi 1 chuoi qua RS232 nhung chi la ao. thui.

longtu 20-03-2012 02:15 PM

Trích:

Nguyên văn bởi lambaotrung (Post 54958)
may bac oi trong protues cua minh co mo phong dc su giao tiep truyen thong RS232 giua Microcontroller va PC ko cac bac.. chi giup em nha hom bua em len youtube em xem 1 doan video anh kia lam dc chuyen do. ket hop voi mot phan mem viec bang Visua C# de goi 1 chuoi qua RS232 nhung chi la ao. thui.

To Trung: Trung tạo 1 luồng khác về vấn đề nay nhé. Luồng này, nên chỉ nói về GPS thôi.

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!

longtu 02-05-2012 01:21 PM

UB93 GPS module không chạy:
 
Có nhiều bạn email hỏi tôi như sau:
Trích:

1. Mình đã mắc theo sơ đồ của bạn nhưng tại sao led hiển thị trạng thái của GPS không hoạt động.
2. Có cách nào để biết được module GPS Holux-ub93 còn sống hay đã chết không
Nếu bạn có lời khuyên hay kinh nghiệm gì khi làm việc với module GPS này thì chia sẻ với mình được không. Thank bạn nhiều
Tôi trả lời các bạn như sau:
Về module GPS UB93 rất dễ dàng sử dụng, chỉ cần thiết kế đúng:
- Kết nối đúng các chân
- Đặt biết là chú ý đường mạch in cho đường RF nối với anten(http://www.picvietnam.com/forum/show...82&postcount=6)
- Lắp anten cho module
- Thêm nữa đặt module ở ngoài trời(để đảm bảo module thu tín hiệu tốt nhất)
Kết quả: Lập tức chân 1PPS tạ ra xung, ta nối chân này với Led sẽ thấy led này chớp tắt. Điều này cũng có nghĩa là UB93 đã lấy được thông tin từ vệ tinh mỗi 1 giây. Đây cũng chính là cách kiểm tra module UB93 có hoạt động tốt hay không.

Về kinh nghiệm sử dụng:
- Tôi tạo ra luồng này, với tấc cả những kinh nghiệm của tôi trong lúc sử dụng. Nếu bạn nào đọc kỹ, và đừng bỏ sót, các bạn sẽ thấy rằng các bố trí từ phần, từng mục của tôi đang trả lời các câu hỏi của 1 nguời mới bắt đầu tìm hiểu 1 sãn phẩm mới:
Ví du:
+ Đầu tiên: giới thiệu
+ Cách kế nối phần cứng
+ Cách viết Firmware để tách chuỗi data
+ Lưu ý khi vẽ mạch in

Các bạn cũng nên làm như thế mỗi lần chia sẽ. Tôi cũng mong rằng các bạn nào đã và đang làm ứng dụng này và cả các ứng dụng mới khác, hãy cùng chia sẽ kinh nghiệm, post bài để những nguời đi sau nhanh chóng nắm bắt.
Quan điểm của tôi là "Cho đi để còn nhận về" vì thế không có gì là dấu điếm hay không chia sẽ đuợc cả.

Thân,

thanhsonvn90 16-05-2012 02:26 PM

Trích:

Nguyên văn bởi longtu (Post 52473)
+ Chân TX0: Chân truyền dữ liệu từ GPS module. Để có thể xử lý data từ GPS module thông qua việc giao tiếp với Microcontroller, ta sẽ dụng chân này. Tuy nhiên, GPS module sử dụng 3.3V, microcontroller thông dụng lại là 5V. Vì vậy việc thêm 2 transistor(xem hình) là cần thiết.
Ngõ ra TX_GPS sẽ đuợc nối vào chân RX của microcontroller.

Có thực sự cần thiết không bạn? Mình nghĩ 3v3 được coi là mức cao trong chuẩn TTL, do đó VDK có thể nhận được bt

hgkq 02-10-2012 06:12 PM

Chào bạn Longtu! bạn đã làm về SIM908 rồi bạn có thể tư vấn cho mình tí kiến thức: SIM908 chạy được nhưng 1phut mới connect được với Vệ tinh, đem anten vào trong phòng cách vách tường 2 mét là tịt luôn, dùng S2 thì thì connect vèo vèo, không biết modun SIM908 thu yếu hay thế nào, đã thử với SIM908 thứ 2 vẫn bị, đã tìm mọi cách, ... hay mình phải chọn loại GPS nào thu tốt hơn?!

nguyenluong 18-10-2012 12:20 AM

Bác Longtu cho em hỏi, giờ mình có dữ liệu từ vệ tinh rồi, giờ muốn hiển thi vị trí lên bản đồ thì mình làm sao, gôgle maps chẳn hạn. Xin cảm ơn.

longtu 18-10-2012 01:02 PM

Trích:

Nguyên văn bởi nguyenluong (Post 78546)
Bác Longtu cho em hỏi, giờ mình có dữ liệu từ vệ tinh rồi, giờ muốn hiển thi vị trí lên bản đồ thì mình làm sao, gôgle maps chẳn hạn. Xin cảm ơn.

Bạn cần theo doi và đọc toan bộ luồng nay sẽ thay câu hỏi của bạn tôi đã trả lời rồi.
http://www.picvietnam.com/forum/show...3&postcount=18

Thân

nguyenluong 18-10-2012 04:53 PM

Ý em hỏi làm sao mà giống như điện thoai di động đó. Tức là mình không cần nhập tọa độ bằng tay nữa. Mình viết chương trình liên kết với gôgle máp, hiển thị liên tục luôn

kjlkt 30-10-2012 12:07 AM

#65: http://spkt.net/diendan/showthread.p...-GPS-GSM/page7

bạn tham khảo thêm ở page này nhé. Mình cũng đang tìm hiểu về phần GPS này.

HaiAu2005 15-11-2012 05:04 AM

Trích:

Nguyên văn bởi kjlkt (Post 78892)
#65: http://spkt.net/diendan/showthread.p...-GPS-GSM/page7

bạn tham khảo thêm ở page này nhé. Mình cũng đang tìm hiểu về phần GPS này.

Xin cho hỏi làm sao có thể liên hệ được với người làm cái đề tài ở trang spkt trên??? Trang spkt.net dường như đã đóng cửa thì phải vì không thể đăng ký được.

tay mơ 10-12-2012 10:33 PM

cám ơn bạn @longtu vì những thông tin, mình xem qua trang bạn giới thiệu http://vnettech.com.vn và thấy giới thiệu nhiều hãng/loại module , ko biết ở Sài gòn có thể kiếm mua đc ko (đã xem qua website của tme và chipltr nhưng ko phong phú bằng )
- tiếc là mình chỉ mua 1-2 module và rất ngại việc chuyển phát từ HN vào

vo_cam 25-12-2012 07:58 PM

Trích:

Nguyên văn bởi tay mơ (Post 79949)
cám ơn bạn @longtu vì những thông tin, mình xem qua trang bạn giới thiệu http://vnettech.com.vn và thấy giới thiệu nhiều hãng/loại module , ko biết ở Sài gòn có thể kiếm mua đc ko (đã xem qua website của tme và chipltr nhưng ko phong phú bằng )
- tiếc là mình chỉ mua 1-2 module và rất ngại việc chuyển phát từ HN vào

bạn có thể vào trang này http://www.linhkienvienthong.com/ để tìm, nếu cần thiết thì chuyển từ HN vào cũng nhanh mà.


Múi giờ GMT. Hiện tại là 03:15 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