Mục lục:

Giám sát GPS với Dự án màn hình OLED: 5 bước (có hình ảnh)
Giám sát GPS với Dự án màn hình OLED: 5 bước (có hình ảnh)

Video: Giám sát GPS với Dự án màn hình OLED: 5 bước (có hình ảnh)

Video: Giám sát GPS với Dự án màn hình OLED: 5 bước (có hình ảnh)
Video: Định Vị Xe Ô Tô Có Màn Hình Android - Dùng Điện Thoại Theo Dõi Từ Xa (Hoàn Toàn Miễn Phí) 2024, Tháng bảy
Anonim
Giám sát GPS với Dự án màn hình OLED
Giám sát GPS với Dự án màn hình OLED
Giám sát GPS với Dự án màn hình OLED
Giám sát GPS với Dự án màn hình OLED
Giám sát GPS với Dự án màn hình OLED
Giám sát GPS với Dự án màn hình OLED
Giám sát GPS với Dự án màn hình OLED
Giám sát GPS với Dự án màn hình OLED

Xin chào mọi người, trong bài viết nhanh này, tôi sẽ chia sẻ với các bạn dự án của tôi: Mô-đun GPS ATGM332D với Vi điều khiển SAMD21J18 và màn hình SSD1306 OLED 128 * 64, tôi đã xây dựng một PCB đặc biệt cho nó trên Eagle Autodesk và lập trình nó bằng Atmel studio 7.0 và ASF4. trong bài viết này, tôi sẽ chia sẻ với bạn hành trình này và các tập tin tôi đã sử dụng nếu bạn cảm thấy thú vị khi tự mình làm điều đó.

Bây giờ nếu bạn đang lập trình MCU / bảng phát triển của mình bằng Arduino, dự án này sẽ tương đối dễ dàng với bạn, nhưng ở đây tôi sẽ sử dụng ASF4 (Khung phần mềm nâng cao 4) từ Atmel / Microchip dựa trên ngôn ngữ C và sẽ cung cấp cho bạn một ý tưởng để biết cách đọc tin nhắn GPS NMEA bằng cách sử dụng trình điều khiển không đồng bộ USART (Gọi lại) và cung cấp cho bạn một thư viện đơn giản mà bạn có thể sử dụng nó với bất kỳ Bộ điều khiển vi mô và nền tảng khác bằng cách chỉ cần thêm Trình điều khiển thích hợp mà bạn đang sử dụng để nhận thông báo từ GPS (thông điệp NMEA).

Tôi sẽ chia bài viết này thành:

  1. Thiết kế PCB.
  2. BOM bạn cần lắp ráp PCB
  3. Xem nhanh phần mềm và mã chính nó và kiểm tra phần cứng và phần mềm.
  4. cuối cùng nhưng không kém một số điểm cải tiến cho dự án này.

Bạn sẽ tìm thấy tất cả các tài liệu liên quan đến dự án này trênGithub (Tại đây)

Bước 1: Thiết kế PCB bằng Eagle

Thiết kế PCB bằng Eagle
Thiết kế PCB bằng Eagle
Thiết kế PCB bằng Eagle
Thiết kế PCB bằng Eagle
Thiết kế PCB bằng Eagle
Thiết kế PCB bằng Eagle
Thiết kế PCB bằng Eagle
Thiết kế PCB bằng Eagle

Dự án này chủ yếu dựa trên Mô-đun GPS ATGM332D, sử dụng GPS đơn giản vì nó chỉ cần một vài thành phần thụ động để hoạt động và chúng tôi có thể thêm pin dự phòng để tiết kiệm thời gian / ngày nếu chúng tôi tắt nguồn điện chính từ mô-đun.

và để kiểm soát tất cả các tín hiệu trong mạch, tôi đã sử dụng vi điều khiển ATSAMD21J18B, gói TQFP64 vì nó có 128KByte bộ nhớ chương trình và 32KByte bộ nhớ dữ liệu (và tôi có rất nhiều chúng nằm xung quanh bàn làm việc của tôi).

