สารบัญ:

Rocket Telemetry/ตัวติดตามตำแหน่ง: 7 ขั้นตอน
Rocket Telemetry/ตัวติดตามตำแหน่ง: 7 ขั้นตอน

วีดีโอ: Rocket Telemetry/ตัวติดตามตำแหน่ง: 7 ขั้นตอน

วีดีโอ: Rocket Telemetry/ตัวติดตามตำแหน่ง: 7 ขั้นตอน
วีดีโอ: GPS Drone Tracker (LAST KNOWN LOCATION!) 2024, กรกฎาคม
Anonim
Rocket Telemetry / ตัวติดตามตำแหน่ง
Rocket Telemetry / ตัวติดตามตำแหน่ง

โปรเจ็กต์นี้มีวัตถุประสงค์เพื่อบันทึกข้อมูลเที่ยวบินจากโมดูลเซ็นเซอร์ 9 DOF ไปยังการ์ด SD และส่งตำแหน่ง GPS ผ่านเครือข่ายเซลลูลาร์ไปยังเซิร์ฟเวอร์พร้อมกัน ระบบนี้ช่วยให้สามารถพบจรวดได้หากพื้นที่ลงจอดของระบบอยู่นอกเหนือ LOS

ขั้นตอนที่ 1: รายการชิ้นส่วน

ส่วนรายการ
ส่วนรายการ
ส่วนรายการ
ส่วนรายการ

ระบบโทรเลข:

1x ATmega328 ไมโครคอนโทรลเลอร์ (Arduino UNO, นาโน)

1x ฝ่าวงล้อม Micro SD -

การ์ด Micro SD 1x - (ขนาดไม่สำคัญว่าฟอร์แมต FAT 16/32) - Amazon Link

1x Gy-86 IMU - Amazon Link

การติดตามตำแหน่ง:

1x ATmega328 ไมโครคอนโทรลเลอร์ (Arduino UNO, Nano) (แต่ละระบบต้องการไมโครคอนโทรลเลอร์ของตัวเอง)

1x โมดูล Sim800L GSM GPRS - Amazon Link

1x ซิมการ์ด (ต้องมีแผนบริการข้อมูล) - https://ting.com/ (คิดค่าบริการเฉพาะสิ่งที่คุณใช้)

1x โมดูล NEO 6M GPS - Amazon LINK

ชิ้นส่วนทั่วไป:

1x3.7v lipo แบตเตอรี่

ตัวแปลง step-up 1x 3.7-5v (ถ้าคุณไม่สร้าง pcb)

1x Raspberry pi หรือคอมพิวเตอร์เครื่องใดก็ได้ที่สามารถโฮสต์เซิร์ฟเวอร์ php ได้

- การเข้าถึงเครื่องพิมพ์ 3 มิติ

-BOM สำหรับ pcb แสดงอยู่ในสเปรดชีต

-Gerbers อยู่ที่ github repo -

ขั้นตอนที่ 2: ระบบย่อย 1: การติดตามตำแหน่ง

การทดสอบ:

เมื่อคุณมีชิ้นส่วนสำหรับระบบ (NEO-6M GPS, Sim800L) อยู่ในมือแล้ว คุณต้องทดสอบการทำงานของระบบอย่างอิสระ คุณจะได้ไม่ต้องปวดหัวกับการพยายามคิดว่าอะไรใช้ไม่ได้เมื่อคุณรวมระบบเข้าด้วยกัน

การทดสอบ GPS:

ในการทดสอบเครื่องรับ GPS คุณสามารถใช้ซอฟต์แวร์ที่ Ublox ให้มา (ซอฟต์แวร์ U-Center)

หรือแบบร่างการทดสอบที่เชื่อมโยงใน github repo (การทดสอบ GPS)

1. ในการทดสอบด้วยซอฟต์แวร์ U-center เพียงเสียบตัวรับสัญญาณ GPS ผ่าน USB และเลือกพอร์ต com ใน U-center ระบบจะเริ่มติดตามตำแหน่งของคุณโดยอัตโนมัติหลังจากนั้น

2. ในการทดสอบด้วยไมโครคอนโทรลเลอร์ ให้อัปโหลดภาพร่างการทดสอบ GPS ไปยัง Arduino ผ่าน IDE จากนั้นเชื่อมต่อ 5V และ GND กับพินที่ติดฉลากบนตัวรับสัญญาณเข้ากับพิน Arduino และ GPS RX กับพินดิจิตอล 3 และ TX กับดิจิตอล 4 บน Arduino ในที่สุดก็เปิดมอนิเตอร์แบบอนุกรมบน arduino IDE และตั้งค่าอัตราบอดเป็น 9600 และตรวจสอบว่าพิกัดที่ได้รับนั้นถูกต้อง

