সুচিপত্র:

আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট: 5 টি ধাপ (ছবি সহ)
আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট: 5 টি ধাপ (ছবি সহ)

ভিডিও: আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট: 5 টি ধাপ (ছবি সহ)

ভিডিও: আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট: 5 টি ধাপ (ছবি সহ)
ভিডিও: 4 ক্যামেরা / 3 ক্যামেরা কিভাবে চালাবেন? | How to use all camera in phone bangla | Imrul Hasan Khan 2024, জুলাই
Anonim
আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট
আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট
আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট
আপনার মাইক্রো দিয়ে চাপ পরিমাপ করুন: বিট

BMP280 চাপ/তাপমাত্রা সেন্সরের সংমিশ্রণে মাইক্রো: বিট ব্যবহার করে চাপের পরিমাপ করা এবং বয়েলের আইন প্রদর্শন করার জন্য একটি সহজ এবং সস্তা যন্ত্রের জন্য নিম্নলিখিত নির্দেশাবলী বর্ণনা করে।

যদিও এই সিরিঞ্জ/চাপ সেন্সর সংমিশ্রণটি আমার পূর্ববর্তী নির্দেশাবলীগুলির মধ্যে একটিতে ইতিমধ্যে বর্ণিত হয়েছে, মাইক্রো: বিটের সাথে সমন্বয় নতুন সুযোগ দিচ্ছে, যেমন ক্লাস রুম প্রকল্পের জন্য।

এছাড়াও, I2C চালিত সেন্সরের সংমিশ্রণে মাইক্রো: বিট ব্যবহার করা অ্যাপ্লিকেশনের বিবরণের সংখ্যা এখন পর্যন্ত সীমিত। আমি আশা করি এই নির্দেশযোগ্য অন্যান্য প্রকল্পের জন্য একটি সূচনা পয়েন্ট হতে পারে।

ডিভাইসটি পরিমাণগত বায়ুচাপ পরিমাপ করতে এবং মাইক্রো: বিট LED অ্যারে বা সংযুক্ত কম্পিউটারে ফলাফলগুলি প্রদর্শন করতে দেয়, পরে Arduino IDE এর সিরিয়াল মনিটর বা সিরিয়াল প্লটার ফাংশন ব্যবহার করে। উপরন্তু আপনার একটি হ্যাপটিক প্রতিক্রিয়া আছে, যেহেতু আপনি নিজেই সিরিঞ্জের প্লাঙ্গারটিকে ধাক্কা বা টানবেন এবং এর দ্বারা প্রয়োজনীয় শক্তি অনুভব করবেন।

ডিফল্টরূপে, ডিসপ্লে আপনাকে LED ম্যাট্রিক্সে দেখানো লেভেল ইন্ডিকেটর দ্বারা চাপ অনুমান করতে দেয়। Arduino IDE এর সিরিয়াল প্লটার একই কাজ করতে দেয়, কিন্তু অনেক ভাল রেজোলিউশনের সাথে (ভিডিও দেখুন)। আরো বিস্তৃত সমাধান পাওয়া যায়, যেমন প্রসেসিং ভাষায়। আপনি যথাক্রমে A বা B বোতাম টিপে LED ম্যাট্রিক্সে চাপ এবং তাপমাত্রার সুনির্দিষ্ট মাপা মান প্রদর্শন করতে পারেন, কিন্তু Arduino IDE এর সিরিয়াল মনিটর অনেক দ্রুত, যা নিকটবর্তী সময়ে মান প্রদর্শন করতে দেয়।

