فهرست مطالب:
- مرحله 1: چرا باید از واحد اندازه گیری اینرسی استفاده کرد؟
- مرحله 2: چگونه از BNO055 برای محلی سازی دو بعدی استفاده کنیم؟
- مرحله 3: Hardware Point of Vue
- مرحله 4: چگونه کار می کند؟
- مرحله 5: معماری و نرم افزار
- مرحله ششم: چه چیزی یاد گرفتم؟
تصویری: راهی برای استفاده از واحد اندازه گیری اینرسی؟: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
زمینه:
من برای سرگرمی یک ربات می سازم که می خواهم به صورت مستقل در داخل خانه حرکت کند.
این یک کار طولانی است و من مرحله به مرحله آن را انجام می دهم.
من قبلاً 2 دستورالعمل در مورد آن موضوع منتشر کرده ام:
- یکی در مورد ساخت رمزگذار چرخ
- یکی در مورد اتصال wifi
ربات من به کمک 2 موتور DC با کمک رمزگذار چرخ داخلی من هدایت می شود.
در حال حاضر در حال بهبود کنترل حرکت هستم و مدتی را با ژیروسکوپ ، شتاب سنج و IMU گذرانده ام. خوشحال می شوم این تجربه را به اشتراک بگذارم.
آیا می خواهید درباره محلی سازی بیشتر بدانید؟ در اینجا مقاله ای در مورد چگونگی ترکیب هوش مصنوعی و سونوگرافی برای محلی سازی ربات ارائه شده است
مرحله 1: چرا باید از واحد اندازه گیری اینرسی استفاده کرد؟
پس چرا از IMU استفاده کردم؟
اولین دلیل این بود که اگر رمزگذار چرخ به اندازه کافی دقیق بتواند حرکت مستقیم را کنترل کند ، حتی پس از تنظیم ، نتوانستم برای چرخش کمتر از +- 5 درجه دقت دقیقی داشته باشم و این کافی نیست.
بنابراین 2 سنسور مختلف را امتحان کردم. ابتدا از مغناطیس سنج (LSM303D) استفاده می کنم. اصل ساده بود: قبل از چرخش جهت شمال ، هدف را محاسبه کرده و حرکت را تا رسیدن به هدف تنظیم کنید. کمی بهتر از رمزگذار اما با پراکندگی بیش از حد بود. پس از آن سعی کردم از ژیروسکوپ (L3GD20) استفاده کنم. اصل فقط ادغام سرعت چرخش ارائه شده توسط سنسور برای محاسبه چرخش بود. و خوب کار کرد. من توانستم چرخش را در درجه +1 کنترل کنم.
با این وجود من کنجکاو بودم که از IMU استفاده کنم. من جزء BNO055 را انتخاب می کنم. مدتی را صرف درک و آزمایش این IMU کردم. در پایان تصمیم گرفتم این سنسور را به دلایل زیر انتخاب کنم
- من می توانم چرخش و همچنین با L3GD20 را کنترل کنم
- هنگام حرکت مستقیم می توانم چرخش جزئی را تشخیص دهم
- برای مکان یابی ربات باید جهت شمال را بدست آورم و کالیبراسیون قطب نما BNO055 بسیار ساده است
مرحله 2: چگونه از BNO055 برای محلی سازی دو بعدی استفاده کنیم؟
BNO055 IMU یک حسگر هوشمند Bosch 9 محور است که می تواند جهت گیری مطلق را ارائه دهد.
برگه داده مستندات کاملی را ارائه می دهد. این یک جزء با تکنولوژی بالا است ، این یک محصول نسبتاً پیچیده است و من چند ساعت وقت گذاشتم تا نحوه کار آن را بیاموزم و روش های مختلف استفاده از آن را امتحان کنم.
من فکر می کنم به اشتراک گذاری این تجربه می تواند مفید باشد.
ابتدا از کتابخانه Adafruit استفاده کردم که ابزار خوبی برای کالیبراسیون و کشف سنسور است.
در پایان و پس از آزمایش های زیاد تصمیم گرفتم
- از کتابخانه Adafruit فقط برای صرفه جویی در کالیبراسیون استفاده کنید
- استفاده از 3 حالت تمام BNO055 (NDOF ، IMU ، Compss)
- Arduino Nano را برای محاسبه محلی سازی بر اساس اندازه گیری های BNO055 اختصاص دهید
مرحله 3: Hardware Point of Vue
BNO055 جزء I2C است. بنابراین برای برقراری ارتباط به منبع تغذیه ، SDA و SCL نیاز دارد.
فقط با توجه به محصولی که خریداری کرده اید به ولتاژ Vdd دقت کنید. تراشه Bosch در محدوده: 2.4V تا 3.6V کار می کند و می توانید قطعه 3.3v و 5v را پیدا کنید.
برای اتصال نانو و BNO055 هیچ مشکلی وجود ندارد.
- BNO055 از نانو استفاده می کند
- SDA و SCL با 2 تا 2k مقاومت کششی متصل می شوند.
- 3 LED متصل به نانو برای تشخیص (با مقاومت)
- 2 کانکتور برای تعریف حالت پس از بوت استفاده می شود
- 1 اتصال به سمت BNO (Gnd ، Vdd ، Sda ، Scl ، Int)
- 1 اتصال به سمت Robot/Mega (+9V ، Gnd ، sda ، Scl ، Pin11 ، Pin12)
کمی لحیم کاری و بس!
مرحله 4: چگونه کار می کند؟
از نقطه ارتباطی vue:
- نانو استاد اصلی گذرگاه I2C است
- Robot/Mega و BNO055 برده های I2C هستند
- نانو ثبات ثبات BNO055 را می خواند
- Robot/Mega یک سیگنال عددی برای درخواست کلمه از نانو می دهد
از نقطه محاسبه vue: نانو همراه با BNO055 ارائه می دهد
- عنوان قطب نما (برای محلی سازی استفاده می شود)
- یک عنوان نسبی (برای کنترل چرخش ها استفاده می شود)
- عنوان و موقعیت مطلق (برای کنترل حرکات استفاده می شود)
از نقطه نظر عملکردی vue: The Nano:
- کالیبراسیون BNO055 را مدیریت می کند
- پارامترها و دستورات BNO055 را مدیریت می کند
زیر سیستم Nano & BNO055:
- محاسبه سرفصل و مکان یابی مطلق برای هر ربات (با ضریب مقیاس)
- عنوان نسبی را در حین چرخش ربات محاسبه کنید
مرحله 5: معماری و نرم افزار
نرم افزار اصلی روی Arduino Nano اجرا می شود
- معماری بر اساس ارتباط I2C است.
- من تصمیم گرفتم یک نانو را اختصاص دهم زیرا این Atmega که ربات را اجرا می کند قبلاً بارگیری شده بود و این معماری استفاده از آن را در مکانهای دیگر آسان تر می کند.
- نانو ثبت BNO055 را می خواند ، سرفصل و محلی سازی را در رجیسترهای خود محاسبه و ذخیره می کند.
- Arduino Atmega که کد ربات را اجرا می کند ، اطلاعات رمزگذار چرخ ها را به نانو می فرستد و سرفصل ها و محلی سازی داخل رجیسترهای نانو را می خواند.
کد فرعی (نانو) در اینجا در GitHub موجود است
ابزار کالیبراسیون Adafruit در اینجا در GitHub (کالیبراسیون در eeproom ذخیره می شود)
مرحله ششم: چه چیزی یاد گرفتم؟
در مورد I2C
ابتدا سعی کردم 2 استاد (آردوینو) و 1 برده (سنسور) را در یک گذرگاه داشته باشم ، اما در نهایت این امکان وجود دارد و ساده ترین حالت این است که فقط نانو را به عنوان اصلی تنظیم کرده و از اتصال GPIO بین 2 آردوینو برای "درخواست توکن" استفاده کنم. به
در مورد BNO055 برای جهت دو بعدی
من می توانم روی 3 حالت مختلف تمرکز کنم: NDOF (ترکیب ژیروسکوپ ، شتاب سنج و قطب نما) زمانی که ربات بیکار است ، IMU (ژیروسکوپ ترکیبی ، شتاب سنج) هنگام حرکت روبات و قطب نما در مرحله محلی سازی. جابجایی بین این حالت ها آسان و سریع است.
برای کاهش اندازه کد و حفظ امکان استفاده از وقفه BNO055 برای تشخیص برخورد ، ترجیح می دهم از کتابخانه Adafruit استفاده نکنم و این کار را به تنهایی انجام دهم.
توصیه شده:
اندازه گیری زمان (ساعت اندازه گیری نوار): 5 مرحله (همراه با تصاویر)
Time Time (Tape Measure Clock): برای این پروژه ، ما (Alex Fiel & amp؛ Anna Lynton) یک ابزار اندازه گیری روزانه تهیه کردیم و آن را به ساعت تبدیل کردیم! طرح اولیه این بود که یک نوار اندازه گیری موجود را موتور کنید. در ساخت آن ، ما تصمیم گرفتیم که راحت تر بتوانیم پوسته خودمان را ایجاد کنیم
استفاده از مدار برای اندازه گیری ولتاژ دروازه دیجیتال: 7 مرحله
استفاده از مدار برای اندازه گیری ولتاژهای دروازه دیجیتال: مدارهای دیجیتال عموماً از منابع 5 ولت استفاده می کنند. ولتاژهای دیجیتال که از 5v -2.7 ولت در سری TTL (نوعی تراشه دیجیتال یکپارچه) زیاد در نظر گرفته می شوند و دارای مقدار 1. ولتاژ دیجیتال هستند فرم 0-0.5 کم در نظر گرفته می شود و دارای
ARUPI - یک واحد ضبط خودکار کم هزینه/واحد ضبط خودکار (ARU) برای بوم شناسان Soundscape: 8 مرحله (همراه با تصاویر)
ARUPI - یک واحد ضبط خودکار کم هزینه/واحد ضبط خودکار (ARU) برای بوم شناسان Soundscape: این دستورالعمل توسط آنتونی ترنر نوشته شده است. این پروژه با کمک زیادی از Shed در دانشکده محاسبات ، دانشگاه کنت توسعه یافت (آقای دانیل ناکس کمک بزرگی بود!). این به شما نشان می دهد که چگونه یک ضبط صوتی خودکار بسازید
IoT Hydroponics - استفاده از IBM's Watson برای اندازه گیری PH و EC: 7 مرحله (همراه با تصاویر)
IoT Hydroponics - استفاده از واتسون IBM برای اندازه گیری PH و EC: این دستورالعمل نحوه نظارت بر EC ، pH و درجه حرارت تنظیمات هیدروپونیک و بارگذاری داده ها در سرویس IBM Watson را نشان می دهد. واتسون برای شروع آزاد است. برنامه های پولی وجود دارد ، اما برنامه رایگان برای این پروژه بیش از حد کافی است
برای اندازه گیری دما از خازن ها استفاده کنید: 9 مرحله
از خازن ها برای اندازه گیری دما استفاده کنید: این پروژه به این دلیل به وجود آمد که من یک کیت خازن با خازن های عمدتا X7R (با کیفیت خوب) خریدم ، اما برخی از مقادیر بالاتر 100nF و بالاتر دی الکتریک Y5V ارزان تر و پایدارتر بود ، که تغییرات زیادی را در دما نشان می دهد. و عملیات