
সুচিপত্র:
2025 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2025-01-23 14:36



এইচকেইউ প্রকল্প - আইটিটিটি (যদি এটি তাহলে) - জুলিয়া বার্কোওয়ার, 1 বি
আপনি কি কখনও চাপ অনুভব করেছেন এবং আপনি কীভাবে নিজেকে শান্ত করবেন তা জানেন না, তারপরে আপনার এই বিশ্রামের চশমাগুলি ব্যবহার করা উচিত! আপনি সেগুলি রাখুন এবং আপনার চোখ বন্ধ করুন, তারপরে একটি শ্বাস -প্রশ্বাসের প্যাটার্ন বাজবে। এই শ্বাস -প্রশ্বাসের ধরণ অনুসরণ করে আপনার শ্বাস -প্রশ্বাস প্রতি মিনিটে 6 বার শ্বাস -প্রশ্বাসে নেমে যাবে। এটি করলে এটি প্রতিদিনের মানসিক চাপ থেকে মুক্তি দেয়।
আপনি একটি fsr- সেন্সর ব্যবহার করে একটি সুইচে উল্টিয়ে আপনার শ্বাসের তীব্রতাও ট্র্যাক করতে পারেন।
এই টোটুরিয়ালের সাহায্যে আমি ধাপে ধাপে আপনার নিজের বিশ্রামের চশমা তৈরির মাধ্যমে আপনাকে নির্দেশনা দেব।
ধাপ 1: প্রয়োজনীয় উপকরণ এবং যন্ত্রাংশ:



উপকরণ:
1x arduino uno;
1xbreadboard বা PCV;
3x 10k প্রতিরোধক
তারগুলি (বিশেষত বিভিন্ন রঙের তাই কোন জিনিসগুলি মাটিতে যাচ্ছে এবং কোনটি বিভিন্ন পিনে যাচ্ছে ইত্যাদি বলা সহজ);
কিছু তাপ সঙ্কুচিত টিউব;
2x NeoPixel রিং - 16 x 5050 RGB LED ইন্টিগ্রেটেড ড্রাইভারের সাথে;
1x সুইচ;
1x FSR সেন্সর;
1x SteamPunk গগলস (আপনি পার্টি শপে এগুলো কিনতে পারেন, সেগুলো ব্যবহার করা সহজ কারণ নিওপিক্সেল রিং চশমার উপর পুরোপুরি ফিট করে। আপনি সবসময় অন্য গগলস ব্যবহার করার চেষ্টা করুন অথবা নিজের তৈরি করুন।);
1x এক ধরণের (ইলাস্টিক) ব্যান্ড আপনার বুকের চারপাশে রাখতে।
সরঞ্জাম: -ল্যাপটপ
-তাতাল
-আরডুইনো আইডিই সফটওয়্যার
আপনি আমার পিভিসিতে দুটি বোতাম এবং একটি সুইচ দেখতে পাবেন, আমি কেবল বাম বোতামটি সুইচটিতে সংযুক্ত করতে ব্যবহার করি, আমি ছবির ডানদিকে দ্বিতীয় বোতামটি ব্যবহার করি না। আমি বোতামগুলি পিভিসিতে রাখি বুঝতে পারার আগে আমার তাদের দরকার নেই এবং আমার পরিবর্তে একটি সুইচ ব্যবহার করা দরকার।
নীচে আপনি আমার ব্যবহৃত সমস্ত কিছুর ছবি দেখতে পাবেন:
ধাপ 2: নিওপিক্সেল রিং

নিওপিক্সেল রিংয়ের পিছনে সাদা তারটি মাটির সাথে সংযুক্ত।
কমলা তার 5V এর সাথে সংযুক্ত।
আর বাদামী তারের সাথে যুক্ত হয় ডাটা ইনপুট
ধাপ 3: সংযোগ


প্রোটোটাইপ করার সময় আমার ব্রেডবোর্ডটি দেখতে কেমন ছিল, আপনি এটি একটি রেফারেন্স হিসাবে ব্যবহার করতে পারেন।
আমি কেবল একটি বোতামের সাহায্যে এটি দেখতে কেমন তারের একটি বিন্যাস তৈরি করেছি।
ধাপ 4: কোড:
এটি সম্ভবত সবচেয়ে কার্যকর কোড নয়, তবে এটি আমার জন্য কাজ করে। নিজেকে চ্যালেঞ্জ করুন এবং এটিকে আরও দক্ষ করার চেষ্টা করুন; পি
#অন্তর্ভুক্ত
// যা
Arduino এর পিনটি NeoPixels- এর সাথে সংযুক্ত?
#সংজ্ঞায়িত করুন
পিন 6
// যা
আরডুইনোতে পিনটি বোতামের সাথে সংযুক্ত
#সংজ্ঞায়িত করুন
BUTTON_PIN 9
// কিভাবে
অনেক NeoPixels Arduino এর সাথে সংযুক্ত?
#সংজ্ঞায়িত করুন
সংখ্যা 16
// কখন
আমরা নিওপিক্সেল লাইব্রেরি সেটআপ করি, আমরা বলি কত পিক্সেল, এবং কোন পিন সিগন্যাল পাঠাতে ব্যবহার করতে হবে।
// বিঃদ্রঃ
পুরোনো নিওপিক্সেল স্ট্রিপের জন্য আপনাকে তৃতীয় প্যারামিটার পরিবর্তন করতে হতে পারে-স্ট্র্যান্ডটেস্ট দেখুন
//
সম্ভাব্য মান সম্পর্কে আরও তথ্যের জন্য উদাহরণ।
Adafruit_NeoPixel
পিক্সেল = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
বিরতি
= 1; // বিলম্ব 2
int
বিরতি 2 = 80; // যখন fsr ব্যবহার করা হচ্ছে তখন নিচে যাচ্ছে
int
বিরতি 3 = 150; // যখন fsr ব্যবহার করা হচ্ছে
int
বিলম্ব = 4; // বিলম্ব 1
int
fsrPin = 0; // এফএসআর এবং 10 কে পুলডাউন a0 এর সাথে সংযুক্ত
int
fsrReading;
অকার্যকর
সেটআপ () {
pinMode (BUTTON_PIN, INPUT);
Serial.begin (9600);
পিক্সেল শুরু (); // এটি শুরু করে
নিওপিক্সেল লাইব্রেরি।
পিক্সেল শো ();
}
বুল
buttonpressed (int pin) {
ডিজিটাল রিড ফিরিয়ে দিন (পিন);
}
শূন্য
লুপ () {// পিন ইনপুট সত্য বা মিথ্যা কিনা তা পড়ে
fsrReading = analogRead (fsrPin);
সিরিয়াল.প্রিন্ট ("এনালগ পড়া =");
সিরিয়াল.প্রিন্ট (fsrReading);
যদি (বাটনপ্রেসড (BUTTON_PIN) == সত্য) {
// এফএসআর সেন্সর ব্যবহার করার সময় হালকা প্রভাব
যদি (fsrReading> 50) {
pixels.setPixelColor (0, 1, 0, 1);
pixels.setPixelColor (15, 1, 0, 1);
pixels.setPixelColor (1, 1, 0, 1);
pixels.setPixelColor (14, 1, 0, 1);
পিক্সেল শো ();
বিলম্ব (বিরতি 3);
}
যদি (fsrReading <52) {
pixels.setPixelColor (0, 0, 0, 0);
pixels.setPixelColor (15, 0, 0, 0);
pixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
পিক্সেল শো ();
বিলম্ব (বিরতি 2);
}
যদি (fsrReading> 57) {
pixels.setPixelColor (2, 1, 0, 1);
pixels.setPixelColor (13, 1, 0, 1);
pixels.setPixelColor (3, 1, 0, 1);
pixels.setPixelColor (12, 1, 0, 1);
পিক্সেল শো ();
বিলম্ব (বিরতি 3);
}
যদি (fsrReading <59) {
pixels.setPixelColor (2, 0, 0, 0);
pixels.setPixelColor (13, 0, 0, 0);
pixels.setPixelColor (3, 0, 0, 0);
pixels.setPixelColor (12, 0, 0, 0);
পিক্সেল শো ();
বিলম্ব (বিরতি 2);
}
যদি (fsrReading> 65) {
pixels.setPixelColor (4, 1, 0, 1);
pixels.setPixelColor (11, 1, 0, 1);
pixels.setPixelColor (5, 1, 0, 1);
pixels.setPixelColor (10, 1, 0, 1);
পিক্সেল শো ();
বিলম্ব (বিরতি 3);
}
যদি (fsrReading <67) {
pixels.setPixelColor (4, 0, 0, 0);
pixels.setPixelColor (11, 0, 0, 0);
pixels.setPixelColor (5, 0, 0, 0);
pixels.setPixelColor (10, 0, 0, 0);
পিক্সেল শো ();
বিলম্ব (40);
}
যদি (fsrReading> 79) {
pixels.setPixelColor (6, 1, 0, 1);
pixels.setPixelColor (9, 1, 0, 1);
pixels.setPixelColor (7, 1, 0, 1);
pixels.setPixelColor (8, 1, 0, 1);
পিক্সেল শো ();
বিলম্ব (বিরতি 3);
}
যদি (fsrReading <85) {
pixels.setPixelColor (6, 0, 0, 0);
pixels.setPixelColor (9, 0, 0, 0);
pixels.setPixelColor (7, 0, 0, 0);
pixels.setPixelColor (8, 0, 0, 0);
পিক্সেল শো ();
বিলম্ব (20);
}
}
অন্য {
breathe_blue (20, 100, 0, 1, 1); // স্বাভাবিক
প্রভাব
}
}
// বিরতি
= পরিবর্তনের মধ্যে বিলম্ব
// ধাপ
= ধাপের সংখ্যা
// আর জি, B = ফুল-অন RGB মান
// De void breathe is voor het licht effect als de
fsrsensor niet gebruikt wordt। Deze void wordt in de void loop () weer aangeroepen।
অকার্যকর breathe_blue (int বিরতি, int পদক্ষেপ, বাইট R, বাইট G, বাইট বি) {
int
tmpR, tmpG, tmpB; // অস্থায়ী মান
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমিpixels.setPixelColor (0, tmpR, tmpG+1, tmpB);
pixels.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
পিক্সেল শো ();
বিলম্ব (4);
}
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমিpixels.setPixelColor (1, tmpR, tmpG+1, tmpB);pixels.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
পিক্সেল শো ();
বিলম্ব (4);
}
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমিpixels.setPixelColor (2, tmpR, tmpG+2, tmpB);pixels.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
পিক্সেল শো ();
বিলম্ব (3.5);
}
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমিpixels.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
পিক্সেল শো ();
বিলম্ব (3);
}
জন্য (int i = 0;
আমিpixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);
}
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমি
pixels.setPixelColor (4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
পিক্সেল শো ();
বিলম্ব (3);
}
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমিpixels.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
পিক্সেল শো ();
বিলম্ব (2);
}
জন্য (int i = 0;
আমিpixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
}
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমিpixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
pixels.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
পিক্সেল শো ();
বিলম্ব (বিলম্ব);
}
জন্য (int i = 0;
আমিpixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);
}
// বিরক্ত
জন্য (int s = 1; s <= পদক্ষেপ; s ++) {
tmpR = (R * s) /
পদক্ষেপ; // কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0;
আমি
pixels.setPixelColor (7, tmpR, tmpG, tmpB+44);pixels.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
পিক্সেল শো ();
বিলম্ব (বিলম্ব);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; // ছেদন এড়াতে প্রথমে গুণ করুন
ত্রুটি
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (7, tmpR, tmpG, tmpB);
pixels.setPixelColor (8, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (1);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; // ছেদন এড়াতে প্রথমে গুণ করুন
ত্রুটি
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (6, tmpR, tmpG, tmpB);
pixels.setPixelColor (9, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (1);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; // ছেদন এড়াতে প্রথমে গুণ করুন
ত্রুটি
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (5, tmpR, tmpG, tmpB);
pixels.setPixelColor (10, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (2);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; // ছেদন এড়াতে প্রথমে গুণ করুন
ত্রুটি
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (4, tmpR, tmpG, tmpB);
pixels.setPixelColor (11, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (2);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; // ছেদন এড়াতে প্রথমে গুণ করুন
ত্রুটি
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (3, tmpR, tmpG, tmpB);
pixels.setPixelColor (12, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (3);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; //
কাটার ত্রুটি এড়াতে প্রথমে গুণ করুন
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (2, tmpR, tmpG, tmpB);
pixels.setPixelColor (13, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (3);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; // ছেদন এড়াতে প্রথমে গুণ করুন
ত্রুটি
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (1, tmpR, tmpG, tmpB);
pixels.setPixelColor (14, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (4);
}
// ফেইড ডাউন
জন্য (int s = পদক্ষেপ; s> 0; s--) {
tmpR = (R * s) / ধাপ; // ছেদন এড়াতে প্রথমে গুণ করুন
ত্রুটি
tmpG = (G * s) / ধাপ;
tmpB = (B * s) / ধাপ;
জন্য (int i = 0; i
pixels.setPixelColor (0, tmpR, tmpG, tmpB);
pixels.setPixelColor (15, tmpR, tmpG, tmpB);
}
পিক্সেল শো ();
বিলম্ব (4);
}
}
ধাপ 5: সবকিছু একত্রিত করা:

আপনি কেবল আপনার ব্রেডবোর্ড বা পিভিসির সাথে সংযুক্ত সমস্ত তারগুলি ছেড়ে দিতে পারেন, এটি আপনার উপর নির্ভর করে (আমি আরডুইনোর উপরে একটি পিভিসি লাগানো বেছে নিয়েছি এটি সুন্দর এবং ঝরঝরে সেভাবে)।
পরবর্তী ধাপ হল সমস্ত তারের চারপাশে তাপ সঙ্কুচিত টিউবগুলি স্থাপন করা যাতে এটি বিশৃঙ্খলা কম হয়।
যদি আপনি একটি পিভিসি ব্যবহার করতে বেছে নেন তাহলে আপনার এখনই সবকিছু একসাথে বিক্রি করা উচিত ছিল।
তারপরে আপনি চশমার বাইরের দিকে নিওপিক্সেল রিংগুলি রাখুন (নিশ্চিত করুন যে লেডগুলি নীচে সংযুক্ত রয়েছে) এবং সেগুলি কিছু টেপ বা আঠালো দিয়ে সুরক্ষিত করুন (আমি টেপ ব্যবহার করেছি)।
আপনি কিছু টেপ দিয়ে ইলাস্টিক ব্যান্ডে এফএসআর-সেন্সর আটকে রাখতে পারেন বা এটি নিজের উপর ছেড়ে দিতে পারেন।
আপনার চশমা উপভোগ করুন:)
প্রস্তাবিত:
DIY FPV গগলস: 6 টি ধাপ

DIY FPV গগলস: কখনো দেখেছি সেই coooooooooostly fpv সিস্টেমগুলো ফ্লাইটটেস্টের ছেলেদের আছে। ঠিক আছে, আমি তাদের এইরকম দুর্দান্ত জিনিস থাকার জন্য enর্ষা করলাম। আমি মোবাইল ফোনের পরিসীমা এবং ভিডিও কল বা স্কাইপ বা এর মতো কিছু সম্পর্কে জানতাম। তাই আমি আমার পাওনা করার সিদ্ধান্ত নিয়েছি
গুগল কার্ডবোর্ডের জন্য নাইট ভিশন গগলস: 10 টি ধাপ (ছবি সহ)

গুগল কার্ডবোর্ডের জন্য নাইট ভিশন গগলস: অস্বীকৃতি: এই ডিভাইসের ব্যবহার শুধুমাত্র বিনোদন, শিক্ষা এবং বৈজ্ঞানিক ব্যবহারের জন্য; গুপ্তচরবৃত্তি এবং/অথবা নজরদারির জন্য নয়। &Quot; স্পাই গ্যাজেট " বৈশিষ্ট্যগুলি কেবল মজা করার জন্য অ্যাপটিতে যুক্ত করা হয়েছিল এবং এর জন্য কোনও ব্যবহারিক উদ্দেশ্য হবে না
DIY - RGB গগলস: 3 ধাপ (ছবি সহ)

DIY | আরজিবি গগলস: আরে! আমি WS2812B LEDs এবং Arduino Nano ব্যবহার করে একটি RGB গগলস তৈরি করেছি। গগলসের অনেক অ্যানিমেশন আছে যা একটি মোবাইল অ্যাপ ব্যবহার করে নিয়ন্ত্রণ করা যায়। অ্যাপটি ব্লুটুথ মডিউলের মাধ্যমে arduino এর সাথে যোগাযোগ করতে পারে
চোখের পলক নিয়ন্ত্রিত আলো সুইচ আইজাওয়া এর ইরেজার হেড গগলস ব্যবহার করে (আমার হিরো একাডেমিয়া): 8 টি ধাপ (ছবি সহ)

শোটা আইজাওয়ার ইরেজার হেড গগলস (মাই হিরো একাডেমিয়া) ব্যবহার করে চোখের পলক নিয়ন্ত্রিত লাইট সুইচ: আপনি যদি আমার হিরো একাডেমিয়া মাঙ্গা পড়েন বা আমার হিরো একাডেমিয়া এনিমে দেখেন তবে আপনাকে অবশ্যই শোটা আইজাওয়া নামের একটি চরিত্র জানতে হবে। শোটা আইজাওয়া ইরেজার হেড নামেও পরিচিত, একজন প্রো হিরো এবং ইউএ'র ক্লাস 1-এ এর হোমরুম শিক্ষক। Shota's Quirk তাকে ab দেয়
DIY রাস্পবেরি পাই ভিআর গগলস: 9 টি ধাপ (ছবি সহ)

DIY রাস্পবেরি পাই ভিআর গগলস: অস্বীকৃতি! রাস্পবেরি পাই জিরো খুব শক্তিশালী কম্পিউটার নয় এই কারণে, এটি অত্যন্ত কম (10 fps এর কম) এর ফ্রেম রেট যা আপনার চোখের জন্য ক্ষতিকর হতে পারে। এই ভিআর গগলগুলি রাস্পবেরি পাই জিরো ব্যবহার করে তৈরি করা হয়েছে যা তাদের একটি