মোট খরচ এবং যন্ত্রটি তৈরির জন্য প্রয়োজনীয় প্রযুক্তিগত দক্ষতা বরং কম, তাই এটি একটি শিক্ষকের তত্ত্বাবধানে একটি চমৎকার শ্রেণীকক্ষ প্রকল্প হতে পারে। উপরন্তু ডিভাইসটি STEM প্রকল্পগুলির জন্য একটি হাতিয়ার হতে পারে যা পদার্থবিজ্ঞানের উপর ফোকাস করে বা অন্যান্য প্রকল্পে ব্যবহৃত হয় যেখানে একটি শক্তি বা ওজন একটি ডিজিটাল ভ্যালুতে রূপান্তরিত হবে।

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

সংযোজন 27-মে -2018:

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

ধাপ 1: ব্যবহৃত উপকরণ

ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
  • একটি মাইক্রো: বিট, পিমোরোনি থেকে খনি পেয়েছি - 13.50 GBP
  • মাইক্রোর জন্য কিট্রনিক এজ কানেক্টর: বিট - পিমোরোনির মাধ্যমে - 5 জিবিপি, মন্তব্য: পিমোরিনি এখন একটি রুটিবোর্ড -বান্ধব প্রান্ত সংযোগকারী অফার করে যাকে বলা হয় পিন: বিট I2C পোর্টে পিন সহ।
  • 2 x 2 পিন হেডার স্ট্রিপ
  • মাইক্রো জন্য ব্যাটারি বা LiPo: বিট (প্রয়োজনীয় নয়, কিন্তু সহায়ক), সুইচ সঙ্গে ব্যাটারি তারের (dito) - Pimoroni
  • এজ সংযোগকারীর সাথে সেন্সরের সংযোগের জন্য জাম্পার কেবল
  • সেন্সরের জন্য লম্বা (!) জাম্পার কেবল, অন্তত যতদিন সিরিঞ্জ,, f/f বা f/m
  • BMP280 চাপ ও তাপমাত্রা সেন্সর - ব্যাংগুড - তিনটি ইউনিটের জন্য 5 US $ এই সেন্সরের পরিমাপের পরিসর 550 থেকে 1537 hPa এর মধ্যে।
  • রাবারের গ্যাসকেটের সাথে 150 মিলি প্লাস্টিক ক্যাথেটার সিরিঞ্জ - অ্যামাজন বা হার্ডওয়্যার এবং বাগানের দোকান - প্রায় 2 - 3 US $
  • গরম আঠালো/গরম আঠালো পিস্তল
  • তাতাল
  • Arduino IDE ইনস্টল করা একটি কম্পিউটার

ধাপ 2: সমাবেশ নির্দেশাবলী

সমাবেশ নির্দেশাবলী
সমাবেশ নির্দেশাবলী
সমাবেশ নির্দেশাবলী
সমাবেশ নির্দেশাবলী
সমাবেশ নির্দেশাবলী
সমাবেশ নির্দেশাবলী

BMP280 সেন্সর ব্রেকআউটে সোল্ডার হেডার।

দুটি 2 পিন হেডারগুলি পিন 19 এবং পিন 20 সংযোগকারীগুলিকে এজ সংযোগকারীর সাথে সংযুক্ত করুন (চিত্রটি দেখুন)।

মাইক্রো: বিটকে এজ সংযোগকারী এবং আপনার কম্পিউটারে সংযুক্ত করুন।

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

Arduino IDE তে প্রয়োজনীয় লাইব্রেরি ইনস্টল করুন।

পরবর্তী ধাপে সংযুক্ত BMP280 স্ক্রিপ্টটি খুলুন।

সেন্সরটিকে এজ কানেক্টরের সাথে সংযুক্ত করুন। GND থেকে 0V, VCC থেকে 3V, SCL পিন 19, SDA 20 পিন।

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

পরীক্ষা করুন যে সেন্সর যুক্তিসঙ্গত তথ্য দেয়, চাপের মান 1020 এইচপিএ হতে হবে, সিরিয়াল মনিটরে প্রদর্শিত হবে। ক্ষেত্রে, প্রথমে কেবল এবং সংযোগগুলি পরীক্ষা করুন, তারপরে সফ্টওয়্যার ইনস্টলেশন এবং সঠিক করুন।

