جدول المحتويات:

مولد وظيفة محمول على WiFi و Android: 10 خطوات
مولد وظيفة محمول على WiFi و Android: 10 خطوات

فيديو: مولد وظيفة محمول على WiFi و Android: 10 خطوات

فيديو: مولد وظيفة محمول على WiFi و Android: 10 خطوات
فيديو: أعلى مستوى وصلتوا في البرمجة 2024, يوليو
Anonim
مولد وظيفة محمول على WiFi و Android
مولد وظيفة محمول على WiFi و Android
مولد وظيفة محمول على WiFi و Android
مولد وظيفة محمول على WiFi و Android
مولد وظيفة محمول على WiFi و Android
مولد وظيفة محمول على WiFi و Android
مولد وظيفة محمول على WiFi و Android
مولد وظيفة محمول على WiFi و Android

قرب نهاية القرن العشرين ، ظهرت العديد من الابتكارات التكنولوجية ، لا سيما في مجال الاتصالات ؛ ولكن ليس فقط. بالنسبة لنا ، بدأ المستخدمون والمستهلكون والمهندسون الضوء على التطور السريع للأجهزة الإلكترونية ، والذي يمكن أن يجعل حياتنا أسهل كثيرًا: الساعات الذكية والمنازل الذكية والهواتف الذكية وما إلى ذلك.

نظرًا لأن كل شيء يمكن أن يكون "ذكيًا" في الوقت الحاضر ، فقد قررت تصميم جهاز مفيد للغاية ليكون جزءًا من معدات المختبرات الإلكترونية الأساسية - مولد وظيفة محمول ، يمكن التحكم فيه عن طريق الهاتف الذكي المستند إلى نظام التشغيل Android عبر WiFi Direct أو WiFi Local Area Network (WLAN)).

لماذا يجب أن نبني هذا الجهاز؟

الغالبية العظمى من معدات الاختبار باهظة الثمن في الوقت الحاضر. وأحيانًا ، لا تكون هذه الأجهزة محمولة. كحل للأسعار المرتفعة والافتقار إلى إمكانية النقل ونقص الوصول إلى شبكة الجهاز ، يوفر الجهاز مولدًا موجيًا مزدوج القناة ، وهو في الواقع محمول ولديه وصول غير مقيد إلى الشبكة - إما الإنترنت أو الشبكة المحلية.

وبالطبع ، يجب تصميم الجهاز بسبب الحماس والامتثال لمبادئ DIY - في بعض الأحيان يتعين علينا فقط القيام بالأشياء بأنفسنا حتى نشعر بالراحة:)

دلائل الميزات

مزود الطاقة

  • موصل USB من النوع A ، لكل من أنظمة الإمداد بالطاقة والبرمجة
  • نظام إدارة بطارية Li-Ion الكامل - أوضاع الشحن والمستقرة
  • تنفيذ Smart Switch - لا حاجة لمفتاح تبديل الطاقة
  • مزود الطاقة المزدوج: + 3.3 فولت و -3.3 فولت لتوليد الموجي المتماثل للجهد

توليد الموجي

  • تنفيذ مستوى التيار المستمر عند تسلسل الخرج - شكل موجة متحيز بين حدود الجهد
  • الجيل الموجي من 4 أنواع DDS - الجيب والمثلث والمربع والتيار المستمر
  • دعم تردد يصل إلى 10 ميجا هرتز
  • تيار الإخراج يصل إلى 80 مللي أمبير مع توفر طاقة قصوى 500 ميجا واط
  • قنوات منفصلة لتوليد الموجي - دوائر مقسمة AD9834

تواصل

  • تنفيذ ESP32 - إمكانيات WiFi القابلة للتطبيق
  • دعم TCP / IP الكامل بواسطة جهاز المولد والهاتف الذكي الذي يعمل بنظام Android
  • القدرة على تخزين معلمات المستخدم لكل دورة جهاز
  • مراقبة الحالة - كلا النظامين على دراية بالحالة الأخرى: FuncGen (دعنا نسميها بهذه الطريقة من الآن فصاعدًا) والهاتف الذكي.

واجهة المستخدم

  • شاشة LCD مقاس 20 × 4 مع واجهة بيانات بسيطة 4 بت
  • تطبيق Android - تحكم المستخدم الكامل في جهاز FuncGen
  • دائرة الجرس - ملاحظات صوتية للمستخدم

الخطوة 1: مخطط الكتلة - الأجهزة

مخطط الكتلة - الأجهزة
مخطط الكتلة - الأجهزة
مخطط الكتلة - الأجهزة
مخطط الكتلة - الأجهزة

وحدة متحكم - ATMEGA32L

Microcontroller عبارة عن شريحة قابلة للبرمجة تتكون من جميع وظائف الكمبيوتر الموجودة في شريحة إلكترونية واحدة. في حالتنا ، هو "الدماغ" والمكون المركزي للنظام. الغرض من MCU هو إدارة جميع الأنظمة الطرفية ، والتعامل مع الاتصال بين هذه الأنظمة ، والتحكم في تشغيل الأجهزة ، وتوفير الدعم الكامل لواجهة المستخدم وتفاعلها مع مستخدم فعلي. يعتمد هذا المشروع على ATMEGA32L MCU ، والتي قد تعمل على 3.3 فولت وتردد 8 ميجا هرتز.

الاتصالات SoC - ESP32

