آردوينو

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

التاريخ 

ظهرت فكرة جهاز الآردوينو عام 2005م في مدينة إفريا الإيطالية، حيث أطلق ماسيمو بانزى بالتعاون مع دايفيد كوارتيليس وجاينلوكا مارتينو بإطلاق مشروع «أردوين إيفريا» (Arduin of Ivrea) و اسم المشروع يعود إلى حانة كان ماسيمو بانزي ورفاقه يرتادونها حانة دي أردوينو (Bar Di Re Arduino) والتي مستوحى اسمها من الملك أردوين (king arduin). وكان الهدف الأساسي للمشروع هو عمل بيئة تطوير للمتحكمات دقيقه بصوره مفتوحه المصدر 100 في المئة وتضمن هذا المشروع عمل بيئة تطوير متكاملة للمتحكمات الدقيقة وتكون مجانيه في ذات الوقت كما تضمن عمل لوحات تطوير Development Boards صغيره الحجم بتكلفه بسيطه تبلغ حالياً قرابة 27 دولار ليتمكن الطلاب والهواة التقنين تحمل سعرها، وحتى عام 2013 تم شحن أكثر من 700 ألف لوحة آردوينو.

في عام 2002، انضم ماسيمو بانزي، مهندس برمجيات ومصمم تفاعل، إلى معهد Ivrea Interaction Design Institute في إفريا لتعزيز التصميم التفاعلي - المعروف أحيانًا باسم الحوسبة الفيزيائية. ولكن بميزانية مخفضة وبضع ساعات دراسية، لم يكن لديه خيارات كثيرة. اتخذ بانزي المتحكم الدقيق BASIC Stamp كأساس، ولكن كان لهذا مشكلتين: لم يكن لديه قوة حوسبة كافية للمشاريع التي كان يفكر فيها بعض الطلاب، كما أنه كلف النموذج الأساسي حوالي 100 دولار. كما أراد شيئًا يمكن تشغيله على نظام ماكنتوش، حيث كان النظام الأكثر استخدامًا بين مصممي IDII. عندما كانت الأمور قائمة، بدأ يفكر في صنع الأطباق نفسها التي تلبي احتياجاته. كان لدى بانزك صديق طور المعالجة في معهد ماساتشوستس للتكنولوجيا. تمتاز المعالجة ببيئة برمجة IDE سهلة الاستخدام، وحتى المستخدمين عديمي الخبرة يمكنهم عمل تصورات معقدة وجميلة. كان بإمكان بانزك أن يفعل شيئًا مشابهًا لتشفير المتحكمات الدقيقة في رأسه. اتخذ هرناندو باراجان، طالب IDII، الخطوة الأولى في هذا الاتجاه. أنشأ منصة تسمى Wiring، تتكون من IDE سهل الاستخدام ولوحة دائرة كهربائية. لكن بانزي أراد شيئًا أبسط وأسهل وأرخص. كان بانزي ومعاونيه يؤمنون بالبرمجيات مفتوحة المصدر وفضلوا نشر المشروع لأكبر عدد ممكن من الناس. علاوة على ذلك، كان IDII يفتقر إلى المال وكان عليه أن يغلق، وكان أعضاء الفريق يخشون فقدان مشروعهم. البحث في كيفية تطبيق نموذج البرامج مفتوحة المصدر على الأجهزة، باستخدام ترخيص المشاع الإبداعي

لصنع اللوحة، وضعوا تكلفة قدرها 30 دولارًا كهدف تكلفة. لقد أرادوا أيضًا أن تكون اللوحة فريدة من نوعها، وأن تبدو جذابة. إذا كانت لوحات الآخرين خضراء، فستكون صفائحهم زرقاء؛ إذا أرادت معظم الشركات المصنعة التوفير في المدخلات والمخرجات، فسيكون لها كومة. كملمس أخير، تمت إضافة خريطة صغيرة لإيطاليا إلى الجزء الخلفي من اللوحة. ابتكرت المجموعة منتجًا يعتمد على قطع غير مكلفة ويسهل العثور عليها حتى يتمكن المستخدمون من صنع اللوحات بأنفسهم إذا أرادوا ذلك. استخدموا متحكم صغري ATmega328. لتحقيق النجاح اللاحق لـ آردوينو، كان القرار الأساسي هو توصيل اللوحة وتشغيلها، بحيث يمكن للمستخدم إخراج اللوحة من الصندوق، وتوصيلها بالكمبيوتر، واستخدامها على الفور. تم توزيع أول 300 لوحة على طلاب المعهد. طُلب من كل منهم أن يفعل شيئًا - كل ما يريد - وولدت المشاريع الأولى. في وقت قصير، أراد الآخرون أيضًا لوحة. كان المشروع قيد التنفيذ، لكن لم يتم ذكر اسمه بعد؛ اسم آردوينو. في إحدى الليالي، قرروا أخذ رشفة في البار المحلي: أخذوه من اسم البار -Bar di Re Arduino-. يأخذ البار أيضًا اسمه من ملك آردوينو، الذي كان ملكًا لإيطاليا من 1002 إلى 1014. 

سرعان ما انتشر اسم آردوينو على الإنترنت، دون أي تسويق أو إعلان. توم إيجوي، الذي كان حينها أستاذًا في جامعة نيويورك وعضوًا الآن في فريق التطوير في آردوينو، اندهش من السهولة التي يوفر بها آردوينو الإلكترونيات للجاهلين وسعرها المنخفض. بفضل IDE سهل الاستخدام الذي أخذته آردوينو من المعالجة والأسلاك، فقد سهلت أيضًا على الأشخاص الذين لم يعرفوا الكثير من قبل الدخول إلى عالم الأجهزة. كان آردوينو يكتسب زخمًا في حركة افعل ذلك بنفسك. في مايو 2011، قدر ماسيمو بانزي أنه تم بيع حوالي 300000 أردوينوس. في أبريل 2013، وفقًا لديفيد كوارتيليس، تم بيع أكثر من 700000 مسؤول من أردوينوس، وقدر أن هناك نسخة واحدة أو مشتقًا واحدًا على الأقل لكل بطاقة رسمية. في ذلك الوقت، كان يتم إنتاج 5000 أردوينو رسمي يوميًا. بحلول يوليو 2014، كان عدد Arduino Uno المباع أكثر من مليون ونصف المليون. اعتبارًا من فبراير 2015، هناك 19 لوحة مختلفة على موقع آردوينو الرسمي. لقد أصبحت واحدة من أكثر المنصات استخدامًا لإنشاء نماذج آردوينو الأولية في العالم.

المعدات 
ميزات أجهزة آردوينو الرسمية مأخوذة من موقع آردوينو الرسمي في فبراير 2015.

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

تتكون المجموعة من لوحات من نوع Arduino Uno. في هذه يمكن العثور على متحكم ATmega168 أو ATmega328 أو ATmega328P أو ATmega2560. يقوم المتحكم الدقيق بتشغيل الرسومات التخطيطية - وهي برامج مصممة لـ آردوينو - ويحتوي على معالج ثانوي للتواصل مع الكمبيوتر. نتيجة لذلك، يظل اتصال USB بالكمبيوتر ثابتًا، بغض النظر عن حالة وحدة التحكم الدقيقة الرئيسية. تتكون المجموعة الأخرى من بطاقات من نوع آردوينو Leonardo. هذه تستخدم متحكم ATmega32u4، وهو المسؤول عن تنفيذ الرسومات والتواصل مع الكمبيوتر. الجمع بين الوظيفتين في نفس المعالج، هناك مرونة أكبر في الاتصال بالكمبيوتر، ومن ناحية أخرى، فإن إزالة المعالج يقلل من التكاليف. بصرف النظر عن ذلك، يحتوي Arduino Duo على متحكم SAM3X8E - أول آردوينو يستخدم متحكمًا 32 بت، والبرمجة مختلفة عن أردوينوس الأخرى. في عملية تطوير البرنامج، يقوم الكمبيوتر بكتابة البرنامج وتجميعه وتحميله إلى وحدة التحكم الدقيقة. بمجرد اكتمال تطوير البرنامج، عندما يبدأ آردوينو في أداء وظيفته، لا يكون الاتصال ضروريًا. على الرغم من إيقاف تشغيل وحدة التحكم الدقيقة، يظل البرنامج في الذاكرة، وعندما يتم تشغيله مرة أخرى، سيقوم بعمله سواء كان يتصل بالكمبيوتر أم لا.

من حيث المدخلات / المخرجات، معظمهم لديهم دبابيس مثبتة في موصلات التمدد. وهي مناسبة للتدريس والعمل على النماذج الأولية أو إعادة استخدامها في مشاريع مختلفة. بالإضافة إلى موصلات التمدد، يمكن تركيب ألواح التمدد. توجد ثقوب أخرى - بين Arduino Pro و Pro Mini - في مكان المسامير، حيث يمكن ضبط نوع الدبوس المختار أو لحامه مباشرة باللوحة. هذه مناسبة للاستخدام في النموذج الأولي الفردي أو الاستخدام المهني. تم تصميم بعض Arduinos بمهام أو ميزات محددة: Arduino Mega لأولئك الذين يحتاجون إلى الكثير من المدخلات / الإخراج؛ لوضع لوحة Arduino Micro و Mini و Nano على لوحة النموذج الأولي (لوحة التجارب)، أو لتثبيتها في الأماكن التي تكون فيها المساحة محدودة ؛ Arduino Ethernet كخادم أو وظائف شبكة أخرى؛ يحتوي Arduino BT على بلوتوث؛ يمكن برمجة Arduino Fio لاسلكيًا؛ يحتوي Arduino Yun على شريحة WiFi ولديه توزيع Linux مضمن فيه؛ لتضمين Arduino Lilypads في الملابس؛ و Arduino Robot، بعجلات وأجهزة استشعار مدمجة، لمشاريع الروبوت. في الداخل، تمت برمجة جميع متحكمات آردوينو باتصال سلسلة RS-232. طريقة تنفيذ ذلك تتم وفقًا لطراز اللوحة. تحتوي بطاقات Arduino Series على دائرة تتكيف مع مستوى RS-232 مع مستوى TTL. تتم برمجة معظم لوحات آردوينو الحالية عبر USB، والتي تحتوي على محول تسلسلي USB مثل FTDI FT232. بعض الطرز، مثل Arduino Minia أو Boarduino غير الرسمية، تستخدم مهايئ تسلسلي USB أو كابل قابل للفصل أو Bluetooth أو طريقة أخرى.

نماذج 

 Arduino Uno
 Arduino Leonardo
 Arduino Due
 Arduino Yún
 Arduino Robot
 Arduino Esplora
 Arduino Mega ADK
 Arduino Ethernet
 Arduino Mega 2560

تقنية أغطية آردوينو 

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

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

آردوينو ومعمارية ARM Cortex 

في عام 2009 تعرض آردوينو لنقلة نوعية جديدة جاءت على يد فريق LeafLabs والذي قام بتطوير لوحه أردوينو جديدة تسمى The Maple board تعمل بشرائح إلكترونية ("Processor") من عائلة ARM Cortex والتي نقلت آردوينو إلى أفق جديد من السرعة والقوه حيث تتميز جميع شرائح ARM باحتوائها على معالجات عالية السرعة تمتلك قوة معالجه تبدأ من 72 ميجا هرتز وتصل في بعض الإصدارت إلى 1.5 جيجا هرتز. وأنّ كل معالج من عائلة ARM Cortex لديه address memory عرضه 32 بت.

آردوينو وشرائح FPGA 

بالرغم من كل التطورات السريعة في لوحات أردوينو المختلفة إلا أن التطوير لم يتوقف عن حدود ARM Cortex بل وصل إلى شرائح مصفوفة البوابات المنطقية القابلة للبرمجة FPGA في عام 2010 تم نشر مشروع مفتوح المصدر اسمه Papilio Arduino
والهدف منه هو صناعه لوحه آردوينو تعمل بشرائح من نوع FPGA ويمكن برمجتها بلغه Arduino C.

جاء مشروع Papilio Arduino ليحل هذه المشكلات ويقدم لوحه تطوير جديده إلى عائله لوحات آردوينو وتم إصدار Papilio Arduino IDE وهي نسخه معدله من برنامج Arduino IDE لجعل لغه آردوينو تتناسب مع شرائح FPGA كما تم إصدار لوحات papilio boards للبيع من منتصف عام 2010

بطاقات آردوينو 

تم إنتاج أول بطاقة آردوينو من قبل الشركة الإيطالية Smart Projects. كما تم تصميم بعض الأنواع من البطاقات من قبل شركات أمريكية ك SparkFun Electronics و Adafruit  ، تم إنتاج 17 إصدارًا من بطاقات أردوينو التجارية.

البرنامج

مثال 

المثال التالي يوضح كيفية تشغيل صمام ثنائي باعث للضوء لمدة ثانية (1000 ميلي ثانية) وإطفاءه ثانية بشكل مستمر حتى يتم فصل الآردوينو عن منبع الطاقة:

int LED_PIN =13;

void setup () {
    pinMode (13, OUTPUT); // إعداد المخرج 13 ليكون مخرجا فقط.
}

void loop () {
    digitalWrite(LED_PIN,HIGH); // تشغيل المصباح
    delay(1000); // إنتظار ثانية (ألف ملي ثانية)
    digitalWrite(LED_PIN,LOW); // إطفاء المصباح
    delay(1000); // إنتظار ثانية
    }
}
 
وهذا كود آخر للإضائة عن طريق البلوتوث :
 
 
int x; // تحديد متغير
 
void setup () {
Serial.begin(9600); //تشغيل السيريال بسرعة 9600بت
pinMode(3,OUTPUT); // ضبط مخرج المصباح
}
void loop () {
if (Serial.available())
{
x=Serial.read(); //المتغير هو قراءة السيريال
if (x=='1')
{
digitalWrite(3,HIGH);
}
else
{
digitalWrite(3,LOW); // إطفاء المصباح عندما لا يكون هنالك قراءة 
}
}
}

مراجع

وصلات خارجية 

 
 

 
اختراعات إيطالية
استحداثات متعلقة بالحواسيب في 2005
الحوسبة الفيزيائية
عتاد مفتوح المصدر
متحكمات دقيقة