สารบัญ:

CanSat - คู่มือสำหรับผู้เริ่มต้นใช้งาน: 6 ขั้นตอน
CanSat - คู่มือสำหรับผู้เริ่มต้นใช้งาน: 6 ขั้นตอน

วีดีโอ: CanSat - คู่มือสำหรับผู้เริ่มต้นใช้งาน: 6 ขั้นตอน

วีดีโอ: CanSat - คู่มือสำหรับผู้เริ่มต้นใช้งาน: 6 ขั้นตอน
วีดีโอ: Project 2018: การพัฒนา CanSat และการประยุกต์ในการสังเกตการณ์สภาพอากาศ 2024, พฤศจิกายน
Anonim
CanSat - คู่มือสำหรับผู้เริ่มต้น
CanSat - คู่มือสำหรับผู้เริ่มต้น
CanSat - คู่มือสำหรับผู้เริ่มต้น
CanSat - คู่มือสำหรับผู้เริ่มต้น
CanSat - คู่มือสำหรับผู้เริ่มต้น
CanSat - คู่มือสำหรับผู้เริ่มต้น

วัตถุประสงค์หลักของคำแนะนำนี้คือการแบ่งปันกระบวนการพัฒนา CanSat ทีละขั้นตอน แต่ก่อนจะเริ่มต้น เรามาทำให้ชัดเจนว่า CanSat คืออะไร และอะไรคือหน้าที่หลัก และใช้โอกาสนี้ด้วย เราจะแนะนำทีมของเรา โครงการนี้เริ่มต้นเป็นโครงการขยายในมหาวิทยาลัยของเรา Universidade Tecnológica Federal do Paraná (UTFPR) วิทยาเขต Cornélio Procópio ตามคำแนะนำของที่ปรึกษาของเรา เราได้พัฒนาแผนปฏิบัติการโดยมีเจตนาที่จะเข้าสู่ CanSats ซึ่งหมายถึงการศึกษาลักษณะและลักษณะทั้งหมดของมัน เพื่อที่จะได้เข้าใจว่ามันทำงานอย่างไร ซึ่งในที่สุดจะส่งผลให้เกิดการสร้าง CanSat และการพัฒนาคู่มือนี้ CanSat จัดอยู่ในประเภทพิโกซาเทลไลท์ ซึ่งหมายความว่าน้ำหนักของมันถูกจำกัดไว้ที่ 1 กก. แต่โดยปกติ CanSats จะมีน้ำหนักประมาณ 350 กรัม และโครงสร้างของมันอยู่ในกระป๋องโซดา กระบอกขนาดเส้นผ่านศูนย์กลาง 6, 1 ซม. สูง 11, 65 ซม. โมเดลนี้นำเสนอโดยมีจุดประสงค์เพื่อลดความซับซ้อนของกระบวนการพัฒนาดาวเทียม เพื่อให้สามารถเข้าถึงเทคโนโลยีเหล่านี้ของมหาวิทยาลัยได้ ได้รับความนิยมเนื่องจากการแข่งขันที่ใช้รูปแบบนี้ โดยทั่วไป CanSats มีโครงสร้างอยู่ 4 โครงสร้าง ได้แก่ ระบบไฟฟ้า ระบบตรวจจับ ระบบโทรเลข และระบบหลัก มาดูกันดีกว่าในแต่ละระบบ: - ระบบไฟฟ้า: ระบบนี้มีหน้าที่จ่ายพลังงานไฟฟ้าไปยังระบบอื่น ๆ ตามความต้องการ กล่าวอีกนัยหนึ่ง มันควรจะจ่ายแรงดันและกระแสที่จำเป็นให้กับระบบ โดยคำนึงถึงขีดจำกัดของมัน นอกจากนี้ยังสามารถมีองค์ประกอบการป้องกันเพื่อรับประกันความปลอดภัยและพฤติกรรมที่เหมาะสมของระบบอื่นๆ โดยทั่วไปจะใช้แบตเตอรี่และวงจรควบคุมแรงดันไฟฟ้า แต่สามารถเพิ่มคุณสมบัติอื่นๆ ได้ เช่น เทคนิคการจัดการพลังงานและการป้องกันหลายประเภท - ระบบตรวจจับ: ระบบนี้ประกอบด้วยเซ็นเซอร์และอุปกรณ์ทั้งหมดที่มีหน้าที่ในการรวบรวมข้อมูลที่จำเป็น มันสามารถเชื่อมต่อกับระบบหลักได้หลายวิธี, โปรโตคอลอนุกรม, โปรโตคอลขนานและอื่น ๆ นั่นเป็นเหตุผลว่าทำไมจึงเป็นสิ่งสำคัญมากที่จะเชี่ยวชาญเทคนิคเหล่านี้ทั้งหมด เพื่อให้สามารถระบุวิธีที่สะดวกที่สุดได้ โดยทั่วไป โปรโตคอลอนุกรมเป็นโปรโตคอลที่มักถูกเลือก เนื่องจากจำนวนการเชื่อมต่อและความเก่งกาจที่น้อยกว่า โปรโตคอลที่ได้รับความนิยมมากที่สุดคือโปรโตคอล SPI, I2C และ UART - ระบบ Telemetry: ระบบนี้มีหน้าที่สร้างการสื่อสารไร้สายระหว่าง CanSat และสถานีควบคุมภาคพื้นดิน ซึ่งรวมถึงโปรโตคอลการสื่อสารไร้สายและฮาร์ดแวร์ - ระบบหลัก: ระบบนี้มีหน้าที่ในการเชื่อมต่อระบบอื่น ๆ ทั้งหมดในลักษณะที่ควบคุมและซิงโครไนซ์ลำดับการทำงานเป็นสิ่งมีชีวิต

ขั้นตอนที่ 1: ระบบหลัก

ระบบหลัก
ระบบหลัก

ด้วยเหตุผลหลายประการ เราจึงเลือกไมโครคอนโทรลเลอร์ที่ใช้ ARM® Cortex®-M4F เป็น MCU ที่ใช้พลังงานต่ำ ซึ่งให้พลังในการประมวลผลที่สูงกว่ามาก รวมทั้งคุณลักษณะหลายอย่างที่มักไม่พบในไมโครคอนโทรลเลอร์ที่มีความเสี่ยง เช่น ฟังก์ชัน DSP คุณลักษณะเหล่านี้น่าสนใจเนื่องจากช่วยเพิ่มความซับซ้อนของคุณลักษณะของแอปพลิเคชัน CanSat โดยไม่จำเป็นต้องเปลี่ยนไมโครคอนโทรลเลอร์ (แน่นอนว่าต้องคำนึงถึงข้อจำกัดด้วย)

ตราบใดที่โปรเจ็กต์มีข้อจำกัดทางการเงินหลายประการ ไมโครคอนโทรลเลอร์ที่เลือกก็ควรมีราคาไม่แพง ดังนั้นเมื่อพิจารณาตามข้อกำหนดแล้ว เราก็เลือก ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad ซึ่งเป็น Launchpad ที่เหมาะกับโปรเจ็กต์ของเรา. นอกจากนี้ เอกสารประกอบ (เอกสารข้อมูลและเอกสารคุณลักษณะที่จัดเตรียมโดยผู้ผลิต) และ IDE ของ MCU เป็นผู้เชี่ยวชาญที่ควรพิจารณาจริงๆ ตราบใดที่เอกสารเหล่านี้ช่วยในกระบวนการพัฒนาได้มาก

ใน Cansat นี้ เราตัดสินใจที่จะทำให้มันเรียบง่ายและเพียงแค่พัฒนามันโดยใช้ Launchpad แต่แน่นอนในโครงการในอนาคต นี่จะไม่ใช่ตัวเลือก เนื่องจากคุณสมบัติหลายอย่างที่รวมอยู่ใน Launchpad นั้นไม่จำเป็นจริงๆ สำหรับโครงการของเรา บวกกับรูปแบบที่จำกัดมาก โครงการโครงสร้างของ CanSat ของเรา ตราบใดที่ขนาดของ CanSat นั้นน้อยที่สุด

ดังนั้น หลังจากเลือก 'สมอง' ที่เหมาะสมสำหรับระบบนี้ ขั้นตอนต่อไปคือการพัฒนาซอฟต์แวร์ และเพื่อให้ง่าย เราจึงตัดสินใจใช้โปรแกรมแบบต่อเนื่อง ซึ่งทำตามลำดับต่อไปนี้ที่ความถี่ 1Hz:

การอ่านเซ็นเซอร์ > การจัดเก็บข้อมูล > การส่งข้อมูล

ส่วนเซ็นเซอร์จะอธิบายในภายหลังในระบบตรวจจับ รวมถึงการส่งข้อมูลจะถูกอธิบายในระบบการวัดและส่งข้อมูลทางไกล สุดท้าย มันคือการเรียนรู้วิธีตั้งโปรแกรมไมโครคอนโทรลเลอร์ ในกรณีของเรา เราจำเป็นต้องเรียนรู้ฟังก์ชันต่อไปนี้ของ MCU, GPIO, โมดูล I2C, โมดูล UART และโมดูล SPI

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

นอกจากนี้ เพื่อลดความซับซ้อนและจัดระเบียบโค้ด ไลบรารีหลายแห่งจึงถูกสร้างขึ้น ดังนั้น ห้องสมุดจึงถูกสร้างขึ้นเพื่อวัตถุประสงค์ดังต่อไปนี้:

- โปรโตคอล SPI

- โปรโตคอล I2C

- โปรโตคอล UART

- NRF24L01+ - ตัวรับส่งสัญญาณ

ไลบรารีเหล่านี้ยังมีอยู่ด้านล่าง แต่จำไว้ว่าเราใช้ Keil uvision 5 IDE ดังนั้นไลบรารีเหล่านี้จะไม่ทำงานสำหรับผู้แต่งโค้ด สุดท้าย หลังจากที่สร้างไลบรารีทั้งหมดและเรียนรู้สิ่งที่จำเป็นทั้งหมดแล้ว โค้ดสุดท้ายก็ถูกรวมเข้าด้วยกัน และอย่างที่คุณอาจจินตนาการได้ว่ามันยังมีอยู่ด้านล่าง

ขั้นตอนที่ 2: ระบบตรวจจับ

ระบบตรวจจับ
ระบบตรวจจับ
ระบบตรวจจับ
ระบบตรวจจับ
ระบบตรวจจับ
ระบบตรวจจับ
ระบบตรวจจับ
ระบบตรวจจับ

ระบบนี้ประกอบด้วยเซ็นเซอร์และอุปกรณ์ทั้งหมดที่มีหน้าที่รวบรวมข้อมูลเกี่ยวกับเงื่อนไขการทำงานของ CanSat ในกรณีของเรา เราได้เลือกเซ็นเซอร์ดังต่อไปนี้:

- มาตรความเร่งแบบดิจิตอล 3 แกน - MPU6050

- ไจโรสโคปดิจิตอล 3 แกน - MPU6050

- เครื่องวัดสนามแม่เหล็กแบบดิจิตอล 3 แกน - HMC5883L

- บารอมิเตอร์ดิจิตอล - BMP280

- และ GPS - Tyco A1035D

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

สิ่งแรกที่ต้องสำรวจคือเครื่องวัดความเร่งแบบดิจิตอล 3 แกนและไจโรสโคปที่เรียกว่า MPU6050 (สามารถพบได้ง่ายทุกที่ ตราบใดที่มีการใช้อย่างแพร่หลายในโครงการ ARDUINO) การสื่อสารจะขึ้นอยู่กับโปรโตคอล I2C ซึ่งเป็นโปรโตคอลที่ สเลฟแต่ละตัวมีแอดเดรส ทำให้อุปกรณ์หลายตัวสามารถเชื่อมต่อแบบขนานกัน เมื่อพิจารณาจากแอดเดรสที่มีความยาว 7 บิต สามารถเชื่อมต่ออุปกรณ์ได้ประมาณ 127 เครื่องที่บัสอนุกรมเดียวกัน โปรโตคอลการสื่อสารนี้ทำงานบนสองบัส บัสข้อมูล และบัสนาฬิกา ดังนั้นในการแลกเปลี่ยนข้อมูล มาสเตอร์ต้องส่งนาฬิกา 8 รอบ (โดยวิธีการที่ข้อมูลจะต้องพอดีกับไบต์ ตราบใดที่การสื่อสารนี้อิงตาม กับขนาดไบต์) ทั้งในการรับหรือในการส่ง ที่อยู่ของ MPU6050 คือ 0b110100X และ X ใช้เพื่อเรียก (ระบุ) การอ่านหรือการเขียน (0 หมายถึงการดำเนินการเขียนและ 1 หมายถึงการดำเนินการอ่าน) ดังนั้นเมื่อใดก็ตามที่คุณต้องการอ่านเซ็นเซอร์ เพียงแค่ใช้ที่อยู่เป็น 0xD1 และเมื่อใดก็ตามที่คุณต้องการเขียนเพียงแค่ใช้ที่อยู่เป็น 0xD0

หลังจากสำรวจโปรโตคอล I2C แล้ว อันที่จริงแล้ว MPU6050 ได้รับการศึกษา หรือกล่าวอีกนัยหนึ่งคืออ่านแผ่นข้อมูล เพื่อให้ได้ข้อมูลที่จำเป็นในการนำไปใช้งาน สำหรับเซ็นเซอร์นี้จำเป็นต้องมีการกำหนดค่าการลงทะเบียนเพียง 3 รายการเท่านั้น การจัดการพลังงาน 1 รีจิสเตอร์ - ที่อยู่ 0x6B (เพื่อรับประกันว่าเซ็นเซอร์ไม่อยู่ในโหมดสลีป) รีจิสเตอร์การกำหนดค่าไจโรสโคป - ที่อยู่ 0x1B (เพื่อกำหนดค่าช่วงสเกลทั้งหมดสำหรับไจโรสโคป) และสุดท้ายคือรีจิสเตอร์การกำหนดค่าตัววัดความเร่ง - ที่อยู่ 0x1C (ใน เพื่อกำหนดค่าช่วงสเกลทั้งหมดสำหรับมาตรความเร่ง) มีรีจิสเตอร์อื่นๆ อีกหลายตัวที่สามารถกำหนดค่าได้ ทำให้สามารถเพิ่มประสิทธิภาพการทำงานของเซ็นเซอร์ได้ แต่สำหรับโปรเจ็กต์นี้ การกำหนดค่าเหล่านี้ก็เพียงพอแล้ว

ดังนั้น หลังจากกำหนดค่าเซ็นเซอร์อย่างถูกต้องแล้ว คุณจะสามารถอ่านค่าได้ ข้อมูลที่ต้องการเกิดขึ้นระหว่างรีจิสเตอร์ 0x3B และรีจิสเตอร์ 0x48 แต่ละค่าแกนประกอบด้วยสองไบต์ที่เข้ารหัสด้วยวิธีเสริมของ 2 ซึ่งหมายความว่าต้องแปลงข้อมูลที่อ่านเพื่อให้มีความหมาย (สิ่งเหล่านี้จะเป็น ไว้คุยกันทีหลัง)

หลังจากใช้ MPU6050 เสร็จแล้ว ก็ได้เวลาศึกษาเครื่องวัดสนามแม่เหล็กแบบดิจิตอล 3 แกนที่ชื่อ HMC5883L (สามารถพบได้ง่ายทุกที่ ตราบใดที่มีการใช้งานอย่างแพร่หลายในโครงการ ARDUINO) และโปรโตคอลการสื่อสารของมันคือโปรโตคอลอนุกรมอีกครั้ง ไอทูซี ที่อยู่ของมันคือ 0b0011110X และ X ใช้เพื่อเรียก (ระบุ) การอ่านหรือการเขียน (0 หมายถึงการเขียนและ 1 หมายถึงการดำเนินการอ่าน) ดังนั้นเมื่อใดก็ตามที่คุณต้องการอ่านเซ็นเซอร์เพียงแค่ใช้ที่อยู่เป็น 0x3D และเมื่อใดก็ตามที่คุณต้องการอ่านเซ็นเซอร์ คุณต้องการเขียนเพียงแค่ใช้ที่อยู่เป็น 0x3C