mạch sẽ được cấp nguồn bởi nguồn USB 5V, USB cũng có thể hoạt động như cổng COM ảo (CDC USB) và bạn có thể thêm mã cho nó nếu bạn muốn giao tiếp với thiết bị qua USB.

cho màn hình, tôi đã chọn màn hình OLED SSD1306 0,96 'với bus SPI, nó nhỏ nhưng phù hợp với kích thước PCB mà tôi muốn, kích thước bo mạch 100x31 mm.

lập trình Vi điều khiển sẽ thông qua lập trình SWD (tôi sử dụng Atmel ICE) và sẽ kết nối nó thông qua tiêu đề chân 1,27mm 10p.

Ngoài ra, tôi đã sử dụng Fusion360 để có chế độ xem 3D cho bảng và bạn cũng có thể thấy một số hình ảnh được kết xuất cho nó.

Bước 2: Hàn PCB

Hàn PCB
Hàn PCB
Hàn PCB
Hàn PCB
Hàn PCB
Hàn PCB

Bạn có thể lựa chọn đặt hàng một chiếc bút chì với PCB của mình, việc áp dụng chất hàn lên bảng bằng cách sử dụng giấy nến sẽ dễ dàng hơn, tôi đã sử dụng tấm nóng để hàn các thành phần lại với nhau, sử dụng khí nóng cũng được nhưng hãy cẩn thận khi hàn đèn LED vì chúng rất nhạy cảm với nhiệt.

Việc hàn mặt dưới dễ dàng hơn một chút vì nó chỉ có đầu cắm pin SWD và pin dự phòng, bạn có thể hàn chúng bằng cách sử dụng mỏ hàn.

trước khi bạn kết nối mạch với bất kỳ nguồn điện USB nào, hãy kiểm tra xem có đoản mạch nào không.

kết nối ăng-ten GPS của bạn và đảm bảo bạn đã hàn đầu nối của nó đúng cách, tôi đã cố định ăng-ten ở mặt dưới của bo mạch.

Bước 3: Phần mềm… Chức năng… kết quả

Image
Image
Phần mềm… Chức năng… kết quả
Phần mềm… Chức năng… kết quả
Phần mềm… Chức năng… kết quả
Phần mềm… Chức năng… kết quả

Phần mềm sẽ được chia thành 4 phần:

  1. USART để giao tiếp với mô-đun GPS ATGM332.
  2. SPI để giao tiếp với OLED.
  3. CDC USB.
  4. GPIO để điều khiển đèn LED

đầu tiên kết nối đầu nối USB với nguồn trên Mạch và sau đó kết nối cáp ribbon với đầu nối SWD.

Tải xuống Mã từ github (Liên kết tại đây).

để có được Vị trí địa lý, bạn có 3 tùy chọn thông báo NMEA khác nhau:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Tôi đã sử dụng câu GPRMC để lấy vị trí, thời gian và ngày (thời gian là 0,0 GMT), vì vậy trong mã bạn sẽ tìm thấy:

GPRMC. Enable = 1; / * 0 nếu không cần thông báo này * /

GPGGA. Enable = 0; / * 0 nếu không cần thông báo này * /

GPGLL. Enable = 0; / * 0 nếu không cần thông báo này * /

bạn có thể kích hoạt tất cả chúng cùng nhau và đọc chúng đồng thời lấy dữ liệu bạn cần.

khi có một câu GPRMC hợp lệ, theGPRMC. Ready sẽ trở thành 1 và bạn có thể lấy tất cả dữ liệu có sẵn trong câu này, hãy kiểm tra liên kết này để xem dữ liệu có sẵn trong câu này.

đơn giản nếu Fix là 'A' có nghĩa là Vị trí khả dụng, nếu Fix là 'V' có nghĩa là vị trí không khả dụng.

