সুচিপত্র:

ColorCube: 7 ধাপ (ছবি সহ)
ColorCube: 7 ধাপ (ছবি সহ)

ভিডিও: ColorCube: 7 ধাপ (ছবি সহ)

ভিডিও: ColorCube: 7 ধাপ (ছবি সহ)
ভিডিও: Colorcube level 7 solution 2024, ডিসেম্বর
Anonim
Image
Image
কালারকিউব
কালারকিউব
কালারকিউব
কালারকিউব

আমি আমার নাতনীর জন্য এই বাতিটি তৈরি করেছি যখন সে রং শিখছিল। আমি ম্যাজিককিউব প্রকল্পে অনুপ্রাণিত হয়েছিলাম কিন্তু অবশেষে স্ক্র্যাচ থেকে সমস্ত অংশ তৈরি করেছি। এটি মুদ্রণ করা সহজ এবং একত্রিত করা সহজ এবং আপনি জ্ঞান পাবেন কিভাবে গাইরো মডিউল কাজ করে।

ধাপ 1: উপকরণ

উপকরণ
উপকরণ

Arduino অংশ:

  • Arduino ন্যানো (ঝাল হেডার পিন ছাড়া ভাল)
  • MPU-6050 3-Axis Gyro মডিউল
  • TP4056 মাইক্রো ইউএসবি ব্যাটারি চার্জার মডিউল
  • MT3608 স্টেপ আপ পাওয়ার বুস্টার মডিউল
  • LiPo ব্যাটারি 902936 900mA বা 503035 3.7V 500mA। আপনি 3, 7V এবং 35x30x15mm এর চেয়ে কম আকারের যেকোনো LiPo ব্যাটারি ব্যবহার করতে পারেন কিন্তু আপনাকে গর্তে ব্যাটারি সুরক্ষিত করতে হবে।
  • PS-22F28 সেলফ-লকিং বাটন বা PS-22F27 সেলফ-লকিং বোতাম দুটোই পুরোপুরি প্রিন্ট করা অংশের সাথে মানানসই।
  • LED RGB WS2812B রিং - 16 LED 68mm বাইরের ব্যাস - আপনি যে কোন রিং ব্যবহার করতে পারেন এমনকি বিভিন্ন সংখ্যক LEDs দিয়ে (কোডে একটি ধ্রুবক পরিবর্তন করতে হবে - #সংজ্ঞায়িত NUMPIXELS 16) সর্বোচ্চ 76 মিমি ব্যাস সহ (আপনি একটি Neopixel স্টিকও ব্যবহার করতে পারেন 8x LED বা WS2812b সহ যেকোন LED স্ট্রিপ)।

রিং উদাহরণ: 8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66 mm16 LED 44mm

মন্টেজের জন্য আপনি মাঝের অংশে মুদ্রিত যেকোনো গর্ত ব্যবহার করতে পারেন। তারা প্রায় যেকোনো বিকল্পকে আচ্ছাদন করে (রিং 100% কেন্দ্রীভূত করার প্রয়োজন নেই)।

তারের

ঘনক

  • ঘনক্ষেত্রের উপরের অংশের জন্য পিএলএ ফিলামেন্ট - সাদা রঙ ব্যবহার করুন কারণ স্বচ্ছ নয় (এলইডি দৃশ্যমান এবং রঙ মসৃণ নয়), আমার সুপারিশ প্রুসামেন্ট ভ্যানিলা হোয়াইট
  • নীচের, মাঝারি এবং বোতামের অংশগুলির জন্য পিএলএ ফিলামেন্ট - গা dark় রঙ ব্যবহার করুন কারণ কিছু আরডুইনো মডিউলের উপরে লাইট আছে এবং এটি কিউব এলইডি রঙের সাথে খাপ খায় না, আমার সুপারিশ হল প্রুসামেন্ট গ্যালাক্সি ব্ল্যাক
  • 1x M3x5 স্ব -লঘুপাত স্ক্রু - দৈর্ঘ্য (10 মিমি) এবং মাথার আকৃতি সমালোচনামূলক নয় - স্ক্রু দৃশ্যমান নয়
  • 2x M2x3 স্ব -লঘুপাত স্ক্রু - দৈর্ঘ্য (5 মিমি) এবং মাথার আকৃতি সমালোচনামূলক নয় - স্ক্রুগুলি দৃশ্যমান নয়

সরঞ্জাম

  • 3D প্রিন্টার
  • মাল্টি-মিটার
  • তাতাল
  • স্ক্রু ড্রাইভার

ধাপ 2: মুদ্রণ

মুদ্রণ
মুদ্রণ
মুদ্রণ
মুদ্রণ

কালারকিউবের সমস্ত অংশ অটোডেস্ক ফিউশন 360 এ ডিজাইন করা হয়েছিল। f3d ফাইল সংযুক্ত।

কালারকিউব সমস্ত ডিফল্ট সেটিংস সহ Prusa i3 MK3S প্রিন্টারে মুদ্রিত হয়েছিল এবং আমি বিভিন্ন প্রিন্টারে কোন প্রয়োজনীয় পরিবর্তন আশা করি না। পিএলএর জন্য আপনার প্রিয় সেটিংস ব্যবহার করুন (যদি পিএলএতে মুদ্রিত হয়, পিইটিজি বা এএসএ ব্যবহার করতে কোন সমস্যা নেই)।

3 ডি মুদ্রণ পরামিতি:

  • লেয়ার 0.2 মিমি (PrusaSlicer এ 0.2 মিমি কোয়ালিটি সেটিংস)
  • PrusaSlicer এ Prusament PLA Filament সেটিংস
  • ইনফিল 15%
  • কোন সহযোগিতা নেই
  • কোন প্রান্ত

ধাপ 3: সার্কিট

সার্কিট
সার্কিট

ধাপ 4: সোল্ডারিং

সোল্ডারিং
সোল্ডারিং
সোল্ডারিং
সোল্ডারিং
সোল্ডারিং
সোল্ডারিং

সতর্কতা: ডিসি-ডিসি বুস্টার MT3608 5V আউটপুট করছে তা নিশ্চিত করার জন্য একটি মাল্টি-মিটার ব্যবহার করুন। প্রথমত - পরিমাপ করার আগে - ঘড়ির কাঁটার শেষ প্রান্তে ক্লিক করুন (ক্লিক করা)। ইনপুটে ভোল্টেজ (3, 7V) সংযুক্ত করার সময় এটিকে প্রায় একই মান দিতে হবে। ঘড়ির কাঁটার উল্টো দিকে ঘুরুন (আপনার 10-20 পূর্ণ বাঁক লাগবে) এবং হঠাৎ ভোল্টেজ বাড়বে। আস্তে আস্তে আউটপুটে 5V সেট করুন। (ছবি)

ঘনক্ষেত্রের নীচের অংশ মুদ্রিত দেখুন। প্রতিটি উপাদান তার নিজস্ব গর্ত আছে। এটি প্রতিটি উপাদানগুলির মধ্যে কত তারের প্রয়োজন হবে তা নির্ধারণ করে (অতিরিক্ত লম্বা তারগুলি ব্যবহার করবেন না অন্যথায় আপনি তারের জঙ্গল পাবেন)। (ছবি)

আরডুইনো ন্যানো এবং এলইডি রিংয়ের মধ্যে সোল্ডার তারগুলি (3 টি তার: লাল 5V - 5V, কালো GND - GND, নীল D6 - DI)। পরবর্তী অধ্যায় থেকে এলইডি রিং কার্যকারিতা পরীক্ষা চালান। (ছবি)

সবকিছু ঠিক থাকলে Gyro MPU6050 (5 টি তার: লাল 5V - VCC, কালো GND - GND, নীল A4 - SDA, সবুজ A5 - SCL, হলুদ D2 - INT) যোগ করা চালিয়ে যান। ColorCube.ino কোড এবং পরীক্ষা আপলোড করুন (অন্যান্য উপাদান শুধুমাত্র ব্যাটারি এবং চার্জিং এর জন্য)। (ছবি)

সব ঠিক থাকলে বাকি উপাদানগুলো যোগ করুন। শুধুমাত্র লাল (+) এবং কালো (-) তার আছে। স্ব-লকিং বোতামে ডান পিনগুলি নির্বাচন করুন (চাপানো না হলে সংযুক্ত নয়)। ব্যাটারি এবং ব্যাটারি চার্জিং এর কার্যকারিতা পরীক্ষা করুন। (ছবি)

চার্জ করার সময় TP4056 তে লাল LED লাইট এবং সম্পূর্ণ চার্জ করার সময় নীল LED লাইট। TP4056 এর উপরের ছিদ্রটি মাঝামাঝি মুদ্রিত অংশে LED লাইটটি কালারকিউবের উপরের অংশে চলে যায় এবং আপনি চার্জিংয়ের পর্যায়টি চিনতে পারেন। (ছবি)

ধাপ 5: কোড

প্রথমে আপনাকে প্রয়োজনীয় লাইব্রেরি ডাউনলোড করতে হবে।

Adafruit Neopixel লাইব্রেরির জন্য বিস্তারিত নির্দেশাবলী রয়েছে:

LED রিং কার্যকারিতা পরীক্ষা: আপনি লাইব্রেরিতে অন্তর্ভুক্ত উদাহরণ দ্বারা আপনার সার্কিট পরীক্ষা করতে পারেন। ফাইল/উদাহরণ/Adafruit NeoPixels/simple থেকে ফাইলটি খুলুন এবং আপলোড করুন (আপনি যে পিক্সেল ব্যবহার করছেন তার দ্বারা এই লাইনটি সঠিকভাবে সেট করতে ভুলবেন না: #সংজ্ঞা NUMPIXELS 16)।

I2Cdev এবং MPU6050: https://github.com/jrowberg/i2cdevlib থেকে i2cdevlib-master.zip ফাইলটি ডাউনলোড করে আনজিপ করুন। ফর্ম আনজিপড ফোল্ডার i2cdevlib-master/Arduino দুটি সাবফোল্ডার কপি করুন: I2Cdev এবং MPU6050। উভয়ই Arduino IDE লাইব্রেরি ফোল্ডারে অনুলিপি করে (নথিপত্র/Arduino/লাইব্রেরি ডিফল্ট ইনস্টলেশন হলে)

লাইব্রেরিগুলি অনুলিপি করার পরে আরডুইনো আইডিই পুনরায় চালু করতে ভুলবেন না।

#অন্তর্ভুক্ত করুন #Derfine INTERRUPT_PIN 2 // Arduino Uno এবং অধিকাংশ বোর্ডে পিন 2 ব্যবহার করুন #PIN 6 নির্ধারণ করুন #NUMPIXELS 16 নির্ধারণ করুন // LEDs এর সঠিক সংখ্যা নির্ধারণ করুন Adafruit_NeoPixel পিক্সেল (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); uint32_t activeColor, oldActiveColor = 0; বুল dmpReady = মিথ্যা; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t প্যাকেট সাইজ; uint16_t fifoCount; uint8_t fifoBuffer [64]; Quaternion q; ভেক্টর ফ্লোট মাধ্যাকর্ষণ; ভাসমান ঘূর্ণন [3]; int x, y, z; volatile bool mpuInterrupt = মিথ্যা; অকার্যকর dmpDataReady () {mpuInterrupt = সত্য; } অকার্যকর সেটআপ () {Serial.begin (115200); পিক্সেল শুরু (); পিক্সেল ক্লিয়ার (); পিক্সেলসেট উজ্জ্বলতা (128); #if সংজ্ঞায়িত (_ 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); // 400kHz I2C ঘড়ি। সংকলন করতে সমস্যা হলে এই লাইনে মন্তব্য করুন #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif while (! সিরিয়াল); Serial.println (F ("I2C ডিভাইসের সূচনা …")); mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT); // সংযোগ যাচাই করুন Serial.println (F ("ডিভাইস সংযোগ পরীক্ষা করা হচ্ছে …")); Serial.println (mpu.testConnection ()? F ("MPU6050 সংযোগ সফল"): F ("MPU6050 সংযোগ ব্যর্থ")); // প্রস্তুত হওয়ার জন্য অপেক্ষা করুন // Serial.println (F ("D n ডিএমপি প্রোগ্রামিং এবং ডেমো শুরু করতে যেকোনো অক্ষর পাঠান:")); // while (Serial.available () && Serial.read ()); // খালি বাফার // যখন (! Serial.available ()); // তথ্যের জন্য অপেক্ষা করুন // যখন (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 কে ক্যালিব্রেট করে। mpu. CalibrateGyro (6); mpu. PrintActiveOffsets (); // ডিএমপি চালু করুন, এখন এটি সিরিয়াল.প্রিন্টলন (এফ ("ডিএমপি সক্ষম করছে …")) প্রস্তুত; mpu.setDMPEnabled (সত্য); // Arduino ইন্টারাপ্ট ডিটেকশন সিরিয়াল.প্রিন্ট সক্ষম করুন attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // আমাদের ডিএমপি রেডি ফ্ল্যাগ সেট করুন যাতে প্রধান লুপ () ফাংশন জানে যে এটি ব্যবহার করা ঠিক আছে Serial.println (F ("ডিএমপি প্রস্তুত! dmpReady = সত্য; // পরবর্তী তুলনা প্যাকেটের জন্য প্রত্যাশিত DMP প্যাকেটের আকার পান সাইজ = mpu.dmpGetFIFOPacketSize (); } অন্যথায় {// ভুল! // 1 = প্রাথমিক মেমরি লোড ব্যর্থ হয়েছে // 2 = ডিএমপি কনফিগারেশন আপডেট ব্যর্থ হয়েছে // (যদি এটি ভেঙে যাচ্ছে, সাধারণত কোডটি 1 হবে) মুদ্রণ (devStatus); Serial.println (F (")")); }} void loop () {if (! dmpReady) return; যদি (mpu.dmpGetCurrentFIFOPacket (fifoBuffer)) {// সর্বশেষ প্যাকেট পান // ডিগ্রীতে অয়লার কোণ প্রদর্শন করুন mpu.dmpGetQuaternion (& q, fifoBuffer); mpu.dmpGetGravity (& মাধ্যাকর্ষণ, & q); mpu.dmpGetYawPitchRoll (rotace, & q, & gravity); } সিরিয়াল.প্রিন্ট ("এক্স"); Serial.print (rotace [2] * 180/M_PI); Serial.print ("\ t Y"); Serial.print (rotace [1] * 180/M_PI); Serial.print ("\ t Z"); Serial.println (rotace [0] * 180/M_PI); x = rotace [2] * 180/M_PI; y = rotace [1] * 180/M_PI; z = rotace [0] * 180/M_PI; যদি (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. Color (255, 0, 0); // লাল হলে পাশে ঘুরুন} অন্যথায় যদি (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 (); pixel.fill (activeColor); পিক্সেল শো (); oldActiveColor = activeColor; }}

অবশেষে আপনি ColorCube.ino ফাইলটি খুলতে এবং আপলোড করতে পারেন। সমতল পৃষ্ঠের ColorCube রাখুন এবং এটি চালু করুন। ক্যালিব্রেশন (কয়েক সেকেন্ড) পরে সাদা রঙ দিয়ে হালকা হওয়া পর্যন্ত এটিকে সরান না। পরবর্তীতে আপনি কালারকিউবটি পাশে রাখতে পারেন এবং রঙ পরিবর্তন হবে - প্রতিটি পাশের নিজস্ব রঙ আছে - লাল, সবুজ, নীল, হলুদ। কালারকিউব উল্টো হয়ে গেলে বেরিয়ে যায়।

ধাপ 6: একত্রিত করা

একত্রিত করা
একত্রিত করা
একত্রিত করা
একত্রিত করা
একত্রিত করা
একত্রিত করা

একত্রিত হওয়ার সময় নম্র হোন। তার এবং সমস্ত অংশ রুক্ষ আচরণ পছন্দ করে না।

বাটন 3 ডি প্রিন্ট করা অংশ - নিচের ছাপানো অংশে গর্তে আলতো করে বোতাম লাগান (ছবিতে যেমন দেখানো হয়েছে), সব অতিরিক্ত উপাদান (বেশিরভাগ ভিতরে নীচের অংশে একটি বৃত্তের গর্তের উপরে)। (ছবি)

MPU-6050, Arduino Nano, TP4056 এবং MT3608 তাদের গর্তে রাখুন। বাক্সে প্রোট্রেশন রয়েছে যার অধীনে আপনি MPU-6050 এবং MT3608 োকান। Arduino Nano এবং TP4056 এর USB সংযোগকারীগুলিকে বাক্সের পাশের দেয়ালে তাদের গর্তে রাখুন। (ছবি)

উপাদানগুলি ঠিক করতে 3 ডি মুদ্রিত লক ব্যবহার করুন (নিশ্চিত করুন যে সমস্ত উপাদান নীচের অংশে শক্তভাবে রয়েছে)। এটি গুরুত্বপূর্ণ কারণ কেউ অবশ্যই আপনার কালারকিউবের সাথে পাশার মতো খেলার চেষ্টা করবে। (ছবি)

ব্যাটারি শক্ত করে না ধরে রাখলে তার গর্তে রাখুন।

নিচের অংশে প্রস্তুত গর্তে সেলফ-লকিং বোতাম রাখুন। স্ব-লকিং বোতামটি অন অবস্থানে থাকতে হবে (সংক্ষিপ্ত)। আলতো করে বোতাম চাপুন। 3 ডি মুদ্রিত বোতাম সহ কার্যকারিতা পরীক্ষা করুন। (ছবি)

মাঝারি মুদ্রিত অংশে LED রিং ঠিক করতে দুটি M2 স্ক্রু ব্যবহার করুন। রিং এর ওরিয়েন্টেশন ব্যবহার করা ভাল যেখানে তারের যোগাযোগগুলি মধ্যম মুদ্রিত অংশের গোলাকার গর্তে থাকে। (ছবি)

Oচ্ছিক: এখানে এবং সেখানে এক ফোঁটা গরম আঠা ব্যবহার করুন - রিংয়ের সাথে তারের সংযোগ, খুব লম্বা তারের জন্য, যদি কিছু যথেষ্ট টাইট না থাকে ইত্যাদি। এটি আপনার কালারকিউবকে আরও টেকসই করতে পারে।

কালারকিউবের ভিতরে তারের ব্যবস্থা করুন যাতে মুদ্রিত অংশ দ্বারা চিমটি না লাগে। মাঝের অংশটি নিচের দিকে রাখুন। এটি ঠিক করতে M3 স্ক্রু ব্যবহার করুন। (ছবি)

অবশেষে আস্তে আস্তে উপরের মুদ্রিত অংশটিকে নীচের দিকে ধাক্কা দিন। (ছবি)

ধাপ 7: সম্পন্ন

অভিনন্দন। আনন্দ কর.

প্রস্তাবিত: