FLProg هي بيئة برمجة بديلة لـ Arduino. وصف المشروع. برمجة Arduino باستخدام ArduBlock باستخدام مثال الروبوت الذي يتحرك على طول شريط البيئات الرسومية التي تعرض التعليمات البرمجية كرسومات

💖 هل يعجبك؟شارك الرابط مع أصدقائك

يوفر هذا الدرس الحد الأدنى من المعرفة المطلوبة لبرمجة أنظمة Arduino بلغة C. يمكنك فقط مشاهدته ثم استخدامه كـ معلومات اساسية. بالنسبة لأولئك الذين قاموا بالبرمجة بلغة C على أنظمة أخرى، يمكنهم تخطي المقال.

وأكرر أن هذا هو الحد الأدنى من المعلومات. وصف المؤشرات والفئات ومتغيرات السلسلة وما إلى ذلك. سيتم تقديمها في الدروس اللاحقة إذا كان هناك أي شيء غير واضح، فلا تقلق. سيكون هناك العديد من الأمثلة والشروحات في الدروس القادمة.

هيكل برنامج اردوينو.

هيكل برنامج Arduino بسيط جدًا ويتكون في شكله البسيط من جزأين setup () وloop ().

الإعداد باطل() (

حلقة فارغة() (

يتم تنفيذ وظيفة الإعداد () مرة واحدة، عند تشغيل وحدة التحكم أو إعادة ضبطها. عادةً ما تتم الإعدادات الأولية للمتغيرات والسجلات فيه. يجب أن تكون الوظيفة موجودة في البرنامج، حتى لو لم يكن هناك شيء فيها.

بعد اكتمال الإعداد()، ينتقل التحكم إلى وظيفة الحلقة(). يقوم بتنفيذ الأوامر المكتوبة في جسمه (بين الأقواس المتعرجة) في حلقة لا نهاية لها. في الواقع، تقوم هذه الأوامر بتنفيذ جميع الإجراءات الخوارزمية لوحدة التحكم.

القواعد الأصلية لبناء جملة لغة C.

; فاصلة منقوطةيمكن أن تحتوي التعبيرات على العديد من المسافات وفواصل الأسطر حسب الرغبة. تتم الإشارة إلى نهاية التعبير بواسطة رمز الفاصلة المنقوطة.

ض = س + ص؛
ض = س
+ ص؛

( ) الأقواس المعقوفةتحديد كتلة من الوظائف أو التعبيرات. على سبيل المثال، في وظائف setup() وloop().

/* … */ كتلة التعليق، تأكد من الإغلاق.

/* هذه كتلة تعليق */

// تعليق من سطر واحد، لا حاجة للإغلاق، صالح حتى نهاية السطر.

// هذا سطر واحد من التعليق

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

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

نوع البيانات العمق، بت نطاق الأرقام
منطقية 8 خطأ صحيح
شار 8 -128 … 127
حرف غير موقعة 8 0 … 255
بايت 8 0 … 255
كثافة العمليات 16 -32768 … 32767
كثافة العمليات غير الموقعة 16 0 … 65535
كلمة 16 0 … 65535
طويل 32 -2147483648 … 2147483647
غير موقعة طويلة 32 0 … 4294967295
قصير 16 -32768 … 32767
يطفو 32 -3.4028235+38 … 3.4028235+38
مزدوج 32 -3.4028235+38 … 3.4028235+38

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

إعلان المتغيرات.

يتم تحديد نوع البيانات، متبوعاً باسم المتغير.

كثافة العمليات س؛ // تعريف متغير اسمه x من النوع int
تعويم widthBox؛ // تعريف المتغير المسمى widthBox من النوع float

يجب الإعلان عن جميع المتغيرات قبل استخدامها.

يمكن الإعلان عن المتغير في أي مكان في البرنامج، لكن هذا يحدد أي كتل البرامج يمكنها استخدامه. أولئك. المتغيرات لها نطاقات.

  • تعتبر المتغيرات المعلنة في بداية البرنامج، قبل وظيفة void setup()، عالمية ومتاحة في أي مكان في البرنامج.
  • يتم الإعلان عن المتغيرات المحلية داخل الدوال أو الكتل مثل حلقة for، ولا يمكن استخدامها إلا ضمن الكتل المعلنة. من الممكن أن يكون لديك متغيرات متعددة بنفس الاسم ولكن بنطاقات مختلفة.

الوضع الصحيح؛ // متغير متاح لجميع الوظائف

الإعداد باطل() (
// كتلة فارغة، لا توجد إعدادات أولية مطلوبة
}

حلقة فارغة() (

عدد طويل؛ // متغير العدد متاح فقط في وظيفة الحلقة ().

ل(int i=0; i< 10;) // переменная i доступна только внутри цикла
{
أنا++;
}
}

عند الإعلان عن متغير، يمكنك تعيين قيمته الأولية (التهيئة).

كثافة العمليات س = 0؛ تم الإعلان عن المتغير x بالقيمة الأولية 0
شار د = 'أ'; // تم الإعلان عن المتغير d بقيمة أولية تساوي رمز الحرف "a"

للعمليات الحسابية مع أنواع مختلفةيتم تحويل أنواع البيانات تلقائيا. لكن من الأفضل دائمًا استخدام تحويل صريح.

كثافة العمليات س؛ // متغير كثافة العمليات
شار ذ؛ // متغير شار
كثافة العمليات ض؛ // متغير كثافة العمليات

ض = س + (int)y؛ // يتم تحويل المتغير y بشكل صريح إلى int

عمليات حسابية.

عمليات العلاقة.

العمليات المنطقية.

العمليات على المؤشرات.

عمليات البت.

& و
| أو
^ حصري أو
~ الانعكاس
<< تحول اليسار
>> التحول إلى اليمين

عمليات الاحالة المختلطة

اختيار الخيارات، وإدارة البرنامج.

إذا المشغليختبر الشرط بين قوسين وينفذ التعبير اللاحق أو الكتلة بين الأقواس المتعرجة إذا كان الشرط صحيحًا.

if (x == 5) // إذا x=5، فسيتم تنفيذ z=0
ض=0;

إذا (س > 5) // إذا س >
( ض=0; ص=8; )

إذا كان غير ذلكيسمح لك بالاختيار بين خيارين.

if (x > 5) // if x > 5، فسيتم تنفيذ الكتلة z=0, y=8;
{
ض=0;
ص=8;
}

{
ض=0;
ص=0;
}

آخر إذا- يسمح لك بإجراء اختيارات متعددة

if (x > 5) // if x > 5، فسيتم تنفيذ الكتلة z=0, y=8;
{
ض=0;
ص=8;
}

وإلا إذا (x > 20) // إذا كان x > 20، فسيتم تنفيذ هذه الكتلة
{
}

آخر // وإلا فسيتم تنفيذ هذه الكتلة
{
ض=0;
ص=0;
}

حالة التبديل- متعدد الخيارات. يسمح لك بمقارنة متغير (في المثال x) مع عدة ثوابت (في المثال 5 و10) وتنفيذ كتلة يكون فيها المتغير مساويًا للثابت.

التبديل (x) (

الحالة 5:
// يتم تنفيذ الكود إذا كان x = 5
استراحة؛

الحالة 10:
// يتم تنفيذ الكود إذا كان x = 10
استراحة؛

تقصير:
// يتم تنفيذ الكود في حالة عدم تطابق أي من القيم السابقة
استراحة؛
}

لحلقة. يتيح لك التصميم تنظيم الحلقات بعدد معين من التكرارات. بناء الجملة يبدو مثل هذا:

من أجل (الإجراء قبل بدء الحلقة؛
حالة استمرار الحلقة؛
الإجراء في نهاية كل تكرار) (

// رمز الجسم للحلقة

مثال على حلقة من 100 تكرار.

ل (ط = 0؛ ط< 100; i++) // начальное значение 0, конечное 99, шаг 1

{
مجموع = مجموع + أنا؛
}

حائط اللوب. يسمح لك المشغل بتنظيم الحلقات مع البناء:

بينما (تعبير)
{
// رمز الجسم للحلقة
}

تعمل الحلقة طالما أن التعبير الموجود بين قوسين صحيح. مثال على حلقة لمدة 10 تكرارات.

س = 0;
بينما (x< 10)
{
// رمز الجسم للحلقة
س++;
}

افعل اثناء- حلقة مع شرط عند الخروج.

يفعل
{
// رمز الجسم للحلقة
) بينما (التعبير)؛

يتم تشغيل الحلقة طالما أن التعبير صحيح.
استراحة- عامل خروج الحلقة. تستخدم لمقاطعة تنفيذ حلقات for، while، do while.

س = 0;
بينما (x< 10)
{
إذا (ض > 20) استراحة؛ // إذا كان z > 20، قم بالخروج من الحلقة
// رمز الجسم للحلقة
س++;
}

اذهب إلى- مشغل انتقال غير مشروط.

gotometka1; // انتقل إلى metka1
………………
ميتكا1:

يكمل- تخطي العبارات حتى نهاية نص الحلقة.

س = 0;
بينما (x< 10)
{
// رمز الجسم للحلقة
إذا استمر (ض > 20)؛ // إذا كان z > 20، فارجع إلى بداية نص الحلقة
// رمز الجسم للحلقة
س++;
}

المصفوفات.

المصفوفة هي منطقة ذاكرة يتم فيها تخزين عدة متغيرات بشكل تسلسلي.

يتم الإعلان عن المصفوفة على النحو التالي:

الأعمار كثافة العمليات؛ // مجموعة من 10 اكتب المتغيراتكثافة العمليات

تعويم الوزن // مجموعة من 100 متغير عائم

عند الإعلان عنها، يمكن تهيئة المصفوفات:

الأعمار = (23، 54، 34، 24، 45، 56، 23، 23، 27، 28)؛

يتم الوصول إلى متغيرات المصفوفة بهذه الطريقة:

س = الأعمار؛ // x يتم تعيين القيمة من العنصر الخامس في المصفوفة.
الأعمار = 32؛ // تم تعيين العنصر التاسع من المصفوفة على 32

يكون ترقيم عناصر المصفوفة دائمًا من الصفر.

المهام.

تتيح لك الوظائف تنفيذ نفس الإجراءات باستخدام بيانات مختلفة. الوظيفة لديها:

  • الاسم الذي تسمى به؛
  • الوسائط - البيانات التي تستخدمها الدالة لإجراء الحساب؛
  • نوع البيانات التي ترجعها الدالة.

يصف وظيفة معرفة من قبل المستخدم خارج وظائف الإعداد () والحلقة ().

الإعداد باطل() (
// يتم تنفيذ الكود مرة واحدة عند بدء تشغيل البرنامج
}

حلقة فارغة() (
// الكود الرئيسي، يتم تنفيذه في حلقة
}

// إعلان وظيفة مخصصة تسمى functionName
اكتب اسم الوظيفة (اكتب الوسيطة 1، اكتب الوسيطة 1، ...، اكتب الوسيطة)
{
// جسم الوظيفة
يعود()؛
}

مثال على دالة تحسب مجموع مربعات وسيطتين.

int sumQwadr(int x, int y)
{
return(x* x + y*y);
}

يتم استدعاء الوظيفة على النحو التالي:

د= 2; ب = 3؛
z= sumQwadr(d, b); // z سيكون مجموع مربعات المتغيرين d وb

يمكن أن تكون الوظائف مدمجة أو مخصصة أو مكونًا إضافيًا.

قصير جدًا، لكن هذه البيانات يجب أن تكون كافية لبدء كتابة برامج C لأنظمة Arduino.

آخر شيء أريد أن أخبرك به في هذا الدرس هو كيف جرت العادة على تنسيق البرامج في لغة C. أعتقد أنك إذا كنت تقرأ هذا الدرس لأول مرة، فيجب عليك تخطي هذا القسم والعودة إليه لاحقًا، عندما تكون قد انتهيت من ذلك. شيء لتنسيق.

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

الأسماء بلغة C

يجب كتابة الأسماء التي تمثل أنواع البيانات بأحرف مختلطة. يجب أن يكون الحرف الأول من الاسم بالأحرف الكبيرة (الأحرف الكبيرة).

الإشارة، عدد الوقت

يجب كتابة المتغيرات بأسماء مختلطة، بحيث يكون الحرف الأول صغيرًا (أحرف صغيرة).

فئة: . يمكنك وضع إشارة مرجعية عليه.

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

يمكن تقسيم بيئات البرمجة للوحات الاردوينو إلى الأنواع التالية:

  1. "دفاتر الملاحظات" المحدثة
  2. بيئات تطوير النص
  3. البيئات الرسومية التي تصور بنية الكود.
  4. البيئات الرسومية التي تعرض التعليمات البرمجية كرسومات.
  5. بيئات البرمجة المرئية التي لا تستخدم التعليمات البرمجية.
دعونا ننظر إلى كل نوع.

"دفاتر الملاحظات" المحدثة

يتضمن هذا النوع بيئة برمجة Arduino-IDE الأصلية، بالإضافة إلى العديد من نسخها.

تم تصميم برنامج وحدة التحكم بلغة المعالجة/التوصيل، وهي إحدى لهجات لغة C (على الأرجح C++). هذه البيئة هي في الأساس محرر نص عادي مع القدرة على تحميل التعليمات البرمجية المكتوبة في وحدة التحكم

بيئات تطوير النص

البديل لـ Arduino IDE هو بيئة التطوير من الشركة المصنعة للمتحكم الدقيق Atmel - AVRStudio.

تتم البرمجة فيه بلغة C النقية، وهي تحتوي بالفعل على العديد من الميزات وهي أشبه بـ IDEs الجادة للغات البرمجة "الحقيقية".

تم تصميم هذين النوعين من البرامج للمبرمجين ذوي الخبرة الذين يعرفون اللغة جيدًا ويمكنهم إنشاء مشاريع جادة باستخدامهما.

البيئات الرسومية التي تصور بنية الكود.

هذه هي البرامج التي، في جوهرها، هي امتدادات تنسيق للملفات العادية محرر النصشفرة. فيه البرنامج مكتوب أيضًا بلغة C ، ولكن في إصدار أكثر ملاءمة. الآن هناك الكثير من هذه البيئات، الأمثلة الأكثر وضوحا: Scratch، S4A، Ardublock. إنها مناسبة جدًا للمبتدئين في برمجة C لأنها تقوم بعمل رائع في إظهار بنية اللغة وصياغتها. لكن بالنسبة للمشاريع الكبيرة والجادة، يتبين أن البرنامج مرهق.

البيئات الرسومية التي تعرض التعليمات البرمجية كرسومات

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

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

بيئات البرمجة المرئية التي لا تستخدم التعليمات البرمجية.

تطبق هذه البرامج مبدأ تم استخدامه لسنوات عديدة من قبل جميع الشركات المصنعة لوحدات التحكم الصناعية تقريبًا. يتكون من إنشاء برامج لوحدة التحكم بلغة FBD أو LAD. بالمعنى الدقيق للكلمة، فهي ليست لغات على هذا النحو. هذه هي بالأحرى بيئات رسومية لرسم الدوائر أو المخططات المنطقية. دعونا نتذكر أن المعالجات لم تكن دائمًا معالجات دقيقة، ولكن تم إنشاؤها على أساس الرقائق الرقمية. ولذلك، فإن أولئك الذين اعتادوا على العمل مع التكنولوجيا الرقمية سوف يستمتعون بالعمل عليها أكثر من كتابة التعليمات البرمجية بلغات البرمجة الكلاسيكية. ومن أمثلة هذه البرامج مشروعا Horizont وFLProg. تعتبر البرامج من هذا النوع مناسبة تمامًا لدراسة بناء تكنولوجيا النبض والتتابع وإنشاء مشاريع جادة.


وأخيرا، بطل هذه المدونة، مشروع FLProg.

منذ أن كنت أعمل كمطور لأنظمة التحكم في العمليات لسنوات عديدة، حاولت أن أجمع في برنامج FLProg كل ما أعجبني أكثر في البيئات من الشركات الرائدة في مجال المعدات الصناعية (Tia-Portal، Zelio Soft، Logo Soft Comfort).
يتيح لك البرنامج إنشاء مخططات في نوعين: المخططات الوظيفية (FBD) ومخططات الترحيل (LAD).

FBD (Function Block Diagram) هي لغة برمجة رسومية وفقًا لمعيار IEC 61131-3. يتكون البرنامج من قائمة من الدوائر المنفذة بشكل تسلسلي من الأعلى إلى الأسفل. عند البرمجة، يتم استخدام مجموعات من كتل المكتبة. الكتلة (العنصر) هي روتين فرعي أو وظيفة أو كتلة الوظيفة(و، أو، لا، المشغلات، الموقتات، العدادات، وحدات معالجة الإشارات التناظرية، العمليات الحسابية، وما إلى ذلك). كل دائرة فردية عبارة عن تعبير يتكون بيانياً من عناصر فردية. يتم توصيل الكتلة التالية بمخرج الكتلة، وتشكيل دائرة. داخل السلسلة، يتم تنفيذ الكتل بدقة بالترتيب الذي تم توصيلها به. تتم كتابة نتيجة حساب الدائرة إلى متغير داخلي أو إرسالها إلى إخراج وحدة التحكم.



مخطط السلم (LD، LAD، RKS) هو لغة منطق التتابع (السلم). يعد بناء جملة اللغة مناسبًا لاستبدال الدوائر المنطقية المصنوعة باستخدام تقنية الترحيل. تستهدف اللغة متخصصي الأتمتة العاملين في المؤسسات الصناعية. يوفر واجهة مرئية لمنطق تشغيل وحدة التحكم، مما يسهل ليس فقط مهام البرمجة والتشغيل، ولكن أيضًا استكشاف الأخطاء وإصلاحها بسرعة للمعدات المتصلة بوحدة التحكم. يحتوي البرنامج بلغة منطق الترحيل على واجهة رسومية مرئية وبديهية لمهندسي الكهرباء، تمثل العمليات المنطقية كدائرة كهربائية ذات اتصالات مغلقة ومفتوحة. يتوافق تدفق أو غياب التيار في هذه الدائرة مع نتيجة عملية منطقية (صحيح - إذا كان التيار يتدفق؛ خطأ - إذا كان التيار لا يتدفق). العناصر الرئيسية للغة هي جهات الاتصال، والتي يمكن تشبيهها مجازيًا بزوج من جهات اتصال التتابع أو الأزرار. يتم تعريف زوج من جهات الاتصال بمتغير منطقي، ويتم تحديد حالة هذا الزوج بقيمة المتغير. هناك عادة عناصر اتصال مغلقة ومفتوحة عادة، والتي يمكن مقارنتها بالأزرار المغلقة عادة والمفتوحة عادة في الدوائر الكهربائية.

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

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

حاليًا، يدعم البرنامج الإصدارات التالية من Arduino: Arduino Diecimila، Arduino Duemilanove، Arduino Leonardo، Arduino Lilypad، Arduino Mega 2560، Arduino Micro، Arduino Mini، Arduino Nano (ATmega168)، Arduino Nano (ATmega328)، Arduino Pro Mini، Arduino برو (ATmega168)، اردوينو برو (ATmega328)، اردوينو أونو. بالإضافة إلى ذلك، ظهرت لوحة Intel Galileo gen2 مؤخرًا في قائمة وحدات التحكم المدعومة. في المستقبل، من المخطط توسيع هذه القائمة، وربما إضافة لوحات تعتمد على وحدات تحكم STM.

المشروع في برنامج FLProg عبارة عن مجموعة من اللوحات الأصلية، يتم تجميع وحدة كاملة في كل منها المخطط العام. لسهولة الاستخدام، كل لوحة لها اسم وتعليقات. كما يمكن طي كل لوحة (لتوفير المساحة في منطقة العمل عند الانتهاء من العمل عليها) وفتحها.

التكوين الحالي لمكتبة العناصر للغة FBD.

ديكور

  • نقش
  • صورة
العناصر الأساسية
  • جدول الدولة
كتل خاصة
محفزات
الموقتات
عدادات
الرياضيات
الجبر
مقارنة
UART
  • إرسال إلى UART
  • الاستلام من UART
  • إرسال متغير إلى UART
  • تلقي متغير من UART
يُحوّل
المحركات
  • أجهزة السيارات
  • محرك خطوة
ساعة الوقت الحقيقي
يعرض
  • عرض على شريحة HD44780
  • عرض الإضاءة الخلفية على شريحة HD44780 I2C
سلاسل
  • إضافة سلسلة
  • مقارنة السلسلة
  • طول الخط
  • البحث عن سلسلة فرعية
  • الحصول على سلسلة فرعية
  • الحصول على حرف من السلسلة
  • إلحاق Char بالسلسلة
المصفوفات
  • كتابة عنصر إلى مصفوفة
  • الحصول على عنصر المصفوفة
  • مجموع عناصر المصفوفة
  • البحث عن عنصر في مصفوفة
أجهزة الاستشعار
بطاقة الذاكرة
  • تحميل ملف من بطاقة SD
  • كتابة متغير على بطاقة SD
نوع التحويل
  • تحويل السلسلة
  • -> بايت
  • -> شار
رقائق التوسع
  • موسع الرصاص 74HC595
  • سائق MAX7219 LED
عمليات البت
  • فك التشفير
  • التشفير
  • قراءة قليلا
  • تسجيل قليلا
متنوع
  • لوحة مفاتيح المصفوفة
  • مكبر صوت بيزو
  • مسح حافلة OneWare
إيبروم
  • الكتابة إلى إيبروم
  • القراءة من إيبروم
مجال الاتصالات
  • ResiveVariableFromCommunication
  • صفحة خادم الويب
  • SendVariableFromCommunication
  • العميل على شبكة الإنترنت
خدمات جاهزة
  • narodmon.ru
  • goplusplatform.com

التكوين الحالي لمكتبة العناصر للغة LAD.

ديكور

  • نقش
  • صورة
الكتل الأساسية
  • اتصال
  • لفه
  • مكافحة ترتد
  • اختيار الحافة الرائدة
  • جدول الدولة
مرحلات خاصة
  • تتابع ثنائي الاستقرار
  • تتابع الوقت
  • مولد كهرباء
  • تتابع المقارنة
الجبر
  • عشوائي
الكتل التناظرية
  • التحجيم
  • الرياضيات
  • عداد
  • التبديل التناظرية
  • العديد من التبديل واحد
  • واحد إلى العديد من التبديل
  • مدخلات وحدة التحكم التناظرية
  • إخراج وحدة التحكم التناظرية
  • إدخال موصل التناظرية
  • إخراج موصل التناظرية
  • عداد السرعة
UART
  • إرسال إلى UART
  • الاستلام من UART
  • إرسال متغير إلى UART
  • تلقي متغير من UART
المحركات
  • أجهزة السيارات
  • السائر المحركات
ساعة الوقت الحقيقي
  • للحصول على البيانات
  • إنذار
  • تحديد الوقت
يعرض
  • عرض على شريحة HD44780
  • عرض وحدة التحكم في الإضاءة الخلفية على شريحة HD4480 I2C
  • كتلة فك تشفير المؤشر المكونة من سبعة أجزاء
سلاسل
  • إضافة سلسلة
  • مقارنة السلسلة
  • طول الخط
  • البحث عن سلسلة فرعية
  • الحصول على سلسلة فرعية
  • الحصول على حرف من السلسلة
  • إلحاق Char بالسلسلة
المصفوفات
  • كتابة عنصر إلى مصفوفة
  • الحصول على عنصر المصفوفة
  • مجموع عناصر المصفوفة
  • البحث عن عنصر في مصفوفة
أجهزة الاستشعار
  • جهاز تحديد المدى بالموجات فوق الصوتية HC-SR04
  • مستشعر درجة الحرارة والرطوبة DHT11 (DHT21, DHT22)
  • مستشعر درجة الحرارة DS18x2x
  • استجابة للأشعة تحت الحمراء
  • بمب-085
  • BH1750 مقياس الضوء
بطاقة الذاكرة
  • كتابة متغير على بطاقة SD
  • تحميل ملف من بطاقة SD
نوع التحويل
  • تحويل السلسلة
  • تحويل تعويم إلى عدد صحيح
  • -> بايت
  • -> شار
رقائق التوسع
  • موسع الرصاص 74HC595
  • سائق MAX7219 LED
عمليات البت
  • التشفير
  • فك التشفير
  • قراءة قليلا
  • تسجيل قليلا
متنوع
  • لوحة مفاتيح المصفوفة
  • مكبر صوت بيزو
  • مسح حافلة OneWare
إيبروم
  • الكتابة إلى إيبروم
  • القراءة من إيبروم
مجال الاتصالات
  • منع إرسال متغير عبر الاتصالات
  • استقبال متغير عبر الاتصالات
  • صفحة على الإنترنتالخوادم
  • العميل على شبكة الإنترنت
خدمات جاهزة
  • نقل البيانات إلى narodmon.ru
  • التحكم عن بعد عبر RemoteXY

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

يمكنك المساعدة وتحويل بعض الأموال لتطوير الموقع

مرحبًا! أنا أليكين ألكسندر سيرجيفيتش، مدرس التعليم الإضافي، وأقود نوادي "الروبوتات" و"هندسة الراديو" في مركز الشباب وتكنولوجيا الشباب في لابينسك. أود أن أتحدث قليلاً عن طريقة مبسطة لبرمجة الاردوينو باستخدام برنامج ArduBlock.

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

نعم، قد يقول شخص ما أن برنامج Scratch لا يزال موجودًا وهو أيضًا بيئة رسومية بسيطة جدًا لبرمجة Arduino. لكن برنامج Scratch لا يقوم بوميض الاردوينو، ولكنه يتحكم فيه فقط كابل USB. يعتمد Arduino على الكمبيوتر ولا يمكنه العمل بشكل مستقل. عند إنشاء مشاريعك الخاصة، فإن الاستقلالية هي الشيء الرئيسي بالنسبة لـ Arduino، خاصة عند إنشاء أجهزة روبوتية.

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

إذًا، ما هو ArduBlock؟كما قلت سابقًا، هذه بيئة برمجة رسومية. تمت ترجمته بالكامل تقريبًا إلى اللغة الروسية. لكن ما يميز ArduBlock ليس هذا فحسب، بل أيضًا حقيقة أن برنامج ArduBlock الذي كتبناه يتحول إلى كود Arduino IDE. هذا البرنامج مدمج في بيئة برمجة Arduino IDE، أي أنه مكون إضافي.

يوجد أدناه مثال على مصباح LED الوامض وبرنامج محول في Arduino IDE. كل العمل مع البرنامج بسيط للغاية ويمكن لأي طالب فهمه.

نتيجة العمل مع البرنامج لا يمكنك برمجة الاردوينو فحسب بل يمكنك أيضًا دراسة الأوامر التي لا نفهمها تنسيق النص Arduino IDE، ولكن إذا كنت كسولًا جدًا بحيث لا تستطيع كتابة الأوامر القياسية، فيمكنك استخدام الماوس بسرعة لرسم برنامج بسيط في ArduBlok، وتصحيح أخطائه في Arduino IDE.

لتثبيت ArduBlok، يجب عليك أولاً تنزيل Arduino IDE وتثبيته من موقع Arduino الرسمي وفهم الإعدادات عند العمل معه. لوحة اردوينوأونو. كيفية القيام بذلك موصوفة على نفس الموقع أو على Amperka، أو شاهده على YouTube. حسنًا، عندما تتعرف على كل هذا، ستحتاج إلى تنزيل ArduBlok من الموقع الرسمي هنا. لا أنصح بتنزيل أحدث الإصدارات، فهي معقدة جدًا للمبتدئين، لكن الإصدار من 12-07-2013 هو الأفضل، وهذا الملف هو الأكثر شهرة هناك.

ثم أعد تسمية الملف الذي تم تنزيله إلى ardublock-all وفي مجلد "المستندات". نقوم بإنشاء المجلدات التالية: Arduino > أدوات > ArduBlockTool > أداة وفي الأخير نرمي الملف الذي تم تنزيله وإعادة تسميته. يعمل ArduBlok على جميع أنظمة التشغيل، حتى على Linux، وقد قمت بتجربته شخصيًا على XP وWin7 وWin8، وجميع الأمثلة مخصصة لـ Win7. تثبيت البرنامج هو نفسه لجميع الأنظمة.

حسنًا، بكل بساطة، قمت بإعداد أرشيف على قرص 7z Mail، وستجد مجلدين عند تفريغهما. في واحدة بالفعل برنامج العمل Arduino IDE، وفي مجلد آخر يجب إرسال المحتويات إلى مجلد المستندات.

للعمل في ArduBlok، تحتاج إلى تشغيل Arduino IDE. ثم نذهب إلى علامة التبويب "الأدوات" وهناك نجد عنصر ArduBlok ونضغط عليه - وها هو هدفنا.

الآن دعونا نلقي نظرة على واجهة البرنامج. كما تفهم بالفعل، لا توجد إعدادات فيه، ولكن هناك الكثير من الرموز للبرمجة وكل منها يحمل أمرا بتنسيق نص Arduino IDE. تحتوي الإصدارات الجديدة على المزيد من الرموز، لذا فإن فهم أحدث إصدار من ArduBlok أمر صعب ولا تتم ترجمة بعض الرموز إلى اللغة الروسية.

في قسم "الإدارة" سنجد مجموعة متنوعة من الدورات.

في قسم "المنافذ"، يمكننا إدارة قيم المنافذ، بالإضافة إلى باعث الصوت أو المؤازرة أو مستشعر القرب بالموجات فوق الصوتية المتصل بها.

في قسم "الأرقام/الثوابت"، يمكننا تحديد القيم الرقمية أو إنشاء متغير، ولكن من غير المرجح أن تستخدم ما هو أدناه.

في قسم "المشغلين" سنجد جميع عوامل المقارنة والحساب الضرورية.

يستخدم قسم الأدوات المساعدة بشكل أساسي الرموز الموقوتة.

"TinkerKit Bloks" هو القسم المخصص لأجهزة استشعار TinkerKit التي تم شراؤها. نحن، بالطبع، ليس لدينا مثل هذه المجموعة، لكن هذا لا يعني أن الرموز ليست مناسبة للمجموعات الأخرى، على العكس من ذلك، من المريح جدًا أن يستخدم الرجال أيقونات مثل تشغيل مؤشر LED أو زر. وتستخدم هذه العلامات في جميع البرامج تقريبا. لكن لها خصوصية - عند تحديدها، توجد أيقونات غير صحيحة تشير إلى المنافذ، لذلك تحتاج إلى إزالتها واستبدال الرمز من قسم "الأرقام/الثوابت" في الجزء العلوي من القائمة.

"DF Robot" - يتم استخدام هذا القسم في حالة وجود المستشعرات المحددة فيه، ويتم العثور عليها أحيانًا. ومثالنا اليوم ليس استثناءً، لدينا "مفتاح IR قابل للتعديل" و"مستشعر الخط". "حساس الخط" يختلف عن الذي في الصورة فهو من شركة Amperka. تصرفاتهم متطابقة، لكن مستشعر Ampere أفضل بكثير، لأنه يحتوي على منظم حساسية.

"Seedstudio Grove" - ​​لم أستخدم المستشعرات الموجودة في هذا القسم مطلقًا، على الرغم من وجود أذرع التحكم فقط. في الإصدارات الجديدة تم توسيع هذا القسم.

والقسم الأخير هو "مجموعة الرابط". لم أصادف أجهزة الاستشعار المعروضة فيه.

أود أن أعرض مثالاً لبرنامج على روبوت يتحرك على طول شريط. الروبوت بسيط جدًا، سواء من حيث التجميع أو الشراء، ولكن أول الأشياء أولاً. لنبدأ باقتناءها وتجميعها.

هنا مجموعة الأجزاء نفسها، تم شراء كل شيء على موقع Amperka.

  1. AMP-B001 Motor Shield (قناتان، 2 أ) 1890 روبل روسي
  2. AMP-B017 درع ترويكا 1690 روبل روسي
  3. AMP-X053 حجرة البطارية 3×2 AA 1 60 RUR
  4. AMP-B018 مستشعر الخط الرقمي 2580 روبل روسي
  5. ROB0049 منصة MiniQ ذات العجلتين 1,1890 روبل روسي
  6. SEN0019 مستشعر العوائق بالأشعة تحت الحمراء RUB 1,390
  7. FIT0032 حامل لجهاز استشعار العوائق بالأشعة تحت الحمراء RUB 1,90
  8. A000066 اردوينو أونو 1 1150 رور

أولاً، دعونا نجمع المنصة ذات العجلات ونلحم الأسلاك بالمحركات.

بعد ذلك، سنقوم بتثبيت رفوف لتركيب لوحة Arduino UNO، والتي تم أخذها من اللوحة الأم القديمة أو غيرها من التركيبات المشابهة.

ثم نعلق لوحة Arduino UNO على هذه الرفوف، لكن لا يمكننا ربط مسمار واحد - الموصلات في الطريق. يمكنك، بالطبع، فكها، لكن هذا حسب تقديرك.

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

الآن نقوم بتثبيت أجهزة استشعار الخط الرقمي، هنا سيتعين عليك البحث عن زوج من البراغي و 4 صواميل، نقوم بتثبيت صامولتين بين المنصة نفسها ومستشعر الخط، ونصلح المستشعرات مع الباقي.

بعد ذلك نقوم بتثبيت Motor Shield، أو يمكنك تسميته سائق المحرك. في حالتنا، انتبه إلى العبور. لن نستخدم مصدر طاقة منفصلًا للمحركات، لذلك يتم تثبيته في هذا الموضع. الجزء السفلي مغلق بشريط كهربائي لمنع حدوث دوائر قصيرة عرضية من موصل Arduino UNO USB، في حالة حدوث ذلك.

نقوم بتثبيت Troyka Shield أعلى Motor Shield. إنه ضروري لراحة توصيل أجهزة الاستشعار. جميع المستشعرات التي نستخدمها رقمية، لذلك يتم توصيل مستشعرات الخط بالمنفذين 8 و9، كما يطلق عليهما أيضًا الدبابيس، كما يتم توصيل مستشعر العوائق بالأشعة تحت الحمراء بالمنفذ 12. تأكد من ملاحظة أنه لا يمكنك استخدام المنافذ 4، 5، 6، 7 حيث يتم استخدامها بواسطة Motor Shield للتحكم في المحركات. حتى أنني قمت برسم هذه المنافذ خصيصًا باستخدام قلم تحديد أحمر حتى يتمكن الطلاب من اكتشاف ذلك.

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

هناك نوعان من توصيلات حجرة البطارية. أول توصيل للأسلاك بـ Troyka Shield. من الممكن أيضًا لحام قابس الطاقة وتوصيله بلوحة Arduino UNO نفسها.

الروبوت لدينا جاهز. قبل أن تبدأ البرمجة، سوف تحتاج إلى معرفة كيفية عمل كل شيء، وهي:
- المحركات:
يتم استخدام المنفذين 4 و5 للتحكم في محرك واحد، والمنفذين 6 و7 في الآخر؛
نقوم بتنظيم سرعة دوران المحركات باستخدام PWM على المنفذين 5 و6؛
للأمام أو للخلف عن طريق إرسال الإشارات إلى المنافذ 4 و7.
- أجهزة الاستشعار:
نحن جميعًا رقميون، لذا فهم يعطون إشارات منطقية على شكل 1 أو 0؛
ومن أجل ضبطها، لديها منظمات خاصة، وبمساعدة مفك البراغي المناسب يمكن معايرتها.

يمكن العثور على التفاصيل في Amperke. لماذا هنا؟ لأن هناك الكثير من المعلومات حول العمل مع Arduino.

حسنًا، ربما نظرنا إلى كل شيء بشكل سطحي، ودرسناه، وبالطبع قمنا بتجميع الروبوت. الآن يجب برمجته، ها هو - البرنامج الذي طال انتظاره!

وتحويل البرنامج إلى Arduino IDE:

إعداد الفراغ () (pinMode (8، INPUT)؛ pinMode (12، INPUT)؛ pinMode (9، INPUT)؛ pinMode (4، OUTPUT)؛ pinMode (7، OUTPUT)؛ pinMode (5، OUTPUT)؛ pinMode (6) ، OUTPUT)؛ ) حلقة باطلة() ( if (digitalRead(12)) ( if (digitalRead(8)) ( if (digitalRead(9)) ( digitalWrite(4 , HIGH); AnalogWrite(5, 255);analogWrite( 6، 255)؛ الكتابة الرقمية (7 ، عالية)؛ ) آخر ( الكتابة الرقمية (4 ، عالية)؛ التناظرية (5، 255)؛ التناظرية (6، 50)؛ الكتابة الرقمية (7، منخفضة)؛ ) ) آخر ( إذا (القراءة الرقمية (9)) ( الكتابة الرقمية (4، منخفض)؛ التناظرية (5، 50)؛ التناظرية (6، 255)؛ الكتابة الرقمية (7، عالية)؛ ) آخر ( الكتابة الرقمية (4، عالية)؛ التناظرية (5، 255)؛ AnalogWrite(6, 255); digitalWrite(7 , HIGH); ) ) ) آخر ( digitalWrite(4 , HIGH); AnalogWrite(5, 0); AnalogWrite(6, 0); digitalWrite(7 , HIGH); ) )

في الختام، أريد أن أقول إن هذا البرنامج هو مجرد هبة من السماء للتعليم، حتى للدراسة الذاتية، وسوف يساعدك على تعلم أوامر Arduino IDE. أهم ما يميزه هو أن هناك أكثر من 50 رمز تثبيت، ويبدأ في "الخلل". نعم، في الواقع، هذا هو تسليط الضوء، لأن البرمجة فقط على ArduBlok طوال الوقت لن تعلمك البرمجة في Arduino IDE. يمنحك ما يسمى بـ "الخلل" الفرصة للتفكير ومحاولة تذكر الأوامر الخاصة بالتصحيح الدقيق لأخطاء البرامج.

أتمنى لك النجاح.

سيرجي جلوشينكو

حاليًا، بدأ العالم طفرة في استخدام المتحكمات الدقيقة في العديد من المنتجات محلية الصنع والشركات الناشئة. في الواقع، انخفضت أسعار وحدات التحكم الدقيقة، لكن قدراتها تنمو باستمرار. وقد تعلم أصدقاؤنا الصينيون صنع الأجهزة الطرفية لهم، وهم يبيعونها أيضًا بأسعار سخيفة. لكن مع برمجة المتحكمات الدقيقة، كل شيء ليس ورديًا...

كيف بدأ كل شيء وكيف تطور

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

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

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

كيف هي الأمور الآن؟

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

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

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

في الوقت نفسه، كانت هناك بيئات برمجة مُكيَّفة منذ فترة طويلة لتناسب مهندس الإلكترونيات العادي، أو مجرد كهربائي. أعني بيئات البرمجة لوحدات التحكم الصناعية. بلك. أنها تسمح لك بإنشاء برمجةلوحدات التحكم في اللغات FBDو فتى. بالمعنى الدقيق للكلمة، فهي ليست لغات على هذا النحو. هذه هي بالأحرى بيئات رسومية لرسم الدوائر أو المخططات المنطقية.

FBD (مخطط كتلة الوظيفة)

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

مخطط السلم (LD، LAD، RKS)


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

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

تتمتع شركات Siemens وABB وSchneider Electric... وجميع الشركات المصنعة للـ PLC تقريبًا ببيئة التطوير هذه. قد يبدو الحل الأمثل لمحبي الأعمال اليدوية. ولكن، كما هو الحال دائما، هناك "لكن". ترتبط جميع بيئات البرمجة هذه بوحدات تحكم صناعية من شركة مصنعة معينة. وأسعار وحدات التحكم هذه ليست ملهمة للغاية. من النادر جدًا أن تسمح لك أي ميزانية عائلية بشراء وحدة تحكم تكلف عشرات الآلاف من الروبلات.

لكن لوحات Arduino مثالية للأشخاص الذين يقومون بالأعمال اليدوية والحرفيين الذين كانت بلادنا دائمًا غنية بهم وستكون غنية. ولكن مرة أخرى "لكن". تمت برمجة هذه اللوحات بلغة C. بالنسبة لمعظم هؤلاء الأشخاص الأذكياء، ذوي الأذرع المستقيمة جدًا التي تنمو من المكان الصحيح، فإن لغة C هي الأبجدية الصينية. يمكنهم اختراع ورسم وتجميع وتصحيح وتشغيل الدوائر الأكثر تعقيدًا، ولكن إذا، ل، الحالة، الفراغ، وما إلى ذلك. - هذا ليس لهم. بالطبع، يمكنك قراءة التعليمات الموجودة على الإنترنت، والتجول لبعض الوقت، ووميض مؤشر LED باستخدام أحد الأمثلة. ولكن لتطبيق أكثر جدية، من الضروري إجراء دراسة مفصلة للغة. لماذا يحتاجون هذا؟

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

وبناء على كل هذه الحسابات تم إنشاء مشروع FLProg. الفكرة الرئيسية للمشروع هي الجمع بين مبادئ البرمجة الصناعية والتكلفة المنخفضة والراحة التي يوفرها Arduino. يقدم المشروع مستوى جديدًا من التجريد مع بيان جريء إلى حد ما -

لا تحتاج إلى معرفة لغات البرمجة لبرمجة المتحكمات الدقيقة!

والنتيجة هي أداة تسمح لأي شخص مطلع على الهندسة الكهربائية والإلكترونية بإنشاء مشاريعه الخاصة على Arduino، مما يسمح له بإنشاء منتج خاص به باستخدام هذه اللوحات.

يتكون المشروع من جزأين.

الجزء الأول هو تطبيق سطح المكتب FLProgوهي بيئة برمجة رسومية للوحات الاردوينو.

عند إنشاء مشروع جديد، سيُطلب منك تحديد لغة البرمجة التي ستنشئ بها المشروع ووحدة التحكم التي سيتم تنفيذ هذا المشروع عليها.

فيما يلي قائمة بألواح Arduino التي يدعمها البرنامج اليوم:

اردوينو ديسيميلا
اردوينو دويميلانوف
اردوينو ليوناردو
اردوينو ليليباد
اردوينو ميجا 2560
اردوينو مايكرو
اردوينو ميني
اردوينو نانو (ATmega168)
اردوينو نانو (ATmega328)
اردوينو برو ميني
اردوينو برو (ATmega168)
اردوينو برو (ATmega328)
اردوينو أونو

ومن المتوقع قريبًا إضافة جديدة إلى عائلة اللوحات المدعومة. إن Arduino Due في طريقها بالفعل، وقد وعد رئيس مختبر إنترنت الأشياء في جامعة ولاية سانت بطرسبرغ للاتصالات بلوحة Intel Galileo (الجيل الثاني). البروفيسور ماجستير بونش برويفيتش. بمرور الوقت، ومع تقدم عملية الاستحواذ، من المخطط دعم اللوحات المستندة إلى وحدات تحكم STM.

المشروع في FLProg عبارة عن مجموعة من اللوحات، يتم تجميع وحدة كاملة من الدائرة العامة على كل منها. لسهولة الاستخدام، كل لوحة لها اسم وتعليقات. يمكن أيضًا طي كل لوحة (لتوفير المساحة في منطقة العمل عند اكتمال العمل عليها) وفتحها. يشير المؤشر الأحمر الموجود في اسم اللوحة إلى وجود أخطاء في مخطط اللوحة.

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

فيما يلي قائمة بالكتل المتاحة اليوم.

العناصر الأساسية



كتل خاصة

محفزات



الموقتات


عدادات


الرياضيات



الجبر




مقارنة

ميناء كوم

يرسل
SendVariable
ReceiveVariable

يُحوّل


المحركات

أجهزة السيارات
محرك خطوة

ساعة الوقت الحقيقي


يعرض

عرض على شريحة HD44780
عرض الإضاءة الخلفية على شريحة HD44780 I2C

سلاسل

إضافة سلسلة

أجهزة الاستشعار



بطاقة الذاكرة

كتابة متغير على بطاقة SD
تحميل ملف من بطاقة SD

نوع التحويل

تحويل السلسلة

رقائق التوسع

موسع الرصاص 74HC595

عمليات البت

التشفير
فك التشفير
قراءة قليلا
تسجيل قليلا

متنوع

لوحة مفاتيح المصفوفة
الديناميكية الانضغاطية

الكتابة إلى إيبروم
القراءة من إيبروم

مجال الاتصالات

SendVariableFromCommunication
ResiveVariableFromCommunication
صفحة خادم الويب
العميل على شبكة الإنترنت

الكتل الأساسية

اتصال
لفه
مكافحة ترتد
اختيار الحافة الرائدة

مرحلات خاصة

تتابع ثنائي الاستقرار
تتابع الوقت
مولد كهرباء
تتابع المقارنة

الجبر

خطيئة
كوس
تان
عضلات المعدة
الأعلى
دقيقة
S.Q.
إس كيو آر تي
أسير الحرب
عشوائي

الكتل التناظرية

التحجيم
الرياضيات
عداد
التبديل التناظرية
العديد من التبديل واحد
واحد إلى العديد من التبديل
مدخلات وحدة التحكم التناظرية
إخراج وحدة التحكم التناظرية
إدخال موصل التناظرية
إخراج موصل التناظرية
عداد السرعة

منفذ الاتصال

نقل إلى كومبورت
نقل متغير عبر منفذ Comm
تلقي متغير عبر منفذ Comm

المحركات

أجهزة السيارات
السائر المحركات

ساعة الوقت الحقيقي

للحصول على البيانات
إنذار
تحديد الوقت

يعرض

عرض على شريحة HD44780
عرض وحدة التحكم في الإضاءة الخلفية على شريحة HD4480 I2C
كتلة فك تشفير المؤشر المكونة من سبعة أجزاء

سلاسل

إضافة سلسلة

أجهزة الاستشعار

جهاز تحديد المدى بالموجات فوق الصوتية HC-SR04
مستشعر درجة الحرارة والرطوبة DHT11 (DHT21, DHT22)
مستشعر درجة الحرارة DS18x2x
استجابة للأشعة تحت الحمراء
بمب-085

بطاقة الذاكرة

كتابة متغير على بطاقة SD
تحميل ملف من بطاقة SD

نوع التحويل

تحويل السلسلة
تحويل تعويم إلى عدد صحيح

رقائق التوسع

موسع الرصاص 74HC595

عمليات البت

التشفير
فك التشفير
قراءة قليلا
تسجيل قليلا

متنوع

لوحة مفاتيح المصفوفة
الديناميكية الانضغاطية

الكتابة إلى إيبروم
القراءة من إيبروم

مجال الاتصالات

منع إرسال متغير عبر الاتصالات
استقبال متغير عبر الاتصالات
صفحة خادم الويب
العميل على شبكة الإنترنت

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

قائمة الأجهزة الطرفية التي يدعمها البرنامج متاحة على موقع المشروع على الرابط:

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

توجد في الجزء العلوي من منطقة العمل قائمة بالعلامات (المتغيرات والمدخلات/المخرجات) (FBD) أو المعدات المثبتة (LAD). يتم نقل العلامات أو المعدات إلى الرسم التخطيطي بمجرد السحب والإفلات.

بعد الانتهاء من العمل في المشروع، يتم تجميعه. بعد التجميع، سيتم فتح برنامج "Arduino 1.5.7" تلقائيًا مع المخطط المحمل لمشروعك. في برنامج "Arduino IDE 1.5.7"، ستحتاج إلى الإشارة إلى رقم منفذ COM الذي تتصل به وحدة التحكم الخاصة بك، وتحديد نوعه، وتحميل المخطط إلى وحدة التحكم. يمكنك قراءة المزيد عن برنامج "Arduino IDE 1.5.7" على موقع Arduino.ru.

أين يمكنني تنزيل FLProg؟

كجزء من المشروع، يوجد موقع ويب http://flprog.ru. المهمة الرئيسية للموقع هي تمكين المستخدمين من التنزيل احدث اصدارالبرامج، والتعرف على الابتكارات والتغييرات.

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

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

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

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

Visuino عبارة عن بيئة رسومية مجانية مدعومة بوحدات التحكم الصناعية Controllino (PLCs) المتوافقة مع Arduino. فهو يجعل من الممكن إنشاء أنظمة أتمتة معقدة وحلول IoT (إنترنت الأشياء)، ويمكن القيام بذلك ببساطة عن طريق نقل الكتل المرئية وربطها. تقوم بيئة البرنامج تلقائيًا بإنشاء تعليمات برمجية لوحدات التحكم الصناعية.

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

تشمل مزايا Visuino مجموعة كبيرة من المكونات للوظائف الرياضية والمنطقية، والماكينات، وشاشات العرض، والإنترنت، وما إلى ذلك.

عندما تتم برمجة PLC، تطالبك البيئة الرسومية بذلك طريقة بأسعار معقولةاتصالات إلى وحدة التحكم. يمكن أن يكون هذا منفذًا تسلسليًا أو Ethernet أو Wi-Fi أو GSM.

أخيرًا، أصبح مشروعك جاهزًا: تم تسجيل جميع وحدات التحكم، وكل شيء يعمل. الآن، من خلال النقر على شعار Arduino الموجود على اللوحة العلوية، ستجبر Visuino على إنشاء أكواد لـ Arduino وفتح بيئة التطوير الخاصة به (Arduino IDE)، والتي من خلالها يمكنك بالفعل تجميع الكود وتحميله في PLC.

نصيحة. إذا كانت اللوحة المثبتة لا تتطابق مع Arduino الخاص بك، فيمكنك تغييرها باستخدام أمر Select Board.

تم إنشاء بيئة البرمجة الرسومية هذه في عام 2003، عندما قررت مجموعة من موظفي MIT Media Lab تطوير لغة برمجة يمكن للجميع الوصول إليها. ونتيجة لذلك، وبعد مرور بعض الوقت، تم تقديم سكراتش للجمهور.

ربما الأهم من ذلك كله أنها تبدو مثل لعبة الليغو. على الأقل المبدأ هو نفسه: إنها بيئة موجهة للكائنات يتم فيها تجميع البرامج من أجزاء ملونة ومشرقة. يمكن نقل هذه الأجزاء وتعديلها وجعلها تتفاعل بطرق مختلفة. أساس سكراتش هو كتل من الأوامر، مثل أجهزة الاستشعار والمتغيرات والحركة والصوت والمشغلين والمظهر والقلم والتحكم وما إلى ذلك. محرر الرسوماتيجعل من الممكن رسم أي كائن. لقد مرت أقل من خمس سنوات على إنشاء برنامج سكراتش، حيث ظهر مشروع سكراتش للاردوينو (المختصر بـ S4A)، والذي يسمح ببرمجة الاردوينو PLC.

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

نصيحة. يوجد مورد خاص للمبتدئين في Scratch: https://scratch-ru.info.

عندما يتقن شخص ما برنامج Scratch بالكامل، لكنه لم يصل بعد إلى Wiring، حيث تتم برمجة اللوحات المتوافقة مع Arduino، فقد حان الوقت للتوصية بأداة ArduBlock المكتوبة بلغة Java. إنه جيد بشكل خاص لأولئك المهتمين بالروبوتات.

ماهو الفرق؟ الحقيقة هي أن برنامج Scratch لا يعرف كيفية وميض Arduino، فهو يتحكم فقط في PLC الخاص به عبر USB. وبالتالي، لا يمكن للاردوينو أن يعمل بمفرده، لأنه يعتمد على الكمبيوتر.

في الواقع، يعد ArduBloсk مرحلة متوسطة بين Scratch للأطفال وVisuino الاحترافي تمامًا، وإن كان بسعر معقول، لأنه، مثل الأخير، لديه القدرة على وميض وحدات التحكم المتوافقة مع Arduino.

نصيحة. لا تنس تثبيت جهاز Java على جهاز الكمبيوتر الخاص بك. لا يستغرق الأمر الكثير من الوقت.

لذلك، المزيد من البيئات الرسومية - جيدة ومختلفة. نرجو أن يكون اردوينو معك.

الصورة: شركات التصنيع، pixabay.com هل أنت مهتم بالبرمجة؟ نعم، أنا مبرمج نعم، هذا شيء مثير للاهتمام للغاية ولست مهتمًا به، لكن طفلي لا، لست مهتمًا بهذا عرض النتائج جارٍ التحميل... اقرأ أيضًا: اردوينو: كيفية تحويل شاشة LCD في مقياس الحرارة

يمكن لجهاز Raspberry Pi 3 Model B+ mini-PC أن يصبح مركزًا للمنزل الذكي



أخبر الأصدقاء