فهرست مطالب:
- مرحله 1: طراحی PCB با استفاده از Eagle
- مرحله 2: لحیم کاری PCB
- مرحله 3: نرم افزار… عملکرد… نتایج
- مرحله 4: مورد چاپ سه بعدی … مرتب سازی بر اساس
- گام پنجم: موارد بهبود…
تصویری: مانیتورینگ GPS با پروژه صفحه نمایش OLED: 5 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
با سلام به همگی ، در این مقاله سریع پروژه خود را با شما به اشتراک می گذارم: ماژول GPS ATGM332D با میکروکنترلر SAMD21J18 و صفحه نمایش SSD1306 OLED 128*64 ، من یک PCB ویژه برای آن در Eagle Autodesk ایجاد کردم و با استفاده از Atmel studio 7.0 و ASF4 برنامه ریزی کردم. در این مقاله من این سفر و فایل هایی را که استفاده کردم در صورت تمایل به تنهایی با شما به اشتراک می گذارم.
حالا اگر در حال برنامه نویسی MCU/برد توسعه خود با استفاده از آردوینو هستید ، این پروژه باید نسبتاً آسان باشد ، اما در اینجا من از ASF4 (فریمورک نرم افزاری پیشرفته 4) Atmel/Microchip که بر اساس زبان C است استفاده می کنم و ایده ای به شما می دهد. برای نحوه خواندن پیام GPS NMEA با استفاده از درایور USART Asynchronous (Callback) و ارائه یک کتابخانه ساده به شما که می توانید از آن با هر کنترلر میکرو و پلت فرم مختلف استفاده کنید ، کافی است درایور مناسبی را که برای دریافت پیام از آن استفاده می کنید اضافه کنید. GPS (پیام NMEA).
این مقاله را به موارد زیر تقسیم می کنم:
- طراحی PCB.
- BOM شما نیاز به مونتاژ PCB دارید
- نگاهی سریع به نرم افزار و خود کد و آزمایشی برای سخت افزار و نرم افزار.
- در نهایت اما نکته مهمی برای بهبود این پروژه است.
تمام مطالب مربوط به این پروژه را در Github (اینجا) خواهید یافت
مرحله 1: طراحی PCB با استفاده از Eagle
این پروژه عمدتا بر اساس ماژول GPS ATGM332D ، GPS ساده برای استفاده است زیرا فقط به چند جزء منفعل برای کار نیاز دارد و در صورت خاموش کردن منبع تغذیه اصلی از ماژول ، می توانیم یک باتری پشتیبان برای صرفه جویی در زمان/تاریخ اضافه کنیم.
و برای کنترل همه سیگنالهای موجود در مدار با میکروکنترلر ATSAMD21J18B ، بسته TQFP64 استفاده کردم زیرا 128 کیلوبایت حافظه برنامه و 32 کیلوبایت حافظه داده دارد (و تعداد زیادی از آنها در اطراف میز کار من قرار دارد).
مدار باید از منبع USB 5V تغذیه شود ، همچنین USB می تواند به عنوان پورت COM مجازی (CDC USB) عمل کند و اگر می خواهید از طریق USB با دستگاه ارتباط برقرار کنید ، می توانید یک کد برای آن اضافه کنید.
برای صفحه نمایش من SSD1306 صفحه نمایش 0.96 اینچی OLED با گذرگاه SPI را انتخاب کردم ، کوچک است اما برای اندازه PCB مورد نظر من مناسب است ، ابعاد برد 100x31 میلی متر.
برنامه نویسی میکروکنترلر از طریق برنامه نویس SWD (من از Atmel ICE استفاده می کنم) انجام می شود و آن را از طریق هدر پین 1.27 میلی متری 10p متصل می کند.
همچنین از Fusion360 برای مشاهده نمای سه بعدی برای برد استفاده کردم و شما می توانید برخی از تصاویر رندر شده را نیز برای آن مشاهده کنید.
مرحله 2: لحیم کاری PCB
شما می توانید یک استنسیل با PCB خود سفارش دهید ، استفاده از خمیر لحیم کاری روی تخته با استفاده از استنسیل آسان تر است ، من از صفحه داغ برای لحیم کردن اجزا با هم استفاده کردم ، استفاده از هوای گرم نیز مناسب است ، اما هنگام لحیم کاری LED مراقب باشید. آنها به گرما بسیار حساس هستند
لحیم کاری قسمت پایینی کمی ساده تر است زیرا فقط هدر پین SWD و باتری پشتیبان دارد ، که می توانید آنها را با استفاده از لحیم کاری لحیم کنید.
قبل از اتصال مدار با منبع تغذیه USB ، اتصال کوتاه را بررسی کنید.
آنتن GPS خود را وصل کنید و مطمئن شوید که اتصال آن را به درستی لحیم کرده اید ، من آنتن را در قسمت پایینی برد ثابت کردم.
مرحله 3: نرم افزار… عملکرد… نتایج
نرم افزار به 4 قسمت تقسیم می شود:
- USART برای ارتباط با ماژول GPS ATGM332.
- SPI برای ارتباط با OLED.
- USB CDC.
- GPIO برای کنترل LED ها
ابتدا کانکتور USB را به مدار وصل کنید و سپس کابل روبان را با کانکتور SWD وصل کنید.
کد را از github بارگیری کنید (پیوند اینجا).
برای دریافت موقعیت جغرافیایی ، 3 گزینه مختلف پیام NMEA دارید:
- GPGGA
- GPRMC
- GPGLL
من از جمله GPRMC برای به دست آوردن مکان ، زمان و تاریخ (زمان 0.05 GMT) استفاده کردم ، بنابراین در کد می توانید پیدا کنید:
GPRMC. Enable = 1؛/*0 در صورت عدم نیاز به این پیام*/
GPGGA. En = 0؛/*0 در صورت عدم نیاز به این پیام فعال کنید*/
GPGLL. En = 0؛/*0 در صورت عدم نیاز به این پیام فعال کنید*/
می توانید همه آنها را با هم فعال کنید و همزمان آنها را بخوانید و اطلاعات مورد نیاز خود را بدست آورید.
هنگامی که یک جمله معتبر GPRMC وجود دارد ، theGPRMC. آماده 1 می شود و می توانید تمام داده های موجود در این جمله را بدست آورید ، این پیوند را بررسی کنید تا داده های موجود در این جمله را ببینید.
اگر Fix "A" باشد به این معنی که مکان در دسترس است ، اگر Fix "V" باشد به این معنی است که مکان در دسترس نیست.
توجه داشته باشید که ATSAMD21 دارای RTC داخلی است ، اما در اینجا من از آن استفاده نمی کنم و در عوض از زمان و تاریخ مستقیماً از GPS استفاده می کنم ، بنابراین اگر نمی خواهید از باتری پشتیبان CR1220 استفاده کنید ، پس از قطع منبع تغذیه USB ، زمان/تاریخ را از دست دهید و برای بار بعدی که مدار را روشن می کنید ، منطقه زمان/تاریخ روی صفحه نمایش خالی می شود تا زمانی که GPS دارای زمان/تاریخ معتبر باشد.
صفحه نمایش وضعیت فعلی GPS را به شما نشان می دهد و پس از در دسترس بودن موقعیت جغرافیایی را نشان می دهد ، با این حال 3 LED در صفحه وجود دارد:
- چراغ سبز به PA06 متصل شده و در صورت وجود مقدار موقعیت مکانی معتبر چشمک می زند.
- LED نارنجی به PA07 متصل شده و در صورت عدم وجود موقعیت مکانی معتبر ، یک ثانیه چشمک می زند.
- این چراغ قرمز به پین PPS ماژول GPS متصل می شود و فقط در صورت وجود سیگنال معتبر مربوط به موقعیت مکانی چشمک می زند.
نتایج
مدار با من بسیار خوب کار کرد ، دریافت موقعیت مکانی از GPS 20 تا 30 ثانیه در فضای باز با دید واضح به آسمان و بین ساختمانها بدون هیچ مشکلی حتی با آنتن در قسمت پایین برد.
مرحله 4: مورد چاپ سه بعدی … مرتب سازی بر اساس
من یک مورد ساده (نگهدارنده دقیق تر) برای این مدار آماده کردم ، اما به دلیل همه گیری COVID-19 و قرنطینه ای که در حال حاضر در آن هستم ، نتوانستم برای چاپ آن به چاپگر 3d خود دسترسی پیدا کنم ، بنابراین این بخش را با stl به روز می کنم. پس از در دسترس بودن فایل و عکس برای دارنده.
گام پنجم: موارد بهبود…
- اتصال SWD را به سمت بالا منتقل کنید زیرا اتصال آن با برنامه نویس آسان تر است.
- با تغذیه مدار از باتری لیتیوم ، این کار را با لحیم کردن یک بلوز انجام دادم و خوب کار کرد ، در نظر داشته باشید که تنظیم کننده خطی (LDO) دارای ولتاژ افت V است اگر (Vbat - Vout) کمتر از حد Vdrop مدار ممکن است کار نکند به درستی.
- دکمه کاربر را کمی بزرگتر کنید تا فشردن آن راحت تر شود.
- اضافه کردن کد USB CDC ، بنابراین می توانید برنامه خاصی را برای MAC/PC/linux طراحی و طراحی کنید.
- برای آنتن GPS ، من از آنتن فعال برای این پروژه استفاده کردم ، استفاده از آنتن غیرفعال با افزودن op-Amp کم سر و صدا مانند AT2659 امکان پذیر است (همچنین شماتیک ATGM332 Datasheet P.14 را بررسی کنید).
- برای OLED 0.96 'SSD1306 ، کتابخانه رسمی میکروچیپ در اصل برای صفحه نمایش 128*32 ، برای تغییر کد برای کار با 128*64 باید به ssd1306.c بروید و کد را اصلاح کنید (تصویر را بررسی کنید).
توصیه شده:
دمای صفحه نمایش آردوینو بر روی صفحه نمایش LED TM1637: 7 مرحله
دمای صفحه نمایش آردوینو در نمایشگر LED TM1637: در این آموزش نحوه نمایش دما با استفاده از LED Display TM1637 و سنسور DHT11 و Visuino را یاد می گیریم. فیلم را تماشا کنید
انتخاب گام موتور و درایور برای پروژه صفحه نمایش سایه خودکار آردوینو: 12 مرحله (همراه با تصاویر)
انتخاب گام موتور و درایور برای پروژه صفحه نمایش سایه خودکار آردوینو: در این دستورالعمل ، مراحلی را طی می کنم که برای انتخاب Step Motor و Driver برای نمونه اولیه پروژه Automated Shade Screen انجام دادم. صفحات سایه دار مدلهای محبوب و ارزان قیمت Coolaroo هستند و من می خواستم آن را جایگزین کنم
نحوه ساخت ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT - Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: 4 مرحله
نحوه ساختن ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT | Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: از کانال یوتیوب من دیدن کنید. مقدمه:- در این پست قصد دارم "ساعت واقعی" را با استفاده از LCD لمسی 3.5 اینچی TFT ، Arduino Mega بسازم. ماژول 2560 و DS3231 RTC…. قبل از شروع… ویدیو را از کانال YouTube من بررسی کنید .. توجه:- اگر از Arduin استفاده می کنید
نمایش درجه حرارت در ماژول صفحه نمایش LED P10 با استفاده از آردوینو: 3 مرحله (همراه با تصاویر)
نمایش درجه حرارت در ماژول صفحه نمایش LED P10 با استفاده از آردوینو: در آموزش قبلی نحوه نمایش متن بر روی ماژول نقطه صفحه نمایش LED P10 با استفاده از Arduino و DMD Connector توضیح داده شده است ، که می توانید اینجا را بررسی کنید. در این آموزش ما یک پروژه ساده با استفاده از ماژول P10 به عنوان صفحه نمایش
پروژه امتیاز صفحه با صفحه نمایش LED P10 با استفاده از DMD: 6 مرحله (همراه با تصاویر)
پروژه امتیاز صفحه با صفحه نمایش LED P10 با استفاده از DMD: اغلب ما در یک استادیوم فوتبال ملاقات می کنیم. یک تخته LED غول پیکر وجود دارد که به عنوان یک صفحه امتیاز عمل می کند. همچنین در سایر رشته های ورزشی ، اغلب ما صفحه امتیاز صفحه نمایش LED را می شناسیم. اگرچه امکان پذیر نیست ، اما زمینه ای نیز وجود دارد که ما هنوز