একটি ইলেকট্রিক স্পিরিট লেভেল তৈরি করুন: ১৫ টি ধাপ
একটি ইলেকট্রিক স্পিরিট লেভেল তৈরি করুন: ১৫ টি ধাপ
Anonim
একটি ইলেকট্রিক স্পিরিট লেভেল তৈরি করুন
একটি ইলেকট্রিক স্পিরিট লেভেল তৈরি করুন

এই স্পিরিট লেভেলটি দ্রুত এবং সহজেই সংযুক্ত যেকোনো বস্তুর কাত প্রদর্শন করতে ব্যবহার করুন!

রait্যাফেলস ইনস্টিটিউশন থেকে ক্যাটলিন তৈরি করেছেন।

ধাপ 1: লক্ষ্য

মাইক্রো: বিট এর অন্তর্নির্মিত অ্যাকসিলরোমিটার দিয়ে টিল্ট পড়তে শিখুন।

মাইক্রো: বিটের 5x5 LED ডিসপ্লে দিয়ে কাজ করতে শিখুন!

ধাপ 2: উপকরণ

1 x বিবিসি মাইক্রো: বিট

1 x মাইক্রো ইউএসবি কেবল

2 x AA ব্যাটারী

1 x ডাবল এএ ব্যাটারি প্যাক

ধাপ 3: প্রি কোডিং: আপনার মাইক্রো সংযোগ করুন: বিট

  1. একটি মাইক্রো ইউএসবি কেবল ব্যবহার করে আপনার কম্পিউটারে বিবিসি মাইক্রো: বিট সংযুক্ত করুন।
  2. Makecode.microbit.org এ মাইক্রো: বিটের জন্য জাভাস্ক্রিপ্ট এডিটর অ্যাক্সেস করুন।

ধাপ 4: ধাপ 0: কোড প্রবাহ

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

ইলেকট্রিক স্পিরিট লেভেলের জন্য, প্রতিটি লুপের কোডে আমরা যে ধাপগুলো নেব তা হল:

  • অ্যাকসিলরোমিটার থেকে টিল্ট রিডিং পড়ুন।
  • LED ম্যাট্রিক্সে প্রদর্শিত হতে টিল্ট রিডিংগুলিকে টিল্ট লেভেলে রূপান্তর করুন।
  • পূর্ববর্তী লুপ থেকে টিল্ট লেভেল রিডিংয়ে পরিবর্তন দেখুন।
  • বিভিন্ন টিল্ট কেস এবং দিকনির্দেশের জন্য LED কো -অর্ডিনেটের অ্যারে তৈরি করুন।
  • প্লট এলইডি স্থানাঙ্ক মাইক্রো: বিট এলইডি ম্যাট্রিক্সে।

কিছু অতিরিক্ত ফাংশন আমাদের অন্তর্ভুক্ত করতে হবে:

  • প্রাথমিক কাত অবস্থানের জন্য ক্রমাঙ্কন।
  • ডিফল্ট টিল্ট ক্যালিব্রেশনে ফিরে যাওয়া।

ধাপ 5: ধাপ 1: ভেরিয়েবলের সংজ্ঞা

আমরা দেখানো হিসাবে প্রয়োজনীয় ভেরিয়েবল সংজ্ঞায়িত করে শুরু করি। কয়েকটি ভেরিয়েবলের ভাঙ্গন হল:

  • tiltList: অ্যারে যা 0-4 মান থেকে ক্রমবর্ধমান কাতের পরিমাণ সংরক্ষণ করে [বাম, ডান, ফরওয়ার্ড, ব্যাকওয়ার্ড]
  • টিল্ট বাউন্ডারি: 0 (নো টিল্ট) এবং 1 (সামান্য কাত) এর মধ্যে প্রথম টিল্ট লেভেলের সীমানা
  • prevState: অ্যারে যা মাইক্রোর টিল্ট ভ্যালু সংরক্ষণ করে: আগের লুপ থেকে tiltList- এর মতো একই বিন্যাসে, পুনরাবৃত্তির মধ্যে কাত করার পরিবর্তনের জন্য চেক করতে ব্যবহৃত হয়
  • ledPlotList: প্লট নেতৃত্বের সমন্বয় অ্যারে আকারে (x, y)। একটি অ্যারে সংজ্ঞায়িত করার জন্য, আমরা টাইপ সংখ্যা টাইপ ভেরিয়েবলের নেস্টেড অ্যারে নির্দেশ করতে ব্যবহার করি: সংখ্যা।

ধাপ 6: ধাপ 2: টিল্ট মানগুলিকে স্তরে রূপান্তর করুন

যেহেতু 5x5 LED ম্যাট্রিক্স শুধুমাত্র এত তথ্য প্রদর্শন করতে পারে, প্রকৃত টিল্ট মানগুলি প্রদর্শনের জন্য উপযোগী হবে না।

পরিবর্তে, একটি ফাংশন tiltExtent () প্যারামিটার নেয় num, যা অ্যাকসিলরোমিটার থেকে টিল্ট ভ্যালু বোঝায় এবং এই টিল্ট ভ্যালু (num) কে 0 থেকে 4 পর্যন্ত টিল্ট লেভেলে রূপান্তর করে।

0 প্রদত্ত দিকের কোন কাত নির্দেশ করে এবং 4 খুব বড় কাত নির্দেশ করে, যখন -1 ত্রুটি হলে ফেরত দেওয়া হয়।

এখানে, tiltBoundary এবং tiltSensitivity টিল্ট লেভেলের মধ্যে সীমানা মান হিসেবে ব্যবহৃত হয়।

ধাপ 7: ধাপ 3: টিল্ট লেভেল কম্পাইল করুন

দুটি ফাংশন checkRoll () এবং checkPitch () যথাক্রমে tiltExtent () থেকে tiltList রোল (বাম-ডান) এবং পিচ (ফরওয়ার্ড-ব্যাকওয়ার্ড) অক্ষের জন্য যথাক্রমে লিখুন।

টিল্ট মান ব্যবহার করার আগে, আমরা পরে লিখিত একটি ক্রমাঙ্কন ফাংশন থেকে প্রাপ্ত পিচ (জিরোপিচ) এবং রোল (জিরো রোল) উভয়ের জন্য একটি শূন্য মান ব্যবহার করে তাদের ক্যালিব্রেট করি।

যেহেতু অ্যাকসিলরোমিটার রিডিং বাম এবং ফরওয়ার্ড টিল্ট উভয়ের জন্যই নেতিবাচক, তাই এই দুটি দিকের জন্য প্যারামিটার হিসেবে tiltExtent () ফাংশনে প্রদত্ত নেতিবাচক মানের মডুলাস পেতে আমাদের Math.abs () ফাংশন ব্যবহার করতে হবে।

ধাপ 8: ধাপ 4: LEDPlotList ফাংশন লিখুন

টিল্ট লিস্টে টিল্ট লেভেল অর্জন করার পর আমরা এখন বিভিন্ন ক্ষেত্রে যেগুলি উদ্ভূত হতে পারে তার জন্য নেতৃত্বাধীন প্লটিং ফাংশন লিখতে পারি, যথা

  • plotSingle (): শুধুমাত্র একটি একক দিকে কাত করুন, প্যারামিটার হিসাবে প্রদত্ত দিকের দিকে কাত করার পরিমাণ গ্রহণ করুন।
  • প্লট ডায়াগোনাল (): একই মাত্রার দুটি দিকের দিকে কাত করুন, প্যারামিটার হিসাবে উভয় দিকের দিকে কাতের ব্যাপ্তি নিন।
  • plotUnequal (): বিভিন্ন পরিমাপের দুটি দিকের দিকে কাত করুন, প্যারামিটার হিসাবে প্রতিটি দিকের দিকে কাত করার পরিমাণ নিন। প্রথমে প্লট ডায়াগনাল () ব্যবহার করে এবং পরে ledPlotList অ্যারে যোগ করে।

এই প্লটিং ফাংশনগুলি LEDPlotList- এ নেতৃত্বের স্থানাঙ্কগুলির একটি অ্যারে লিখবে যা পরে প্লট করা হবে।

ধাপ 9: ধাপ 5: প্রতিটি ক্ষেত্রে প্লট এলইডি ম্যাট্রিক্স

ধাপ 4 -এ তিনটি ক্ষেত্রে প্লট করার ফাংশন ব্যবহার করে, আমরা এখন টিল্ট লেভেলের বিভিন্ন সম্ভাব্য সংমিশ্রণের জন্য প্রকৃত LED ম্যাট্রিক্স চক্রান্ত করতে পারি। ধাপ 4 -এর তিনটি ফাংশন দিকনির্দেশের সাথে বৈষম্যমূলক না হওয়ায়, LED নির্দেশিকাগুলিকে সঠিক দিকনির্দেশনা দেওয়ার জন্য আমাদের LED ম্যাট্রিক্সে দেওয়া সমন্বয় মানগুলি সমন্বয় করতে হবে।

PlotResult () একাধিক থাকে যদি এমন শর্ত থাকে যা কাতরতা পরীক্ষা করে এবং LED.plot (x, y) ব্যবহার করে LED ম্যাট্রিক্স চক্রান্ত করে। টিল্টের সম্ভাব্য সংমিশ্রণগুলি হল:

একক দিক: কেবল বাম বা কেবল ডান।

একক দিক: শুধুমাত্র ফরওয়ার্ড বা শুধুমাত্র ব্যাকওয়ার্ড।

দুটি দিক: ফরওয়ার্ড-বাম বা পিছন-বাম।

দুটি দিক: ফরওয়ার্ড-ডান বা পিছন-ডান।

দ্রষ্টব্য: দুটি দিকের দিকে কাত করার জন্য, প্রতিটি সংমিশ্রণে একই বা ভিন্ন মাত্রা থাকতে পারে (maxX এবং maxY তুলনা করে পরীক্ষা করা হয়েছে), এবং তাই যথাক্রমে plotDiagonal () বা plotUnequal () ব্যবহার করে চক্রান্ত করা হয়েছে।

ধাপ 10: ধাপ 6: ক্রমাঙ্কন ফাংশন লিখুন

প্রচুর পরিমাণে কোড সম্পন্ন করার পরে, আমরা এখন calibTilt () এবং resetTilt () ফাংশন যোগ করি।

calibTilt () ব্যবহারকারীদের মাইক্রো: বিটের বর্তমান অবস্থানে শূন্যে কাত করার অনুমতি দেয়

resetTilt () বোর্ডের ক্রমাঙ্কনকে তার মূল অবস্থায় পুনরায় সেট করে।

ধাপ 11: ধাপ 7: স্টেট ফাংশন লিখুন

পূর্ববর্তী পুনরাবৃত্তি থেকে টিল্টের মাত্রা পরিবর্তন হয়েছে কিনা তা পরীক্ষা করার জন্য আমরা একটি সাধারণ ফাংশন checkState () যোগ করি।

যদি পূর্ববর্তী পুনরাবৃত্তি অর্থাৎ স্টেট চেঞ্জ == 0 থেকে টিল্ট লেভেলের কোন পরিবর্তন না হয়, তাহলে আমরা সরাসরি পরবর্তী পুনরাবৃত্তির দিকে যেতে পারি এবং LED ম্যাট্রিক্সের প্লটিং এড়িয়ে যেতে পারি, প্রয়োজনীয় গণনা হ্রাস করতে পারি।

ধাপ 12: ধাপ 8: সবকিছু একসাথে রাখা পার্ট 1

এখন আমরা অবশেষে সব প্রয়োজনীয় ফাংশনগুলিকে মাইক্রো: বিট এর অসীম লুপে বারবার চালাতে পারি।

প্রথমে, আমরা মাইক্রো: বিট থেকে calibTilt () এবং resetTilt () ফাংশনগুলিতে যথাক্রমে input.onButtonPressed () ব্যবহার করে বাটন সেট করি এবং যখন ক্যালিব্রেশন সম্পন্ন হয় তখন LED ম্যাট্রিক্সে একটি টিক দিন।

ধাপ 13: ধাপ 9: সবকিছু একসাথে রাখা পার্ট 2

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

যদি টিল্ট লেভেলে কোন পরিবর্তন হয় অর্থাৎ stateChange == 1, কোডটি নতুন টিল্ট লেভেলে prevState আপডেট করবে এবং স্টেট চেঞ্জকে পরবর্তী পুনরাবৃত্তির জন্য 0 এ সেট করবে, এবং PlotResult () ব্যবহার করে LED ম্যাট্রিক্সে আপডেট করা টিল্ট লেভেল প্লট করবে।

ধাপ 14: ধাপ 10: সমাবেশ

আপনার মাইক্রো: বিটে সম্পূর্ণ কোডটি ফ্ল্যাশ করুন।

আপনার মাইক্রো: বিট এবং ব্যাটারি প্যাকটি যেকোনো বস্তুর সাথে নিরাপদে সংযুক্ত করুন এবং এটি ব্যবহারের জন্য প্রস্তুত!

অসাধারণ

আপনার ইলেকট্রিক স্পিরিট লেভেলের সাথে মজা করুন! এবং যখন আপনি এটিতে থাকবেন, তখন কেন টিল্ট সেন্সরের ক্ষমতা বাড়ানোর চেষ্টা করবেন না বা এটিকে একটি খেলায় পরিণত করবেন না?

এই নিবন্ধটি TINKERCADEMY থেকে।

ধাপ 15: উৎস

এই নিবন্ধটি থেকে:

যদি আপনার কোন প্রশ্ন থাকে, আপনি contact [email protected] এ যোগাযোগ করতে পারেন।

প্রস্তাবিত: