فهرست مطالب:
- مرحله 1: چرا جایگزینی Nano V2؟
- مرحله 2: انتخاب و ساخت قطعات
- مرحله 3: ساخت و ساز
- مرحله 4: حذف پرچم NRF52 Coding Protection Protection
- مرحله 5: برنامه نویسی SKYLAB SKB369
- مرحله 6: ایجاد یک برد جدید Arduino NRF52
- مرحله 7: نتیجه گیری
تصویری: آسان BLE بسیار کم قدرت در Arduino قسمت 3 - جایگزینی Nano V2 - Rev 3: 7 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
به روز رسانی: 7 آوریل 2019 - Rev 3 از lp_BLE_TempHumidity ، نمودارهای تاریخ/زمان را اضافه می کند ، با استفاده از pfodApp V3.0.362+و خاموش شدن خودکار هنگام ارسال داده
به روز رسانی: 24 مارس 2019 - Rev 2 از lp_BLE_TempHumidity ، گزینه های طرح بیشتری را اضافه می کند و i2c_ClearBus ، پشتیبانی GT832E_01 را اضافه می کند
معرفی
این آموزش ، A Redbear Nano V2 Replacement ، قسمت 3 از 3 است. این نسخه 2 این پروژه است. PCB نسخه 8 شامل نصب برای سلول سکه و سنسور است ، ساخت را ساده کرده و جریان هوا را در اطراف سنسور بهبود می بخشد در حالی که از نور مستقیم خورشید محافظت می کند. نسخه 1 اینجاست.
قسمت 1 - ایجاد دستگاههای BLE با قدرت بسیار کم با استفاده از کاورهای آردوینو Arduino را با کدگذاری دستگاههای کم مصرف nRF52 ، ماژول برنامه نویسی و اندازه گیری جریان منبع تغذیه آسان می کند. همچنین تایمرها و مقایسه کننده های کم مصرف و ورودی های خروجی و استفاده از pfodApp برای اتصال و کنترل دستگاه nRF52 را پوشش می دهد.
قسمت 2 - یک مانیتور رطوبت دمای بسیار پایین با استفاده از یک ماژول Redbear Nano V2 و یک سنسور دما / رطوبت Si7021 برای ساخت یک باتری کم مصرف / مانیتور خورشیدی. همچنین کتابخانه Si7021 را تغییر می دهد تا کم مصرف باشد ، دستگاه BLE را تنظیم می کند تا مصرف فعلی آن را به <29uA کاهش دهد و یک صفحه نمایش دما/رطوبت سفارشی را برای تلفن همراه شما طراحی می کند.
قسمت 3 - جایگزینی Redbear Nano V2 ، این یکی ، از سایر ماژول های مبتنی بر nRF52 به جای Nano V2 استفاده می کند. این شامل انتخاب اجزای تأمین ، ساخت ، حذف حفاظت برنامه نویسی تراشه nRF52 ، استفاده از پین های NFC به عنوان GPIO معمولی و تعریف برد جدید nRF52 در آردوینو است.
این دستورالعمل کاربردی قسمت 1 ساختمان دستگاههای BLE بسیار کم قدرت است که با Arduino با ساختن مانیتور دما و رطوبت BLE بسیار کم قدرت با استفاده از یک برد SKYLAB SBK369 به عنوان جایگزین Nano V2 آسان شده است. این آموزش نحوه ایجاد یک تعریف جدید از برد و نحوه حذف محافظ برنامه نویسی nRF52 را برای برنامه ریزی مجدد آن پوشش می دهد. این آموزش از طرح مشابه قسمت 2 با پارامترهای BLE یکسان برای مصرف کم انرژی استفاده می کند و می تواند فقط از باتری یا باتری + خورشیدی یا خورشیدی تغذیه شود. تنظیم پارامترهای BLE برای توان کم در قسمت 2 پوشش داده شد
Rev 3 از lp_BLE_TempHumidity داده ها را بر اساس تاریخ و زمان فقط با استفاده از Arduino millis () ترسیم می کند. تاریخ و زمان آردوینو را با استفاده از millis () و pfodApp با استفاده از آخرین نسخه pfodApp (V3.0.362+) مشاهده کنید.
Rev 4 از pfod_lp_nrf52.zip همچنین از ماژول GT832E_01 پشتیبانی می کند و این آموزش با استفاده از پین های NFC nRF52 به عنوان GPIO های استاندارد پوشش می دهد.
مانیتور ساخته شده در اینجا برای سالها روی Coin Cell یا 2 باتری AAA کار می کند ، حتی بیشتر با کمک خورشیدی. مانیتور علاوه بر نمایش دما و رطوبت فعلی ، 36 ساعت آخر خوانش 10 دقیقه ای و 10 روز آخر خواندن ساعتی را ذخیره می کند. اینها را می توان در تلفن همراه Android خود نمودار کرد و مقادیر را در یک فایل گزارش ذخیره کرد. نیازی به برنامه نویسی Android نیست ، pfodApp همه این موارد را مدیریت می کند. صفحه نمایش و نمودار Android به طور کامل توسط طرح Arduino شما کنترل می شود ، بنابراین می توانید آن را در صورت نیاز سفارشی کنید.
قسمت 2 از یک برد Redbear Nano V2 برای جزء nRF52832 BLE استفاده کرد. این پروژه با یک برد ارزان SKYLAB SKB369 جایگزین آن می شود. مانند قسمت 2 ، یک تخته شکست Sparkfun Si7021 برای سنسور دما / رطوبت استفاده می شود. یک کتابخانه اصلاح شده با قدرت کم با Si7021 استفاده می شود.
مرحله 1: چرا جایگزینی Nano V2؟
i) Nano V2 برای چند ماه تولید نشده بود و به نظر نمی رسد در خط Particle.io قرار بگیرد ، بنابراین مشخص نیست که تا چه مدت در دسترس خواهد بود.
ii) Nano V2 گرانتر است. با این حال ویژگی های اضافی نیز دارد. به زیر مراجعه کنید.
iii) Nano V2 دارای قطعاتی در هر دو طرف است که مشخصات بالاتری به آن می بخشد و نصب را دشوارتر می کند.
iv) Nano V2 دارای پین های ورودی/خروجی محدود است و استفاده از D6 تا D10 نیاز به سرنشین پرواز دارد.
اگرچه برد Nano V2 گرانتر از برد SKYLAB SKB369 است ، ~ US17 در مقابل 5 US5 ، Nano V2 ویژگی های بیشتری دارد. Nano V2 شامل تنظیم کننده 3.3V و خازن های تغذیه ، اجزای اضافی برای استفاده از گزینه مبدل nRF52 DC/DC ، آنتن تراشه ای و اتصال آنتن uFL SMT است.
جایگزین دیگر ماژول GT832E_01 است که توسط www.homesmartmesh.com استفاده می شود. Rev 4 pfod_lp_nrf52.zip همچنین از برنامه نویسی ماژول GT832E_01 پشتیبانی می کند. SKYLAB SKB369 و GT832E_01 از https://www.aliexpress.com در دسترس هستند
Redbear (Particle.io) همچنین دارای یک ماژول برهنه بدون تنظیم کننده 3V3 ، اجزای DC/DC یا اجزای کریستال 32Khz است.
طرح کلی
این پروژه دارای 4 قسمت مستقل نسبی است:-
انتخاب و ساخت اجزاء حذف پرچم حفاظتی کدگذاری nRF52 و برنامه ریزی طرح ایجاد یک تابلوی جدید Arduino nRF52 تعریف مجدد پیکربندی پین های NFC NRF52 به عنوان GPIO
مرحله 2: انتخاب و ساخت قطعات
انتخاب اجزاء
این پروژه علاوه بر اجزای nRF52832 و Si7021 که در قسمت 2 انتخاب شده اند ، تنظیم کننده 3.3 ولت و خازن های تغذیه را اضافه می کند.
جزء تنظیم کننده ولتاژ
تنظیم کننده مورد استفاده در اینجا MC87LC33-NRT است. می تواند تا 12 ولت ورودی را کنترل کند و دارای جریان آرام <3.6uA ، معمولاً 1.1uA است. Nano V2 که از تنظیم کننده TLV704 استفاده می کند دارای جریان آرام کمی بیشتر ، معمولاً 3.4uA است و می تواند ولتاژهای ورودی بالاتر را تا 24 ولت کنترل کند. MC87LC33-NRT به جای آن انتخاب شد زیرا برگه داده آن مشخص می کند که چگونه واکنش نشان می دهد زیرا ولتاژ ورودی به زیر 3.3V می رود در حالی که برگه TLV704 اینطور نیست.
TLV704 ولتاژ ورودی حداقل 2.5 ولت را مشخص می کند و از برگه اطلاعات مشخص نیست که در زیر آن چه اتفاقی می افتد. nRF52832 به 1.7V و Si7023 به 1.9V کاهش می یابد. MC87LC33-NRT تفاوت ولتاژ ورودی/خروجی را تا 0 ولت برای جریانهای کم مشخص می کند (شکل 18 از برگه داده). بنابراین با توجه به انتخاب قطعات ، MC87LC33-NRT انتخاب شد زیرا عملکرد مشخصی دارد.
خازن های تامین
تنظیم کننده MC87LC33-NRT برای پایداری و پاسخگویی به برخی خازن های تامین کننده نیاز دارد. خازن خروجی> 0.1uF در برگه داده توصیه می شود. SKYLAB SBK369 همچنین خازنهای 10uF/0.1uF را روی منبع نزدیک به برد مشخص می کند. خازن های بزرگتر به تامین نوسانات جریان nRF52 TX کمک می کنند. در اینجا از خازن های سرامیکی 4 x 22uF 25V و 3 x 0.1uF 50V استفاده شده است. یک خازن 22uF و یک 0.1uF نزدیک SKYLAB SBK369 ، 0.1uF نزدیک خروجی MC87LC33-NRT برای اطمینان از ثبات و 22uF و 0.1uF روی ورودی MC87LC33-NRT و a قرار داده شد. 2 خازن دیگر 2 x 22uF که در پین های Vin/GND به عنوان مخزن جریان بیشتر لحیم شده اند. برای مقایسه ، برد NanoV2 دارای 22uF / 0.1uF در ورودی تنظیم کننده TLV704 و 0.1uF در خروجی آن است.
خازن های مخزن جریان اضافی بر روی ورودی تنظیم کننده 3.3V نصب شده اند تا هنگام کار با سلول های خورشیدی به ولتاژ بالاتری شارژ شوند. شارژ با ولتاژ بالاتر برابر است با ذخیره جریان بیشتر برای تأمین خوشه های Tx.
از خازن های سرامیکی X5R استفاده می شود زیرا دارای مقاومت سری پایین و جریان نشتی کم هستند. مقاومت معمولاً 100 ، 000MΩ یا 1000MΩ - µF است که کمتر است. بنابراین برای 22uF ما 22000MΩ داریم ، یعنی نشت 0.15nA در 3.3V یا 0.6nA برای چهار خازن 22uF. که قابل اغماض است. برای مقایسه پایین ESR ، خازن های الکترولیتی پاناسونیک با نشت کم دارای جریان نشتی کمتر از 0.01CV هستند. بنابراین برای خازن 22uF 16V نشت <10uA است. توجه: این نشتی در ولتاژ نامی ، 16V در این مورد است. نشت در ولتاژهای کمتر ، یعنی <2.2uA در 3.3V کمتر است.
فهرست قطعات
هزینه تقریبی هر واحد در دسامبر 2018 ، 61 دلار آمریکا ، بدون احتساب حمل و نقل و برنامه نویس از قسمت 1
- SKYLAB SKB369 5 5 دلار آمریکا به عنوان مثال Aliexpress
- تخته شکست Sparkfun Si7021 ~ 8 دلار آمریکا
- 2 x 53mm x 30mm 0.15W 5V سلول های خورشیدی به عنوان مثال پرواز بیش از 1.10 دلار آمریکا
- 1 عدد PCB SKYLAB_TempHumiditySensor_R2.zip 25 25 دلار آمریکا برای 5 تخفیف www.pcbcart.com
- 1 تنظیم کننده MC78LC33 3.3V ، به عنوان مثال Digikey MC78LC33NTRGOSCT-ND ~ 1 دلار آمریکا
- 2 x 0.1uF 50V سرامیک C1608X5R1H104K080A به عنوان مثال Digikey 445-7456-1-ND 0.3 0.3 دلار آمریکا
- 4 x 22uF 16V سرامیک GRM21BR61C226ME44L به عنوان مثال Digikey 490-10747-1-ND ~ 2 دلار آمریکا
- 1 x BAT54CW ، به عنوان مثال Digikey 497-12749-1-ND 0.5 0.5 دلار آمریکا
- 1 x 470R 0.5W 1٪ مقاومت به عنوان مثال Digikey 541-470TCT-ND 0. 0.25 دلار آمریکا
- 1 x 10V 1W زنر SMAZ10-13-F به عنوان مثال Digikey SMAZ10-FDICT-ND 0.5 0.5 دلار آمریکا
- پیچ های نایلونی 3 میلی متر در 12 میلی متر ، به عنوان مثال جیکار HP0140 ~ 3 دلار استرالیا
- مهره های نایلونی 3 میلی متر در 12 میلی متر ، به عنوان مثال جیکار HP0146 ~ 3 دلار استرالیا
- Scotch Permanent Mounting Tape Cat 4010 به عنوان مثال از آمازون 6. 6.6 دلار آمریکا
- نگهدارنده باتری CR2032 ، به عنوان مثال HU2032-LF 1.5 1.5 دلار آمریکا
- باتری CR2032 1 1 دلار آمریکا
- ورق پرسپکس ، 3.5 میلی متر و 8 میلی متر
- pfodApp ~ 10 دلار آمریکا
- Solder Paste π.χ. Jaycar NS-3046 ~ 13 دلار استرالیا
مرحله 3: ساخت و ساز
پروژه بر روی یک PCB کوچک ساخته شده است. PCB توسط pcbcart.com از این فایل های Gerber ، SKYLAB_TempHumiditySensor_R2.zip تولید شده است. PCB پین Nano V2 را شبیه سازی می کند و به طور کلی برای استفاده در سایر پروژه های BLE استفاده می شود.
این شماتیک است (نسخه pdf)
ابتدا اجزای SMD را لحیم کنید ، سپس برد SKYLAB SKB369 را نصب کنید
تقریباً همه اجزاء دستگاه های روی سطح (SMD) هستند. لحیم کاری خازن ها و IC ها با دست دشوار است. روش پیشنهادی این است که PCB را در یک قسمت نگه دارید و مقدار کمی خمیر لحیم کاری روی پدها بمالید و اجزای SMD را بجز برد SKB369 روی PCB قرار دهید. سپس با استفاده از تفنگ حرارتی ، حرارت را به قسمت زیرین PCB بمالید تا خمیر لحیم کاری ذوب شود و سپس یک حرکت سریع از بالای تخته انجام دهید و مراقب باشید اجزاء از بین نروند. در نهایت قطعات را با یک آهن لحیم نوک کوچک لمس کنید. مراقب خازن ها و مقاومت باشید زیرا ذوب هر دو سر و شل شدن قطعه هنگام لحیم کاری یک سر آسان است.
این نسخه خازن های سرامیکی 22uF 16V اضافی را اضافه می کند. این خازن های اضافی باعث افزایش جهش های جاری از باتری و همچنین کاهش افت ولتاژ هنگام تغذیه از سلول های خورشیدی می شود. تا زمانی که ولتاژ سلول های خورشیدی بالاتر از ولتاژ باتری باقی بماند ، هیچ جریانی از باتری خارج نمی شود.
پس از نصب اجزای SMD ، می توانید در برد SKYLAB SKB369 لحیم کنید. دو سوراخ نقطه آزمایش در یک طرف زبانه های SKB369 وجود دارد. برای قرار دادن تخته SKB369 از دو پین در یک پایه مقوایی استفاده کنید و پین ها را با دقت تراز کنید. (به عکس نمونه بالا با استفاده از PCB Revision 1 مراجعه کنید) سپس یک پین از طرف مقابل را لحیم کنید تا تخته قبل از لحیم کاری سنجاق های دیگر در جای خود ثابت بماند.
در قسمت تمام شده به سیم پیوند Gnd از CLK به GND توجه کنید. این برنامه بعد از برنامه نویسی نصب شده است تا از ورود نویز روی ورودی CLK به تراشه nRF52 به حالت اشکال زدایی فعلی جلوگیری کند
مورد نصب
قاب نصب از دو قطعه پرسپکس ، 110 میلی متر در 35 میلی متر ، ضخامت 3 میلی متر ساخته شده است. قطعه 3.5 میلی متری زیر سلول های خورشیدی برای گرفتن پیچ های نایلونی 3 میلی متری مورد استفاده قرار گرفت. این ساختار تجدید نظر شده ساده تر از Rev 1 است و جریان هوا را در اطراف سنسور بهبود می بخشد. سوراخ های اضافی در هر انتها برای نصب هستند ، برای مثال از اتصالات کابل استفاده کنید.
مرحله 4: حذف پرچم NRF52 Coding Protection Protection
صفحه دما و رطوبت را به برنامه نویس توصیف شده در قسمت 1 وصل کنید.
با جدا شدن سلول های خورشیدی و باتری ها ، Vin و Gnd به Vdd و Gnd برنامه نویس (خطوط زرد و سبز) متصل می شوند و SWCLK و SWDIO به Clk و SIO صفحه سربرگ برنامه نویس وصل می شوند (هدایت های سفید و خاکستری)
حذف محافظت از برنامه nRF52
از Nordic Semi - Debug and Trace صفحه DAP - پورت دسترسی اشکال زدایی. یک اشکال زدای خارجی می تواند از طریق DAP به دستگاه دسترسی پیدا کند. DAP یک پورت اشکال زدایی سری ARM® CoreSight standard Serial Wire Debug (SW-DP) را پیاده سازی می کند. SW-DP پروتکل اشکال زدایی سریال (SWD) را پیاده سازی می کند که یک رابط سریال دو پین ، SWDCLK و SWDIO است
مهم: خط SWDIO دارای یک مقاومت کششی داخلی است. خط SWDCLK دارای مقاومت کششی داخلی است.
CTRL -AP - کنترل پورت دسترسی پورت دسترسی کنترل (CTRL-AP) یک پورت دسترسی سفارشی است که کنترل دستگاه را قادر می سازد حتی اگر سایر پورت های دسترسی در DAP توسط حفاظت پورت دسترسی غیرفعال شده باشند. حفاظت از پورت دسترسی ، اشکال زدایی را از دسترسی به خواندن و نوشتن به تمام رجیسترهای CPU و آدرس های نقشه برداری شده از حافظه جلوگیری می کند. حفاظت از پورت دسترسی را غیرفعال کنید. حفاظت از پورت دسترسی فقط با صدور فرمان ERASEALL از طریق CTRL-AP غیرفعال می شود. این دستور Flash ، UICR و RAM را پاک می کند.
CMSIS-DAP را به عنوان برنامه نویس برای Debugger Particle انتخاب کرده و nRF5 Flash SoftDevice را انتخاب کنید.
اگر فلش کار می کند ، خوب است ، اما اغلب ماژول ها در برابر برنامه نویسی مجدد محافظت شده اند و این خروجی خطا را در پنجره آردوینو دریافت خواهید کرد.
Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) دارای مجوز تحت GNU GPL v2 برای گزارش اشکالات ، https://openocd.org/doc/doxygen/bugs.html را بخوانید debug_level: 2 اطلاعات: فقط یک گزینه حمل و نقل ؛ autoselect 'swd' speed adapter: 10000 kHz cortex_m reset_config sysresetreq اطلاعات: CMSIS-DAP: SWD اطلاعات پشتیبانی شده: CMSIS-DAP: رابط اولیه (SWD) اطلاعات: CMSIS-DAP: FW نسخه = 1.10 اطلاعات: SWCLK/TCK = TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 اطلاعات: CMSIS-DAP: رابط آماده اطلاعات: کاهش سرعت درخواست: 10000kHz تا 5000kHz حداکثر اطلاعات: سرعت ساعت 10000 kHz اطلاعات: SWD IDCODE 0x2ba01477 خطا: MEM را پیدا نکردم -AP برای کنترل خطای اصلی: هدف هنوز در هنگام چشمک زدن SoftDevice مورد بررسی قرار نگرفته است.
در این حالت شما باید ثبت نام دستور ERASEALL را در nRF52 تنظیم کنید تا حافظه پاک شود و دستگاه دوباره قابل برنامه ریزی شود. نسخه openOCD ارائه شده با sandeepmistry nRF52 شامل دستور apreg مورد نیاز برای نوشتن در ثبت دستور ERASEALL نمی شود بنابراین باید نسخه بعدی را نصب کنید.
نسخه OpenOCD OpenOCD-20181130 یا بالاتر را نصب کنید. نسخه پیش تنظیم شده ویندوز از https://gnutoolchains.com/arm-eabi/openocd/ آخرین کد در https://gnutoolchains.com/arm-eabi/openocd/ موجود است
خط فرمان را باز کرده و dir را به فهرست نصب OpenOCD تغییر دهید و دستور را وارد کنید
bin / openocd.exe -d2 -f رابط/cmsis -dap.cfg -f target/nrf52.cfg
پاسخ این است
بازکردن اشکال زدایی روی تراشه 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd] دارای مجوز تحت GNU GPL v2 برای گزارش اشکالات ، https://openocd.org/doc/doxygen/ را بخوانید bugs.html debug_level: 2 اطلاعات: انتخاب خودکار اولین جلسه انتقال "swd". برای لغو استفاده از "transport select" استفاده کنید. سرعت آداپتور: 1000 کیلوهرتز cortex_m reset_config sysresetreq اطلاعات: گوش دادن به پورت 6666 برای اتصالات tcl اطلاعات: گوش دادن به پورت 4444 برای اتصالات telnet اطلاعات: CMSIS-DAP: SWD اطلاعات پشتیبانی شده: CMSIS-DAP: FW نسخه = 1.10 اطلاعات: CMSIS-DAP: رابط اولیه (SWD) اطلاعات: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 اطلاعات: CMSIS-DAP: اطلاعات رابط آماده: سرعت ساعت 1000 کیلوهرتز اطلاعات: SWD DPIDR 0x2ba01477 خطا: MEM-AP برای کنترل هسته یافت نشد اطلاعات: گوش دادن به پورت 3333 برای اتصالات gdb
سپس پنجره ترمینال را باز کنید. TeraTerm (Windows) یا CoolTerm (Mac) و به درگاه 4444 127.0.0.1 متصل شوید
پنجره telnet یک> و خط فرمان اطلاعات را نشان می دهد: پذیرش اتصال 'telnet' در tcp/4444
در پنجره Telnet (یعنی TeraTerm) typenrf52.dap apreg 1 0x04 این 0x00000000 باز می گرداند که نشان می دهد تراشه محافظت شده است. سپس typenrf52.dap apreg 1 0x04 0x01 و thennrf52.dap apreg 1 0x04 این 0x00000001 برمی گرداند که نشان می دهد در راه اندازی مجدد تراشه اکنون روی ERASEALL تنظیم شده است.
اتصال telnet را ببندید و همچنین از Ctrl-C برای خروج از برنامه openOCD در خط فرمان استفاده کنید و سپس ماژول nRF52 را چرخه بزنید و اکنون آماده برنامه نویسی است.
حالا دوباره فلش دستگاه نرم افزاری را امتحان کنید.
اکنون می توانید ماژول nRF52 را از آردوینو برنامه ریزی کنید.
مرحله 5: برنامه نویسی SKYLAB SKB369
با دنبال کردن دستورالعمل های پشتیبانی سخت افزاری pfod_lp_nrf52 ، Arduino را ببندید و آخرین نسخه پشتیبانی pfod_lp_nrf52 را دوباره نصب کنید. آخرین pfod_lp_nrf52 شامل برد جایگزین SKYLAB SKB369 Nano2 است. آن را به عنوان صفحه انتخاب کنید و سپس می توانید آن را با Revision 3 lp_BLE_TempHumidity، lp_BLE_TempHumidity_R3.zip برنامه ریزی کنید ، همانطور که در قسمت 2 توضیح داده شده است.
اگر برنامه نویسی شکست بخورد. تمام پنجره های آردوینو را ببندید ، کابل های USB را بردارید ، آردوینو را مجدداً راه اندازی کنید و کابل USB برنامه نویس را دوباره به برق متصل کرده و منبع USB ماژول nRF52 را دوباره وصل کرده و دوباره امتحان کنید.
سپس از طریق pfodApp وصل شوید تا دما و رطوبت فعلی و تاریخی را نمایش دهید. پس از نمایش طرح تاریخی ، قرائت ها با مهره های زمانی میلی ثانیه در فایل ورود به سیستم در تلفن همراه شما ذخیره می شوند و همچنین در صفحه نمایش داده های خام در دسترس هستند.
فایل گزارش همچنین شامل اطلاعات اضافی لازم برای ایجاد مجدد نمودارهای تاریخ و زمان در صفحه گسترده است. برای اطلاع از جزئیات به تاریخ و زمان آردوینو با استفاده از millis () و pfodApp مراجعه کنید
مرحله 6: ایجاد یک برد جدید Arduino NRF52
برای پشتیبانی از برد جدید nRF52 شما باید الف) یک دایرکتوری جدید تحت فهرست variant ها با فایل های برد اضافه کنید و ب) فایل boards.txt را ویرایش کنید تا برد جدید به Arduino اضافه شود.
افزودن نوع جدید برد nRF52
همانطور که در قسمت 1 توضیح داده شد ، نصب پشتیبانی سخت افزاری pfod_lp_nrf52 ، زیر شاخه سخت افزاری بسته sandeepmistry را که با پشتیبانی pfod_lp_nrf52 به روز کرده اید پیدا کنید. زیر شاخه / hardware / nRF5 / 0.6.0 / variant را باز کنید و یک دایرکتوری جدید برای برد جدید خود ایجاد کنید ، به عنوان مثال SKYLAB_SKB369_Nano2replacement در پوشه جدید / hardware / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2replacement ایجاد سه فایل variant.h ، variant.cpp و pins_arduino.h شما می توانید آنها را از سایر فهرستهای انواع بورد کپی کنید. برای جایگزینی SKYLAB_SKB369_Nano2 ، من ابتدا فایلها را از نوع RedBear_BLENano2 کپی کردم.
فایل pins_arduino.h
فایل pins_arduino.h نیازی به تغییر ندارد. فقط شامل فایل variant.h است
فایل variant.h
فایل variant.h را ویرایش کنید تا تعداد کل پین های هیئت مدیره شما (PINS_COUNT) مشخص شود
توجه: در بسته sandeepmistry تنظیمات NUM_DIGITAL_PINS ، NUM_ANALOG_INPUTS و NUM_ANALOG_OUTPUTS نادیده گرفته می شود
اگر برد شما کم و بیش پین های آنالوگ را در دسترس قرار می دهد ، بخش / * Analog Pins * / فایل variant.h را به روز کنید.
توجه: برای بردهای NanoV2 و SKYLAB ، پین های آنالوگ به پین های دیجیتال A0 == D0 و غیره ترسیم می شوند
این ضروری نیست. می توانید ورودی های آنالوگ را به هر پین مناسب آردوینو اختصاص دهید. برای مثال به فایلهای آبی/variant.h و آبی/variant.cpp مراجعه کنید.
تراشه nRF52832 دارای 8 پین ورودی آنالوگ است ، اما برد تعویض SKYLAB_SKB369_Nano2 فقط 6 عدد از آنها را برای مطابقت با Nano2 در دسترس قرار می دهد.
همه شماره پین ها ، به جز RESET_PIN ، در فایل variant.h شماره پین آردوینو هستند. یعنی #PIN_A0 (0) تعریف شود (0) نشان می دهد که D0 در طرح آردوینو همان پین A0 است. RESET_PIN استثنا است. آن شماره شماره پین تراشه nRF52823 است و 21 تنها انتخاب معتبر است. اما پشتیبانی pfod_lp_nrf52 پین بازنشانی را در nRF52832 فعال نمی کند
فایل variant.cpp
فقط یک ورودی در فایل variant.cpp وجود دارد ، آرایه g_ADigitalPinMap که شماره پین های آردوینو را به تراشه n0F52832 تراشه P0 ترسیم می کند.
توجه: در بردهای NanoV2 و SKYLAB ، پین های آنالوگ Arduino A0 ، A1 … همان پین های دیجیتال Arduino D0 ، D1 هستند … بنابراین اولین ورودی ها در g_ADigitalPinMap باید شماره پین AINx را در تراشه nRF52832 نشان دهند
برای ورودی های آنالوگ که هیئت مدیره شما در اختیار شما قرار می دهد ، ورودی های g_ADigitalPinMap باید شماره پین nRF52832 AIN0 ، AIN1 ، AIN2 و غیره را نشان دهند. یعنی AIN0 پین تراشه P0.02 است ، AIN1 پین تراشه P0.03 است و غیره به طرح پین nRF52832 در بالا مراجعه کنید.
برای نگاشتهای نامعتبر (uint32_t) -1 استفاده کنید. به عنوان مثال ، برد تعویض SKYLAB_SKB369_Nano2 فاقد LED داخلی D13 است ، بنابراین موقعیت آن به (uint32_t) -1 ترسیم می شود.
در pfod_lp_nrf52.zip ، نسخه های فرعی Redbear NanoV2 ، SKYLAB SKB369 و GT832E_01 دارای تصاویری هستند که نگاشت های تنظیم شده توسط variant.cpp را نشان می دهند. (تصاویر بالا را ببینید)
در مورد SKYLAB SKB369 ، تعداد زیادی پین برای انتخاب وجود دارد. فقط به اندازه کافی برای مطابقت با NanoV2 نقشه برداری شده است. در مورد GT832E_01 ، همه پین های موجود باید نقشه برداری شوند. حتی در آن صورت فقط سه (3) ورودی آنالوگ به جای شش (6) در NanoV2 موجود است. علاوه بر این ، دو پین NFC ، P0.09 و P0.10 ، باید دوباره به عنوان GPIO پیکربندی شوند. در زیر به پیکربندی پین های NFC NRF52 به عنوان GPIO مراجعه کنید.
به روز رسانی فایل boards.txt
در اینجا SKYLAB_SKB369_Nano2replacement در فایل boards.txt است.
## SKYLAB_SKB369 Nano2 ReplacementSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 Replacement
SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd
SKYLAB_SKB369_NANO2_REPLACEMENT.upload.protocol = cmsis-DAP SKYLAB_SKB369_NANO2_REPLACEMENT.upload.target = nrf52 SKYLAB_SKB369_NANO2_REPLACEMENT.upload.maximum_size = 524288 SKYLAB_SKB369_NANO2_REPLACEMENT.upload.setup_command = حمل و نقل SWD را انتخاب کنید؛ SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload
SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd
SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = cortex-m4
SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16000000 SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = hard -mfpu = fpv4-sp-d16 SKYLAB_SKB369_NANO2_REPLACEMENT.build.ldscript = nrf52_xxaa.ld
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags = -DUSE_LFXO
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132 = S132
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdevice = s132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdeviceversion = 2.0.1 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.upload.maximum_size = 409600 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.extra_flags = - DNRF52 -DS132 -DNRF51_S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld
board.txt تنظیمات
نظرات - خطوطی که با # شروع می شوند ، نظرات هستند.
پیشوند - هر برد برای شناسایی مقادیر خود به یک پیشوند منحصر به فرد نیاز دارد. در اینجا پیشوند SKYLAB_SKB369_NANO2_REPLACEMENT است.
Name - خط SKYLAB_SKB369_NANO2_REPLACEMENT.name نام این برد را برای نمایش در منوی برد Arduino مشخص می کند.
ابزار بارگذاری - بلوک SKYLAB_SKB369_NANO2_REPLACEMENT.upload مشخص می کند که از کدام ابزار برای بارگذاری استفاده کنید. اگر از Particle Debugger استفاده می کنید ، از پروتکل = cmsis-dap مطابق تصویر بالا استفاده کنید.
Bootloader - این خط برای همه بردهای موجود در این boards.txt یکسان است
ساخت - فقط دو خط باید در این بلوک به روز شود. خط SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant نام دایرکتوری این برد را در زیر شاخه های نوع مشخص می کند. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board مقداری است که به ARDUINO_ اضافه می شود و در حین تدوین کد تعریف می شود. به عنوان مثال، -DARDUINO_SKYLAB_SKB369_Nano2replacement این امکان را به شما می دهد تا قسمت هایی از کد را برای بردهای خاص فعال یا غیرفعال کنید.
ساعت فرکانس پایین - این خط ، SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags ، منبع ساعت فرکانس پایین ، مورد استفاده برای تایمر lp_timer را مشخص می کند. سه گزینه وجود دارد ، -DUSE_LFXO ، -DUSE_LFRC و -DUSE_LFSYNT. اگر برد دارای کریستال خارجی 32Khz است ، بهترین انتخاب -DUSE_LFXO است. در غیر اینصورت از -DUSE_LFRC استفاده کنید ، که از یک نوسان ساز RC داخلی استفاده می کند و جریان کمی بیشتر می کشد ، 10uA more بیشتر ، و دقت آن بسیار کمتر است. از -DUSE_LFSYNT استفاده نکنید زیرا این تراشه را دائماً در حال کار نگه می دارد و منجر به کشش فعلی mAs می شود.
Softdevice - pfod_lp_nrf52 فقط از تراشه های nRF52 و softdevice s132 پشتیبانی می کند ، بنابراین نیازی به تغییر در این بلوک نیست ، به جز پیشوند.
پیکربندی مجدد پین های NFC NRF52 به عنوان GPIO
در پین های nRF52 پیش فرض باشید ، P0.09 و P0.10 برای استفاده به عنوان NFC پیکربندی شده اند و انتظار می رود به آنتن NFC متصل شوند. اگر می خواهید از اینها به عنوان پین های ورودی/خروجی عمومی (GPIO) استفاده کنید ، باید یک تعریف ، -DCONFIG_NFCT_PINS_AS_GPIOS ، به منوی… menu.softdevice.s132.build.extra_flags در فایل boards.txt کامپایل کنید.
برای مثال pfod_lp_nrf52.zip ، پین های GT832E_01 را مجدداً برای استفاده به عنوان ورودی/خروجی پیکربندی می کند. در بخش GT832E_01 برای این برد ، در فایل boards.txt ، تعریف زیر اضافه شده است
GT832E_01.menu.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS
اسکریپت پیوند دهنده در pfod_lp_nrf52.zip نیز برای حفظ این تنظیم تغییر یافته است و نیازی به تغییر ندارد.
مرحله 7: نتیجه گیری
این آموزش جایگزینی برای Redbear NanoV2 با استفاده از ماژول SKYLAB SKB369 ارائه کرده است. یک مانیتور رطوبت دما با باتری/خورشیدی به عنوان نمونه پروژه BLE با قدرت بسیار کم در آردوینو برای ماژول SKYLAB استفاده شد. با تنظیم پارامترهای اتصال ، جریانهای u 29uA را تأمین کنید. این منجر به عمر باتری سلول سکه ای CR2032 10 ماه شد. برای سلول های سکه و باتری های با ظرفیت بیشتر طولانی تر است. افزودن دو سلول خورشیدی ارزان به راحتی عمر باتری را تا 50 درصد یا بیشتر افزایش می دهد. یک چراغ روشن اتاق یا یک چراغ رومیزی برای تغذیه مانیتور از سلول های خورشیدی کافی است.
این آموزش همچنین حذف حفاظت از تراشه از یک nRF52 از پیش برنامه ریزی شده و نحوه تنظیم یک تعریف جدید از برد را برای مطابقت با مدار چاپی/مدار شخصی شما پوشش می دهد.
نیازی به برنامه نویسی اندروید نیست. pfodApp همه این موارد را مدیریت می کند.
توصیه شده:
مبانی موتور - درک مفهوم بسیار آسان با یک آزمایش: 7 مرحله (همراه با تصاویر)
مبانی موتور | درک مفهوم فوق العاده آسان با یک آزمایش: در این قسمت آموزشی من قصد دارم در مورد اصل اساسی موتورها به شما آموزش دهم. همه موتورهای اطراف ما بر اساس این اصل کار می کنند. حتی ژنراتورها بر روی بیانیه متقابل این قانون کار می کنند. من در مورد فرمان چپ دست فلمینگ صحبت می کنم
آردوینو 2 دلار ATMEGA328 بصورت مستقل آسان ، ارزان و بسیار کوچک. راهنمای کامل .: 6 مرحله (همراه با تصاویر)
آردوینو 2 دلار ATMEGA328 بصورت مستقل آسان ، ارزان و بسیار کوچک. یک راهنمای کامل: در این مقاله آموزشی نحوه استفاده از تراشه میکروکنترلر Arduino ATMEGA328 به عنوان یک میکروکنترلر مستقل را خواهید آموخت. آنها فقط 2 دلار هزینه دارند ، می توانند همانند Arduino شما عمل کنند و پروژه های شما را بسیار کوچک کنند. ما طرح پین را پوشش می دهیم ،
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). بازآفرینی آسان ، استفاده آسان ، حمل آسان: 3 مرحله
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). آسان برای ایجاد مجدد ، آسان برای استفاده ، آسان برای انتقال: این پروژه به شما کمک می کند تا 18 LED (6 قرمز + 6 آبی + 6 زرد) را به برد Arduino خود متصل کرده و سیگنال های زمان واقعی کارت صدا رایانه خود را تجزیه و تحلیل کرده و آنها را به چراغ های LED برای روشن کردن آنها مطابق با جلوه های ضرب (Snare ، High Hat ، Kick)
بسیار ساده شوخی بسیار م (ثر (شوخی کامپیوتری): 3 مرحله
بسیار ساده … شوخی بسیار م (ثر (شوخی رایانه ای): این دستورالعمل بسیار ساده است ، اما بسیار م effectiveثر است! آنچه اتفاق می افتد این است: شما همه نمادها را روی میز کار قربانی مخفی می کنید. بعد از اینکه شما شوخی کردید ، وقتی کامپیوتر را می بینید ، قربانی وحشت زده می شود. این به هیچ وجه نمی تواند به کامپیوتر آسیب برساند
با استفاده از یک سوئیچ قدرت رومیزی ، قدرت آماده به کار را حذف کنید!: 7 مرحله (همراه با تصاویر)
با استفاده از یک سوئیچ قدرت رومیزی ، قدرت آماده به کار را حذف کنید!: همه ما می دانیم که این اتفاق می افتد. حتی وقتی لوازم خانگی شما (تلویزیون ، کامپیوتر ، بلندگوها ، هارد اکسترنال ، مانیتور و غیره) خاموش هستند & quot؛ خاموش ، & quot؛ آنها هنوز در حالت آماده به کار هستند و قدرت را هدر می دهند. برخی از تلویزیون های پلاسما در واقع از انرژی بیشتری در