چگونه کوادکوپتر خود را طراحی کنیم. چگونه یک کوادکوپتر بر اساس آردوینو بسازیم ما یک برنامه برای کوادکوپتر در آردوینو می نویسیم

با سلام خدمت خوانندگان عزیز. در این مقاله در مورد نحوه مونتاژ کوادکوپتر با استفاده از آردوینو صحبت خواهیم کرد. این ساده‌ترین کار، اگرچه بسیار هیجان‌انگیز نیست، که نتیجه آن ظاهر یک پهپاد کوچک، طراحی، مونتاژ و پیکربندی خواهد بود. با دستان خودم. بیایید بلافاصله رزرو کنیم که ما در مورد ارزان ترین پهپاد ممکن از مقرون به صرفه ترین قطعات صحبت می کنیم.

قبل از شروع مونتاژ کوادکوپتر با دستان خود، باید تمام قطعات لازم را تهیه کنید. مغز محصول خانگی ما کنترلر پرواز خواهد بود آردوینو اونو. توانایی های آن برای کنترل یک پهپاد بیش از اندازه کافی است.

علاوه بر میکروکنترلر، به موارد زیر نیاز داریم:

  • باتری (ترجیحا چندین) 3.7 ولت
  • برد MPU-6050 (ژیروسکوپ و شتاب سنج روی آن نصب شده است)
  • ترانزیستور ULN2003A
  • موتورهای کموتاتور با روتور توخالی 0820
  • سیم ها

چند نکته لازم است ذکر شود. از آنجایی که ما جمع آوری می کنیم، انتخاب ما روی موتورهای کموتاتور با روتور توخالی (به اصطلاح موتورهای بدون هسته) افتاد. آنها تقریباً به اندازه موتورهای براشلس قابل اعتماد نیستند، اما بسیار ارزان تر هستند. علاوه بر این، می توانید بدون کنترل کننده های سرعت اضافی انجام دهید.

اما بدون ژیروسکوپ و شتاب سنج غیرممکن است. ژیروسکوپ برای اطمینان از اینکه کوادکوپتر می تواند جهت حرکت مشخصی را حفظ کند، ضروری است، در حالی که شتاب سنج برای اندازه گیری شتاب استفاده می شود. بدون این وسایل، کنترل هلی کوپتر بسیار دشوارتر (اگر نه غیرممکن) خواهد بود، زیرا آنها داده هایی را برای سیگنالی که سرعت چرخش پروانه ها را تنظیم می کند، ارائه می دهند.

ما قاب را در لیست قطعات مورد نیاز قرار ندادیم. می توانید آن را خریداری کنید یا می توانید قاب، تیرها و پایه های موتورها را پرینت سه بعدی کنید. گزینه دوم برای ما ارجح به نظر می رسد، به خصوص که می توانید پروژه های کوادکوپتر را به راحتی در اینترنت پیدا کنید.

قاب چاپ شده روی چاپگر نه تنها سبک، بلکه بادوام نیز خواهد بود. اما اگر به چاپگر سه بعدی دسترسی ندارید، می توانید یک قاب سفارش دهید.

دستورالعمل گام به گام مونتاژ

نحوه چاپ قاب و بست

پرینترهای سه بعدی را می توان در بسیاری از دانشگاه ها، آزمایشگاه ها و فضاهای کاری یافت. اغلب دسترسی به آنها رایگان است. برای مثال می توانید با استفاده از Solidworks مدل هایی برای چاپ خود ایجاد کنید. یا می توانید از راه حل های آماده استفاده کنید و در صورت لزوم پارامترها را تغییر دهید.

نحوه تنظیم شتاب سنج ژیروسکوپ

برای پیکربندی شتاب سنج-ژیروسکوپ (I2C)، توصیه می کنیم از کتابخانه زیر استفاده کنید. تحت هیچ شرایطی برد را به ولتاژ 5 ولت وصل نکنید، در غیر این صورت فوراً به آن آسیب خواهید رساند.


اجازه دهید به طور خلاصه به شما بگوییم که چرا یک برد I2C با سنسور جالب است. تفاوت قابل توجهی با یک برد شتاب سنج معمولی با سه خروجی آنالوگ برای محورهای X، Y، Z دارد. I2C یک گذرگاه رابط است که امکان انتقال مقادیر قابل توجهی از داده ها را از طریق پالس های دیجیتال منطقی فراهم می کند.

خروجی های آنالوگ زیادی روی برد وجود ندارد و این یک مزیت بزرگ برای I2C است، زیرا در غیر این صورت باید از تمام پورت های آردوینو برای دریافت اطلاعات از ژیروسکوپ و شتاب سنج استفاده کنیم.

نمودار اتصال به آردوینو

قبل از اینکه برد I2C بتواند با آردوینو ارتباط برقرار کند، باید به کنترلر متصل شود.

ما به طرح کد اسکنر I2C یا بهتر بگوییم کد آن علاقه مندیم.

کد برنامه را کپی کنید، آن را در یک طرح خالی قرار دهید و سپس آن را اجرا کنید. مطمئن شوید که اتصال به 9600 برقرار است (برای انجام این کار، اجرا کنید آردوینو IDEاز طریق Tools-Serial Monitor). یک دستگاه I2C با آدرس 0x68 یا 0x69 باید ظاهر شود. آدرس را یادداشت یا به خاطر بسپارید. در صورت عدم تخصیص آدرس، به احتمال زیاد مشکل در اتصال به الکترونیک آردوینو است.

در مرحله بعد، به طرحی نیاز داریم که بتواند داده های ژیروسکوپ و شتاب سنج را پردازش کند. گزینه های زیادی در اینترنت وجود دارد و پیدا کردن گزینه مناسب مشکلی نیست. به احتمال زیاد به صورت آرشیو شده خواهد بود. آرشیو دانلود شده را از حالت فشرده خارج کنید، Arduino IDE را باز کنید و کتابخانه را اضافه کنید (طرح-وارد کردن کتابخانه-افزودن کتابخانه). ما به پوشه های MPU6050 و I2Cdev نیاز داریم.

MPU6050_DMP6 را باز کنید و کد را به دقت بررسی کنید. شما نیازی به انجام هیچ عمل پیچیده ای نخواهید داشت، اما اگر آدرس 0x60 اختصاص داده شده است، باید خط بالا را از کامنت بردارید (آن را می توانید در زیر #شامل پیدا کنید) و آدرس صحیح را بنویسید. در ابتدا tav به صورت 0×68 مشخص شده است.

ما برنامه را دانلود می کنیم، پنجره مانیتور را از طریق 115200 باز می کنیم و به سادگی دستورالعمل ها را دنبال می کنیم. در چند لحظه شما داده هایی را از ژیروسکوپ/شتاب سنج دریافت خواهید کرد. سپس سنسورها باید کالیبره شوند.

برد را روی یک سطح صاف قرار دهید و طرح MPU6050_calibration.ino را اجرا کنید (در اینترنت به راحتی پیدا می شود). کد را مرور کنید، آدرس پیش فرض 0x68 است. پس از شروع برنامه، اطلاعاتی در مورد انحرافات (افست) خواهید داشت. آن را یادداشت کنید، در طرح MPU6050_DMP6 به آن نیاز خواهیم داشت.

تمام، شما یک ژیروسکوپ و شتاب سنج کارآمد دارید.

برنامه برای آردوینو

این برنامه به شما کمک می کند تا پهپاد را کنترل کنید. الگوریتم مورد استفاده برای تثبیت بر اساس دو کنترلر PID است. یکی برای رول، دیگری برای زمین است.

تفاوت سرعت چرخش جفت پروانه های 1 و 2 برابر است با اختلاف سرعت جفت پروانه های 3 و 4. همین امر در مورد جفت های 1، 3 و 2، 4 نیز صادق است. کنترل کننده PID اختلاف را در سرعت، پس از آن رول و زمین صفر می شود.

به پین ​​های دیجیتال آردوینو برای موتورها دقت کنید و تغییر اسکچ را فراموش نکنید.

اتصال به کنترلر

برای کنترل هلی کوپتر باید کنترل موتورها را با اتصال آنها به آردوینو به دست آوریم. کنترلر تنها ولتاژ و جریان کمی را تولید می کند، بنابراین اتصال مستقیم موتورها معنی ندارد. در عوض، می توانید چندین ترانزیستور برای افزایش ولتاژ نصب کنید.


برای ایجاد یک نمودار ما نیاز داریم:

  • آردوینو
  • موتورها
  • ترانزیستورها

همه اینها روی یک برد مدار مونتاژ شده و توسط اتصال دهنده ها به هم متصل می شوند.

اولین مرحله اتصال 4 خروجی PWM (با علامت ~) به ترانزیستور است. سپس کانکتورها را به موتورهای متصل به منبع تغذیه وصل کنید. در مورد ما، ما از باتری 5 ولت استفاده می کنیم، اما باتری 3-5 ولت نیز کار می کند.

ترانزیستورها باید ارت باشند و زمین روی برد آردوینو باید به زمین باتری وصل شود. موتورها باید در جهت صحیح بچرخند، یعنی برای بلند کردن هلی کوپتر کار کنند و نه غلت زدن آن.

با تعویض کنتاکت موتور از 5 ولت به ترانزیستور، می بینید که روتور جهت چرخش را تغییر می دهد. هنگامی که تنظیمات را انجام دادید، دیگر نیازی به تغییر جهت چرخش روتور نخواهید داشت. اکنون ما به سرعت علاقه مندیم.

پس از اجرا و تست شتاب سنج، مدار خود را روی ProtoBoard نصب می کنیم. در غیاب آن، می توانید از یک برد مدار معمولی استفاده کنید، که قبلاً ریل های کنترل کننده را روی آن لحیم کرده اید.

قبل از لحیم کردن شتاب سنج به برد، لازم است آن را روی سطح افقی کالیبره کنید. این به دستیابی بیشتر کمک می کند کار دقیقسنسور در آینده

چگونه دیگری می توانید چهارگوش خود را ارتقا دهید؟

گلوگاه هلی کوپتر موتورهای جمع کننده آن است. اگر جستجو کنید، می توانید موتورهای کمی بزرگتر و قدرتمندتر از موتورهای پیشنهادی در مقاله ما پیدا کنید، اما عملکرد قابل توجهی نخواهد داشت.


اما هدف ما مونتاژ یک کوادکوپتر ارزان قیمت با دست خودمان بود و به همین دلیل از موتورهای ارزان قیمت استفاده شد. موتورهای براشلس به طور قابل توجهی گران تر هستند، اما به طور قابل توجهی قدرت و قابلیت اطمینان بیشتری به شما می دهند. آنها همچنین باید با کنترل کننده های سرعت خریداری شوند، اما این یک ارتقاء واقعا موثر است.

انتخاب برد Arduino Uno به این دلیل است که می توانید به راحتی تراشه را از روی آن جدا کرده و روی ProtoBoard قرار دهید. این به شما امکان می دهد تا وزن پهپاد را 30 گرم کاهش دهید، اما باید خازن های اضافی را در مدار قرار دهید. مناسب برد آردوینو Pro Mini.

مربوط به برنامه های آردوینو، سپس می توان آن را نسبتاً آسان تغییر داد و با عملکردهای جدید تکمیل کرد. نکته اصلی این است که با کمک آن پهپاد قادر است حالت خودکارموقعیت خود را تثبیت کنید

ایده اصلی این پروژه ایجاد یک کوادکوپتر ارزان قیمت است که دارای منبع تغذیه مستقل و الگوریتم تثبیت پرواز با استفاده از آردوینو باشد.

علاوه بر آردوینو، به موتورهای ژیروسکوپ/شتاب سنج و براش نیاز داریم. در پروژه فوق روش هایی برای کنترل پرواز کوادکوپتر در نظر گرفته نشده است اما قطعا می توان آنها را اضافه کرد. قیمت این کوادکوپتر تقریباً 60 دلار است.

کوادکوپتر چیست؟

من مطمئن هستم که اکثر کسانی که این مقاله را می خوانند از قبل می دانند کوادکوپتر چیست. اگر نه، در اینجا به توضیح مختصری از این دستگاه های فوق العاده می پردازیم.

کوادکوپتر یک وسیله پرنده با چهار پایه است که هر یک دارای یک موتور با ملخ است. کوادکوپترها اساساً شبیه هلیکوپترها هستند، اما حرکت، چرخش و شیب آنها با عملکرد همزمان چهار ملخ تضمین می شود. علاوه بر این، کوادکوپترها مفهومی مانند "پیچ" - چرخش حول محور طولی دارند. به منظور تثبیت پرواز کوادکوپتر، دو ملخ در یک جهت (در جهت عقربه های ساعت) و دو ملخ در جهت مخالف (در خلاف جهت عقربه های ساعت) می چرخند. به لطف این قابلیت شناور شدن در یک موقعیت در هوا، کوادکوپترها عمدتاً برای عکاسی هوایی و فیلمبرداری استفاده می شوند. البته کوادکوپتر و سایر دستگاه های مشابه با موتورهای متعدد در عملیات امداد و نجات، پلیس، نظامی و ... استفاده می شود. که در اخیراهزینه قطعات تولید کوادکوپتر به میزان قابل توجهی کاهش یافته و شرکت های زیادی اقدام به تولید آنها کرده اند. خرید یک محصول تمام شده امروز مشکلی نخواهد داشت.

بنابراین، شما قبلاً کمی متوجه شده اید که کوادکوپتر چیست، اکنون به سراغ آن می رویم توضیح مختصرفرآیند ساخت آن

اولین کاری که ما انجام دادیم خرید گوگل برای جستجوی اجزای مورد نیاز برای ساخت آن بود.

در بیشتر موارد از میکروکنترلرها و موتورهای بدون جاروبک (سوپاپ) استفاده می شود. تصمیم گرفته شد از آردوینو به عنوان کنترلر استفاده شود، زیرا از نظر قیمت یک پلت فرم ایده آل است. اولین مشکلی که به وجود آمد موتورهای براشلس بود. به یاد داشته باشید، ما روی بودجه 60 دلاری تمرکز می کنیم. و هزینه یک موتور براشلس، که می تواند در طراحی کوادکوپتر ما استفاده شود، از 20 تا 60 دلار متغیر است! علاوه بر این، استفاده از این موتورها مستلزم نصب کنترلرهای اضافی - کنترل کننده سرعت است. بنابراین تصمیم گرفته شد از موتورهای برس خورده استفاده شود. ابعاد کوادکوپتر ما کوچک است، بنابراین موتورهایی با گشتاور نسبتا کم خریداری کردیم. گوگل پیشنهاد داد که کوادکوپترهایی با درایوهای مشابه وجود داشته باشد. موتورهای یافت شده می توانند تا 55 گرم وزن را بلند کنند که برای ما بسیار مناسب است. مرحله بعدی حل مشکلات تثبیت موتورها با استفاده از ژیروسکوپ و شتاب سنج است. ژیروسکوپ وسیله ای است که از گرانش زمین برای تعیین زاویه تمایل (جهت) در فضا استفاده می کند. طراحی کلاسیک ژیروسکوپ شامل یک دیسک است که آزادانه می چرخد ​​به نام روتور. روتور بر روی محوری نصب شده است که در مرکز چرخ بزرگتر و پایدارتر قرار دارد. هنگامی که محور می چرخد، روتور در حالت ایستا باقی می ماند که مربوط به مرکز ثقل است. شتاب سنج یک دستگاه فشرده است که برای اندازه گیری شتاب استفاده می شود. هنگامی که یک جسم از حالت استراحت خارج می شود (شروع به حرکت می کند)، شتاب سنج ارتعاشاتی را که در طول این حرکت ایجاد می شود ثبت می کند. شتاب‌سنج‌ها از کریستال‌های میکروسکوپی استفاده می‌کنند که در اثر برخورد، ولتاژ تولید می‌کنند. این ولتاژ حذف شده و مقدار شتاب تشکیل می شود. این دو سنسور در کوادکوپتر مورد نیاز است. بر اساس خوانش آنها است که یک سیگنال کنترلی تولید می شود که سرعت چرخش موتورها را برای اطمینان از چرخش، حرکت یا تثبیت کوادکوپتر ما تنظیم می کند.

قطعات، قطعات و تجهیزات لازم

برای پروژه کوادکوپتر با کنترل آردوینو به موارد زیر نیاز داریم:

  • - سیم ها؛
  • - باتری های لیتیومیدر 3.7 ولت؛
  • - ترانزیستور: ULN2003A ترانزیستور دارلینگتون (شما می توانید ترانزیستوری بگیرید که بارهای بزرگتر را پشتیبانی می کند).
  • - موتورها: 0820 Coreless Motors;
  • - میکروکنترلر: Arduino Uno;
  • - شتاب سنج/ژیروسکوپ: برد MPU-6050 (گزینه همه کاره ارزان و شاد).
  • - چاپگر سه بعدی یا دسترسی به آن برای چاپ قطعات طراحی کوادکوپتر.
  • - ابزار (از جمله آهن لحیم کاری و قابلیت استفاده از آن!).
  • خرید باتری های لیتیومی 3.7 ولت (مراقب باشید، در بین محصولات ارائه شده باید دقیقاً موردی را که مناسب شماست پیدا کنید!)

پرینت سه بعدی قطعات کوادکوپتر

یکی از اولین قدم ها ساخت فریم کوادکوپتر ماست. تصمیم بر این شد که مسیر کمترین مقاومت را در پیش بگیریم و قاب را روی چاپگر سه بعدی چاپ کنیم. علاوه بر سهولت در ساخت، قاب چاپ شده روی چاپگر سه بعدی به لطف چاپ لانه زنبوری بسیار سبک وزن است. قطعات در Solidworks طراحی شده اند. در زیر تمام مدل های جامد آورده شده است. می توانید به راحتی آنها را دانلود کرده و برای چاپ ارسال کنید. جزئیات در قالب stl. ذخیره می شوند. اگر بخواهید، می توانید با خیال راحت آنها را با استفاده از همان Solidworks تغییر داده و تغییر دهید. مدل ها پارامتریک هستند، بنابراین اگر تصمیم به استفاده از موتورهای دیگر دارید، کافی است چند پارامتر را در مدل تغییر دهید و یک فریم آماده برای ابعاد کوادکوپتر خود دریافت کنید.


در نتیجه چیزی شبیه به این دریافت خواهید کرد:



راه اندازی شتاب سنج-ژیروسکوپ (I2C)


در این مثال از برد MPU6050 شرکت SparkFun استفاده شده است. قیمت آن در آمازون حدود 10 دلار است و به خوبی کار می کند. چین مشابه در Aliexpress یا Ebay تخته های مشابه را تا 5 دلار ارائه می دهد. هم عالی کار میکنه

I2C چیست؟

بر تخته های سادهشتاب سنج، همه چیز منطقی و واضح است: دارای خروجی های آنالوگ مجزا برای محورهای X، Y و Z است. هر خروجی مربوط به یک محور شتاب سنج جداگانه است. اگر اکنون به برد I2C نگاه کنید، متوجه خواهید شد که همه چیز تا حدودی گیج کننده تر است. I2C یک استاندارد ارتباطی است که در آن حجم زیادی از اطلاعات با استفاده از پالس های منطقی دیجیتال به جای خروجی های آنالوگ منتقل می شود. MPU6050 6 محور کنترل شده را در اختیار شما قرار می دهد (3 محور برای ژیروسکوپ و 3 محور برای شتاب سنج). اگر همه آنها آنالوگ بودند، باید از تمام پورت های آنالوگ آردوینو Uno استفاده می کردیم. با پروتکل I2C ما از پین های بسیار کمتری برای اتصال استفاده می کنیم.

نمودار اتصال آردوینو

نمودار اتصال برد MPU6050 در زیر نشان داده شده است. لطفاً توجه داشته باشید که کتابخانه آردوینو استفاده از این پین ها را فرض می کند. به عنوان یک قاعده، حتی اگر بردی از سازنده دیگری داشته باشید، پین ها یکسان برچسب گذاری می شوند، بنابراین، نمودار اتصال یکسان می ماند.

اگر آن را با ولتاژ 5 ولت تغذیه کنید، برد ممکن است آسیب ببیند، پس مراقب باشید و از ولتاژ 3.3 ولت استفاده کنید.بعضی از بردهای MPU6050 دارای تنظیم کننده ولتاژ هستند که به عنوان فیوز عمل می کند، اما باز هم ارزش ریسک را ندارد. اگر برد شما دارای پین AD0 است، باید به زمین (GND) متصل شود. در مورد ما، پایه VIO به AD0 روی خود برد متصل است، بنابراین نیازی به اتصال پایه AD0 نیست.

طرحی برای آردوینو

در این مرحله به دانش برنامه نویسی آردوینو نیاز دارید. اگر چیزی را متوجه نشدید، همانجا توقف کنید و سعی کنید آن را کشف کنید. توضیحات زیر در بسیاری از سوالات به شما کمک می کند، اما توصیف تمام تفاوت های ظریف ممکن نیست.

پس از اتصال MPU-6050 به آردوینو، آن را روشن کرده و طرح کد اسکنر I2C را دانلود کنید.

کد برنامه را کپی کنید، آن را در یک طرح خالی قرار دهید و آن را اجرا کنید. سریال باز کن مانیتور آردوینو IDE (Tools->Serial Monitor) و مطمئن شوید که به 9600 (پایین سمت چپ) متصل هستید.

اگر همه چیز را به درستی انجام دادید، دستگاه I2C باید شناسایی شود و آدرس 0x68 یا 0x69 به آن اختصاص داده شود. آن را بنویسید. اگر خطا ظاهر شد، اتصال خود را بررسی کنید.

اکنون باید طرحی را آپلود کنید که اطلاعات را از شتاب سنج/ژیروسکوپ پردازش می کند. بیش از یک نسخه از طرح های مشابه در سراسر اینترنت شناور است، توصیه می کنیم از این نسخه استفاده کنید. پس از دنبال کردن لینک، روی "دانلود فایل فشرده" کلیک کنید. پس از دانلود، آرشیو را از حالت فشرده خارج کنید. سپس Arduino IDE را باز کنید. به sketch->import library -> add library بروید. شما باید هر دو پوشه را اضافه کنید: I2Cdev و MPU6050.

پس از نصب کتابخانه ها، فایل MPU6050_DMP6 (MPU6050 -> Examples) را باز کنید. توصیه می‌کنم آن را تماشا کنید، حتی اگر دانش خاصی در کد ندارید. اگر آدرس 0x69 را اختصاص داده اید، باید یک خط را در بالای کد (بعد از #includes) از کامنت بردارید، زیرا پیش فرض 0x68 است. اکنون برنامه باید کامپایل شود.

برنامه را دانلود کنید، پنجره سریال مانیتور را باز کنید (این بار با 115200) و طبق دستور عمل کنید. تبریک می‌گوییم، زیرا اکنون باید بتوانید مقادیر را از شتاب‌سنج/ژیروسکوپ از طریق آردوینو دریافت کنید!

اکنون طرح کالیبراسیون را اجرا کنید، که می توانید آن را از اینجا دانلود کنید: MPU6050_calibration.ino (دوباره، پورت پیش فرض 0x68 است، اما می توانید آن را تغییر دهید). داده های افست دریافتی را ثبت کنید. شما از این داده ها در طرح MPU6050_DMP6 (و در برنامه بعدی برای کوادکوپتر) استفاده خواهید کرد.

اکنون شما یک شتاب سنج/ژیروسکوپ فعال و مطمئناً مفید دارید.

اتصال به آردوینو

ما به اتصال شتاب سنج نگاه کردیم. قدم بعدی این است که آردوینو را به کنترل موتورها برسانید. برد آردوینو هیچ خروجی ارائه نمی دهد پراهمیتجریان و ولتاژ، بنابراین به جای اتصال مستقیم موتورها به خروجی های دیجیتال برد، از ترانزیستورها برای "تقویت" ولتاژ استفاده می کنیم.

بیایید شروع به مونتاژ مدار الکتریکی کنیم. در این مرحله به آردوینو، موتورها، ترانزیستورها (برد مدار و کانکتورها) نیاز داریم. نمودار اتصال در زیر، زیر توضیحات متنی لازم آورده شده است. چهار خروجی PWM (با علامت ~ در آردوینو) همانطور که در تصاویر نشان داده شده است را به ترانزیستور وصل کنید. پس از این، کانکتورها را به موتورهایی که به منبع تغذیه متصل هستند وصل کنید. پروژه کوادکوپتر فوق از منبع تغذیه 5 ولت استفاده می کرد، اما باتری 3-5 ولت نیز باید کار کند.

مطمئن شوید که ترانزیستورها به زمین متصل هستند و زمین آردوینو از منبع تغذیه به زمین متصل است. مطمئن شوید که روتورهای موتور در جهت صحیح می چرخند (آنها باید بتوانند کوادکوپتر را بلند کنند، نه رول). اگر پایه موتور را از 5 ولت به ترانزیستور تغییر دهید، روتور موتور شروع به چرخش در جهت مخالف می کند. پس از پیکربندی، دیگر لازم نیست جهت چرخش موتورها را تغییر دهید. ما فقط سرعت را تغییر خواهیم داد.

پس از اجرای شتاب‌سنج و آزمایش آن، باید همه چیز را روی پروتوبورد نصب کنید (می‌توانید از یک برد مدار که روی آن ریل‌ها را برای نصب روی آردوینو لحیم می‌کنید استفاده کنید. می‌توانید مسیر ظریف‌تری را بروید و یک Proto Shield بخرید). شما نباید ترانزیستور را روی یک برد نمونه سازی لحیم کنید. بهتر است از یک سوکت کنتاکت دار برای آن استفاده کنید تا بتوانید در هر زمانی آن را تعویض کنید.

در مورد ما، ما شتاب سنج را به برد لحیم کردیم و تنها پس از آن کالیبراسیون انجام شد. اما تمرین نشان می دهد که این کاملاً صحیح نیست. برای افزایش دقت قرائت ژیروسکوپ/شتاب سنج، بهتر است ابتدا آن را روی سطح صاف کالیبره کرده و سپس لحیم کنید.










اگر با این کنترلرها آشنایی ندارید، می توانید در مورد کنترل PID در ویکی بخوانید. کلاس PID برای آردوینو از سه ورودی استفاده می کند: نقطه تنظیم، اندازه گیری و خروجی. خروجی به موقعیت فعلی و اندازه گیری ها بستگی دارد. کنترل کننده PID سعی می کند خروجی را طوری تغییر دهد که اندازه گیری ها با موقعیت هدف مطابقت داشته باشد. این الگوریتم از ریاضیات جالب استفاده می کند. الگوریتم کنترل PID سعی می کند به گونه ای کار کند که مقادیر تا حد ممکن پایدار بمانند.

الگوریتم ما از دو کنترلر PID برای تثبیت استفاده می کند: یکی برای pitch و دیگری برای roll. تفاوت سرعت چرخش ملخ های 1 و 2 با اختلاف سرعت پروانه های 3 و 4 برابر خواهد بود. همین طور برای جفت های 1،3 و 2،4. پس از این، کنترل کننده PID اختلاف سرعت را تغییر می دهد و گام و رول را به صفر می رساند.

فراموش نکنید که بررسی کنید کدام پین های دیجیتال آردوینو به موتورها می رود و بر اساس آن طرح را تغییر دهید.

نوسازی بیشتر کوادکوپتر با استفاده از آردوینو


مشکل اصلی یک کوادکوپتر کوچک قیمت و وزن آن است. شما می توانید به دنبال موتورهای بزرگتر و قدرتمندتر باشید، اما این کار عملکرد آن را بهبود نمی بخشد. چیزی که واقعاً به شما کمک می کند (اگر مایلید پول بیشتری خرج کنید) موتورهای براشلس (سوپاپ) هستند. از نظر مشخصات، آنها یک مرتبه بهتر هستند، اما علاوه بر آنها باید از کنترل کننده های سرعت استفاده کنید که باعث گران شدن کوادکوپتر می شود.

برای کاهش وزن طراحی، بهتر است از Arduino Uno استفاده کنید، زیرا برای این مدل کنترلر می توانید تراشه ریزپردازنده "دوخته شده" را جدا کرده و مستقیماً روی ProtoBoard خود نصب کنید. در نتیجه حدود 30 گرم وزن اضافه خواهید کرد که در چنین مقیاسی بسیار زیاد است. علاوه بر این، شما باید از چندین خازن دیگر و غیره استفاده کنید. یا چگونه گزینه جایگزین، می توانید از آردوینو پرو مینی استفاده کنید.

برنامه آردوینو که در قسمت قبل نوشته و ارائه شد را می توان به راحتی با قابلیت های اضافی گسترش داد و غنی کرد. مهمترین چیز این است که در این مرحله کوادکوپتر می تواند به طور خودکار پرواز را تثبیت کند. اگر می‌خواهید کنترل از راه دور راه‌اندازی کنید، می‌توانید به فرستنده/گیرنده یا ماژول‌های بلوتوث نگاه کنید. به طور کلی، شما اکنون پایه را دارید و حتی فضای بیشتری برای مدرن سازی بیشتر وجود دارد.

نظرات، سوالات خود را بنویسید و به اشتراک بگذارید تجربه شخصیزیر ایده ها و پروژه های جدید اغلب در بحث ها متولد می شوند!

این کوادکوپتر دارای منبع تغذیه مستقل نیز می باشد. هزینه کل چنین محصول خانگی حدود 60 دلار است.

اگر مقدار قابل توجهی دارید، بهتر است محصول خانگی خود را به موتورهای بدون برس با کنترلرهای مناسب مجهز کنید.

برای تثبیت پرواز از ژیروسکوپ و شتاب سنج استفاده می شود. برای تعیین زاویه شیب کوادکوپتر نسبت به گرانش زمین به ژیروسکوپ نیاز است. برای محاسبه شتاب به یک شتاب سنج نیاز است.

مواد و ابزار:
- باتری های لیتیومی (3.7 ولت)؛
- سیم ها؛
- ترانزیستور ULN2003A ترانزیستور دارلینگتون (ترانزیستورهای قوی تری را می توان استفاده کرد).
- موتورهای نوع 0820 بدون هسته؛
- میکروکنترلر آردوینو Uno؛
- برد MPU-6050 (این هم ژیروسکوپ و هم شتاب سنج است).
- در دسترس بودن چاپگر سه بعدی یا دسترسی به آن؛
- ابزار لازم

فرایند ساخت:

گام یک. ساخت بدنه کوادکوپتر
بدنه بسیار سریع و ساده ساخته می شود. با استفاده از پرینتر سه بعدی چاپ می شود. ایجاد یک قاب به این روش خوب است، زیرا به لطف چاپ لانه زنبوری، سبک ظاهر می شود. طراحی قطعات در برنامه Solidworks انجام شد. با استفاده از این برنامه می توانید پارامترهای کیس را ویرایش کرده و در صورت نیاز تغییرات خود را در آن اعمال کنید.




پس از پرینت فریم کوادکوپتر، می توانید موتورها و سیم های لحیم کاری را روی آن ها نصب کنید.




مرحله دو. اتصال آردوینو
نحوه اتصال برد MPU6050 در نمودار زیر قابل مشاهده است. درک آن مهم است کتابخانه آردوینوبه معنای اتصال از طریق این مخاطبین است. اگر مداری از سازنده دیگری استفاده می شود، مهم است که اطمینان حاصل شود که کنتاکت ها به یک ترتیب مرتب شده اند.


برای تغذیه برد فقط از 3.3 ولت استفاده می شود که اگر آن را با ولتاژ 5 ولت تغذیه کنید آسیب می بیند. برخی از بردهای MPU6050 دارای فیوز هستند که از سیستم در برابر آن محافظت می کند ولتاژ بالا، اما بهتر است ریسک نکنید. اگر برد دارای پین AD0 باشد، باید به زمین (GND) متصل شود. در این حالت VIO مستقیماً روی برد به پایه AD0 متصل می شود بنابراین نیازی به اتصال پایه AD0 نیست.












برای اینکه آردوینو بتواند موتورها را کنترل کند، به ترانزیستورهایی نیاز است که به لطف آنها می توان ولتاژ بالا را به موتورها رساند. شما می توانید با جزئیات بیشتر نحوه اتصال همه عناصر را در نمودار مشاهده کنید.

مرحله سوم. طرحی برای آردوینو
هنگامی که MPU-6050 به آردوینو متصل شد، باید آن را روشن کنید و طرح کد اسکنر I2C را دانلود کنید. در مرحله بعد، باید کد برنامه را کپی کرده و در یک طرح خالی قرار دهید. پس از این، باید مانیتور سریال Arduino IDE (Tools->Serial Monitor) را باز کنید و از اتصال 9600 مطمئن شوید.
اگر همه چیز به درستی انجام شود، دستگاه I2C شناسایی می شود، آدرس 0x68 یا 0x69 به آن اختصاص داده می شود، باید یادداشت شود.
سپس، طرحی بارگذاری می شود که اطلاعات ژیروسکوپ و شتاب سنج را پردازش می کند. تعداد زیادی از آنها در اینترنت وجود دارد، اما بهتر است از آنها استفاده کنید.


در مرحله آخر، باید مقادیر ژیروسکوپ و شتاب سنج را کالیبره کنید. برای این کار باید یک سطح صاف پیدا کنید و MPU6050 را روی آن قرار دهید. سپس، طرح کالیبراسیون راه اندازی می شود، داده های انحراف حاصل ثبت می شود و سپس در طرح MPU6050_DMP6 استفاده می شود.

مرحله چهارم برنامه برای آردوینو
به لطف برنامه ای که قرار داده شده است، کوادکوپتر تثبیت می شود و در حالت پایدار آویزان می شود. در ادامه با استفاده از این برنامه کوادکوپتر کنترل می شود.


برای تثبیت کوادکوپتر از دو کنترلر PID استفاده شده است. یکی برای زمین مورد نیاز است، و دوم برای رول. کنترلر سرعت چرخش پروانه ها را اندازه گیری می کند و بر این اساس کوادکوپتر کنترل می شود.

مرحله پنجم اصلاح کوادکوپتر

مشکل اصلی یک کوادکوپتر کوچک و ارزان وزن آن است. برای حل این مشکل، باید موتورهای قدرتمندتر و سبک تری نصب کنید؛ موتورهای براشلس بهترین گزینه هستند که به آنها موتور سوپاپ نیز می گویند. آنها بسیار بهتر از انواع قلم مو هستند، اما شما همچنین باید برای آنها کنترل کننده های سرعت بخرید، بنابراین هزینه محصولات خانگی به شدت افزایش می یابد.

در این مقاله در مورد کوادکوپترهای مبتنی بر آردوینو، مزایا و دسته بندی قیمت آنها صحبت خواهیم کرد.

کوادکوپتر با عملکرد یک دستگاه کامپیوتری.


که در دنیای مدرنانواع مختلفی از مدل های کوادکوپتر وجود دارد که برای اهداف مختلف طراحی شده اند. آنها فقط اسباب بازی نیستند، که از همان ابتدای ظهور در بازار داخلی تصور می شد. آنها اکنون دستگاه هایی هستند که برای انجام انواع مختلفی از وظایف طراحی شده اند. آنها در بسیاری از موارد برای فعالیت های خلاقانه حرفه ای استفاده می شوند. برای اینکه کوادکوپتر به درستی کار کند باید در تولید علاوه بر پایه به قطعات اضافی نیز مجهز شود. برای اینکه دستگاه با استفاده از ریموت کنترل شود کنترل از راه دورنصب یک پردازنده و بسیاری از قطعات دیگر سیستم الکترونیکی روی آن ضروری است. امروزه تعداد زیادی پردازنده وجود دارد که برای ساخت کوادکوپترهای با کیفیت و کاربردی استفاده می شود. در میان آنها آردوینو متمایز است. این یک پردازنده نسبتاً قدرتمند است که به کوادکوپتر اجازه می دهد تا برخی از عملکردهای یک دستگاه رایانه را داشته باشد.

امروزه یک کوادکوپتر با استفاده از آردوینو را می توان به راحتی در هر فروشگاه اینترنتی که در تولید چنین دستگاه هایی تخصص دارد خریداری کرد. به لطف این پردازنده، بزرگترین و قدرتمندترین دستگاه ها از نظر پارامترهای فنی ایجاد می شوند. آنها برای کارهای مختلف مناسب هستند. آنها هم برای پروازهای معمولی و هم برای فیلمبرداری حرفه ای طراحی شده اند. با تشکر از پردازنده قدرتمندآنها به راحتی تمام وظایف محول شده توسط کاربران را انجام می دهند. سرعت تبادل اطلاعات با کنترل از راه دور به میزان قابل توجهی افزایش می یابد. علاوه بر این، فیلم‌هایی که در زمان واقعی گرفته شده‌اند، فوراً به آن‌ها منتقل می‌شوند دستگاه های تلفن همراه، که به کوادکوپتر متصل می شوند این لحظه. لازم به ذکر است که بسیاری از کاربران خود دستگاه های مبتنی بر پردازنده آردوینو را مونتاژ می کنند. تقریباً در هر فروشگاه تخصصی موجود است.

ویژگی های کوادکوپتر مبتنی بر Adruino.


دستگاه های آردوینو بسیار محبوب هستند زیرا استفاده از آنها بسیار راحت است. کوادکوپترهایی از این نوع به سرعت تمامی وظایف محول شده توسط کاربران را انجام می دهند. با این پردازنده می توان دستگاهی باکیفیت به دست آورد که به شما این امکان را می دهد که در طول یک پرواز معمولی و حتی در طول مراحل فیلمبرداری از امکانات بی حد و حصری لذت ببرید. تصاویر با وضوح بالا به دست می آیند. دستگاه های مبتنی بر آردوینو به راحتی کار می کنند. به لطف این پردازنده، خود دستگاه قادر است کار خود را در مدت زمان طولانی انجام دهد و سیستم آن از کار بیفتد. دستگاه ها روشن است آخرین نسخه هاآردوینوها مقرون به صرفه نیستند. با این حال، این به کاربران امکان می دهد کوادکوپترهای سطح حرفه ای را دریافت کنند که به سرعت و بدون وقفه تمام وظایف محول شده توسط مصرف کنندگان را انجام می دهند. عملکرد مطمئن کوادکوپتر را تضمین می کند.



سلام، ساکنین هابرو!
در این سری مقالات، درب کوادکوپتر را کمی بیشتر از نیاز سرگرمی باز می کنیم و همچنین برنامه خودمان را برای فلایت کنترلر که یک برد معمولی آردوینو مگا 2560 خواهد بود، می نویسیم، پیکربندی و راه اندازی می کنیم.

پیش رو داریم:

  1. مفاهیم اولیه (برای خلبانان مبتدی بالگرد).
  2. کنترلرهای PID با نمایش تعاملی وب روی یک کوادکوپتر مجازی.
  3. برنامه واقعی برای آردوینو و برنامه پیکربندی برای Qt.
  4. تست های خطرناک کوادکوپتر روی طناب. اولین پروازها
  5. تصادف و باخت در میدان. جستجوی خودکاراز هوا با استفاده از Qt و OpenCV.
  6. تست های موفقیت آمیز نهایی خلاصه کردن. کجا بریم؟

مطالب حجیم است، اما من سعی خواهم کرد آن را در 2-3 مقاله قرار دهم.
امروز انتظار داریم: اسپویلر با ویدیویی از نحوه پرواز کوادکوپتر ما; مفاهیم اساسی؛ کنترل کننده های PID و تمرین انتخاب ضرایب آنها.

این همه برای چیست؟

علاقه تحصیلی، که، اتفاقا، نه تنها من را دنبال می کند (،،). و البته برای روح. در حین کار بسیار لذت بردم و وقتی "IT" با برنامه من پرواز کرد، احساس خوشحالی واقعی و غیرقابل توصیف کردم :-)

برای چه کسی؟

این مواد همچنین ممکن است برای افرادی که دور هستند یا فقط قصد دارند در سیستم های چند روتوری درگیر شوند، جالب باشد. حالا بیایید در مورد هدف اجزای اصلی کوادکوپتر، نحوه تعامل آنها با یکدیگر، در مورد مفاهیم اولیه و اصول پرواز صحبت کنیم. البته، تمام دانشی که نیاز داریم را می‌توان در اینترنت پیدا کرد، اما نمی‌توان مجبور شد آن را در اینترنت گسترده جستجو کنیم.

بدون به خطر انداختن درک خود از مفاهیم اساسی، از هر چیزی که می دانید تا ترم ناآشنا بعدی بگذرید. برجسته شده است، یا به یک تصویر غیرقابل درک.

نه شماره 1!

شروع به نوشتن برنامه خود برای کنترلر پرواز نکنید تا زمانی که راه حل های آماده ای را امتحان کنید، که اکنون تعداد زیادی از آنها وجود دارد (Ardupilot، MegapirateNG، MiltiWii، AeroQuad و غیره). اول از همه، خطرناک است! کنترل یک کوادکوپتر بدون GPS و فشارسنج، و حتی بیشتر از آن زمانی که دچار مشکل می شود، واژگون می شود یا دقیقاً در جایی که باید پرواز نمی کند، به تمرین نیاز دارد - و این تقریباً در اولین آزمایش ها اجتناب ناپذیر است. ثانیا، با درک اینکه چه چیزی باید برنامه ریزی شود و در نهایت چگونه باید کار کند، برنامه نویسی برای شما چندین برابر آسان تر خواهد بود. باور کن: ریاضیات پرواز تنها بخش کوچکی از کد برنامه است.

نه شماره 2!

اگر به دنبال علایق آکادمیک نیستید و فقط به کارهایی نیاز دارید که راه حل های آماده برای مدت طولانی انجام داده اند (پرواز کنید، عکس بگیرید، فیلم بگیرید، پرواز کنید) تعهد نکنید که برنامه خود را برای کنترلر پرواز بنویسید. تکلیف و غیره) در حالی که همه چیز را خودتان می نویسید، زمان زیادی طول می کشد، حتی اگر تنها نباشید.

مفاهیم اساسی


کوادکوپترها انواع مختلفی دارند، اما همه آنها توسط چهار روتور اصلی متحد می شوند:
با وجود تقارن ظاهری، تشخیص قسمت جلویی کوادکوپتر برای خلبان بسیار مهم است (با فلش نشان داده شده است). در اینجا، مانند مدل‌های ماشین‌های رادیویی: هنگامی که فرمان "به جلو" داده می‌شود، کوادکوپتر نه در جایی که خلبان به آن نگاه می‌کند، بلکه جایی که دماغه خیالی کوادکوپتر اشاره می‌کند پرواز می‌کند. این مملو از خطر است: برای مبتدیان ممکن است دشوار باشد که دستگاهی را که توسط باد گرفتار شده است، به نحوی به سمت خود برگردانده شده است (البته ما در مورد پرواز با دوربین اول شخص و در مورد "هوشمند" صحبت نمی کنیم. حالت های پرواز با استفاده از قطب نما و GPS.) راه حل این مشکل را می توان تا حدی با پیچ های جلو یا پرتوهای رنگ متفاوت، نوعی توپ در جلو یا LED های رنگی متفاوت برطرف کرد. اما همه اینها وقتی که pepelats به سرعت به یک نقطه در بالای افق تبدیل می شود بی فایده است.

ما روی یک قاب کوادکوپتر به شکل "X" پرواز خواهیم کرد زیرا ظاهر آن را بیشتر دوست دارم. هر طرحی مزایا و هدف خاص خود را دارد. علاوه بر کوادکوپتر، مولتی کوپترهای دیگری نیز وجود دارد. حتی اگر گزینه های عجیب و غریب را در نظر نگیرید، هنوز یک دسته کامل از آنها وجود دارد!



بیایید بفهمیم که کوادکوپتر ما در داخل چگونه ساختار دارد و کنترلر پروازی که قصد داریم برنامه ریزی کنیم باید چه کار کند.




زاویه زمین، رول و انحراف (پیچ، رول، انحراف)- زوایایی که مرسوم است جهت کوادکوپتر را در فضا تعیین و تنظیم کنید.


گاه از کلمه «زاویه» حذف می شود و به سادگی می گویند: قیر، رول، انحراف. اما طبق ویکی پدیا این کاملاً دقیق نیست. پرواز کوادکوپتر در جهت مورد نیاز با تغییر این سه زاویه حاصل می شود. به عنوان مثال، برای پرواز به جلو، به دلیل اینکه موتورهای عقب کمی قوی تر از موتورهای جلو می چرخند، کوادکوپتر باید کج شود:

کوادکوپتر گازی- میانگین حسابی بین سرعت چرخش همه موتورها. هر چه گاز بیشتر باشد، تراست کل موتورها بیشتر می شود، کوادکوپتر را بیشتر می کشند. بالا(به جلو نروید!!! "دمپایی روی زمین" در اینجا به معنای سریعترین صعود است). معمولاً به صورت درصد اندازه گیری می شود: 0٪ - موتورها متوقف شده اند، 100٪ - چرخش با حداکثر سرعت. گاز معلق است- حداقل سطح گازی که لازم است تا کوادکوپتر ارتفاع را از دست ندهد.

دریچه گاز، پیچ، رول، انحراف - اگر بتوانید این چهار پارامتر را کنترل کنید، می توانید کوادکوپتر را کنترل کنید. گاهی اوقات به آنها کانال های کنترل نیز می گویند. اگر ریموت کنترل دو کاناله خریداری کرده باشید، قادر به کنترل کوادکوپتر نخواهید بود. سه کانال برای هلیکوپترهای کوچک مناسب تر است: شما می توانید بدون کنترل رول پرواز کنید، اما در یک کوادکوپتر راحت نیست. اگر می خواهید حالت پرواز را تغییر دهید، باید برای یک کنترل از راه دور پنج کانال هزینه کنید. اگر می‌خواهید شیب و حرکت دوربین روی برد را کنترل کنید، دو کانال دیگر وجود دارد، اگرچه متخصصان از یک کنترل از راه دور جداگانه برای این کار استفاده می‌کنند.

حالت های پرواز زیادی وجود دارد. GPS، فشارسنج و مسافت یاب استفاده می شود. اما ما می خواهیم یک پایه را پیاده سازی کنیم - حالت تثبیت ( خنجر زدن، تثبیت کردن، در یک "خرد") پرواز کنید)، که در آن کوادکوپتر بدون توجه به عوامل خارجی، زوایایی را که از طریق کنترل از راه دور به آن داده می شود، حفظ می کند. در این حالت در صورت عدم وجود باد، کوادکوپتر می تواند تقریبا در جای خود آویزان شود. خلبان باید باد را جبران کند.

جهت چرخش پیچ ها به طور تصادفی انتخاب نمی شود. اگر همه موتورها در یک جهت می چرخیدند، کوادکوپتر به دلیل گشتاورهای ایجاد شده در جهت مخالف می چرخید. بنابراین، یک جفت موتور مخالف همیشه در یک جهت و جفت دیگر در جهت دیگر می چرخند. از اثر وقوع گشتاورهای چرخشی برای تغییر زاویه انحراف استفاده می شود: یک جفت موتور کمی سریعتر از دیگری شروع به چرخش می کند و اکنون کوادکوپتر به آرامی به سمت ما می چرخد ​​(چه وحشتناک):



  • LFW - چرخش در جهت عقربه های ساعت جلو چپ (جلو چپ، چرخش در جهت عقربه های ساعت)
  • RFC - چرخش خلاف جهت عقربه‌های ساعت جلوی راست (جلو راست، چرخش خلاف جهت عقربه‌های ساعت)
  • LBC - چرخش در خلاف جهت عقربه های ساعت به عقب (چپ عقب، چرخش خلاف جهت عقربه های ساعت)
  • RBW - چرخش در جهت عقربه های ساعت به عقب (راست عقب، چرخش در جهت عقربه های ساعت)

سرعت چرخش موتورها را کنترل می کند کنترلر پرواز (کنترل کننده، مغزها). معمولاً این یک برد یا جعبه کوچک با ورودی و خروجی های زیاد است. تعداد زیادی کنترلر مختلف با مجموعه ای از قابلیت های مختلف، سیستم عامل های مختلف و وظایف مختلف وجود دارد. در اینجا فقط چند مورد است:




وظیفه کلی کنترلر پرواز انجام چرخه کنترل چندین ده بار در ثانیه است که شامل: خواندن قرائت سنسور، خواندن کانال های کنترل، پردازش اطلاعات و صدور سیگنال های کنترلی به موتورها به منظور اجرای دستورات خلبان است. این چیزی است که ما قصد داریم برنامه ریزی کنیم.

انواع مختلفی از سنسورها وجود دارد که می توان از آنها استفاده کرد. ما از آنهایی که قبلاً تقریباً اجباری شده اند در همه کوادکوپترها استفاده خواهیم کرد ژیروسکوپ سه محوره و شتاب سنج سه محوره. شتاب سنج شتاب را اندازه گیری می کند و ژیروسکوپ سرعت زاویه ای را اندازه گیری می کند. با تشکر از آنها، کنترلر پرواز زوایای زمین فعلی، رول و انحراف را می داند. این سنسورها را می توان در کنترلر پرواز یا خارجی تعبیه کرد. فرآیند محاسبه سه زاویه بر اساس خوانش سنسور موضوعی برای مقاله جداگانه است. اما ما نیازی به دانستن این موضوع در اینجا نداریم: MPU-6050 همه چیز را برای ما انجام خواهد داد. این یک برد کوچک است که محاسبات و فیلترهای لازم را در داخل انجام می دهد و با استفاده از پروتکل i2c زوایای تقریباً آماده تولید می کند. تنها کاری که باید انجام دهیم این است که آنها را بشماریم، آنها را با بقیه داده ها پردازش کنیم و سیگنال های کنترلی را به موتورها صادر کنیم.

موتورهای مولتی کوپتر جریان های زیادی را مصرف می کنند، بنابراین کنترلر پرواز آنها را نه به طور مستقیم، بلکه از طریق درایورهای سخت افزاری خاص به نام کنترل می کند. کنترل کننده های سرعت (ESC، رگولاتور، eska). این رگولاتورها توسط باتری اصلی روی برد تغذیه می شوند، سیگنال کنترل از کنترلر دریافت می شود و در خروجی دارای سه سیم (A, B, C) هستند که مستقیماً به موتورها می روند (هر موتور رگولاتور مخصوص به خود را دارد. !)




"پروتکل" ارتباط بین رگولاتور و موتور برای ما به اندازه "پروتکل" ارتباط بین کنترلر پرواز و رگولاتور برای ما مهم نیست، زیرا باید رگولاتور را از طریق کنترلر به صورت برنامه ای کنترل کنیم. رگولاتورهایی وجود دارند که از طریق i2c کنترل می شوند، اما رایج ترین آنها توسط یک سیگنال موج مربعی با حداقل 0 ولت و حداکثر 3-5 ولت کنترل می شوند. PWMیا PWMو برخی استدلال می کنند که صحیح تر است - PPM. جزئیات بیشتر، برای مثال).

"پروتکل" یک کلمه قوی است: برای فرمان دادن به موتور برای چرخش با حداکثر سرعت، کنترل کننده باید پالس هایی به مدت 2 میلی ثانیه ارسال کند که با یک صفر منطقی بین 10 تا 20 میلی ثانیه در هم آمیخته شده است. مدت زمان پالس 1 میلی ثانیه مربوط به توقف موتور، 1.1 میلی ثانیه - 10٪ از حداکثر سرعت، بیشینه سرعت، 1.2 ms - 20٪ و غیره در عمل، مدت زمان صفر هیچ نقشی ندارد، فقط مدت زمان خود پالس مهم است.

با وجود تمام سادگی ظاهری، در اینجا کمین وجود دارد: کنترلرهای پرواز متفاوت هستند تنظیمات مختلف، تنظیم کننده ها متفاوت هستند و حداقل (1 میلی ثانیه) و حداکثر (2 میلی ثانیه) جهانی نیستند. بسته به عوامل بسیاری، محدوده 1-2 ms ممکن است در واقع 1.1 - 1.9 ms باشد. برای اینکه تنظیم کننده و کنترل کننده کاملاً به یک زبان صحبت کنند، رویه ای وجود دارد کالیبراسیون تنظیم کننده. در طی این روش، محدوده کنترل ها تغییر می کند و با محدوده کنترل کننده برابر می شود. این رویه به برنامه هر کنترلر متصل شده و شامل چندین است مراحل ساده(مراحل بسته به سازنده ممکن است متفاوت باشد - دستورالعمل ها را بخوانید!):

  • منبع تغذیه رگولاتور را خاموش کنید.
  • پروانه را از موتور خارج کنید.
  • سیگنالی مطابق با حداکثر سرعت چرخش به ورودی کنترلر اعمال کنید.
  • برق را به رگولاتور اعمال کنید. موتور باید بدون کمک خارجی بی حرکت بماند.
  • سیگنالی مطابق با حداقل سرعت چرخش به ورودی کنترلر اعمال کنید.
  • 1-2 ثانیه مکث کنید، منتظر صدای جیر جیر باشید.
  • منبع تغذیه رگولاتور را خاموش کنید.

پس از این، مرزهای بازه مربوطه به کنترلر وارد می شود. هنگام تلاش برای بلند شدن با رگولاتورهای کالیبره نشده، عواقب آن ممکن است غیرمنتظره باشد: از تکان ناگهانی کوادکوپتر به نزدیکترین درخت تا بی حرکتی کامل موتورها در هر مقدار دریچه گاز.

PWM دقیقاً از همین اصل استفاده می کند گیرنده آنبورد. این دستگاه کوچک، دریافت سیگنال های رادیو کنترل از زمین و انتقال آنها به کنترلر پرواز. اغلب، کنترلر پرواز برای هر کانال کنترل (دریچه گاز، زمین، رول، و غیره) ورودی خاص خود را دارد که PWM به آن عرضه می شود. منطق تعامل ساده است: یک فرمان، به عنوان مثال، "70% دریچه گاز"، به طور مداوم از زمین به گیرنده می رود، جایی که به PWM تبدیل می شود و از طریق یک سیم جداگانه به کنترل کننده پرواز ارسال می شود. همینطور با زمین، رول، انحراف.

از آنجایی که گیرنده و کنترلر رابطه PWM دوستانه خود را دارند، باید کالیبره شوند: کنترل‌های از راه دور با گیرنده‌ها با محدوده عملکرد خود متفاوت هستند. کنترل کننده باید بتواند خود را تطبیق دهد. روش کالیبراسیون رادیوییبرخلاف کالیبراسیون رگولاتورها، باید خودمان آن را به عنوان بخشی از برنامه پرواز ایجاد کنیم. طرح کلی کالیبراسیون به شرح زیر است:

  • پروانه ها را از موتورها جدا کنید تا در صورت امکان.
  • به نحوی کنترلر را در حالت کالیبراسیون رادیویی قرار دهید.
  • کنترلر کالیبراسیون رادیویی را برای چند ده ثانیه شروع می کند.
  • در زمان تعیین شده، تمام میله های کنترل از راه دور را در همه جهات حرکت دهید تا متوقف شوند.
  • کنترلر حداکثر و مینیمم ها را برای همه کانال های کنترل در طول زمان به خاطر می آورد حافظه داخلیبرای قرن ها.
بنابراین: در طول کالیبراسیون رادیویی، کنترلر پرواز محدوده گیرنده را برای همه کانال های کنترل به خاطر می آورد. در طول کالیبراسیون ESC، محدوده کنترلر پرواز در تمام ESC ها وارد می شود.

علاوه بر برنامه کنترلر پرواز، یک برنامه دیگر مورد نیاز است: رابط راه اندازی کنترلر پرواز. اغلب، این یک برنامه رایانه شخصی است که از طریق USB به کنترلر پرواز متصل می شود و به کاربر اجازه می دهد برنامه پرواز را پیکربندی و بررسی کند، به عنوان مثال: اجرای کالیبراسیون رادیویی، پیکربندی پارامترهای تثبیت، بررسی عملکرد سنسورها، تنظیم مسیر پرواز در نقشه، تعیین رفتار مولتی کوپتر در هنگام از دست رفتن سیگنال و موارد دیگر. رابط پیکربندی خود را در C++ و Qt در قالب یک ابزار کنسول می نویسیم. اگر به آینده نگاه کنید اینجاست:




هیچکس از حوادث مصون نیست. حتی پروانه‌های پلاستیکی ده اینچی روی موتورهای کوچک می‌توانند کبودی‌های خونی روی پوست باقی بگذارند که برای یک هفته دیگر آسیب خواهد دید (تست شخصی). اگر در حالی که کوادکوپتر را روشن حمل می کنید، چوب گاز روی ریموت کنترل را درگیر کنید، می توانید آرایش و مدل موی جدیدی به خود بدهید. بنابراین، کنترلر پرواز باید حداقل ایمنی را فراهم کند: مکانیسم مسلح / خلع سلاح. حالت "خلع سلاح" کوادکوپتر به این معنی است که موتورها خاموش هستند و حتی یک فرمان کامل دریچه گاز از ریموت کنترل هیچ تاثیری ندارد، اگرچه برق تامین می شود. حالت "مسلح" کوادکوپتر به این معنی است که دستورات از راه دور توسط کنترلر پرواز انجام می شود. در این حالت کوادکوپترها بلند می شوند، پرواز می کنند و فرود می آیند. کوادکوپتر روشن می شود و باید فوراً به حالت خلع سلاح شود در صورتی که خلبان بی توجه آن را روشن کند زمانی که میله دریچه گاز روی کنترل از راه دور صفر نیست. برای قرار دادن هلی کوپتر در حالت "مسلح"، خلبان باید برخی از ژست های از پیش توافق شده را با چوب های کنترل از راه دور انجام دهد. اغلب این حرکت به این صورت است که چوب چپ را در گوشه پایین سمت راست نگه دارید (دریچه گاز = 0٪، انحراف = 100٪) برای چند ثانیه. پس از این، کنترلر پرواز حداقل یک خودآزمایی حداقلی انجام می دهد و در صورت موفقیت آمیز بودن، خود را مسلح می کند"(آماده برای پرواز!) با یک حرکت دیگر (دریچه گاز = 0٪، یاو = 0٪) کوادکوپتر" خلع سلاح می شودیکی دیگر از اقدامات امنیتی خوب این است خلع سلاح خودکار، اگر گاز برای 2-3 ثانیه صفر بود.

در مورد موتور، باتری، رگولاتور، پروانه

انتخاب اجزای یک مولتیکوپتر موضوعی برای یک سری مقالات است. اگر قصد دارید اولین کوادکوپتر خود را بسازید، آنچه را که به آن نیاز دارید را فرموله کنید و از مشاوره افراد با تجربه استفاده کنید یا لیستی از قطعاتی که شخص دیگری گردآوری کرده و با موفقیت روی آن پرواز کرده است را تهیه کنید.

با این حال، برای درک کلی، دانستن نکات اصلی مفید است.

باتری ها


در بین آماتورها و حرفه ای ها، سیستم های چند روتوری رایج ترین هستند باتری های لیتیوم پلیمری، به عنوان منابع اصلی برق برای الکترونیک و موتورهای روی برد. آنها با ظرفیت، ولتاژ و حداکثر جریان خروجی متمایز می شوند. ظرفیت، طبق معمول، با آمپر ساعت یا میلی آمپر ساعت اندازه گیری می شود. ولتاژ با تعداد "سلول" باتری اندازه گیری می شود. یک "قوطی" به طور متوسط ​​3.7 ولت است. یک "قوطی" با شارژ کامل 4.2 ولت است. رایج ترین باتری ها آنهایی هستند که سه تا شش سلول دارند. حداکثر جریان خروجی بر حسب آمپر اندازه گیری می شود و به عنوان مثال به صورت زیر مشخص می شود: 25 درجه سانتیگراد. C ظرفیت باتری است، 25 ضریب است. اگر ظرفیت 5 آمپر باشد، چنین باتری می تواند 25 * 5 = 125 آمپر را ارائه دهد. البته، بهتر است پارامتر خروجی فعلی را با ذخیره بگیرید، اما، اساسا، هر چه بزرگتر باشد، باتری گران تر است. مثال برچسب زدن: 25C 3S 4500mah.

هر بانک یک باتری جداگانه است. همه آنها به صورت سری لحیم شده اند. به منظور شارژ یکنواخت تمامی بانک ها، یک کانکتور بالانس با دسترسی به هر بانک به صورت جداگانه و ویژه ارائه شده است. دستگاه شارژ.

موتورها، پروانه ها، رگلاتورها


پارامتر اصلی موتور براشلس kv آن است. این تعداد دور در دقیقه برای هر ولت ولتاژ اعمال شده است. متداول ترین موتورها با kv از 300 تا 1100 هستند. Kv نزدیکتر به 1000 معمولاً برای کوادکوپترهای کوچک (1-2 کیلوگرم به اضافه 500 گرم بار) انتخاب می شود و به پروانه های پلاستیکی تا قطر 12 اینچ مجهز می شوند. مولتی کوپترهای بزرگ (برای بلند کردن تجهیزات خوب و سنگین عکس-فیلم) یا هواپیماهای بلند پرواز (برای ثبت زمان پرواز) معمولاً دارای موتورهایی با kv پایین (300-500) و پروانه های کربنی عظیم (قطر 15 تا 20 اینچ) هستند. Kv تنها نیست پارامتر مهمموتور: اغلب می توانید جداول کامل وابستگی قدرت و رانش موتور به ولتاژ عرضه شده و نوع پروانه نصب شده را پیدا کنید. علاوه بر این، هر موتور برای محدوده ولتاژ خود (تعداد سلول های باتری) و حداکثر جریان خود طراحی شده است. اگر سازنده 3-4S نوشته است، نباید آن را با باتری های 5S استفاده کنید. همین امر در مورد رگولاتورها نیز صدق می کند.

اگر موتور برای جریان حداکثر 30 آمپر طراحی شده است، تنظیم کننده باید برای جریان حداکثر 30 + 10 آمپر طراحی شود تا از گرم شدن بیش از حد جلوگیری شود. گاورنرهای بی کیفیت یا نامناسب می توانند باعث به اصطلاح "لغزش های همگام سازی" شوند و موتور را در حین پرواز متوقف کنند و شما یک اصطلاح مولتی روتور دیگر را تشخیص دهید: " سیاره را گرفت." یکی دیگر نکته مهم- ضخامت و کیفیت سیم ها. یک سیم با اندازه نادرست یا یک اتصال دهنده بد می تواند منجر به آتش سوزی در هوا شود.

همانطور که می بینید، تفاوت های ظریف زیادی وجود دارد. من حتی نیمی از آنها را لیست نکرده ام، بنابراین انتخاب اجزای اولین مولتی کوپتر خود بسیار دشوار است.

ریاضیات تثبیت، کنترل کننده های PID (PID)


اگر تصمیم دارید وارد مولتی کوپتر شوید، دیر یا زود باید با تنظیم کنترلر PID دست و پنجه نرم کنید، زیرا این دستگاه ریاضی تقریباً در تمام کارهای تثبیت کننده استفاده می شود: تثبیت زوایای یک کوادکوپتر در هوا، پرواز و نگه داشتن موقعیت. با استفاده از GPS، نگه داشتن ارتفاع با استفاده از فشارسنج، مکانیسم های بدون براش تثبیت دوربین فیلمبرداری در پرواز (گیمبال دوربین).

شما یک گیمبال دوربین دو محوره می‌خرید، مثلاً یک گوپرو را آنجا می‌گذارید، آن را روشن می‌کنید و به جای تثبیت، تشنج، لرزش و انقباض می‌گیرید، البته همه سنسورها کالیبره شده‌اند و مشکلات مکانیکی برطرف می‌شود. دلیل آن پارامترهای نادرست کنترلرهای PID است.

شما یک مولتیکوپتر جمع می کنید، سنسورها، رگولاتورها، رادیو را کالیبره می کنید، همه چیز را چک می کنید، سعی می کنید بلند شوید و آنقدر در هوا کسل کننده است که حتی یک نسیم ملایم آن را برمی گرداند. یا برعکس: او آنقدر تیز است که ناگهان بلند می شود و بدون اجازه یک سالتو سه گانه انجام می دهد. دلیل هنوز یکسان است: پارامترهای کنترل کننده های PID.

برای بسیاری از دستگاه‌هایی که از کنترل‌کننده‌های PID استفاده می‌کنند، دستورالعمل‌هایی برای راه‌اندازی، و حتی چندین دستورالعمل علاوه بر دستورالعمل‌های ویدیویی متعدد از خود کاربران وجود دارد. اما برای سهولت در پیمایش این تنوع، درک نحوه عملکرد این تنظیم کننده ها در داخل مفید است. در ضمن قراره سیستم تثبیت کوادکوپتر خودمون رو بنویسیم! من پیشنهاد می کنم "دوباره اختراع" و "روی انگشتان" برای درکفرمول کنترل کننده PID برای کسانی که زبان ریاضی خشک را ترجیح می دهند، ویکی پدیا را توصیه می کنم، زیرا... به زبان روسی این مطالب هنوز با جزئیات ارائه نشده است.

ما یک کوادکوپتر را در فضای دو بعدی در نظر خواهیم گرفت، جایی که فقط یک زاویه دارد - زاویه رول، و دو موتور: چپ و راست.




کنترلر پرواز به طور مداوم دستورات را از زمین دریافت می کند: "30 درجه بغلتید" ، "10 درجه بچرخید" ، "0 درجه بچرخید (افق را نگه دارید)"؛ وظیفه آن این است که با در نظر گرفتن باد، توزیع ناهموار وزن کوادکوپتر، سایش ناهموار موتورها، اینرسی کوادکوپتر و غیره، آنها را با حداکثر سرعت و دقت با استفاده از موتورها انجام دهد. بنابراین، فلایت کنترل باید به طور مداوم مشکل سرعت چرخش را برای هر موتور با در نظر گرفتن مقدار فعلی زاویه بانک و مقدار مورد نیاز حل کند. به طور مستمر، البته، یک کلمه قوی است. همه چیز به توانایی های محاسباتی سخت افزار خاص بستگی دارد. در Adruino، می توان یک تکرار از چرخه پردازش و کنترل را در 10 میلی ثانیه جا داد. یعنی هر 10 میلی ثانیه یک بار زوایای کوادکوپتر خوانده می شود و بر اساس آنها سیگنال های کنترلی به موتورها ارسال می شود. این 10 میلی ثانیه نامیده می شود دوره تنظیم. واضح است که هرچه کوچکتر باشد، تنظیم بیشتر و دقیقتر اتفاق می افتد.

سطح گاز از گیرنده به کنترل کننده جریان دارد. بیایید آن را نشان دهیم. یادآوری می کنم که این میانگین حسابی بین سرعت چرخش همه موتورها است که به صورت درصدی از حداکثر سرعت چرخش بیان می شود. اگر و سرعت چرخش موتورهای چپ و راست هستند، پس:




پاسخ کوادکوپتر (نیروی) کجاست که به دلیل اینکه موتور سمت چپ سریعتر از گاز می چرخد ​​و موتور سمت راست به همان اندازه کندتر می چرخد، گشتاور ایجاد می کند. همچنین می تواند مقادیر منفی بگیرد، سپس موتور مناسب سریعتر می چرخد. اگر یاد بگیریم که این مقدار را در هر تکرار چرخه پردازش محاسبه کنیم، آنگاه قادر خواهیم بود کوادکوپتر را کنترل کنیم. واضح است که حداقل باید به زاویه رول فعلی () و زاویه رول مورد نظر () که از صفحه کنترل می آید بستگی داشته باشد.

بیایید یک موقعیت را تصور کنیم: دستور "keep the horizon" (= 0) دریافت می شود و کوادکوپتر یک رول در سمت چپ دارد:




- تفاوت (خطا) بین و که کنترل کننده به دنبال به حداقل رساندن آن است.

هر چه تفاوت بین زاویه رول مورد نظر و زاویه فعلی بیشتر باشد، واکنش باید قوی تر باشد، موتور سمت چپ باید سریعتر نسبت به سمت راست بچرخد. اگر این را با استفاده از نماد خود بنویسیم:



در اینجا P ضریب تناسب است. هر چه بزرگتر باشد، واکنش قوی تر خواهد بود، کوادکوپتر به انحراف از زاویه رول مورد نیاز واکنش تیزتری نشان می دهد. این فرمول بصری و ساده کار را توصیف می کند کنترل کننده تناسبی. نکته ساده است: هر چه کوادکوپتر بیشتر از موقعیت مورد نیاز منحرف شود، باید تلاش بیشتری برای بازگرداندن آن انجام دهید. متأسفانه، این فرمول باید پیچیده باشد. دلیل اصلی بیش از حد است.

در چند ده میلی ثانیه (چند تکرار چرخه پردازش)، تحت تأثیر کنترل کننده تناسبی، کوادکوپتر به موقعیت مورد نیاز (در این مورد افقی) باز می گردد. در تمام این مدت، خطا و تلاش همان علامت را خواهد داشت، اگرچه از نظر بزرگی کمتر و کمتر می شود. با به دست آوردن سرعت چرخش معین (سرعت زاویه ای)، کوادکوپتر به سادگی به سمت دیگر غلت می خورد، زیرا هیچ کس آن را در موقعیت مورد نیاز متوقف نمی کند. مانند فنری است که همیشه می خواهد به حالت اولیه خود بازگردد، اما اگر آن را به عقب بکشید و رها کنید، نوسان می کند تا زمانی که اصطکاک تمام شود. البته کوادکوپتر نیز تحت تاثیر اصطکاک قرار خواهد گرفت، اما تمرین نشان می دهد که کافی نیست.

به همین دلیل، باید یک عبارت دیگر به کنترلر پروپشنال اضافه شود، که باعث کند شدن چرخش کوادکوپتر و جلوگیری از بیش از حد (غلتش در جهت مخالف) می شود - نوعی تقلید از اصطکاک در یک محیط چسبناک: هر چه سریعتر کوادکوپتر می چرخد، باید سخت تر تلاش کنید تا آن را متوقف کنید، البته در محدوده معقول. سرعت چرخش (نرخ تغییر خطا) را به صورت زیر نشان می دهیم، سپس:



که در آن D یک ضریب قابل تنظیم است: هر چه بزرگتر باشد، نیروی توقف قوی تر است. از یک درس فیزیک مدرسه، خاطرات مبهمی ظاهر می شود که نرخ تغییر هر کمیت مشتق این کمیت نسبت به زمان است:

.

و اکنون کنترل کننده تناسبی به یک تناسبی-دیفرانسیل تبدیل می شود (ترم متناسب و دیفرانسیل):

.

محاسبه خطا آسان است، زیرا در هر تکرار می دانیم و ; P و D پارامترهایی هستند که می توانند قبل از راه اندازی پیکربندی شوند. برای محاسبه مشتق (نرخ تغییر)، باید مقدار قبلی را ذخیره کرد، مقدار فعلی را دانست و زمان بین اندازه‌گیری‌ها را دانست (دوره کنترل). و اینجاست - فیزیک کلاس ششم مدرسه (سرعت = مسافت / زمان):

.

- دوره تنظیم؛ - مقدار خطا از تکرار قبلی چرخه تنظیم. به هر حال، این فرمول است ساده ترین راهتمایز عددی، و در اینجا برای ما کاملا مناسب است.

اکنون ما یک کنترلر دیفرانسیل تناسبی در یک دوکوپتر تخت داریم، اما هنوز یک مشکل دیگر وجود دارد. اجازه دهید لبه سمت چپ کمی بیشتر از سمت راست وزن داشته باشد، یا همان چیزی است که موتور سمت چپ کمی بدتر از سمت راست کار می کند. کوادکوپتر کمی به سمت چپ متمایل است و به عقب برنمی‌گردد: عدد دیفرانسیل صفر است و جمله تناسبی، اگرچه مقدار مثبت می‌گیرد، برای بازگشت کوادکوپتر به حالت افقی کافی نیست، زیرا لبه سمت چپ وزن کمی دارد. بیشتر از حق در نتیجه کوادکوپتر همیشه به سمت چپ کشیده می شود.

مکانیزمی برای نظارت بر این گونه انحرافات و اصلاح آنها لازم است. ویژگی بارز چنین خطاهایی این است که در طول زمان خود را اصلاح می کنند. اصطلاح انتگرال به کمک می آید. مجموع تمام خطاها را در تمام تکرارهای چرخه پردازش ذخیره می کند. این چگونه کمک خواهد کرد؟ اگر ترم تناسبی برای تصحیح یک خطای کوچک کافی نباشد، اما همچنان وجود داشته باشد، به تدریج، با گذشت زمان، عبارت انتگرال قدرت می گیرد و پاسخ را افزایش می دهد و کوادکوپتر زاویه رول مورد نیاز را می گیرد.

در اینجا یک نکته ظریف وجود دارد. فرض کنید 1 درجه است، چرخه کنترل 0.1 ثانیه است. سپس در یک ثانیه مجموع خطاها مقدار 10 درجه را می گیرد. و اگر چرخه پردازش 0.01 ثانیه باشد، مقدار آن تا 100 درجه افزایش می یابد. به طوری که در همان زمان، عبارت انتگرال برای دوره های مختلف تنظیم مقدار یکسانی به دست آورد، مقدار حاصل را در خود دوره تنظیم ضرب می کنیم. به راحتی می توان محاسبه کرد که در هر دو مورد مجموع 1 درجه از مثال به دست می آید. در اینجا آن است - عبارت انتگرال (در حال حاضر بدون ضریب قابل تنظیم):

.

این فرمول چیزی نیست جز یک انتگرال عددی در طول زمان یک تابع در بازه زمانی صفر تا لحظه فعلی. به همین دلیل است که این اصطلاح انتگرال نامیده می شود:

,

جایی که T لحظه جاری در زمان است.
زمان آن فرا رسیده است که فرمول نهایی کنترل کننده انتگرال-متناسب را بنویسیم:

,

کجا یکی از پارامترهای قابل تنظیم است که اکنون سه مورد از آن وجود دارد: . این فرمول برای استفاده از کد برنامه راحت است، اما در اینجا فرمولی است که در کتاب های درسی آورده شده است:

.

انواع مختلفی از آن وجود دارد، به عنوان مثال، می توانید مدول عبارت انتگرال را محدود کنید تا از آستانه مجاز خاصی تجاوز نکند (ما این کار را انجام خواهیم داد).

تمرین

خوب، اکنون زمان تمرین در انتخاب ضرایب است. به خوانندگان یک صفحه جاوا اسکریپت با یک کوادکوپتر مجازی ارائه می شود که قبلاً در تصاویر دیده اند: انتخاب پارامترهای کنترل کننده PID برای کوادکوپتر(JSFiddle). در اولین شروع، بیش از حد قابل مشاهده است - نوسانات در اطراف موقعیت مورد نیاز. هنگامی که نوسانات متوقف می شوند، می توانید این اثر را مشاهده کنید که ضریب تناسبی به دلیل کوادکوپتر "نامتقارن" (تنظیم شده توسط چک باکس "Asymmetry") نمی تواند با خطا مقابله کند. پارامترهای موجود برای تنظیم عبارتند از P، I، D. اکنون می‌دانید که با آنها چه کار کنید. "اسکرول" زیر کوادکوپتر را می توان با مقدار رول مورد نیاز کنترل کرد. "فاصله (ms):" - فاصله تنظیم. کاهش آن تقلب است، اما دیدن اینکه چگونه بر کیفیت تثبیت تاثیر می گذارد بسیار مفید است.

برای دوستداران ریاضیات "خالص"، ما می توانیم ارائه دهیم کنترل کننده PID انتزاعی را پیکربندی کنید

پارامترهای وارد شده به طور خودکار اعمال نمی شوند: باید روی "اعمال" کلیک کنید. چند نکته کوچک: اگر به نظرتان می رسد که کوادکوپتر خیلی کند است و نمی تواند به کنترل پاسخ دهد، می توانید P را افزایش دهید، اما مقدار P خیلی بزرگ ممکن است منجر به overshoot شود. پارامتر D به مقابله با بیش از حد کمک می کند، اما مقادیر بیش از حد بزرگ منجر به نوسانات مکرر یا دوباره به بیش از حد می شود. پارامتر I معمولاً 10 تا 100 برابر کمتر از پارامتر P است زیرا قدرت آن در تجمع در طول زمان نهفته است، نه در واکنش سریع.

تنظیم دستی پارامترهای PID نیاز به تمرین دارد. روش های تحلیلی برای محاسبه آنها وجود دارد، اما نیاز به آماده سازی خوب و دانش دقیق بسیاری از پارامترهای سیستم خاص در حال سفارشی سازی دارد. به عنوان حد وسط بین انتخاب دستی و محاسبه تحلیلی، طیف گسترده ای از روش های تجربی توسط محققان مختلف پیشنهاد شده است.

در کوادکوپتر دو بعدی ما، تنها یک زاویه تغییر می کند - زاویه رول. در تنظیم یک کوادکوپتر سه بعدی، سه کنترلر PID مستقل برای هر یک از زوایا مورد نیاز است و کنترل یک موتور خاص، مجموع تلاش‌های تمام کنترل‌کننده‌ها خواهد بود.

نتیجه گیری قسمت اول

در این مقاله با مفاهیم اولیه کوادکوپتر و اصل پرواز، پیچ، رول، انحراف، دریچه گاز، شناور دریچه گاز، حالت پرواز پایدار، کنترلر پرواز، ژیروسکوپ، شتاب سنج، کنترل کننده سرعت، PWM، کالیبراسیون کنترلر، کالیبراسیون رادیویی، گیرنده داخلی، رابط برای راه اندازی کنترلر پرواز، حالت های مسلح/خلع سلاح، خلع سلاح خودکار.

پس از آن فرمول را دوباره اختراع کردیم کنترل کننده PIDکمی لمس کردن تمایز و ادغام عددی، و روش سخت پیکربندی پارامترها را تجربه کرد پ، من، دیبر کوادکوپتر مجازی .

اکنون، اگر در برنامه نویسی شمشیر نوری مهارت دارید، می توانید برنامه تثبیت کننده کوادکوپتر خود را شروع کنید یا بهتر است ایده های جدیدی را به ایده های موجود اضافه کنید. متن بازپروژه ها. خوب، یکی دو هفته دیگر، زمانی که قدرت و زمان لازم برای مطابقت با کیفیت را داشته باشم، داستان را ادامه خواهم داد که چگونه همه چیز برنامه ریزی شده، آزمایش شده، سقوط کرده، انگشتانم را بریده و به طور کامل در جهت نامعلومی پرواز کرده است. اگر واقعاً می خواهید ادامه دهید، می توانید در اینجا یا به عنوان مثال در Vkontakte با من تماس بگیرید: این انگیزه کمی می دهد.

در پایان این بخش، من فقط باید به شخصی اشاره کنم که در انتخاب اجزا و راه اندازی پیچیده ترین (اول!) کوادکوپتر روی فریمور MegapirateNG به من کمک کرد و با صبر و حوصله به صدها سوال در مورد این مفاهیم بسیار ابتدایی پاسخ داد: SovGVD، متشکرم. ! :-)

به عنوان پاداش برای کسانی که توانستند همه این ورق را هدر دهند، من ویدیوی کوچک وعده داده شده را از نحوه پرواز کوادکوپتر ما با کنترلرهای PID "اختراع شده" ما در برنامه ما برای آردوینو مگا 2560 ارسال می کنم:



البته فاقد جی پی اس است، همانطور که در محصولات تجاری و تولید انبوه، کمی ثبات ندارد، اما OUR است و تا آخرین فاکتور ضریب انتگرال را از درون و بیرون می دانیم! و واقعاً جالب است که چنین فناوری‌هایی امروزه در دسترس ما هستند.