جدول المحتويات:
فيديو: كيفية بناء Cubesat باستخدام Arduino ومقياس تسارع: 5 خطوات
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
أسماءنا هي بروك وإدي ودرو. الهدف الرئيسي لفصل الفيزياء لدينا هو السفر من الأرض إلى المريخ أثناء محاكاة المدار حول المريخ باستخدام Cube Sat وجمع البيانات. هدف مجموعاتنا لهذا المشروع هو جمع البيانات باستخدام مستشعر مقياس التسارع الذي سيتم توصيله بأردوينو داخل مكعب سات الذي يدور حول "المريخ" لإيجاد قوة الجاذبية على ذلك الكوكب. قد تكون بعض القيود المحتملة لهذه المهمة المحددة هي عدم عمل الكود بالطريقة الصحيحة ، وعدم قيام مقياس التسارع بجمع البيانات والحد الذي يمكن أن يزنه CubeSat. على الرغم من وجود العديد من الأشخاص الآخرين الذين يمكن أن يواجههم أي شخص ، فإن هؤلاء هم الأشخاص الذين واجهتهم مجموعتنا. يمكن العثور على مقطع فيديو لمشروعنا النهائي والاختبار هنا https://www.youtube.com/embed/u1_o38KSrEc -Eddie
الخطوة 1: قائمة المواد
جميع المواد المدرجة داخل CUBESAT
1. Arduino وكابل الطاقة https://www.amazon.com/Elegoo-EL-CB-001-ATmega328…: تم تصميم اردوينو لجعل الإلكترونيات أكثر سهولة للفنانين والمصممين والهواة وأي شخص مهتم بإنشاء كائنات أو بيئات تفاعلية
: اسمح للطاقة من وإلى Arduino وجهاز الكمبيوتر
2. اللوح
: لوحة لعمل نموذج تجريبي لدائرة كهربائية
المواد الملحقة باللوحة
1. Arduino Accelerometer https://www.amazon.com/MPU-6050-MPU6050-Accelerom …
: أداة لقياس التسارع أو لكشف وقياس الاهتزازات
2. وحدة بطاقة SD من Arduino
: يسمح لك بإضافة تخزين كبير السعة وتسجيل البيانات إلى مشروعك
3. أسلاك Arduino
: ينقل الكود عبر Arduino واللوح
4. مصباح LED
: LED هو ضوء صغير (يرمز إلى "الصمام الثنائي الباعث للضوء") يعمل بقوة قليلة نسبيًا
-رسم
الخطوة 2: الأدوات المطلوبة وممارسات السلامة
الأدوات اللازمة
1. سكين دقيق
- استخدمنا سكينًا دقيقًا لقطع وتتبع شكل Arduino و Breadboard من خلال الستايروفوم ، لحماية Arduino و Breadboard في حالة وقوع حوادث
2. مسدس الغراء الساخن
- استخدمنا مسدس الغراء الساخن للصق الستايروفوم على جوانب Cubesat لضمان أمان Arduino و Breadboard
3. الستايروفوم
- استخدمنا قطعًا من الستايروفوم لتأمين Arduino ولوح التجارب على جوانب Cubesat ، وكذلك للسماح بوسادة إذا سقطت Cubesat أو اهتزت حولها
ممارسات السلامة
1. كانت أول ممارسة للسلامة فرضناها هي التأكد من أننا لم نلمس الطابعة ثلاثية الأبعاد عندما كانت تطبع Cubesat. ستصبح الطابعة ثلاثية الأبعاد ساخنة جدًا ومن المهم أن تتذكر عدم لمسها.
2. عند استخدام السكين الدقيق لقطع قطع الستايروفوم ، كان علينا وضع الورق المقوى تحتها لضمان عدم تلف الطاولات. كان علينا أيضًا ارتداء نظارات واقية عند استخدام السكين في حالة طار أي شيء في وجوهنا أو حول مساحة العمل لدينا.
3. عند استخدام أي أدوات تتطلب أعمال شاقة ، تأكد من ارتداء نظارات واقية لأغراض السلامة.
4. بمجرد إرفاق Cubesat بالمركبة المدارية ، تأكد من تحذير الأشخاص حول المركبة من أنك ستختبر Cubesat الخاص بك وارتداء نظارات واقية لضمان سلامة جميع أجزاء الجسم والأشخاص.
-رسم
الخطوة الثالثة: كيف:
كيفية بناء CubeSat
1. لبدء عملية بناء CubeSat ، تحتاج إلى البحث عن نماذج من CubeSat بحجم 10x10x10 ولديها ملف STL في متناول يديك.
2. عندما تجد نموذجًا سيعمل على حمل لوح التجارب و Arduino بأمان ، فأنت بحاجة إلى تنزيل الملفات على محرك أقراص فلاش حتى تتمكن من الوصول إلى الملفات الموجودة على الطابعة ثلاثية الأبعاد.
3. بعد تنزيل الملفات الصحيحة على محرك أقراص فلاش ، يمكنك توصيل محرك الأقراص المحمول بجهاز الكمبيوتر المتصل بالطابعة ثلاثية الأبعاد.
4. عند قيامك بالطباعة ، تأكد من تحديد الملفات الصحيحة وأن جميع الأسلاك والرموز والمدخلات موصلة بشكل صحيح بين الكمبيوتر والطابعة ثلاثية الأبعاد. سيضمن ذلك طباعة CubeSat بشكل صحيح ، وسير كل شيء وفقًا للخطة.
5. خصص لكل عضو في المجموعة وقتًا محددًا للتحقق بكفاءة من الطابعة وتقدم CubeSat للقبض على أي مشاكل قد تواجهها. كونك قادرًا على جعل أحد أعضاء الفريق يتحقق من التقدم كل 2-3 ساعات ، سيوفر مساعدة كافية لإصلاح أي مشكلات ومراقبة التقدم الذي سيتم إحرازه.
إيدي
الرمز:
# تضمين # تضمين # تضمين # تضمين
const int MPU = 0x68 ؛ int16_t AcX ، AcY ، AcZ ، Tmp ، GyX ، GyY ، GyZ ؛ خطوة مزدوجة ، لفة.
بيانات الملف ؛
الإعداد باطل(){
pinMode (10 ، الإخراج) ؛ // يجب أن يضبط الدبوس 10 للإخراج حتى إذا لم يتم استخدامه ؛ // وضع دبوس 7 لإضاءة led SD.begin (4) ؛ // يبدأ بطاقة sd مع تعيين CS على pin 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.request From (MPU، 14، true) ؛
Int AcXoff و AcYoff و AcZoff و GyXoff و GyYoff و GyZoff ؛ درجة حرارة int ، toff ؛ مزدوج t ، tx ، tf ؛
// تصحيح بيانات التسريع AcXoff = -950 ؛ AcYoff = -300 ؛ AcZoff = 0 ؛
// تصحيح درجة الحرارة toff = -1600 ؛
// تصحيح الجيروسكوب GyXoff = 480 ؛ جيوف = 170 ؛ جيزوف = 210 ؛
// قراءة تسريع البيانات AcX = (Wire.read () << 8 | Wire.read ()) + AcXoff ؛ AcY = (Wire.read () << 8 | Wire.read ()) + AcYoff ؛ AcZ = (Wire.read () << 8 | Wire.read ()) + AcYoff ؛
// قراءة درجة حرارة بيانات درجة الحرارة = (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) ؛ // يفتح ملفًا يسمى "السجل"
// الحصول على الملعب / لفة getAngle (AcX ، AcY ، AcZ) ؛
// أرسل البيانات إلى المنفذ التسلسلي Serial.print ("Angle:") ؛ Serial.print ("الملعب =") ؛ Serial.print (الملعب) ؛ Serial.print ("| Roll =") ؛ Serial.println (لفة) ؛
Serial.print ("Temp:") ؛ Serial.print ("Temp (F) =") ؛ Serial.print (tf) ؛ Serial.print ("| Temp (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.println (لفة) ؛
طباعة البيانات (تف) ؛ Data.println (t) ؛ طباعة البيانات (AcX) ؛ // يكتب بيانات acel إلى ملف Data.print ("،") ؛ // يطبع الفاصلة في ملف Data.print (AcY) ؛ Data.print ("،") ؛ طباعة البيانات (AcZ) ؛ Data.print ("،") ؛ طباعة البيانات (GyX) ؛ Data.print ("،") ؛ طباعة البيانات (GyY) ؛ Data.print ("،") ؛ Data.println (GyZ) ؛
تأخير (1000) ؛ }
// قم بتحويل بيانات التسريع إلى getAngle (int Vx، int Vy، int Vz) {double x = Vx؛ مزدوج y = Vy ؛ مزدوج ض = Vz ؛
}
}
المدونة (CONT.):
-هذا هو الكود الذي استخدمناه لجمع البيانات من مقياس التسارع وبطاقة SD.
- بعد توصيل الأسلاك الخاصة بنا من Arduino و Breadboard لتبدو مثل تلك الموجودة في الرسم التخطيطي frizting ، قمنا بتوصيل بطاقة SD بوحدة مهايئ بطاقة SD واستمرنا في الاستعداد للاختبار النهائي.
- واجهتنا مشكلات مع الكود لفترة طويلة ، لكن الكود المذكور أعلاه هو الكود النهائي الذي استخدمناه والذي أعطانا البيانات التي استخدمناها في عرضنا التقديمي.
- يجمع هذا الرمز البيانات من مقياس التسارع وينقل المعلومات إلى بطاقة SD.
- تم توصيل بطاقة SD بـ USB وتوصيلها بالكمبيوتر. من هناك تم وضع المعلومات في جهاز الكمبيوتر الخاص بنا.
-بروك
توصيل أسلاك اردوينو:
- أثناء توصيل أسلاك Arduino ، عانينا من الأسلاك الفاشلة وفشل Arduinos.
- اضطررنا إلى تصحيح أسلاك Arduino الخاصة بنا عدة مرات بسبب الأسلاك غير الصحيحة.
- لضمان توصيل الأسلاك والتشفير الصحيحين ، تأكد من تأمين أسلاكك بالكامل ومن معالجة الكود بشكل صحيح.
الرسم البياني المجمد:
- كان الرسم التخطيطي المثير للأمام مستقيمًا وسهل المتابعة معه
- واجهنا مشكلات في الرسم التخطيطي عندما لم تكن وحدة بطاقة SD جزءًا من برنامج fritzing. لهذا السبب ، كان علينا البحث عبر الإنترنت عن جزء قابل للتنزيل لتضمينه في الرسم التخطيطي
- لقد أكملنا المخطط بتضمين الأجزاء والبرامج الصحيحة في الرسم التخطيطي
-رسم
الخطوة 4: النتائج / الدروس المستفادة
يوضح الرسم البياني الخاص بنا ارتفاعًا واضحًا في درجة الحرارة ، ويرجع ذلك على الأرجح إلى أن السخان يستغرق وقتًا للوصول إلى درجة الحرارة القصوى.
بالنسبة لهذا المشروع ، كانت الفيزياء التي واجهناها هي قوة الجاذبية التي تحافظ على دوران CubeSat.
-بروك