جدول المحتويات:
- الخطوة 1: تصميم ثنائي الفينيل متعدد الكلور باستخدام النسر
- الخطوة 2: لحام ثنائي الفينيل متعدد الكلور
- الخطوة 3: البرامج … الوظائف … النتائج
- الخطوة 4: حافظة مطبوعة ثلاثية الأبعاد … نوع من
- الخطوة 5: أشياء يجب تحسينها …
فيديو: مشروع مراقبة GPS مع شاشة OLED: 5 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
مرحبًا بالجميع ، في هذه المقالة السريعة سوف أشارككم مشروعي: وحدة ATGM332D GPS مع متحكم SAMD21J18 وشاشة SSD1306 OLED 128 * 64 ، قمت ببناء PCB خاص لها على Eagle Autodesk ، وبرمجتها باستخدام Atmel studio 7.0 و ASF4 لذلك في هذه المقالة سوف أشارككم هذه الرحلة والملفات التي استخدمتها إذا كنتم مهتمين بفعلها بنفسك.
الآن إذا كنت تقوم ببرمجة لوحة MCU / التطوير الخاصة بك باستخدام Arduino ، فيجب أن يكون هذا المشروع سهلًا نسبيًا بالنسبة لك ، ولكن هنا سأستخدم ASF4 (إطار عمل برنامج متقدم 4) من Atmel / Microchip والذي يعتمد على لغة C وسيعطيك فكرة لمعرفة كيفية قراءة رسالة GPS NMEA باستخدام برنامج التشغيل USART غير المتزامن (Callback) وتزويدك بمكتبة بسيطة يمكنك استخدامها مع أي وحدة تحكم صغيرة ومنصة مختلفة عن طريق إضافة برنامج التشغيل المناسب الذي تستخدمه لتلقي الرسالة من GPS (رسالة NMEA).
سأقسم هذه المقالة إلى:
- تصميم ثنائي الفينيل متعدد الكلور.
- BOM تحتاج إلى تجميع ثنائي الفينيل متعدد الكلور
- نظرة سريعة على البرنامج والرمز نفسه واختبار الأجهزة والبرامج.
- أخيرًا وليس آخرًا ، بعض نقاط التحسين لهذا المشروع.
سوف تجد جميع المواد المتعلقة بهذا المشروع على جيثب (هنا)
الخطوة 1: تصميم ثنائي الفينيل متعدد الكلور باستخدام النسر
يعتمد هذا المشروع بشكل أساسي على وحدة ATGM332D GPS Module ، نظام GPS بسيط للاستخدام لأنه يحتاج فقط إلى مكونين منفصلين للعمل ، ويمكننا إضافة بطارية احتياطية لتوفير الوقت / التاريخ إذا قمنا بإغلاق مصدر الطاقة الرئيسي من الوحدة.
وللتحكم في جميع الإشارات في الدائرة ، ذهبت مع متحكم ATSAMD21J18B ، حزمة TQFP64 نظرًا لأنه يحتوي على 128 كيلوبايت من ذاكرة تخزين البرنامج و 32 كيلوبايت من ذاكرة البيانات (ولدي الكثير منها حول طاولة العمل الخاصة بي).
يجب أن يتم تشغيل الدائرة بواسطة مصدر USB 5V ، كما يمكن أن يعمل USB كمنفذ COM افتراضي (CDC USB) ويمكنك إضافة رمز له إذا كنت تريد التواصل مع الجهاز عبر USB.
بالنسبة للشاشة ، اخترت شاشة OLED SSD1306 0.96 بوصة مع ناقل SPI ، فهي صغيرة ولكنها مناسبة لحجم PCB الذي أردته ، وأبعاد اللوحة 100 × 31 مم.
ستكون برمجة وحدة التحكم الدقيقة من خلال مبرمج SWD (أستخدم Atmel ICE) وسأقوم بتوصيله من خلال رأس دبوس 1.27mm 10p.
كما أنني استخدمت Fusion360 للحصول على عرض ثلاثي الأبعاد للوحة ويمكنك رؤية بعض الصور المعروضة له أيضًا.
الخطوة 2: لحام ثنائي الفينيل متعدد الكلور
لديك خيار لطلب استنسل باستخدام PCB الخاص بك ، فمن الأسهل تطبيق معجون اللحام على اللوحة باستخدام الاستنسل ، لقد استخدمت اللوح الساخن لتلحيم المكونات معًا ، واستخدام الهواء الساخن أمر جيد أيضًا ولكن كن حذرًا أثناء لحام LED منذ ذلك الحين هم حساسون جدا للحرارة.
يعد لحام الجانب السفلي أسهل قليلاً نظرًا لأنه يحتوي فقط على رأس دبوس SWD والبطارية الاحتياطية ، والتي يمكنك لحامها باستخدام مكواة اللحام.
قبل توصيل الدائرة بأي مصدر طاقة USB ، تحقق من وجود أي ماس كهربائي.
قم بتوصيل هوائي GPS وتأكد من لحام الموصل بشكل صحيح ، وقمت بتثبيت الهوائي على الجانب السفلي من اللوحة.
الخطوة 3: البرامج … الوظائف … النتائج
سيتم تقسيم البرنامج إلى 4 أجزاء:
- USART للتواصل مع وحدة GPS ATGM332.
- SPI للتواصل مع OLED.
- USB CDC.
- GPIO للتحكم في المصابيح
قم أولاً بتوصيل موصل USB بالطاقة على الدائرة ثم قم بتوصيل كابل الشريط بموصل SWD.
قم بتنزيل الكود من جيثب (الرابط هنا).
للحصول على الموقع الجغرافي لديك 3 خيارات مختلفة لرسائل NMEA:
- GPGGA
- جي بي آر إم سي
- GPGLL
لقد استخدمت جملة GPRMC للحصول على الموقع والوقت والتاريخ (الوقت هو 0.0 بتوقيت جرينتش) لذلك ستجد في الكود:
GPRMC. Enable = 1 ؛ / * 0 إذا لم تكن هناك حاجة لهذه الرسالة * /
GPGGA. Enable = 0 ؛ / * 0 إذا لم تكن هناك حاجة لهذه الرسالة * /
GPGLL. Enable = 0 ؛ / * 0 إذا لم تكن هناك حاجة لهذه الرسالة * /
يمكنك تمكينهم جميعًا معًا وقراءتها في نفس الوقت للحصول على البيانات التي تحتاجها.
بمجرد وجود جملة GPRMC صالحة ، ستصبح theGPRMC. Ready 1 ويمكنك الحصول على جميع البيانات المتاحة في هذه الجملة ، تحقق من هذا الرابط لمعرفة البيانات المتاحة في هذه الجملة.
ببساطة إذا كان Fix هو "A" فهذا يعني أن الموقع متاح ، إذا كان Fix هو "V" فهذا يعني أن الموقع غير متاح.
لاحظ أن ATSAMD21 يحتوي على RTC داخلي ، لكنني هنا لا أستخدمه وبدلاً من ذلك أستخدم الوقت والتاريخ مباشرة من GPS ، لذلك إذا كنت لا ترغب في استخدام بطارية النسخ الاحتياطي CR1220 ، فبمجرد فصل مصدر طاقة USB ، ستفعل ذلك. تفقد الوقت / التاريخ وفي المرة التالية التي تقوم فيها بتشغيل الدائرة ، ستكون منطقة الوقت / التاريخ على الشاشة فارغة حتى يكون لنظام GPS قيمة صالحة للوقت / التاريخ.
ستظهر لك الشاشة الحالة الحالية لنظام تحديد المواقع العالمي (GPS) وستظهر الموقع الجغرافي بمجرد توفره ، ولكن هناك 3 مصابيح LED على اللوحة:
- مؤشر LED أخضر متصل بـ PA06 ، وسوف يومض إذا كانت هناك قيمة صالحة للموقع الجغرافي.
- مؤشر LED البرتقالي متصل بـ PA07 وسيومض مرة واحدة في الثانية إذا لم يكن هناك موقع جغرافي صالح.
- الصمام الأحمر هذا متصل بدبوس PPS لوحدة GPS وسيومض فقط عندما تكون هناك إشارة صالحة تتعلق بالموقع.
نتائج
عملت الدائرة بشكل جيد معي ، استغرق الحصول على الموقع الجغرافي من GPS 20-30 ثانية في الهواء الطلق مع رؤية واضحة للسماء وبين المباني دون أي مشكلة حتى مع وجود هوائي على الجانب السفلي من اللوحة.
الخطوة 4: حافظة مطبوعة ثلاثية الأبعاد … نوع من
لقد أعددت حالة بسيطة (حامل أكثر دقة) لهذه الدائرة ولكن بسبب وباء COVID-19 والإغلاق الذي أنا فيه الآن ، لم أتمكن من الوصول إلى الطابعة ثلاثية الأبعاد الخاصة بي لطباعتها ، لذلك سأقوم بتحديث هذا القسم بـ stl ملف وصورة لحاملها بمجرد توفرها.
الخطوة 5: أشياء يجب تحسينها …
- نقل موصل SWD إلى الجانب العلوي لأنه من الأسهل توصيله بالمبرمج الخاص بك.
- تشغيل الدائرة من بطارية الليثيوم ، لقد قمت بذلك عن طريق لحام وصلة عبور وعملت بشكل جيد ، وتذكر أن المنظم الخطي (LDO) لديه جهد هبوط V إذا كان (Vbat - Vout) أقل من حد Vdrop قد لا تعمل الدائرة بصورة صحيحة.
- جعل زر المستخدم أكبر قليلاً بحيث يسهل الضغط عليه.
- إضافة كود USB CDC حتى تتمكن من التواصل / تصميم برنامج خاص لماك / كمبيوتر / لينكس.
- بالنسبة لهوائي نظام تحديد المواقع العالمي (GPS) ، استخدمت الهوائي النشط لهذا المشروع ، من الممكن استخدام هوائي سلبي ، عن طريق إضافة منخفض الضوضاء op-Amp مثل AT2659 (راجع أيضًا التخطيطي في ورقة بيانات ATGM332 P.14).
- بالنسبة إلى OLED 0.96 'SSD1306 ، المكتبة الرسمية من الرقاقة الأصلية لعرض 128 * 32 ، لتعديل الكود للعمل مع 128 * 64 ، يجب عليك الانتقال إلى ssd1306.c وتعديل الكود (تحقق من الصورة).
موصى به:
مراقبة مستوى المياه باستخدام شاشة Oled مع Raspberry Pi: 4 خطوات
مراقب مستوى المياه باستخدام شاشة Oled مع Raspberry Pi: مرحبًا بالجميع ، أنا Shafin ، عضو في Aiversity. سأشارك حول كيفية بناء مستشعر مستوى الماء مع شاشة Oled لخزانات المياه مع Raspberry Pi. ستعرض شاشة oled النسبة المئوية للدلو المملوء بالماء
شاشة LCD I2C / IIC - قم بتحويل شاشة SPI LCD إلى شاشة I2C LCD: 5 خطوات
شاشة LCD I2C / IIC | قم بتحويل شاشة SPI LCD إلى شاشة I2C LCD: يحتاج استخدام شاشة spi LCD إلى عدد كبير جدًا من التوصيلات التي يصعب فعلها ، لذلك وجدت وحدة يمكنها تحويل شاشة i2c LCD إلى شاشة spi LCD ، لذا فلنبدأ
تحويل شاشة الكمبيوتر المحمول إلى شاشة خارجية: 8 خطوات (بالصور)
تحويل شاشة الكمبيوتر المحمول الخاص بك إلى شاشة خارجية: هذا البرنامج التعليمي مخصص للمتحمسين الذين يفكرون في استخدام أجهزة الكمبيوتر المحمولة القديمة التي لديها بعض المشكلات الأخرى المتعلقة بمشكلة شاشة LCD مثل تلف MB. ملاحظة: لن أكون مسؤولاً عن أي خسارة أو ضرر من أي نوع كان بسبب هذا المشروع. لديّ Acer A
مشروع الدفيئة (RAS): مراقبة العناصر للرد على مزرعتنا: 18 خطوة (بالصور)
مشروع Greenhouse (RAS): مراقبة العناصر التي يجب التفاعل معها في مزرعتنا: يقترح هذا المشروع مراقبة درجة حرارة الهواء واللمعان والرطوبة ، فضلاً عن درجة حرارة البستان ورطوبته. يقترح أيضًا ربط هذه الإجراءات التي يمكن قراءتها على موقع الويب Actoborad.com للقيام بذلك ، نقوم بتوصيل 4 أجهزة استشعار بـ N
تسجيل مشروع لوحة مع شاشة LED P10 باستخدام DMD: 6 خطوات (بالصور)
مشروع لوحة النتائج مع شاشة P10 LED باستخدام DMD: غالبًا ما نلتقي في ملعب كرة القدم ؛ هناك لوحة LED عملاقة تعمل كلوحة النتائج. لذلك أيضًا في مجال الرياضة الأخرى ، غالبًا ما نعرف أيضًا لوحة النتائج لشاشة العرض المصنوعة من LED. على الرغم من عدم إمكانية ذلك ، إلا أنه لا يزال هناك مجال لنا