lưu ý rằng ATSAMD21 có RTC bên trong, nhưng ở đây tôi không sử dụng nó và thay vào đó tôi sử dụng thời gian và Ngày trực tiếp từ GPS, vì vậy nếu bạn không muốn sử dụng Pin dự phòng CR1220, khi bạn ngắt kết nối nguồn điện USB, bạn sẽ mất Thời gian / Ngày và trong lần tiếp theo bạn bật nguồn mạch, khu vực ngày / giờ trên màn hình sẽ trống cho đến khi GPS có giá trị ngày / giờ hợp lệ.

màn hình sẽ hiển thị cho bạn trạng thái hiện tại của GPS và sẽ hiển thị Vị trí địa lý khi nó khả dụng, tuy nhiên có 3 đèn LED trên Bảng:

  1. Đèn LED màu xanh lục được kết nối với PA06 và sẽ nhấp nháy nếu có giá trị Vị trí địa lý hợp lệ.
  2. Đèn LED màu cam được kết nối với PA07 và sẽ nhấp nháy mỗi giây một lần nếu không có Vị trí địa lý hợp lệ.
  3. Đèn LED màu đỏ này được kết nối với chân PPS của Mô-đun GPS và sẽ chỉ nhấp nháy khi có tín hiệu hợp lệ liên quan đến Vị trí.

Kết quả

Mạch hoạt động rất tốt với tôi, lấy vị trí Địa lý từ GPS mất 20-30 giây ngoài trời với tầm nhìn rõ ràng đến bầu trời và giữa các tòa nhà mà không gặp bất kỳ vấn đề gì ngay cả với ăng-ten ở mặt dưới của bảng.

Bước 4: Trường hợp in 3D… Phân loại

Trường hợp in 3D… Phân loại
Trường hợp in 3D… Phân loại

Tôi đã chuẩn bị một hộp đựng đơn giản (giá đỡ chính xác hơn) cho mạch này nhưng do dịch COVID-19 và sự cố khóa tôi đang ở ngay bây giờ, tôi không thể với máy in 3d của mình để in nó, vì vậy tôi sẽ cập nhật phần này bằng stl tệp và ảnh cho chủ sở hữu khi nó có sẵn.

Bước 5: Những điều cần cải thiện…

Những điều cần cải thiện…
Những điều cần cải thiện…
Những điều cần cải thiện…
Những điều cần cải thiện…
Những điều cần cải thiện…
Những điều cần cải thiện…
  1. Di chuyển đầu nối SWD lên phía trên cùng vì việc kết nối nó với lập trình viên của bạn dễ dàng hơn.
  2. Cấp nguồn cho mạch từ pin Lithium, tôi đã làm điều đó bằng cách hàn một jumper và nó hoạt động tốt, xin lưu ý rằng bộ điều chỉnh Linear (LDO) có điện áp rơi V nếu (Vbat - Vout) nhỏ hơn giới hạn Vdrop, mạch có thể không hoạt động đúng.
  3. làm cho nút người dùng lớn hơn một chút để dễ bấm hơn.
  4. thêm mã USB CDC để bạn có thể giao tiếp / thiết kế một chương trình đặc biệt cho MAC / PC / linux.
  5. Đối với ăng-ten GPS, tôi đã sử dụng ăng-ten Hoạt động cho dự án này, có thể sử dụng ăng-ten thụ động, bằng cách thêm op-Amp tiếng ồn thấp như AT2659 (cũng kiểm tra sơ đồ trên Bảng dữ liệu ATGM332 P.14).
  6. đối với OLED 0,96 'SSD1306, thư viện chính thức từ vi mạch ban đầu dành cho màn hình 128 * 32, để sửa đổi mã hoạt động với 128 * 64, bạn phải truy cập ssd1306.c và sửa đổi mã (kiểm tra hình ảnh).

Đề xuất: