جدول المحتويات:
- الخطوة 1: المواد
- الخطوة الثانية: الطباعة
- الخطوة 3: الدائرة
- الخطوة 4: اللحام
- الخطوة 5: الكود
- الخطوة 6: التجميع
- الخطوة 7: تم
فيديو: ColorCube: 7 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
لقد صنعت هذا المصباح لحفيدتي عندما كانت تتعلم الألوان. لقد ألهمت مشروع MagicCube ولكن أخيرًا قمت بإنشاء جميع الأجزاء من البداية. من السهل طباعتها وتجميعها وستتعرف على كيفية عمل وحدة الدوران.
الخطوة 1: المواد
جزء اردوينو:
- اردوينو نانو (أفضل بدون دبابيس رأس اللحام)
- MPU-6050 3-Axis Gyro Module
- وحدة شاحن بطارية USB الصغيرة TP4056
- MT3608 تصعيد وحدة تعزيز الطاقة
- بطارية LiPo 902936900mA أو 503035 3.7V 500mA. يمكنك استخدام أي بطارية LiPo ذات 3 و 7 فولت وحجم أقل من 35 × 30 × 15 ملم ولكن عليك تأمين البطارية في الفتحة.
- زر القفل الذاتي PS-22F28 أو زر القفل الذاتي PS-22F27 كلاهما يناسب الجزء المطبوع تمامًا.
- حلقة LED RGB WS2812B - قطرها الخارجي 16 LED 68 مم - يمكنك استخدام أي حلقة حتى مع عدد مختلف من مصابيح LED (يجب تغيير ثابت واحد في الكود - #define NUMPIXELS 16) بقطر أقصى 76 مم (يمكنك أيضًا استخدام Neopixel Stick مع 8x LED أو أي شريط LED مع WS2812b).
أمثلة الحلقة: 8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66mm16 LED 44mm
للمونتاج ، يمكنك استخدام أي من الثقوب المطبوعة في الجزء الأوسط. إنها تغطي أي خيار تقريبًا (ليس من الضروري أن يكون لديك حلقة مركزية بنسبة 100٪).
الأسلاك
مكعب
- PLA Filament للجزء العلوي من المكعب - استخدم اللون الأبيض لأن الشفافية ليست جيدة (المصابيح مرئية واللون ليس سلسًا) ، توصيتي هي Prusament Vanilla White
- PLA Filament للأجزاء السفلية والوسطى والأزرار - استخدم اللون الداكن لأن بعض وحدات Arduino تحتوي على أضواء في الأعلى ولا تتناسب مع ألوان LEDs المكعبة ، توصيتي هي Prusament Galaxy Black
- 1x M3x5 برغي التنصت الذاتي - الطول (10 مم) وشكل الرأس ليسا حرجين - المسمار غير مرئي
- 2x M2x3 برغي التنصت الذاتي - الطول (5 مم) وشكل الرأس ليسا حرجين - المسامير غير مرئية
أدوات
- طابعة 3D
- المقياس المتعدد
- لحام حديد
- مفك براغي
الخطوة الثانية: الطباعة
تم تصميم جميع أجزاء ColorCube في Autodesk Fusion360. f3d مرفق.
تمت طباعة ColorCube على طابعة Prusa i3 MK3S مع جميع الإعدادات الافتراضية ولا أتوقع أي تغييرات ضرورية على الطابعات المختلفة. استخدم إعداداتك المفضلة لـ PLA (إذا تمت طباعتها على PLA ، فلا مشكلة في استخدام PETG أو ASA).
معلمات الطباعة ثلاثية الأبعاد:
- طبقة 0.2 مم (إعدادات جودة 0.2 مم في PrusaSlicer)
- إعدادات Prusament PLA Filament على PrusaSlicer
- إنفر 15٪
- لا دعم
- لا بريم
الخطوة 3: الدائرة
الخطوة 4: اللحام
تحذير: استخدم مقياس متعدد للتأكد من أن DC-DC booster MT3608 يخرج 5 فولت. أولاً - قبل القياس - أدر الزخرفة في اتجاه عقارب الساعة حتى النهاية (النقر). عند توصيل الجهد (3 ، 7 فولت) للإدخال ، يجب أن يعطي نفس القيمة تقريبًا. انعطف عكس اتجاه عقارب الساعة (ستحتاج إلى 10-20 دورة كاملة) وفجأة يرتفع الجهد. ضبط 5V على الإخراج بهدوء. (صورة فوتوغرافية)
ألقِ نظرة على الجزء السفلي المطبوع من المكعب. كل مكون له حفرة خاصة به. يحدد طول الأسلاك بين كل مكون الذي ستحتاجه (لا تستخدم أسلاكًا طويلة جدًا وإلا ستحصل على غابة سلكية). (صورة فوتوغرافية)
أسلاك اللحام بين Arduino Nano وحلقة LED فقط (3 أسلاك: أحمر 5 فولت - 5 فولت ، أسود GND - GND ، أزرق D6 - DI). قم بتشغيل اختبار وظيفة حلقة LED من الفصل التالي. (صورة فوتوغرافية)
إذا كان كل شيء على ما يرام ، فاستمر في إضافة Gyro MPU6050 (5 أسلاك: أحمر 5V - VCC ، أسود GND - GND ، أزرق A4 - SDA ، أخضر A5 - SCL ، أصفر D2 - INT). قم بتحميل كود ColorCube.ino واختباره (المكونات الأخرى مخصصة للبطارية والشحن فقط). (صورة فوتوغرافية)
إذا كان كل شيء على ما يرام ، أضف بقية المكونات. لا يوجد سوى أسلاك حمراء (+) وسوداء (-). حدد الدبابيس اليمنى على زر القفل الذاتي (غير متصل عند عدم الضغط عليه). اختبر وظائف البطارية وشحن البطارية. (صورة فوتوغرافية)
أضواء LED حمراء على TP4056 عند الشحن وأضواء LED زرقاء عند الشحن الكامل. الثقب الموجود أعلى TP4056 في الجزء المطبوع الأوسط يمرر ضوء LED إلى الجزء العلوي من ColorCube ويمكنك التعرف على مرحلة الشحن. (صورة فوتوغرافية)
الخطوة 5: الكود
أولاً ، عليك تنزيل المكتبات الضرورية.
هناك تعليمات مفصلة لمكتبة Adafruit Neopixel:
اختبار وظائف حلقة LED: يمكنك اختبار دائرتك عن طريق المثال المتضمن في المكتبة. افتح الملف من File / Examples / Adafruit NeoPixels / simple وقم بالتحميل (لا تنسَ إعداد هذا السطر بشكل صحيح بعدد البكسل الذي تستخدمه: #define NUMPIXELS 16).
I2Cdev و MPU6050: قم بتنزيل وفك ضغط ملف i2cdevlib-master.zip من https://github.com/jrowberg/i2cdevlib. نسخ مجلد غير مضغوط i2cdevlib-master / Arduino مجلدان فرعيان: I2Cdev و MPU6050. كلاهما ينسخ إلى مجلد مكتبة Arduino IDE (المستندات / Arduino / المكتبات إذا كان التثبيت الافتراضي).
لا تنس إعادة تشغيل Arduino IDE بعد نسخ المكتبات.
# تضمين #ifdef _AVR_ #include // مطلوب لـ 16 ميجا هرتز Adafruit Trinket #endif # تتضمن "Wire.h" تتضمن "I2Cdev.h" # تضمين "MPU6050_6Axis_MotionApps20.h" MPU6050 mpu؛ #define INTERRUPT_PIN 2 // استخدم pin 2 على Arduino Uno ومعظم اللوحات #define PIN 6 #define NUMPIXELS 16 // اضبط العدد الصحيح لمصابيح LED Adafruit_NeoPixel (NUMPIXELS، PIN، NEO_GRB + NEO_KHZ800) ؛ uint32_t activeColor ، oldActiveColor = 0 ؛ منطقي dmpReady = خطأ ؛ uint8_t mpuIntStatus ؛ uint8_t devStatus؛ uint16_t packetSize ؛ uint16_t fifoCount ؛ uint8_t fifoBuffer [64] ؛ رباعي ف ؛ VectorFloat الجاذبية. تعويم الدوران [3] ؛ int x ، y ، z ؛ متغير منطقي mpuInterrupt = خطأ ؛ dmpDataReady () باطل {mpuInterrupt = true ؛ } void setup () {Serial.begin (115200)؛ pixels.begin () ، بكسل. واضح () ، pixels.setBrightness (128) ؛ # إذا تم تعريفها (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1) ؛ #endif // انضم إلى ناقل I2C (مكتبة I2Cdev لا تفعل ذلك تلقائيًا) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin () ؛ Wire.setClock (400000) ؛ // ساعة 400 كيلو هرتز I2C. علق على هذا السطر إذا واجهت صعوبات في الترجمة #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400، true)؛ #endif بينما (! المسلسل) ؛ Serial.println (F ("تهيئة أجهزة I2C …")) ؛ mpu.initialize () ، pinMode (INTERRUPT_PIN ، INPUT) ؛ // تحقق من الاتصال Serial.println (F ("اختبار اتصالات الجهاز …")) ؛ Serial.println (mpu.testConnection ()؟ F ("اتصال MPU6050 ناجح"): F ("فشل اتصال MPU6050")) ؛ // انتظر حتى يكون جاهزًا // Serial.println (F ("\ n أرسل أي حرف لبدء برمجة DMP والعروض التوضيحية:")) ؛ // while (Serial.available () && Serial.read ()) ؛ // مخزن مؤقت فارغ // while (! Serial.available ()) ؛ // انتظر البيانات // while (Serial.available () && Serial.read ()) ؛ // تحميل المخزن المؤقت الفارغ مرة أخرى // تحميل وتكوين DMP Serial.println (F ("تهيئة DMP…")) ؛ devStatus = mpu.dmpInitialize () ، // قم بتوفير تعويضات الدوران الخاصة بك هنا ، والتي تم تحجيمها من أجل الحد الأدنى من الحساسية mpu.setXGyroOffset (0) ؛ mpu.setYGyroOffset (0) ، mpu.setZGyroOffset (0) ، mpu.setZAccelOffset (1688) ؛ // 1688 افتراضيًا للمصنع لشريحة الاختبار الخاصة بي // تأكد من أنها تعمل (تُرجع 0 إذا كان الأمر كذلك) إذا (devStatus == 0) {// وقت المعايرة: إنشاء إزاحات ومعايرة MPU6050 mpu. CalibrateAccel (6) ؛ mpu. CalibrateGyro (6) ؛ mpu. PrintActiveOffsets () ، // قم بتشغيل DMP ، الآن بعد أن أصبح جاهزًا Serial.println (F ("تمكين DMP …")) ؛ mpu.setDMPEnabled (صحيح) ، // تمكين الكشف عن مقاطعة Arduino Serial.print (F ("تمكين اكتشاف المقاطعة (المقاطعة الخارجية لـ Arduino")) ؛ Serial.print (digitalPinToInterrupt (INTERRUPT_PIN)) ؛ Serial.println (F (") …")) ؛ attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN) ، dmpDataReady ، RISING) ؛ mpuIntStatus = mpu.getIntStatus () ، // قم بتعيين علامة DMP Ready الخاصة بنا حتى تعرف وظيفة الحلقة الرئيسية () أنه لا بأس من استخدامها Serial.println (F ("DMP جاهز! انتظار المقاطعة الأولى …")) ؛ dmpReady = صحيح ؛ // احصل على حجم حزمة DMP المتوقع لحزمة المقارنة اللاحقة = mpu.dmpGetFIFOPacketSize () ؛ } آخر {// ERROR! // 1 = فشل تحميل الذاكرة الأولية // 2 = فشلت تحديثات تكوين DMP // (إذا كان سيتم كسرها ، فعادة ما يكون الرمز 1) Serial.print (F ("فشل تهيئة DMP (الرمز")) ؛ Serial. طباعة (devStatus) ؛ Serial.println (F (")")) ؛ }} void loop () {if (! dmpReady) return؛ if (mpu.dmpGetCurrentFIFOPacket (fifoBuffer)) {// احصل على أحدث حزمة // عرض زوايا أويلر بالدرجات mpu.dmpGetQuaternion (& q، fifoBuffer) ؛ mpu.dmpGetGravity (& الجاذبية ، & q) ؛ mpu.dmpGetYawPitchRoll (rotace، & q، & gravity) ؛ } Serial.print ("X") ؛ Serial.print (rotace [2] * 180 / M_PI) ؛ Serial.print ("\ t Y") ؛ Serial.print (rotace [1] * 180 / M_PI) ؛ Serial.print ("\ t Z") ؛ Serial.println (استدارة [0] * 180 / M_PI) ؛ س = استدارة [2] * 180 / M_PI ؛ ص = استدارة [1] * 180 / M_PI ؛ ض = استدارة [0] * 180 / M_PI ؛ إذا (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. Color (255، 0، 0) ؛ // أحمر عند الانعطاف إلى الجانب} else if (x <-45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. Color (0، 255، 0)؛ // أخضر عند الانعطاف إلى الجانب الثاني} وإلا إذا (y> 45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (255، 255، 0)؛ // أصفر عند الانعطاف إلى الجانب الثالث} وإلا إذا (y <-45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (0، 0، 255)؛ // أزرق عند الانعطاف إلى الجانب الرابع} وإلا إذا (abs (y)> 135 && abs (x)> 135) {activeColor = pixels. Color (0، 0، 0)؛ // أسود عندما يكون رأسًا على عقب} إذا (activeColor! = oldActiveColor) {pixels.clear ()؛ pixels.fill (activeColor) ؛ pixels.show () ، oldActiveColor = activeColor ؛ }}
أخيرًا يمكنك فتح وتحميل ملف ColorCube.ino. ضع ColorCube على سطح مستو وقم بتشغيله. لا تحركه حتى يبدأ الضوء باللون الأبيض بعد المعايرة (بضع ثوانٍ). بعد ذلك ، يمكنك وضع ColorCube على الجانب وسيتغير اللون - كل جانب له لونه الخاص - الأحمر والأخضر والأزرق والأصفر. يخرج ColorCube عندما ينقلب رأسًا على عقب.
الخطوة 6: التجميع
كن لطيفًا أثناء التجميع. الأسلاك وجميع الأجزاء لا تحب السلوك القاسي.
الجزء المطبوع ثلاثي الأبعاد للزر - ضع الزر برفق على الفتحة الموجودة في الجزء السفلي المطبوع (كما هو موضح في الصورة) ، يجب أن يدخل ويخرج بسلاسة ، إذا لم يتم استخدام مشرط أو سكين حاد أو ورق رملي لإزالة جميع المواد الزائدة (معظمها من الداخل على أعلى فتحة دائرية في الجزء السفلي). (صورة فوتوغرافية)
ضع MPU-6050 و Arduino Nano و TP4056 و MT3608 في فتحاتهم. يحتوي الصندوق على نتوءات تقوم تحتها بإدخال MPU-6050 و MT3608. ضع موصلات USB من Arduino Nano و TP4056 في الفتحات الموجودة في الجدران الجانبية للصندوق. (صورة فوتوغرافية)
استخدم قفلًا مطبوعًا ثلاثي الأبعاد لإصلاح المكونات (تأكد من وضع جميع المكونات على الجزء السفلي بإحكام). إنه أمر مهم لأن شخصًا ما سيحاول بالتأكيد اللعب باستخدام ColorCube الخاص بك كما هو الحال مع النرد. (صورة فوتوغرافية)
ضع البطارية وقم بتثبيتها في الفتحة الخاصة بها إذا لم يتم تثبيتها بإحكام.
ضع زر القفل الذاتي في الفتحة المعدة في الجزء السفلي. يجب أن يكون زر القفل الذاتي في وضع التشغيل (قصير). اضغط برفق على الزر لأسفل. اختبر الوظيفة باستخدام الزر المطبوع ثلاثي الأبعاد. (الصور)
استخدم اثنين من البراغي M2 لإصلاح حلقة LED للجزء الأوسط المطبوع. من الجيد استخدام اتجاه الحلقة حيث تكون ملامسات الأسلاك في فتحة مستديرة للجزء الأوسط المطبوع. (الصور)
اختياري: استخدم قطرة من الغراء الساخن هنا وهناك - توصيل الأسلاك بالحلقة ، للأسلاك الطويلة جدًا ، إذا لم يكن أي شيء ضيقًا بدرجة كافية وما إلى ذلك ، يمكن أن يجعل ColorCube الخاص بك أكثر متانة.
قم بترتيب الأسلاك داخل ColorCube بحيث لا يتم ضغطها بواسطة الأجزاء المطبوعة. ضع الجزء الأوسط على الجزء السفلي. استخدم برغي M3 لإصلاحه. (صورة فوتوغرافية)
أخيرًا ادفع الجزء العلوي المطبوع برفق إلى الجزء السفلي. (صورة فوتوغرافية)
الخطوة 7: تم
تهنئة. استمتع.
موصى به:
كيف تصنع عداد خطوات؟: 3 خطوات (بالصور)
How to Make Step Counter؟: اعتدت أن أؤدي أداءً جيدًا في العديد من الرياضات: المشي والجري وركوب الدراجة ولعب كرة الريشة وما إلى ذلك ، أحب ركوب الخيل للسفر في وقت قريب. حسنًا ، انظر إلى بطني المنتفخ … حسنًا ، على أي حال ، قررت إعادة التمرين. ما هي المعدات التي يجب أن أحضرها؟
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): 6 خطوات
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): هل تريد تخويف أصدقائك وإحداث بعض ضوضاء الصراخ في عيد الهالوين؟ أو تريد فقط عمل مزحة جيدة؟ يمكن لشاشة الزومبي المنبثقة القيام بذلك! في هذا Instructable ، سوف أعلمك كيفية جعل زومبي القفز للخارج بسهولة باستخدام Arduino. HC-SR0
وحدة تحكم أتاري بانك مع جهاز التسلسل 8 خطوات للأطفال: 7 خطوات (بالصور)
وحدة التحكم Atari Punk مع جهاز التسلسل المكون من 8 خطوات للأطفال: هذا التصميم الوسيط هو وحدة التحكم Atari Punk المتكاملة وجهاز التسلسل 8 خطوات للأطفال الذي يمكنك طحنه على آلة طحن PCB لسطح المكتب من Bantam Tools. إنها مكونة من لوحين للدائرة: أحدهما عبارة عن لوحة واجهة مستخدم (UI) والآخر عبارة عن لوحة مساعدة
بولت - ساعة ليلية للشحن اللاسلكي DIY (6 خطوات): 6 خطوات (بالصور)
Bolt - ساعة شحن لاسلكية DIY (6 خطوات): الشحن الاستقرائي (المعروف أيضًا باسم الشحن اللاسلكي أو الشحن اللاسلكي) هو نوع من نقل الطاقة اللاسلكي. يستخدم الحث الكهرومغناطيسي لتوفير الكهرباء للأجهزة المحمولة. التطبيق الأكثر شيوعًا هو Qi wireless charge st
كيفية عمل فيديو منقسم الشاشة بأربع خطوات: 4 خطوات (بالصور)
كيفية عمل فيديو منقسم الشاشة بأربع خطوات: غالبًا ما نرى نفس الشخص يظهر في مشهد مرتين في مسرحية تلفزيونية. وبقدر ما نعلم ، ليس للممثل أخ توأم. لقد شاهدنا أيضًا أنه يتم وضع مقطعي فيديو غنائيين على شاشة واحدة لمقارنة مهاراتهم الغنائية. هذه هي قوة الانطباع