يوفر نظام SoC (System on Chip) دعمًا كاملاً للاتصالات لـ FuncGen - الوصول إلى إمكانات WiFi بما في ذلك الاتصال المباشر أو المحلي أو عبر الإنترنت. أغراض الجهاز هي:

  • معالجة نقل البيانات بين تطبيق Android وجهاز FuncGen
  • إدارة رسائل التحكم / البيانات
  • دعم تكوين TCP / IP Client-Server المستمر

في مشروعنا ، فإن SoC هو espressif ESP32 ، وهو أمر شائع جدًا للتوسع فيه بشكل أكبر:)

نظام إدارة بطارية ليثيوم أيون

من أجل تحويل أجهزتنا إلى جهاز محمول ، يحتوي الجهاز على دائرة شحن بطارية Li-Ion مصممة. تعتمد الدائرة على MC73831 IC ، مع تيار شحن يمكن التحكم فيه عن طريق ضبط قيمة مقاوم برمجة واحد (سنغطي هذا الموضوع في خطوة التخطيط). إدخال مصدر طاقة الجهاز هو موصل USB من النوع A.

دارة التبديل الذكية

توفر دائرة التحكم في طاقة جهاز التبديل الذكي تحكمًا كاملاً في البرنامج على تسلسل إيقاف تشغيل الجهاز وعدم الحاجة إلى مفتاح تبديل خارجي لقطع جهد بطارية الجهاز. تتم جميع عمليات الطاقة عن طريق الضغط على زر الضغط وبرنامج MCU. في بعض الحالات ، قد تكون هناك حاجة لإغلاق النظام: جهد بطارية منخفض ، جهد دخل مرتفع ، خطأ في الاتصال وما إلى ذلك. يعتمد المفتاح الذكي على المفتاح الذكي STM6601 IC ، وهو رخيص وسهل الاستخدام.

وحدة إمداد الطاقة الرئيسية

تتكون هذه الوحدة من دائرتين لإمداد الطاقة تعملان بالبطارية - + 3.3 فولت لجميع دوائر الإمداد الرقمية / التناظرية و -3.3 فولت للإخراج المتماثل لـ FunGen بالنسبة لإمكانات 0 فولت (أي يمكن تعيين شكل الموجة المتولدة في [-3.3 فولت: 3.3 فولت] منطقة.

  • تعتمد دائرة الإمداد الرئيسية على منظم الجهد الخطي LP3875-3.3 LDO (تسرب منخفض) 1A.
  • تعتمد دائرة الإمداد الثانوية على LM2262MX IC ، والتي تقوم بتحويل الجهد السالب DC-DC عبر مضخة شحن مكثف - النظام الذي يعتمد عليه IC.

نظام مولدات الموجي

تم تصميم النظام مع التركيز على الدوائر المتكاملة المنفصلة (التوليف الرقمي المباشر) ، والتي تسمح بالتحكم الكامل في توليد شكل الموجة بواسطة MCU's SPI (الواجهة الطرفية التسلسلية). الدوائر التي تم استخدامها في التصميم هي الأجهزة التناظرية AD9834 التي قد توفر أنواعًا مختلفة من أشكال الموجة. التحديات التي نحتاج إلى مواجهتها أثناء العمل مع AD9834 هي:

  • سعة شكل الموجة الثابتة: يتم التحكم في سعة شكل الموجة بواسطة وحدة DAC خارجية
  • لا يوجد اعتبار لمستوى تعويض التيار المستمر: تنفيذ دوائر الجمع بقيم إزاحة التيار المستمر
  • النواتج المنفصلة للموجة المربعة والمثلث / الموجة الجيبية: تنفيذ دارة تبديل عالية التردد وبالتالي يمكن أن يوفر كل مخرج فردي للقناة كل أشكال الموجة المطلوبة: الجيب والمثلث والمربع والتيار المستمر.

شاشات الكريستال السائل

تعد شاشة LCD جزءًا من واجهة المستخدم (واجهة المستخدم) ، والغرض منها هو السماح للمستخدم بفهم ما يفعله الجهاز في وضع الوقت الفعلي. يتفاعل مع المستخدم في كل حالة جهاز.

صفارة

دائرة مولد نغمة بسيطة للحصول على تعليقات إضافية من الجهاز إلى المستخدم.

مبرمج ISP متكامل

هناك مشكلة مستمرة لكل مهندس عندما يتعلق الأمر بعملية البرمجة: هناك دائمًا أشد الحاجة إلى تفكيك المنتج من أجل إعادة برمجته باستخدام برنامج ثابت جديد. للتغلب على هذا الإزعاج ، تم توصيل مبرمج AVR ISP بالجهاز من الداخل ، في حين أن بيانات USB وخطوط الطاقة مرتبطة بموصل USB من النوع A بالجهاز. في هذا التكوين ، نحتاج فقط إلى توصيل FuncGen عبر كابل USB إما للبرمجة أو الشحن!

الخطوة 2: مخطط الكتلة - الشبكات

مخطط كتلة - الشبكات
مخطط كتلة - الشبكات

مولد وظيفة القناة المزدوجة

الجهاز الرئيسي. الذي قمنا بمراجعته في الخطوة السابقة

ESP-WROOM-32

نظام متكامل على رقاقة مع إمكانات WiFi و BLE. يتم توصيل SoC باللوحة الرئيسية (سنغطي هذا في خطوة التخطيط) عبر وحدة UART ويعمل بمثابة تحويل رسالة بين الجهاز الرئيسي والهاتف الذكي الذي يعمل بنظام Android.

شبكة WiFi المحلية

سيتواصل الهاتف الذكي والجهاز عبر شبكة WiFi مباشرة أو شبكة محلية ، بناءً على تكوين خادم / عميل TCP. عندما تتعرف الأجهزة على بعضها البعض على شبكة WiFi ، يقوم الجهاز الرئيسي بإنشاء خادم TCP مع المعلمات المناسبة ويكون قادرًا على إرسال / استقبال الرسائل. يعمل الجهاز كجهاز ثانوي للهاتف الذكي. من ناحية أخرى ، يتصل جهاز Android بخادم TCP كجهاز شبكة عميل ، ولكنه يعتبر جهاز إرسال الرسائل الأساسي - الهاتف الذكي هو الشخص الذي يبدأ دورة اتصال كاملة: إرسال رسالة - تلقي الرد.

هاتف ذكي يعمل بنظام Android

جهاز هاتف ذكي يعمل بنظام التشغيل Android ويعمل على تطبيق FuncGen

الخطوة 3: الأجزاء والأدوات و IDE وفاتورة المواد

الأجزاء والأدوات و IDE وفاتورة المواد
الأجزاء والأدوات و IDE وفاتورة المواد
الأجزاء والأدوات و IDE وفاتورة المواد
الأجزاء والأدوات و IDE وفاتورة المواد
الأجزاء والأدوات و IDE وفاتورة المواد
الأجزاء والأدوات و IDE وفاتورة المواد

فاتورة المواد (انظر جدول XLS المرفق)

اتصالات واجهة المستخدم والنظام

  • 1 × 2004A Char-LCD 20x4 Blue
  • 1 × موصل USB من النوع B
  • 1 × 10 مجموعة Mini Micro JST XH 2.54mm 4 Pin
  • 1 × 6 قطعة SW لحظة

طلب ثنائي الفينيل متعدد الكلور (وفقًا لـ Seeed Studio)

المادة الأساسية FR-4

عدد الطبقات 2 طبقات

كمية ثنائي الفينيل متعدد الكلور 10

عدد التصاميم المختلفة 1

سمك ثنائي الفينيل متعدد الكلور 1.6 مم

ثنائي الفينيل متعدد الكلور اللون الأزرق

إنهاء سطحي HASL

الحد الأدنى لسد قناع اللحام 0.4 مم ↑

وزن النحاس 1 أوقية

الحد الأدنى لحجم ثقب الحفر 0.3 مم

عرض التتبع / التباعد 6/6 مل

فتحات نصف مطلي / ثقوب مسبوكة لا

التحكم في المعاوقة

أدوات

  • مسدس الغراء الساخن
  • ملاقيط
  • القاطع
  • ~ سلك 22AWG لأغراض معالجة الأعطال
  • لحام الحديد / محطة
  • لحام القصدير
  • محطة إعادة عمل SMD (اختياري)
  • طابعة ثلاثية الأبعاد (اختياري)
  • ملف البثق
  • مبرمج AVR ISP
  • USB to Serial Converter (اختياري ، لأغراض التصحيح)

بيئة التطوير المتكاملة (IDE) والبرمجيات

  • Autodesk EAGLE أو محرر تخطيطي الإيقاع / محرر Allegro PCB
  • OpenSCAD (اختياري)
  • Ultimaker Cura (اختياري)
  • منطق Saleae (لاستكشاف الأخطاء وإصلاحها)
  • Atmel Studio 6.3 أو أعلى
  • Android Studio أو Eclipse IDE
  • Docklight Serial Monitor / برنامج مراقبة منفذ COM آخر
  • برنامج ProgISP لبرمجة فلاش AVR ATMEGA32L

الخطوة 4: تصميم الأجهزة - اللوحة الرئيسية

تصميم الأجهزة - اللوحة الرئيسية
تصميم الأجهزة - اللوحة الرئيسية
تصميم الأجهزة - اللوحة الرئيسية
تصميم الأجهزة - اللوحة الرئيسية
تصميم الأجهزة - اللوحة الرئيسية
تصميم الأجهزة - اللوحة الرئيسية

دائرة إدارة البطارية

تعتمد دائرة شحن البطارية على MCP7383 IC ، مما يسمح لنا باختيار تيار الشحن المطلوب لبطارية Li-Ion - 3.7V بسعة 850mAh. يتم ضبط تيار الشحن عن طريق برمجة قيمة المقاوم (R1) في حالتنا

R1 = 3KOhm ، I (شحنة) = 400mA

جهد USB يتم ترشيح VBUS بواسطة مرشح π (C1 ، L3 ، C3) ويعمل كمصدر طاقة لدائرة الشحن.

تسمح دائرة مقسم الجهد (R2 ، R3) لـ MCU بالإشارة إلى ما إذا كان مصدر طاقة USB الخارجي متصل أم لا ، من خلال توفير الجهد التالي لقناة MCU A / D:

V (إشارة) ~ (2/3) V (BUS)

نظرًا لأن A / D الخاص بنا لـ ATMEGA32L هو 12 بت ، يمكننا حساب النطاق الرقمي:

A / D (النطاق) = 4095V (إشارة) / V (REF).

A / D ∈ [14AH: FFFH]

وحدة الطاقة الذكية سويتش

تسمح الدائرة للنظام بالتحكم في مصدر الطاقة لكل كتلة مصممة من زر الضغط والبرامج الموجودة على MCU وتعتمد على خيار STM6601 Smart-Switch with POWER بدلاً من RESET. المحطات الطرفية التي نريد النظر فيها هي:

  • PSHOLD - خط الإدخال ، الذي يحدد حالة الجهاز: إذا تم سحبه منخفضًا ، يقوم الجهاز بتعطيل جميع وحدات الإمداد بالطاقة الثانوية (+ 3.3 فولت و -3.3 فولت). إذا تم الضغط على HIGH - يحتفظ الجهاز بحالة التشغيل.
  • nSR و nPB - خطوط الإدخال. محطات زر الضغط. عند اكتشاف حافة متساقطة على هذه المسامير ، يحاول الجهاز الدخول في وضع التشغيل لأعلى / لأسفل
  • nINT - خط الإخراج. يتم سحبه لأسفل في كل مرة عند الضغط على زر الضغط
  • EN - خط الإخراج ، يستخدم كممكّن للطاقة لوحدات إمداد الطاقة الثانوية. أثناء الضغط على LOW ، يتم تعطيل كل من موردي الطاقة الثانويين

هناك بعض الملاحظات المهمة قبل أن ننتقل إلى التصميم النهائي:

  • يجب سحب PSHOLD حتى 3.3 فولت ، لأن هناك حالات تجبر فيها وحدات MCU على أن تكون جميع I / Os في حالة HIGH-Z. في هذه الحالة ، تكون حالة PSHOLD من MCU غير معروفة وقد تؤثر بشكل كبير على عملية برمجة الجهاز.
  • يجب طلب STM6601 بخيار ضبط EN عند الضغط لفترة طويلة ، بدلاً من خيار إعادة الضبط (لقد وقعت في هذا الخيار).

وحدة إمداد الطاقة: + 3.3 فولت

مصدر الطاقة الرئيسي لجميع الأنظمة في مشروعنا. عندما يتم تعليق خط + 3.3V على مستوى GND (أي لا يوجد جهد كهربائي) ، يتم تعطيل كل IC باستثناء المفتاح الذكي. تعتمد الدائرة على LDO LP-3875-3.3 IC ، مع إمكانية التحكم عبر طرف EN وتوفير تيار يصل إلى 1A.

مصدر الطاقة لهذه الدائرة هو جهد البطارية ، مع مؤشر A / D المرفق لاستشعار VBAT في التكوين ، على غرار دائرة الاستشعار VBUS. في هذه الحالة ، تختلف الحسابات قليلاً ؛

V (البطارية إلى A / D) = 0.59 فولت (البطارية) ؛ A / D (النطاق) ∈ [000H: C03H]

وحدة إمداد الطاقة: -3.3 فولت

تسمح لنا دائرة إمداد الجهد السالب بتوليد أشكال موجية متناظرة بعامل تيار مستمر يبلغ 0 فولت (أي أن متوسط قيمة الموجي يمكن أن يكون 0 فولت). تعتمد هذه الدائرة على محول LM2662MX IC - DC / DC الذي يعمل على طريقة "مضخة الشحن". أقصى تيار خرج للدائرة هو 200 مللي أمبير وهو ما يكفي لمتطلبات التصميم لدينا - نحن مقيدون بتيار خرج 80 مللي أمبير من قناة كل جهاز.

يقوم IC بجميع الأعمال المطلوبة ، لذلك الأجزاء التي نحتاج إلى إرفاقها هي مكثفتان كهربائيتان: C33 للتبديل و C34 لتجاوز الخط -3.3 فولت (اعتبارات تقليل الضوضاء). إن تواتر التبديل لا يكاد يذكر في التصميم إذا كنا نضع الدائرة بعيدًا بما يكفي عن أجزاء توليد الشكل الموجي (سنناقش ذلك في خطوة تخطيط ثنائي الفينيل متعدد الكلور).

وحدة متحكم دقيق - MCU

هذا هو المدير والمدير التنفيذي لنظامنا - التحكم ومعالجة الشبكة ونقل الرسائل ودعم واجهة المستخدم - كل شيء يتم بواسطة MCU.

MCU الذي تم اختياره هو Atmel ATMEGA32L ، حيث يرمز L إلى تشغيل الجهد المدعوم ∈ [2.7V: 5.5V]. في حالتنا ، جهد التشغيل هو + 3.3 فولت.

دعنا نفكر في كتل التشغيل الرئيسية الضرورية لفهم العمل مع MCU في تصميمنا:

  • مذبذب خارجي - هو مكون اختياري ، لأننا مهتمون بتردد تشغيل 8 ميجاهرتز
  • التحكم المحيطي ، شبكة SPI - جميع الأجهزة الطرفية (باستثناء ESP32) تتواصل مع MCU عبر SPI. هناك ثلاثة خطوط مشتركة لجميع الأجهزة (SCK و MOSI و MISO) وكل دائرة طرفية لها خط CS (Chip Select) المخصص. أجهزة SPI التي تعد جزءًا من الجهاز:

    1. D / A للتحكم في الاتساع - القناة أ
    2. D / A للتحكم في الاتساع - القناة ب
    3. جهاز AD9834 - القناة أ
    4. جهاز AD9834 - القناة ب
    5. D / A للتحكم في جهد التحيز - القناة أ
    6. D / A للتحكم في جهد التحيز - القناة ب
    7. مقياس الجهد الرقمي لإعدادات سطوع / تباين LCD
  • دعم LCD - نظرًا لأن شاشة LCD عبارة عن شاشة عرض عامة 20 × 4 أحرف ، فنحن نستخدم واجهة 4 بت (الخطوط D7: D4) ودبابيس التحكم (خطوط RS ، E) والتحكم في السطوع / التباين (الخطوط V0 والأنود)
  • دعم RGB LED - هذه الوحدة اختيارية ، ولكن يوجد موصل RGB LED كاثود مشترك مع مقاومات مناسبة ، متصلة بـ MCU.
  • التحكم في الطاقة - يقوم MCU بمراقبة نظام الطاقة في وضع الوقت الفعلي ، ويتعامل مع جميع أحداث الطاقة المطلوبة:

    1. VBAT_ADC - مراقبة جهد البطارية وتحديد حالتها (قناة ADC0)
    2. PWR_IND - إشارة إلى اتصال مصدر طاقة خارجي (قناة ADC1)
    3. PS_HOLD - خط تمكين الطاقة الأساسي لجميع الأنظمة المحددة. عندما يتم سحب وحدة MCU إلى مستوى منخفض ، يتم إيقاف تشغيل الجهاز
    4. محطة مقاطعة للمفتاح الذكي - مراقبة حالة زر الضغط
  • إدارة شبكة WiFi - ESP32: يتصل MCU بـ ESP32 عبر واجهة UART. نظرًا لأن 8 ميجاهرتز تسمح لنا بتنفيذ معدل الباود 115200 بخطأ صغير نسبيًا ، يمكننا استخدام ESP32 في الدائرة بدون تعريفات مسبقة لتغييرات معدل الباود.

مبرمج AVR ISP

تمت برمجة MCU الخاص بنا عبر SPI مع إعادة تعيين الخط (/ RST) يجب أن يتم سحبه عاليًا لإجراء عملية مناسبة (إذا لم يكن الأمر كذلك - فسيجد MCU نفسه في حالة إعادة تعيين إلى الأبد).

من أجل السماح ببرمجة الجهاز وشحنه عبر USB ، قمت بإرفاق مبرمج AVR ISP (منتج صغير الحجم ، تم شراؤه من eBay). من أجل الحفاظ على دعم USB الكامل للجهاز ، هناك حاجة لربط أطراف USB من النوع A (D + و D- و VBUS و GND) بجهاز AVR ISP.

دائرة توليد الشكل الموجي

جوهر الجهاز هو هذه الدوائر. AD9834 هو جهاز DDS منخفض الطاقة يوفر لنا جميع أشكال الموجة التي نرغب في استردادها من النظام. تحتوي الدارات على اثنين من الدوائر المتكاملة AD9834 مستقلة مع مذبذبات خارجية منفصلة بتردد 50 ميجاهرتز (كما يمكن رؤيته في المخططات). سبب المذبذب المنفصل هو اعتبارات تقليل ضوضاء الدوائر الرقمية ، لذلك كان القرار هو التعامل مع خطوط 50MHz المناسبة مع المذبذبات الموضوعة بجوار AD9834.

الآن دعونا نلقي نظرة على بعض الرياضيات:

نظرًا لأن جهاز DDS يعمل على تقنية Phase Wheel مع قيمة الإخراج المحفوظة في سجل 28 بت ، يمكننا وصف توليد شكل الموجة رياضيًا:

ديسيبل (المرحلة) = ωdt ؛ ω = P '= 2πf ؛ و (AD9834) = ΔP * f (clk) / 2 ^ 28 ؛ ΔP ∈ [0: 2 ^ 28 - 1]

ووفقًا لورقة البيانات AD9834 ، مع مراعاة الحد الأقصى للتردد ، يمكن الحصول على دقة تردد الإخراج:

Δf = k * f (مذبذب) / f (الحد الأقصى) = 0.28 * 50 م / 28 م = 0.187 [هرتز]

توفر الدوائر المتكاملة AD9834 خرج تيار تناظري لموجة مثلث / جيبية (طرف IOUT) وإخراج رقمي لموجة مربعة (محطة SIGN_OUT). يعد استخدام بت الإشارة معقدًا بعض الشيء ولكننا قادرون على التعامل معه - في كل مرة يتجاوز DDS عتبة قيمة المقارنة ، يتصرف SIGN_OUT وفقًا لذلك. يتم توصيل المقاوم 200Ohm بإخراج كل قناة ، لذلك سيكون لجهد الخرج قيم ذات معنى:

أنا (قناة واحدة) = V (خرج) / R (اختيار الجهد) ؛ V (الإخراج) = R (VS) * I (SS) = 200I (SS) [A]

دوائر التحكم في الاتساع (D / A)

وفقًا لورقة البيانات AD9834 ، يمكن تعديل اتساعها من خلال توفير التيار لنظام DDS الكامل النطاق ، لذلك بمساعدة D / A IC المزدوج ، يمكننا التحكم في سعة إشارة الخرج عن طريق ضبط هذا التيار. مرة أخرى ، بعض الرياضيات:

أنا (مقياس كامل) = 18 * (V_REF - V_DAC) / R_SET [A]

حسب المخططات ووضع بعض الأرقام في المعادلة:

أنا (مقياس كامل) = 3.86 - 1.17 * V_DAC [A]

الوحدة النمطية D / A المستخدمة في التصميم هي 12 بت MCP4922 ، عندما يكون التيار في نطاق [0mA: 3.86mA] ووظيفة السعة الخطية هي:

V (تحديد السعة) = 1 - [V (D / A) / (2 ^ 12-1)]

دارة مضاعفة الشكل الموجي

يتم فصل مخرجات توليد الموجة المربعة والموجة الجيبية / المثلثية عند AD9834 ومن ثم يتعين علينا استخدام دائرة تعدد إرسال عالية السرعة لكلا المخرجات للسماح باسترداد جميع أشكال الموجة المرغوبة من قناة منفصلة واحدة. المضاعف IC هو مفتاح تناظري ADG836L بمقاومة منخفضة جدًا (~ 0.5 أوم).

جدول التحديد الذي تستخدمه MCU للمخرجات كما هو:

تحديد الوضع [D2: D1] | قناة الإخراج أ | قناة الإخراج ب

00 | جيب / مثلث | جيب / مثلث 01 | جيب / مثلث | مربع 10 | مربع | جيب / مثلث 11 | مربع | ميدان

دوائر التحكم في الجهد الكهربي (D / A)

تتمثل إحدى الميزات الرئيسية لمولد الموجي في التحكم في قيمة التيار المستمر. في هذا التصميم ، يتم ذلك عن طريق ضبط جهد D / A المطلوب لكل قناة ، ويتم تلخيص جهود التحيز هذه بالمخرجات متعددة الإرسال التي ناقشناها في وقت سابق قليلاً.

يكمن الجهد المسترجع من D / A في النطاق [0V: + 3.3V] لذلك توجد دائرة تعتمد على op-amp تحدد نطاق D / A إلى [-3.3V: + 3.3V] ، مما يسمح للجهاز بتوفير النطاق الكامل من مكون DC المطلوب. سنتخطى الرياضيات التحليلية المزعجة ، ونركز فقط على النتائج النهائية:

V_OUT (القناة B) = V_BIAS_B (+) - V_BIAS_B (-) ؛ V_OUT (القناة أ) = V_BIAS_A (+) - V_BIAS_A (-)

الآن ، يقع نطاق مكونات التيار المستمر في النطاق [-3.3 فولت: + 3.3 فولت].

دوائر الجمع - مكونات التيار المستمر ومخرجات الشكل الموجي

في هذه المرحلة ، لدينا كل ما نحتاجه لإخراج الجهاز المناسب - جهد التحيز (مكون DC) في نطاق الجهد الكامل ، ومخرجات AD9834 متعددة الإرسال. سنحقق ذلك باستخدام مضخم التلخيص - تكوين op-amp

دعنا نتخطى الرياضيات مرة أخرى (لقد غطينا الكثير من الأساليب الرياضية بالفعل) ونكتب النتيجة النهائية لإخراج مضخم الجمع:

V (خرج الجهاز) = V (انحياز إيجابي) - V (انحياز سلبي) - V (خرج متعدد الإرسال) [V]

بالتالي:

V_OUT = ΔV_BIAS - V_AD9834 [V]

موصلات الإخراج من نوع BNC متصلة بمقاومات اختيار (R54 ، R55 ؛ R56 ، R57). والسبب في ذلك هو أنه في حالة أن هذا التصميم قد يكون معطلًا وظيفيًا ، فلا يزال بإمكاننا تحديد ما إذا كنا نرغب في استخدام مضخم تجميع.

ملاحظة مهمة: يمكن ضبط شبكات المقاوم لمضخمات التجميع النهائي بواسطة المصمم ، من أجل تغيير السعة القصوى التي يمكن استرجاعها من الجهاز. في حالتي ، تشترك جميع الأمبيرات في نفس الكسب = 1 ، وبالتالي فإن السعة القصوى المخزنة هي 0.7Vpp لموجة مثلث / جيبية و 3.3Vpp للموجة المربعة. يمكن العثور على النهج الرياضي المحدد بين الصور المرفقة بالخطوة.

ESP32 كوحدة خارجية

تتواصل MCU مع ESP32 عبر واجهة UART. نظرًا لأنني أردت PCB الخاص بي لـ ESP32 ، فهناك 4 محطات طرفية متاحة للاتصال: VCC ، RX ، TX ، GND. J7 هو موصل واجهة بين PCBs ، وسيتم تخصيص ESP32 كوحدة خارجية داخل الجهاز.

واجهة المستخدم - LCD ومكبر الصوت

شاشة LCD التي تم استخدامها عبارة عن شاشة عرض عامة 20 × 4 أحرف بواجهة 4 بت ، كما يتضح من التصميم ، يوجد مقياس جهد رقمي SPI متصل بأطراف LCD "A" و "V0" - والغرض منه هو الضبط سطوع وتباين وحدة LCD برمجياً.

يوفر مكبر الصوت إخراجًا صوتيًا للمستخدم عن طريق توليد موجة مربعة بسيطة من MCU. يتحكم BJT T1 في التيار من خلال السماعة التي يمكن أن تكون في حالتين فقط - ON / OFF.

الخطوة 5: تصميم الأجهزة - وحدة ESP32

تصميم الأجهزة - وحدة ESP32
تصميم الأجهزة - وحدة ESP32

يستخدم ESP32 كوحدة خارجية لثنائي الفينيل متعدد الكلور الرئيسي. يعتمد اتصال الجهاز على أوامر AT المتوفرة على البرامج الثابتة للجهاز العام.

لا يوجد الكثير للتوسع في هذا التصميم ، ولكن هناك بعض الملاحظات للتصميم:

  • لمعالجة الفشل في استخدام وحدة UART المناسبة لـ ESP32 ، قمت بإرفاق ثلاثة مقاومات اختيار لكل من خطوط TX و RX. (0 أوم لكل منهما). للتكوين القياسي ، يتم استخدام وحدة UART2 لأوامر AT (يجب لحام R4 ، R7)
  • يحتوي الجهاز على 4 خطوط إخراج - VCC ، GND ، TX ، RX.
  • تقوم دبابيس IO0 و EN بتقييم تشغيل الجهاز ويجب تصميمها كما هي مذكورة في المخططات

جميع ميزات PCB التي سنغطيها في الخطوة التالية.

الخطوة 6: تخطيط ثنائي الفينيل متعدد الكلور

تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور
تخطيط ثنائي الفينيل متعدد الكلور

أهداف تصميم ثنائي الفينيل متعدد الكلور

  1. قم بإنشاء نظام مضمن لجميع الدوائر المتكاملة على نفس اللوحة
  2. تحسين أداء الجهاز من خلال تصميم ثنائي الفينيل متعدد الكلور رئيسي واحد
  3. خفض التكلفة - إذا كنت ترغب في البحث عن الأسعار ، فإن التصميمات منخفضة التكلفة منخفضة التكلفة حقًا
  4. تصغير حجم اللوحة الإلكترونية
  5. سهولة استكشاف الأخطاء وإصلاحها - يمكننا استخدام TPs (نقاط الاختبار) لكل خط معطل محتمل.

المعايير الفنية

تشترك كل من ثنائي الفينيل متعدد الكلور: اللوحة الرئيسية و ESP32 في نفس الخصائص لعملية التصنيع - منخفضة التكلفة وقابلة للتشغيل لأغراضنا. دعونا نراهم:

أ- اللوحة الرئيسية

  • الحجم: 10 سم × 5.8 سم
  • عدد الطبقات: 2
  • سمك ثنائي الفينيل متعدد الكلور: 1.6 مم
  • الحد الأدنى لمساحة التتبع / العرض: 6 / 6mil
  • الحد الأدنى من خلال قطر الفتحة: 0.3 مم
  • النحاس إلى حافة مسافة الحد الأدنى لثنائي الفينيل متعدد الكلور: 20 ميل
  • تشطيبات السطح: HASL (نوع جيد اللون فضي ذو مظهر جيد للغاية)

ب- اللوحة الرئيسية

  • الحجم: 3 سم × 4 سم
  • عدد الطبقات: 2
  • سمك ثنائي الفينيل متعدد الكلور: 1.6 مم
  • الحد الأدنى لمساحة التتبع / العرض: 6 / 6mil
  • الحد الأدنى من خلال قطر الفتحة: 0.3 مم
  • النحاس إلى حافة مسافة الحد الأدنى لثنائي الفينيل متعدد الكلور: 20 ميل
  • تشطيبات السطح: HASL

الخطوة 7: الضميمة ثلاثية الأبعاد

الضميمة ثلاثية الأبعاد
الضميمة ثلاثية الأبعاد

لم أقم بتصميمه بنفسي ، لأنني في ذلك الوقت كنت أقنع هذا الجهاز بالعمل ، لذلك لم أكن على دراية بجميع أساسيات الطباعة ثلاثية الأبعاد على الإطلاق. لذلك استخدمت مشروع SCAD من Thingiverse ، وأرفقت فتحات مختلفة بالحدود ، وفقًا لمواصفات جهازي.

  1. جهاز الطباعة: Creality Ender-3
  2. نوع السرير: زجاج ، سمك 5 مم
  3. قطر الشعيرة: 1.75 مم
  4. نوع الفتيل: PLA +
  5. قطر الفوهة: 0.4 مللي متر
  6. السرعة الأولية: 20 مم / ثانية
  7. متوسط السرعة: 65 ملم / ثانية
  8. الدعم: لا يوجد
  9. إنفيل: 25٪
  10. درجة حرارة:

    • السرير: 60 (درجة مئوية)
    • فوهة: 215 (درجة مئوية)
  11. لون الفتيل: أسود
  12. إجمالي عدد الفتحات: 5
  13. عدد لوحات الضميمة: 4

    • توب شل
    • شل القاع
    • اللوحة الامامية
    • اللوحة الخلفية

الخطوة 8: تنفيذ البرنامج - MCU

تنفيذ البرامج - MCU
تنفيذ البرامج - MCU
تنفيذ البرامج - MCU
تنفيذ البرامج - MCU
تنفيذ البرامج - MCU
تنفيذ البرامج - MCU

رابط GitHub إلى Android و Atmega32 Code

خوارزمية البرمجيات

يتم وصف جميع العمليات التي يتم تنفيذها بواسطة MCU في المخططات الانسيابية المرفقة. بالإضافة إلى ذلك ، يوجد رمز مرفق للمشروع. دعنا نغطي مواصفات البرنامج:

رفع الطاقة

في هذه المرحلة ، تقوم MCU بتنفيذ جميع تسلسلات التهيئة إلى جانب تحديد نوع الاتصال المخزن مع جهاز Android: اتصال مباشر بشبكة WiFi أو WLAN - يتم تخزين هذه البيانات في EEPROM. يمكن للمستخدم إعادة تعريف نوع إقران جهاز Android في هذه المرحلة.

الاقتران المباشر لجهاز Android

يعتمد هذا النوع من الاقتران على إنشاء شبكة WiFi بواسطة جهاز FuncGen. سيقوم بإنشاء نقطة وصول (نقطة وصول) وخادم TCP على عنوان IP لجهاز محلي مع SSID محدد (اسم شبكة WiFi) ورقم منفذ محدد. يجب أن يحتفظ الجهاز بالحالة - مفتوح للاتصالات.

عند توصيل جهاز Android بـ FuncGen ، تدخل MCU في الوضع النشط وتستجيب وفقًا لتعليمات المستخدم من جهاز Android.

الاقتران WLAN

للتواصل على شبكة WiFi محلية ، يجب أن توفر MCU أوامر لـ ESP32 لإنشاء نقطة وصول والتواصل مع جهاز Android وتبادل بيانات الشبكة المهمة:

  • يتلقى جهاز Android من FuncGen عنوان MAC الخاص به ، ويخزنه في الذاكرة.
  • يتلقى جهاز FuncGen من معلمات WLAN المحددة لجهاز Android: SSID ونوع الأمان وكلمة المرور ويخزنها في EEPROM.

عندما تكون الأجهزة متصلة بالفعل بنفس شبكة WLAN ، سيبحث جهاز Android عن FuncGen عن طريق مسح جميع عناوين MAC للأجهزة المتصلة بشبكة WLAN. عندما يحدد جهاز Android تطابق MAC ، فإنه يحاول الاتصال.

الاتصال والتعامل مع الحالة - MCU

عندما تتواصل الأجهزة مع بعضها البعض ، يظل البروتوكول (انظر الخطوة ما قبل النهائية) كما هو ، ويكون المخطط الانسيابي هو نفسه.

مراقبة حالة الجهاز

المقاطعة الموقوتة توفر التفاصيل الضرورية لـ MCU لمعالجة الحالة. في كل دورة مقاطعة مؤقت ، يتم تحديث قائمة المعلمات التالية:

  • مصدر طاقة خارجي - تشغيل / إيقاف
  • حالة جهد البطارية
  • تحديث واجهة المستخدم لكل تخصيص
  • زر الضغط: مضغوط / غير مضغوط

الخطوة 9: تنفيذ البرنامج - تطبيق Android

تنفيذ البرامج - تطبيق Android
تنفيذ البرامج - تطبيق Android
تنفيذ البرامج - تطبيق Android
تنفيذ البرامج - تطبيق Android
تنفيذ البرامج - تطبيق Android
تنفيذ البرامج - تطبيق Android
تنفيذ البرامج - تطبيق Android
تنفيذ البرامج - تطبيق Android

تطبيق Android مكتوب بأسلوب Java-Android. سأحاول شرحها بنفس طريقة الخطوات السابقة - بتقسيم الخوارزمية إلى كتل تعليمات برمجية منفصلة.

تسلسل الطاقة

التسلسل الأول للجهاز. هنا يتم تقديم شعار التطبيق جنبًا إلى جنب مع تمكين وحدات GPS و WiFi لجهاز Android (لا تقلق ، فإن GPS مطلوب لفحص شبكات WiFi المناسبة فقط).

القائمة الرئيسية

بعد تشغيل التطبيق ، ستظهر أربعة أزرار على الشاشة. عمل الأزرار:

  1. الاتصال المباشر: بدء الاتصال بـ FuncGen's AP بواسطة SSID لـ IOT_FUNCGEN. في حالة نجاح الاتصال ، يدخل الجهاز في وضع واجهة المستخدم الرئيسية.
  2. اتصال WIFI: يتحقق الجهاز مما إذا كانت هناك معلمات بيانات مخزنة في الذاكرة: wifi.txt ، mac.txt. إذا لم تكن هناك بيانات مخزنة ، فسيرفض الجهاز طلب المستخدم وسيقدم رسالة منبثقة مفادها أنه يجب إجراء اقتران WLAN أولاً.
  3. الاقتران: التواصل مع FuncGen بنفس طريقة الاتصال المباشر ، ولكن بدلاً من تبادل الرسائل المستمر ، هناك مصافحة واحدة. يتحقق جهاز Android مما إذا كان متصلاً بالفعل بشبكة WiFi ، ويطلب من المستخدم إدخال كلمة المرور. إذا نجحت إعادة الاتصال ، يقوم جهاز Android بتخزين SSID ومفتاح المرور في ملف wifi.txt. بعد الاتصال الناجح مع FuncGen ، يقوم بتخزين عنوان MAC المستلم في ملف mac.txt.
  4. خروج: قال كفى:)