ในกรณีนี้ ในการเริ่มต้น HMC5883L จำเป็นต้องกำหนดค่าสามรีจิสเตอร์ รีจิสเตอร์การกำหนดค่า A - ที่อยู่ 0x00 (เพื่อกำหนดค่าอัตราการส่งออกข้อมูลและโหมดการวัด) รีจิสเตอร์การกำหนดค่า B - ที่อยู่ 0x01 (เพื่อกำหนดค่าเกนของเซ็นเซอร์) และสุดท้ายแต่ไม่ท้ายสุดคือการลงทะเบียนโหมด - ที่อยู่ 0x02 (เพื่อกำหนดค่าโหมดการทำงานของอุปกรณ์)

ดังนั้น หลังจากกำหนดค่า HMC5883L อย่างถูกต้อง ตอนนี้ก็สามารถอ่านได้แล้ว ข้อมูลที่ต้องการเกิดขึ้นระหว่างรีจิสเตอร์ 0x03 และรีจิสเตอร์ 0x08 แต่ละค่าแกนประกอบด้วยสองไบต์ที่เข้ารหัสด้วยวิธีเสริมของ 2 ซึ่งหมายความว่าต้องแปลงข้อมูลที่อ่านเพื่อให้มีความหมาย (สิ่งเหล่านี้จะเป็น ไว้คุยกันทีหลัง) โดยเฉพาะอย่างยิ่ง สำหรับเซ็นเซอร์นี้ คุณควรอ่านข้อมูลทั้งหมดในครั้งเดียว มิฉะนั้น อาจไม่ทำงานตามที่เสนอ ตราบใดที่ข้อมูลเอาต์พุตถูกเขียนลงในรีจิสเตอร์เหล่านี้เมื่อรีจิสเตอร์ทั้งหมดถูกเขียนขึ้นเท่านั้น ดังนั้นอย่าลืมอ่านทั้งหมด

ในที่สุด บารอมิเตอร์แบบดิจิตอลซึ่งเป็นเซ็นเซอร์โปรโตคอล I2C อีกตัวหนึ่งได้รับการศึกษาหรือที่เรียกว่า BMP280 (สามารถพบได้ง่ายทุกที่ ตราบใดที่มีการใช้อย่างกว้างขวางในโครงการ ARDUINO) ที่อยู่ของมันคือ b01110110X นอกจากนี้ X ใช้เพื่อเรียก (ระบุ) การอ่านหรือการเขียน (0 หมายถึงการดำเนินการเขียนและ 1 หมายถึงการดำเนินการอ่าน) ดังนั้นเมื่อใดก็ตามที่คุณต้องการอ่านเซ็นเซอร์เพียงใช้ที่อยู่เป็น 0XEA และเมื่อใดก็ตามที่คุณต้องการอ่านเซ็นเซอร์ คุณต้องการเขียนเพียงแค่ใช้ที่อยู่เป็น 0XEB แต่ในกรณีของเซ็นเซอร์นี้ ที่อยู่ I2C สามารถเปลี่ยนได้โดยการเปลี่ยนระดับแรงดันไฟฟ้าบนพิน SDO ดังนั้น หากคุณใช้ GND กับพินนี้ ที่อยู่จะเป็น b01110110X และหากคุณใช้ VCC กับพินนี้ ที่อยู่ก็จะไป จะเป็น b01110111X นอกจากนี้ เพื่อเปิดใช้งานโมดูล I2C ในเซ็นเซอร์นี้ คุณต้องใช้ระดับ VCC บนพิน CSB ของเซ็นเซอร์ มิฉะนั้น อุปกรณ์จะไม่ทำงานอย่างถูกต้อง

สำหรับ BMP280 ควรมีการกำหนดค่าการลงทะเบียนเพียงสองรายการเพื่อให้มันทำงานได้ ctrl_meas register - ที่อยู่ 0XF4 (เพื่อตั้งค่าตัวเลือกการรับข้อมูล) และ config register - ที่อยู่ 0XF5 (เพื่อกำหนดอัตรา ตัวกรองและตัวเลือกอินเทอร์เฟซสำหรับเซ็นเซอร์)

หลังจากเสร็จสิ้นการตั้งค่าคอนฟิก ก็ถึงเวลาสำหรับสิ่งที่สำคัญจริงๆ ตัวข้อมูลเอง ในกรณีนี้ ข้อมูลที่ต้องการจะเกิดขึ้นระหว่างรีจิสเตอร์ 0XF7 และ 0XFC ทั้งอุณหภูมิและค่าความดันประกอบด้วยสามไบต์ที่เข้ารหัสด้วยวิธีเสริมของ 2 ซึ่งหมายความว่าต้องแปลงข้อมูลที่อ่านเพื่อให้มีความหมาย (สิ่งเหล่านี้จะกล่าวถึงในภายหลัง) นอกจากนี้ สำหรับเซ็นเซอร์นี้ เพื่อให้ได้ความแม่นยำสูงขึ้น มีค่าสัมประสิทธิ์การแก้ไขหลายค่าที่สามารถใช้ขณะแปลงข้อมูลได้ โดยจะอยู่ระหว่างรีจิสเตอร์ 0X88 และ 0XA1 ใช่ มีค่าสัมประสิทธิ์การแก้ไข 26 ไบต์ ดังนั้นหากความแม่นยำคือ ไม่สำคัญขนาดนั้น ลืมมันไปซะ ไม่งั้นไม่มีทางอื่น

และสุดท้ายแต่ไม่ท้ายสุด GPS - Tyco A1035D อันนี้อาศัยโปรโตคอลอนุกรม UART โดยเฉพาะที่อัตรา 4800 kbps ไม่มีบิตพาริตี 8 บิตข้อมูลและ 1 บิตหยุด UART หรือ Universal Asynchronous Receiver/Transmitter เป็นโปรโตคอลอนุกรมที่มีการซิงโครไนซ์ข้อมูลผ่านซอฟต์แวร์ เหตุใดจึงเป็นโปรโตคอลแบบอะซิงโครนัส เนื่องจากคุณลักษณะนี้ อัตราที่ส่งและรับข้อมูลจึงน้อยกว่ามาก โดยเฉพาะสำหรับโปรโตคอลนี้ แพ็กเกจต้องเริ่มต้นด้วยบิตเริ่มต้น แต่บิตหยุดเป็นทางเลือก และขนาดของแพ็กเกจจะยาว 8 บิต

ในกรณีของ GPS - Tyco A1035D จำเป็นต้องมีการกำหนดค่าสองแบบ นั่นคือ setDGPSport (คำสั่ง 102) และ Query/RateControl (คำสั่ง 103) ข้อมูลทั้งหมดเหล่านี้ รวมถึงตัวเลือกเพิ่มเติมมีอยู่ในคู่มืออ้างอิง NMEA โปรโตคอล ใช้ในโมดูลของ GPS ส่วนใหญ่ คำสั่ง 102 ใช้เพื่อกำหนดอัตราบอด จำนวนบิตข้อมูล และการมีอยู่หรือไม่ของพาริตีบิตและบิตหยุด คำสั่ง 103 ใช้เพื่อควบคุมเอาต์พุตของข้อความ NMEA มาตรฐาน GGA, GLL, GSA, GSV, RMC และ VTG มีการอธิบายพร้อมรายละเอียดในคู่มืออ้างอิง แต่ในกรณีของเรา คำสั่งที่เลือกคือ GGA ที่ย่อมาจาก Global ระบบกำหนดตำแหน่งข้อมูลคงที่

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

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

ขั้นตอนที่ 3: ระบบ Telemetry

ระบบ Telemetry
ระบบ Telemetry

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

วิทยุมีตัวเลือกมากมายในท้องตลาดในราคาที่เหมาะสม ระบบทั้งหมดนี้มีวิธีการมอดูเลตที่แตกต่างกันในความถี่ที่หลากหลาย สำหรับระบบนี้ ทางเลือกของเราประกอบด้วยตัวรับส่งสัญญาณ RF 2.4GHz นั่นคือ NRF24L01+ เนื่องจากมีอยู่แล้ว โปรโตคอลการสื่อสารที่จัดตั้งขึ้นอย่างดี ตราบใดที่ระบบตรวจสอบ เช่น ระบบตอบรับอัตโนมัติและระบบส่งสัญญาณซ้ำอัตโนมัติ นอกจากนี้อัตราการส่งข้อมูลยังสามารถเข้าถึงความเร็วสูงถึง 2Mbps ที่การใช้พลังงานที่เหมาะสม

