- ما هو PlatformIO؟
- إعداد PlatformIO لـ Arduino Uno
- برمجة Arduino UNO باستخدام PlatformIO IDE
- برمجة لوحة STM32 باستخدام PlatformIO IDE
لطالما كان التطوير في Arduino و Arduino IDE سهلاً وممتعًا من خلال واجهة المستخدم البسيطة. Arduino IDE مفتوح المصدر ومجاني لاستخدام بيئة التطوير مع جميع الميزات مثل كتابة وتجميع وتحميل الكود إلى لوحات Arduino. يعتمد على Java ويعمل على أنظمة تشغيل رئيسية مثل Windows و OS X و Linux. ولكن مع كل بساطته ومجتمعه الكبير ، فإنه لا يحتوي على بعض الميزات التي سيحتاجها مطور متمرس للتطوير السريع الذي يمكن أن يقلل من فترة التطوير. هناك العديد من بيئات التطوير المتاحة لـ Arduino ، ولكن جميعها لها بعض المزايا والعيوب. اليوم ، سنبدأ ببيئة تطوير PlatformIO سهلة الاستخدام والتي أضافت ميزات مقارنة ببيئة Arduino.
ما هو PlatformIO؟
PlatformIO عبارة عن نظام بيئي مفتوح المصدر قائم على Python لتطوير إنترنت الأشياء ، ويعمل IDE عبر الأنظمة الأساسية مع مصحح أخطاء موحد على أنظمة تشغيل Windows و Mac و Linux. يأتي PlatformIO مع مدير مكتبة لمنصات مثل Arduino أو دعم MBED جنبًا إلى جنب مع اختبار الوحدة وتحديثات البرامج الثابتة. يدعم PlatformIO عددًا من الأنظمة الأساسية والأطر واللوحات مثل Arduino و ESP32 و ESP8266 ويأتي مع عدد من الأمثلة والمكتبات. إنه مستقل عن النظام الأساسي الذي يتم تشغيله فيه ولا يتطلب سوى تثبيت Python على الكمبيوتر.
مزايا PlatformIO
يتميز PlatformIO بالتطور السريع مع ميزاته مثل C / C ++ Code Completion و Smart Code Linter من أجل التطوير المهني السريع الذي لا يوجد في Arduino IDE. بالإضافة إلى ذلك ، يقدم PlatformIO دعم السمات بألوان داكنة وفاتحة للتطوير في أي وقت. كما أنه يأتي مع تنقلات التعليمات البرمجية الذكية وتنسيق الكود. تشمل الميزات الأساسية نظام البناء متعدد المنصات ، ومدير المكتبة ، ومراقبة المنفذ التسلسلي ، إلخ.
يسمح المصحح الموحد مع دعم العديد من البنى والأنظمة الأساسية للتطوير بتصحيح العديد من اللوحات المضمنة باستخدام Zero-Configuration. يحتوي برنامج PlatformIO Unified Debugger على ميزات مثل نقاط الفصل الشرطية والتعبيرات ونقاط المراقبة وعارض الذاكرة وإعادة التشغيل السريع لجلسة تصحيح أخطاء نشطة. تم كتابة PlatformIO Core بلغة Python 2.7 ويعمل على أنظمة تشغيل Windows و macOS و Linux و FreeBSD وحتى أجهزة الكمبيوتر التي تعمل ببطاقة الائتمان القائمة على ARM مثل Raspberry Pi و BeagleBone و CubieBoard و Samsung ARTIK وما إلى ذلك ، بالإضافة إلى أن PlatformIO لديها مستكشف الملفات الذي يساعد تنظيم الملفات عندما ينمو المشروع إلى مستوى معين ويصبح التنظيم ضروريًا.
إعداد PlatformIO لـ Arduino Uno
يعد استخدام PlatformIO أمرًا بسيطًا للغاية ويتطلب بضع خطوات للبدء. يتطلب PlatformIO تثبيت Python على الكمبيوتر لأنه كما هو موضح أعلاه ، تم كتابة جوهر PlatformIO في Python 2.7. لاحظ أن PlatformIO لا تدعم Python 3 لذا يوصى بتثبيت إصدار Python 2 ثم متابعة إعداد PlatformIO IDE. PlatformIO هو IDE بالإضافة إلى أنه يوفر حزمًا رسمية (مكونات إضافية ، ملحقات) لأشهر IDEs ومحرري النصوص.
سنقوم اليوم بتثبيت PlatformIO على محرر نصوص مثل Atom و Visual Studio Code. في الوثائق الرسمية لـ Platform IDE ، ينص على أن PlatformIO IDE لـ VS Code (Visual Studio Code) يوفر أداء أفضل للنظام ، وقد وجد المستخدمون أنه من الأسهل البدء. لذلك سنقوم بإعداد PlatformIO في Visual Studio Code. يعد VS Code محرر نصوص معروفًا له عدد من الإضافات التي تسمح لنا بالتطوير بلغات برمجة مختلفة.
لنبدأ في إعداد PlatformIO لبدء تطوير التعليمات البرمجية في Arduino UNO. هناك خطوات متضمنة موضحة أدناه:
- قم أولاً بتثبيت Visual Studio Code من موقعه الرسمي على الويب. لن يتم شرح خطوات تثبيت Visual Studio Code هنا ولكن يمكنك العثور عليها على موقع VS Code. هناك خطوات عامة متضمنة تمامًا مثل تثبيت أي برنامج آخر على نظام التشغيل Windows.
- سيبدو رمز Visual Studio كما يلي عند تثبيته بنجاح.
- تتضمن الخطوة التالية تثبيت PlatformIO باستخدام VS Code Extensions. لهذا تحتاج إلى الذهاب إلى أيقونة الامتدادات في الزاوية اليسرى العليا من VS Code. يوجد رمز مربع مربع وهو الرمز الخامس في الزاوية اليسرى العليا. ما عليك سوى النقر فوق ذلك وسيظهر مربع بحث واحد إلى جانب ذلك حيث يمكنك العثور على العديد من الامتدادات للغات البرمجة المختلفة مثل C / C ++ و C # و Python و PHP و Go و JavaScript و TypeScript و Node.js إلخ.
- ابحث عن "PlatformIO" في مربع البحث الخاص بالملحق وسترى رمز PlatformIO مع الاسم والوصف. فقط اضغط عليها وقم بتثبيتها. قد يستغرق تثبيت سلاسل الأدوات والاعتمادات الأخرى بعض الوقت. تشمل التبعيات بيئة C / C ++ حيث يتم تطوير Arduino في الغالب على C / C ++.
- عند اكتمال التثبيت ، سترى الواجهة التالية. تتضمن الواجهة كل التنقلات الضرورية مثل إنشاء مشروع جديد واستيراد مشروع Arduino و Open Project وأمثلة على المشروع وما إلى ذلك. يوصى بإعادة تشغيل VS Code Editor بعد تثبيت PlatformIO.
يؤدي هذا إلى إنهاء خطوات التثبيت الخاصة بـ PlatformIO. الآن تم تثبيت PlatformIO وجاهزة للاستخدام. تمامًا مثل Arduino IDE ، سنبدأ ببرنامج Blink ونحاول تحميل برنامج Blink في Arduino UNO.
برمجة Arduino UNO باستخدام PlatformIO IDE
سيتم شرح واجهة PlatformIO بشكل متزامن أثناء برمجة Arduino UNO. نحن هنا نبرمج Arduino ليومض LED باستخدام PlatformIO. يمكن القيام بالشيء نفسه باستخدام Arduino IDE. اتبع الخطوات أدناه لإنشاء مشروع جديد لمصباح LED الوامض.
- حدد علامة التبويب "مشروع جديد" من قائمة الوصول السريع.
- اسم المشروع (هنا "وميض"). ابحث وحدد اللوحة التي هي Arduino UNO. نظرًا لأننا نعمل في إطار عمل Arduino ، فإن الإطار المحدد سيكون Arduino. بعد ملء جميع التفاصيل ، ما عليك سوى النقر فوق "إنهاء".
- سيبدأ إنشاء المشروع من خلال جمع الموارد والتبعيات الأخرى.
- عندما يتم إنشاء المشروع بنجاح ، ستتلقى رسالة فورية تفيد بأنه "تمت تهيئة المشروع بنجاح" بكل التفاصيل المعبأة.
- ل فتح مشروع تم إنشاؤه ، انتقل للتو الى اسفل القائمة الرئيسية من PlatformIO وسترى كل قائمة من المشاريع التي تم إنشاؤها من البداية. في الزاوية اليمنى للمشروع الذي تم إنشاؤه ، انقر فوق "فتح" لفتح المشروع وبدء التحرير.
- عند فتح المشروع ، سيبدو مبدئيًا وكأنه مخفي ، ولكن لا تقلق ، يحتوي PlatformIO على ميزة مستكشف الملفات حيث سيتم العثور على جميع ملفات المشروع الحالي. اذهبوا إلى الزاوية اليسرى العلوية وافتحوا "بلا عنوان (مكان العمل)". عند النقر فوقه ، ستظهر جميع الملفات كقائمة منسدلة. للعثور على محرر النصوص لتعديل "الرمز" ، حدد "src" وافتح "main.cpp". سيظهر وضع محرر النصوص على الشاشة الرئيسية مع فتح علامة تبويب جديدة. هنا يمكنك كتابة جميع أكواد المشروع الجاري الحالي.
- ما عليك سوى كتابة رمز Blink لـ Arduino UNO. لاحظ أن PlatformIO ليس لديها الوصول الافتراضي إلى مكتبات Arduino ، لذلك في كل مرة تكتب فيها رمز Arduino ، قم دائمًا بتضمين مكتبة Arduino ، مثل "#include" في بداية البرنامج.
- ستكون الخطوة التالية هي تجميع الكود وتحميله. للقيام بذلك ، دعنا نلقي نظرة على الوظائف التي يوفرها PlatformIO. كما تحدد PlatformIO منفذ COM افتراضيًا. ولكن يمكنك أيضًا تغيير المنفذ إذا لم يكن منفذ COM المطلوب. سيتم شرح تغيير منفذ COM لاحقًا في هذا البرنامج التعليمي. يحتوي PlatformIO على وظائف مثل الإنشاء والتحميل والتحميل إلى جهاز بعيد والتنظيف والاختبار وتشغيل المهمة والمراقبة التسلسلية والمحطة الجديدة. يمكن العثور على جميع الوظائف في الزاوية السفلية اليسرى من المحرر. عندما تحوم فوق الرموز ، ستظهر الوظائف.
- لإنشاء المخطط ، انقر فوق "إنشاء" ولرفع الرسم ، انقر فوق رمز "تحميل". عند الانتهاء من التحميل ، ستتمكن من رؤية الوقت المستغرق للتحميل بكل التفاصيل الأخرى ورسالة تقول "تم بنجاح". تم تحميل الكود بنجاح وستتمكن من رؤية وميض LED في لوحة Arduino.
لتحديد أو تغيير أي منفذ COM ، ما عليك سوى الانتقال إلى شاشة الصفحة الرئيسية لـ PlatformIO ثم الانتقال إلى الأجهزة ، حيث يمكنك هنا رؤية جميع الأجهزة المتاحة المتصلة. حدد منفذ COM المناسب واتبع نفس الإجراء لتحميل الرسم التخطيطي.
برمجة لوحة STM32 باستخدام PlatformIO IDE
سيكون لبرمجة لوحة STM32 خطوات مماثلة تمامًا مثل برمجة Arduino UNO الموضحة أعلاه. سيكون الاختلاف هو اختيار لوحة STM32 عند فتح مشروع جديد لـ STM32. الشيء الجيد في PlatformIO هو أنه لا يحتاج إلى أي حزمة خارجية لتنزيل أي لوحة بشكل منفصل ، فهو يقوم تلقائيًا بتنزيل جميع الحزم ويسهل علينا تحديد لوحة والانتقال إلى المحرر. سنستخدم JLink / JTAG / STLink / Serial Programmer الخارجي لتحميل رسم تخطيطي إلى STM32. يمكن أيضًا برمجة STM32 باستخدام Arduino IDE. تابع الخطوات التالية لبرمجتها باستخدام PlatformIO.
- ما عليك سوى تسمية المشروع (هنا "Blink STM32"). ثم حدد اللوحة لـ STM32 ، أي " BluePill F103C8 (عام) ". ثم حدد Framework كـ Arduino. انقر فوق "إنهاء" وانتظر بعض الوقت حيث سيستغرق تنزيل الحزم والتبعيات للوحة STM32 بعض الوقت في البداية.
- بمجرد الإعداد ، سيكون وقت إنشاء المشروع التالي أقل مقارنة بالوقت الأول. الآن ما عليك سوى الانتقال إلى Untitled (Workspace) -> src -> main.cpp في مستكشف الملفات الأيسر.
- الآن ستكون الخطوات القادمة مهمة حيث يجب تحديد المبرمج الذي يجب أن نستخدمه لبرمجة لوحة STM32. هناك العديد من المبرمجين المتاحين مثل JTAG و STLink و JLink و Serial وما إلى ذلك ، وسيعمل الجميع ولكنك تحتاج إلى تكوين صفحة أو ملف تكوين "platformio.ini".
- في هذا المشروع ، نستخدم Serial Programmer CP210x USB to UART Bridge. لقد انتهينا بالفعل من برمجة لوحة STM32F103C8 باستخدام منفذ USB ، أو سيتم اتخاذ معظم الخطوات من هناك فقط. يمكنك زيارة الرابط والعثور على المزيد حول هذا الموضوع.
- أولاً ، قم بتوصيل مبرمج تسلسلي بلوحة STM32 باستخدام تعيين الدبوس التالي وتوصيله بجهاز الكمبيوتر.
USB للمبرمج التسلسلي |
مجلس STM32 |
5 فولت |
5 فولت |
Gnd |
Gnd |
آر إكس |
أ 9 |
TX |
أ 10 |
- انتقل الآن إلى مستكشف المشروع وافتح صفحة "platformio.ini" وقم بتغيير العبارة كما هو موضح في الصورة. و upload_protocol سوف اقول ما مبرمج يجب أن تستخدم (STLink، JLINK، المسلسل الخ). يقوم upload_port بتحديد منفذ COM. يمكنك العثور عليه بالذهاب إلى "الأجهزة" في الصفحة الرئيسية. قم بتغيير منفذ COM وفقًا لمنفذ COM الخاص بك.
- انتقل إلى "main.cpp" وقم بتغيير البرنامج إلى برنامج Blink . الآن فقط قم بتحميل البرنامج وسيظهر رسالة النجاح والوقت المستغرق في التحميل. الآن سيبدأ مؤشر LED في الوميض متصلاً عند دبوس PC13 من لوحة STM32.
هذا ينهي البرنامج التعليمي الكامل حول برمجة Arduino UNO وكذلك STM32 Board باستخدام PlatformIO. إذا واجهت أي صعوبات أثناء اتباع الخطوات ، فيرجى الكتابة إلى منتدانا أو التعليق أدناه.