تطبيق PSLab للأندرويد
مستودع لتطبيق PSLab Android لإجراء التجارب باستخدام النظام الأساسي للأجهزة المفتوحة Pocket Science Lab.
يحتوي هذا المستودع على تطبيق Android لإجراء التجارب باستخدام PSLab. PSLab هو مختبر علمي صغير الحجم يوفر مجموعة من المعدات لإجراء التجارب العلمية والهندسية. يمكن أن يعمل مثل راسم الذبذبات، ومولد الشكل الموجي، وعداد التردد، والجهد القابل للبرمجة ومصدر التيار وأيضًا كمسجل بيانات. موقعنا على https://pslab.io.
قم بالتسجيل للحصول على آخر التحديثات واختبار الميزات الجديدة مبكرًا من خلال الانضمام إلى برنامجنا التجريبي هنا.
يشتري
- يمكنك الحصول على جهاز Pocket Science Lab من متجر FOSSASIA.
- يتم إدراج المزيد من البائعين على موقع PSLab.
تواصل
- قناة الدردشة PSLab موجودة على Gitter.
- يرجى أيضًا الانضمام إلينا في القائمة البريدية لـ PSLab.
خريطة الطريق
لقطات الشاشة
فيديو تجريبي
- نظرة عامة على تطبيق PSLab للأندرويد.
- مراقبة أشكال الموجات الصوتية باستخدام جهاز PSLab.
- تسجيل بيانات الاستشعار في الوقت الحقيقي باستخدام مختبر علوم الجيب.
- توليد ومراقبة الأشكال الموجية باستخدام مختبر علوم الجيب.
سمات
ميزة | وصف | حالة |
---|
الشاشة الرئيسية | إظهار حالة وإصدار جهاز PSLab | ✔️ |
الآلات | يعرض أدوات PSLab مثل راسم الذبذبات، وما إلى ذلك | ✔️ |
راسم الذبذبات | يظهر الاختلاف في الإشارات التناظرية | ✔️ |
المتعدد | يقيس الجهد والتيار والمقاومة والسعة | ✔️ |
محلل منطقي | يلتقط ويعرض الإشارات من النظام الرقمي | ✔️ |
مولد الموجة | يولد أشكال موجية تناظرية ورقمية عشوائية | ✔️ |
مصدر الطاقة | يولد الجهد والتيارات القابلة للبرمجة | ✔️ |
لوكسميتر | يقيس شدة الضوء المحيط | ✔️ |
بارومتر | يقيس الضغط | ✔️ |
مقياس التسارع | يقيس تسارع الجهاز | ✔️ |
الجيرومتر | يقيس معدل الدوران | ✔️ |
بوصلة | يقيس الدوران المطلق بالنسبة للأقطاب المغناطيسية الأرضية | ✔️ |
ميزان الحرارة | يقيس درجة الحرارة المحيطة | ✔️ |
حساس الغاز | يكتشف الغازات، بما في ذلك NH3 وأكاسيد النيتروجين والكحول والبنزين والدخان وثاني أكسيد الكربون | ✔️ |
وحدة تحكم بالذراع الروبوتية | يسمح بالتحكم في 4 محركات مؤازرة للذراع الآلي بشكل مستقل | ✔️ |
كيفية إعداد تطبيق Android في بيئة التطوير الخاصة بك
نكهات التطبيق
هناك نوعان من النكهات (متغيرات البناء) لتطبيق PSLab Android.
لعب نكهة المتجر
- تستخدم نكهة متجر Play خرائط Google لعرض الموقع المخزن في السجلات في مسجل البيانات.
نكهات فريدويد
- تستخدم نكهة Fdroid خرائط الشوارع المفتوحة لعرض الموقع المخزن في السجلات في مسجل البيانات.
إعداد التطوير
قبل البدء، يجب أن تكون قد قمت بالفعل بتنزيل Android Studio SDK وإعداده بشكل صحيح. يمكنك العثور على دليل حول كيفية القيام بذلك هنا: إعداد Android Studio
إعداد مشروع أندرويد
لإعداد مشروع PSLab Android، يمكنك اتباع أي من الطريقتين المذكورتين أدناه، أي أنه يمكنك تنزيل ملف مضغوط للمستودع أو يمكنك استنساخ المستودع مباشرة إلى Android Studio.
عن طريق تنزيل الملف المضغوط
قم بتنزيل مصدر مشروع pslab-android . يمكنك القيام بذلك إما عن طريق تقسيم المستودع واستنساخه (موصى به إذا كنت تخطط لدفع التغييرات) أو عن طريق تنزيله كملف ZIP واستخراجه.
افتح Android Studio، وسترى نافذة مرحبًا بك في Android . ضمن البدء السريع، حدد _Import Project (Eclipse ADT، Gradle، إلخ.) لتصحيح الأخطاء عبر Wi-Fi، اتبع الخطوات الواردة في هذه المدونة.
- ملاحظة: إذا قمت ببناء الأجهزة الخاصة بك، فقم بتغيير معرف البائع و/أو معرف المنتج في CommunicationHandler.java.
عن طريق الاستنساخ المباشر
- افتح Android Studio، وسترى نافذة مرحبًا بك في Android . ضمن البدء السريع، حدد "التحقق من المشروع من التحكم في الإصدار".
- حدد git من القائمة المنسدلة التي ظهرت.
- انتقل إلى المستودع وانقر على زر النسخ أو التنزيل.
- من القائمة المنسدلة التي ظهرت، انسخ الرابط.
- الصق عنوان URL الذي نسخته واضغط على استنساخ.
- يجب أن يبدأ Android studio الآن في بناء المشروع باستخدام gradle.
- بمجرد اكتمال هذه العملية وفتح Android Studio، تحقق من وحدة التحكم بحثًا عن أي أخطاء في البناء.
- ملاحظة: إذا تلقيت خطأ في مزامنة Gradle بعنوان "فشل في العثور على ..."، فيجب عليك النقر فوق الرابط الموجود أسفل رسالة الخطأ (إن وجدت) التي تنص على تثبيت النظام الأساسي (الأنظمة الأساسية) المفقودة ومشروع المزامنة والسماح لاستوديو Android جلب لك ما هو مفقود.
- بمجرد حل جميع أخطاء البناء، يجب أن تكون جاهزًا لإنشاء التطبيق واختباره.
- لإنشاء التطبيق، انتقل إلى Build>Make Project (أو بدلاً من ذلك اضغط على أيقونة Make Project في شريط الأدوات).
- إذا تم إنشاء التطبيق بنجاح، فيمكنك اختباره عن طريق تشغيله إما على جهاز حقيقي أو جهاز تمت محاكاته بالانتقال إلى Run>Run 'app' أو الضغط على أيقونة Run في شريط الأدوات.
إذا كنت تريد إنشاء ملف apk فقط، فانتقل إلى Build>Build apk وسيتم إنشاء ملف apk وسيتم مطالبة Android Studio بالدليل الذي يتم إنشاء ملف apk فيه.
لا يمكنك تصحيح الأخطاء بالطريقة المعتادة حيث أن جهاز PSLab متصل بمنفذ micro-USB من خلال كابل OTG. لذا فإن جهاز Android غير متصل بالكمبيوتر عبر كابل USB.
لتصحيح الأخطاء عبر شبكة Wi-Fi، اتبع الخطوات الواردة في هذه المدونة.
- ملاحظة: إذا قمت ببناء الأجهزة الخاصة بك، فقم بتغيير معرف البائع و/أو معرف المنتج في CommunicationHandler.java.
الأذونات المطلوبة
- Record_Audio: مطلوب من راسم الذبذبات قبول المدخلات من الميكروفون المدمج في الهاتف. يمكنك العثور على تنفيذه في AudioJack.java.
- Access_Fine_Location والإنترنت: مطلوب للاستخدام في مقياس لوكس والبوصلة للحصول على الإحداثيات لوضع علامات على البيانات على الخريطة. يمكنك العثور على تنفيذه في GPSLogger.java.
- Write_External_Storage: مطلوب لتخزين ملفات السجل من الأدوات التي يمكن نقلها للتحليل المستقبلي.
- Read_External_Storage: أثناء كتابة السجلات في وحدة التخزين، يتحقق CSVLogger.java أولاً مما إذا كان هناك أي دليل CSVLogger موجود أم لا ويتطلب إذن القراءة هذا.
الإعداد لاستخدام PSLab مع تطبيق Android
لاستخدام جهاز PSLab مع Android، تحتاج ببساطة إلى كابل OTG، وجهاز Android مع تمكين ميزة مضيف USB (معظم الهواتف الحديثة لديها دعم OTG) وتطبيق PSLab Android. قم بتوصيل جهاز PSLab بهاتف Android عبر كابل OTG. تتم معالجة الباقي بواسطة التطبيق نفسه.
أفضل ممارسات المساهمات
ممارسات الكود
الرجاء مساعدتنا في اتباع أفضل الممارسات لتسهيل الأمر على المراجع والمساهم أيضًا. نريد التركيز على جودة الكود أكثر من التركيز على إدارة أخلاقيات طلب السحب.
- التزام واحد لكل طلب سحب.
- قم بالإشارة إلى أرقام المشكلة في رسالة الالتزام. اتبع النمط
Fixes #<issue number> <commit message>
- اتبع ممارسات التصميم الموحدة. يجب أن تكون لغة التصميم متسقة في جميع أنحاء التطبيق.
- لن يتم دمج طلب السحب حتى يتم سحق الالتزامات وما لم يتم ذلك. في حالة وجود التزامات متعددة في العلاقات العامة، يحتاج مؤلف الالتزام إلى سحقها وليس قيام المشرفين بانتقاء عمليات الاسكواش ودمجها.
- إذا كان طلب السحب مرتبطًا بأي تغيير في الواجهة الأمامية، فيرجى إرفاق لقطات الشاشة ذات الصلة في وصف طلب السحب.
كيفية git squash
؟
كنصيحة للمطورين الجدد الذين يعانون من سحق الالتزامات في واحدة، قد تظهر التزامات متعددة في طلب السحب الخاص بك في الغالب للأسباب التالية.
- إضافة رسائل التزام متعددة عن عمد بعد كل تغيير دون
git add
فقط. - تحديث الفرع الحالي بجهاز التحكم عن بعد حتى يتم تنفيذ الدمج.
بغض النظر عن أي سبب، اتبع الخطوات الواردة أدناه لسحق جميع الالتزامات في التزام واحد يلتزم بأفضل ممارساتنا.
- قم بالإعداد عن بعد للفرع الرئيسي إذا لم يتم ضبطه من قبل
$ git remote add upstream https://github.com/fossasia/pslab-android.git
- قم بالدخول إلى الفرع المتعلق بطلب السحب
$ git checkout <branch-name>
- قم بإجراء إعادة ضبط بسيطة للاحتفاظ بالتغييرات أثناء إزالة جميع تفاصيل الالتزام
$ git reset --soft upstream/development
- إضافة الملفات إلى منطقة التدريج
$ git add <file paths or "." to add everything>
- قم بإنشاء التزام جديد برسالة مناسبة تتبع إرشادات رسالة الالتزام
$ git commit -m "tag: commit message"
- إذا كنت قد قدمت بالفعل طلب سحب
$ git push -f origin <branch-name>
سياسة الفرع
لدينا الفروع التالية
- تطوير كل التطوير يستمر في هذا الفرع. إذا كنت تقدم مساهمة، فمن المفترض أن تقدم طلب سحب للتطوير . تأكد من اجتيازه فحص البناء على ترافيس.
- master يحتوي هذا على الكود المستقر. بعد تراكم الميزات/الإصلاحات الهامة أثناء التطوير، ننتقل إلى المستوى الرئيسي.
- apk يحتوي هذا الفرع على ملف APK تم إنشاؤه تلقائيًا للاختبار.
نمط الكود
يرجى محاولة اتباع الإرشادات المذكورة أثناء كتابة الكود الخاص بك وإرساله لأنه يسهل على المراجع والمطورين الآخرين فهمه.
- أثناء تسمية ملفات التخطيط، تأكد من أن الاصطلاح المتبع هو (activity/fragment) _ (name).xml مثل
activity_oscilloscope.xml
و fragment_control_main.xml
. - قم بتسمية طرق العرض وعناصر واجهة المستخدم المحددة في ملفات التخطيط كـ (viewtype/widget) _ (اسم الجزء/النشاط) _ (الرقم في الملف) مثل
spinner_channel_select_la1
, button_activity_oscilloscope1
. - يجب تسمية اسم ملف النشاط/الجزء المطابق لملفات التخطيط كـ (اسم النشاط/الجزء)(النشاط/الجزء).java مثل
ChannelsParameterFragment.java
المطابق لملف التخطيط fragment_channels_parameter.xml
. - يجب تسمية عناصر واجهة المستخدم المقابلة للأزرار ومربعات النص ومربعات الاختيار وما إلى ذلك في ملفات النشاط باسم (viewtype/widget)(اسم الجزء/النشاط)(رقم في الملف) مثل
spinnerChannelSelect1
المطابق لـ spinner_channel_select1
.
المطورين
المشرفون
تتم صيانة المشروع من قبل
- بادمال (@CloudyPadmal)
- ماريو بهلينج (@mariobehling)
- لورينز جربر (@lorenzgerber)
- وي تات (@cweitat)
- واي جي (@woshikie)
الخريجون
- نيل تريفيدي (@neel1998)
- أكارشان غاندوترا (@akarshan96)
- أسيتافا ساركار (@asitava1998)
- فيفيك سينغ بهادوريا (@viveksb007)
- أفجيت (@ أفجيت)
- ابهيناف (@abhinavraj23)
- قاسية (@قاسية-2711)
- ياتري (@yatri1609)
رخصة
هذا المشروع مرخص حاليًا بموجب ترخيص Apache 2.0. يجب أن تكون نسخة من الترخيص موجودة مع الكود المصدري. للحصول على البرنامج بموجب ترخيص مختلف، يرجى الاتصال بـ FOSSASIA.