ดังนั้นก่อนที่จะทำงานกับตัวรับส่งสัญญาณนี้ เรามาทำความรู้จักกับ NRF24L01+ ให้มากขึ้นกันสักหน่อย ดังที่ได้กล่าวไว้ก่อนหน้านี้ว่าเป็นวิทยุที่ใช้ความถี่ 2.4GHz ซึ่งสามารถกำหนดค่าเป็นเครื่องรับหรือเครื่องส่งได้ เพื่อสร้างการสื่อสารแต่ละตัวรับส่งสัญญาณจะมีที่อยู่ ซึ่งผู้ใช้สามารถกำหนดค่าได้ ที่อยู่สามารถยาว 24 ถึง 40 บิตตามความต้องการของคุณ ธุรกรรมข้อมูลสามารถเกิดขึ้นได้แบบเดียวหรือแบบต่อเนื่อง โดยขนาดข้อมูลถูกจำกัดไว้ที่ 1 ไบต์ และแต่ละรายการอาจสร้างหรือไม่สร้างเงื่อนไขการรับรู้ตามการกำหนดค่าของตัวรับส่งสัญญาณ

นอกจากนี้ยังสามารถกำหนดค่าอื่นๆ ได้อีกหลายอย่าง เช่น เกนไปยังเอาท์พุตของสัญญาณ RF การมีอยู่หรือไม่ของรูทีนการส่งสัญญาณซ้ำอัตโนมัติ (หากเป็นเช่นนั้น การหน่วงเวลา สามารถเลือกจำนวนการทดลองท่ามกลางคุณลักษณะอื่นๆ ได้) และอื่นๆ อีกหลายอย่าง คุณลักษณะที่ไม่จำเป็นสำหรับโครงการนี้ แต่อย่างไรก็ตาม มีอยู่ในแผ่นข้อมูลของส่วนประกอบ ในกรณีที่มีความสนใจเกี่ยวกับคุณลักษณะเหล่านี้

NRF24L01+ 'พูด' ภาษา SPI เมื่อพูดถึงการสื่อสารแบบซีเรียล ดังนั้นเมื่อใดก็ตามที่คุณต้องการอ่านหรือเขียนตัวรับส่งสัญญาณนี้ เพียงแค่ไปข้างหน้าและใช้โปรโตคอล SPI สำหรับมัน SPI เป็นโปรโตคอลแบบอนุกรมดังที่ได้กล่าวไว้ก่อนหน้านี้ ซึ่งการเลือกสเลฟจะทำผ่านพิน CHIPSELECT (CS) ซึ่งพร้อมกับฟูลดูเพล็กซ์ (ทั้งมาสเตอร์และสเลฟสามารถส่งและรับในลักษณะคู่ขนาน) ของโปรโตคอลนี้ช่วยให้การทำธุรกรรมข้อมูลมีความเร็วสูงขึ้นมาก

แผ่นข้อมูลของ NRF24L01+ มีชุดคำสั่งสำหรับอ่านหรือเขียนส่วนประกอบนี้ มีคำสั่งต่างๆ ในการเข้าถึงรีจิสเตอร์ภายใน เพย์โหลด RX และ TX ในการดำเนินการอื่นๆ ดังนั้นขึ้นอยู่กับการดำเนินการที่ต้องการ คำสั่งเฉพาะอาจใช้ ดำเนินการมัน นั่นเป็นสาเหตุที่น่าสนใจที่จะดูแผ่นข้อมูลซึ่งมีรายการที่มีและอธิบายการกระทำที่เป็นไปได้ทั้งหมดบนตัวรับส่งสัญญาณ (เราจะไม่แสดงรายการที่นี่เพราะนั่นไม่ใช่ประเด็นหลักของคำแนะนำนี้).

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

เพื่อให้ง่ายขึ้น โปรโตคอลที่ใช้ (สำหรับตัวส่งสัญญาณ) ประกอบด้วยส่วนหัวที่มีขนาด 3 ไบต์ ตามด้วยข้อมูลของเซ็นเซอร์ ตราบใดที่ข้อมูลเซ็นเซอร์ทั้งหมดประกอบด้วยสองไบต์ ข้อมูลเซ็นเซอร์แต่ละตัวจะได้รับหมายเลขประจำตัวเริ่มต้น จาก 0x01 และตามมาในลำดับพระจันทร์เสี้ยว ดังนั้นแต่ละไบต์สองไบต์จึงมีไบต์ระบุ วิธีนี้ทำให้ลำดับส่วนหัวไม่สามารถทำซ้ำได้โดยบังเอิญตามการอ่านของเซ็นเซอร์ ตัวรับสัญญาณนั้นเรียบง่ายพอๆ กับตัวส่งสัญญาณ โปรโตคอลจำเป็นต้องจดจำส่วนหัวที่ส่งมาจากตัวส่ง และหลังจากนั้นก็แค่จัดเก็บไบต์ที่ได้รับ ในกรณีนี้ เราตัดสินใจใช้เวกเตอร์เพื่อจัดเก็บ

ดังนั้น หลังจากบรรลุความรู้ที่จำเป็นทั้งหมดเกี่ยวกับตัวรับส่งสัญญาณและกำหนดโปรโตคอลการสื่อสารแล้ว ก็ถึงเวลาที่จะรวมทุกอย่างไว้ในโค้ดเดียวกัน และในที่สุดก็ทำให้เฟิร์มแวร์ CanSat เสร็จสิ้น

ขั้นตอนที่ 4: ระบบไฟฟ้า

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

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

หลังจากศึกษาเอกสารข้อมูลทั้งหมดของส่วนประกอบของระบบทั้งหมดแล้ว กระแสไฟทั้งหมดที่ระบบใช้ไปนั้นประมาณ 160mAh เมื่อพิจารณาจากความเป็นอิสระ 10 ชั่วโมง แบตเตอรี่ 1600mAh ก็เพียงพอสำหรับการรับประกันระบบในสภาพการทำงานที่เหมาะสม

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

ขั้นตอนที่ 5: โครงสร้าง

โครงสร้างมีความสำคัญมากสำหรับความปลอดภัยของ CanSat แม้ว่าโครงการนี้จะถูกละเลยไปเล็กน้อย (อันที่จริง ไม่มีความสนใจในการพัฒนาชิ้นส่วนกลไกของ CanSat มากนัก เนื่องจากหลักสูตรของสมาชิกทั้งหมดนั้น เกี่ยวข้องกับอิเล็คทรอนิคส์) ตราบใดที่โปรเจ็กต์อยู่ในรูปแบบที่มีอยู่ รูปแบบ CanSat ไม่ต้องคิดมากว่ามันจะออกมาเป็นอย่างไรจึงเป็นสิ่งจำเป็น ดังนั้นควรจัดเป็นรูปทรงทรงกระบอกที่มีเส้นผ่านศูนย์กลางประมาณ 6, 1 ซม. และประมาณ 11 สูง 65 ซม. (ขนาดเดียวกับกระป๋องโซดา)

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

โครงสร้างภายนอกสร้างโดยใช้ท่อพีวีซีขนาดเส้นผ่านศูนย์กลางที่ต้องการเพื่อปิดโครงสร้างท่อพีวีซีบางส่วน

ขั้นตอนที่ 6: บทสรุปและความคิดในอนาคต

CanSat ยังคงต้องได้รับการทดสอบในการใช้งานจริง เรากำลังสมัครแข่งขันจรวด (ซึ่งกำลังจะเกิดขึ้นในเดือนธันวาคม) และหลังจากผ่านอาคารทั้งหมดแล้ว (จริงๆ แล้วเรายังจำเป็นต้องทำบางสิ่งให้เสร็จ) และการพัฒนา กระบวนการ มุมมองและบันทึกบางอย่างที่เราคิดว่าน่าสนใจที่จะแบ่งปันกับพวกคุณทุกคน ส่วนใหญ่เกี่ยวกับการต่อสู้ เคล็ดลับและแม้แต่ประสบการณ์ที่ดี ดังนั้นต่อไปนี้:

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

- ต้องใช้ความพยายามอย่างมากในการทำให้ตัวรับส่งสัญญาณทำงานได้ เนื่องจากไลบรารีทั้งหมด ได้รับการพัฒนาขึ้นใหม่ทั้งหมด เนื่องจากต้องใช้โปรแกรมและการตั้งค่าที่แตกต่างกันสองโปรแกรมเพื่อทดสอบสิ่งเหล่านี้

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

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

แนะนำ: