جدول المحتويات:
- الخطوة الأولى: الحصول على المواد
- الخطوة 2: إعداد الأجهزة
- الخطوة 3: ترميز Arduino لاستخراج البيانات
- الخطوة 4: استخدام المعالجة للاستماع
- الخطوة 5: عرض البيانات على Tableau Public
- الخطوة 6: تنقية المعنى
فيديو: مخطط المسار: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
في مشروع إنترنت الأشياء هذا ، قمنا بتوصيل NEO-6M (وحدة GPS) لتوصيل بيانات الموقع من خلال Arduino إلى ورقة Excel سيتم حفظها على الكمبيوتر. بعد ذلك مع Tableau Public ، نقوم بإنشاء تصور للبيانات لهذه البيانات لرسم خريطة للمسار الذي سلكناه. في حين أن هذه هي إحدى طرق جمع البيانات في الوقت الفعلي وتقديمها في بيانات شديدة الارتباط ، يمكن أيضًا تطبيق هذه العملية على مشاريع أخرى تعتمد على البيانات.
الخطوة الأولى: الحصول على المواد
بالنسبة لهذا المشروع ، ستحتاج إلى ما يلي:
- وحدة GPS NEO-6M
- اردوينو اونو
- أسلاك توصيل ذكر / ذكر (ستحتاج إلى 4 أسلاك)
- كابل USB 2.0 من النوع A إلى B
- الكمبيوتر مع هذه البرامج: Tableau Public و Arduino IDE (مع TinyGPS ++) والمعالجة
الخطوة 2: إعداد الأجهزة
نحتاج أولاً إلى إعداد وحدة GPS مع Arduino UNO حتى يمنحنا Arduino واجهة لإظهار البيانات. يتوافق كل من الأسلاك الأربعة المتصلة بـ NEO-6M مع منافذ محددة. إذا لم يكن جهاز NEO-6M مزودًا بالأسلاك ، فسيتعين عليك توصيله بأسلاك توصيل مباشرة. في الرسم البياني أعلاه ، يشير اللون الأحمر إلى الطاقة (VCC) والأسود إلى الأرض (GND) والأصفر لنقل البيانات (TxD) والأبيض لاستقبال البيانات (RxD). نقوم بتوصيل هذه الأسلاك بأسلاك توصيل ذكر / ذكر حتى نتمكن من توصيلها بـ Arduino. باتباع الرسم البياني أعلاه ، نقوم بتوصيل السلك الأرضي بالدبوس الرقمي GND على Arduino ، وسلك TxD بـ 4 ، وسلك RxD بـ ~ 3 ، وسلك VCC إلى 5V للجهد. في خطوة مستقبلية ، سنحتاج إلى تعريف TxD و RxD بالأرقام الصحيحة في SoftwareSerial.
بمجرد توصيل الجهازين ببعضهما البعض ، نحتاج إلى توفير مصدر طاقة. قم بتوصيل كابل USB 2.0 بجهاز الكمبيوتر المحمول الخاص بك ويجب أن يضيء المصباح الموجود على NEO-6M.
الخطوة 3: ترميز Arduino لاستخراج البيانات
الآن بعد أن تم إعداد الأجهزة لجمع بيانات GPS من الأقمار الصناعية ، سنكتب رمزًا لتحليل بيانات GPS التي نريدها. بافتراض أنك التقطت إشارة (ستومض وحدة GPS الخاصة بي باللون الأزرق) ، فإن NEO-6M تطبع بشكل افتراضي البيانات الأولية على الشاشة التسلسلية في شكل رسائل NMEA ، والتي تبدو مثل $ GP متبوعة بمزيد من الأحرف والمتسلسلة من الأرقام. تعطي الصورة أعلاه فكرة عامة عما يجب أن يظهر على شاشتك التسلسلية بمجرد إدخال كود Arduino الأساسي.
لشرح الكود الذي أرفقته (أو إذا كنت ترغب في محاولة ترميزه بنفسك) ، فأنت بحاجة أولاً إلى تضمين مكتبات SoftwareSerial و TinyGPS ++ (لهذا الأخير ، Sketch> Include> Add. ZIP library). SoftwareSerial يسمح لنا بالحصول على اتصال تسلسلي ؛ يمنحنا TinyGPS ++ أداة سهلة لطباعة المعلومات المستهدفة في نموذج قابل للقراءة. تأكد من تهيئة كائن SoftwareSerial على المسامير المقابلة في Arduino. في وظيفة الإعداد ، نستخدم 9600 كمعدل الباود.
لغرض هذا التدريب ، سنطبع فقط سبعة أنواع من البيانات في وظيفة الحلقة: خط العرض (بالدرجات) ، وخط الطول (بالدرجات) ، والسرعة (كم) ، والدورة (بالدرجات) ، والارتفاع (كم) ، وعدد الأقمار الصناعية في استخدام و hdop. يمكنك البحث في بناء الجملة لطباعة هذه المعلومات في مكتبة Arduiniana. النموذج العام هو Serial.print (). على سبيل المثال لطباعة خط الطول ، سنكتب Serial.print (gps.location.lng ()، 6). يمثل الرقم 6 عدد الأرقام التي نريدها على يمين العلامة العشرية.
يحتوي الرمز الخاص بي على أحرف إضافية مطبوعة من أجل تنسيق regex سهل التنسيق في الخطوة التالية. ومع ذلك ، إذا كنت ترغب في التوقف عند هذه الخطوة ، فلا تتردد في تنسيق البيانات بشكل مختلف لتسهيل عرضها على الشاشة التسلسلية.
الخطوة 4: استخدام المعالجة للاستماع
بينما لدينا رمز لإعداد Arduino IDE ، لدينا مشكلة في حفظ هذه البيانات. اعتبارًا من الآن ، يمكننا فقط عرض البيانات الموجودة على الشاشة التسلسلية أثناء تجميعها. هناك العديد من الطرق لتسجيل هذه البيانات ولكني اخترت المعالجة بشكل أساسي لأن واجهتها تحاكي Arduino IDE وتستخدم Java ، وهي لغة أعرفها جيدًا (لاحظ أنه يمكنك أيضًا التحكم في لوحة Arduino باستخدام المعالجة إذا قمت بتنزيل Firmata). تستمع المعالجة إلى المنفذ المتصل بـ Arduino ولديها القدرة على معالجة البيانات المقروءة على الشاشة التسلسلية. للعثور على اسم هذا المنفذ ، ارجع إلى ملف Arduino IDE الخاص بك وتحقق من Tools> Port.
لقد قدمت رمز المعالجة ، ولكن إليك نظرة عامة سريعة على كيفية عمل الكود.
قبل وظيفة الإعداد ، تأكد من وجود متغيرات للمنفذ والجدول الناتج والصف الذي سنعمل معه واسم الملف. ثم في وظيفة الإعداد ، هناك معلمات لتعيين حجم نافذة التشغيل الخاصة بك ولكن هذه الأرقام لا تؤثر على وظائفنا (على سبيل المثال ، قم بتعيينها على (500 ، 500)). عندما تقوم بتهيئة المنفذ ، استخدم اسم المنفذ في شكل سلسلة ومعدل باود 9600. أخيرًا ، قم بإنشاء تسعة أعمدة (لفئات GPS السبع والوقت والتاريخ) لتهيئة الجدول.
في وظيفة السحب ، نستخدم وظائف التاريخ والوقت المضمنة لتتبع وقت استخراج كل مجموعة من بيانات GPS. الآن لقراءة تدفق البيانات من Arduino ووضعها تحت العناوين المناسبة مع الوقت والتاريخ الصحيحين ، نستخدم التعبيرات العادية.
أستخدم regex لتحليل البيانات الدقيقة باستخدام وظيفة matchAll التي تبحث عن أي تعبير بين علامة التساوي والفاصلة المنقوطة (المحددات التي أضعها في كود Arduino الخاص بي). يؤدي هذا لاحقًا إلى وضع جميع العلامات المتطابقة ، البيانات الرقمية ، في مصفوفة ثنائية الأبعاد. يمكننا بعد ذلك استدعاء فهارس الصفيف هذه لوضعها تحت عناوين ورقة Excel.
لحفظ ملف.csv الجديد ، نستخدم الضغط على مفتاح لإغلاق نافذة التشغيل. كلما طال انتظارك للضغط على المفتاح ، زادت البيانات التي ستجمعها. باتباع طريقة دليل آخر ، قررت أيضًا حفظ الملف في مجلد البيانات مع التاريخ والوقت كاسم الملف.
الخطوة 5: عرض البيانات على Tableau Public
تتضمن الخطوة الأخيرة بعض تصور البيانات. هناك العديد من البرامج لإنشاء وعرض تصورات البيانات مثل Plotly ، ولكن في هذا المشروع سوف نستخدم Tableau. افتح Tableau Public وافتح ملف Excel المحفوظ كملف نصي. لإنشاء ورقة عمل ، انقر فوق الورقة 1 في أسفل اليسار.
نظرًا لأننا نعمل مع بيانات GPS ، فسنستخدم خريطة لتصوير معلوماتنا. في العمود الأيسر حيث تشير عبارة "المقاييس" ، سنقوم بسحب خط الطول إلى "الأعمدة" وخط العرض إلى صفوف في الأعلى. يقوم Tableau بإعداد كلا المقياسين بشكل افتراضي إلى AVG ، لذا انقر فوق القائمة المنسدلة بجوار المصطلحات وقم بتغيير كليهما إلى البعد. الآن يجب أن تحتوي الخريطة على مسار معروض باستخدام قيم خطوط الطول والعرض التي تم جمعها.
لتنظيف بياناتك بحثًا عن الخطأ (والذي يمكن إجراؤه أيضًا قبل فتح Tableau) ، يمكنك اختيار استبعاد بعض دوائر الموقع من خلال النقر عليها وتحديد الخيار. وحدة GPS الخاصة بي ليست دقيقة بنسبة 100٪ ، حيث لم يتم تحديد موقع بعض أجزاء مساري ، ولكن تم تسجيل المسار العام.
الخطوة 6: تنقية المعنى
الجزء الأخير هو جعل هذه البيانات أكثر قابلية للقراءة. إذا كنت تريد سياق الشارع ، فيمكنك الانتقال إلى الخريطة> طبقة الخريطة> الشوارع والطرق السريعة. لا تتردد في تجربة العلامات الأخرى. قمت بسحب السرعة فوق اللون لإظهار كيف تزداد شدة اللون عندما تزداد السرعة. لقد استخدمت أيضًا "التفاصيل" بدلاً من "Label" للدورة التدريبية لأن Label سيعرض الأرقام على الخريطة بينما أردت فقط ظهور المعلومات عند التمرير فوق نقاط الموقع.
الآن بعد أن اختبرت العملية الكاملة لجمع البيانات وعرض ما لديك في تصور البيانات ، يمكنك تطبيق هذا على مشاريع أخرى!
بواسطة Pingdi Huang ، صيف 2018
موصى به:
سيارة ذاتية التحكم في المسار باستخدام Raspberry Pi و OpenCV: 7 خطوات (بالصور)
سيارة ذاتية التحكم في المسار باستخدام Raspberry Pi و OpenCV: في هذه التعليمات ، سيتم تنفيذ روبوت حارة مستقل وسيمر عبر الخطوات التالية: تجميع الأجزاء تثبيت البرنامج المتطلبات الأساسية تجميع الأجهزة أولاً اختبار اكتشاف خطوط الممر وعرض الإرشادات
كيفية ضبط مركبة سكة حديدية عالية السكة على المسار: 10 خطوات (بالصور)
كيفية ضبط مركبة سكة حديدية عالية السكة على المسار: احتياطات السلامة: يجب على الشخص الذي يركب الشاحنة عالية السكة على السكة والشخص الذي يساعده ارتداء ملابس عالية الوضوح (مثل سترة ، سترة ، معطف) حتى يمكن رؤيته من خلال حركة قدوم محتملة. يجب أيضًا ارتداء قبعة صلبة وقفازات من أجل
تقسيم المسار الأحادي إلى ستيريو في الجرأة: 5 خطوات
تقسيم المسار الأحادي إلى ستيريو في Audacity: هل حصلت على مسار صوتي أحادي تريد أن تراه ستريو في Audacity؟ ثم تابع القراءة لمعرفة كيفية تقسيم مسارات الصوت الأحادي إلى ستيريو
العودة إلى المسار الصحيح: 4 خطوات
العودة إلى المسار: سيوضح لك هذا التوجيه كيفية العودة إلى قيادة سيارة RC (الطاقة الكهربائية)
زجاجة ماء - إضاءة المسار: 5 خطوات
زجاجة ماء - إضاءة المسار ،: لقد بدأت العمل مع زجاجات المياه منذ فترة وجعلتها عاكسًا للضوء LED. https://www.instructables.com/id/Water_Bottle_Hack_LED_Booklight/. لقد كانت مجرد لحظة أخيرة ، وبداية فكرة أكبر. هذا التوجيه أنا