วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer: 5 ขั้นตอน
วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer: 5 ขั้นตอน

วีดีโอ: วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer: 5 ขั้นตอน

วีดีโอ: วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer: 5 ขั้นตอน
วีดีโอ: DIY cubesat with ground receiver | Saral - X 2025, มกราคม
Anonim
วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer
วิธีสร้าง Cubesat ด้วย Arduino และ Accelerometer

เราชื่อ บร็อก เอ็ดดี้ และดรูว์ เป้าหมายหลักสำหรับคลาสฟิสิกส์ของเราคือการเดินทางจากโลกไปยังดาวอังคารในขณะที่จำลองวงโคจรรอบดาวอังคารโดยใช้ Cube Sat และรวบรวมข้อมูล เป้าหมายกลุ่มของเราสำหรับโครงการนี้คือการรวบรวมข้อมูลโดยใช้เซ็นเซอร์มาตรความเร่งที่จะแนบกับ Arduino ของเราภายใน Cube Sat ซึ่งจะโคจรรอบ "ดาวอังคาร" เพื่อค้นหาแรงโน้มถ่วงบนดาวเคราะห์ดวงนั้น ข้อจำกัดที่เป็นไปได้บางประการสำหรับงานเฉพาะนี้คือโค้ดทำงานไม่ถูกต้อง มาตรความเร่งไม่รวบรวมข้อมูล และขีดจำกัดที่ CubeSat สามารถชั่งน้ำหนักได้ แม้ว่าจะมีคนอื่นอีกมากมายที่สามารถพบเจอได้ แต่ก็เป็นคนที่กลุ่มของเราเผชิญอยู่ วิดีโอของโครงการสุดท้ายและการทดสอบของเราสามารถพบได้ที่นี่ https://www.youtube.com/embed/u1_o38KSrEc -Eddie

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

รายการวัสดุ
รายการวัสดุ
รายการวัสดุ
รายการวัสดุ
รายการวัสดุ
รายการวัสดุ

วัสดุทั้งหมดที่ระบุไว้ เข้าไปที่ CUBESAT

1. Arduino & Power Cable https://www.amazon.com/Elegoo-EL-CB-001-ATmega328…: Arduino ได้รับการออกแบบมาเพื่อให้อุปกรณ์อิเล็กทรอนิกส์สามารถเข้าถึงได้มากขึ้นสำหรับศิลปิน นักออกแบบ นักงานอดิเรก และใครก็ตามที่สนใจในการสร้างวัตถุหรือสภาพแวดล้อมแบบโต้ตอบ

: ให้พลังงานเข้าและออกจาก Arduino และคอมพิวเตอร์ของคุณ

2. เขียงหั่นขนม

: บอร์ดสำหรับทำโมเดลทดลองวงจรไฟฟ้า

วัสดุที่แนบมากับเขียงหั่นขนม

1. Arduino Accelerometer

:เครื่องมือสำหรับวัดอัตราเร่งหรือสำหรับตรวจจับและวัดแรงสั่นสะเทือน

2. โมดูลการ์ด SD Arduino

:มันช่วยให้คุณเพิ่มที่เก็บข้อมูลขนาดใหญ่และการบันทึกข้อมูลในโครงการของคุณ

3. สาย Arduino

:โอนรหัสทั่วทั้ง Arduino และเขียงหั่นขนม

4. ไฟ LED

:LED เป็นไฟขนาดเล็ก (ย่อมาจาก "light emitting diode") ที่ใช้พลังงานค่อนข้างน้อย

-ดรูว์

ขั้นตอนที่ 2: เครื่องมือที่จำเป็นและแนวทางปฏิบัติด้านความปลอดภัย

เครื่องมือที่จำเป็น

1. มีดที่แน่นอน

- เราใช้มีดที่แน่นอนเพื่อตัดและติดตามรูปร่างของ Arduino และ Breadboard ผ่าน Styrofoam เพื่อปกป้อง Arduino และ Breadboard ในกรณีที่เกิดอุบัติเหตุ

2. ปืนกาวร้อน

- เราใช้ปืนกาวร้อนติดโฟมที่ด้านข้างของ Cubesat เพื่อให้แน่ใจว่า Arduino และ Breadboard ของเราปลอดภัย

3. โฟม

- เราใช้ชิ้นส่วนของโฟมเพื่อยึด Arduino และเขียงหั่นขนมไว้กับด้านข้างของ Cubesat ของเรา และเพื่อให้รองรับในกรณีที่ Cubesat หล่นหรือเขย่าไปรอบๆ

แนวทางปฏิบัติด้านความปลอดภัย

1. แนวทางปฏิบัติด้านความปลอดภัยข้อแรกที่เราบังคับใช้คือทำให้แน่ใจว่าเราไม่ได้สัมผัสเครื่องพิมพ์ 3 มิติในขณะที่กำลังพิมพ์ Cubesat เครื่องพิมพ์ 3 มิติจะร้อนจัด และสิ่งสำคัญคือต้องไม่แตะต้องเครื่องพิมพ์ 3 มิติ

2. เมื่อใช้มีดที่แน่นอนเพื่อตัดชิ้นส่วนของโฟม เราต้องวางกระดาษแข็งไว้ด้านล่างเพื่อให้แน่ใจว่าโต๊ะจะไม่ได้รับความเสียหาย เราต้องสวมแว่นตาเมื่อใช้มีดด้วย เผื่อว่ามีอะไรลอยขึ้นมาบนใบหน้าหรือรอบๆ พื้นที่ทำงานของเรา

3. เมื่อใช้เครื่องมือใดๆ ที่ต้องใช้แรงงานหนัก ควรสวมแว่นตาเพื่อความปลอดภัย

4. เมื่อคุณติด Cubesat เข้ากับยานอวกาศ อย่าลืมเตือนผู้คนรอบๆ ยานอวกาศว่าคุณจะทำการทดสอบ Cubesat ของคุณและสวมแว่นตาเพื่อให้แน่ใจว่าส่วนต่างๆ ของร่างกายและผู้คนทั้งหมดปลอดภัย

-ดรูว์

ขั้นตอนที่ 3: วิธีการ:

วิธีทำ
วิธีทำ
วิธีทำ
วิธีทำ
วิธีทำ
วิธีทำ

วิธีสร้าง CubeSat

1. เพื่อเริ่มกระบวนการสร้าง CubeSat คุณต้องค้นหาโมเดลของ CubeSat ที่มีขนาด 10x10x10 และมีไฟล์ STL อยู่ในมือ

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

3. หลังจากดาวน์โหลดไฟล์ที่ถูกต้องในแฟลชไดรฟ์แล้ว คุณสามารถต่อแฟลชไดรฟ์เข้ากับคอมพิวเตอร์ที่ต่อกับเครื่องพิมพ์ 3 มิติ

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

5. กำหนดเวลาให้สมาชิกกลุ่มแต่ละคนเพื่อตรวจสอบเครื่องพิมพ์และความคืบหน้าของ CubeSat อย่างมีประสิทธิภาพเพื่อตรวจจับปัญหาที่คุณอาจพบ ให้สมาชิกในทีมตรวจสอบความคืบหน้าทุกๆ 2-3 ชั่วโมง จะให้ความช่วยเหลือเพียงพอในการแก้ไขปัญหาและติดตามความคืบหน้า

-เอ็ดดี้

รหัส:

#รวม #รวม #รวม #รวม

const int MPU=0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ; สนามคู่, ม้วน;

ข้อมูลไฟล์;

