Nick Chung gửi vào
- 52179 lượt xem
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.
- Hỗ trợ GPS-QZSS-GLONASS
- 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ể
UBX-M8030-KT của hãng Ubox (được V-kel hoàn thiện nốt phần PCB và antena) 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 (đến 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 (chú ý bạn phải thêm thư viện bên trên trước nhé).
Đây nhé: https://drive.google.com/open?id=0BzMEcyRK_uUFVW01XzRiMks2U1E
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:
- http://www.ediblefly.com/ediblefly_main/index.php/our-projects/other-multicopter/18-neo7m_connection_and_setup_megapirate
- https://sites.google.com/site/g4zfqradio/u-blox_neo-6-7
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é.
- https://code.google.com/archive/p/ardupirates/wikis/UbloxGPSTutorial.wiki
- http://www.waveshare.com/wiki/UART_GPS_NEO-6M
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é.
Ngoài ra các bạn cũng nên chú ý về việc chọn mua hàng thật, tránh tiền mất tật mang như một bác trong video dưới .
< Thái Sơn >