สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
- ขั้นตอนที่ 2: ข้อมูลเกี่ยวกับ GPS
- ขั้นตอนที่ 3: โมดูล GPS Neo-6M
- ขั้นตอนที่ 4: Arduino Mega
- ขั้นตอนที่ 5: Arduino IDE
- ขั้นตอนที่ 6: การเชื่อมต่อ
วีดีโอ: อินเทอร์เฟซ Arduino Mega พร้อมโมดูล GPS (Neo-6M): 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ในโครงการนี้ ฉันได้แสดงวิธีเชื่อมต่อโมดูล GPS (Neo-6M) กับ Arduino Mega ไลบรารี TinyGPS ใช้เพื่อแสดงข้อมูลของลองจิจูดและละติจูด และ TinyGPS++ ใช้สำหรับแสดงละติจูด ลองจิจูด ระดับความสูง ความเร็ว และจำนวนดาวเทียมบนจอภาพแบบอนุกรม
ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์
- Arduino Mega ==> $ 30
- โมดูล GPS Neo-6M ==> $ 30
ซอฟต์แวร์
Arduino IDE
ต้นทุนรวมของโครงการคือ 60 เหรียญสหรัฐ
ขั้นตอนที่ 2: ข้อมูลเกี่ยวกับ GPS
GPS คืออะไร
Global Positioning System (GPS) เป็นระบบนำทางด้วยดาวเทียมที่ประกอบด้วยดาวเทียมอย่างน้อย 24 ดวง GPS ทำงานได้ในทุกสภาพอากาศ ทุกที่ในโลก ตลอด 24 ชั่วโมง โดยไม่มีค่าธรรมเนียมการสมัครหรือค่าติดตั้ง
GPS ทำงานอย่างไร
ดาวเทียม GPS จะโคจรรอบโลกวันละสองครั้งในวงโคจรที่แม่นยำ ดาวเทียมแต่ละดวงส่งสัญญาณเฉพาะและพารามิเตอร์การโคจรที่อนุญาตให้อุปกรณ์ GPS ถอดรหัสและคำนวณตำแหน่งที่แม่นยำของดาวเทียม เครื่องรับ GPS ใช้ข้อมูลนี้และการแยกย่อยเพื่อคำนวณตำแหน่งที่แน่นอนของผู้ใช้ โดยพื้นฐานแล้ว เครื่องรับ GPS จะวัดระยะห่างของดาวเทียมแต่ละดวงตามระยะเวลาที่ใช้ในการรับสัญญาณที่ส่ง ด้วยการวัดระยะทางจากดาวเทียมอีกสองสามดวง เครื่องรับสามารถระบุตำแหน่งของผู้ใช้และแสดงผลได้
ในการคำนวณตำแหน่ง 2 มิติของคุณ (ละติจูดและลองจิจูด) และติดตามความเคลื่อนไหว เครื่องรับ GPS จะต้องล็อคกับสัญญาณของดาวเทียมอย่างน้อย 3 ดวง ด้วยการดูดาวเทียม 4 ดวงขึ้นไป เครื่องรับสามารถกำหนดตำแหน่งสามมิติของคุณได้ (ละติจูด ลองจิจูด และระดับความสูง) โดยทั่วไป เครื่องรับ GPS จะติดตามดาวเทียมตั้งแต่ 8 ดวงขึ้นไป แต่นั่นก็ขึ้นอยู่กับช่วงเวลาของวันและตำแหน่งที่คุณอยู่บนโลก เมื่อระบุตำแหน่งของคุณแล้ว หน่วย GPS สามารถคำนวณข้อมูลอื่นๆ เช่น
- ความเร็ว
- การแบก
- ติดตาม
- การเดินทาง dist
- ระยะทางถึงที่หมาย
สัญญาณคืออะไร
ดาวเทียม GPS ส่งสัญญาณวิทยุกำลังต่ำอย่างน้อย 2 สัญญาณ สัญญาณเดินทางในแนวสายตา ซึ่งหมายความว่าพวกมันจะทะลุผ่านเมฆ แก้ว และพลาสติก แต่จะไม่ผ่านวัตถุที่เป็นของแข็งส่วนใหญ่ เช่น อาคารและภูเขา อย่างไรก็ตาม เครื่องรับสมัยใหม่มีความอ่อนไหวมากกว่าและมักจะสามารถติดตามผ่านบ้านเรือนได้ สัญญาณ GPS ประกอบด้วยข้อมูล 3 ประเภท
รหัสสุ่ม
มันคือไอดี รหัสที่ระบุว่าดาวเทียมดวงใดกำลังส่งข้อมูล คุณสามารถดูดาวเทียมดวงใดที่คุณได้รับสัญญาณจากหน้าดาวเทียมของอุปกรณ์
ข้อมูล Ephemeris
จำเป็นต้องใช้ข้อมูล Ephemeris เพื่อระบุตำแหน่งของดาวเทียมและให้ข้อมูลสำคัญเกี่ยวกับความสมบูรณ์ของดาวเทียม วันที่และเวลาปัจจุบัน
ข้อมูลปูม
ข้อมูลปูมจะบอกเครื่องรับ GPS ว่าดาวเทียม GPS แต่ละดวงควรอยู่ที่ใดตลอดเวลาตลอดทั้งวัน และแสดงข้อมูลการโคจรของดาวเทียมดวงนั้นและดาวเทียมดวงอื่นๆ ในระบบ
ขั้นตอนที่ 3: โมดูล GPS Neo-6M
โมดูล GPS NEO-6M แสดงในรูปด้านล่าง มาพร้อมกับเสาอากาศภายนอกและไม่ได้มาพร้อมกับหมุดส่วนหัว ดังนั้นคุณจะต้องบัดกรีมัน
ภาพรวมของโมดูล GPS NEO-6M
ชิป GPS NEO-6M
หัวใจของโมดูลคือชิป GPS NEO-6M จาก u-blox สามารถติดตามดาวเทียมได้มากถึง 22 ดวงใน 50 ช่องสัญญาณ และบรรลุระดับความไวสูงสุดของอุตสาหกรรม เช่น การติดตาม -161 dB ในขณะที่ใช้กระแสไฟจ่ายเพียง 45mA เอ็นจิ้นการกำหนดตำแหน่ง u-blox 6 ยังมี Time-To-First-Fix (TTFF) ที่น้อยกว่า 1 วินาที หนึ่งในคุณสมบัติที่ดีที่สุดที่ชิปมีให้คือโหมดประหยัดพลังงาน (PSM) ช่วยลดการใช้พลังงานของระบบโดยการเลือกสวิตช์เปิดและปิดส่วนต่างๆ ของเครื่องรับ ซึ่งช่วยลดการใช้พลังงานของโมดูลลงอย่างมากให้เหลือเพียง 11mA ทำให้เหมาะสำหรับการใช้งานที่ไวต่อพลังงาน เช่น นาฬิกาข้อมือ GPS หมุดข้อมูลที่จำเป็นของชิป GPS NEO-6M ถูกแยกออกเป็นส่วนหัวพิทช์ 0.1 นิ้ว ซึ่งรวมถึงพินที่จำเป็นสำหรับการสื่อสารกับไมโครคอนโทรลเลอร์ผ่าน UART
หมายเหตุ: - โมดูลรองรับอัตราบอดตั้งแต่ 4800bps ถึง 230400bps โดยมีบอดเริ่มต้นที่ 9600
ตำแหน่ง Fix ไฟ LED แสดงสถานะ
มีไฟ LED บนโมดูล GPS NEO-6M ซึ่งระบุสถานะของการแก้ไขตำแหน่ง มันจะกะพริบในอัตราต่างๆขึ้นอยู่กับสถานะที่อยู่ใน
- ไม่กะพริบ ==> หมายถึง กำลังค้นหาดาวเทียม
- กะพริบทุกๆ 1 วินาที – หมายถึงพบ Position Fix
ตัวควบคุม LDO 3.3V
แรงดันไฟฟ้าในการทำงานของชิป NEO-6M อยู่ที่ 2.7 ถึง 3.6V แต่โมดูลนี้มาพร้อมกับตัวควบคุม 3V3 แบบเลื่อนออกต่ำพิเศษ MIC5205 จาก MICREL พินลอจิกยังทนต่อ 5 โวลต์ ดังนั้นเราจึงสามารถเชื่อมต่อกับ Arduino หรือไมโครคอนโทรลเลอร์ลอจิก 5V โดยไม่ต้องใช้ตัวแปลงระดับลอจิก
แบตเตอรี่ & EEPROM
โมดูลนี้ติดตั้ง EEPROM แบบอนุกรมสองสาย HK24C32 มีขนาด 4KB และเชื่อมต่อกับชิป NEO-6M ผ่าน I2C โมดูลนี้ยังมีแบตเตอรี่แบบชาร์จไฟได้ซึ่งทำหน้าที่เป็นตัวเก็บประจุแบบซุปเปอร์
EEPROM ร่วมกับแบตเตอรี่ช่วยรักษา RAM สำรองของแบตเตอรี่ (BBR) BBR ประกอบด้วยข้อมูลนาฬิกา ข้อมูลตำแหน่งล่าสุด (ข้อมูลวงโคจรของ GNSS) และการกำหนดค่าโมดูล แต่ไม่ได้มีไว้สำหรับการจัดเก็บข้อมูลถาวร
เนื่องจากแบตเตอรี่ยังคงนาฬิกาและตำแหน่งสุดท้าย เวลาในการแก้ไขครั้งแรก (TTFF) จะลดลงเหลือ 1 วินาทีอย่างมาก ซึ่งช่วยให้ล็อกตำแหน่งได้เร็วขึ้นมาก
หากไม่มีแบตเตอรี่ GPS จะสตาร์ทด้วยความเย็นเสมอ ดังนั้นการล็อก GPS เริ่มต้นจะใช้เวลามากขึ้น แบตเตอรี่จะชาร์จโดยอัตโนมัติเมื่อใช้พลังงานและจะคงข้อมูลไว้ได้นานถึงสองสัปดาห์โดยไม่ต้องใช้พลังงาน
Pinout
GND คือ Ground Pin และจำเป็นต้องเชื่อมต่อกับพิน GND บน Arduino
พิน TxD (ตัวส่งสัญญาณ) ใช้สำหรับการสื่อสารแบบอนุกรม
พิน RxD (ตัวรับ) ใช้สำหรับการสื่อสารแบบอนุกรม
VCC จ่ายไฟให้กับโมดูล คุณสามารถเชื่อมต่อโดยตรงกับพิน 5V บน Arduino
ขั้นตอนที่ 4: Arduino Mega
Arduino เป็นแพลตฟอร์มอิเล็กทรอนิกส์แบบโอเพ่นซอร์สที่ใช้ฮาร์ดแวร์และซอฟต์แวร์ที่ใช้งานง่าย บอร์ด Arduino สามารถอ่านอินพุต - ไฟบนเซ็นเซอร์, นิ้วบนปุ่มหรือข้อความ Twitter - และเปลี่ยนเป็นเอาต์พุต - เปิดใช้งานมอเตอร์, เปิด LED, เผยแพร่บางสิ่งทางออนไลน์ คุณสามารถบอกบอร์ดของคุณว่าต้องทำอะไรโดยส่งชุดคำสั่งไปยังไมโครคอนโทรลเลอร์บนบอร์ด ในการทำเช่นนี้คุณใช้ภาษาการเขียนโปรแกรม Arduino (ตาม Wiring) และซอฟต์แวร์ Arduino (IDE) ตามการประมวลผล
Arduino Mega
Arduino Mega 2560 เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ใช้ Atmega2560
- มีพิน I/O ดิจิตอล 54 พินและพินอะนาล็อก 16 พินที่รวมอยู่ในบอร์ด ซึ่งทำให้อุปกรณ์นี้มีเอกลักษณ์และโดดเด่นกว่าที่อื่น จาก 54 ดิจิตอล I/O, 15 อันใช้สำหรับ PWM (การปรับความกว้างพัลส์)
- เพิ่มคริสตัลออสซิลเลเตอร์ความถี่ 16MHz บนบอร์ด
- บอร์ดมาพร้อมกับพอร์ตสาย USB ที่ใช้เชื่อมต่อและโอนรหัสจากคอมพิวเตอร์ไปยังบอร์ด
- แจ็คไฟ DC เชื่อมต่อกับบอร์ดที่ใช้จ่ายไฟให้กับบอร์ด
- บอร์ดมาพร้อมกับตัวควบคุมแรงดันไฟฟ้าสองตัวคือ 5V และ 3.3V ซึ่งให้ความยืดหยุ่นในการควบคุมแรงดันไฟฟ้าตามความต้องการ
- มีปุ่มรีเซ็ตและพอร์ตอนุกรมฮาร์ดแวร์ 4 พอร์ตที่เรียกว่า USART ซึ่งสร้างความเร็วสูงสุดสำหรับการตั้งค่าการสื่อสาร
- มีสามวิธีในการขับเคลื่อนบอร์ด คุณสามารถใช้สาย USB เพื่อจ่ายไฟให้กับบอร์ดและโอนรหัสไปยังบอร์ด หรือคุณจะเปิดเครื่องโดยใช้ Vin ของบอร์ด หรือผ่านแจ็คเสียบปลั๊กหรือแบตเตอร์รี่ก็ได้
ข้อมูลจำเพาะ
Pinout
คำอธิบายพิน
- 5V & 3.3V ==>พินนี้ใช้สำหรับจ่ายแรงดันเอาต์พุตที่ควบคุมได้ประมาณ 5V แหล่งจ่ายไฟที่มีการควบคุมนี้จะให้พลังงานแก่คอนโทรลเลอร์และส่วนประกอบอื่นๆ บนบอร์ด สามารถรับได้จาก Vin ของบอร์ดหรือสาย USB หรือแหล่งจ่ายแรงดันไฟ 5V อื่นที่มีการควบคุม ในขณะที่การควบคุมแรงดันไฟฟ้าอื่นมีให้โดยพิน 3.3V กำลังสูงสุดที่สามารถดึงได้คือ 50mA
- GND ==>มีหมุดกราวด์ 5 อันบนกระดาน ซึ่งทำให้มีประโยชน์เมื่อต้องใช้หมุดกราวด์มากกว่าหนึ่งอันสำหรับโปรเจ็กต์
- รีเซ็ต ==> พินนี้ใช้เพื่อรีเซ็ตบอร์ด การตั้งค่าพินนี้เป็น LOW จะเป็นการรีเซ็ตบอร์ด
- Vin ==> เป็นแรงดันไฟขาเข้าที่จ่ายให้กับบอร์ดซึ่งมีช่วงตั้งแต่ 7V ถึง 20V แรงดันไฟฟ้าที่จ่ายโดยแจ็คจ่ายไฟสามารถเข้าถึงได้ผ่านพินนี้ อย่างไรก็ตาม แรงดันเอาต์พุตผ่านพินนี้ไปยังบอร์ดจะถูกตั้งค่าโดยอัตโนมัติที่ 5V
- การสื่อสารแบบอนุกรม ==> RXD และ TXD เป็นพินอนุกรมที่ใช้ในการส่งและรับข้อมูลอนุกรม เช่น Rx แสดงถึงการส่งข้อมูลในขณะที่ Tx ใช้ในการรับข้อมูล มีการใช้พินอนุกรมเหล่านี้สี่แบบร่วมกัน โดยที่ Serail 0 มี RX(0) และ TX(1), Serial 1 ประกอบด้วย TX(18) และ RX(19), Serial 2 ประกอบด้วย TX(16) และ RX(17), และ Serial 3 ประกอบด้วย TX(14) และ RX(15)
- อินเตอร์รัปต์ภายนอก ==> หกพินใช้สำหรับสร้างอินเตอร์รัปต์ภายนอกเช่น อินเตอร์รัปต์ 0(0), อินเตอร์รัปต์ 1(3), อินเตอร์รัปต์ 2(21), อินเตอร์รัปต์ 3(20), อินเตอร์รัปต์ 4(19), อินเตอร์รัปต์ 5(18) พินเหล่านี้สร้างอินเทอร์รัปต์ได้หลายวิธี เช่น ให้ค่าต่ำ ขอบขึ้นหรือลง หรือเปลี่ยนค่าเป็นพินอินเทอร์รัปต์
- LED ==> บอร์ดนี้มาพร้อมกับ LED ในตัวที่เชื่อมต่อกับพินดิจิตอล 13 ค่าสูงที่พินนี้จะเปิด LED และค่า LOW จะปิด
- AREF ==> AREF ย่อมาจาก Analog Reference Voltage ซึ่งเป็นแรงดันอ้างอิงสำหรับอินพุตแบบอะนาล็อก
- Analog Pins ==> มี 16 พินแบบอะนาล็อกที่รวมอยู่ในบอร์ดที่มีป้ายกำกับว่า A0 ถึง A15 สิ่งสำคัญที่ควรทราบคือ พินอะนาล็อกเหล่านี้สามารถใช้เป็นพิน I/O ดิจิทัลได้ พินอะนาล็อกแต่ละอันมาพร้อมกับความละเอียด 10 บิต พินเหล่านี้สามารถวัดจากกราวด์ถึง 5V อย่างไรก็ตาม ค่าบนสามารถเปลี่ยนแปลงได้โดยใช้ฟังก์ชัน AREF และ analogReference()
- I2C ==> สองพิน 20 และ 21 รองรับการสื่อสาร I2C โดยที่ 20 หมายถึง SDA (Serial Data Line ส่วนใหญ่ใช้สำหรับเก็บข้อมูล) และ 21 หมายถึง SCL (Serial Clock Line ส่วนใหญ่ใช้สำหรับการซิงโครไนซ์ข้อมูลระหว่างอุปกรณ์)
- การสื่อสาร SPI ==> SPI ย่อมาจาก Serial Peripheral Interface ที่ใช้สำหรับการส่งข้อมูลระหว่างคอนโทรลเลอร์และอุปกรณ์ต่อพ่วงอื่นๆ สี่พินเช่น 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) ใช้สำหรับการสื่อสาร SPI
ขั้นตอนที่ 5: Arduino IDE
ที่นี่ฉันสมมติว่าคุณติดตั้ง Arduino IDE แล้ว
1. ดาวน์โหลดไลบรารีที่จำเป็นที่ระบุด้านล่าง
TinyGPS lib
2. หลังจากดาวน์โหลดแล้ว แตกไฟล์และย้ายไปยังโฟลเดอร์ C:\Users\…\Documents\Arduino\libraries ตรวจสอบให้แน่ใจว่าไม่มี (-)
3. เปิด Arduino IDE และคัดลอกโค้ดจากส่วนโปรแกรม
4. จากนั้นเลือกบอร์ดสำหรับที่ไปที่ Tools ==> Boards ==> เลือกบอร์ดที่นี่เราใช้ Arduino Mega 2560
5. หลังจากเลือกบอร์ดแล้ว ให้เลือกพอร์ตสำหรับสิ่งนั้น ไปที่ Tools ==> Ports
6. หลังจากเลือกบอร์ดและพอร์ตแล้ว ให้คลิกอัพโหลด
7. เมื่ออัปโหลดรหัสแล้ว ให้เปิดเทอร์มินัลอนุกรมเพื่อดูผลลัพธ์
ขั้นตอนที่ 6: การเชื่อมต่อ
Arduino MEGA ==> NEO-6M GPS
- 3.3V ==> VCC
- GND ==> GND
- Tx1 (18) ==> Rx
- Rx (19) ==> Tx
คุณสามารถใช้ Serial2 หรือ Serial3 แทน Serial1. ได้
แนะนำ:
DIY Walkie-Talkie พร้อมโมดูล RF 433MHz ทั่วไป: 4 ขั้นตอน
DIY Walkie-Talkie พร้อมโมดูล RF 433MHz ทั่วไป: ในโครงการนี้ฉันจะแสดงวิธีใช้โมดูล RF 433MHz ทั่วไปจาก Ebay เพื่อสร้าง Walkie-Talkie ที่ใช้งานได้ นั่นหมายความว่าเราจะเปรียบเทียบโมดูล RF ต่างๆ เรียนรู้เล็กน้อยเกี่ยวกับแอมพลิฟายเออร์คลาส d และสุดท้ายสร้างวอล์คกี้ทอล์คกี้
บอร์ด HiFive1 Arduino พร้อมโมดูล WiFi ESP-01 WiFi: 5 ขั้นตอน
บอร์ด Arduino HiFive1 พร้อมการสอนโมดูล WiFi ESP-01: HiFive1 เป็นบอร์ดที่ใช้ RISC-V ที่เข้ากันได้กับ Arduino ตัวแรกที่สร้างขึ้นด้วย FE310 CPU จาก SiFive บอร์ดนี้เร็วกว่า Arduino UNO ประมาณ 20 เท่า แต่เหมือนกับบอร์ด UNO ที่ไม่มีการเชื่อมต่อไร้สาย โชคดีที่มีราคาไม่แพงหลาย
เครื่องวิเคราะห์เสาอากาศ HF พร้อมโมดูล Arduino และ DDS: 6 ขั้นตอน (พร้อมรูปภาพ)
เครื่องวิเคราะห์เสาอากาศ HF พร้อมโมดูล Arduino และ DDS: สวัสดีในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันสร้างเครื่องวิเคราะห์เสาอากาศต้นทุนต่ำซึ่งสามารถวัดเสาอากาศและแสดง VSWR บนแถบความถี่ HF ใดๆ หรือทั้งหมดได้อย่างไร จะค้นหา VSWR ขั้นต่ำและความถี่ที่สอดคล้องกันสำหรับแต่ละแบนด์ แต่ยัง
ขอแนะนำ I2C พร้อมโมดูล Zio และ Qwiic: 6 ขั้นตอน
ขอแนะนำ I2C ด้วย Zio Modules และ Qwiic: Robin Sharma กล่าวว่า: "การปรับปรุงเล็กน้อยในแต่ละวันเมื่อเวลาผ่านไปนำไปสู่ผลลัพธ์ที่น่าทึ่ง" คุณอาจจะคิดว่า 'แย่จัง โพสต์ I2C อื่นเหรอ' มีข้อมูลมากมายเกี่ยวกับ I2C อย่างแน่นอน แต่คอยติดตาม นี่ไม่ใช่เพียง I2C อื่น
Raspberry Pi พร้อมโมดูล GSM: 5 ขั้นตอน
Raspberry Pi พร้อมโมดูล GSM: เมื่อก่อนฉันเขียนสองสามย่อหน้าเกี่ยวกับการใช้ RPI เพื่อตรวจสอบทรัพย์สินของคุณ:https://www.instructables.com/id/Home-Security-Wit…ฉันสัญญาว่าจะเขียนเกี่ยวกับการใช้ GSM "เร็ว ๆ นี้" ซึ่งในกรณีนี้ใช้เวลาไป 5 เดือนแล้ว เหตุผลที่ผมคิดว่ามิ