فهرست مطالب:
- تدارکات
- مرحله 1: پروتکل تله متری Spektrum را بیاموزید
- مرحله 2: سخت افزار را انتخاب کنید
- مرحله 3: نوشتن نرم افزار
- مرحله 4: سیم را به مدار وصل کنید
- مرحله 5: کامپایل بدون بوت لودر
- مرحله 6: فلش MCU با J-Link
- مرحله 7: بدون کریستال خارجی کامپایل مجدد کنید
تصویری: ارتفاع سنج هواپیما RC (سازگار با Telemetry Spektrum): 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
من این ارتفاع سنج را ساختم تا خلبان بداند که در هواپیماهای RC در ایالات متحده زیر 400 پا هستند. دوست من نگران بود زیرا نمی توانست به طور قطعی بگوید که او همیشه زیر 400 فوت است و می خواست اطمینان بیشتری از سنسور با داده های دورسنجی ارائه دهد. بله ، شما می توانید یک سنسور از Spektrum خریداری کنید ، اما می توانید این پروژه را با هزینه کمتر از 20 دلار با تخته های شکست (که قیمت آنها قبلاً افزایش یافته است) بسازید. اگر برنامه نویس J-link را در اختیار دارید ، می توانید با چند دلار آن را روی یک برد سفارشی بسازید. پس از درک پروتکل Xbus ، می توانید هر یک از دیگر سنسورهای پشتیبانی شده را بسازید! اما من در این پروژه فقط ارتفاع سنج را پوشش می دهم…
فهرست قطعات:
-
من برای این پروژه از یک برد میکروکنترلر Seeeduino XIAO استفاده کردم زیرا کوچک است ، از پردازنده M0 استفاده می کند که قدرت زیادی برای این پروژه دارد ، هم I2C و هم SPI آماده خارج شدن از جعبه است و از منطق 3.3v استفاده می کند بنابراین هیچ گونه تغییر سطح انجام نمی شود ضروری.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
برای تشخیص فشار هوا ، یک تخته شکست BMP388 را از Adafruit خریدم. این برد دارای I2C و SPI است و می تواند با منطق 3.3 ولت یا 5 ولت کار کند.
https://www.adafruit.com/product/3966
- Protoboard برای سیم کشی مدار
- لحیم/آهن لحیم کاری
- هدرهای پین مردانه/زنانه تا بتوانم به راحتی سنسور/میکروکنترلر را جدا کنم.
- دکمه کوچک. من از این برای تنظیم مجدد ارتفاع شروع استفاده می کنم.
- مقاومت 10k برای کشیدن روی دکمه.
- JST-XH کانکتور زن 4 پین برای اتصال به پورت دورسنجی گیرنده Spektrum
-
برنامه نویس SEGGER J-Link EDU تا M0 را بدون بوت لودر فلش کند.
https://www.adafruit.com/product/3571
-
برد براکت 10 پین Adafruit SWD
www.adafruit.com/product/2743
تدارکات
- من همچنین یک محفظه کوچک برای ارتفاع سنج خود چاپ کردم ، اما به این مورد نیاز نیست.
-
اسیلوسکوپ- اگر یکی ندارید ، من این یکی را به شدت توصیه می کنم:
https://store.digilentinc.com/analog-discovery-2-1…
مرحله 1: پروتکل تله متری Spektrum را بیاموزید
این کار بیشتر توسط ریموند دومینگو برای من انجام شد. آنها قبلاً یک ارتفاع سنج با Spektrum سازگار کرده بودند ، بنابراین پیروی از آن کد منبع واقعاً کمک کرد. برگه اطلاعات تله متری Spektrum بقیه شکاف ها را پر کرد. اندازه گیری سطوح داده خارج از گیرنده نشان داد که من به منطق 3.3 ولت نیاز دارم.
گیرنده آدرس دستگاه را ارسال می کند و سپس انتظار پاسخ 16 بایتی را دارد. برگه داده ساختار همه سنسورهای مختلف را نشان می دهد. حتی اگر ساختار 16 بایت طول نداشته باشد ، گیرنده انتظار دارد هر بار 16 بایت برگردد.
برگه اطلاعات Spektrum:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
پروژه ریموند دومینگو:
www.aerobtec.com/download/altisSpektrumInte…
مرحله 2: سخت افزار را انتخاب کنید
من برای تشخیص فشار از یک تخته شکست BMP388 از Adafruit استفاده کردم. برک آوت گسست های I2C و SPI را ارائه می دهد و با منطق 3.3 ولت یا 5 ولت کار می کند. Adafruit همیشه با صفحات شکست خود کار شگفت انگیزی انجام می دهد ، بنابراین من آن را خریداری کردم. من به جای آن از تخته DFRobot Gravity BMP388 در ساخت خود استفاده کردم زیرا تخته Adafruit من قبلاً در حال استفاده بود.
با توجه به اینکه دستگاه میزبان I2C از منطق 3.3 ولت استفاده می کند ، من به میکروکنترلر 3.3 ولت نیاز داشتم و می خواستم کوچک باشد. من قصد داشتم از Adafruit Trinket M0 استفاده کنم ، اما آنها نسبتاً گران هستند و تعداد زیادی پین شکسته نشده است. سپس تخته Seeeduino XIAO را پیدا کردم. این یک برد M0 است که هر دو I2C و SPI آماده استفاده هستند و دارای اتصال USB-C است. همچنین ، واقعاً کوچک است! به طور کلی من این تخته را بسیار دوست دارم (حتی اگر کریستال راه اندازی آهسته برای همیشه طول کشید تا بفهمم).
Spektrum از کانکتور مردانه 4 پین JST-XH روی گیرنده برای پورت "Xbus" استفاده می کند که ما به آن ضربه می زنیم. من از یک پلاگین زن 4 پین JST-XH در ارتفاع سنج استفاده کردم و کاملاً کار کرد.
مرحله 3: نوشتن نرم افزار
برای نوشتن همه کد ها از Arduino IDE استفاده کردم. من پروتکل تله متری Spektrum را از برگه اطلاعات آنها کپی کردم و به کتابخانه آردوینو اضافه کردم. از آنجا که Adafruit همیشه کتابخانه های خوبی برای شکستن خود دارد ، من از کتابخانه BMP3XX آنها برای سنسور BMP388 استفاده کردم.
نکات مهم در طراحی من عبارتند از:
- I2C را طوری تنظیم کنید که به عنوان یک سرویس گیرنده رفتار کند و به آدرس ارتفاع سنج Spektrum (0x12) پاسخ دهد.
- فشارسنج BMP388 را از طریق SPI بخوانید.
- داده های ارتفاع را در دو بافر مختلف ذخیره کنید تا درخواست I2C از گیرنده داده ها را خراب نکند و هنگام واکشی داده ها بین دو بافر متناوب شود. این اطمینان می دهد که داده های ارسال شده به گیرنده همیشه کامل است.
- با استفاده از دکمه ارتفاع سنج را صفر می کند.
برای اطلاعات بیشتر و تجزیه و تحلیل کد ، ویدیو را تماشا کنید.
مرحله 4: سیم را به مدار وصل کنید
من از protoboard استفاده کردم ، اما اگر می خواهید برای طراحی یک تخته سفارشی اختصاص داده شده وقت بگذارید ، می توانید مدار را بسیار تمیزتر کنید.
کانکتور JST-XH را به پین های I2C XIAO وصل کردم. از آنجا که گیرنده 5 ولت به باس تله متری خروجی می دهد ، مثبت از گذرگاه به پین VCC XIAO رفت. به این ترتیب از تنظیم کننده داخلی 3.3v برای تغذیه سنسور BMP388 استفاده می شود.
مرحله 5: کامپایل بدون بوت لودر
-
فایل boards.txt خود را پیدا کنید (برای هر تخته ای که استفاده می کنید).
در مورد من ، اینجا قرار داشت: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / boards.txt
-
برد خود را کپی کرده و نام اولین کلید را برای تعیین نسخه بدون بوت لودر تغییر دهید. من فقط _nbl را به نام اصلی اضافه کردم.
- قدیمی: seeed_XIAO_m0
- جدید: seeed_XIAO_m0_nbl
-
مقدار.name را تغییر دهید:
- قدیمی: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- جدید: seeed_XIAO_m0_nbl.name = Seeeduino XIAO بدون بوت لودر
-
پیوند را به فلش بدون بوت لودر با تغییر اسکریپت builder ld تغییر دهید:
- قدیمی: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
- جدید: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with _bootloader.ld
- Arduino IDE را راه اندازی مجدد کنید.
- برد جدید "Seeeduino XIAO No Bootloader" را از منوی بردها انتخاب کنید.
- "Export Compiled Binary" را انتخاب کنید
- پس از کامپایل ، فایل.bin در پوشه پروژه Arduino شما قرار می گیرد.
مرحله 6: فلش MCU با J-Link
Adafruit دارای راهنمای فوق العاده ای برای برنامه ریزی مجدد بوت لودر در دستگاه M0/M4 است. در مورد ما ، ما می خواهیم از بوت لودر خلاص شویم ، اما به همان شیوه عمل می کند.
learn.adafruit.com/how-to-program-samd-boo…
پس از انجام این کار ، نمی توانید کد را از طریق USB بارگذاری کنید. برای بارگذاری مجدد بوت لودر روی دستگاه ، می توانید از دستورالعمل بالا برای بارگذاری مجدد کد از طریق USB مانند کارخانه استفاده کنید.
راهنمای Adafruit بسیار کامل است ، اما این مراحل اساسی هستند:
-
سیم های بلوز را به پشت برد XIAO متصل می کنید.
- راهنمای Adafruit نگفته است که پین RST روی برد شکست 2x5 باید به پین تنظیم مجدد بردهای Adafruit متصل شود. اما برای XIAO ، من نیاز به اتصال به هر چهار پد در پشت برد داشتم.
- پین VREF باید به پین XIAO 3.3v متصل شود. این به اشکال زدایی می گوید که منطق دستگاه 3.3 ولت است. بدون آن ، اگر گزینه اشتباه را انتخاب کنید ، می توانید به میکروکنترلر آسیب برسانید.
- سیم های بلوز را به J-Link وصل کنید.
- برد XIAO را با کابل USB روشن کنید.
- استودیو Atmel را باز کنید.
- Tools Device Programming را انتخاب کنید
- برد M0 خود را انتخاب کنید. در این مورد ، ATSAMD21G18A
- SWD را انتخاب کنید.
- پیکربندی را از هدف بخوانید.
- اگر از EDU J-Link استفاده می کنید ، با شرایط استفاده موافقت کنید (در صورت رعایت شرایط استفاده).
- بررسی کنید که قرائت ولتاژ در گوشه بالا سمت راست درست است. اگر 3.3 ولت نباشد ، می توانید تخته خود را بشکنید!
- پاک کردن فیوز حفاظت از بوت (اندازه بوت لودر را روی 0 بایت تنظیم کنید) ، و سپس برنامه را انتخاب کنید.
- در قسمت حافظه ، فایل.bin یا.hex کامپایل شده خود را انتخاب کرده و برنامه را انتخاب کنید.
عیب یابی:
هنگامی که پیکربندی دستگاه را می خوانید ، در صورت دریافت ولتاژ خارج از محدوده ، مطمئن شوید که MCU به برق متصل است و پین J-Link VREF به 3.3 ولت متصل است
مرحله 7: بدون کریستال خارجی کامپایل مجدد کنید
برد XIAO دارای یک کریستال خارجی است که راه اندازی آن زمان زیادی طول می کشد. گیرنده Spektrum 350 میلی ثانیه پس از روشن شدن دستگاه ، یک دستگاه را در گذرگاه تله متری کشف می کند ، بنابراین باید به کامپایلر بگوییم که به جای آن از نوسان ساز داخلی استفاده کند که باعث راه اندازی تقریباً آنی می شود.
- فایل boards.txt را که قبلاً تغییر داده اید پیدا کنید (بله ، من می توانستم این مرحله را قبلاً ذخیره کنم ، اما این برای من یک فرآیند یادگیری بود)
- "-DCRYSTALLESS" را به رشته seeed_XIAO_m0_nbl.build.extra_flags اضافه کنید. این امر به کامپایلر می گوید که از نوسان ساز داخلی استفاده کند.
- کد را دوباره کامپایل کنید
- MCU را دوباره فلش کنید.
- مطمئن شوید زمان راه اندازی با استفاده از یک اسیلوسکوپ به اندازه کافی سریع است.
همانطور که در تصویر مشاهده می کنید ، کانال زرد 1 منبع تغذیه است. کانال فیروزه ای 2 پین آماده روی میکروکنترلر است. حدود 10 میلی ثانیه پس از روشن شدن ، کانال دو توسط میکروکنترلر به بالا کشیده می شود که نشان می دهد در حلقه راه اندازی است. پس از انجام تنظیمات ، MCU کد می شود که پین را پایین بکشد ، نشان می دهد که حلقه اصلی در حال شروع است. محدوده نشان می دهد که راه اندازی حدود 3 میلی ثانیه طول می کشد. به طور کلی میکروکنترلر 13 میلی ثانیه پس از روشن شدن نیاز دارد تا آماده به کار باشد.
توصیه شده:
ارتفاع سنج (متر ارتفاع) بر اساس فشار اتمسفر: 7 مرحله (همراه با تصاویر)
ارتفاع سنج (متر ارتفاع) بر اساس فشار اتمسفر: [ویرایش] ؛ نسخه 2 را در مرحله 6 با ورودی ارتفاع به صورت دستی مشاهده کنید. این توصیف ساختمان یک ارتفاع سنج (ارتفاع متر) بر اساس آردوینو نانو و سنسور فشار اتمسفر Bosch BMP180 است. طراحی ساده است ، اما اندازه گیری
آموزش سنسور آردوینو نانو - MPL3115A2 ارتفاع سنج دقیق: 4 مرحله
Arduino Nano - MPL3115A2 Precision Altimeter سنسور سنسور: MPL3115A2 از سنسور فشار MEMS با رابط I2C برای ارائه اطلاعات دقیق فشار/ارتفاع و دما استفاده می کند. خروجی های سنسور با ADC 24 بیتی با وضوح بالا دیجیتالی می شوند. پردازش داخلی وظایف جبران خسارت را از
Dirt Cheap-O-Meter ارزان-ارتفاع سنج قابل شنیدن بر اساس آردوینو 9 دلار: 4 مرحله (همراه با تصاویر)
Dirt Cheap Dirt-O-Meter-ارتفاع سنج قابل شنیدن مبتنی بر آردوینو 9 دلار: Dytters (ارتفاع سنج های شنیدنی A.K.A) جان چتربازان را برای سالهای زیادی نجات داد. اکنون ، Audible Abby نیز در هزینه آنها صرفه جویی می کند. Basic Dytters دارای چهار زنگ هشدار است ، یکی در راه بالا ، و سه در راه پایین. هنگام سوار شدن به هواپیما ، چتربازها باید بدانند چه زمانی
قطب نما LED و ارتفاع سنج: 7 مرحله (همراه با تصاویر)
قطب نما LED و ارتفاع سنج: اجسام دارای LED همیشه مرا مجذوب خود می کند. بنابراین این پروژه ترکیبی از سنسور قطب نمای دیجیتال محبوب HMC5883L با 48 LED است. با قرار دادن LED ها در یک دایره ، رهبری که روشن می شود ، مسیری است که شما در حال حرکت هستید. هر 7.5 درجه درجه حرارت
PropVario ، یک متغیر سنج/ارتفاع سنج DIY با خروجی صدا برای هواپیماهای بادبانی RC: 7 مرحله (همراه با تصاویر)
PropVario ، یک DIY Variometer/Altimeter DIY با صدای خروجی برای RC Sailplanes: این دستورالعمل ها به شما نشان می دهد که چگونه می توانید یک Vario ارزان قیمت بسازید ، که می تواند ارتفاع را بیان کند و البته هنگام تغییر ارتفاع هواپیمای بادبانی شما ، تن های مختلف را ارسال می کند. برخی از ویژگی ها: - صدا و لحن - از نمونه های خود (موج) در محل کار خود استفاده کنید