‏إظهار الرسائل ذات التسميات دورة تعلم الأردوينو باحترافية. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات دورة تعلم الأردوينو باحترافية. إظهار كافة الرسائل

الخميس، 25 يونيو 2020

3.4 | شاشة المراقب التسلسلي | Serial Monitor | دورة تعلم الاردوينو باحترافية

3.4 | شاشة المراقب التسلسلي | Serial Monitor | دورة تعلم الاردوينو باحترافية


سبق وأن تعرفنا على مكنات الأردوينو, وذكرنا أن الأردويننو من الممكن أن يتواصل مع الحاسوب, ويتم نقل البيانات من وإلى الحاسوب, ولذلك لا بد من أدة تدير هذه العمليات, وتسمى هذه الأدة بشاشة المراقب التسلسل(Serial Monitor).

شاشة المراقب التسلسلي Serial Monitor:

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

للتعامل مع شاشة السيريل لابد من معرفة بعض الدوال, والتي سنتعرف عليها تدريجيا, وأول هذه الأوامر :-

تستخدم هذه الجملة لإنشاء اتصال بين الأردوينو والحاسوب, وبهذا فإن الأردوينو يكون جاهزا لإرسال واستقبال البيانات من الحاسوب, بحيث يعبر الرقم الذي بين الأقواس عن سرعة التراسل بين الكمبيوتر والحاسوب, وتكون ثابتة في جميع لوحات الأردوينو تقريبا.

وتعد كلمة value أي متغير سترنق.
تقوم هذه الدالة بطباعة ما بين القوسين على شاشة السيريل مونتور, ويبقى المؤشر بجوار أخر حرف, أي اذا أردنا طباعة أي كلمة أخرى فستلصق بجانبها.

يستخدم الأمر التالي لطباعة ما بين القوسين على شاشة السيريل وبعدها ينتقل المؤشر إلى السطر الذي يليه.

ملاحظة مهمة:
  • لا بد أن يتم تهيئة الأردوينو للاتصال بالحاسوب, ومن ثم تستخدم الدالة print.
  • لا بد أن يكون ما يوضع بين القوسين متغير من نوع String, واذا وضع رقم على سبيل المثال, فإنه سوف يتعامل الأردوينو معه كString. الصورة التالية توضح هذا.

من الممكن لدالة ال  print أن تأخذ قيمتان بحيث تكون القيمة الأولى عبارة عن ال String المراد طباعة التغيير عليه, وتكون القيمة التالية شكل الفورمات المراد تطبيقه على القيمة الأولى, حسب Syntax التالي.
والأمثلة التالية توضح بعض هذا الفورمات (format)
كما ويمكن أن يكون بداخل الString رمز فلا يطبع كما هو بل يكون للرمز معنا يليه طباعة باقي ال String, كما هو موضح بالشكل التالي.


للوصول إلى الأسئلة الخاصة بهذا المقال, اضفط هنا.


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

للانتقال إلى الموضوع السابق, اضغط هنا.
للانتقال إلى الموضوع التالي, اضغط هنا.

والسلام عليكم ورحمة الله تعالى وبركاته

الأحد، 21 يونيو 2020

3.3 | المتغيرات | دورة تعلم الاردوينو باحترافية



3.3 | المتغيرات | دورة تعلم الاردوينو باحترافية

من المعروف بأن الاردوينو متحكم دقيقق, يعمل كدماغ للمشاريع, ومن المعروف أن دماغ الأنسان يخزن أي شيء قبل اخراجه, وبالمثل فإن الأردوينو يحتاج إلى تخزين القيم, ويخزن الأردوينو هذا بطريقتين, وهما المتغيرات (Variable), والثوابت (Constant), وسنتناول في هذا الموضوع المتغيرات, وسنترك الثوابت في الموضوع اللاحق.

المتغيرات

أحيانا قد تحتاج إلى حفظ قيمة أثناء عمل البرنامج, لاستخدامها في موقع أخر في البرنامج, ولعمل هذه العملية فلا بد من معرفة المتغيرات.

المتغيرات: هي مساحة من الذاكرة تستخدم لتخزين المعلومات, قابلة لتغير قيمتها أثناء عمل البرنامج.

ولمعرفة كيف يتم تخزين القيمة لابد من معرفة كيفية تترتب خلايا ذاكرة الأردوينو.

ترتيب الخلايا في ذاكرة الاردوينو

يوجد في الأردوينو ذاكرة يتم تخزين المعلومات فيها.
تتكون الذاكرة من مجموعة من الخلاية المتتابعة ولكل خلية عنوان خاص بها, وتسمح كل خلية بتخزين بداخلها بايت باللغة الثنائية, لاحظ الشكل التالي, بحيث تكون الأرقام عناوين الخلايا.


ماذا يحدث عند تعريف المتغير

عند تعريف المتغير يقوم الأردوينو بحجز مجموعة من الخلايا المتتابعة ليخزن بداخلها القيم, وسنتعرف على مساحة الخلايا المحجوزة لاحقا.

كما ذكرنا سابقا بأن المتغيرات هي عبارة عن مساحة من الذاكرة يخزن بداخلها المعلومات, وليتم تخزين المعلومات لابد أن يتم أولا حجز مساحة للمعلومة ومن ثم يتم وضع المعلومة بداخلها.
على سبيل المثال, لو أردنا أن نخزن رقم 8 في ذاكرة الأردوينو, فسيقوم الأردوينو أولا بحجز مساحة من الذاكرة(عدد من الخلايا) تكفي لتخزين الرقم 8 بالصيغة الثنائية ويسميها باسم معين, ومن ثم يضيف الأردوينو الرقم 8 داخل هذه المساحة.
الشكل التالي يوضح ألية حجز مساحة للمتغير, بحيث عمل الأردوينو بحجز الخلية 1500 و 1501 و 1502 و 1503 ,  ويسميها بالأسم الذي يحدد من خلال الكود البرمجي.


بعدها يقوم الأردوينو بتخزين القيمة المراد تخزينها داخل الخلايا التي تم حجزها, ويخزن باللغة الثنائية, وذلك لأن الأردوينو يتعامل باللغة الثنائية, الشكل التالي يوضح عملية التخزين.

مما سبق يتضح أنه لا بد أن يوجد اسم للمتغير ليتم تسمية الخلايا المحجوزة به,ولذلك لا بد أن نتعرف على القواعد العامة لأسماء المتغيرات, قبل أن نتعرف كيف يعرف الأردوينو المتغيرات ويخزن القيم بها.

قواعد كتابة أسماء المتغيرات

أن يتكون اسم المتغير من الأرقام والحروف فقط ولا يسمح بأي رمز سوى _
أن يبدأ اسم المتغير بحرف أو ب _ .
أن لا يكون اسم المتغير من كلمات المحجوزة (reserve word) أو سبق استخدامها كاسم لمتغير.
يفضل أن يكون اسم المتغير اسما ذا معنى يساعد على فهم البرنامج ومتابعة خطواته.
بنائا على هذه القواعد أي الأسماء التالية من الممكن أن تقبل كاسم متغير


ملاحظة: لغة ال C++ لغة حساسة (sensitive) أي أن الحرف (A) يختلف عن الحرف (a).

تستخدم الصيغة التالية لحجز للمتغير  مساحة في الذاكرة, وتعرف هذه العملية ب declaration

بحيث يعدل var على اسم المتغير, أما ال data type فهي نوع المتغير والتي سنتعرف عليها خلال هذا الموضوع.
الأمثلة التالية توضح السابق.
int num;
double number;
char ch;
يعد كل من num و number و ch أسماء متغيرات.
في حين يعد كل من int و double و char أنواع من المتغيرات التي سنذكرها لاحقا في هذا المقال.

بعد حجز مساحة للمتغير يمكن لنا وضع قيمة بداخله (initialization) باستخدام الصيغة التالية:

الأمثلة التالية توضح السابق.

num = 2080;

Number = 2080.5;

ch = ‘A’;


في المثال السابق تم تخزين قيمة 2080 في المتغير num الذي تم حجزه في الفقرة السابقة, وتم تخزين 2080.5 في المتغير Number الذي تم حجزه سابقا, وتم تخزين الحرف A في المتغير ch الذي تم حجزه سابقا.

يتوفر بالأردوينو أمر يقوم الأردوينو بموجبه بحجز مساحة من الذاكرة وتخزين قيمة بها, وهي كالتالي.
وبالتالي فان الامر البرمجي التالي
 int num = 2080;
 يكافئ الأمرين البرمجيين التاليين.
int num;
num = 2080;
تعلمنا أنه يجب تعريف المتغير ثم يمكننا وضع قيمة بداخله وقتما نشاء, على سبيل المثال يمكن تعريف متغير صحيح باسم x ومن ثم وضع بداخله القيمة 5 ومن ثم تغيرها لاحقا بالقيمة 8, كالتالي:

أنواع المتغيرات

الأعداد الصحيحة: وهي التي لا يكون فيها جزء عشري مثل 8و 20و 2000 و10503
الأعداد العشرية: وهي التي يكون فيها جزء عشري مثل 0.0 و 8.0 و 7.45 و 42.1
الحروف: يخزن بها فقط حرف أو رمز واحد يتبع لجدول الأسكي كود مثل ‘A’
الجمل: ويتم فيها كتابة مجموعة من الحروف بجانب بعضها مثل “Amr Shtat”.

ولكل نوع مساحة تخزينية محددة, والتي سنتعرف عليها الان.


 الأعداد الصحيحة  Integer data type

ويمكن الحصول عليها باحد الطرق التالية, حيث يكون الفرق بقيمة العدد المسموح تخزينه في المتغير.
المتغير من نوع  int يجب أن تكون قيمته ما بين 32,768- إلى 32,767.
المتغير من نوع  byteيجب أن تكون قيمته ما بين 0 إلى 255 فقط.
المتغير من نوع long يجب أن تكون قيمته ما بين - 2,147,483,648  إلى  2,147,483,647
تعد كل من int , short , long كلمات محفوظة.
أمثلة:
int number = 5;
long num = 5;
short small = 5;

Boolean data type

يعتبر ال Boolean  من أنواع المتغيرات وهو أبسطها إذ يخزن بداخله إحدى القيمتين إما 1 وتكافئ True أو صفر وتكافئ false ولتعريف هذا النوع نستخدم الصياغة التالية.
من الممكن كتابة كلمة boolean بدل كلمة bool
لاحظ الأمثلة التالية:
bool isTrue= 1;
bool istrue = 0;
bool isFund;
وهذه اأمثلة تكافئ الأمثلة التالية.أمثلة:
bool isTrue= true;
bool istrue = false;
bool isFund;

الأعداد العشرية Floating point

لتعريف متغير عشري نتبع أحد الصيغ التالية:-
المتغير من نوع  floatيجب أن تكون قيمته ما بين 3.4028235E+38- إلى 3.4028235E+38.
المتغير من نوع  doubleيشبه سابقه, إلا أن ...
أمثلة:
flout number = 5.0f;
double num = 5.0;

الحروف characters

لتعريف متغير حرفي نتبع الصيغة التالية
أمثلة:
char ch = ‘A’;
Char N = ‘8’;
char l = ‘a’;
char RR = ‘+’;
يمكن حصر الحروف التي يمكن استخدامها ب جدول الأسكي (ASCII code)
وسنتعرف على فائدة جدول الأسكي لاحقا.

تعريف الجمل String

تستخدم الصيغة التالية لتعريف متغير من نوع string:
أمثلة:
String name = “Amr”;
String Last_name = “Shtat”;
String full_Name;

ملاحظة:
  • ال String  ليس data type وانما يعتبر object.
  • ال String يعد من نوع ال Struct data type.
  • في حين يعتبر باقي الأنواع من int و double و char و ...  من نوع Simple data type.


الملخص:




كانت هذه المحاضرة الثانية في الشبتر الثالث من دورة تعلم الأردوينو باحترافية,
لمشاهدة الحلقات التابعة لهذا الموضوع من على اليوتيوب: من هنا الجزء الأول, ومن هنا الجزء الثاني, ومن هنا الجزء الثالثولكي تنتقل إلى فهرس الدورة, اضغط هنا.
للانتقال للدورة على اليوتيوب, اضغط هنا.

للإنتقال إلى الموضوع السابق, اضغط هنا.
للإنتقال إلى الموضوع التالي, اضغط هنا.

والسلام عليكم ورحمة الله تعالى وبركاته

الجمعة، 19 يونيو 2020

3.2 | رحلة مع كود الأردوينو | دورة تعلم الأردوينو باحترافية

رحلة مع كود الأردوينو

3.2 | رحلة مع كود الأردوينو | دورة تعلم الأردوينو باحترافية

هذه المحاضرة الثانية من الشبتر الثاني من هذه الدورة, والذي سنتحدث فيه عن مسار الكود البرمجي منذ كتابته وحتى تنفيذه, ومن ثم سنقوم بشرح كود الوميض مرة أخرى.
وكما سنتحدث عن عملية التأليف (Compilation), وسنتعرف على كود الوميض مرة أخرى, كما سنتعرف على أنواع الأخطاء في البرمجة.


كما تعلمنا في الموضوع السابق, بأنه يكتب الكود بمكانه, على سبيل المثال كود الوميض, وعند الضغط على زر رفع سوف يرتفع الكود على بوردة الأردوينو, وبالتالي لو طرحت عليك سؤالا, ما هي الخطوات التي ينفذها الأردوينو منذ كتابة الكود حتى تنفيذه؟؟
بكل وضوح سيكون جوابك إن لم يكن لك خلفية برمجية بأن البرنامج يرفع الكود على الأردوينو, ومن ثم ينفذ الأردوينو الكود,للأسف الشديد, إن هذه ليست الاجابة الصحيحة !!!

رحلة مع كود الاردوينو

تبدأ هذه الرحلة مند كتابتك الكود وهي أول الخطوات, وتكون كتابة الكود عبارة عن كتابة على برنامج محرر نصوص, مثل برنامج الدفتر, أو المفكرة, أو حتى برنامج الوورد الشهير...
ولكن عند الضغط على زر رفع للأردوينو, يقوم البرنامج بعملية تسمى التأليف (Compilation), ويقوم بهذه العملية برنامج يسمى المؤلف (Compiler).

المؤلف (Compiler): هو برنامج يعمل على تحويل الكود البرمجي من النص الذي يكتب في محرر الكود إلى كود باللغة الثنائية يفهمه الاردوينو, يسمى كود الألة (Machine Code), وهو كود يتكون فقط من أصفار ووحايد.

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

فائدة الكمبايلر

تكمن فائدة الكمبايلر في التأكد من سلامة وصحة الكود قبل تحويله لكود الألة, ويقوم بتحديد الأماكن التي فيها أخطاء إملائية تخالف قواعد لغة البرمجة, حيث سنتعرف على أنواع الأخطاء في أخر هذا المقال.


وبما أ ن الكود قد وصل الأردوينو, فإن الأردوينو يقوم بتنفيذه, ولكن ما هي الألية التي يتبعها الأردوينو لتنفيذ الكود.

كيف ينفذ الأردوينو الأوامر البرمجية؟!

عندما يبدا الأردوينو بتنفيذ الكود البرمجي فإنه يبدأ بالدالة void setup () متجاهلا أي دالة أخرى, وبمجرد الانتهاء من هذه الدالة ينتقل إلى الدالة void loop ().
بعد ذلك يذهب الأردوينو إلى تطبيق الدالة void loop () ويعمل على تنفيذها سطر سطر بالتوالي مالم يأتي أيا جملة تقتضي تغير هذا التسلسل مثل (for, while, do… while) ...
وبمجرد الانتهاء من دالة void loop () يقوم الأردوينو بإعادة تنفيذها, ويستمر التكرار حتى يتم إيقاف تشغيل الأردوينو.


الوميض مرة أخرى

يقوم الكمبايلر بالتأكد من صحة الكود ويتجاهل التعليقات, ومن ثم يتم رفع الكود إلى الأردوينو ليقوم بتنفيذه.
يتجاهل الأردوينو جميع الدوال ويذهب إلى دالة  ()void setup وينفذ ما بها فيقوم بضبط المنفذ رقم 13 كمخرج, بعد الانتهاء منها ينتقل إلى دالة ال void loop () وينفذ ما بها فيخرج 5 فولت على الرجل 13فيضئ اللد ثم يتوقف ثانية ثم يخرج صفر فولت على الرجل رقم 13 فينطفئ اللد ثم يتوقف ثانية, بعد الانتهاء من دالة ال  ()void loop ينتقل الأردوينو مرة أخرى إليها ويقوم بتنفيذها, إلى أن يتم فصل الطاقة عن الأردوينو أو يضغط على زر ال Reset الذي سبق شرحه.
ملاحظة: إذا تم الضغط على زر ال Reset فإن الأردوينو يبدا من البداية أي من دالة الvoid setup() ويتبع الخطوات السابقة.




أنواع الأخطاء بالبرمجة

سبق وأن ذكرنا, أن الكمبايلر يعمل على اكتشاف الأخطاء في الكود البرمجي, لكن بالحقيقة هو لا يكتشف جميع الأخطاء, وانما يكتشف نوع واحد من ثلاث أنواع من الأخطاء.

أنواع الأخطاء في البرمجة:

الأخطاء الإملائية(Syntax error): أي الأخطاء التي تكون في البناء التركيبي للجملة البرمجية, وهذا النوع الوحيد الذي يكتشفه الكمبايلر.
الأخطاء المنطقية(Logic error): هي الأخطاء التي تؤدي إلى اظهار ناتج غير المتوقع, ولا يكتشفه الكمبايلر, ولذلك تعد أصعب أنواع الأخطاء, والتي سنبينها لاحقا.
أخطاء نفذ الوقت(Time Out error): وهي التي تكون خارج قدرة الأردوينو, أو التي لا يعيها الأردوينو, مثل القسمة على صفر, كما أن هذه الأخطاء لا يكتشفها الكمبايلر.




كانت هذه المحاضرة الثانية في الشبتر الثالث من دورة تعلم الأردوينو باحترافية,
لمشاهدة الحلقة من على اليوتيوب, اضغط هنا.
ولكي تنتقل إلى فهرس الدورة, اضغط هنا.
للانتقال للدورة على اليوتيوب, اضغط هنا.

للإنتقال إلى الموضوع السابق, اضغط هنا.
للإنتقال إلى الموضوع التالي, اضغط هنا.


والسلام عليكم ورحمة الله تعالى وبركاته

2.3 | برمجة الأردوينو باستخدام الهاتف | دورة تعلم الأردوينو باحترافية

برمجة الأردوينو باستخدام الهاتف (يدعم المكتبات) | دورة تعلم الأردوينو باحترافية

2.3 | برمجة الأردوينو باستخدام الهاتف (يدعم المكتبات) | دورة تعلم الأردوينو باحترافية

من الممكن أنك لاتمتلك جهاز كمبيوتر, وتريد برمجة الأردوينو, أو من الممكن أن تكون في معرض وتريد أن تعدل على المشروع وجهاز الكمبيوتر غير موجود معك!! فإن الحل لهذه المشاكل, أن نتعلم كيفية برمجة الأردوينو بواسطة الهاتف.
وهذه العملية تتم باستخدام برنامج ArduinoDroid - Arduino IDE الرائع أو والذي يدعم المكتبات...

لتنزيل البرنامج انتقل الى اخر المقال.

برنامج أردوينودرويد - أردوينو اي دي ئي | ArduinoDroid - Arduino IDE

ان واجهة هذا البرنامج غير معقدة كما انها تشابه واجهة برنامج الأردوينو الذي على الحاسوب والذي سبق أن شرحناه في المحاضرة الأولى من هذا الشبتر.

الأدوات المطلوبة لبرمجة الأردوبنو باستخدام الهاتف.

  1. جهاز هاتف,  والذي من الممكن أن يكون على سبيل المثال جهاز أندرويد.
  2. لوحة الأردوينو التي تريد برمجتها على سبيل المثال أردوينو أونو.
  3. الكابل الخاص ببوردة الأردوينو, على سبيل المثال كابل الأردوينو أونو.
  4. وصلة OTG.
الصورة التالية توضح الأدوات المطلوبة.

برمجة الأردوينو باستخدام الهاتف

إنه من الصعب الشرح باستخدام الكتابة, لذلك انا انصحك بأن تتابع الشرح الخاص بهاذا المقال من هنا.


ادراج مكتبة جديدة لبرنامج اردوينودرويد | Arduino Droid User Installed Libraries

من المعلوم أنه يوجد نوعان من المكتبات وهما
  • المكتبات المعيارية. Standard Libraries
  • والمكتبات المصممة من قبل المستخدمين User Installed Libraries
بالنسبة للمكتبات المعيارية, فان برنامج الأندرويددرويد يدعمها, حيث أنها مدمجة بالبرنامج, أما بالنسبة للمكتبات الغير معيارية, فإن برنامج اردويو درويد يدعمها, كما هو موضح بالفيديو الخاص بهذا المقال, للانتقال للفيديو, اضغط هنا.


تنزيل برنامج اردوينودرويد | Download Arduino Droid

لتنزيل برنامج اردوينو درويد من خلال المتجر, اضغط هنا.
ملاحظة, لابد ان تحول متجرك إلى متجر أمريكي ليدعم هذا البرنامج.

ولتنزيل البرنامج من قوقل درايف بملف مضغوط, اضغط هنا.
ولتنزيل البرنامج من قوقل درايف بامتداد APK, اضغط هنا.

النسخة المحملة على قوقل درايف هي (4.10.1), وهي النسخة الأحدث حتى الأن, سأعمل على رفع أي اصدار جديد ينزل في أقرب وقت إن شاء الله

هذا الموضوع الثالثة من الشابتر الثالث من دورة تعلم الأردوينو باحترافية, المتوفرة على قناتي على اليوتيوب, أو مدونتي هذه.

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

للانتقال إلى الموضوع السابق, اضغط هنا.
للانتقال إلى الموضوع التالي, اضغط هنا.




الأربعاء، 17 يونيو 2020

3.1 | كتابة أول كود أردوينو | دورة تعلم الاردوينو باحترافية


the first ِArduino code

3.1 | كتابة أول كود أردوينو | دورة تعلم الاردوينو باحترافية

ذكرنا سابقا أن الأردوينو يبرمج بلغة C++ حيث أن هذه اللغة سهلة التعلم كما ينصح بها للمبتدئين في مجال البرمجة.
أنت كإنسان تتواصل مع العالم بواسطة لغة... وبالتالي إذا أردت أن تتواصل مع الأردوينو فلا بد ان تواصل معه بلغته وهي C++.
في الحقيقة لو أردت أن تتعلم لغة ولتكن الإنجليزية فإنك ستتعلم بعض الكلمات والقواعد التي تحكمها...
إن الأمر مماثل بالنسبة لتعلم لغة البرمجة حيث أنك تتعلم بعض الكلمات وبعض القواعد لتتعلم هذه اللغة, إلا أن عدد كلمات لغة البرمجة أقل بكثير من كلمات لغة التحدث, كما أن لغة البرمجة يكون تعلمها بالكتابة مما يعني سهولة حفظها وتعلمها ...

يبدو أنك قد سمعت بكود الوميض, وخاصة اننا قد قمنا بتشغيله ولختبار سلامة الأردوينو في المحاضرات والمواضيع السابقة, لكن الان وجب أن نفهمه, ونوضح ألية عمله.
لقد ذكرنا في أول موضوع في هذه الدورة أن هذه الدورة تستهدف صنفين من الناس, ومن بينهم من ليس لهم أي خبرة بمجال البرمجة والالكترونيات, وكما أن كود البلنك أبسط كود بالأردوينو, والذي يكافء كود طباعة " Hello World" باي لغة برمجة (إن سبق لك وان تعرفت على اي لغة برمجة)وعلى الرغم من هذا فإننا لن نكمله الليوم, بل سيأخذ معنا أكثر من محاضرة وذلك لأهميته, حيث أن فهمه يؤدي الى فهم جزء كبير من باقي الدورة, وذلك لأننا نبدأ من الصفر...

دعنا الأن نستعرض كود البلنك الذي سبق وأن رأينا نتيجته, أن اللد النتصل مع منفذ رقم 13 يقوم بالاضاءة ثانية وينطفئ ثانية...
بدايتا وقبل أن نبدأ, فمن الواضح أنه قد تلاحظ بعض الملاحظات على الكود.
  1. وجود فاصلة منقوطة نهاية كل كود,
  2. أما بالنسبة للملاحظة الثانية فأنا سوف, أسهلها لك, وهي وجود دالتين, سنتعرف على الدوال بالتفصيل في الشبتر الخامس..
الأن بهاتين الملاحظتين نستطيع استنباط أساسيات أي كود أردوينو.

القواعد العامة لاي كود أردوينو

  1. يجب أن يحتوي أي كود أردوينو على دالتين (function) على الأقل, وهما void setup () و void loop ()
  2. يجب أن تنتهي أي جملة برمجية بلغة ال C++ بالفاصلة المنقوطة (semicolon).
لاحظ الشكل التالي الذي يشير إلى تلك الدالتين ويوضح باختصار شديد فاإدتها.
فقط نكتفي بهذه المعلومة حولة هاتين الدالتين, والتي سوف نبني عليهما, وسنعود إليهمابالتفصيل في موضوع أخر.

ضبط المنافذ الرقمية كمخارج

سبق وأن ذكرنا أن الأردوينو أونو يمتلك 14 مدخل ومخرج رقمي من 0 إلى 13, ولكن لا يمكن استخدامه كمخرج ومنفذ في نفس اللحظة, بل ينبغي تحديد نوع عمله كمخرج أو مدخل, ويتم ذلك عن طريق الأمر البرمجي التالي.

المقصود ب  exp هو أي عملية حسابية يكون ناتجها رقم صحيح من 0 إلى عدد المنافذ الرقمية للوحة الأردوينو مطروحا منها واحد, على سبيل المثال في لوحة الأردوينو أونو يوضع بدل ال exp جملة برمجية ناتجها ما بين 0 إلى 13.
يوضع في الخانة الثانية (setup) نوع المخرج إما INPUT أو OUTPUT أو INPUT_PULLUP , وفي حالتنا هذه نستخدم OUTPUT أي كمخرج.

أمثلة:

pinMode(13, OUTPUT);

pinMode(5, INPUT);

في الجملة الأولى يتم ضبط الرجل رقم 13كمخرج, أما الجملة الثانية يتم ضبط الرجل رقم 5 كمدخل.


الكتابة على منفذ الأردوينو

بعد أن يتم تحديد أحد أطراف الأردوينو كمخرج, لابد من إخراج قيمة عليه إما صفر أو واحد, وذلك لأن الكتابة تتم على المخارج الرقمية.
يكافئ الصفر الرقمي 0V في حين يكافئ الواحد الرقمي 5V.
يستخدم الأمر التالي لإخراج قيمة صفر أو واحد على مخرج الأردوينو.
أمثلة:
digitalWrite (13, LOW);
digitalWrite (13, HIGH);

في الجملة الأولى تم إخراج صفر فولت على الرجل 13 في الأردوينو, وبالتالي يطفئ اللد.
في الجملة الأولى تم إخراج 5 فولت على الرجل 13 في الأردوينو, وبالتالي يضيئ اللد.
ملاحظة: لاستخدام هذا السطر البرمجي لابد أن يتم تحديد نوع الطرف رقم 13 كمخرج كما تعلمنا سابقا.

 التأخير الزمني | delay

من المعروف أن الأردوينو ذو سرعة كبيرة وهي 16 ميقا هيرتز أي أنه سريع جدا وأحيانا نحتاج إلى تخفيض سرعة الأردوينو ويتم ذلك باستخدام الأمر البرمجي التالي.
قيمة ال exp يجب أن تكون رقم صحيح وهو يعني قيمة المدة التي يتوقف فيها الأردوينو عن العمل بالملي ثانية.
أمثلة:
delay (500);
delay (1000);

في الجملة الأولى يتوقف الأردوينو 500 ملي ثانية أي نصف ثانية, أما في الجملة الثانية فغن الأردوينو يتوقف ثانية كاملة.

الوميض | Blink

أعتقد في المرة الأولى لم تكن فهمت كود البلنك أما الأن لو قمت باظهاره أمامك مرة أخرى, فأعتقد أن الأمور قد تكون اتضحت نوعا ما.

الأن لو قلت لك, ماذا تفهم من الكود ؟
أعتقد أنك ستقول, لقد قمنا بوضع الدالة setup التي لا بد أن تكون بأي برنامج أردوينو, والتي نضع بداخلها إعدادات الأردوينو, وقد ضبطنا بداخلها المنفذ الرقمي 13 كمخرج, ثم في الدالة loop وضعنا الكود البرمجي وهو أن يكون 5 فوات على المخرج 13, ثم يتوقف الأردوينو ثانية ثم يخرج الأردوينو صفر فولت على المخرج 13 ثم يتوقف الأردوينو ثانية, وبمعد انتهاء الدالة loop تقوم باعادة نفسها.
هذا هو كود الوميض المشهور, لكن لم ننتهي منه, سنعود اليه مرة اخرى بعد شرح محاضرة بعنوان رحلة مع كود الأردوينو, التي سنبين فيها باذن الله كيفية تسلسل تنفيذ الكود, وذلك لاننا نتعامل مع مبتدئين.

الخلاصة (ملاحظات مهمة)
قبل اخراج قيمة على منفذ الأردوينو, يجب ضبطه كمخرج.
الأردوينو سريع جدا, واذا قام باضاءة واطفاء اللد بسرعته فلن نرى شيئا, لذلك نستخدم delay لتبطيئ سرعته...


كانت هذه المحاضرة الثانية في الشبتر الأول من دورة تعلم الأردوينو باحترافية, لمشاهدة الحلقة من على اليوتيوب, اضغط هنا, ولكي تنتقل إلى فهرس الدورة, اضغط هنا.
للانتقال للدورة على اليوتيوب, اضغط هنا.

للإنتقال إلى الموضوع السابق, اضغط هنا.
للإنتقال إلى الموضوع التالي, اضغط هنا.


والسلام عليكم ورحمة الله تعالى وبركاته

الثلاثاء، 16 يونيو 2020

2.1 | إعداد بيئة الأردوينو | تعلم برمجة الأردوينو

إعداد بيئة الأردوينو

2.1 | إعداد بيئة الأردوينو | تعلم برمجة الأردوينو

الأردوينو عبارة عن متحكم دقيق, ومن المعروف أن المتحكم الدقيق يتم برمجته ليقوم بوظيفته, لذلك كيف يمكن برمجة الأردوينو ؟؟! وما هي لغة برمجة الأردوينو؟
يوجد مصدرين لبرمجة الأردوينو الأول من خلال برنامج ARDUINO IDE أو من خلال موقع الأردوينو(Arduino Create), وسنتعرف عليهما في هذا الموضوع.

Arduino IDE | Arduino Integrated Development Environment 

ما هو برنامج ARDUINO IDE:

هو عبارة عن برنامج يتيح لك كتابة الكود البرمجي بالغة Arduino c وهي لغة قريبة جدا من لغة ال C++ ...
بعد كتابة الكود البرمجي يعمل البرنامج على مجوعة من الخطوات تنتهي تحويل الكود إلى لغة يفهمها الأردوينو تعرف بلفة الألة (Machine language).

IDE  تعني Integrated Development Environment 

هذا البرنامج مجاني يوفره مطوروا الأردوينو, كما يتميز بواجهة سهلة بالتعامل.

تنزيل برنامج Arduino IDE

لتنزيل برنامج ال Arduino IDE نتبع المسار التالي من موقع الأردوينو.
Arduino Home -> SOFTWARE -> Download 
أو من خلال الرابط التالي. الذي سينقلك غلى صفحة التحميل, ثم نختار نوع النظام الذي نمتلكه ومن ثم سينزل البرنامج, كما في الصورة التالية.

Install Arduino IDE


سنوضح في هذا المقال قوائم هذا البرنامج, كما يمكنك مشاهدة هذا الشرح من على اليوتيوب, من هنا.

يتكون برنامج الأردوينو من مجموعة من الأشرطة كما هو مبين بالشكل التالي, كما أن واجهة الأردوينو تدعم اللغة العربية ...
أشرطت أدوات برنامج الأردوينو



الصورة التالية توضح مكونات كل شريط ووضيفته.

واجهة برنامج الأردوينو

الصورة التالية توضح الأوامر المتواجدة بقائمة ملف.

Arduino

نكتفي بما تم ذكره عن واجهة البرنامج, أما الباقي فسيتم توضيحه خلال الدورة, عندما نحتاجه, أما اذا أردت, معرفتها الأن, تابع الفيديو التالي.

البرمجة من خلال موقع الأردوينو, Arduino Web Editor

لا يختلف الأمر كثيرن منع عن تلك الأدوات المتواجدة في Arduino IDE, ولكن يختلف الترتيب, وللانتقال إلى هذا المبرمج اتبع المسار التالي.
Arduino Home -> SOFTWARE -> Online Tools
أو من خلال الرابط التالي, سيتطلب تسجيل الدخول بالجميل الخاص بك, لتخزين الأكواد عليه ...
إذا أردت توضيح أفضل, شاهد هذه الحلقة على اليوتيوب.

كيفية التاكد من أن الأردوينو الخاص بك سليم أم لا.

للتأكد من أن الأردوينو الخاص بك يعمل بشكل جيد, عند شراءه فإنه ينبغي عليك توصيل الأردوينو بمصدر الطاقة, فإذا لاحظت اللد الذي بجانب الدبوس رقم 13 المشار إليه بالحرف L (المشار اليه في الصورة التالية) يومض فإن الأردوينو الخاص بك يعمل بشكل سليم.
وذلك لأن الشركة المصنعة تعمل على رفع كود بسيط على الأردوينو ليتمكن المشتري من فحصه أن إذا كان الأردوينو يعمل أم لا. يسمى هذا الكود بالوميض (Blink), الذي سنتعرف عليه لاحقا.

لد اردوينو

أما اذا أردت أن تتأكد من أن الأردوينو المستخدم الذي معك يعمل بشكل سليم, قم برفع الكود التالي على الأردوينو, فاذا حصل كما في الجديد, فهو يعمل بشكل سليم, غير هذا فهو تالف.

Blink code

من الأفضل أن تتابع هذا الفيديو بدلا من هذا المقال لأن الشرح العملي أفضل بكثير ...



رابط المحاضرة الخاصة بهذا المقال اليوتيوب, من هنا.
رابط فهرس الدورة, من هنا.

الموضوع السابق, من هنا.
الموضوع, التالي, من هنا.




الاثنين، 15 يونيو 2020

1.3 | عوائل الأردوينو | دورة تعلم الاردوينو باحترافية

عوائل الأردوينو

1.3 | عوائل الأردوينو | دورة تعلم الاردوينو باحترافية


هذا موضوع تابع للموضوع الثالث في الشبتر الأول لدورة تعلم الأردوينو باحترافية, على قناتي على اليوتيوب.

سبق وأن ذكرنا أن الأردوينو انتشر وظهر من أنواع كثيرة, وفي هذا المقال سنستعرض العديد من لوحات الأردوينو, التي يفضل التعامل معها, إلا اننا في هذه الدورة سنعتبر الأردوينو أونو المرجع الأساسي للوحات الأردوينو, والجدير بالذكر أن لوحات الاردوينو لها نفس لغة البرمجة ومتشابهة إلى حد كبير في مكوناتها, وسنستخدم في هذه الدورة الأردوينو أونو وفي مقال اخر في هذه الدورة سنتعرف كيفية قياس جميع لوحات الأردوينو على الأردوينو أونو, وقد استخدمنا الأردوينو اونو (Arduino Uno) لأسباب عدة سنتعرف عليها في هذا المقال لاحقا...

في الصورة التالية العديد من بوردات الأردوينو اللمشهورة

لوحات الأردوينو المشهورة

أمثلة على بوردات الأردوينو المشهورة

1- الأردوينو أونو | Arduino Uno

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

مواصفات الأردوينو أونو:

متحكم

ATmega328P

جهد التشغيل

5 فولت

جهد الإدخال (موصى به)

7-12 فولت

مدخلات الجهد (الحد)

6-20 فولت

دبابيس I / O الرقمية

14 (6 منها توفر مخرجات PWM)

دبابيس I / O الرقمية PWM

6

دبابيس الإدخال التناظرية

6

DC الحالي لكل I / O Pin

20 مللي أمبير

العاصمة الحالية ل 3.3 V دبوس

50 مللي أمبير

ذاكرة متنقله

32 كيلوبايت (ATmega328P) ، منها 0.5 كيلوبايت يستخدمها bootloader

SRAM

2 كيلوبايت (ATmega328P)

EEPROM

1 كيلوبايت (ATmega328P)

سرعة الساعة

16 ميجا هرتز

LED_BUILTIN

13

الطول

68.6 ملم

عرض

53.4 ملم

وزن

25 جرام



الأردوينو ميقا | Arduino Mega

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

مواصفات الأردوينو ميقا:

Microcontroller

ATmega2560

Operating Voltage

5V

Input Voltage (recommended)

7-12V

Input Voltage (limit)

6-20V

Digital I/O Pins

54 (of which 15 provide PWM output)

Analog Input Pins

16

DC Current per I/O Pin

20 mA

DC Current for 3.3V Pin

50 mA

Flash Memory

256 KB of which 8 KB used by bootloader

SRAM

8 KB

EEPROM

4 KB

Clock Speed

16 MHz

LED_BUILTIN

13

Length

101.52 mm

Width

53.3 mm

Weight

37 g





أردوينو نانو | Arduino Nano

مواصفات الأردوينو نانو: Arduino Nano

متحكم

ATmega328

هندسة معمارية

AVR

جهد التشغيل

5 فولت

ذاكرة متنقله

32 كيلوبايت منها 2 كيلوبايت مستخدمة من قبل برنامج bootloader

SRAM

2 كيلوبايت

سرعة الساعة

16 ميجا هرتز

دبابيس IN التناظرية

8

EEPROM

1 كيلوبايت

تيار مستمر لكل دبابيس الإدخال / الإخراج

40 مللي أمبير (دبابيس I / O)

مساهمة الجهد

7-12 فولت

دبابيس I / O الرقمية

22 (6 منها PWM)

إخراج PWM

6

استهلاك الطاقة

19 مللي أمبير

حجم ثنائي الفينيل متعدد الكلور

18 × 45 مم

وزن

7 غ

كود المنتج

A000005






الأردوينو ميكرو | Arduino Micro

إن Micro عبارة عن لوحة متحكم تعتمد على ATmega32U4 ( ورقة البيانات ) ، تم تطويرها بالاشتراك مع Adafruit . يحتوي على 20 دبابيس إدخال / إخراج رقمية (يمكن استخدام 7 منها كمخرجات PWM و 12 كمدخلات تناظرية) ، ومذبذب بلوري 16 ميجاهرتز ، واتصال USB صغير ، ورأس ICSP ، وزر إعادة تعيين. يحتوي على كل ما يلزم لدعم متحكم. ما عليك سوى توصيله بجهاز كمبيوتر باستخدام كبل USB صغير للبدء. لديها عامل الشكل الذي يمكن وضعها بسهولة على لوحة الخبز. تتشابه لوحة Micro مع Arduino Leonardo في أن ATmega32U4 يحتوي على اتصال USB مدمج ، مما يلغي الحاجة إلى معالج ثانوي. يسمح هذا للميكرو بالظهور على جهاز كمبيوتر متصل كماوس ولوحة مفاتيح ، بالإضافة إلى منفذ تسلسلي / CDC افتراضي (CDC).

خصائص الأردوينو ميكرو

متحكم

ATmega32U4

جهد التشغيل

5 فولت

جهد الإدخال (موصى به)

7-12 فولت

مدخلات الجهد (الحد)

6-20 فولت

دبابيس I / O الرقمية

20

قنوات PWM

7

قنوات الإدخال التناظرية

12

DC الحالي لكل I / O Pin

20 مللي أمبير

العاصمة الحالية ل 3.3 V دبوس

50 مللي أمبير

ذاكرة متنقله

32 كيلوبايت (ATmega32U4) ، منها 4 كيلوبايت يستخدمها bootloader

SRAM

2.5 كيلوبايت (ATmega32U4)

EEPROM

1 كيلوبايت (ATmega32U4)

سرعة الساعة

16 ميجا هرتز

LED_BUILTIN

13

الطول

48 مم

عرض

18 ملم

وزن

13 جرام


أردوينو ميكرو

أردويتو اسبلورة |  Arduino Esplora 

و اردوينو Esplora هو مجلس متحكم المستمدة من  اردوينو ليوناردو . يختلف Esplora عن جميع لوحات Arduino السابقة في أنه يوفر عددًا من مجموعة أجهزة الاستشعار المدمجة المدمجة للتفاعل. تم تصميمه للأشخاص الذين يرغبون في البدء والعمل مع Arduino دون الحاجة إلى التعرف على الإلكترونيات أولاً. للحصول على مقدمة خطوة بخطوة عن Esplora ، راجع دليل  الشروع في استخدام Esplora  . يحتوي Esplora على مخرجات صوت وإضاءة مدمجة ، والعديد من مستشعرات الإدخال ، بما في ذلك عصا التحكم ، والمنزلق ، ومستشعر درجة الحرارة ، ومقياس التسارع ، والميكروفون ، ومستشعر الضوء. كما أن لديها القدرة على توسيع قدراتها مع اثنين من موصلات الإدخال والإخراج Tinkerkit ، ومقبس لشاشة LCD ملونة TFT. مثل لوحة Leonardo ، يستخدم Esplora متحكم دقيق Atmega32U4 AVR مع مذبذب 16 MHzcrystal واتصال USB صغير قادر على العمل كجهاز عميل USB ، مثل الماوس أو لوحة المفاتيح. في الركن الأيسر العلوي من اللوحة يوجد زر إعادة تعيين ، يمكنك استخدامه لإعادة تشغيل اللوحة. هناك أربعة مصابيح LED للحالة: 
ON [أخضر] يشير إلى ما إذا كانت اللوحة تتلقى مصدر طاقة
L [أصفر] متصل مباشرة بوحدة التحكم الدقيقة ، يمكن الوصول إليه من خلال دبوس 13
يشير RX و TX [أصفر] إلى البيانات التي يتم إرسالها أو استقبالها عبر اتصال USB
 تحتوي اللوحة على كل ما يلزم لدعم وحدة التحكم الدقيقة ؛ ما عليك سوى توصيله بجهاز كمبيوتر باستخدام كبل USB للبدء. يحتوي Esplora على اتصال USB مدمج ؛ يمكن أن يظهر لجهاز كمبيوتر متصل كماوس أو لوحة مفاتيح ، بالإضافة إلى منفذ تسلسلي / CDC افتراضي (CDC). هذا له آثار أخرى على سلوك المجلس ؛ هذه مفصلة في  صفحة البدء .


متحكم

ATmega32u4

جهد التشغيل

5 فولت

ذاكرة متنقله

32 كيلوبايت منها 4 كيلوبايت مستخدمة من قبل برنامج bootloader

SRAM

2.5 كيلوبايت

EEPROM

1 كيلوبايت

سرعة الساعة

16  ميجا هرتز

الطول

164.04 ملم

عرض

60 ملم

وزن

53 جرام


أردوينو اسبلورة


أردوينو دو | Arduino Duo


و اردوينو نظرا هو مجلس متحكم على أساس  وحدة المعالجة المركزية اتميل SAM3X8E ARM اللحاء M3 . إنها أول لوحة Arduino تعتمد على متحكم دقيق 32 بت ARM. يحتوي على 54 دبابيس إدخال / إخراج رقمية (يمكن استخدام 12 منها كمخرجات PWM) ، و 12 مدخلات تناظرية ، و 4 UARTs (منافذ تسلسلية للأجهزة) ، وساعة 84 ميجاهرتز ، واتصال USB OTG ، 2 DAC (رقمي إلى تناظري) و 2 TWI ومقبس طاقة ورأس SPI ورأس JTAG وزر إعادة تعيين وزر محو. تحذير: على عكس معظم لوحات Arduino ، تعمل لوحة Arduino Due عند 3.3V. الحد الأقصى للجهد الذي يمكن أن تتحمله دبابيس الإدخال / الإخراج هو 3.3 فولت. يمكن أن يؤدي تطبيق الفولتية الأعلى من 3.3 فولت على أي طرف إدخال / إخراج إلى إتلاف اللوحة. تحتوي اللوحة على كل ما يلزم لدعم وحدة التحكم الدقيقة ؛ ما عليك سوى توصيله بجهاز كمبيوتر باستخدام كبل USB صغير أو تشغيله باستخدام محول AC-to-DC أو بطارية للبدء. يتوافق The Due مع جميع دروع Arduino التي تعمل عند 3.3V ومتوافقة مع pinout 1.0 Arduino. يتبع المستحق pinout 1.0: 
TWI : دبابيس SDA و SCL بالقرب من دبوس AREF.
IOREF : يسمح للدرع المرفق بالتهيئة المناسبة للتكيف مع الجهد المقدم من اللوحة. وهذا يتيح توافق الدرع مع لوحة 3.3V مثل الألواح المستندة إلى و AVR التي تعمل عند 5 فولت.
دبوس غير متصل ، محجوز للاستخدام في المستقبل.

خصائص الأردوينو دو

متحكم

AT91SAM3X8E

جهد التشغيل

3.3 فولت

جهد الإدخال (موصى به)

7-12 فولت

مدخلات الجهد (حدود)

6-16 فولت

دبابيس I / O الرقمية

54 (منها 12 يوفر إخراج PWM)

دبابيس الإدخال التناظرية

12

دبابيس الإخراج التناظرية

2 (DAC)

إجمالي خرج التيار المستمر على جميع خطوط الإدخال / الإخراج

130 مللي أمبير

العاصمة الحالية ل 3.3 V دبوس

800 مللي أمبير

العاصمة الحالية لدبوس 5V

800 مللي أمبير

ذاكرة متنقله

512 كيلوبايت متوفرة لتطبيقات المستخدم

SRAM

96 كيلوبايت (بنكان: 64 كيلوبايت و 32 كيلوبايت)

سرعة الساعة

84 ميجا هرتز

الطول

101.52 ملم

عرض

53.3 ملم

وزن

36 جرام


أردوينو دو












فيما يلي العديد من لوحات الاردوينو التي سنتعلم لاحقا كيفية معرفة خصائصها




كانت هذه المحاضرة الثالثة في الشبتر الأول من دورة تعلم الأردوينو باحترافية, لمشاهدة الحلقة من على اليوتيوب, اضغط هنا, ولكي تنتقل إلى فهرس الدورة, اضغط هنا.
للانتقال للدورة على اليوتيوب, اضغط هنا.

للإنتقال إلى الموضوع السابق, اضغط هنا.
للإنتقال إلى الموضوع التالي, اضغط هنا.


والسالام عليكم ورحمة الله تعالى وبركاته