نظام التموضوع العالمي VK16E gps
VK16E هو موديول ينتمي لعائلة الدارات المستقبلة لبيانات الأقمار الصناعية الخاصة بنظام التموضع العالمي GPS تتميز بسهولة استخدامها و برمجته .
من أهم مميزاته هو سعره المنخفض و زمن تشغيل في أقل من دقيقة واحدة .
سنقوم بهذه التجربة بتوصيله للاردوينو و أخذ البيانات الرئيسية القادمة من الأقمار الصناعية و عرضها على شاشة الحاسوب .
سنحتاج في هذه التجربة إلى :
1)بطاقة أردوينو
2) GPS VK16E
3)لوحة توصيل BreadBoard
4)اسلاك توصيل jumper
الجزء الثاني : البرمجة بواسطة الأردوينو :
في هذا الجزء سيقوم الأردوينو بعمل تحليل للبيانات القادمة من ال gps دون الحاجة لاستخدام الحاسوب كما في القسم الأول من التجربة
1)سنقوم باغلاق البرنامج السابق " مهم جداً " .
من أهم مميزاته هو سعره المنخفض و زمن تشغيل في أقل من دقيقة واحدة .
سنقوم بهذه التجربة بتوصيله للاردوينو و أخذ البيانات الرئيسية القادمة من الأقمار الصناعية و عرضها على شاشة الحاسوب .
سنحتاج في هذه التجربة إلى :
1)بطاقة أردوينو
2) GPS VK16E
3)لوحة توصيل BreadBoard
4)اسلاك توصيل jumper
بالغالب لا يعمل ال GPS داخل الأماكن المغلقه لذلك يفضل تجربته في مكان مفتوح حتى تحصل على نتائج صحيحة .
يوجد على هذا الموديول ضوء LED اذا التقط البيانات من القمر الصناعي يتوهج ببطئ , غير ذلك يكون لون الضوء أخضر و ثابت دون ترميش .
سأقسم هذه التجربة إلى قسمين :
1) سيتم برمجته دون الحاجة لبرمجة الأردوينو , عوضاً عن ذلك ستصل بيانات ال GPS للحاسوب و يتم تحليل و عرض البيانات بواسطة برمجية مخصصة من الشركة المصنعه لهذه القطعه
2) برمجته بواسطة الأردوينو .
القسم الأول :
يمكنك استخدام لوحة أردوينو "كما سأفعل انا ادناه " او بأمكانك استخدام Serial Adapter مثل FTDI232 , CP2102 و غيرها , في حال استعمال Serial Adapter يمكنك الأنتقال مباشرة للخطوة الثالثة مع توصيل Serial Adapter بنفس الطريقة التي سنوصل فيها الأردوينو و ال GPS في هذا القسم.
1) نفتح برنامج الأردوينو و نحمل فيه برنامج فارغ Blank code كما يلي :
// Blank Code
//Mohannad Rawashdeh
void setup()
{
}
void loop()
{
}
2) نقوم بتوصيل ال GPS بالأردوينو كما يلي :
4) تأكد من ضبط سرعه الاتصال عند 9600 و من اختيار NEO 6 كما في الصورة .
الجزء الثاني : البرمجة بواسطة الأردوينو :
في هذا الجزء سيقوم الأردوينو بعمل تحليل للبيانات القادمة من ال gps دون الحاجة لاستخدام الحاسوب كما في القسم الأول من التجربة
1)سنقوم باغلاق البرنامج السابق " مهم جداً " .
2)نقوم بتغيير التوصيل كما يلي :
3) يجب عليك امتلاك مكتبة TinyGPS لاستخدام هذا الموديول , لتحميله من هنا .
4) نحمل البرنامج التالي :
3) يجب عليك امتلاك مكتبة TinyGPS لاستخدام هذا الموديول , لتحميله من هنا .
4) نحمل البرنامج التالي :
بعدها تستطيع فتح نافذة السيريال و قراءة البيانات الخاصة بنظام التموضع العالمي .
ِشرح البرنامج :
طريقة كتابة البرنامج سهلة , بالبداية الجزء الخاص بالتحقق من وجود بيانات اتصال مع القمر الصناعي هو :
if (VK16E.encode(c)) // Did a new valid sentence come in? newData = true;
في حالة وجود بيانات سيتم جعل المتغير newData صحيحياً و يتحقق الشرط الخاص بقراءة البيانات الخاصة بال gps
في هذه المتغيرات يتم حفظ القيم المطلوبة مثل الاحداثيات , الوقت , التاريخ :
float fLat, fLon; unsigned long age; int year; byte month, day, hour, minute, second, hundredths;
هنا هذين الأمرين يقومان بتخزين قيم الأحداثيات بالمتغيرات المخصصة لهما fLat,fLon
VK16E.f_get_position(&fLat, &fLon, &age);
يتم تخزين الوقت و التاريخ كلاً حسب وحدته من خلال هذا الأمر:
VK16E.crack_datetime(&year, &month, &day,&hour, &minute, &second, &hundredth