সুচিপত্র:

কাস্টম কিচেন সাউন্ড আইডেন্টিফায়ার: 4 টি ধাপ
কাস্টম কিচেন সাউন্ড আইডেন্টিফায়ার: 4 টি ধাপ

ভিডিও: কাস্টম কিচেন সাউন্ড আইডেন্টিফায়ার: 4 টি ধাপ

ভিডিও: কাস্টম কিচেন সাউন্ড আইডেন্টিফায়ার: 4 টি ধাপ
ভিডিও: পুরাতন জাহাজের অরিজিনাল সাউন্ড সিস্টেম। এম, স্পিকার, সাবোওফার, হোম থিয়েটার। ship breaking market 2024, নভেম্বর
Anonim
Image
Image
কাস্টম কিচেন সাউন্ড আইডেন্টিফায়ার
কাস্টম কিচেন সাউন্ড আইডেন্টিফায়ার

এই বসন্তে একটি ইন্টারেক্টিভ সিস্টেম কোর্সে আমাদের চূড়ান্ত প্রকল্পের জন্য, আমরা সাপোর্ট-ভেক্টর মেশিনের শ্রেণীবিভাগ ব্যবহার করে রান্নাঘরে সাধারণ শব্দ শনাক্ত এবং দৃশ্যমান করার জন্য একটি রিয়েল-টাইম সিস্টেম তৈরি করেছি। সিস্টেমটি অডিও স্যাম্পলিং/শ্রেণিবিন্যাসের জন্য একটি ল্যাপটপ এবং ভিজ্যুয়ালাইজেশনের জন্য একটি Arduino/dot ম্যাট্রিক্স ডিসপ্লে নিয়ে গঠিত। আপনার নিজের রান্নাঘর থেকে শব্দের জন্য এই সিস্টেমের আপনার নিজস্ব সংস্করণ তৈরির জন্য নিম্নলিখিত একটি নির্দেশিকা।

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

এই প্রকল্পের জন্য একটি গিটহাব সংগ্রহস্থল এখানে পাওয়া যাবে।

সরবরাহ

  • হেডারের সাথে Arduino Leonardo মাইক্রোকন্ট্রোলার
  • Arduino এর জন্য KEYESTUDIO 16x16 ডট ম্যাট্রিক্স LED ডিসপ্লে
  • ব্রেডবোর্ড জাম্পার তার
  • মাইক্রো-ইউএসবি থেকে ইউএসবি 2.0 তারের
  • জুপিটার নোটবুক সহ একটি ল্যাপটপ (অ্যানাকোন্ডা ইনস্টলেশন)

    জুপিটার নোটবুকের একটি শিক্ষানবিশ গাইড এখানে পাওয়া যাবে।

  • সিস্টেমের আবাসনের জন্য যথেষ্ট পরিমাণে অসঙ্গতিপূর্ণ লেগো ইট

    (কিন্তু সত্যিই আপনি যে কোন DIY বিল্ডিং সামগ্রী দিয়ে আপনার পছন্দ করতে পারেন!)

ধাপ 1: রান্নাঘরের শব্দ নমুনা সংগ্রহ করা

রান্নাঘরের শব্দ নমুনা সংগ্রহ করা
রান্নাঘরের শব্দ নমুনা সংগ্রহ করা

উপরের চিত্র: এই সংগ্রহ প্রক্রিয়াটি ব্যবহার করে কাঁটাচামচ এবং ছুরির ক্লিংকিং রেকর্ড করা থেকে নেওয়া অডিও ডেটা।

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

ধাপ ১.১: CollectSamples.ipynb নোটবুকটি আপনার কাজের জুপিটার নোটবুক ডিরেক্টরিতে অনুলিপি করুন এবং এটি খুলুন।

ধাপ 1.2: শিরোনামে আমরা যে নোটগুলি দিয়েছি তার প্রতি মনোযোগ দিয়ে প্রতিটি সেল একে একে চালান। যখন আপনি "নমুনা রেকর্ডিং" শিরোনামে পৌঁছান তখন থামুন।

দ্রষ্টব্য: এই নোটবুকে বেশ কয়েকটি পাইথন লাইব্রেরি ব্যবহার করা হয়েছে এবং প্রকল্পে সফলভাবে আমদানি করার আগে প্রত্যেকটির ইনস্টলেশন প্রয়োজন। ম্যানুয়ালি এটি করার জন্য আপনাকে স্বাগতম

ধাপ ১.:: এই প্রকল্পের জন্য আপনার কাজের নির্দেশিকার মধ্যে আপনার নমুনা সংরক্ষণ করার জন্য একটি খালি ডিরেক্টরি তৈরি করুন।

ধাপ ১.4: আপনার খালি ডাইরেক্টরির লোকেশন মেলাতে "নমুনা রেকর্ডিং" ঘরে SAMPLES_LOCATION ভেরিয়েবল সম্পাদনা করুন।

ধাপ 1.5: SOUND_LABELS ভেরিয়েবলে যত খুশি শব্দ যোগ করুন বা অপসারণ করুন।

নমুনা রেকর্ডিং কোড কাজ করার জন্য, এই পরিবর্তনশীল প্রতিটি লাইন একটি কমা এবং নিম্নলিখিত ফর্ম দ্বারা পৃথক করা আবশ্যক:

'ts': সাউন্ড ("TargetedSound", "ts")

ধাপ 1.6: যখন সমস্ত লেবেল যুক্ত করা হয়েছে, নমুনা সংগ্রহ প্রক্রিয়া শুরু করার সাথে "নমুনা রেকর্ডিং" কক্ষটি মূল্যায়ন করুন। ঘরের আউটপুটে, আপনাকে লেবেলে প্রতিটি শব্দের সাথে যুক্ত শর্ট কোডটি ইনপুট করতে বলা হবে (যেমন, টার্গেটেড সাউন্ডের জন্য "ts")। এটা এখনো করো না।

ধাপ 1.7: আপনার ল্যাপটপটি রান্নাঘরে নিয়ে যান এবং এটিকে এমন জায়গায় রাখুন যেখানে আপনি সমাপ্ত সিস্টেমটি স্থাপন করতে পারেন। এই জায়গাটি ভাল অডিও সংগ্রহের জন্য কেন্দ্রীয় হওয়া উচিত, এবং আপনার ইলেকট্রনিক্সের সুরক্ষার জন্য যেকোনো সম্ভাব্য ছিটকে শুকনো এবং দূরে থাকা উচিত।

ধাপ 1.8: আপনার প্রথম লক্ষ্যযুক্ত শব্দ প্রস্তুত করুন। যদি এটি একটি ওভেন টাইমার বীপ হয়, তাহলে আপনি টাইমারটি এক মিনিটে সেট করতে পারেন এবং পরবর্তী ধাপে যাওয়ার আগে এটি 20 সেকেন্ড বা তারও কম পর্যন্ত অপেক্ষা করতে পারেন।

ধাপ 1.9: প্রম্পটে লেবেল কোড টাইপ করুন (যেমন, "ts"), এবং এন্টার/রিটার্ন টিপুন।

সিস্টেমটি ঘরের পরিবেষ্টিত আওয়াজের থেকে আলাদা একটি শব্দ অনুষ্ঠান শুনতে শুরু করবে। এই সাউন্ড ইভেন্টটি অনুধাবন করার পরে, এটি রেকর্ড করা শুরু করবে যতক্ষণ না এটি রুমে শব্দ অনুভব করে পরিবেষ্টিত স্তরে ফিরে আসে। এটি তখন 16-বিট WAV ফাইল হিসেবে SAMPLES_LOCATION এ চিহ্নিত ফর্ম্যাটে অডিও সংরক্ষণ করবে:

TargetedSound _#_ capture.wav

এই ফাইলের নামের # অংশ আপনার সংগৃহীত লক্ষ্যযুক্ত শব্দের নমুনার সংখ্যার সাথে মিলে যায়। WAV ফাইলটি সংরক্ষণ করার পরে, প্রম্পটটি পুনরাবৃত্তি হবে, যার ফলে আপনি একই শব্দের একাধিক নমুনা সংগ্রহ করতে পারবেন।

এই ফাইলের নাম পরিবর্তন করবেন না। পরবর্তী ধাপের জন্য এটি গুরুত্বপূর্ণ।

ধাপ 1.10: 1.8 এবং 1.9 ধাপ পুনরাবৃত্তি করুন যতক্ষণ না আপনি প্রতিটি শব্দের 5-10 নমুনা সংগ্রহ করেন।

ধাপ 1.11: এক্সিকিউশন থেকে বেরিয়ে আসার জন্য "x" ইনপুট করুন।

সতর্কতা: এভাবে সেল ছাড়তে ব্যর্থ হলে নোটবুক ক্র্যাশ হতে পারে। এই ক্ষেত্রে, নোটবুক কার্নেল অবশ্যই রিসেট করতে হবে এবং প্রতিটি সেল আবার উপরে থেকে চালানো হবে।

ধাপ ১.১১ (ptionচ্ছিক): "কুইক সাউন্ড ভিজ্যুয়ালাইজেশন" সেলে পৃথক ফাইলের WAV ডেটা পরীক্ষা করে নিশ্চিত করুন যে আপনি সমস্ত কাঙ্ক্ষিত তথ্য ক্যাপচার করেছেন।

কিছু টিপস:

  • যখন আপনার রান্নাঘর শান্ত থাকে তখন রেকর্ড করুন।
  • একবারে মাত্র একটি শব্দ রেকর্ড করুন। সিস্টেম শব্দগুলির মধ্যে ওভারল্যাপকে আলাদা করতে পারে না।
  • প্রতিটি সাউন্ড ট্রায়াল যতটা সম্ভব সামঞ্জস্যপূর্ণ করার চেষ্টা করুন। এটি সনাক্তকরণের যথার্থতাকে সাহায্য করবে।
  • রেকর্ডিং সেলের পুনরায় মূল্যায়ন করা ফাইলের নামের # মানটি পুনরায় সেট করবে এবং যে কোনও বিদ্যমান ফাইলকে ওভাররাইট করবে যা # এর সাথে মেলে। আমরা একসাথে একটি শব্দের সমস্ত নমুনা রেকর্ড করা সবচেয়ে সহজ বলে মনে করেছি, তারপর রেকর্ডিং সেল বন্ধ করুন।
  • যদি সিস্টেম আপনার টার্গেটেড সাউন্ড বাছাই না করে থাকে, তাহলে THRESHOLD ভ্যালু (শুরুতে 30 এ সেট) কমানোর চেষ্টা করুন এবং সেলটির পুনর্মূল্যায়ন করুন।
  • যদি রেকর্ডিং টার্গেটেড শব্দের বাইরে অন্যান্য শব্দ দ্বারা ট্রিগার করা হয়, তাহলে THRESHOLD মান (শুরুতে 30 এ সেট) বাড়ানোর চেষ্টা করুন এবং সেলটির পুনর্মূল্যায়ন করুন।

ধাপ 2: আরডুইনো/ম্যাট্রিক্স ডিসপ্লে প্রস্তুত করা

আরডুইনো/ম্যাট্রিক্স ডিসপ্লে প্রস্তুত করা হচ্ছে
আরডুইনো/ম্যাট্রিক্স ডিসপ্লে প্রস্তুত করা হচ্ছে
আরডুইনো/ম্যাট্রিক্স ডিসপ্লে প্রস্তুত করা হচ্ছে
আরডুইনো/ম্যাট্রিক্স ডিসপ্লে প্রস্তুত করা হচ্ছে
আরডুইনো/ম্যাট্রিক্স ডিসপ্লে প্রস্তুত করা হচ্ছে
আরডুইনো/ম্যাট্রিক্স ডিসপ্লে প্রস্তুত করা হচ্ছে

পরবর্তী, আমরা একটি Arduino Leonardo এবং KEYESTUDIO 16x16 LED ডট ম্যাট্রিক্স ডিসপ্লে ব্যবহার করে ভিজ্যুয়ালাইজেশন সিস্টেম সেট আপ করতে যাচ্ছি। এটি সনাক্ত করা শব্দের শ্রেণীবিভাগ মডেলের পূর্বাভাসকে আউটপুট করা। আগের মতো, আমরা এখানে এবং প্রকল্পের গিটহাব সংগ্রহস্থলে সমস্ত প্রয়োজনীয় ফাইল সরবরাহ করেছি।

ধাপ 2.1: উপরের চিত্র অনুসারে Arduino এবং LED ম্যাট্রিক্সের তারের। KEYESTUDIO তার ডট ম্যাট্রিক্সের সাথে সংযোগ করার জন্য তারের অন্তর্ভুক্ত করে, কিন্তু এই তারগুলিকে Arduino এর সাথে সংযুক্ত করার জন্য ব্রেডবোর্ড জাম্পার তারের প্রয়োজন হবে।

ধাপ ২.২: Ardunio IDE ব্যবহার করে "arduino_listener.ino" খুলুন এবং লিওনার্দোতে আপলোড করুন। যদি সঠিকভাবে ওয়্যার্ড করা হয়, তাহলে উপরের ছবিতে দেখানো হিসাবে আপনার "শ্রবণ" আইকন (ওয়াই-ফাই এর মত দেখতে) দেখতে হবে।

ধাপ 2.3: আপনার প্রতিটি লক্ষ্যযুক্ত শব্দের জন্য আপনি যে আইকনগুলি প্রদর্শন করতে চান তা প্রস্তুত করুন। কোন এলইডি জ্বালাতে হবে তা জানতে, আইকনটি আরডুইনো থেকে ম্যাট্রিক্সে একটি বাইট অ্যারে হিসাবে পাঠাতে হবে। উদাহরণস্বরূপ, আমাদের কফি কাপ আইকন (উপরের ছবিতে) এই ফরম্যাটে ম্যাট্রিক্সে পাঠানো হয়েছে:

{

0xff, 0xff, 0xff, 0xff, 0xfc, 0xfb, 0xbb, 0x5b, 0xeb, 0xfb, 0xfb, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf7, 0xfb, 0xfb, 0xfb, 0xfb, 0xf7, 0x0f, 0xdf, 0x1f, 0xff, 0xff};

আমরা ড্রপডাউন মেনু থেকে নির্বাচিত 16 টি কলাম, 16 টি সারি এবং "একরঙা, 8 পিক্সেল প্রতি বাইট, উল্লম্ব সেটিং" সহ ডট 2 পিক অনলাইন টুল ব্যবহার করে আমাদের আইকনগুলি আঁকলাম। আমাদের "sample_icon_bytes.txt" অ্যারেতে পাওয়া যাবে।

দ্রষ্টব্য: অনলাইন সরঞ্জামগুলিও থাকতে পারে যা আপলোড করা ফাইলগুলির সাথে এটি স্বয়ংক্রিয়ভাবে করতে পারে।

ধাপ 2.4: প্রতিটি আইকন আঁকুন। অঙ্কন শেষ হলে, "অ্যারে রূপান্তর করুন" নির্বাচন করুন।

ধাপ 2.5: পছন্দসই হিসাবে "arduino_listening.ino" কোডের উপরে সংজ্ঞায়িত অপ্রয়োজনীয় আইকনগুলি প্রতিস্থাপন করুন। আইকন বর্ণনা করে একটি মন্তব্য যোগ করতে ভুলবেন না যাতে আপনি মনে রাখবেন কোনটি!

ধাপ 2.6: Arduino এ নতুন কোড আপলোড করুন। ফাইলটি এখনও বন্ধ করবেন না, পরবর্তী ধাপের জন্য আমাদের এটি প্রয়োজন হবে।

ধাপ 3: ক্লাসিফায়ার চালানো এবং শব্দ সনাক্তকরণ

ক্লাসিফায়ার চালানো এবং শব্দ সনাক্ত করা
ক্লাসিফায়ার চালানো এবং শব্দ সনাক্ত করা
ক্লাসিফায়ার চালানো এবং শব্দ সনাক্ত করা
ক্লাসিফায়ার চালানো এবং শব্দ সনাক্ত করা

এখন সময় এসেছে সিস্টেমকে একত্রিত করার। শ্রেণিবিন্যাস পাইপলাইন, আরডুইনো যোগাযোগ, এবং লাইভ অডিও ক্যাপচার সবই একটি একক আরডুইনো নোটবুকের মাধ্যমে করা হয়, যা এখানে প্রদান করা হয়েছে বা আমাদের প্রকল্পের গিটহাব সংগ্রহস্থলের মাধ্যমে অ্যাক্সেস করা যেতে পারে।

ধাপ 1.১: FullPipeline.ipynb নোটবুকটি আপনার কার্যকরী Jupyter নোটবুক ডিরেক্টরিতে অনুলিপি করুন এবং এটি খুলুন।

ধাপ 2.২: শিরোনামে আমরা যে নোটগুলি দিয়েছি তার প্রতি মনোযোগ দিয়ে প্রতিটি সেল একে একে চালান। কোন আউটপুট আশা করা হয়। "লোড দ্য ট্রেনিং ডেটা" শিরোনামের ঘরে পৌঁছানোর পর থামুন।

ধাপ 3.:: "লোড দ্য ট্রেনিং ডেটা" সেলের SAMPLES_LOCATION_ROOT ভেরিয়েবলটি আপনার আগের নমুনা ডিরেক্টরির অবস্থানের মূল ডিরেক্টরিতে সম্পাদনা করুন। তারপরে, SAMPLES_DIR_NAME ভেরিয়েবলটি আপনার ডিরেক্টরির নামে পরিবর্তন করুন। সুতরাং যদি আপনি CollectSamples.ipynb- এ অবস্থান সেট করে থাকেন:

SAMPLES_LOCATION = "/Users/xxxx/Documents/KitchenSoundClassifier/MySamples/NewDir"

আপনি এখন এই ভেরিয়েবলগুলি সেট করবেন:

SAMPLES_LOCATION_ROOT = "/Users/xxxx/Documents/KitchenSoundClassifier/MySamples/" SAMPLES_DIR_NAME = "NewDir"

আমরা ভুলের ক্ষেত্রে ক্লাসিফায়ারে দ্রুত পরিবর্তনের অনুমতি দিয়েছি। আপনি আপনার ডেটা টিউন করতে বিভিন্ন নমুনা সংগ্রহের মধ্যে পরিবর্তন করতে পারেন।

ধাপ 3.4: ঘরের মূল্যায়ন করুন। আপনার প্রতিটি সংগ্রহ সফলভাবে লোড হওয়া উচিত।

ধাপ 3.5: শিরোনামে আমরা যে নোটগুলি দিয়েছি তার প্রতি মনোযোগ দিয়ে প্রতিটি সেল একে একে চালানো চালিয়ে যান।

ধাপ 6.:: যখন আপনি "মেসেজিং আরডুইনো" সেলে পৌঁছান তখন থামুন। PORT_DEF ভেরিয়েবলে Arduino- এর সাথে যোগাযোগের জন্য আপনার কম্পিউটার যে সিরিয়াল পোর্ট ব্যবহার করবে তা সংজ্ঞায়িত করুন। এটি Arduino IDE তে পাওয়া যাবে এবং সরঞ্জাম> পোর্টে যাওয়া যাবে।

আরো তথ্য পাওয়া যাবে এখানে।

ধাপ 3.8: আপনার Arduino IDE পুনরায় খুলুন। যেসব স্থানে আপনি আইকনগুলিতে পরিবর্তন করেছেন সেখানে অ্যারের মানটির পাশে অক্ষরের একটি নোট তৈরি করুন, কিন্তু এটি পরিবর্তন করবেন না। নীচের উদাহরণে, এটি "ছ"।

// আবর্জনা নিষ্পত্তি স্বাক্ষর না করা চর g [1] [32] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf7, 0xf7, 0xfb, 0xff, 0xfe, 0xfd, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x27, 0xc3, 0x03, 0xc3, 0x27, 0x2f, 0xff, 0xef, 0xdf, 0xbf, 0xff, 0xff,};

ধাপ 7.:: (নোটবুকের "মেসেজিং আরডুইনো" কক্ষে ফিরে যাওয়া) স্ব -সাউন্ড ডিকশনারিতে লেবেলগুলি পরিবর্তন করুন যাতে আপনার নমুনা রেকর্ড করার সময় আপনি যে লেবেলগুলি ব্যবহার করেন তার সাথে মেলে, নিশ্চিত করুন যে প্রতিটি লেবেল আপনার পূর্বে উল্লিখিত একক অক্ষরের সাথে মিলে যায় পদক্ষেপ "রেকর্ডিং" এবং "শোনা" উভয়ই মূল সিস্টেম কার্যকারিতার অংশ এবং এটি পরিবর্তন করা উচিত নয়। দ্বিতীয় অক্ষরটি পরিবর্তন করবেন না যতক্ষণ না আপনি Arduino কোডে কিছু অতিরিক্ত পরিবর্তন করার ব্যাপারে আত্মবিশ্বাসী বোধ করেন, কারণ এটি অন্যথায় Arduino/ম্যাট্রিক্সের সাথে যোগাযোগ বিঘ্নিত করবে।

ধাপ 3.8: প্রধান ফাংশন চালান! কোডটি প্রশিক্ষণের তথ্য সংগ্রহ করবে, এর মূল বৈশিষ্ট্যগুলি বের করবে, তাদের পাইপলাইনে খাওয়াবে, একটি শ্রেণিবিন্যাস মডেল তৈরি করবে, তারপর সাউন্ড ইভেন্টগুলি শোনা শুরু করবে। যখন এটি একটি অনুভূতি, আপনি একটি রেকর্ডিং প্রতীক ম্যাট্রিক্স পরিবর্তন দেখতে পাবেন (ভিতরে বৃত্ত সঙ্গে বর্গক্ষেত্র) এবং এটি এই ডেটা সেগমেন্ট এবং এটি মডেল ফিড হবে। মডেলের ভবিষ্যদ্বাণী যাই হোক না কেন ম্যাট্রিক্স ডিসপ্লেতে কয়েক সেকেন্ড পরে প্রদর্শিত হবে।

আপনি নীচের ঘরের আউটপুট অনুসরণ করতে পারেন। দেখুন আপনি এটি কতটা সঠিকভাবে পেতে পারেন!

ধাপ 4: একটি লেগো হাউজিং তৈরি করা

একটি লেগো হাউজিং তৈরি করা
একটি লেগো হাউজিং তৈরি করা
একটি লেগো হাউজিং তৈরি করা
একটি লেগো হাউজিং তৈরি করা
একটি লেগো হাউজিং তৈরি করা
একটি লেগো হাউজিং তৈরি করা

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

আমাদের ছবিগুলিকে আপনার রান্নাঘরের অনন্য আপনার নিজস্ব সৃজনশীল আবাসনের জন্য অনুপ্রেরণা হিসাবে কাজ করার অনুমতি দিন। আমরা একটি ফাঁপা ক্ষেত্রে Arduino এবং তারের সংখ্যাগরিষ্ঠ স্থাপন, তারপর overhangs সঙ্গে উপরে ম্যাট্রিক্স প্রদর্শন সুরক্ষিত। আমরা ডিসপ্লের উপর কিছুটা কাগজ যোগ করেছি যাতে আলোকে কিছুটা বিচ্ছুরিত করতে পারি যা আমরা অনুভব করেছি যে আইকনগুলি আরও পরিষ্কার হয়েছে।

প্রস্তাবিত: