ما هو Arduino؟

يحتوي هذا المقال على روابط تسويق بالعمولة مُعلَّمة بعلامة *. بصفتي شريكًا في برنامج Amazon Associates، أربح من عمليات الشراء المؤهلة، دون أي تكلفة إضافية عليك. يساعد ذلك على إبقاء الشروحات مجانية.

يُحمَّل الفيديو من YouTube (Google)، وقد يضع ملفات تعريف الارتباط (Cookies). سياسة الخصوصية

ملخص سريع

Arduino منصة إلكترونيات مفتوحة المصدر تتكون من لوحات متحكمات دقيقة وبرنامج مجاني لبرمجتها. تستخدم لوحة Arduino Uno R3 الكلاسيكية المتحكم الدقيق ATmega328P. وفي المشروع الأول تكون Uno R3 هي الخيار المعتاد. تحمل لوحة Nano الشريحة نفسها بحجم يناسب لوحة التجارب (Breadboard)، وتضيف Mega 2560 أطرافًا ومنافذ تسلسلية للمشاريع الكبيرة، أما Micro و Leonardo فيمكنهما العمل كلوحة مفاتيح أو فأرة USB.

كانت أول لوحة استخدمتها Arduino Uno، وكان أول مشروع لي بها التحكم في محرك تيار مستمر (DC). والجزء الذي يتحكم في المحرك على اللوحة هو المتحكم الدقيق (Microcontroller)، وهو شريحة تقرأ المدخلات وتتخذ قرارًا ثم تبدّل حالة المخرجات.

ما هو المتحكم الدقيق؟

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

Side-by-side comparison of a PC motherboard with a small microcontroller chip, showing the size difference between a computer and a microcontroller.

مثال من الواقع: الغسالة

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

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

Diagram showing how a washing machine microcontroller processes inputs from control buttons, water level sensor, and temperature sensor to control outputs like the motor, display screen, and water valve.

‏ الروبوت يعمل بالطريقة نفسها: المستشعرات تقيس، والمتحكم الدقيق يقرر، والمشغلات تتحرك. وفي مشروعي روبوت تتبع الخط، يُبلغ مستشعرا الأشعة تحت الحمراء KY-033 عمّا إذا كان كل منهما فوق الخط الأبيض على الخلفية الداكنة. تقارن لوحة Arduino Uno بين القراءتين، ثم يعيد محركا تيار مستمر بعلبة تروس توجيه السيارة إلى الخط.

ما هو Arduino؟

يتكون Arduino من جزأين. العتاد (Hardware) هو لوحة تطوير: متحكم دقيق ومعه منفذ USB ودائرة طاقة وأطراف توصيل (صفوف من المقابس على حواف اللوحة) للمستشعرات والمشغلات. أما البرمجيات (Software) فهي برنامج Arduino IDE المجاني (Integrated Development Environment، أي بيئة التطوير المتكاملة)، الذي تكتب فيه البرامج وترفعها إلى اللوحة. والجزآن مفتوحا المصدر: تصاميم الدوائر والكود منشورة، ويحق لأي شخص نسخها وتعديلها.

يُطلق على برامج Arduino اسم Sketch. والـ Sketch هو كود C++ يستخدم إطار عمل Arduino، وهو مجموعة من الدوال الجاهزة مثل digitalWrite(). تترجم بيئة التطوير IDE البرنامج (Compile)، أي تحوّله إلى لغة الآلة الخاصة بالشريحة، ثم ترفعه عبر USB. يستقبل محمّل الإقلاع (Bootloader)، وهو برنامج صغير مثبّت مسبقًا على المتحكم الدقيق، الكود ويخزّنه في ذاكرة الفلاش (Flash)، وهي ذاكرة البرامج في الشريحة التي تحتفظ بمحتواها دون كهرباء. إذا أردت معرفة الفرق بين C/C++ والأدوات الرسومية و Python، فاقرأ دليلي عن أنواع برمجة المتحكمات الدقيقة.

بدأ مشروع Arduino عام 2005 في Interaction Design Institute Ivrea بإيطاليا، كلوحة منخفضة التكلفة لطلاب التصميم.

Arduino Uno board surrounded by electronic components like LEDs, resistors, and sensors on a blue background.

لوحة Arduino Uno R3

لوحة Arduino Uno R3 هي الأكثر شيوعًا في العائلة. تعني كلمة “Uno” بالإيطالية “واحد”. صدرت أول لوحة Uno عام 2010، واختير الاسم للإشارة إلى الإصدار 1.0 من برنامج Arduino. أما Uno R4 الأحدث (2023) فلها الحجم نفسه وترتيب الأطراف نفسه، لكن بشريحة أسرع بمعمارية 32 بت، أي أنها تعالج 32 بت من البيانات في كل خطوة. يتناول هذا الدليل الإصدار R3.

المتحكم الدقيق فيها هو ATmega328P من شركة Microchip (التي كانت تُعرف سابقًا باسم Atmel). وهي شريحة 8 بت تعمل بتردد 16 MHz (أي 16 مليون نبضة ساعة في الثانية). تحتوي على 32 KB من ذاكرة الفلاش لبرنامجك، و2 KB من ذاكرة SRAM للمتغيرات أثناء تشغيل البرنامج، و1 KB من ذاكرة EEPROM للقيم التي يجب أن تبقى بعد انقطاع الكهرباء. أما SRAM فتُمحى عند فصل الطاقة.

ما الذي تحتويه اللوحة

Annotated Arduino Uno pinout diagram showing all labeled components: USB port, power supply, digital I/O pins, analog inputs, reset button, ICSP headers, and LEDs.
  • زر إعادة الضبط: يعيد تشغيل برنامجك من البداية دون فصل الطاقة.
  • المتحكم الدقيق: تشغّل شريحة ATmega328P البرنامج الذي ترفعه، وتقرأ حالة الأطراف وتتحكم فيها.
  • مصباح LED المدمج (L): موصول بالطرف الرقمي 13. يشغّله مثال Blink في Arduino IDE ويطفئه بالتناوب، وهو اختبار سريع للتأكد من نجاح الرفع.
  • مصباح الطاقة (ON): يضيء عندما تكون اللوحة موصولة بالطاقة.
  • مصباحا TX/RX: يومض مصباح TX (الإرسال) عندما ترسل اللوحة بيانات، ويومض مصباح RX (الاستقبال) عندما تستقبل بيانات.
  • منفذ USB (Type-B): يزوّد اللوحة بالطاقة، ويرفع برنامجك (Sketch)، وينقل البيانات التسلسلية بين اللوحة وحاسوبك. الاتصال التسلسلي يعني أن البيانات تنتقل بتًا بعد بت عبر سلك واحد. وتعرض الشاشة التسلسلية (Serial Monitor) في Arduino IDE هذه البيانات على شاشتك، وهي الطريقة المعتادة لفحص قيم المستشعرات.
  • مقبس الطاقة: مقبس أسطواني (Barrel) قطره 2.1 mm (الطرف الأوسط موجب) لمزود طاقة خارجي من 7 إلى 12 V، مثلًا عندما تعمل اللوحة دون حاسوب. ومع ذلك تحتاج المحركات ومحركات السيرفو إلى مزود طاقة خاص بها.
  • أطراف ICSP: مجموعتان من أطراف التوصيل، في كل منهما 6 أطراف، لبرمجة الشريحة بجهاز برمجة خارجي (Programmer) دون المرور بمحمّل الإقلاع (ICSP اختصار لـ In-Circuit Serial Programming، أي البرمجة التسلسلية داخل الدائرة). المجموعة المجاورة لشريحة ATmega328P تبرمج الشريحة الرئيسية؛ والقريبة من منفذ USB تبرمج شريحة ATmega16U2، وهي الشريحة الصغيرة المسؤولة عن USB. ونادرًا ما يحتاج المبتدئ إلى أي منهما.
  • ثقوب التثبيت: أربعة ثقوب لتثبيت اللوحة بالبراغي على قاعدة أو داخل علبة، وهذا مفيد عندما تكون اللوحة على روبوت متحرك.

الأطراف

  • الأطراف الرقمية من D0 إلى D13: إدخال أو إخراج بمنطق 5 V، أي أن الإشارة إما مطفأة (0 V) أو مشغّلة (5 V). استخدمها مثلًا لقراءة زر ضغط أو لتشغيل مصباح LED وإطفائه. اجعل التيار في كل طرف 20 mA أو أقل. ويمكن للأطراف المميزة بالعلامة ~ (3، 5، 6، 9، 10، 11) أن تُخرج أيضًا إشارة PWM (تعديل عرض النبضة). عندها يتناوب الطرف بين التشغيل والإطفاء مئات المرات في الثانية، فيخفّت ذلك إضاءة مصباح LED أو يضبط سرعة محرك.
  • TX/RX (الطرفان 1 و 0): المنفذ التسلسلي العتادي في Uno R3. يستخدم اتصال USB بحاسوبك الطرفين نفسيهما، لذلك قد تمنع وحدة موصولة بالطرفين 0 و 1 عملية الرفع. حدث هذا معي مع وحدة البلوتوث HC-05: فقد كانت موصولة بالطرفين 0 و 1، فأظهرت Arduino IDE خطأً في الرفع. افصل مثل هذه الوحدة أثناء الرفع، أو وصّلها بأطراف أخرى.
  • المداخل التناظرية من A0 إلى A5: تحوّل جهدًا بين 0 و 5 V إلى عدد من 0 إلى 1023 (دقة 10 بت، أي 1024 خطوة).
  • SDA و SCL: السلكان الخاصان بناقل I2C، وهو بروتوكول يتيح لعدة أجهزة مشاركة سلكين (ينقل SDA البيانات، وينقل SCL إشارة الساعة). وفي Uno R3 يتصلان بالطرفين A4 و A5. ومن أجهزة I2C المعتادة المستشعرات والشاشات الصغيرة وشرائح ذاكرة EEPROM.
  • AREF (المرجع التناظري): جهد خارجي اختياري بين 0 و 5 V يحدد الحد الأعلى لنطاق المداخل التناظرية. استدعِ analogReference(EXTERNAL) في الكود قبل أن توصل جهدًا بهذا الطرف؛ وإلا فسيتصل الجهد الخارجي بالمرجع الداخلي مباشرة، وقد يؤدي ذلك إلى تلف الشريحة.
  • GND: مرجع 0 V في اللوحة؛ إذ يعود التيار عبر هذه الأطراف إلى المصدر. عندما تستخدم مزود طاقة خارجيًا، مثلًا لمحركات السيرفو، فوصّل طرف GND الخاص به بأحد أطراف GND في Arduino. فمن دون هذا الأرضي المشترك لا تُقرأ الإشارات بين اللوحة والوحدة بشكل صحيح.
  • VIN: مدخل لمزود طاقة خارجي من 7 إلى 12 V، كبديل عن مقبس الطاقة.
  • 5 V: مخرج 5 V منظَّم للمستشعرات والوحدات الصغيرة؛ ومعنى منظَّم أن اللوحة تُبقي الجهد ثابتًا. عند التغذية عبر USB تتقاسم اللوحة وكل ما يتصل بها 500 mA كحد أقصى؛ ويحمي مصهرٌ قابل لإعادة الضبط على Uno R3 منفذ USB. أما محركات السيرفو والمحركات فتحتاج إلى مزود طاقة خاص بها.
  • 3.3 V: مخرج منظم جهد منفصل، وهو قطعة تُبقي جهد خرجها عند 3.3 V. يوفّر 50 mA كحد أقصى. يمكنه تغذية مستشعر صغير يعمل بجهد 3.3 V، لكن أطراف الإشارة في Uno R3 تبقى بجهد 5 V. لذلك تحتاج الوحدة التي لا تتحمل إلا 3.3 V على خطوط البيانات إلى محوّل مستوى (Level Shifter)، وهو لوحة صغيرة تحوّل إشارات 5 V إلى 3.3 V.
  • IOREF: يُعلم الدرع (Shield)، وهو لوحة توسعة تُركَّب فوق اللوحة، بجهد المنطق الذي تستخدمه اللوحة (5 V في Uno R3)، ليتمكن الدرع من مواءمة مستويات إشاراته.
  • إعادة الضبط: يعيد تشغيل المتحكم الدقيق، تمامًا مثل زر إعادة الضبط.

مقارنة لوحات Arduino

اللوحةالمتحكم الدقيقإدخال/إخراج رقمي (PWM)المداخل التناظريةFlashSRAMتردد الساعةUSB
Uno R3ATmega328P14 (6)632 KB2 KB16 MHzUSB Type-B
Mega 2560ATmega256054 (15)16256 KB8 KB16 MHzUSB Type-B
NanoATmega328P14 (6)832 KB2 KB16 MHzMini-USB
MicroATmega32U420 (7)1232 KB2.5 KB16 MHzMicro-USB
LeonardoATmega32U420 (7)1232 KB2.5 KB16 MHzMicro-USB

يمكن لأطراف Uno R3 التناظرية الستة أن تعمل أيضًا كأطراف رقمية. أما في Micro و Leonardo فالأطراف الرقمية الـ 20 تشمل الأطراف التناظرية أصلًا.

Arduino Uno R3: عرضها كبير فلا يمكن تركيبها على لوحة التجارب (Breadboard، وهي لوحة بنقاط تلامس نابضية لبناء الدوائر دون لحام). وتصل بينهما بأسلاك التوصيل (Jumper، وهي أسلاك قصيرة في كل طرف منها قابس). ومعظم الدروع (Shields) مصممة لترتيب أطراف التوصيل فيها. وهي اللوحة القياسية في مشاريعي.

Arduino Mega 2560: تملك أطرافًا وذاكرة أكثر من Uno R3، وأربعة منافذ تسلسلية عتادية (بينما تملك Uno R3 منفذًا واحدًا). ويفيد ذلك عندما توصل عدة وحدات في الوقت نفسه، مثل GPS وبلوتوث. وهي شائعة في الطابعات ثلاثية الأبعاد (3D) والروبوتات. أستخدمها عندما تنفد الأطراف، كما في سيارتي الروبوتية المزودة بأربعة مستشعرات للموجات فوق الصوتية ودرع محركات (Motor Shield) ووحدة بلوتوث.

Arduino Mega 2560 board, a larger Arduino variant with 54 digital I/O pins and 16 analog inputs for complex projects.

Arduino Nano: تستخدم Nano شريحة ATmega328P نفسها بتردد 16 MHz، لذا يعمل الكود تمامًا كما على Uno R3. تُركَّب على لوحة التجارب، وفيها منفذ Mini-USB. تحتوي على 14 طرف إدخال/إخراج رقمي، و8 مداخل تناظرية (الطرفان A6 و A7 تناظريان فقط)، و32 KB من ذاكرة الفلاش. أستخدمها في المشاريع الصغيرة التي أحتاج فيها إلى أطراف قليلة ومساحة صغيرة.

Arduino Nano board, a compact breadboard-friendly version of the Arduino Uno with the same ATmega328P microcontroller.

Arduino Micro: تتولى شريحة ATmega32U4 فيها اتصال USB بنفسها، دون شريحة USB منفصلة. لذلك يمكن للوحة Micro أن تعمل كلوحة مفاتيح أو فأرة USB لحاسوبك أثناء تشغيل برنامجك (Sketch). تحتوي على 20 طرف إدخال/إخراج رقمي، و12 مدخلًا تناظريًا، ومنفذ Micro-USB.

Arduino Micro board, a compact board with the ATmega32U4 microcontroller supporting direct USB communication.

Arduino Leonardo: تستخدم شريحة ATmega32U4 نفسها الموجودة في Micro، ويمكنها أيضًا أن تعمل كلوحة مفاتيح أو فأرة USB. لها حجم Uno R3 وترتيب أطراف التوصيل نفسه، لذا تناسبها معظم الدروع المصممة لـ Uno R3. وفيها منفذ Micro-USB، و32 KB من ذاكرة الفلاش، و2.5 KB من ذاكرة SRAM.

Arduino Leonardo board with labeled pin layout showing digital I/O, analog inputs, power pins, ICSP header, and USB connector.

الدروع (Shields): تقبل Uno R3 و Mega 2560 و Leonardo الدروع، وهي لوحات تُركَّب فوقها وتضيف وظائف مثل التحكم في المحركات أو واي فاي (Wi-Fi) أو GPS دون توصيلات إضافية. أما Nano و Micro فلا تناسبهما الدروع القياسية؛ وتوصل الوحدات بهما على لوحة التجارب.

بدائل Arduino

Raspberry Pi: حاسوب كامل على لوحة دوائر صغيرة واحدة، يعمل بنظام التشغيل Linux. ونظام التشغيل هو البرمجيات الأساسية التي تدير الذاكرة والملفات والبرامج الأخرى، كما يفعل Windows على الحاسوب الشخصي. يتولى مهام أثقل مثل معالجة صور الكاميرا، وخوادم الوسائط، وأتمتة المنزل. لكنه يحتاج أولًا إلى إقلاع نظام التشغيل، وأطرافه العاملة بجهد 3.3 V لا تتحمل 5 V. أما لوحة Arduino فلا تعمل بنظام تشغيل: يبدأ برنامجك فور توصيل الطاقة وتوقيته قابل للتنبؤ، وهذا يناسب مهام التحكم مثل قراءة المستشعرات وتشغيل المحركات.

Close-up of a Raspberry Pi single-board computer being held, showing its GPIO pins, USB ports, and processor.

ESP32: متحكم دقيق من شركة Espressif مزوّد بواي فاي (Wi-Fi) وبلوتوث مدمجين. يحتوي ESP32 الكلاسيكي على معالج ثنائي النواة (نواتا معالجة تنفذان الكود في الوقت نفسه) بتردد يصل إلى 240 MHz، ويمكن برمجته في Arduino IDE. تعمل أطرافه بمنطق 3.3 V وليس 5 V. وهو خيار شائع لمشاريع إنترنت الأشياء (IoT)، حيث يرسل الجهاز بيانات عبر الشبكة. انتقلت إلى ESP32 في مشاريعي اللاحقة من أجل واي فاي وبلوتوث والسرعة. فمثلًا، في مشروعي الذراع الروبوتية OmArm Zero، أتحكم في الذراع من صفحة ويب عبر واي فاي، وهو ما لا تستطيعه Uno R3 دون وحدة إضافية.

ESP32 microcontroller board connected to sensors and wires on a breadboard, used as an alternative to Arduino for IoT projects.

أي لوحة تختار

ابدأ بلوحة Uno R3. ولا تغيّر اللوحة إلا عندما يتطلب المشروع ذلك:

  • Nano: إذا كان يجب تركيب اللوحة على لوحة التجارب أو داخل علبة صغيرة.
  • Mega 2560: إذا نفدت منك الأطراف أو المنافذ التسلسلية.
  • Micro أو Leonardo: إذا كان على اللوحة أن تعمل كلوحة مفاتيح أو فأرة USB.
  • ESP32: إذا كان المشروع يحتاج إلى واي فاي (Wi-Fi) أو بلوتوث.

الخطوة التالية هي برنامجك الأول (Sketch): أساسيات برمجة Arduino.

5 رأي حول “What is Arduino?”

أضف تعليق