মাইক্রো বন্ধ করুন: বিট, সেন্সর সরান।

সিরিঞ্জের আউটলেট দিয়ে লম্বা জাম্পার তারগুলি চালান। যদি আপনি খোলার প্রসারিত করতে পারেন। তারগুলি ক্ষতিগ্রস্ত হচ্ছে তা বাদ দিতে সতর্ক থাকুন।

সেন্সরটি জাম্পার তারের সাথে সংযুক্ত করুন। চেক করুন যে সংযোগগুলি সঠিক এবং ভাল। মাইক্রোতে সংযোগ করুন: বিট।

সেন্সরটি সঠিকভাবে চলছে কিনা তা পরীক্ষা করুন। সাবধানে তারগুলি টানুন, সেন্সরটিকে সিরিঞ্জের শীর্ষে সরান।

প্লাঙ্গার ertোকান এবং কাঙ্ক্ষিত বিশ্রামের অবস্থান (100 মিলি) এর চেয়ে কিছুটা এগিয়ে যান।

সিরিঞ্জ আউটলেটের শেষে গরম আঠা যোগ করুন এবং প্ল্যাঙ্গারটিকে কিছুটা পিছনে সরান। সিরিঞ্জটি এয়ার টাইট বন্ধ কিনা তা পরীক্ষা করুন, অন্যথায় আরও গরম আঠা যোগ করুন। গরম আঠা ঠান্ডা করা যাক।

আবার পরীক্ষা করুন যে সেন্সর কাজ করছে। যদি আপনি প্লাঙ্গারকে সরান, সিরিয়াল মনিটরের সংখ্যা এবং মাইক্রো: বিটের ডিসপ্লে পরিবর্তন করা উচিত।

প্রয়োজনে আপনি সিরিঞ্জের গ্যাসকেটের কাছে চেপে এবং প্ল্যাঙ্গারটি সরিয়ে ভলিউম সামঞ্জস্য করতে পারেন।

ধাপ 3: তত্ত্ব এবং কিছু ব্যবহারিক পরিমাপের একটি বিট

তত্ত্ব এবং কিছু ব্যবহারিক পরিমাপ একটি বিট
তত্ত্ব এবং কিছু ব্যবহারিক পরিমাপ একটি বিট
তত্ত্ব এবং কিছু ব্যবহারিক পরিমাপ একটি বিট
তত্ত্ব এবং কিছু ব্যবহারিক পরিমাপ একটি বিট

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

এর পিছনে তত্ত্ব: বয়েলের আইন অনুযায়ী, [ভলিউম * চাপ] একটি নির্দিষ্ট তাপমাত্রায় একটি গ্যাসের জন্য একটি ধ্রুবক মান।

এর মানে হল যদি আপনি গ্যাসের একটি প্রদত্ত ভলিউম এন-ভাঁজকে সংকুচিত করেন, অর্থাৎ চূড়ান্ত ভলিউমটি মূলের 1/N ভাঁজ, এর চাপ N- ভাঁজ পর্যন্ত বেড়ে যাবে, যেমন: P0*V0 = P1*V1 = cons t। আরো বিস্তারিত জানার জন্য, দয়া করে গ্যাস আইন সম্পর্কিত উইকিপিডিয়া নিবন্ধটি দেখুন। সমুদ্রপৃষ্ঠে, ব্যারোমেট্রিক চাপ সাধারণত 1010 hPa (হেক্টো পাসকাল) এর পরিসরে থাকে।

সুতরাং একটি বিশ্রাম পয়েন্ট থেকে শুরু করে যেমন V0 = 100 ml এবং P0 = 1000 hPa, প্রায় 66 মিলি (অর্থাৎ V1 = 2/3 * V0) বাতাসের সংকোচনের ফলে প্রায় 1500 hPa (P0 এর P1 = 3/2) চাপ হবে। প্লাঙ্গারকে 125 মিলি (5/4 ভলিউম) টেনে আনলে প্রায় 800 এইচপিএ (4/5 চাপ) চাপ হয়। এই ধরনের একটি সাধারণ ডিভাইসের জন্য পরিমাপ বিস্ময়করভাবে সুনির্দিষ্ট।

ডিভাইসটি আপনাকে সরাসরি হ্যাপটিক ধারণা দিতে দেয় যে সিরিঞ্জের তুলনামূলকভাবে অল্প পরিমাণে বাতাসকে সংকোচন বা প্রসারিত করতে কতটা শক্তি প্রয়োজন।

কিন্তু আমরা কিছু গণনাও করতে পারি এবং সেগুলো পরীক্ষামূলকভাবে পরীক্ষা করতে পারি। ধরুন আমরা 1000 hPa এর বেসাল ব্যারোমেট্রিক চাপে বাতাসকে 1500 hPa তে সংকুচিত করি। সুতরাং চাপের পার্থক্য হল 500 hPa, বা 50, 000 Pa। আমার সিরিঞ্জের জন্য, পিস্টনের ব্যাস (d) প্রায় 4 সেমি বা 0.04 মিটার।

এখন আপনি সেই অবস্থানে পিস্টন ধরে রাখার জন্য প্রয়োজনীয় বল গণনা করতে পারেন। প্রদত্ত P = F/A (চাপ হল বল দ্বারা বিভক্ত এলাকা), অথবা রূপান্তরিত F = P*A। বলের জন্য SI ইউনিট হল "নিউটন" N, দৈর্ঘ্য "মিটার" মি, এবং 1 Pa প্রতি বর্গ মিটারে 1N। একটি বৃত্তাকার পিস্টনের জন্য, এলাকাটি A = ((d/2) 2)*pi ব্যবহার করে গণনা করা যেতে পারে, যা আমার সিরিঞ্জের জন্য 0.00125 বর্গ মিটার দেয়। তাই

50, 000 পা * 0.00125 মি^2 = 63 এন।

পৃথিবীতে, 1 N 100 গ্রাম ওজনের সাথে সম্পর্কযুক্ত, তাই 63 N 6.3 কেজি ওজন ধারণের সমান।

এটি একটি স্কেল ব্যবহার করে সহজেই চেক করা যায়। স্কেলে প্লঞ্জারের সাথে সিরিঞ্জটি ধাক্কা দিন, যতক্ষণ না প্রায় 1500 এইচপিএর চাপ পৌঁছায়, তারপর স্কেলটি পড়ুন। অথবা ধাক্কা দিন যতক্ষণ না স্কেল 6-7 কেজি দেখায়, তারপর "A" বোতাম টিপুন এবং মাইক্রো: বিট এর LED ম্যাট্রিক্সে প্রদর্শিত মানটি পড়ুন। দেখা গেল, উপরের হিসাবের উপর ভিত্তি করে অনুমান খারাপ ছিল না। 1500 এইচপিএর সামান্য উপরে একটি চাপ শরীরের স্কেলে প্রায় 7 কেজি প্রদর্শিত "ওজন" এর সাথে সম্পর্কযুক্ত (ছবি দেখুন)। আপনি এই ধারণাটি ঘুরিয়ে দিতে পারেন এবং চাপ পরিমাপের উপর ভিত্তি করে একটি সহজ ডিজিটাল স্কেল তৈরি করতে ডিভাইসটি ব্যবহার করতে পারেন।

দয়া করে সচেতন থাকুন যে সেন্সরের উপরের সীমা প্রায় 1540 এইচপিএ, তাই এর উপরে কোন চাপ মাপা যাবে না এবং সেন্সরের ক্ষতি হতে পারে।

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

ধাপ 4: মাইক্রোপাইথন স্ক্রিপ্ট

আপনি মাইক্রো: বিটের জন্য আমার BMP280 স্ক্রিপ্টটি সংযুক্ত করেছেন। এটি একটি বিএমপি/বিএমই ২80০ স্ক্রিপ্টের একটি ডেরিভেট যা আমি কোথাও অ্যাডাফ্রুট মাইক্রোবিট লাইব্রেরির সাথে মিলিয়ে ব্যাংগুড ওয়েবসাইট খুঁজে পেয়েছি। প্রথমটি আপনাকে ব্যাংগুড সেন্সর ব্যবহার করার অনুমতি দেয়, দ্বিতীয়টি 5x5 LED ডিসপ্লে পরিচালনা সহজ করে। আমার ধন্যবাদ উভয়ের ডেভেলপারদের কাছে।

ডিফল্টরূপে, স্ক্রিপ্ট মাইক্রোতে 5 টি ধাপে চাপ পরিমাপের ফলাফল প্রদর্শন করে: বিটের 5x5 LED ডিসপ্লে, যা সামান্য বিলম্বের সাথে পরিবর্তনগুলি দেখতে দেয়। সুনির্দিষ্ট মানগুলি Arduino IDE সিরিয়াল মনিটরে সমান্তরালভাবে প্রদর্শিত হতে পারে, অথবা আরো বিস্তারিত গ্রাফ Arduino IDE এর সেরাল প্লটার প্রদর্শন করা যেতে পারে।

আপনি যদি A বোতাম টিপেন, তাহলে পরিমাপ করা চাপের মানগুলি মাইক্রো: বিটের 5x5 LED অ্যারে প্রদর্শিত হবে। আপনি যদি B বোতাম টিপেন, তাপমাত্রার মানগুলি প্রদর্শিত হয়। যদিও এটি সুনির্দিষ্ট তথ্য পড়তে দেয়, এটি পরিমাপ চক্রকে উল্লেখযোগ্যভাবে ধীর করে দেয়।

আমি নিশ্চিত যে কাজগুলি প্রোগ্রাম করার এবং স্ক্রিপ্ট উন্নত করার আরও অনেক মার্জিত উপায় রয়েছে। কোন সাহায্য স্বাগত জানাই।

#অন্তর্ভুক্ত xxx