หมายเหตุ: ตัวระบุภาพของล็อคดาวเทียมบนโมดูล NEO-6M คือไฟ LED สีแดงจะกะพริบทุก ๆ สองสามวินาทีเพื่อระบุการเชื่อมต่อ

การทดสอบ SIM800L:

ในการทดสอบโมดูลเซลลูลาร์ คุณจะต้องลงทะเบียนซิมการ์ดกับแผนข้อมูลที่ใช้งานอยู่ ฉันแนะนำ Ting เพราะพวกเขาคิดค่าใช้จ่ายเฉพาะสิ่งที่คุณใช้แทนแผนข้อมูลรายเดือน

เป้าหมายสำหรับโมดูล Sim คือการส่งคำขอ HTTP GET ไปยังเซิร์ฟเวอร์พร้อมตำแหน่งที่เครื่องรับ GPS ได้รับ

1. ในการทดสอบโมดูลเซลล์ ให้ใส่ซิมการ์ดลงในโมดูลโดยหันด้านลบมุมออก

2. เชื่อมต่อโมดูลซิมกับ GND และแหล่ง 3.7-4.2v ห้ามใช้ 5v!!!! โมดูลไม่สามารถทำงานที่ 5v เชื่อมต่อ Sim module RX กับ Analog 2 และ TX กับ Analog 3 บน Arduino

3. อัปโหลดแบบร่างการส่งผ่านข้อมูลแบบอนุกรมจาก GitHub เพื่อให้สามารถส่งคำสั่งไปยังโมดูลเซลล์ได้

4. ทำตามบทช่วยสอนนี้ หรือดาวน์โหลดรุ่นทดลองของ AT Command Tester เพื่อทดสอบฟังก์ชัน HTTP GET

การดำเนินการ:

เมื่อคุณตรวจสอบแล้วว่าทั้งสองระบบทำงานแยกกัน คุณสามารถอัปโหลดภาพร่างแบบเต็มไปยังไมโครคอนโทรลเลอร์ github ได้ คุณสามารถเปิดมอนิเตอร์แบบอนุกรมที่ 9600 baud เพื่อตรวจสอบว่าระบบกำลังส่งข้อมูลไปยังเว็บเซิร์ฟเวอร์

*อย่าลืมเปลี่ยน IP ของเซิร์ฟเวอร์และพอร์ตเป็นของคุณเอง และอย่าลืมค้นหา APN สำหรับผู้ให้บริการเซลล์ที่คุณใช้อยู่

ย้ายไปยังขั้นตอนถัดไปที่เราตั้งค่าเซิร์ฟเวอร์

ขั้นตอนที่ 3: การตั้งค่าเซิร์ฟเวอร์

การตั้งค่าเซิร์ฟเวอร์
การตั้งค่าเซิร์ฟเวอร์

ในการตั้งค่าเซิร์ฟเวอร์เพื่อแสดงตำแหน่งของจรวด ฉันใช้ raspberry pi เป็นโฮสต์ แต่คุณสามารถใช้คอมพิวเตอร์เครื่องใดก็ได้

ทำตามบทช่วยสอนนี้เกี่ยวกับการตั้งค่า lightphp บน RPI จากนั้นคัดลอกไฟล์ php จาก github ไปไว้ในโฟลเดอร์ /var/www/html ของ RPI หลังจากเพียงแค่ใช้คำสั่ง

sudo service lighttpd บังคับโหลดซ้ำ

เพื่อโหลดเซิร์ฟเวอร์ใหม่

ตรวจสอบให้แน่ใจว่าได้ส่งต่อพอร์ตที่เกี่ยวข้องกับเซิร์ฟเวอร์บนเราเตอร์ของคุณ เพื่อให้คุณสามารถเข้าถึงข้อมูลได้จากระยะไกล บน rpi ควรเป็นพอร์ต 80 และพอร์ตภายนอกสามารถเป็นหมายเลขใดก็ได้

เป็นความคิดที่ดีที่จะตั้งค่า ip แบบคงที่สำหรับ RPI เพื่อให้พอร์ตที่คุณส่งต่อชี้ไปที่ที่อยู่ของ RPI เสมอ

ขั้นตอนที่ 4: ระบบย่อย 2: การบันทึก Telemetry

โปรแกรม telemetry ทำงานบนไมโครคอนโทรลเลอร์แยกจากระบบติดตามตำแหน่ง การตัดสินใจนี้เกิดขึ้นเนื่องจากข้อจำกัดด้านหน่วยความจำใน ATmega328 ทำให้ทั้งสองโปรแกรมไม่สามารถทำงานบนระบบเดียวได้ ไมโครคอนโทรลเลอร์อีกทางเลือกหนึ่งที่มีข้อมูลจำเพาะที่ปรับปรุงแล้วสามารถแก้ไขปัญหานี้และอนุญาตให้ใช้โปรเซสเซอร์กลางตัวเดียวได้ แต่ฉันต้องการใช้ชิ้นส่วนที่มีอยู่เพื่อให้ใช้งานง่าย

คุณสมบัติ: โปรแกรมนี้อิงจากตัวอย่างอื่นที่ฉันพบทางออนไลน์ที่นี่

  • โปรแกรมอ่านค่าความสูงสัมพัทธ์โดยกำเนิด (การอ่านระดับความสูงเป็นศูนย์เมื่อเริ่มต้น) อุณหภูมิ ความดัน การเร่งความเร็วในทิศทาง X (คุณจะต้องเปลี่ยนทิศทางของการอ่านความเร่งตามการวางแนวทางกายภาพของเซ็นเซอร์) และการประทับเวลา (เป็นมิลลิวินาที).
  • เพื่อป้องกันไม่ให้ข้อมูลถูกบันทึกขณะนั่งอยู่บนแท่นยิงจรวดและสิ้นเปลืองพื้นที่จัดเก็บ ระบบจะเริ่มเขียนข้อมูลเมื่อตรวจพบการเปลี่ยนแปลงระดับความสูงเท่านั้น (กำหนดค่าได้ในโปรแกรม) และจะหยุดเขียนข้อมูลเมื่อตรวจพบว่าจรวดกลับสู่สภาพเดิม ระดับความสูง หรือหลังจากเวลาบินผ่านไป 5 นาที
  • ระบบจะแจ้งว่าเปิดเครื่องและเขียนข้อมูลผ่านไฟ LED แสดงสถานะเพียงดวงเดียว

การทดสอบ:

ในการทดสอบระบบก่อนอื่นให้เชื่อมต่อการ์ด SD ฝ่าวงล้อม

การ์ด SD Arduino

พิน 4 ---------------- CS

พิน 11 -------------- DI

พิน 13 -------------- SCK

พิน 12 -------------- DO

ตอนนี้เชื่อมต่อ GY-86 กับระบบผ่าน I^2C

Arduino GY-86

ปักหมุด A4 -------------- SDA

พิน A5 -------------- SCL

พิน 2 ---------------- INTA

ในการ์ด SD ให้สร้างไฟล์ในไดเร็กทอรีหลักที่ชื่อ datalog.txt ซึ่งเป็นที่ที่ระบบจะเขียนข้อมูลลงไป

ก่อนอัปโหลดภาพร่าง Data_Logger.ino ไปยังไมโครคอนโทรลเลอร์ ให้เปลี่ยนค่า ALT_THRESHOLD เป็น 0 ดังนั้นระบบจะละเว้นระดับความสูงสำหรับการทดสอบ หลังจากอัปโหลดแล้ว ให้เปิดมอนิเตอร์แบบอนุกรมที่ความเร็ว 9600 บอดเพื่อดูเอาต์พุตของระบบ ตรวจสอบให้แน่ใจว่าระบบสามารถเชื่อมต่อกับเซ็นเซอร์ได้ และข้อมูลกำลังเขียนลงในการ์ด SD ถอดปลั๊กระบบและใส่การ์ด SD ลงในคอมพิวเตอร์ของคุณเพื่อตรวจสอบว่ามีการเขียนข้อมูลบนการ์ด

ขั้นตอนที่ 5: การรวมระบบ

ระบบบูรณาการ
ระบบบูรณาการ
ระบบบูรณาการ
ระบบบูรณาการ

หลังจากตรวจสอบแล้วว่าแต่ละส่วนของระบบทำงานในรูปแบบเดียวกับที่ใช้กับ PCB หลัก ก็ถึงเวลารวบรวมทั้งหมดและเตรียมพร้อมสำหรับการเปิดตัว! ฉันได้รวมไฟล์ Gerbers และ EAGLE สำหรับ PCB และแผนผังใน github คุณจะต้องอัปโหลด gerbers ไปยังผู้ผลิตเช่น OSH park หรือ JLC เพื่อผลิต กระดานเหล่านี้เป็นสองชั้นและมีขนาดเล็กพอที่จะใส่ลงในประเภทผู้ผลิตส่วนใหญ่ 10 ซม. x 10 ซม. สำหรับบอร์ดราคาถูก

เมื่อคุณได้บอร์ดคืนจากการผลิตแล้ว ก็ถึงเวลาประสานส่วนประกอบทั้งหมดที่พบในสเปรดชีตและรายการชิ้นส่วนเข้ากับบอร์ด

การเขียนโปรแกรม:

หลังจากบัดกรีทุกอย่างแล้ว คุณจะต้องอัปโหลดโปรแกรมไปยังไมโครคอนโทรลเลอร์สองตัว เพื่อประหยัดเนื้อที่ของบอร์ด ฉันไม่ได้รวมฟังก์ชัน USB ใด ๆ ไว้ แต่ปล่อยให้ ICSP และพอร์ตอนุกรมแตกออก เพื่อให้คุณยังสามารถอัปโหลดและตรวจสอบโปรแกรมได้

  • ในการอัปโหลดโปรแกรม ให้ทำตามบทช่วยสอนนี้เกี่ยวกับการใช้บอร์ด Arduino เป็นโปรแกรมเมอร์ อัปโหลด SimGpsTransmitter.ino ไปยังพอร์ต ICSP_GPS และ Data_Logger.ino ไปยังพอร์ต ICSP_DL (พอร์ต ICSP บน PCB เป็นรูปแบบเดียวกับที่พบในบอร์ด Arduino UNO มาตรฐาน)
  • เมื่ออัปโหลดโปรแกรมทั้งหมดแล้ว คุณสามารถจ่ายไฟให้กับอุปกรณ์จากอินพุตแบตเตอรี่ด้วย 3.7-4.2V และใช้ไฟแสดงสถานะ 4 ดวงเพื่อตรวจสอบว่าระบบทำงานอยู่

    • ไฟสองดวงแรก 5V_Ok และ VBATT_OK ระบุว่าแบตเตอรี่และราง 5v ได้รับพลังงานแล้ว
    • ไฟดวงที่สาม DL_OK จะกะพริบทุกๆ 1 วินาทีเพื่อระบุว่าการบันทึกการส่งข้อมูลทางไกลทำงานอยู่
    • SIM_Transmit ไฟสุดท้ายจะเปิดขึ้นเมื่อเชื่อมต่อโมดูลเซลลูลาร์และ GPS และข้อมูลจะถูกส่งไปยังเซิร์ฟเวอร์

ขั้นตอนที่ 6: สิ่งที่แนบมา

สิ่งที่ส่งมาด้วย
สิ่งที่ส่งมาด้วย

จรวดที่ฉันออกแบบโครงการนี้มีเส้นผ่านศูนย์กลางภายใน 29 มม. เพื่อป้องกันอุปกรณ์อิเล็กทรอนิกส์และอนุญาตให้ประกอบเข้ากับร่างกายทรงกระบอกของจรวด ฉันทำเคสพิมพ์ 3 มิติสองส่วนแบบง่าย ๆ ที่ยึดเข้าด้วยกันและมี ดูพอร์ตสำหรับไฟแสดงสถานะ ไฟล์ STL สำหรับการพิมพ์และไฟล์.ipt ดั้งเดิมอยู่ใน github repo ฉันไม่ได้จำลองสิ่งนี้เนื่องจากฉันไม่แน่ใจว่าจะใช้แบตเตอรี่ในขณะนั้น แต่ฉันได้สร้างช่องสำหรับแบตเตอรี่ 120 mAh ด้วยตนเองเพื่อให้พอดีกับด้านล่างของเคส แบตเตอรี่นี้คาดว่าจะให้รันไทม์สูงสุด ~45 นาทีสำหรับระบบที่การใช้พลังงาน ~ 200mA (ขึ้นอยู่กับการใช้โปรเซสเซอร์และการใช้พลังงานสำหรับการส่งข้อมูล SIM800L ถูกเสนอให้ดึงขึ้น 2A ในการระเบิดระหว่างการสื่อสาร)

ขั้นตอนที่ 7: บทสรุป

โปรเจ็กต์นี้เป็นการใช้งานสองระบบที่แยกจากกันค่อนข้างตรงไปตรงมา เนื่องจากฉันเพิ่งใช้โมดูลที่ไม่ต่อเนื่องที่พบใน Amazon การผสานรวมระบบโดยรวมค่อนข้างไม่สดใสนัก เนื่องจากขนาดโดยรวมของโปรเจ็กต์ค่อนข้างใหญ่สำหรับสิ่งที่ทำ เมื่อพิจารณาถึงข้อเสนอจากผู้ผลิตบางราย การใช้ SIP ที่มีทั้งระบบเซลลูลาร์และ GPS จะลดขนาดแพ็คเกจโดยรวมลงอย่างมาก

ฉันแน่ใจว่าหลังจากทำการทดสอบเที่ยวบินเพิ่มเติมแล้ว ฉันจะต้องทำการแก้ไขบางอย่างในโปรแกรม และจะต้องแน่ใจว่าได้อัปเดต Github repo ด้วยการเปลี่ยนแปลงใดๆ

หวังว่าคุณจะสนุกกับโครงการนี้ อย่าลังเลที่จะติดต่อฉันเกี่ยวกับคำถามใดๆ ที่คุณอาจมี

แนะนำ: