সুচিপত্র:
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
হ্যালো! এই নির্দেশে আপনি দেখতে পাবেন কিভাবে আপনি একটি Arduino এবং প্রসেসিং IDE ব্যবহার করে একটি ডিজিটাল কম্পাস তৈরি করতে পারেন। এটি বেশ সহজ কিন্তু আকর্ষণীয় এবং শীতল দেখতে Arduino প্রকল্প।
আপনি উপরের ভিডিওতে এই টিউটোরিয়ালের ডেমো উদাহরণ দেখতে পারেন। আপনি সবসময় আমার ইউটিউব চ্যানেলে এরকম আরো আকর্ষণীয় ভিডিও খুঁজে পেতে পারেন এবং আমার ওয়েবসাইট HowToMechatronics.com এ প্রচুর ইলেকট্রনিক্স প্রকল্প এবং টিউটোরিয়াল খুঁজে পেতে পারেন
ধাপ 1: যন্ত্রাংশ আবশ্যক
এই প্রকল্পের জন্য পৃথিবীর চৌম্বক ক্ষেত্র পরিমাপের জন্য আপনার প্রয়োজন হবে শুধু একটি Arduino বোর্ড এবং একটি MEMS ম্যাগনেটোমিটার। আমি GY - 80 ব্রেকআউট বোর্ড ব্যবহার করব যার মধ্যে MC5883L 3 - অ্যাক্সিস ম্যাগনেটোমিটার রয়েছে।
আমরা প্রকল্পের সোর্স কোডটি চালিয়ে যাওয়ার আগে যদি MEMS ম্যাগনেটোমিটার কিভাবে কাজ করে এবং কিভাবে GY - 80 ব্রেকআউট বোর্ডকে I2C কমিউনিকেশনের মাধ্যমে সংযুক্ত করতে হয় এবং ব্যবহার করতে হয় সে সম্পর্কে আরো বিস্তারিত জানার জন্য আপনি আমার বিশেষ টিউটোরিয়াল চেক করতে পারেন।
ধাপ 2: Arduino সোর্স কোড
আমাদের প্রথমে যা করতে হবে তা হল Arduino বোর্ডে একটি স্কেচ আপলোড করা যা ম্যাগনেটোমিটার থেকে ডেটা পড়বে এবং এটি প্রসেসিং IDE তে পাঠাবে। এখানে Arduino সোর্স কোড:
/ * আরজিনো কম্পাস * * দেজান নেডেলকোভস্কির, * www. HowToMechatronics.com * */
#অন্তর্ভুক্ত // I2C Arduino লাইব্রেরি
#ম্যাগনেটোমিটার_এমএক্স 0 0x03 নির্ধারণ করুন
#সংজ্ঞায়িত ম্যাগনেটোমিটার_এমএক্স 1 0x04 #ডিফাইন ম্যাগনেটোমিটার_এমজেড 0 0x05 #ডিফাইন ম্যাগনেটোমিটার_এমজেড 1 0x06 #ডিফাইন ম্যাগনেটোমিটার_এমওয়াই 0 0x07
int mX0, mX1, mX_out;
int mY0, mY1, mY_out; int mZ0, mZ1, mZ_out;
ভাসমান শিরোনাম, শিরোনাম ডিগ্রী, শিরোনাম ফিল্টার করা, পতন;
ভাসা Xm, Ym, Zm;
#সংজ্ঞায়িত করুন ম্যাগনেটোমিটার 0x1E // HMC5883 এর I2C 7bit ঠিকানা
অকার্যকর সেটআপ(){
// সিরিয়াল এবং I2C যোগাযোগ সিরিয়াল শুরু করুন (115200); Wire.begin (); বিলম্ব (100); Wire.beginTransmission (ম্যাগনেটোমিটার); Wire.write (0x02); // নির্বাচন মোড রেজিস্টার Wire.write (0x00); // ক্রমাগত পরিমাপ মোড Wire.endTransmission (); }
অকার্যকর লুপ () {
// ---- এক্স-অ্যাক্সিস ওয়্যার। // ডিভাইস Wire.write প্রেরণ (Magnetometer_mX1); Wire.endTransmission (); Wire.requestFrom (ম্যাগনেটোমিটার, 1); যদি (Wire.available () <= 1) {mX0 = Wire.read (); } Wire.beginTransmission (ম্যাগনেটোমিটার); // ডিভাইস Wire.write প্রেরণ (Magnetometer_mX0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); যদি (Wire.available () <= 1) {mX1 = Wire.read (); }
// ---- Y- অক্ষ
Wire.beginTransmission (ম্যাগনেটোমিটার); // ডিভাইস Wire.write প্রেরণ (Magnetometer_mY1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); যদি (Wire.available () <= 1) {mY0 = Wire.read (); } Wire.beginTransmission (ম্যাগনেটোমিটার); // ডিভাইস Wire.write প্রেরণ (Magnetometer_mY0); Wire.endTransmission (); Wire.requestFrom (ম্যাগনেটোমিটার, 1); যদি (Wire.available () <= 1) {mY1 = Wire.read (); } // ---- Z-Axis Wire.beginTransmission (Magnetometer); // ডিভাইস Wire.write প্রেরণ (Magnetometer_mZ1); Wire.endTransmission (); Wire.requestFrom (ম্যাগনেটোমিটার, 1); যদি (Wire.available () <= 1) {mZ0 = Wire.read (); } Wire.beginTransmission (ম্যাগনেটোমিটার); // ডিভাইস Wire.write প্রেরণ (Magnetometer_mZ0); Wire.endTransmission (); Wire.requestFrom (ম্যাগনেটোমিটার, 1); যদি (Wire.available () <= 1) {mZ1 = Wire.read (); } // ---- এক্স-অক্ষ mX1 = mX1 << 8; mX_out = mX0+mX1; // কাঁচা তথ্য // ডেটশীট থেকে: 0.92 mG/digit Xm = mX_out*0.00092; // গাউস ইউনিট //* পৃথিবীর চুম্বকীয় ক্ষেত্র 0.25 থেকে 0.65 গাউস পর্যন্ত বিস্তৃত, তাই এগুলি হল সেই মানগুলি যা আমাদের আনুমানিক পেতে হবে।
// ---- Y- অক্ষ
mY1 = mY1 << 8; mY_out = mY0+mY1; Ym = mY_out*0.00092;
// ---- জেড-অক্ষ
mZ1 = mZ1 <0.073 rad declination = 0.073; শিরোনাম += পতন; // লক্ষণগুলি যখন শ্রদ্ধা করা হয় তখন সংশোধন করা (শিরোনাম <0) শিরোনাম += 2*পিআই;
// পতন কোণ যোগ করার কারণে সংশোধন করা
যদি (শিরোনাম> 2*পিআই) শিরোনাম -= 2*পিআই;
হেডিং ডিগ্রী = হেডিং * 180/পিআই; // ডিগ্রী ইউনিটে শিরোনাম
// আউটপুট কোণ / নিম্ন পাস ফিল্টার মসৃণ
শিরোনাম ফিল্টার করা = শিরোনাম ফিল্টার করা*0.85 + শিরোনাম ডিগ্রী*0.15;
// সিরিয়াল পোর্টের মাধ্যমে আইডিই প্রসেসিংয়ে শিরোনাম মান পাঠানো
Serial.println (শিরোনাম ফিল্টার করা);
বিলম্ব (50); }
ধাপ 3: আইডিই সোর্স কোড প্রসেস করা হচ্ছে
আমরা আগের Arduino স্কেচ আপলোড করার পরে আমাদের প্রসেসিং IDE তে ডেটা গ্রহণ করতে হবে এবং ডিজিটাল কম্পাস আঁকতে হবে। কম্পাস একটি ব্যাকগ্রাউন্ড ইমেজ, তীরের স্থির ইমেজ এবং কম্পাসের বডির একটি আবর্তিত ইমেজ নিয়ে গঠিত। সুতরাং আরডুইনো দিয়ে গণনা করা মাটির চৌম্বক ক্ষেত্রের মানগুলি কম্পাস ঘোরানোর জন্য ব্যবহৃত হয়।
এখানে প্রসেসিং IDE এর সোর্স কোড:
/ * আরজিনো কম্পাস * * দেজান নেডেলকোভস্কির, * www. HowToMechatronics.com * */ আমদানি প্রক্রিয়াকরণ। সিরিয়াল। *; java.awt.event. KeyEvent আমদানি করুন; java.io. IOException আমদানি করুন;
সিরিয়াল myPort;
PImage imgCompass; PImage imgCompassArrow; ছবি ব্যাকগ্রাউন্ড;
স্ট্রিং ডেটা = "";
ভাসমান শিরোনাম;
অকার্যকর সেটআপ() {
আকার (1920, 1080, P3D); মসৃণ (); imgCompass = loadImage ("Compass.png"); imgCompassArrow = loadImage ("CompassArrow.png"); background = loadImage ("Background.png"); myPort = নতুন সিরিয়াল (এটি, "COM4", 115200); // সিরিয়াল যোগাযোগ শুরু myPort.bufferUntil ('n'); }
অকার্যকর ড্র () {
চিত্র (পটভূমি, 0, 0); // ব্যাকগ্রাউন্ড ইমেজ pushMatrix () লোড করে; অনুবাদ করুন (প্রস্থ/2, উচ্চতা/2, 0); // পর্দার কেন্দ্রে সমন্বয় ব্যবস্থা অনুবাদ করে, যাতে ঘূর্ণন ঠিক কেন্দ্রে ঘোরায় Z (রেডিয়ান (-হেডিং)); // Z- অক্ষ চিত্রের চারপাশে কম্পাস ঘোরায় (imgCompass, -960, -540); // কম্পাস ইমেজ লোড করে এবং কোঅর্ডিনেট সিস্টেম স্থানান্তরিত হওয়ায় আমাদের ইমেজটি -960x, -540y (অর্ধেক স্ক্রিন সাইজ) popMatrix () এ সেট করতে হবে; // সমন্বয় ব্যবস্থা নিয়ে আসে মূল অবস্থানে 0, 0, 0 চিত্র (imgCompassArrow, 0, 0); // CompassArrow ইমেজ লোড করে যা rotateZ () ফাংশন দ্বারা প্রভাবিত হয় না কারণ popMatrix () ফাংশন textSize (30); পাঠ্য ("শিরোনাম:" + শিরোনাম, 40, 40); // পর্দায় শিরোনামের মান মুদ্রণ করে
বিলম্ব (40);
}
// সিরিয়াল পোর্ট থেকে ডেটা পড়া শুরু করে
void serialEvent (Serial myPort) {data = myPort.readStringUntil ('n'); // সিরিয়াল পোর্ট থেকে ডেটা পড়ে এবং স্ট্রিং ভেরিয়েবল "ডেটা" তে রাখে। শিরোনাম = float (data); // স্ট্রিং মানকে ফ্লোট ভ্যালুতে রূপান্তর করা}
আমি আশা করি আপনি এই প্রকল্পটি পছন্দ করবেন। যদি তা হয় তবে আপনি আরও দুর্দান্ত প্রকল্পগুলির জন্য আমার ওয়েবসাইটটি দেখতে পারেন।
প্রস্তাবিত:
ডিজিটাল কম্পাস এবং হেডিং ফাইন্ডার: 6 টি ধাপ
ডিজিটাল কম্পাস এবং হেডিং ফাইন্ডার: লেখক: কুলান হুইলান অ্যান্ড্রু লুফ্ট ব্লেক জনসন স্বীকৃতি: ক্যালিফোর্নিয়া মেরিটাইম একাডেমি ইভান চ্যাং-সিউ ভূমিকা: এই প্রকল্পের ভিত্তি হল হেডিং ট্র্যাকিং সহ একটি ডিজিটাল কম্পাস। এটি ব্যবহারকারীকে দীর্ঘ দূরত্ব জুড়ে একটি শিরোনাম অনুসরণ করতে সক্ষম করে
Claqueta ডিজিটাল কন Arduino (Arduino সঙ্গে ডিজিটাল Clapperboard): 7 ধাপ
Claqueta ডিজিটাল কন Arduino (Arduino সঙ্গে ডিজিটাল Clapperboard): Crea tu propia claqueta digital, también puedes converter una claqueta no digital en una, utilizando Arduino con arduino.Arduin
Arduino এবং HMC5883L ম্যাগনেটোমিটার ব্যবহার করে ডিজিটাল কম্পাস: 6 টি ধাপ
Arduino এবং HMC5883L ম্যাগনেটোমিটার ব্যবহার করে ডিজিটাল কম্পাস: হাই বন্ধুরা, এই সেন্সরটি ভৌগোলিক উত্তর, দক্ষিণ, পূর্ব এবং পশ্চিম নির্দেশ করতে পারে, আমরা মানুষও প্রয়োজনের সময় এটি ব্যবহার করতে পারি। তাই। এই প্রবন্ধে আসুন ম্যাগনেটোমিটার সেন্সর কিভাবে কাজ করে এবং কিভাবে মাইক্রোকন্ট্রোর সাথে ইন্টারফেস করা যায় তা বোঝার চেষ্টা করি
কিভাবে Arduino দিয়ে GY511 মডিউল ব্যবহার করবেন [একটি ডিজিটাল কম্পাস তৈরি করুন]: 11 টি ধাপ
কিভাবে Arduino দিয়ে GY511 মডিউল ব্যবহার করতে হয় এই টিউটোরিয়ালে, আপনি শিখবেন কিভাবে ডিজিটাল কম্পাস তৈরি করতে Arduino এর সাথে LSM303DLHC GY-511 কম্পাস মডিউল ব্যবহার করতে হয়
নতুনদের জন্য 10 টি মৌলিক Arduino প্রকল্প! একটি একক বোর্ডের সাথে কমপক্ষে 15 টি প্রকল্প তৈরি করুন !: 6 টি ধাপ
নতুনদের জন্য 10 টি মৌলিক Arduino প্রকল্প! একটি একক বোর্ডের সাথে কমপক্ষে 15 টি প্রকল্প তৈরি করুন !: Arduino প্রকল্প & টিউটোরিয়াল বোর্ড; 10 টি মৌলিক Arduino প্রকল্প অন্তর্ভুক্ত। সমস্ত সোর্স কোড, গারবার ফাইল এবং আরও অনেক কিছু। এসএমডি নেই! সবার জন্য সহজ সোল্ডারিং। সহজ অপসারণযোগ্য এবং প্রতিস্থাপনযোগ্য উপাদান। আপনি একক বো দিয়ে কমপক্ষে 15 টি প্রকল্প তৈরি করতে পারেন