مدير مسح WiFi

أردت أن يكون التطبيق جاهزًا للعمل بالكامل وبدون إجراء تعديلات خارج التطبيق. لذلك ، قمت بتصميم WiFi Scanner ، الذي يقوم بجميع العمليات اللازمة للاتصال بشبكة WiFi باستخدام مفتاح مرور معروف و SSID.

نقل البيانات واتصالات TCP

هذه هي كتلة التعليمات البرمجية الرئيسية في التطبيق. بالنسبة لجميع وحدات واجهة المستخدم ، توجد رسالة محددة بتنسيق معين (خطوة ما قبل النهائية) ، وهذا يجبر FuncGen على توفير الإخراج المطلوب للقنوات. هناك ثلاثة أنواع من حقول واجهة المستخدم في النشاط:

  1. أشرطة البحث: هنا نحدد النطاق الحقيقي لمعلمات إخراج FuncGen

    1. السعة
    2. تعويض DC
    3. سطوع شاشة LCD
    4. تباين LCD
  2. تحرير النص: من أجل الحفاظ على قيم الأعداد الصحيحة محددة ودقيقة بشكل جيد ، يتم إدخال التردد عبر مربعات نص أرقام فقط
  3. الأزرار: اختيار المعلمات من القوائم المتاحة:

    1. نوع الموجي

      1. شرط
      2. مثلث
      3. العاصمة
      4. ميدان
      5. إيقاف
    2. يحصل على معلومات

      1. حالة البطارية (النسبة المئوية)
      2. حالة التيار المتردد (مصدر طاقة خارجي)
    3. خيار التمهيد (لـ FuncGen MCU)

      1. اعدادات المصنع
      2. اعادة البدء
      3. اغلق
      4. مباشر - إعادة التشغيل بوضع الاقتران المباشر
      5. WLAN - أعد التشغيل باستخدام وضع الاقتران WLAN
    4. الخروج من القائمة الرئيسية: قال يكفي:)

الخطوة 10: الاختبار

موصى به: