Support de cours complet Arduino en arabe
الفصل الأول
مقدمه الى عالم اردوينو و المتحكمات الدقيقه
Introduction to Arduino & microcontrollers
منذ زمن ليس ببعيد كان العمل على صناعه دائره الكترونيه للقيام بوظيفه معينه يعنى بناء تصميم الكترونى معقد من مكونات مثل المقاومات, المكثفات, الملفات, الترانزستور...الخ.
كانت الدوائر الالكترونيه ثابته التصميم و اعاده تغير او تعديل جزء بسيط فيها كان يعنى الكثير من عمليات معقده مثل اللحام و قطع الاسلاك و اعاده النظر فى المخططات الالكترونيه و الكثير من الامور المزعجه و التى ادت إلى اقتصار وظيفه تطوير المنتجات الالكترونيه على مجموعه من المهندسين المتخصصين فقط.
بفضل التطور التكنولوجى فى مجال اشباه الموصلات و اختراع الدوائر المدمجه Integrated Circuits (IC) اصبح من الممكن وضع دائره الكترونيه كامله على شريحه صغيره حجمها قد لا يتجاوز رأس الدبوس حتى انه فى الوقت الحالى هناك دوائر الكترونيه حجمها يقدر بالنانو متر Nano Meter و التى لا يمكن روئيتها الا بأستخدم مكبرات ضوئيه خاصه.
كما ادى تطور Integrated Circuits الى ظهور جيل خاص من الدوائر الالكترونيه يسمى المتحكمات الدقيقه Micro Controllers و هى اشبه بكمبيوتر مصغر قابل للبرمجه لاداء مجموعه من الوظائف مثل قرائه درجه حراره, التحكم فى محرك كهربى, او حتى اداره خطوط الانتاج فى المصانع الكبرى, و كل ذلك يتم ببساطه عن طريق اوامر برمجيه و بذلك تحولت تقنيه صناعه الدوائر و الانظمه الالكترونيه من التصميم الالكترونى البحت المعتمد على المكونات الصلبه فقط الى اوامر برمجيه يمكن لاى فرد ان يكتبها و يصممها بنفسه بسهوله و يسر.
تتميز المتحكمات الدقيقه ايضا بأمكانيه التغير و التعديل فى اى وقت , بكل بساطه لو اردت ان تغير شيئا ما فى مشروعك يمكنك ذلك بالتعديل فى السطور البرمجيه و اعاده وضع الاوامر الجديده على المتحكمه الدقيقه و تجربتها اكثر من مره و هكذا الى ان تصل بمشروعك للهدف المنشود ...
اردوينو Arduino هى بورده الكترونيه مفتوحه المصدر Open Hardware لتطوير الكثير من الافكار و المشاريع المتعلقه بالتحكم الآلى بصوره سهله و بسيطه عن طريق استخدام لغه برمجه مفتوحه المصدر Arduino C و يتم برمجه المتحكمه الموجوده على البورده بأستخدام برنامج خاص يسمى Arduino IDE: Integrated Development Environment و الذى يتوفر مجانا للتحميل من موقع اردوينو الرسمى /arduino.cc
ما معنى ان اردوينو مفتوح المصدر ؟؟
يعنى انه يمكنك الاطلاع و التعديل على التصميمات الهندسية و الشفرات المصدرية Source Codes لكل من بوردات اردوينو المختلفة Arduino Boards و Arduino IDE بما يتناسب معك و يمكنك ايضاً تطوير لغة برمجه Arduino C بحريه تامه و الاطلاع على الشفرات المصدرية الخاصة بها كما ان كل هذه المميزات و البرمجيات مجانيه تماما على غرار بعض البيئات التطويره مثل Mikro C و التى تتطلب منك شراء رخصه مكلفه تصل فى بعض الاحيان الى الآف الدولارات لاستخدامها.
ما يميز بوردات اردوينو عن باقى البوردات التطويريه للمتحكمات الدقيقه الاخرى Micro Controllers Development boards هو مدى السهوله التعامل معها و بساطه اللغه البرمجيه و التى عمل فريق من ايطاليا على تطويرها منذ عام 2005 حتى الان , و لقد تم اشتقاق لغه اردوينو البرمجيه من لغه processing و لغه "سى C" و التى تعد اساس لغات البرمجه الحديثه و صاحبه ثوره تقنيه البرمجيات.
قد يظن البعض ان اردوينو مصمم للهواه فقط لاكن هذا ليس صحيح لقد تم تطويره ليناسب جميع المستويات ابتداء من الهواه و انتهاء بالمشاريع المتطوره و الدليل انه هناك مميزات جباره تجعل اردوينو على قمه المتحكمات الدقيقه و هى امكانيه دمجه فى مشاريع يتم برمجتها بلغات هندسيه متطوره مثل MATLAB و لغه Java حيث ستجد مكتبات برمجيه فى جاهزه للغه الــMATLAB و الجافا خاصه بالتعامل مع اردوينو, و ستجد فى صفحه المراجع بعض الموارد التى تعلمك كيفيه استخدام الاردوينو مع المات لاب, كما يمكنك ايضا استخدام لغه Java و لغه VB.NET فى التواصل مع بوردات اردوينو المختلفه
على سبيل المثال: يمكنك عمل دائره استشعار للطقس و الحراره بالاردوينو و ارسا ل البيانات الى MATLAB على الحاسب الآلى لاجراء التحليلات الحسابيه المتطوره المتوفر بلغه MATLAB.
من اكثر المشاريع التى اثارت اعجابى كانت مستكشف زلازل بأستخدام الاردوينو و لغه برمجه MATLAB و كانت من تصميم شاب فى السادسه عشر من عمره فى الولايات المتحده حيث قام بعمل وحده استعشار و تحليل للزلازل بتكلفه لا تتجاوز 80 دولا ر باستخدام بعض المستشعرات و بورده اردوينو فقط مع العلم ان الدوائر الالكترونيه المماثله قد تتكلف اكثر من 2000 دولار س
انواع بوردات اردوينو Arduino Boards
Arduino UNO, Arduino Mega, Arduino Nano, Arduino Mini, Arduino Lilypad, Arduino Demulive, Boarduino
تختلف البوردات عن بعضها البعض من ناحيه عدد المخارج و المداخل و التى تحدد عدد الاجهزه التى يمكن التحكم بها و عدد الحساسات Sensors التى يمكن دمجها مع البورده و كذلك نوع المتحكمه الدقيقه و سرعه المعالج الموجود بداخلها و امكانيه تبديلها ام لا و سوف نتناول فى هذا الكتاب بورده Arduino Uno
نظره عامه على دائره Arduino Uno
دائرة الكترونيه صغيره تستخدم فى برمجه متحكمه من شركه اتمل ATmega328 و توفر هذه الدائرة منافذ لتوصيل المكونات الالكترونيه الى المتحكمه مباشره عن طريق 14 (مدخل | مخرج) من النوع الرقمي Digital In/out من هذه ال14 يوجد 6 يمكن استخدامها كمخارج PWM أو ما يعرف بالتعديل الرقمي المعتمد على عرض النبضة(Pulse-Width modulation) و سوف نتحدث عن هذه الخاصيه فى فصل كامل يسمى الدخل و الخرج التماثلى Analog Inputs & Outputs
أيضا تحوي الدائرة على مهتز كريستال Crystal Oscillator بتردد 16MHz، بالاضافه الى مدخل USB من أجل التواصل مع الحاسب، و هناك مدخل للطاقة منفصل ، بالاضافه الى ICSP header والذي يعتبر طريقه اضافيه لبرمجة المتحكمة وهي لا تزال موصلة بالبورده (بخلاف الـUSB) و يمكنك ان تعتبر بورده اردوينو هذه بورده تطوير و برمجه مصغره و مٌٌهيئه للاستخدام المباشرDevelopment Board فهى تقريبا تحوي كل ما تحتاج لكي تعمل عليها سواء عن طريق منفذ الــUSB أو عن طريق مصدر خارجى للطاقه مثل البطاريه.
امداد الدائره بالطاقه Power up
يمكنك امداد الدائرة بالطاقة إما من خلال منفذ الــUSB فقط أو عن طريق استخدام مصدر خارجي للكهرباء كمحول AC\DC ليمد الدائرة بالجهد اللازم للعمل او حتى عن طريق بطارية 9 فولت او 4 بطاريات 1.5 فولت حيث يتم توصيل طرفي البطارية الى مدخل الارضي Gnd و الــ Vin في الدائرة.
تستطيع الدائرة العمل على جهد يتراوح بين ال 6 -20 فولت، لكن يجب الانتباه حيث انه اذا قمنا بتأمين جهد أقل من 7 فولت فإن المخرج المتحكمة Pin 5V قد لا يستطيع تأمين جهد خرج يبلغ الــ5 فولت المطلوب وقد يؤدي الى عدم استقرار الدائرة، اما اذا قمنا بتزويد الدائرة بجهد أعلى من 12 فولت فإنه قد يؤثر على عنصر تنظيم الجهد voltage regulator ويؤدى الى ارتفاع درجة حرارته مما يؤدي الى تلف البورده , لذا فإن مجال الجهد الذي يفضل استخدامه هو من 7 الى 12 فولت.
مخارج و مداخل الطاقه الكهربيه للمتحكمة
Power Inputs/Outputs
Vin : جهد الدخل عندما نستخدم مصدر طاقة خارجي، يمكننا تأمين الجهد من خلال هذا المدخل ، إذا كنا نقوم بتأمين الطاقة للدائرة من خلال مدخل المحول يمكننا الوصول له من خلال هذا المدخل أيضاً.
5V : جهد منتظم يستخدم لتأمين الطاقة للعناصر المستخدمه على الدائرة و سوف نستخدمه لتوفير الطاقه للقطع الالكترونيه التى سنضيفها, قد يأتي هذا الجهد من خلال Vin عبر منظم جهد داخلي أو تأمينه من خلال منفذ الUSB أو أي مصدر جهد منتظم بقيمه 5 فولت.
3.3V : مصدر للجهد بقيمة 3.3 فولت مؤمن من قبل منظم الجهد الداخلي للدائرة و أقصى قيمة لسحب التيار من خلال هذا الخط هو 50 ميلي أمبير.
GND : الخط الارضي.
المعالج الدقيق و الذاكره Microprocessor
المتحكمات الدقيقه اشبهه بوحده حاسب آلى صغيره الحجم و تحوي المتحكمه الدقيقه ATmega328 على معالج بسرعه 16 ميجا هرتز و ذاكرة كليه تساوى 32Kilo Byte
o Boot loader : السوفت وير المسؤل عن كيفيه فهم الدائره للغه Arduino C
o :SRAM تعتبر الذاكره المُستخدمه فى تسجيل المتغيرات بصوره مؤقته.
o Flash Disk : مساحه تخزينيه تستخدم فى تخزين البرنامج الذى سنكتبه لتشغيل المتحكمه , فى الوهله الاولى قد يبدو هذا الرقم صغير جدا لكنه فى الحقيقه كافى لكتابه الكثير من الاوامر كما سنرى فى الامثله القادمه.
o EEPROM : الذاكره المسؤله عن تسجيل بعض المتغيرات بصوره دائمه داخل المتحكمه و تظل محتفظه بقيتمها حتى بعد فصل الكهرباء و يمكننا ان نعتبرها مثل السواقه Hard Disk فى الكمبيوتر الشخصى.