การตั้งค่าเป็นโมฆะ (){

โหมดพิน (10, เอาต์พุต); // ต้องตั้งค่าพิน 10 ให้เป็นเอาต์พุตแม้ว่าจะไม่ได้ใช้; //ตั้งค่าพิน 7 เพื่อเปิดไฟ LED SD.begin(4); // เริ่มต้นการ์ด sd โดยตั้งค่า CS เป็นพิน 4 Serial.begin(9600); Serial.println(F("ทดสอบ BMP280")); Wire.begin(); Wire.beginTransmission(MPU); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(จริง); Serial.begin(9600); } วงเป็นโมฆะ () { Wire.beginTransmission (MPU); Wire.write(0x3B); Wire.endTransmission (เท็จ); Wire.requestFrom(MPU, 14, จริง);

ใน AcXoff, AcYoff, AcZoff, GyXoff, GyYoff, GyZoff; อุณหภูมิภายใน, ทอฟฟ์; ดับเบิล t, tx, tf;

//การแก้ไขข้อมูลการเร่ง AcXoff = -950; AcYoff = -300; แอคซอฟ = 0;

//toff การแก้ไขอุณหภูมิ = -1600;

//การแก้ไขไจโร GyXoff = 480; GyYoff = 170; จิซอฟ = 210;

//อ่านข้อมูลการเร่ง AcX=(Wire.read()<<8|Wire.read()) + AcXoff; AcY=(Wire.read()<<8|Wire.read()) + AcYoff; AcZ=(Wire.read()<<8|Wire.read()) + AcYoff;

//read temperature data temp=(Wire.read()<<8|Wire.read()) +toff; tx=อุณหภูมิ; เสื้อ = tx/340 + 36.53; tf = (t * 9/5) + 32;

//อ่านข้อมูลไจโร GyX=(Wire.read()<<8|Wire.read()) + GyXoff; GyY=(Wire.read()<<8|Wire.read()) + GyYoff; GyZ=(Wire.read()<<8|Wire.read()) + GyZoff;

ข้อมูล = SD.open("Log.txt", FILE_WRITE); //เปิดไฟล์ชื่อ "บันทึก"

// รับ pitch/roll getAngle(AcX, AcY, AcZ);

//ส่งข้อมูลออกพอร์ตอนุกรม Serial.print("มุม: "); Serial.print("Pitch = "); Serial.print(พิทช์); Serial.print(" | ม้วน = "); Serial.println(ม้วน);

Serial.print("อุณหภูมิ: "); Serial.print("อุณหภูมิ(F) = "); Serial.print(tf); Serial.print(" | อุณหภูมิ (C) = "); Serial.println(t);

Serial.print("มาตรความเร่ง: "); Serial.print("X = "); Serial.print(AcX); Serial.print(" | Y = "); Serial.print(AcY); Serial.print(" | Z = "); Serial.println(AcZ);

Serial.print("ไจโรสโคป: "); Serial.print("X = "); Serial.print(GyX); Serial.print(" | Y = "); Serial.print(GyY); Serial.print(" | Z = "); Serial.println(GyZ); Serial.println(" ");

Data.print(พิทช์); Data.println(ม้วน);

Data.print(tf); Data.println(t); Data.print(AcX); //เขียนข้อมูล acel ลงในไฟล์ Data.print(", "); //พิมพ์เครื่องหมายจุลภาคในไฟล์ Data.print(AcY); Data.print(", "); Data.print(AcZ); Data.print(", "); Data.print(GyX); Data.print(", "); Data.print(GyY); Data.print(", "); Data.println(GyZ);

ล่าช้า (1000); }

// แปลงข้อมูลการเร่งความเร็วเป็น pitch/roll void getAngle (int Vx, int Vy, int Vz) { double x = Vx; สองเท่า y = Vy; ดับเบิ้ล z = Vz;

}

}

รหัส (ต่อ):

-นี่คือรหัสที่เราใช้ในการรวบรวมข้อมูลจากมาตรความเร่งและการ์ด SD

- หลังจากเดินสาย Arduino และ Breadboard ของเราเพื่อให้ดูเหมือนกับแผนภาพ เราเสียบการ์ด SD เข้ากับโมดูลอะแดปเตอร์การ์ด SD และเตรียมพร้อมสำหรับการทดสอบขั้นสุดท้ายของเราต่อไป

- เรามีปัญหากับรหัสมาเป็นเวลานาน แต่รหัสที่ให้ไว้ด้านบนเป็นรหัสสุดท้ายที่เราใช้ซึ่งให้ข้อมูลที่เราใช้สำหรับการนำเสนอของเรา

- รหัสนี้รวบรวมข้อมูลจากมาตรความเร่งและถ่ายโอนข้อมูลไปยังการ์ด SD

- เสียบการ์ด SD เข้ากับ USB และเสียบเข้ากับคอมพิวเตอร์ จากนั้นข้อมูลก็ถูกใส่ลงในคอมพิวเตอร์ของเรา

-Brock

การเดินสายไฟ ARDUINO:

- ขณะเดินสาย Arduino เราต่อสู้กับ dud wire และ dud Arduinos

- เราต้องแก้ไขการเดินสายของ Arduino หลายครั้งเนื่องจากการเดินสายไม่ถูกต้อง

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

แผนภาพ Fritzing:

- แผนภาพฟริทซ์นั้นตรงไปตรงมาและง่ายต่อการปฏิบัติตาม

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

- เราได้ทำไดอะแกรมเสร็จแล้วโดยรวมส่วนและโปรแกรมที่ถูกต้องลงในไดอะแกรม

-ดรูว์

ขั้นตอนที่ 4: ผลลัพธ์/บทเรียนที่ได้รับ

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

สำหรับโครงงานนี้ ฟิสิกส์ที่เราพบคือแรงสู่ศูนย์กลางที่ทำให้ CubeSat โคจรอยู่

-Brock