#অন্তর্ভুক্ত Adafruit_Microbit_Matrix microbit; #নির্ধারণ করুন BME280_ADDRESS 0x76 স্বাক্ষরবিহীন দীর্ঘ int hum_raw, temp_raw, pres_raw; স্বাক্ষরিত দীর্ঘ int t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; // পরিমাপ মান int মান 0 জন্য পাত্রে; int মান 1; int মান 2; int মান 3; int মান 4; // ------------------------------------------------ -------------------------------------------------- ------------------ অকার্যকর সেটআপ () {uint8_t osrs_t = 1; // তাপমাত্রা oversampling x 1 uint8_t osrs_p = 1; // চাপ oversampling x 1 uint8_t osrs_h = 1; // আর্দ্রতা oversampling x 1 uint8_t মোড = 3; // সাধারণ মোড uint8_t t_sb = 5; // Tstandby 1000ms uint8_t ফিল্টার = 0; // uint8_t spi3w_en = 0 ফিল্টার করুন; // 3-তারের SPI নিষ্ক্রিয় করুন uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | মোড; uint8_t config_reg = (t_sb << 5) | (ফিল্টার << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // Serial.println ("তাপমাত্রা [ডিগ্রি সি]"); // সিরিয়াল.প্রিন্ট ("\ টি"); সিরিয়াল.প্রিন্ট ("চাপ [hPa]"); // হেডার Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); বিলম্ব (1000); } // ----------------------------------------------- -------------------------------------------------- -------- void loop () {double temp_act = 0.0, press_act = 0.0, hum_act = 0.0; স্বাক্ষরিত দীর্ঘ int temp_cal; স্বাক্ষরবিহীন দীর্ঘ int press_cal, hum_cal; int এন; // LED ম্যাট্রিক্স ডিসপ্লের জন্য থ্রেশহোল্ড মান সেট করুন, hPa ডাবল max_0 = 1100; ডাবল সর্বোচ্চ_1 = 1230; ডাবল সর্বোচ্চ_2 = 1360; ডাবল সর্বোচ্চ_3 = 1490; readData (); temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); hum_cal = calibration_H (hum_raw); temp_act = (ডবল) temp_cal / 100.0; press_act = (ডবল) press_cal / 100.0; hum_act = (ডবল) hum_cal / 1024.0; microbit.clear (); // রিসেট এলইডি ম্যাট্রিক্স /* সিরিয়াল.প্রিন্ট ("প্রেস:"); Serial.println (press_act); সিরিয়াল.প্রিন্ট ("hPa"); Serial.print ("TEMP:"); Serial.print ("\ t"); Serial.println (temp_act); */ যদি (! digitalRead (PIN_BUTTON_B)) {// সংখ্যায় মান প্রদর্শন বিলম্ব পরিমাপ বৃত্ত microbit.print ("T:"); microbit.print (temp_act, 1); microbit.print ("'C"); // Serial.println (""); } অন্যথায় যদি (! digitalRead (PIN_BUTTON_A)) {microbit.print ("P:"); microbit.print (press_act, 0); microbit.print ("hPa"); } অন্যথায় {// একটি নির্দিষ্ট স্তরে পিক্সেল বা রেখা হিসাবে চাপের মান প্রদর্শন করা // 5 টি ধাপ: 1490 hPa // থ্রেশহোল্ড max_n মান দ্বারা নির্ধারিত হয় যদি (press_act> max_3) {(N = 0); // উপরের সারি} অন্যথায় যদি (press_act> max_2) {(N = 1); } অন্যথায় যদি (press_act> max_1) {(N = 2); } অন্যথায় যদি (press_act> max_0) {(N = 3); } অন্য {(N = 4); // বেস সারি} // Serial.println (N); // উন্নয়নের উদ্দেশ্যে // microbit.print (N); // লাইন হিসাবে // microbit.drawLine (N, 0, 0, 4, LED_ON); // মানগুলিকে পরবর্তী লাইনের মান 4 = মান 3 এ স্থানান্তর করুন; মান 3 = মান 2; মান 2 = মান 1; মান 1 = মান 0; মান 0 = এন; // ছবি আঁকুন, কলাম দ্বারা কলাম microbit.drawPixel (0, value0, LED_ON); // পিক্সেল হিসাবে: কলাম, সারি। 0, 0 বাম উপরের কোণার microbit.drawPixel (1, value1, LED_ON); microbit.drawPixel (2, value2, LED_ON); microbit.drawPixel (3, value3, LED_ON); microbit.drawPixel (4, value4, LED_ON); } // সিরিয়াল মনিটর এবং সিরিয়াল প্লটারে ডেটা পাঠান // Serial.println (press_act); // সংখ্যাসূচক প্রদর্শনের জন্য সিরিয়াল পোর্টে মান (গুলি) পাঠান, চ্ছিক

Serial.print (press_act); // প্লটারের জন্য সিরিয়াল পোর্টে মান পাঠান

// নির্দেশক রেখা আঁকুন এবং প্রদর্শিত পরিসীমা ঠিক করুন Serial.print ("\ t"); সিরিয়াল.প্রিন্ট (600); Serial.print ("\ t"); Serial.print (1100), Serial.print ("\ t"); Serial.println (1600); বিলম্ব (200); // সেকেন্ডে তিনবার পরিমাপ করুন} // ---------------------------------------- -------------------------------------------------- -------------------------------------------------- - // bmp/bme280 সেন্সরের জন্য নিম্নলিখিতগুলি প্রয়োজন, এটি অকার্যকর রাখুন readTrim () {uint8_t data [32], i = 0; // Fix 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // Fix 2014/while (Wire.available ()) {data = Wire.read (); আমি ++; } Wire.beginTransmission (BME280_ADDRESS); // 2014/Wire.write যোগ করুন (0xA1); // 2014 যোগ করুন/Wire.endTransmission (); // 2014 যোগ করুন/Wire.requestFrom (BME280_ADDRESS, 1); // 2014/data = Wire.read () যোগ করুন; // 2014/i ++ যোগ করুন; // 2014 যোগ করুন/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Fix 2014/while (Wire.available ()) {data = Wire.read (); আমি ++; } dig_T1 = (তথ্য [1] << 8) | ডেটা [0]; dig_P1 = (তথ্য [7] << 8) | তথ্য [6]; dig_P2 = (তথ্য [9] << 8) | তথ্য [8]; dig_P3 = (তথ্য [11] << 8) | তথ্য [10]; dig_P4 = (তথ্য [13] << 8) | তথ্য [12]; dig_P5 = (তথ্য [15] << 8) | তথ্য [14]; dig_P6 = (তথ্য [17] << 8) | তথ্য [16]; dig_P7 = (তথ্য [19] << 8) | তথ্য [18]; dig_T2 = (তথ্য [3] << 8) | তথ্য [2]; dig_T3 = (তথ্য [5] << 8) | তথ্য [4]; dig_P8 = (তথ্য [21] << 8) | তথ্য [20]; dig_P9 = (তথ্য [23] << 8) | তথ্য [22]; dig_H1 = ডেটা [24]; dig_H2 = (তথ্য [26] << 8) | তথ্য [25]; dig_H3 = ডেটা [27]; dig_H4 = (তথ্য [28] << 4) | (0x0F এবং ডেটা [29]); dig_H5 = (ডেটা [30] 4) এবং 0x0F); // ফিক্স 2014/dig_H6 = ডেটা [31]; // 2014/} অকার্যকর writeReg (uint8_t reg_address, uint8_t data) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (তথ্য); Wire.endTransmission (); }

অকার্যকর readData ()

{int i = 0; uint32_t ডেটা [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); যখন (Wire.available ()) {data = Wire.read (); আমি ++; } pres_raw = (তথ্য [0] << 12) | (তথ্য [1] 4); temp_raw = (তথ্য [3] << 12) | (তথ্য [4] 4); hum_raw = (তথ্য [6] << 8) | তথ্য [7]; }

স্বাক্ষরিত দীর্ঘ int calibration_T (স্বাক্ষরিত দীর্ঘ int adc_T)

