فهرست مطالب:
تصویری: پروژه قطب نمای دیجیتال آردوینو: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
سلام! در این قسمت آموزشی خواهید دید که چگونه می توانید با استفاده از Arduino و Processing IDE یک قطب نما دیجیتال بسازید. این پروژه آردوینو بسیار ساده اما جالب و جالب است.
می توانید نمونه نمایشی این آموزش را در ویدئوی بالا مشاهده کنید. شما همیشه می توانید ویدیوهای جالب تری مانند این را در کانال YouTube من پیدا کنید و همچنین بسیاری از پروژه ها و آموزش های الکترونیکی را در وب سایت من ، HowToMechatronics.com پیدا کنید.
مرحله 1: قطعات مورد نیاز
برای این پروژه شما فقط به یک برد آردوینو و یک مغناطیس سنج MEMS برای اندازه گیری میدان مغناطیسی زمین نیاز دارید. من از تخته شکست GY -80 استفاده می کنم که شامل MC5883L 3 - Axis Magnetometer است.
قبل از ادامه کد منبع پروژه اگر به جزئیات بیشتری در مورد نحوه عملکرد مغناطیس سنج MEMS و همچنین نحوه اتصال و استفاده از برد شکست GY -80 از طریق ارتباط I2C نیاز دارید ، می توانید آموزش های خاص من را در این زمینه بررسی کنید.
مرحله 2: کد منبع آردوینو
آنچه ابتدا باید انجام دهیم این است که یک طرح را در برد آردوینو بارگذاری کنیم که داده ها را از مغناطیس سنج بخواند و آن را به IDE پردازش ارسال کند. در اینجا کد منبع آردوینو آمده است:
/ * Arduino Compass * * توسط Dejan Nedelkovski ، * www. HowToMechatronics.com * */
#شامل // کتابخانه آردوینو I2C
#تعریف مغناطیس سنج_mX0 0x03
#تعریف مغناطیس سنج_mX1 0x04 #تعریف مغناطیس سنج_mZ0 0x05 #تعریف مغناطیس سنج_mZ1 0x06 #مغناطیس سنج_mY0 0x07 #تعریف مغناطیس سنج_mY1 0x08
int mX0 ، mX1 ، mX_out ؛
int mY0 ، mY1 ، mY_out ؛ int mZ0 ، mZ1 ، mZ_out ؛
عنوان شناور ، عنوان درجه ، عنوان فیلتر ، انحراف ؛
شناور Xm ، Ym ، Zm ؛
#تعریف مغناطیس سنج 0x1E // آدرس I2C 7bit HMC5883
void setup () {
// راه اندازی ارتباطات سریال و I2C Serial.begin (115200) ؛ Wire.begin ()؛ تأخیر (100) ؛ Wire.beginTransmission (Magnetometer)؛ Wire.write (0x02) ؛ // انتخاب حالت ثبت نام Wire.write (0x00)؛ // حالت اندازه گیری مداوم Wire.endTransmission ()؛ }
حلقه خالی () {
// ---- X-Axis Wire.beginTransmission (Magnetometer) ؛ // انتقال به دستگاه Wire.write (Magnetometer_mX1) ؛ Wire.endTransmission ()؛ سیم. درخواست از (مغناطیس سنج ، 1) ؛ if (Wire.available () <= 1) {mX0 = Wire.read ()؛ } Wire.beginTransmission (مغناطیس سنج) ؛ // انتقال به دستگاه Wire.write (Magnetometer_mX0) ؛ Wire.endTransmission ()؛ سیم. درخواست از (مغناطیس سنج ، 1) ؛ if (Wire.available () <= 1) {mX1 = Wire.read ()؛ }
// ---- محور Y
Wire.beginTransmission (Magnetometer)؛ // انتقال به دستگاه Wire.write (Magnetometer_mY1) ؛ Wire.endTransmission ()؛ سیم. درخواست از (مغناطیس سنج ، 1) ؛ if (Wire.available () <= 1) {mY0 = Wire.read ()؛ } Wire.beginTransmission (مغناطیس سنج) ؛ // انتقال به دستگاه Wire.write (Magnetometer_mY0) ؛ Wire.endTransmission ()؛ سیم. درخواست از (مغناطیس سنج ، 1) ؛ if (Wire.available () <= 1) {mY1 = Wire.read ()؛ } // ---- Z-Axis Wire.beginTransmission (مغناطیس سنج) ؛ // انتقال به دستگاه Wire.write (Magnetometer_mZ1) ؛ Wire.endTransmission ()؛ سیم. درخواست از (مغناطیس سنج ، 1) ؛ if (Wire.available () <= 1) {mZ0 = Wire.read ()؛ } Wire.beginTransmission (مغناطیس سنج) ؛ // انتقال به دستگاه Wire.write (Magnetometer_mZ0) ؛ Wire.endTransmission ()؛ سیم. درخواست از (مغناطیس سنج ، 1) ؛ if (Wire.available () <= 1) {mZ1 = Wire.read ()؛ } // ---- محور X mX1 = mX1 << 8؛ mX_out = mX0+mX1 ؛ // داده های خام // از برگه داده: 0.92 میلی گرم/رقم Xm = mX_out*0.00092 ؛ // واحد گاوس //* میدان مغناطیسی زمین از 0.25 تا 0.65 گاوس متغیر است ، بنابراین این مقادیری است که باید تقریباً بدست آوریم.
// ---- محور Y
mY1 = mY1 << 8؛ mY_out = mY0+mY1 ؛ Ym = mY_out*0.00092 ؛
// ---- محور Z
mZ1 = mZ1 <0.073 کاهش راد = 0.073 ؛ عنوان += افول ؛ // تصحیح هنگامی که علائم مورد احترام قرار می گیرند اگر (عنوان <0) عنوان += 2*PI ؛
// تصحیح به دلیل اضافه شدن زاویه شیب
if (عنوان> 2*PI) عنوان -= 2*PI ؛
headingDegrees = عنوان * 180/PI ؛ // عنوان در واحد درجه
// صاف کردن زاویه خروجی / فیلتر کم گذر
headingFiltered = headingFiltered*0.85 + headingDerees*0.15؛
// ارسال مقدار عنوان از طریق Serial Port به Processing IDE
Serial.println (headingFiltered) ؛
تأخیر (50) ؛ }
مرحله 3: پردازش کد منبع IDE
پس از بارگذاری طرح اولیه آردوینو ، باید داده ها را در پردازش IDE دریافت کرده و قطب نمای دیجیتال را ترسیم کنیم. قطب نما از تصویر پس زمینه ، تصویر ثابت پیکان و تصویر چرخشی از بدنه قطب نما تشکیل شده است. بنابراین مقادیر میدان مغناطیسی زمین محاسبه شده با آردوینو برای چرخاندن قطب نما استفاده می شود.
در اینجا کد منبع Processing IDE آمده است:
/ * قطب نما آردوینو * * توسط دژان ندلکوفسکی ، * www. HowToMechatronics.com * */ import processing.serial. *؛ واردات java.awt.event. KeyEvent ؛ واردات java.io. IOException؛
سریال myPort ؛
PImage imgCompass؛ PImage imgCompassArrow؛ پس زمینه تصویر ؛
داده های رشته = ""؛
عنوان شناور ؛
void setup () {
اندازه (1920 ، 1080 ، P3D) ؛ صاف()؛ imgCompass = loadImage ("Compass.png")؛ imgCompassArrow = loadImage ("CompassArrow.png")؛ background = loadImage ("Background.png")؛ myPort = سریال جدید (این ، "COM4" ، 115200) ؛ // ارتباط سریال myPort.bufferUntil ('\ n') را آغاز می کند ؛ }
void draw () {
تصویر (پس زمینه ، 0 ، 0) ؛ // بارگذاری تصویر پس زمینه pushMatrix ()؛ ترجمه (عرض/2 ، ارتفاع/2 ، 0) ؛ // سیستم مختصات را به مرکز صفحه تبدیل می کند ، به طوری که چرخش درست در مرکز rotateZ (رادیان (-heading)) اتفاق می افتد. // قطب نما را در اطراف Z می چرخاند -تصویر محور (imgCompass ، -960 ، -540) ؛ // تصویر قطب نما را بارگذاری می کند و با جابجایی سیستم مختصات باید تصویر را در -960x ، -540y (نصف اندازه صفحه) popMatrix () تنظیم کنیم. // سیستم مختصات را به حالت اولیه 0 ، 0 ، 0 تصویر باز می گرداند (imgCompassArrow ، 0 ، 0) ؛ // بارگذاری تصویر CompassArrow که به دلیل عملکرد popMatrix () textSize (30) تحت تأثیر عملکرد rotateZ () قرار نمی گیرد ؛ متن ("عنوان:" + عنوان ، 40 ، 40) ؛ // مقدار عنوان را روی صفحه چاپ می کند
تأخیر (40) ؛
}
// خواندن داده ها را از پورت سریال شروع می کند
void serialEvent (Serial myPort) {data = myPort.readStringUntil ('\ n')؛ // داده ها را از پورت سریال می خواند و آنها را در متغیر String "data" قرار می دهد. عنوان = شناور (داده) ؛ // تبدیل مقدار String به مقدار Float}
امیدوارم از این پروژه خوشتان بیاید. اگر چنین است ، می توانید برای پروژه های جالب تر نیز از وب سایت من دیدن کنید.
توصیه شده:
قطب نما دیجیتال و سرفصل یاب: 6 مرحله
قطب نمای دیجیتال و سرفصل یاب: نویسندگان: Cullan Whelan اندرو لوفت بلیک جانسون تقدیر: آکادمی دریانوردی کالیفرنیا ایوان چانگ سیو مقدمه: اساس این پروژه یک قطب نمای دیجیتالی با ردیابی سرفصل است. این به کاربر این امکان را می دهد تا از مسیری طولانی مسیری را دنبال کند
نحوه ایجاد رادار با استفاده از آردوینو برای پروژه علمی - بهترین پروژه های آردوینو: 5 مرحله
نحوه ایجاد رادار با استفاده از آردوینو برای پروژه علمی | بهترین پروژه های آردوینو: سلام دوستان ، در این مقاله آموزشی به شما نشان خواهم داد که چگونه یک سیستم راداری شگفت انگیز ایجاد کنید که با استفاده از آردوینو نانو ساخته شده است. این پروژه برای پروژه های علمی ایده آل است و اگر برنده شدن جایزه عالی باشد ، می توانید به راحتی با سرمایه گذاری و شانس بسیار کمتری این کار را انجام دهید
قطب نما دیجیتال با استفاده از آردوینو و مغناطیس سنج HMC5883L: 6 مرحله
قطب نما دیجیتال با استفاده از آردوینو و مغناطیس سنج HMC5883L: سلام بچه ها ، این سنسور می تواند شمال ، جنوب ، شرق و غرب جغرافیایی را نشان دهد ، ما انسان ها نیز می توانیم در مواقع مورد نیاز از آن استفاده کنیم. بنابراین. در این مقاله اجازه دهید بفهمیم چگونه سنسور مغناطیس سنج کار می کند و چگونه می توان آن را با میکروکنترلر
نحوه استفاده از ماژول GY511 با آردوینو [ساخت قطب نمای دیجیتال]: 11 مرحله
نحوه استفاده از ماژول GY511 با آردوینو [ساخت قطب نمای دیجیتال]: مرور کلی در برخی از پروژه های الکترونیکی ، ما باید موقعیت جغرافیایی را در هر لحظه بدانیم و بر این اساس عملیات خاصی را انجام دهیم. در این آموزش ، نحوه استفاده از ماژول قطب نما LSM303DLHC GY-511 را با آردوینو برای ساختن قطب نمای دیجیتالی خواهید آموخت
نمای کلی پروژه توپ کریستالی: 10 مرحله
نمای کلی پروژه توپ کریستالی: این دستورالعمل در جهت برآوردن الزامات پروژه Makecourse در دانشگاه فلوریدا جنوبی ایجاد شده است (www.makecourse.com) پروژه توپ کریستال من ترکیبی از اسباب بازی متل 1950 ماتریس و توپ جادویی است تلفن فال