Giới thiệu cách sử dụng module GPS NEO 6 và NEO 7 của hãng Ublox

Mô tả dự án: 

Hôm nay mình sẽ giới thiệu module GPS NEO 6 và NEO 7, rất cần thiết cho các dự án định vị vị trí và chuyển động, tốc độ cập nhật rất nhanh, trả về tọa độ rất chính xác, kết nối và sử dụng rất đơn giản là những ưu điểm của loại module này.

Nếu như bạn có một module GPS NEO trong tay….

…thì bạn sẽ có thể ứng dụng nó vào rất nhiều việc:

  • Xác định tọa độ (kinh tuyến, vĩ tuyến) hiện tại của module trên bề mặt trái đất với sai số nhỏ nhất < 1m.
  • Xác định thời gian quốc tế được cấp bởi đồng hồ nguyên tử trên vệ tinh gửi về. Từ đó bạn cũng có thể suy ra thời gian đồng hồ nơi ở của bạn theo tắc trừ múi giờ. Khỏi cần module RTC.
  • Chỉ cần 3 vệ tinh là bạn có thể xác định được tọa độ, chỉ cần 4 vệ tinh là bạn có thể xác định được độ cao hiện tại so với mực nước biển.
  • Có thể tính toán ra tốc độ di chuyển, hướng di chuyển của vật thể được gắn module GPS.
  • Gỉai các bài toán về tính toán giữa 2 điểm bất kì, tính diện tích ở một không gian cực kì rộng lớn.

Thông số

Bài này mình giới thiệu về GPS NEO 7, còn GPS NEO 6 thì cách dùng cũng tương tự chỉ có điều nó tỏ ra chậm hơn NEO 7 ở khoản cập nhật và trả về tọa độ.

Thông số cho NEO 7

  • Hãng Ublox.
  • Ic chính : Neo 7 nguyên chiếc của Ublox.
  • Nguồn cấp : 3v  => 3.5 v
  • Giao tiếp : Serial (là UART TTL đó bạn)
  • Anten rời hoặc dán trực tiếp lên mạch
  • Chu kỳ cập nhật tọa độ 0,1 s đến 1s tùy từng địa hình có thuận lợi hay không.
  • Phần mềm hỗ trợ với rất nhiều tính năng được Ublox cho tải miễn phí.
  • Ứng dụng : có tất cả khả năng như đã giới thiệu phía trên.

Các biến thể

Các module sử dụng lõi Neo 7 của Ublox có thể có nhiều phiên do nhiều công ty tự lắp ráp.

Neo 7 của hãng V.kel có anten liền trên mạch.(Anten đặt ở lưng đằng sau của mạch)

 

 

Neo 7 trần trụi của Ublox, anten rời.

Sử dụng module GPS với arduino

Sơ đồ pinout của module

Bạn chỉ cần dùng đến 4 pin với tên G-R-T-V

Tương ứng

  • E: Để hở chân này (không nối)
  • G (GND): Nối với GND của arduino.
  • R : là chân RX của module này.
  • T: là chân TX của module này.
  • V: nối pin này với nguồn 3.5v
  • P: chân này để đặt ngắt báo module đã cập nhật xong vị trí sẵn sàng truyền dữ liệu.(để hở pin này nếu không biết dùng).

Download thư viện hỗ trợ .

Tải về thư viện

https://drive.google.com/file/d/0BzMEcyRK_uUFN0RkTE81cnNjbEk/view?usp=sharing (mirror)

Hoặc tải trên Github

Trong thư viện trên có các ví dụ basic.

Tải về thêm ví dụ mẫu có hỗ trợ truy cập phần cứng để cài đặt lựa chọn thay đổi chu kỳ cập nhật, thích ứng theo từng địa hình, thay đổi tốc độ baudrate của module GPS do mình biên soạn lại. (chú ý bạn phải thêm thư viện bên trên trước nhé).

<Mình sẽ tải lên sau >

Nối mạch test thư viện như sau

Các chú ý quy tắc nối trong giao tiếp UART (RX của a nối với TX của b).

 

 

 

 

Mạch của mình :

Test một ví dụ

Mình chọn ví dụ có tên là “simple_test” tại thư mục /Examples của thư viện này.

Chú ý sửa lại tốc độ baudrate của máy tính phù hợp với code nhé

Ở đây mình sửa luôn trên code

Sau đó nạp code cho arduino

Đợi module sẵn sàng (khoảng 5s đầu tiên thôi bạn) cho đến đèn xanh (PPS) nhấp nháy thì trên màn hình sẽ có kết quả như bên dưới .

Copy 2 số kinh độ và vĩ độ rồi dán vô khung tìm kiếm của google map. Ta sẽ thu được tọa độ hiện tại của modue. Bật chọn chế độ vệ tinh để xem ảnh ngoài đời thực như thế này.

 

Ngoài ra còn rất nhiều ví dụ hay ho như tính thời gian, khoảng cách, tốc độ…… trong thư mục chờ đợi bạn khám phá ^^.

Bạn nào muốn sử dụng module RF để đặt một nơi khác thì nối mạch như dưới nhé :

Dùng ,moulde RF có tần số sóng mang 2.4ghz nhé,

ví dụ như CC2530 (1500 m)  : http://arduino.vn/tutorial/1479-gioi-thieu-module-thu-phat-rf-cc2530-tam-xa-plus-cc2591-cua-zigbee

hoặc LRF24L01 (200m) : http://arduino.vn/bai-viet/562-su-dung-module-nrf24l01

 

Sử dụng phần mềm do Ublox cung cấp

Tải phần mềm miễn phí của công ty Ublox

https://www.u-blox.com/en/product/u-center-windows

Hoặc lần theo địa chỉ : www.u-blox.com -->Support -->Kits and Tools -->Evaluation Software)

Chuẩn bị

  • 1 mạch chuyển đổi UART/USB loại bất kì (Ví dụ: PL2303, CP210X,...)
    • Nếu không có mạch thì cần 1 Arduino uno R3 (làm nhiệm vụ thay cho module chuyển đổi)
  • 1 module GPS NEO bất kì của Ublox.

Nếu bạn nào dùng ic thì xem chi tiết tại đây:

Tiến hành

Bước 1: (nếu bạn dùng arduino) Vô hiệu hóa chip xử lí AVR (chỉ là tắt cổng Serial trên chip arduino, nên nó an toàn)

Nạp cho arduino đoạn code sau

#define ledbrd 13
#define rxpin 0
#define txpin 1
//http://www.instructables.com/id/Uploading-sketches-to-Pro-Mini-using-Arduino-UNO-b/
void setup()
{
    pinMode(ledbrd, OUTPUT); // initialize digital pin 13 as an output.
    Serial.end(); // disable the serial port to start using the tx and rx and input port
    pinMode(rxpin, INPUT); //set the serial rx pin as general input
    pinMode(txpin, INPUT); // set the serial tx pin as general input
}
// Very low duty cycle blink to indicate idle mode of UNO board
void loop()
{
    digitalWrite(ledbrd, HIGH); // turn the LED on
    delay(1); // wait for a very short (minimum) time
    digitalWrite(ledbrd, LOW); // turn the LED off
    delay(4000); // wait for many seconds
}

Kết quả : đèn led trên pin 13 nháy chậm với đoạn code delay như trên.

Bước 2: Nối dây

Sở dĩ ta nối dây như vậy bởi vì ta đang sử dụng chính ic chuyển đổi USB/UART có sẵn trên arduino.

Mạch của mình :

Bước 3: Mở phần mềm

Bước 4: Chọn cổng Com cho arduino như bình thường .

Kết quả bạn sẽ thấy các thông tin gửi về như giao diện.

Nếu máy tính của bạn có kết nối internet, hãy vào chọn mục View => Map View => Nhấn vào biểu tượng google map => Chọn kiểu xem Google Satellite.

Mình hướng dẫn một ví dụ đơn giản vậy thui, các bạn tự tìm hiểu các chức năng khác nhé.

Sử dụng module RF bất kì để truyền Data không dây cho phần mềm Ublox:

Tương tự , nhưng chú ý sự khác biệt kiểu nối nối dây ở 2 bên nhé, hình chuẩn rồi đấy.

 

 

 

Mình sử dụng module CC2530 cự li xa , các bạn có thể tìm hiểu thêm về module tại bài viết này:

http://arduino.vn/tutorial/1479-gioi-thieu-module-thu-phat-rf-cc2530-tam-xa-plus-cc2591-cua-zigbee

 

Test module GPS.

GPS là hệ thống định vị toàn cầu do đó yêu cầu đặt ra với một module GPS là càng chính xác càng tốt,bên cạnh đó là thời gian cập nhật càng nhanh càng tốt.

Hôm nay chúng ta sẽ có dịp gặp lại module CC2530  để ứng dụng nó vào mạch test GPS của ta ,các bạn xem video nhé :

 

 

 

Kết.

Khi sử dụng module này các bạn chú ý đặt module ở những nơi thoáng đãng, không có các vật cản ở phía trên module như tán cây, trong nhà, hoặc bên trong các cụm tòa nhà cao tầng.

Nếu các bạn test chưa thành công ở phần nào thì hãy vô mục comment bên dưới, mình sẽ hỗ trợ nhiều nhất có thể.

Cảm ơn các bạn đã ủng hộ nhé.winkheart

Thái Sơn >

lên
8 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Hướng dẫn sử dụng ic eeprom 24Cxx của Atmel và thư viện

 Bấy lâu nay bạn đã sử dụng sai eeprom của arduino? ..Một ngày bạn sử dụng eeprom bao nhiêu lần? Có bao giờ bạn lo lắng tới tuổi thọ của EEPROM ?smiley

EEPROM là còn được hiểu như một thẻ nhớ có thể lưu trữ dữ liệu ngay cả khi mất điện.

Bộ nhớ EEPROM có sẵn của arduino có số lần ghi/xóa 100000 lần,  nếu dùng hết số lần ghi cho phép, eeprom sẽ hỏng. Để khắc phục điều này, chúng ta cần sử dụng một ic eeprom ngoại vi thay vì sử dụng eeprom của arduino.

lên
17 thành viên đã đánh giá bài viết này hữu ích.

GAME-ST7565 - Làm game đua xe RACING CAR 3D với arduino

OK,  hôm nay mình sẽ giới thiệu Game “3D Racing Car” – Đua xe 3D. Một trong những Game khá phức tạp mà mình từng viết trên Arduino với lcd ST7565.

lên
9 thành viên đã đánh giá bài viết này hữu ích.