{স্বাক্ষরিত দীর্ঘ int var1, var2, T; var1 = ((((adc_T >> 3) - ((স্বাক্ষরিত দীর্ঘ int) dig_T1 11; var2 = ({) - ((স্বাক্ষরিত দীর্ঘ int) dig_T1))) >> 12) * ((স্বাক্ষরিত দীর্ঘ int) dig_T3)) >> 14; t_fine = var1 + var2; T) = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((স্বাক্ষরিত দীর্ঘ int) dig_P6); var2 = var2 + ((var1 * ((স্বাক্ষরিত দীর্ঘ int) dig_P5)) 2) + (((স্বাক্ষরিত দীর্ঘ int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + (((স্বাক্ষরিত দীর্ঘ int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((স্বাক্ষরিত দীর্ঘ int) dig_P1)) >> 15); যদি (var1 == 0) {return 0; } P = (((স্বাক্ষরবিহীন দীর্ঘ int) (((স্বাক্ষরিত দীর্ঘ int) 1048576) -adc_P)-(var2 >> 12)))*3125; যদি (P <0x80000000) {P = (P << 1) / ((স্বাক্ষরবিহীন দীর্ঘ int) var1); } অন্য {P = (P / (স্বাক্ষরবিহীন দীর্ঘ int) var1) * 2; } var1 = (((স্বাক্ষরিত দীর্ঘ int) dig_P9) * ((স্বাক্ষরিত দীর্ঘ int) (((P >> 3) * (P >> 3)) >> 13)))> 12; var2 = (((স্বাক্ষরিত দীর্ঘ int) (P >> 2)) * ((স্বাক্ষরিত দীর্ঘ int) dig_P8)) >> 13; P = (স্বাক্ষরবিহীন দীর্ঘ int) ((স্বাক্ষরিত দীর্ঘ int) P + ((var1 + var2 + dig_P7) >> 4)); পি ফিরে; } স্বাক্ষরবিহীন দীর্ঘ int calibration_H (স্বাক্ষরিত দীর্ঘ int adc_H) {স্বাক্ষরিত দীর্ঘ int v_x1; v_x1 = (t_fine - ((স্বাক্ষরিত দীর্ঘ int) 76800)); v_x1 = (((((adc_H << 14) -(((স্বাক্ষরিত দীর্ঘ int) dig_H4) 15) * ({ (v_x1 * ((স্বাক্ষরিত দীর্ঘ int) dig_H3)) >> 11) + ((স্বাক্ষরিত দীর্ঘ int) 32768))) >> 10) + ((স্বাক্ষরিত দীর্ঘ int) 2097152) + 8192) >> 14)); v; x1 = (v_x1 419430400?

ধাপ 5: মেককোড/জাভাস্ক্রিপ্ট স্ক্রিপ্ট

মেককোড/জাভাস্ক্রিপ্ট স্ক্রিপ্ট
মেককোড/জাভাস্ক্রিপ্ট স্ক্রিপ্ট

পিমোরনি সম্প্রতি পরিবেশ: বিট প্রকাশ করেছে, যা একটি BMP280 চাপ সেন্সর, একটি হালকা/রঙ সেন্সর এবং একটি MEMS মাইক্রোফোন সহ আসে।তারা একটি মাইক্রোপাইথন এবং একটি মেককোড/জাভাস্ক্রিপ্ট লাইব্রেরিও অফার করে।

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

এটি মাইক্রো: বিট ডাইভ-ও-মিটারের জন্য স্ক্রিপ্টের একটি বৈচিত্র। ডিফল্টরূপে এটি একটি বার গ্রাফ হিসাবে চাপের পার্থক্য প্রদর্শন করে। বোতাম টিপে একটি রেফারেন্স চাপ সেট করে, বোতাম টিপলে এইচপিএতে প্রকৃত এবং রেফারেন্স চাপের মধ্যে পার্থক্য দেখা যায়।

মৌলিক বারকোড সংস্করণ ছাড়াও আপনি একটি "এক্স", ক্রসহেয়ার সংস্করণ এবং "এল" সংস্করণটিও খুঁজে পান, যা পড়া সহজ করা।

যাক কলাম = 0

let = = let Row = 0 let Meter = 0 let Delta = 0 let Ref = 0 let Is = 0 Is = 1012 basic.showLeds (` # # # # # #।। # #। # #। # #। # basic.showLeds (` #। #। #। #। #। #। # # # #। #। #। #। #। #`) basic.pause (1000)} অন্যথায় (input.buttonIsPressed (Button. B)) {basic.showString ("" + Delta + "hPa") basic.pause (200) basic.clearScreen ()} else {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) যদি (Meter> = 400) {Row = 4} else if (Meter> = 300) {Row = 3} else if (Meter> = 200) {Row = 2} else if (Meter> = 100) {Row = 1} অন্যথায় {সারি = 0} থাকে = মিটার - সারি * 100 যদি (থাকে> = 80) {কলাম = 4} অন্যথায় (থাকে> = 60) {কলাম = 3} অন্যথায় যদি (থাকে> = 40) {কলাম = 2 } অন্যথায় যদি (থাকে> = 20) {কলাম = 1} অন্য {কলাম = 0} এর জন্য (যাক ColA = 0; ColA <= কলাম; ColA ++) {led.plot (ColA, Row)} মৌলিক বিরতি (500)}})

প্রস্তাবিত: