Simply Arduino
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
رخصة<br />
الكتاب<br />
الكتاب يخضع للرخصه الرهره<br />
مفتوحهه الرصهه ر بصههور<br />
األلكتروني مجانها و يركنه<br />
ان نشهره او ُع له كيفرها<br />
شاء شرط أن ذكر الرص ر<br />
الصههور ثيثيهه ادبعهها<br />
ههك الكتههاب<br />
الرسههتخ م مأخوذه من موقهع<br />
و خضههع ايضهها للرخصهه<br />
الرره مفتوح الرص ر<br />
يركنهه ان سههتلك ذلهه<br />
العرك بصوره جاري بشرط<br />
من<br />
مباشر الرصول علك اذن الرؤلف.<br />
oomlout.co.uk<br />
<br />
<br />
1
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
اذا اعجب الكتاب وأحببت<br />
عم الكا ب و الرزي من<br />
الكتب العربي الرره<br />
مفتوح الرص ر ي تر<br />
بالتواصك معك<br />
abdallah.ali.abdallah.elmasry@gmail.com<br />
اهداء<br />
الى والدى العزيز....<br />
الى والدتى العزيزة....<br />
الى كل من ساهم فى نشر المعرفه بحريه<br />
www.networkset.net<br />
أيمن<br />
النعيمي<br />
www.aabouzaid.com<br />
www.shabayek.com<br />
أحمد محمد أبوزيد<br />
رءوف شبايك<br />
2
Simplify<br />
linuxac.org<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مجتمع لينكس العربى<br />
فهرس الكتاب<br />
رخصه<br />
معلومات حول الكتاب........................................................................ (<br />
الفصل األول: مقدمه عن اردوينو و المتحكمات الدقيقه.................................... ( 7<br />
الفصل الثانى:<br />
الفصل الثالث: ابدأ مع اردوينو<br />
الفصل الرابع: استخدام الحساسات<br />
الفصل الخامس: التواصل مع الحاسب اآللى.............................................. )92(<br />
الفصل السادس: استخدام المحركات<br />
الفصل السابع: وسائل األدخال و االخراج المتقدمه................................... )125(<br />
الفصل الثامن: أغطيه اردوينو<br />
الفصل التاسع: تاريخ تطور اردوينو........................................................<br />
تعلم و شارك االخرين<br />
ملحق المراجع: مراجع )كتب + مواقع<br />
الكتاب.................................................................................... ( 1 )<br />
) 5<br />
)<br />
التجهيزات...................................................................... )21(<br />
)43( ..............................................................<br />
)70( ..........................................................<br />
)113( ....................................................<br />
)166( ..............................................................<br />
)173(<br />
)179( .................................................Fablab Egypt<br />
تعليميه(.......................................... )183(<br />
3
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
4
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الفئات المستهدفه من الكتاب<br />
الى كل من يريد تعلم تقنيات التحكم اآللى بسهوله و يسرر سرواء كراك لر<br />
معرفه تقنيه او خبره بالمتحكمات الدقيقه او حتى ما زلت فرى بدايره تعل رم<br />
هرر ا المجررال و الررى كررل مررن لديرره الشرر ا لمعرفرره الجيررل الجديررد مررن<br />
المتحكمات الدقيقه مفتوحه المصدر<br />
البرمجة حتى<br />
هرررل احتررراج الرررى خبرررره فرررى مجرررال اإللكترونيرررات و<br />
اقرأ ه ا الكتاب ؟<br />
بعض المعرفره باساسريات االلكترونيرات و البرمجره محبر ه<br />
جدا الكنها ليسرت شررط ضررورى للرتعلم فلقرد قمرت بكتابره<br />
المعلومات بأسلوب سهل و ميسر قدر االمكاك و يمكن اذا<br />
واجهت صعوبه ما اك تراسلنى على البريد االلكترونى <br />
<br />
مررررا الرررر ى سررررو<br />
الكتاب؟؟<br />
اتعلمرررره فررررى هرررر ا<br />
كيا تصمم اإللكترونيات التفاعلية بنفس<br />
العمل على بيئة تطوير اردوينو <strong>Arduino</strong> IDE<br />
التحكم االلكترونى لكل ما هو حول من اجهزه الكترونيه<br />
<br />
<br />
<br />
سريجعل الكتراب تكتسرب المهرارات<br />
األوليه لفهم األكواد البرمجيره المسرتخدمه<br />
فى العديد من المشراريع الترى تعتمرد علرى<br />
اردوينو , ولقد اضفت العديد من المصرادر الخارجيره<br />
التى تحتوى على العديد من المشاريع الرائعره و الترى<br />
يمكن اك تنف ها بنفس بعد قراءة الكتاب<br />
5
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
كيا تم تصميم الكتاب ؟<br />
تررررم تصررررميم الكترررراب بأسررررلوب يعتمررررد علررررى الشررررر باألمثلرررره<br />
و حيرررث يرررتم تقرررديم المعلومرررات علرررى هيئررره أمثلررره<br />
ص يره و يقدم كل مثال جزء جديد فى تعلرم ل ره برمجره اردوينرو<br />
كمررا سررتجد فرره نهايررة كررل فصررل صررفحه مخصصرره لكررى تكتررب<br />
مالحظات الشخصية.<br />
,<br />
Examples<br />
اذا كنررت مررن مسررتخدمه وينرردوز يمكنرر أك تكتررب داخررل ملفررات<br />
الكتب اإللكترونية من نوع PDF<br />
و اذا كنررت تقرررأ الكترراب باسررتخدام لررو الكترونررى Tabletمثررل يمكنرر اسررتخدام<br />
مع مالحظه اك الكتاب متوافق مع جميرع اجهرزه التابلرت المختلفره<br />
برنامج<br />
التى تمتل شاشه بقياس 7 بوصه او اكبر .<br />
باستخدام برنامج Foxit PDF<br />
Ipad<br />
Good Reader<br />
6
Simplify<br />
اردوينو ببساطة<br />
الفصل األول<br />
<strong>Arduino</strong><br />
مقدمه الى عالم اردوينو و المتحكمات الدقيقه<br />
Introduction to <strong>Arduino</strong> & microcontrollers<br />
7
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
من زمرن لريس ببعيرد كراك العمرل علرى صرناعه دائرره الكترونيره للقيرام بو يفره<br />
معينه يعنى بناء تصميم الكترونى معقد من مكونات مثل المقاومات, المكثفرات,<br />
الملفات, الترانزستور...الخ.<br />
كانت الدوائر االلكترونيه ثابته التصميم و اعاده ت ير او تعديل جزء بسيط فيها كاك يعنى الكثير من<br />
عمليررات معقررده مثررل اللحررام و قطررع االسررالك و اعرراده<br />
النظر فى المخططات االلكترونيره و الكثيرر مرن االمرور<br />
المزعجررره و الترررى ادت إلرررى اقتصرررار و يفررره تطررروير<br />
المنتجررات االلكترونيرره علررى مجموعرره مررن المهندسررين<br />
المتخصصين فقط.<br />
بفضل التطور التكنولوجى فى مجرال اشرباه الموصرالت<br />
و اختررراع الرردوائر<br />
اصررررب مررررن<br />
المدمجرررره<br />
الممكررن وضررع دائررره الكترونيرره كاملرره علررى شررريحه صرر يره<br />
حجمها قد ال يتجاوز رأس الدبوس حتى انره فرى الوقرت الحرالى<br />
هنررراك دوائرررر الكترونيررره حجمهرررا يقررردر بالنرررانو مترررر<br />
و التى ال يمكن روئيتها اال بأستخدم مكبرات ضوئيه<br />
خاصه.<br />
Nano<br />
Integrated Circuits (IC)<br />
Meter<br />
الررى هررور جيررل خررا مررن الرردوائر االلكترونيرره<br />
كمررا ادى تطررور<br />
و هرى اشربه بكمبيروتر مصر ر قابرل للبرمجره<br />
يسمى المتحكمات الدقيقه<br />
الداء مجموعره مرن الو رائا مثرل قرائره درجره حرراره, الرتحكم فرى محررك كهربرى, او حترى اداره<br />
خطوط االنتاج فى المصانع الكبرى, و كرل ذلر<br />
يررتم ببسرراطه عررن طريررق اوامررر برمجيرره و برر ل<br />
تحولرررررت تقنيررررره صرررررناعه الررررردوائر و االنظمررررره<br />
االلكترونيررره مرررن التصرررميم االلكترونرررى البحرررت<br />
المعتمرد علرى المكونرات الصرلبه فقرط الرى اوامرر<br />
برمجيررره يمكرررن الى فررررد اك يكتبهرررا و يصرررممها<br />
بنفسه بسهوله و يسر.<br />
Integrated Circuits<br />
Micro Controllers<br />
8
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
,<br />
تتميز المتحكمات الدقيقه ايضرا بأمكانيره الت يرر و التعرديل فرى اى<br />
وقررت بكررل بسرراطه لررو اردت اك ت يررر شرريئا مررا فررى مشررروع<br />
يمكن ذل بالتعديل فى السطور البرمجيه و اعاده وضع االوامر<br />
الجديده علرى المتحكمره الدقيقره و تجربتهرا اكثرر مرن مرره و هكر ا<br />
الى اك تصل بمشروع للهد المنشود<br />
...<br />
اردوينو<br />
<strong>Arduino</strong><br />
Open Hardware<br />
هى بورده الكترونيره مفتوحره المصردر<br />
لتطررروير الكثيرررر مرررن االفكرررار و المشررراريع<br />
المتعلقه بالتحكم اآللى بصوره سهله و بسيطه عن طريق استخدام ل ره<br />
و يررتم برمجررره المتحكمررره<br />
برمجرره مفتوحررره المصررردر<br />
الموجوده علرى البرورده بأسرتخدام برنرامج خرا يسرمى<br />
و<br />
الررررر ى يتررررروفر مجانرررررا للتحميرررررل مرررررن موقرررررع اردوينرررررو الرسرررررمى<br />
<strong>Arduino</strong> C<br />
<strong>Arduino</strong><br />
IDE: Integrated Development Environment<br />
http://arduino.cc<br />
ما<br />
معنى اك اردوينو مفتو المصدر ؟؟<br />
يعنررررى انرررره يمكنرررر االطررررالع و التعررررديل علررررى<br />
التصررررميمات الهندسررررية و الشررررفرات المصرررردرية<br />
لكررل مررن برروردات اردوينررو<br />
و<br />
المختلفررة<br />
بمرا يتناسرب معر و يمكنر ايضرا تطروير<br />
بحريررررره تامررررره و<br />
ل رررررة برمجررررره<br />
االطرالع علرى الشرفرات المصردرية الخاصرة بهرا<br />
كمرا اك كرل هر ه المميرزات و البرمجيرات مجانيره<br />
تمامررا علررى غرررار بعررض البيئررات التطررويره مثررل<br />
Mikro C و الترى تتطلرب منر شرراء رخصره<br />
<strong>Arduino</strong><br />
Source Codes<br />
<strong>Arduino</strong> Boards<br />
IDE<br />
<strong>Arduino</strong> C<br />
9
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكلفه تصل فى بعض االحياك الى اآل الدوالرات الستخدامها.<br />
ما يميز بوردات اردوينو عن باقى البوردات التطويريه للمتحكمات الدقيقه االخرى<br />
هو مدى السهوله التعامل معها و بساطه الل ه<br />
البرمجيه و التى عمل فريق من ايطاليا على تطويرها من عام 2005 حتى االك و لقد تم اشتقاق<br />
ل ه اردوينو البرمجيه من ل ه processingو ل ه و التى تعد اساس ل ات البرمجه<br />
الحديثه و صاحبه ثوره تقنيه البرمجيات.<br />
Micro<br />
,<br />
"سى C"<br />
Controllers Development boards<br />
قد يظن البعض اك اردوينرو مصرمم<br />
للهرواه فقرط الكرن هر ا لريس صرحي<br />
لقررررد تررررم تطررررويره ليناسررررب جميررررع<br />
المسررررتويات ابتررررداء مررررن الهررررواه و<br />
انتهاء بالمشاريع المتطوره و الدليل<br />
انررره هنررراك مميرررزات جبررراره تجعرررل<br />
اردوينررررو علررررى قمرررره المتحكمررررات<br />
الدقيقررره و هرررى امكانيررره دمجررره فرررى<br />
مشاريع يتم برمجتها بل ات هندسريه<br />
و ل ره<br />
متطوره مثرل<br />
حيث ستجد مكتبات برمجيه<br />
فى جاهزه لل ره الرMATLAB و<br />
الجافا خاصه بالتعامل مرع اردوينرو,<br />
و ستجد فى صرفحه المراجرع بعرض<br />
الموارد التى تعلم كيفيه استخدام االردوينو مع المات الب, كما يمكن ايضرا اسرتخدام ل ره Java<br />
و ل ه VB.NET فى التواصل مع بوردات اردوينو المختلفه<br />
MATLAB<br />
Java<br />
10
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
على سبيل المثال: يمكن عمل دائره استشعار للطقرس و الحرراره براالردوينو و ارسرا ل البيانرات<br />
علررى الحاسررب اآللررى الجررراء التحلرريالت الحسررابيه المتطرروره المترروفر بل رره<br />
الررى<br />
MATLAB<br />
.MATLAB<br />
من اكثر المشاريع التى اثارت اعجرابى كانرت مستكشرا زالزل بأسرتخدام االردوينرو و ل ره برمجره<br />
و كانت من تصميم شاب فى السادسه عشر من عمره فى الواليات المتحرده حيرث قرام<br />
بعمل وحده استعشار و تحليل للزالزل بتكلفه ال تتجراوز 80 دوال ر باسرتخدام بعرض المستشرعرات<br />
و بورده اردوينو فقط مع العلم اك الدوائر االلكترونيه المماثله قد تتكلا اكثر من 2000 دوالر س<br />
MATLAB<br />
انواع بوردات اردوينو<br />
<strong>Arduino</strong> Boards<br />
11
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
<strong>Arduino</strong> UNO, <strong>Arduino</strong> Mega, <strong>Arduino</strong> Nano, <strong>Arduino</strong><br />
Mini, <strong>Arduino</strong> Lilypad, <strong>Arduino</strong> Demulive, Boarduino<br />
تختلا البوردات عن بعضها البعض من ناحيه عدد المخارج و المداخل و التى تحدد عردد االجهرزه<br />
Sensors<br />
التى يمكن الرتحكم بهرا و عردد الحساسرات الترى يمكرن دمجهرا مرع البرورده و كر ل نروع<br />
المتحكمه الدقيقه و سرعه المعالج الموجود بداخلها و امكانيه تبرديلها ام ال و سرو نتنراول فرى هر ا<br />
الكتاب بورده<br />
<strong>Arduino</strong> Uno<br />
نظره عامه على دائره<br />
<strong>Arduino</strong> Uno<br />
دائرررة الكترونيرره صرر يره تسررتخدم فررى برمجرره<br />
و تروفر<br />
متحكمه من شركه اتمرل<br />
هر ه الردائرة منافر لتوصريل المكونرات االلكترونيره<br />
الررى المتحكمرره مباشررره عررن طريررق 14 )مرردخل<br />
ATmega328<br />
12
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
6<br />
Digital In/out<br />
PWM<br />
)modulation<br />
Analog Inputs & Outputs<br />
مرن هر ه ال14 يوجرد يمكرن اسرتخدامها كمخرارج<br />
مخررج( مرن النروع الرقمره<br />
أو مرررا يعررررر بالتعررررديل الرقمررره المعتمررررد علرررى عررررر النبضررررة) Pulse-Width<br />
و سو نتحدث عن ه ه الخاصيه فى فصل كامل يسمى الدخل و الخرج التماثلى<br />
أيضررا تحرروا الرردائرة علررى مهتررز كريسررتال<br />
،MHz16 Crystalبتررررررررررردد Oscillator<br />
مدخل USB<br />
من أجل التواصل<br />
باالضافه الى مع الحاسب، و هناك مدخل للطاقرة منفصرل ،<br />
والر ا يعتبرر<br />
باالضرافه الرى<br />
لبرمجررة المتحكمررة وهرره ال<br />
طريقرره اضررافيه الرUSB( و<br />
ترزال موصرلة برالبورده )بخرال برورده<br />
هر ه تعتبر بورده اردوينو اك يمكن تطرررررروير و برمجرررررره مصرررررر ره و مٌٌٌ هيئرررررره<br />
لالستخدام المباشر<br />
فهى تقريبرا تحروا كرل مرا تحتراج لكره تعمرل<br />
عليها سواء عن طريق منف الUSB أو عن طريق مصدر خارجى للطاقه مثل البطاريه.<br />
امداد الدائره بالطاقه<br />
ICSP header<br />
Development Board<br />
Power up<br />
يمكن امرداد الردائرة بالطاقرة إمرا مرن خرالل منفر الرUSB<br />
فقرررط أو عرررن طريرررق اسرررتخدام مصررردر خرررارجه للكهربررراء<br />
ليمد الدائرة بالجهد الالزم للعمل او حتى<br />
عن طريق بطارية فولت او بطاريات فولت حيث<br />
يتم توصريل طرفره البطاريرة الرى مردخل االرضره و<br />
ال فه الدائرة.<br />
Gnd<br />
1.5<br />
4<br />
كمحول AC\DC<br />
9<br />
Vin<br />
13
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فولرت، لكرن<br />
برين ال 6 علرى جهرد يترراو تسررررتطيع الرررردائرة العمررررل<br />
فولرت فر ك المخررج<br />
قمنا بتأمين جهد أقل من يجرب االنتبراه حيرث انره اذا<br />
يسررتطيع تررأمين جهررد خرررج يبلرر الرر5 فولررت<br />
قررد ال<br />
عررردم اسرررتقرار الررردائرة، ا مرررا اذا قمنرررا بتزويرررد<br />
المطلرروب وقررد يررىدا الررى<br />
فولت ف نره قرد يرىثر علرى عنصرر تنظريم الجهرد<br />
الدائرة بجهد أعلى مرن<br />
ويرىدى الرى ارتفراع درجرة حرارتره ممرا يرىدا<br />
voltage regulator<br />
مجال الجهد الر ا يفضرل اسرتخدامه هرو مرن<br />
ل ا ف ك<br />
تلا فولت.<br />
20-<br />
7<br />
12<br />
المتحكمررة Pin 5V<br />
7<br />
البورده , الى الى 12<br />
مخارج<br />
و مداخل<br />
الطاقه الكهربيه<br />
للمتحكمة<br />
Power<br />
Inputs/Outputs<br />
Vin<br />
•<br />
•<br />
: جهرد الردخل عنردما نسرتخدم مصرردر<br />
طاقررة خررارجه، يمكننررا تررأمين الجهررد مررن خررالل هرر ا<br />
المدخل ، إذا كنا نقروم بترأمين الطاقرة للردائرة مرن خرالل<br />
مدخل المحول يمكننا الوصول له من خالل ه ا المدخل<br />
أيضا.<br />
V5<br />
5<br />
•<br />
: جهرررد منرررتظم يسرررتخدم لترررأمين الطاقرررة<br />
للعناصررر المسررتخدمه علررى الرردائرة و سررو نسررتخدمه<br />
لتوفير الطاقه للقطع االلكترونيه التى سنضيفها, قد يأته<br />
هر ا الجهرد مرن خرالل Vin عبرر مرنظم جهرد داخلره أو<br />
تأمينررره مرررن خرررالل منفرر الUSB أو أا مصررردر جهرررد<br />
منتظم بقيمه فولت.<br />
: V3.3<br />
مصررردر للجهرررد بقيمرررة 3.3 فولرررت<br />
مرىمن مرن قبرل مرنظم الجهرد الرداخله للردائرة و أقصرى<br />
قيمرة لسرحب التيرار مرن خرالل هر ا الخرط هرو 50 ميلره<br />
أمبير.<br />
14
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
:<br />
GND الخط االرضه.<br />
•<br />
Microprocessor<br />
و ال اكره الدقيق المعالج<br />
المتحكمرررات الدقيقررره اشررربهه بوحرررده حاسرررب لرررى صررر يره الحجرررم و تحررروا المتحكمررره الدقيقررره<br />
معالج بسرعه 16 ميجا هرتز و ذاكرة كليه تساوى<br />
Kilo Byte 32<br />
ATmega328 على<br />
3%<br />
2%<br />
89%<br />
6%<br />
SRAM - 2 Killobyte<br />
Flash Disk - 29 Killobyte<br />
EEPROM - 1 Killobyte<br />
Bootloader 0.5 Killobyte<br />
<strong>Arduino</strong> C<br />
: Boot loader<br />
السوفت وير المسىل عن كيفيه فهم الدائره لل ه<br />
o<br />
:SRAM تعتبر ال اكره الم ستخدمه فى تسجيل المت يرات بصوره مىقته.<br />
o<br />
Flash Disk<br />
o<br />
o<br />
: مسرراحه تخزينيرره تسررتخدم فررى تخررزين البرنررامج الرر ى سررنكتبه لتشرر يل<br />
المتحكمه , فى الوهله االولى قد يبدو ه ا الرقم صر ير جردا لكنره فرى الحقيقره كرافى لكتابره<br />
الكثير من االوامر كما سنرى فى االمثله القادمه.<br />
الرر اكره المسررىله عررن تسررجيل بعررض المت يرررات بصرروره دائمرره داخررل<br />
المتحكمه و تظل محتفظه بقيتمها حتى بعد فصل الكهرباء و يمكننا اك نعتبرها مثل السواقه Hard<br />
Disk فى الكمبيوتر الشخصى.<br />
: EEPROM<br />
15
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
(I/O)<br />
مداخل و التحكمPins Input & Output<br />
مخارج<br />
كمررداخل أو مخررارج<br />
يمكررن تخصرري الخطرروط الرقميررة االربعرره عشررر )14<br />
وذلر باسرتخدام االوامرر البرمجيره كمرا سرنرى فرى الفصرل الثرانى و تعمرل هر ه الخطروط علرى جهرد<br />
فولت وكل خط يمكن أك يىمن سحب للتيار بحدود ال 40 ميله أمبير، و هناك 6 خطوط<br />
دخل تماثلية Analog ومعنونة من A0 الى A5,بشكل افتراضه تستطيع ه ه المداخل قياس جهد<br />
من صفر حتى 5 فولت.<br />
(Digital Pins<br />
اقصاه 5<br />
مالحظات شخصيه<br />
:<br />
16
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ه ه الصفحه مخصصه لكتابه مالحظات الشخصيه عن الفصل االول :<br />
17
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ر س ول َّللاه ص لهى هَّللا<br />
الْع لْم خ ز ائ ن و م فْت اح ه السُّى ال ، ف س ل وا ي رْ ح مْك م َّللاه ،<br />
ف نهه ي ىْ ج ر ف يه أ رْ ب ع ةٌ : السهائ ل و الْم سْت م ع ، و الْم ع ل م ،<br />
و الْم ج اب ل ه مْ<br />
ع ل يْه و س لهم<br />
18
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الفصل الثانه: التجهيزات<br />
اوال: المكونات الماديه<br />
Hardware & Tools<br />
19
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
كيا تبدأ استخدام اردوينو<br />
و ماذا ستحتاج<br />
سو نستخدم بورده من نوع <strong>Arduino</strong> UNO و ستحتاج للمكونرات التاليره كبدايره:<br />
بعض االمثله ستحتاج اضافات له ه المكونات(<br />
)ملحو ره: فرى<br />
<strong>Arduino</strong> Uno V.3<br />
هىىل اردىىلمس ار ىىئلره عىىس اسىىتلدا اأوامىى<br />
ارد مجيه مس ارحاسب اآلرل و كتابتها فل ذاك<br />
ار تحك ىىىىىىىىىىىه ار يلىىىىىىىىىىىه<br />
ار لضلعه ب اخلها<br />
ATmega328<br />
USB printer cable (1 Meter)<br />
كابى طابعىه رتلصىي اردىلمس بارحاسىب اآلرىل<br />
ي كنك ش اء اى نىل و يضلى اي يكىلي ىي<br />
ىىى م انمكىىىاي حتىىىل ن ي ىىىدب ااعىىىاج ا نىىىاء<br />
ارع ى طىل و واحى متى و سىيكلي اك ى مىس<br />
كافل<br />
رلحه ارتجامب<br />
(Breadboard)<br />
بلمس خاصىه س ىتم ل رت كيىب و فىك ار كلنىا<br />
انركت ونيىىه عليهىىا ب ىىهلره سوي ارحاجىىه ارىىل<br />
رحىال ي كنىك شى اء اى حجى ويضلى<br />
Half<br />
Sized Breadboard<br />
20
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
سايلس ضلئي )ارلاي ممتلضة( Colored Leds<br />
بعض ارلي ا و هل اشىده بار ىابيا ار ىهي<br />
و سع علل سحلي ارتيىام اركه بىل ارىل ضىلء<br />
يضلىى اي سرىىت ى 10 ريىى ا بىىنرلاي و احجىىال<br />
ممتلضه و ستلف بنرلاي م ى انح اأخلى<br />
ارد سلارل اأصض انبيض و انامق<br />
ملاوما Resistors<br />
سنحتاج ارل ملاوما رلتحك فل ارتيام اركه بل<br />
علىىىل مىىى اخ و ممىىىامج ار تحك ىىىه ار يلىىىه و<br />
سنحتاج ار لاوما ارتاريه<br />
Resistor 560 Ohm (x5)<br />
Resistor 10 Killo-Ohm (x5<br />
AVO Meter (multi-meter device)<br />
)<br />
)اختيىىىىام جهىىىىاا يىىىىا كه بىىىىي متعىىىى س<br />
انسىىتم اما و ي ىىتييس يىىا ار لاومىىا و<br />
ف ق ارجه و ش ارتيام اركه بل<br />
بعض انسالك رلتلصيال بيس ار كلنا Wires<br />
ست تم ل فل سلصىي ار كلنىا بدعلىها علىل رلحىه<br />
ارتجامب و ستتعل كيف نلىلل بتجهيى ار ىلك بنض ىك<br />
ك ا سن ى فل ار ضحه ارتاريه.<br />
كيا تجهز<br />
التوصيل أسالك<br />
21
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
يمكن الحصول على وصرالت عاليره الجروده عرن طريرق<br />
اسررتخدام قطعرره مررن كابررل المسررتخدم فررى وصررالت<br />
شررربكات الحاسرررب اآللرررى و تسرررتطيع شرررراءه مرررن محرررالت<br />
مستلزمات الكمبيوتر و الشبكات .<br />
Cat5<br />
,<br />
قرررم باسرررتخدام قشررراره<br />
االسرررررررالك و قررررررر<br />
واحرد سرنتى مترر مرن<br />
تجهيرررررزه كمرررررا فرررررى الصرررررور ه<br />
الجهتين للسل المراد<br />
العمليررررره مرررررره اخرررررى ولكرررررن<br />
االولى ثم كررر نفرس<br />
براطوال مختلفره حترى تحصررل علررى مجموعرره اسررالك<br />
جاهزه لالستخدام<br />
اذا كنرررت ال تفضرررل اك تقررروم بهررر ه العمليررره يمكنررر شرررراء<br />
مجموعرررررره اسررررررالك مقشررررررره جرررررراهزه لالسررررررتخدام مررررررع<br />
و سررررتجدها فررررى محررررالت المكونررررات<br />
االلكترونيه<br />
ال breadboard<br />
22
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
اذا كنت فى مصر و ترغب فى شراء تلر المكونرات هنراك 3 مواقرع<br />
مصررريه علررى االنترنررت تسررتطيع طلررب تلرر المكونررات منهررا و سرريتم<br />
شحنها لبراب منزلر فرى غضروك يرومين و سريتم اضرافه تكلفره الشرحن<br />
على سعر<br />
المكونات.<br />
http://www.fut-electronics.com<br />
http://egyrobots.com<br />
http://www.ram-e-shop.com<br />
اما اذا كنت تفضل زياره بعض المحال بنفس<br />
يمكنررر الررر هاب الرررى محرررل رام الكتررررونيكس<br />
الموجررود فررى " برراب اللرروق و محررل فيوتشررر الكترررونيكس<br />
الموجود امام كليره هندسره عرين شرمس فرى ميرداك عبرده<br />
باشا فى العباسيه .<br />
RAM Electronics<br />
Future<br />
"<br />
Electronics<br />
و اذا كنت فى احدى الدول العربيره او اى دولره اخررى ال يتروفر بهرا محرالت تبيرع<br />
ه ه المكونات )خاصه اردوينو( يمكن زياره الموقرع الترالى و سرتجد عليره الكثيرر<br />
من المنتجات الخاصه بادروينو مع الشحن المجانى<br />
http://www.buyincoins.com<br />
كما يمكن زياره قائمه الموزعين العالميين الردوينو لتبحث عن موزع محلى<br />
قريب من عبر الرابط التالى:<br />
http://arduino.cc/hu/Main/Buy<br />
23
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
محتويات علبه<br />
<strong>Arduino</strong> Uno<br />
ملحو ه قد تختلا مكونات العلبه من بلد الى اخرى على حسب المورد و رقم اصداره البورده<br />
كما قد تحتوى على ملصقات اضافيه الردوينو<br />
24
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ثانيا: تجهيز<br />
البرمجيات<br />
Software's<br />
25
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بيئه تطوير اردوينو (IDE) <strong>Arduino</strong><br />
<strong>Arduino</strong> IDE<br />
االداه المسررتخدمه فررى كتابرره االكررواد البرمجيرره بل رره<br />
تعتبررر بيئرره التطرروير<br />
<strong>Arduino</strong>و C تحويلهررا بعررد ذلرر الررى صرري ه تنفي يرره يمكررن وضررعها علررى المتحكمرره الدقيقرره<br />
الموجوده على البورده .<br />
تتميرز بيئره تطروير اردوينرو بالبسراطه و السرهوله فرى التعامرل فهرى تكراد تخلرو مرن اى تعقيردات فرى<br />
المظهررر العررام و تحترروى فقررط علررى مررا يحتاجرره المبرررمج ليبرردأ تطرروير برررامج بل رره اردوينررو سررى<br />
كما انها تستخدم فى نفس الوقت لرفع البرنامج مباشره الى المتحكمه الدقيقره و بر ل<br />
لن تحتاج الى برنامج اخر مخص لرفع الصي ه التنفي يه للبورده.<br />
<strong>Arduino</strong> C<br />
26
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
سريتم الشرر علرى بيئره تطروير اردوينرو النسرخه الخاصره بوينردوز بأعتبراره اكثرر انظمره التشر يل<br />
شيوعا و شهره بين المستخدمين بالرغم من انى انص بشده بأسرتخدام ليرنكس النره مجرانى و سرريع<br />
و من باالضافه الى انه مفتو<br />
و فى جميع االحوال يمكن العمل على اى نظام تش يل تحب.<br />
,<br />
المصدر Open Source<br />
مررن يريررد التعررر اكثررر علررى نظررام تشرر يل ليررنكس هنرراك كترراب<br />
عربى مجانى ] اوبنتو ببساطه] من تأليا:<br />
أحمد محمد أبوزيد و يشر استخدام نظام تش يل ليرنكس ابونترو<br />
باسررلوب سررهل و ممتررع و يمكنرر تحميلرره مجانررا مررن<br />
27<br />
Ubuntu<br />
على الموقع الرسمى للكتاب :<br />
http://www.simplyubuntu.com/<br />
تنزيل بيئه التطوير <strong>Arduino</strong> IDE<br />
تترررررررروفر بيئرررررررره التطرررررررروير البرمجيرررررررره لجميررررررررع انظمرررررررره التشرررررررر يل<br />
ويمكنرر تحميلهررا مررن الموقررع<br />
الرسمى لمطورى اردوينو على الرابط التالى:<br />
http://arduino.cc/hu/Main/Software<br />
المختلفرره Windows, Linux, MAC
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بالنسبه لمسرتخدمى وينردوز او مراك قرم بتنزيرل االصرداره الخاصره بهمرا مرن الررابط اعراله و سرتجد<br />
ملررا مضررر وط, قرررم بفررر الضررر ط بأسرررتخدام احرردى البررررامج مثرررل ثررم قرررم بتشررر يل ملرررا<br />
7zip<br />
arduino.exe<br />
Software<br />
لمسررتخدمى نظررام ليررنكس اوبنتررو Ubuntu يمكنرر<br />
اسررتخدام مركررز البرمجيررات<br />
<strong>Arduino</strong> IDE<br />
fedora<br />
center<br />
ثررم اضرر ط زر<br />
فقررط ابحررث عررن<br />
و نسخه اوبن سروزى<br />
انظمه لينكس االخرى مثل فيدورا بيئه التطوير موجوده فى مركز البرمجيات الخاصه بالتوزيعه<br />
Install<br />
Open SUSE<br />
و بالنسرربه لمسررتخدمى<br />
سرتجدو<br />
28
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
اك لم تستطع ايجاده يمكن تحميل الملا الخا بلينكس من على الموقع الرسمى.<br />
ملحو ه: تعمل البيئه التطويره الردوينو بصوره اسرع على ليرنكس اكثرر مرن وينردوز لر ل انصر<br />
اذا كررراك جهرررازك المسرررتخدم فرررى عمليررره البرمجررره ذو امكانيرررات متوسرررطه او ضرررعيفه مرررن ناحيررره<br />
يفضل اك تستخدم احدى نسخ لينكس<br />
قررررم<br />
بعررررد االنتهرررراء مررررن<br />
بالخطوات التاليه لتوصيل البورده بالكمبيوتر:<br />
تنصرررريب <strong>Arduino</strong> IDE<br />
Hardware<br />
1<br />
قم بتوصيل بورده اردوينو بالكابل<br />
ادخل الطرر االخرر فرى فتحره فرى USB<br />
الحاسب اآللى و انتظر قليال حتى تظهر لر<br />
رساله تفيد بأك جهراز الحاسرب تعرر علرى<br />
قطعرره عتررراد جديرررده<br />
بعررد هررور تلرر الرسرراله<br />
Found <strong>Arduino</strong><br />
Uno Board<br />
<br />
<br />
29
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
يأتى الوقت لبدأ العمل على البيئه التطويريه<br />
3 4<br />
30
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
التعر على الواجهه الرسوميه لبيئه التطوير<br />
تتكوك بيئه التطوير البرمجيه من واجهه بسيطه و تنقسم الى اربعه اجزاء رئيسيه<br />
:<br />
31
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
االول: شريط القوائم<br />
الثانى: شريط االوامر السريعه<br />
الثالث: منطقه كتابه االكواد البرمجيه<br />
الرابع:الجزء الخا بعر التنبيهات و االخطاء البرمجيه فى بيئه التطوير<br />
تجهيز بيئه التطوير<br />
البيئه التطويره هى اختيرار البرورده الترى سرنتعامل معهرا و يرتم ذلر عرن طريرق<br />
اول خطوه لتجهيز و اختيار Boardثم نختار نروع البرورده المتروفره لردينا و فرى هر ه الحالره<br />
ال هاب الى قائمه كما فى الصوره التاليه<br />
سنختار<br />
Tools<br />
<strong>Arduino</strong> Uno<br />
ثررانه<br />
خطو<br />
ه<br />
تررررررتم<br />
فررررررى<br />
حالرره<br />
هررو<br />
ر ه ه الرساله بعد توصيل اردوينو و التى تفيد بأك الجهاز لرم يجرد تعريفرات لكرى يسرتخدم اردوينرو<br />
و يجرررب اك نقررروم بتنصررريب<br />
)تظهرررر غالبرررا مرررع مسرررتخدمى وينررردوز او<br />
التعريفات كالتالى:<br />
)Windows 7<br />
Vista<br />
32
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
اوال: افت مدير االجهزه Device Manager<br />
كما فى الصور التاليه<br />
33
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
" اختر<br />
تصف الجهاز الختيار التعريفات" ثم اختار الفولدر ال ى يوجد به برنامج اردوينو<br />
34
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعردها سرو تظهرر رسراله تسرأل عرن "اذا مرا كنرت ترغرب فرى تنصريب هر ه التعريفرات ام ال ؟ "<br />
اض ط Okو انتظر قليال حتى تنتهى عمليه تعريا اردوينو بنجا كما فى الصوره التاليه<br />
بعد االنتهاء من تنصيب التعريا الحظ رقم المنف المستخدم فى اردوينو من مدير االجهزه كما فى<br />
نحتاجره الحقرا<br />
, تر كر ذلر الررقم فسرو الصوره التاليره و الترى تظهرر رقرم المنفر مالحظه اك ذل الرقم قد يختلا عندك( .<br />
( مرع<br />
COM3<br />
الخطوه االخيره هى اختيار منف التوصيل بأردوينو من قائمه<br />
Tools – Serial Port<br />
35
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
New<br />
بعد ذل<br />
قائمه<br />
تستطيع البدأ فى كتابه اول برنامج ل على االردوينو و ذل عن طريق اختيار<br />
الموجوده بشريط القوائم كما فى الصوره التاليه<br />
من<br />
File<br />
36
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
او يمكن اختيار New<br />
مباشره من شريط االوامر السريعه<br />
37
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ايضا توفر ل البيئره التطويريره مجموعره مرن االمثلره البرمجيره الجراهزه و الترى تسرتطيع الوصرول<br />
اليها من خالل قائمه الموجوده فى قائمه الرئيسيه كما فى الصوره التاليه<br />
مالحظات شخصيه<br />
File<br />
Examples<br />
:<br />
38
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ه ه الصفحه مخصصه لكتابه مالحظات الشخصيه عن الفصل الثانى<br />
:<br />
39
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فرانسوا مارا أرويه المعرو<br />
فولتير باسم<br />
كس ش ي ارت<br />
يكس مأيه ك<br />
اما مس مس خارضك ار أ ، فإي ر<br />
ار لاب فال سكس أنت ك ارمين<br />
بترد ك ب أيك<br />
40
Simplify<br />
اردوينو ببساطة<br />
الفصل الثالث<br />
<strong>Arduino</strong><br />
لنبدأ العمل<br />
مع اردوينو<br />
Let's get started<br />
41
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
المثال األول:<br />
تش يل دايود ضوئه<br />
Example 1: Blinking led<br />
42
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال<br />
:)1(<br />
<br />
<br />
<br />
<br />
<br />
<br />
بورده اردوينو<br />
<strong>Arduino</strong> Uno<br />
Breadboard<br />
مقاومه كهربيه بقيمه<br />
دايود ضوئى قطر<br />
جهاز الكمبيوتر<br />
560<br />
ملى 10<br />
اوم<br />
ورقه المساعده الموجوده فى ه ه الصفحه<br />
ما هى الورقه المساعده: هى ورقه يتم طباعتهرا<br />
لترشدك الى كيفيه وضع المكونرات االلكترونيره<br />
على لوحه التجارب Breadboard<br />
الخطرررروه االولررررى: قررررم بطباعرررره هرررر ه الصررررفحه<br />
)ملحو ره عنرد الطباعره ال تقرم بتكبيرر او تصر ير<br />
حجم الصفحه و استخدم مقياس 100%( ثرم قر<br />
ورقررره المسررراعده بعرررد ذلررر ضرررع الورقررره فررروق<br />
و ثبتهرررا باسرررتخدام وصرررالت<br />
ثرررم ابررردأ فرررى توصررريل المكونرررات<br />
االلكترونيه فوقها كم فى الصوره<br />
4<br />
Breadboard<br />
pin-header<br />
43
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
Pin-Header<br />
الورقه المساعده<br />
Breadboard<br />
اردوينو<br />
الخطوه الثانيه:من بيئه التطوير <strong>Arduino</strong> IDE<br />
و اكتب االوامر البرمجيه التاليه فى الجزء المخص<br />
قم بعمل ملا جديد من شريط االوامرر السرريعه<br />
لكتابه االكواد<br />
44
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
// Example 01 : Blinking LED<br />
const int LED = 13;<br />
void setup ) (<br />
{<br />
pinMode)LED, OUTPUT(;<br />
}<br />
void loop)(<br />
{<br />
digitalWrite)LED, HIGH(;<br />
delay)1000(;<br />
digitalWrite)LED, LOW(;<br />
delay)1000(;<br />
}<br />
45
Simplify<br />
Verify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الخطوه الثالثه: بعد اك تنتهى من كتابه الكود البرمجى اض ط على زر تأكيرد<br />
االوامر السريعه فى اعلى ال ثرم انتظرر<br />
حتررى تظهررر رسرراله فررى االسررفل تخبرررك بررأك<br />
البرنامج قد انتهى مرن تجهيرز الكرود ليرتم رفعره<br />
على بورده االردوينو<br />
فرى الشرريط<br />
IDE<br />
تأكررد اك كابرررل االردوينررو متصررل بالحاسرررب ثررم قرررم<br />
بالضرر ط علررى زر " رفررع " و ذلرر حتررى<br />
يتم بدأ عمليه تحميل البرنامج الى المتحكمه الدقيقه و انتظر عده ثوانى ستالحظ عنردها اك ال leds<br />
الموجروده علرى البرورده )مكتروب بجانبهرا Tx/Rx(بردأت تضرب بسررعه عاليره ثرم تقرا قليرل و هر ه<br />
االضائه تعنى اك البورده بدأت تستقبل بيانات البرنامج ال ى قمنا بكتابته , بعرد ذلر يبردأ البرنرامج و<br />
يجعل الليد ال ى وضعناه يضب و ينطفب بأنتظام كل ثانيه<br />
Upload<br />
.<br />
شر الكود البرمجى<br />
مبروك <br />
اول مشروع ل بأستخدام اردوينو, و<br />
االك سنقوم بتشري و فهم الكود البرمجى المستخدم<br />
فى ه ا المثال.<br />
......<br />
LED<br />
const int LED = 13;<br />
يقوم ه ا االمر بعمل ثابت<br />
constant قيمته = 13<br />
و اسمه<br />
سىال لماذا كتبنا ه ا الثابت ؟؟<br />
نقرررروم بأسرررررتخدام الثوابررررت حترررررى تسررررهل علينرررررا تسررررميه المخرررررارج و المرررررداخل<br />
46
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
)Input/Output Pins(<br />
13<br />
للمتحكمه الدقيقه, فمثال فرى هر ا البرنرامج قمنرا بتعريرا هر ا الثابرت<br />
حتى نعبر عن المخرج رقم بأك اسمه و ب ل لرو اردنرا اك نرأمر المتحكمره فرى اى جرزء<br />
من اجزاء البرنامج الحقا بأك تش ل الليد الموجود على المخرج رقرم او اك تقروم بأطفراء ذلر<br />
الليد لن نحتاج عندها ل كر الرقم و انما سرن كر كلمره LED مباشرره و سرتفهم المتحكمره الدقيقره اننرا<br />
نقصد به ا المخرج رقم 13<br />
13<br />
LED<br />
Void setup ) (<br />
{<br />
pinMode)LED,OUTPUT(;<br />
}<br />
السطر الثانى من اوامر البرنامج<br />
هو تعريا و يفه ال pin رقم<br />
13 و التى نرمز لها بأسم LED<br />
فى برامج المتحكمات الدقيقه يتكوك البرنامج من 3 مراحل و هى كالتالى:<br />
المرحله االولى: اك تقوم بتعريا اى مت يرات او ثوابت فى البرنامج ال ى سو نقوم بكتابته<br />
المرحلرره الثانيرره: تتميررز المتحكمررات الدقيقرره اك جميررع ال Digital Pins يمكررن اك تسررتخدم امررا<br />
كمخرج او مدخل و فى ه ا المرحله نقوم بضبط اعدادات المخارج و المرداخل و تعريرا المتحكمره<br />
مررثال سررو تسررتخدم كمخرررج او اك ال Pin و<br />
اك الرر Pin رقررم<br />
هى المرحله الثانيه.<br />
يستخدماك كمدخل للبيانات و تعتبر الداله<br />
6 سررو<br />
رقررم 5<br />
setup ( )<br />
1 او 12 او 13<br />
الحاله<br />
يرررتم اسرررتخدام االمرررر<br />
ستعمل كمدخل ام كمخررج حيرث يرتم كتابره رقرم او اسرم<br />
سابقا, ثم يتم كتابه حاله التش يل او<br />
)مدخل او مخرج( بصوره<br />
pinMode(pin number, state);<br />
رقم Pin الر Pin<br />
OUPUT INPUT<br />
.capital<br />
لتحديرررد و يفررره الPin و هرررل<br />
اذا قمنرا بتعريرا ثابرت مخصر<br />
و الحظ انره يجرب كتابره حررو كلمره<br />
ايضا يجب اك تكتب جميع اعدادت المخارج و المداخل بداخل اقواس الداله<br />
setup ( ) {write your configurations here }<br />
على سبيل المثرال اذا اردنرا اك<br />
47
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
نخبر المتحكمه اك ال pin العاشره و الحاديه عشر و الثالثه عشر<br />
هى مدخل فسنقوم بكتابه االوامر التاليه:<br />
هرم مخرارج واك الpin<br />
الثانيره<br />
void setup ) (<br />
{<br />
pinMode)11,OUTPUT(;<br />
pinMode)12,OUTPUT(;<br />
pinMode)13,OUTPUT(;<br />
pinMode)2,INPUT(;<br />
}<br />
الحظ : انه يجب بعد اك ننتهى من كل<br />
امر يجب اك نضع عالمه الفاصله المنقوطه<br />
و اذا نسيتها فى اى امر سو تظهر ل رساله<br />
خطأ عندما تقوم بعمل تأكيد للبرنامج<br />
(;)<br />
verify<br />
المرحلره الثالثره: فرى هر ه المرحلره نقروم بكتابره البرنرامج نفسره و مرا نريرد مرن المتحكمره اك تقعلره<br />
بالظبط و فى حاله البرنامج السابق ستقوم المتحكمره بتشر يل الليرد لمرده ثانيره ثرم تطفئره لمرده ثانيره و<br />
هك ا مرار و تكرار.<br />
قم بتش يل LED<br />
ثم انتظر<br />
void loop( )<br />
{<br />
digitalWrite)LED, HIGH(;<br />
delay)1000(;<br />
1000<br />
ملى ثانيه<br />
digitalWrite)LED, LOW(;<br />
قم بأطفاء LED<br />
delay)1000(;<br />
1000 ثم انتظر<br />
ملى ثانيه<br />
48
اردوينو ببساطة<br />
Simplify<br />
}<br />
<strong>Arduino</strong><br />
يتم كتابه برنامج المتحكمه داخل الداله<br />
استخدمنا االمر;(HIGH<br />
او<br />
و عنردما نريرد تشر يل الليرد نسرتخدم<br />
لتطبيق جهد = صفر.<br />
, void loop ( ) {your program}<br />
digitalWrite(LED,<br />
= 0 LOW حيث<br />
HIGH<br />
delay (1000);<br />
HIGH = 5 Volt<br />
.<br />
فى ه ا المثرال<br />
و هو المسىل عن تطبيق جهد كهربى اما<br />
نقوم بكتابه اسم المخرج اوال ثم الجهد ال ى نريد تطبيقه<br />
لتطبيرق جهرد 5 فولرت و عنرد اطفائره نسرتخدمLOW<br />
فهرو يسرتخدم الخبرار المتحكمره كرم مرن الوقرت يجرب اك<br />
اما بالنسبه لألمرر<br />
تنتظر قبرل تنفير االمرر الترالى و بهر ا االمرر يمكننرا اك نرتحكم فرى كرم مرن الوقرت يجرب اك يعمرل او<br />
يطفب الليد<br />
digitalWrite)LED, HIGH(;<br />
delay)1000(;<br />
و كما شاهدنا فى المثال السابق:<br />
LED<br />
5<br />
ثرم<br />
فولرت HIGH علرى المخررج االوامر تعنى اك المتحكمه سرتطبق جهرد يسراوى و تل و نالحظ انه عنرد كتابره الوقرت فرى بررامج المتحكمرات الدقيقره يرتم اسرتخدام<br />
ملى ثانى تنتظر و التى تعنى جزء من الرا مرن الثانيره و يمكننرا اسرتخدام النرانو<br />
الملى ثانيه<br />
و المايكرو ثانيه Micro-Second<br />
Nano-<br />
1000<br />
millisecond<br />
second<br />
Low<br />
بعد ذل تقوم المتحكمه بتطبيق جهد يساوى صفر فولت و ال ى يعنى اك الليد سو<br />
ثم يظل منطفب ملى ثانيه اخرى = واحد ثانيه<br />
ينطفرب<br />
.<br />
1000<br />
ماذا عن اول سطر فى البرنامج؟؟<br />
// Example 1 Blinking led<br />
يحتررراج المبررررمجين عنرررد كتابررره اى برنرررامج مهمرررا كانرررت الل ررره البرمجيررره الرررى نظرررام للتعليقرررات<br />
و التعليقات هى جمل تساعد المبرمج على فهم و تنظيم الكود البرمجرى و ال تحتسرب<br />
بتجاهل التعليقات عرن نقرل البرنرامج الرى<br />
فى اجزاء البرنامج , بمعنى اخر سيقوم<br />
الصوره التنفي ه و نقله و تش يله على المتحكمه الدقيقه .<br />
<strong>Arduino</strong> IDE<br />
comments<br />
يمكن كتابه التعليقات فى اردوينو فى اى مكاك تشاء<br />
باضافه قبل بدايه السطر.....مثال:<br />
و يمكن اعتبار<br />
اى جمله انهرا تعليرق اك قمرت<br />
// Hello I'm Abdallah<br />
// I'm Using comments<br />
"//"<br />
49
Simplify<br />
// <strong>Arduino</strong> is Sooooo funny<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
هناك اسلوب اخر لكتابه التعليقات الطويله و هى باستخدام الشرطه المائله و النجمه فى اول الكرالم<br />
ثم كتابه نجمه و شرطه مائله فى نهايه الكالم .....مثال:<br />
/* Hello I'm Abdallah and I Love <strong>Arduino</strong>, and you<br />
are going to learn The best microcontroller system in<br />
//<br />
the world )^_^( */<br />
ملحو ه: فى الطريقه االولى لكتابه التعليقرات يجرب اك تكترب قبرل كرل سرطر تريرد اك يتجاهلره<br />
بالبرنامج باعتباره تعليق, لكن فى الطريقه الثانيره نكترب فرى بدايره الرن ثرم نكترب مرا نريرد مرن<br />
كرالم و نصرو و فرى النهايره نخرتم بر /*, لر ل تسرتخدم الطريقره الثانيره فرى التعليقرات الطويلره و<br />
الطريقه االولى فى التعليقات القصيره التى غالبا ما تكوك سطر واحد.<br />
/*<br />
المثال الثانى: تطوير للمثال السابق ليعمل فقط عند ض ط مفتا<br />
)سويتش( من<br />
نوعbutton Push<br />
50
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فه ه ا المثال سنقوم بتطوير الفكره السابقه و سنجعل الليد يعمل فى حاله اذا ضر ط المسرتخدم علرى<br />
و هو اشهر انواع السويتشات المستخدمة فه األجهزة اإللكترونية.<br />
زر من نوع<br />
push button<br />
مكونات المثال )2(:<br />
<br />
بورده اردوينو<br />
<strong>Arduino</strong> uno<br />
Breadboard<br />
Push button<br />
Led 10 mm<br />
<br />
<br />
<br />
51
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مقاومه 10<br />
كيلو اوم<br />
مقاومه560 اوم<br />
بعض السلوك للتوصيل<br />
<br />
<br />
<br />
قم بوضع السويتش على لوحه التجرارب ثرم وصرل احردى طرفيره بالمردخل 5v باسرتخدام سرل علرى<br />
برورده اردوينرو و الطرر االخرر بالمقاومره العشرره كيلرو اوم و مرن نفرس النقطره قرم بتوصريل سرل<br />
للمدخل رقم2 على اردوينو بورد و بعد ذل قم بتوصيل طر المقاومه الثانى بالمدخل االرضى<br />
ما الهد<br />
من ه ه الخطوه ؟؟<br />
.<br />
Digital input<br />
, عند ض ط الزر تنطلق نبضره بقيمره 5<br />
تعمل تل الدائره على توفير دخل رقمه<br />
فولرت و الترى تعتبرهرا المتحكمره الدقيقره اشراره مرن نروع HIGH و عنرد تررك الرزر ينفصرل التيرار<br />
الكهربى و يصب الدخل يساوى صفر فولت و ال ى تعتبره المتحكمره LOW و سرو نسرت ل هر ا<br />
االمر لتعديل المثال االول لكى يعمل فقط عندما يكوك الدخل HIGH<br />
الخطوة الثانية: كتابه األكواد البرمجية التالية<br />
فه <strong>Arduino</strong> IDE<br />
نصيحه: قم بكتابه األوامر البرمجيه بنفس وال تأخ ها نسخ و لصق من الكتراب و ذلر حتره تردرب<br />
نفس على كتابه الكود<br />
المرحله االولى: تعريا<br />
المت يرات و الثوابت<br />
// Example_2_Blinking_with_Switch<br />
const int ledPin = 13;<br />
const int buttonPin = 2;<br />
int val;<br />
void setup ( )<br />
{<br />
pinMode(ledPin, OUTPUT);<br />
pinMode(buttonPin, INPUT);<br />
المرحله الثانيه: تعريا و تحديد<br />
المداخل و المخارج<br />
}<br />
void loop()<br />
52
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
{<br />
val = digitalRead(buttonPin);<br />
المرحله الثالثه: كتابه اوامر<br />
البرنامج الرئيسيه<br />
if (val == HIGH)<br />
{<br />
digitalWrite(ledPin, HIGH);<br />
delay(1000);<br />
digitalWrite(ledPin, LOW);<br />
delay(1000);<br />
}<br />
int ledPin = 13;<br />
int buttunPin = 2;<br />
int val = 0;<br />
else<br />
{digitalWrite(ledPin,<br />
LOW); } }<br />
الخطروة الثالثرة:<br />
قرم بعمرل تأكيرد للكرود<br />
البرمجى عن طريق الض ط على عالمه تأكيد و بعد اك تتأكرد مرن اك<br />
البرنررامج صررحي وال يحترروى علررى اخطرراء برمجيرره و تررم تحويلرره الررى الصرروره<br />
التنفي يرره بنجررا , قررم بعررد ذلرر برفعرره للمتحكمرره الدقيقرره عررن طريررق زر رفررع<br />
Verify<br />
Upload<br />
شر الكود البرمجى ......<br />
المرحلة االولى:<br />
قمنا بتعريرا مت يرر اسرمه ledPin و الر ى سريرمز الرى و كر ل Pin 13<br />
قمنا بتعريا المت يرر المت يرر buttonPin و الر ى سريرمز الرى السرويتش الموجرود علرى المردخل<br />
الرقمى السابع و قمنا بتعريا المت ير و ال ى سو نستخدمه الحقا لتخزين حاله الدخل علرى<br />
المدخل الرقمى الثانى<br />
val<br />
pin 2<br />
53
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
المرحلرة الثانيرة: فرى هر ه<br />
تعامرل pin 13<br />
و التره يرمرز لهرا باسرم<br />
المرحلرة جعلنرا المتحكمرة<br />
أنها مخرج و سنسرتخدمه لتشر يل الليرد الموصرل بره, ثرم قمنرا بجعرل المتحكمرة تعامرل<br />
ار م ج pin 2 على انه مدخل رقمى و يفته استقبال االشارات الرقميه<br />
val = digitalRead(buttunPin);<br />
ledPin على<br />
HIGH or LOW<br />
المرحله الثالثه:<br />
فه ه ا األمر ستقوم المتحكمة بقياس قيمه الجهد على المردخل<br />
pin 2<br />
val<br />
و يررتم ذلرر باسررتخدام األمررر<br />
القيمه ستكوك<br />
digitalRead( )<br />
5 فولت = HIGH<br />
و تسرجل القيمرة فره المت يرر<br />
و اذا كرراك المسررتخدم ضرر ط علررى السررويتش فررأك<br />
و اك لم يض ط ستكوك القيمه صفر فولت = LOW<br />
if (val == HIGH)<br />
{<br />
digitalWrite(ledPin, HIGH);<br />
delay(1000);<br />
digitalWrite(ledPin, LOW);<br />
delay(1000);<br />
}<br />
else {digitalWrite(ledPin, LOW); }<br />
if كالتالى :<br />
5<br />
val<br />
<br />
<br />
= اذا<br />
if….else<br />
(<br />
فى ه ا الجزء استخدمنا واحد من اشهر االوامر فى ل ات البرمجه و هو االمر<br />
.. مادوك ذل (, يسرتخدم ذلر االمرر لعمرل مقارنرات و جعرل المتحكمره تفعرل<br />
شب ما اذا حدث شب اخر محدد و فى ه ا المثال استخدمنا االمر<br />
سررتقيس المتحكمرره قيمرره الجهررد<br />
علررى المرردخل السررابع و تخررزك القميرره فررى<br />
المت ير<br />
اذا كانت القميه تساوى HIGH<br />
و التررى تعنررى فولررت سررتقوم المتحكمرره<br />
بتش يل الليد لمده ثانيه و اطفائه لمده ثانيره<br />
و هك ا باستمرار.<br />
<br />
HIGH<br />
void setup)(<br />
{<br />
pinMode(ledPin, OUTPUT);<br />
pinMode(inPin, INPUT);<br />
}<br />
مررررا لررررم تكررررن القيمرررره تسرررراوى<br />
و الجهررد المطبررق علررى المرردخل<br />
54
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
يساوى صفر<br />
سيظل منطفب.<br />
ستقوم المتحكمه بتطبيق جهد يساوى صفر على الليد و بر ل لرن يعمرل<br />
الليرد و<br />
55
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
المثال الثالث: تطوير المثال السابق يعمل ب2 سويتش من نوع<br />
Pushواحد Button من اجل التشر يلON و الثرانى مرن اجرل<br />
االغالق OFF<br />
مكونات المثال)3(:<br />
56
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
<strong>Arduino</strong> uno<br />
Breadboard<br />
Led 5 mm<br />
عدد2 مقاومه قيمه 10 كيلو اوم<br />
مقاومه واحده قيمه 560 اوم<br />
عدد<br />
اسالك توصيل<br />
نسخه مطبوعه من ارلم ه ار اع<br />
2 سويتش<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
فرى هر ا المثرال سرندمج مرا تعلمنراه فرى كرال المثرالين<br />
االول و الثرررانى 2 سرررويتش مرررن نررروع<br />
, سنسرررتخدم<br />
push button<br />
و سريتولى السرويتش االول عمليره<br />
تش يل الليد و سيتولى السويتش االخر عمليه اطفائه.<br />
الخطوه األولى : قم بطابعه ورقه المساعده و قصها ثرم<br />
ثبتها على الرbreadboard باسرتخدام مرن الر-Pin<br />
ثم قم بتوصيل المكوانرات االلكترونيره علرى<br />
الورقه المساعده كما فى الصوره<br />
4<br />
Headers<br />
57
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الخطوه الثانيه: من بيئه التطوير <strong>Arduino</strong> IDE قم بعمل ملا جديد من شريط االوامر السرريعه<br />
و اكتب االوامر البرمجيه التاليه فى الجزء المخص لكتابه االكواد و بعرد االنتهراء ارفرع البرنرامج<br />
الرى المتحكمره الدقيقره علرى البرورده و جررب الضر ط علرى السرويتش االول و الثرانى و شراهد مراذا<br />
سيحدث<br />
//Example_3_On_Off_with_2_Switchs_1<br />
58
Simplify<br />
const int ledPin= 13;<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
const int inputPin1 = 2;<br />
const int inputPin2 = 3;<br />
void setup ( )<br />
{<br />
pinMode(ledPin, OUTPUT);<br />
pinMode(inputPin1, INPUT);<br />
تحديد المداخل و<br />
المخارج للدائره<br />
pinMode(inputPin2, INPUT);<br />
}<br />
void loop ( )<br />
{<br />
if (digitalRead(inputPin1) == HIGH)<br />
اوامر البرنامج<br />
الرئيسيه<br />
{digitalWrite(ledPin, LOW); }<br />
else if (digitalRead(inputPin2) == HIGH)<br />
{digitalWrite(ledPin, HIGH); }<br />
}<br />
59
Simplify<br />
else if<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
في هذا ار ا استخدمنا تعديل بسيط على األمر و هو أضافه األمر<br />
فقط و هو أمر يمكننا من أضافه اكثر من احتمال واحد فه جمله<br />
بدال من else<br />
. if<br />
if<br />
مثال:<br />
If (you like science) {you should read books}<br />
else if (you like sport) {you should play football}<br />
else if (you like art) { you should take art lessons}<br />
else { you should search for a hobby to do in your summer}<br />
كما ترى فه ه ا المثال وضعنا 3 احتماالت و و خيار أخير كتالى :<br />
اذا كنت تحب العلوم عليك أي تقرأ بعض الكتب<br />
أما اذا كنت تحب الرياضة عليك أي تلعب كره القدم<br />
أما اذا كنت تحب الفن عليك أي تتعلم دروس الرسم<br />
و اذا ر يكن لدي هواية عليك أي تبحث عن هواية لتش ل بها وقت اإلجازة الصيفية<br />
<br />
<br />
<br />
<br />
و فره البرنرامج السرابق اسرتخدمنا احتمرال أك المسرتخدم سرو يضر ط علرى السرويتش األول فتقروم<br />
المتحكمة الدقيقة بتشر يل الردايود الضروئه و االحتمرال الثرانه هرو أك يضر ط المسرتخدم السرويتش 2<br />
فتقوم المتحكمة ب طفاء الدايود الضوئه ... و هك ا<br />
و األك ما رأي أك نعدل البرنامج قليل )^_^(<br />
//Example_3_On_Off_with_2_Switchs_2<br />
const int ledPin= 13;<br />
const int inputPin1 = 2;<br />
const int inputPin2 = 3;<br />
void setup ( )<br />
{<br />
60
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
pinMode(ledPin, OUTPUT);<br />
pinMode(inputPin1, INPUT);<br />
pinMode(inputPin2, INPUT);<br />
}<br />
void loop ) (<br />
{<br />
if (digitalRead(inputPin1) == HIGH)<br />
{<br />
digitalWrite(ledPin, HIGH);<br />
delay(400);<br />
digitalWrite(ledPin, LOW);<br />
delay(400);<br />
}<br />
else if (digitalRead(inputPin2) == HIGH(<br />
{<br />
digitalWrite(ledPin, HIGH);<br />
delay(100);<br />
digitalWrite(ledPin, LOW);<br />
delay(100);<br />
}<br />
}<br />
مراجعه سريعة على ما تعلمناه فى االمثله السابقه<br />
void setup ( )<br />
}…………………{<br />
الداله المسىله عن ضبط اعدادات المتحكمه و<br />
تحديد المداخل و المخارج<br />
61
Simplify<br />
void loop ( )<br />
}…………………{<br />
int name = value;<br />
cons int name = value;<br />
example: const int led = 13;<br />
pinMode (pin number, State);<br />
example1: pinMode)11,INPUT(;<br />
example2: pinMode)led,OUTPUT(;<br />
digitalWrite (pin number,<br />
State);<br />
example: digitalWrite(13,HIGH);<br />
digitalRead (pin number);<br />
example: digitalRead(4);<br />
delay (time);<br />
example1: delay(100);<br />
example2: delay(1000);<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
يثم كتابه البرنامج الرئيسى داخل ه ه الداله و<br />
يقوم البرنرامج باعراده نفسره مرره تلرو االخررى<br />
كلما اتم تنفي جميع الخطوات<br />
امر يستخدم لتعريا مت ير بقيمه معينه<br />
امر يستخدم لتعريا ثابت غير قابل للت ير<br />
يشبه األمر السابق مع أضافه const<br />
االمر المسرىل عرن تحديرد و يفره كرل<br />
ضبطها للعمل كمدخل ام كمخرج<br />
pin و<br />
INPUT<br />
or OUTPUT<br />
االمرر المسرىل عرن اخرراج جهرد علرى احردى<br />
بصرررروره رقميرررره<br />
HIGH )1( or<br />
الرررر pin<br />
LOW)0(<br />
االمر المسىل عن قراءه الجهد المطبق علرى<br />
احررردى الرررpin بصررروره رقميررره حيرررث يقررروم<br />
بقيررراس الجهرررد )اذا كررراك فولرررت حترررى 3.8<br />
فولت و اذا كراك مرا برين صرفر<br />
حتى فولت<br />
ترأخير برزمن محردد : يسرتعمل هر ا االمرر فرى<br />
تحديررد المررده الزمنيرره لالمررر الرر ى يسرربقه فررى<br />
التنفي<br />
5<br />
يعتبر HIGH<br />
1.8 يعتبر ) LOW<br />
)اذا حرردث ...او اذا حرردث.. افعررل .....( جملرره<br />
شررطيه تسرتخدم لتنفير امرر مرا عنردما يتحقرق<br />
شرط معين و يمكن استخدم الشروط التاليه:<br />
if (the condition)<br />
{…..what to do}<br />
يساوا<br />
ال يساوا<br />
أقل من أو يساوا<br />
أكبر من أو يساوا<br />
==<br />
!=<br />
>=<br />
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
else if (another condition)<br />
{…what to do}<br />
أقل من<br />
أكبر من<br />
><br />
<<br />
else (last condition)<br />
{….what to do}<br />
اشهر أنواع المت يرات الته يمكن استخدامها فه اردوينو كالتاله:<br />
القميه<br />
أا عررردد صرررحي<br />
سررررالب مررررن<br />
مثال<br />
النوع<br />
Integers<br />
Float<br />
int led = 13;<br />
float sensor = 12.5;<br />
32768 حتى موجب 32768<br />
يسررتخدم مررع األعررداد الترره تحترروى<br />
كسور<br />
character<br />
char name= hello;<br />
حرو<br />
نصيه أو كلمات<br />
long<br />
byte<br />
long variable = 99999999;<br />
byte number= 44;<br />
رقم طويل جردا يترراو برين سرالب<br />
حترى موجرب<br />
نفس الرقم<br />
2,147,483,648<br />
رقرم صر ير يترراو برين )0<br />
)<br />
255<br />
إلرى<br />
63
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
لمزيد من المعلومات عن أنواع المت يرات الته يمكن استخدامها داخل برامج<br />
اردوينو قم بزياه الصفحة التالية<br />
http://www.arduino.cc/en/Reference/VariableDeclaration<br />
64
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مالحظات شخصيه :<br />
ه ه الصفحه مخصصه لكتابه مالحظات الشخصيه عن الفصل الثالث<br />
:<br />
65
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ذو الع قل ي شق ى فه الن عيم بع قْل ه<br />
و أخو الج هال ة فه الش قاو ة ي نع م<br />
أبو الطيب المتنبه<br />
66
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الفصل الرابع<br />
الدخل و الخرج التماثلى و استخدام المستشعرات<br />
Analog Inputs/Outputs and Sensors<br />
67
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
يعر الدخل او الخرج التماثلى بأنه اى فرق جهد تبدأ قيمته من صفر و قابل للت ير دائما و ليس<br />
و امرا<br />
له حدود قصوى معينه , على عكس الدخل الرقمى و الر ى امرا يكروك 5<br />
يكوك صفر فولتLOW (0)<br />
فولرت (1) HIGH<br />
اشاره رقميه<br />
اشاره تماثليه<br />
ما هى أهميه االشارات التماثليه<br />
Analog؟؟ Signals<br />
يعبر الدخل الترامثلى عرن االشرارات المت يرره مثرل فررق الجهرد النراتج مرن مستشرعر<br />
)حساسsensor) معين نتيجه الت ير فى عامل معين, على سبيل المثال حساس<br />
و هرى مقاومره<br />
للضوء او ما يعر بأسم المقاومره الضروئيه<br />
كهربيه تت ير قيمتها بت ير مقدار الضوء الر ى تتعرر لره و اذا قمنرا بتوصريل هر ا<br />
المقاومره علرى مصردر ثابرت للفولرت و اسرتخدامنا الرAVO-meter لقيراس فررق<br />
الجهرد المطبررق عليهررا .. سررنجد اك فرررق الجهررد سرريت ير دائمررا بت يررر مقرردار الضرروء<br />
الساقط عليها<br />
:<br />
Photo-Resistor<br />
و يمكننررا اك نسررت الل تلرر الظرراهره فررى قيرراس اى عامررل بيئررى معررين باسررتخدام<br />
مستشرعرات مناسربه و الترى تقريس ذلر العامرل البيئرى و تحولره الرى اشراره كهربيره<br />
تماثليه قابله للقياس مثل: الحراره, الضوء, الرطوبه, سررعه الريرا , القروه, العرزم,<br />
التسارع, المجال الم ناطيسى... الخ<br />
تحترروى شررريحه Atmega p-328<br />
المسررتخدمه فررى بررورده <strong>Arduino</strong> Uno<br />
68
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
على 6<br />
حتى A5 A0<br />
مداخل تستطيع قياس مقدار فرق الجهد الكهربه المت يرر )دخرل تمراثله( و هره مرقمره مرن<br />
و يمكنها قياس فرق جهد بدقه تصل الى 4.8 مللى فولت و ه ا يعنرى تقريبرا خمسره<br />
اجزاء من االلا جزء من واحد فولت و هى دقه عاليه تكفى للكثير من التطبيقات الدقيقه<br />
فرى هرر ا الفصررل سررنتعر علررى بعرض اشررهر المستشرعرات مثررل المقاومره الضرروئيه و مستشررعر<br />
الحرراره مثرل TMP36 هرو عبرارة عرن ترانزسرتور خرا يترأثر برالحرار و يعطرى<br />
ت ير فى الجهد الكهربى )الفولت( متناسب مرع الت يرر فره درجرة الحررارة .. حيرث يعطره 10 مللرى<br />
فولرت )عشرره أجرزاء مرن الرا فولرت( لكرل درجرة مئويرة.... كمرا<br />
سنتعر على الدخل و الخرج التماثى و كيفيره اسرتخدام المستشرعرات<br />
مع اردوينو<br />
0.1<br />
أو LM35<br />
69
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
كيا تولد الحساسات اإلشارة التماثلية ؟؟<br />
مثرل TMP36, TMP35, LM35<br />
مرا هرو اال<br />
لنأخر حسراس الحررارة كمثرال: حسراس الحررارة<br />
أك الترانزسرتور يصرنع مرن مراده<br />
ترانزستور ذا حساسيه عالية للت ير فره الحررارة و مرن المعررو السيلكوك الته تت ير مدى قابليتها لتوصيل الكهرباء بت ير الحرارة حيث يزداد التيار الكهربه المار<br />
اكثر على طريقه عمل ذل الحساس.<br />
فيها بزياده الحرارة و يمكننا إجراء تجربه بسيطة لنتعر يحتوى الحساس على ثالث ارجل وهى كالتاله:<br />
منف الدخل و يتم توصيل جهد ثابت بين 2.2 فولت حتى 5.5 فولت<br />
منف الخرج و هو المنف ال ى نحصل منه على قراءة الحساس<br />
منف األرضه و يتم توصيله بأى نقطه ارضى GND<br />
-1<br />
-2<br />
-3<br />
70
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
سنحتاج له ه التجربة المكونات التالية:<br />
بطاريه مقاس AAA فولت<br />
عدد 1 حامل بطاريات بطاريه<br />
جهرررررراز قيرررررراس متعرررررردد االسررررررتخدامات<br />
AVO<br />
بقيمه 1.5<br />
لتوصيل 2<br />
عدد 2<br />
Meter<br />
-1<br />
-2<br />
-3<br />
-4<br />
حسراس حررارى مرن أا األنرواع التاليرة :<br />
TMP<br />
بقيرراس AAA<br />
35, TMP36, LM 35<br />
احضررر 2<br />
بطاريرره بقيمرره 1.5فولررت و ضررعهم فرره<br />
علبه حامل البطاريات لتحصرل علرى قيمره كليره فولرت ثرم<br />
وصل الطر الموجب لحامل البطارية )سل لونه احمر( برالطر<br />
األول من ناحيه اليسار للحساس الحرارى )طر الدخل الثابت(<br />
تسراوى 3<br />
ثم قم بتوصيل الطر األرضه لحامل البطارية )سل لونره اسرود( برالطر األخيرر للحسراس<br />
الحرارى , بعد ذل قم بضبط الر AVO علرى وضرع قيراس الفولرت و وصرل الطرر األحمرر<br />
بالمخرج للحساس الكهربه و الطر األسود للطر األرضه للحساس الكهربه<br />
71
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ستجد أنها فولت تقريبرا األك قرم<br />
الحظ قراءة فرق الجهد الظاهر على ال<br />
بوضع يدك على الحساس و اض ط عليه قليال )تعمل تل الحركة على رفع درجره حرراره الحسراس<br />
و من المعلوم أك درجه حراره الجسم<br />
جو ال رفة<br />
0.76<br />
AVO meter<br />
تساوى 37<br />
)<br />
درجه مئوية تقريبا و هه اعلى من درجه حراره<br />
ثررررررررم الحررررررررظ الت يررررررررر فرررررررره قررررررررراءة الفولررررررررت النرررررررراتج كمررررررررا فرررررررره الصررررررررورة التاليررررررررة:<br />
سنجد أك قميه الفولت قد ازدادت بسبب حراره اليد<br />
تعمل جميع الحساسات بأنواعها المختلفة بنفس المبدأ حيث يرىدى الت يرر فره عامرل بيئره معرين إلرى<br />
ت ير المقاومة الكهربية الداخلية مما يىدى إلى الت ير فه فرق الجهد الخارج من الحساس مما يولرد<br />
أشاره تماثليه مت يره يمكن قياسها<br />
,<br />
و األك لنبدأ مع امثله استخدام الحساسات مع اردوينو<br />
72
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
المثال الرابع: استخدام مقاومه مت يره للتحكم فى سررعه اضرائه<br />
دايود ضوئى Potentiometer<br />
فه ه ا المثال سنستخدم مقاومه مت يره للحصول على فرق جهد يمكن ت يره )دخل تماثلى analog<br />
)input و سنجعل الدايود الضوئى يضيب و ينطفب بسرعه تعتمد على قيمه الدخل التماثله<br />
73
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال )4(:<br />
بورده اردوينو<br />
لوحه تجارب Breadboard<br />
<strong>Arduino</strong> Uno<br />
<br />
<br />
led 5mm دايود ضوئى <br />
مقاومه 560<br />
10 3<br />
<br />
<br />
<br />
اوم<br />
مقاومه مت يره اطرا<br />
أسالك توصيل<br />
ورقه المساعدة المطبوعة<br />
كيلو اوم<br />
قررررم بطباعرررره الورقرررره المسرررراعده ثررررم وصررررل<br />
المكونات االلكترونيه على لوحه التجارب<br />
ملحو ه: ال يشترط اك تستخدم مقاومه مت يرره<br />
صرر يره الحجررم مثررل التررى فررى الصرروره و لرر<br />
الحريره فرى اسرتخدام اى مقاومره مت يرره<br />
اطررا برأى حجرم و اى قيمره كيلرو<br />
اوم او 200 كيلرو اوم, ايضرا جميرع المقاومرات<br />
المت يره ذات اطرا يكوك الطر االوسط<br />
هو الطر المت ير و ال ى سنوصله بالمردخل<br />
التمررراثلى A0 علرررى برررورده اردوينرررو كمرررا فرررى<br />
الصوره التاليه<br />
لهرا 3<br />
مثرل 100<br />
3<br />
74
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مقاومه<br />
مت يره<br />
بعد االنتهاء من توصيل المكونات االلكترونيه على لوحه التجارب و بورده اردوينو قرم بعمرل ملرا<br />
جديد و اكتب االوامر البرمجيه التاليه ثم قم برفع البرنامج اله بورده اردوينو<br />
//Example_4_Variable_Resistor_sensor<br />
75
اردوينو ببساطة<br />
Simplify<br />
const int sensorPin = A0;<br />
const int ledPin = 13;<br />
int sensorValue;<br />
<strong>Arduino</strong><br />
مت ير لتخزين قيمه الجهد<br />
التماثلى<br />
void setup ) (<br />
{<br />
pinMode(ledPin, OUTPUT);<br />
}<br />
void loop ) (<br />
{<br />
sensorValue = analogRead(sensorPin);<br />
digitalWrite(ledPin, HIGH);<br />
delay(sensorValue);<br />
digitalWrite(ledPin, LOW);<br />
delay(sensorValue);<br />
}<br />
شر الكود البرمجى<br />
فى ه ا المثال سنتعر على واحده من اهم الدوال البرمجيه الموجوده فى ل ه اردوينو<br />
تقوم ه ه الداله بقرأه فرق الجهد بصوره تماثليه و تسرتطيع<br />
المتحكمره الدقيقره اك تقريس فررق جهرد مرن 4.8 مللرى فولرت حترى 5 فولرت تقريبرا و تقروم بتحويرل<br />
االشاراه التماثليه الى قيمه رقميه من صرفر الرى 1024 و تسرمى هر ه العمليره باسرم تحويرل االشراره<br />
من تماثليه الى رقميه<br />
Analog to digital converting<br />
analogRead(pin number)<br />
مثال اذا كاك الجهد الداخل الى A0 يساوى القيم التاليه:<br />
4.8 مللى فولت = 1 رقمى<br />
76
Simplify<br />
اردوينو ببساطة<br />
رقمى<br />
رقمى<br />
رقمى<br />
رقمى<br />
رقمى<br />
<strong>Arduino</strong><br />
48 مللى فولت = 10<br />
480 مللى فولت = 100<br />
واحد فولت = 208.33<br />
2 فولت = 416.66<br />
5 فولت = 1024<br />
و يستخدم االمر التالى فى تخزين قيمه القرأه الناتجه داخل المت ير sensorVlaue<br />
sensorValue = analogRead(sensorPin(;<br />
بعد ذل تقوم المتحكمه بتش يل الدايود الضوئى فتره زمنيه تساوى قيمه ه ا المت ير و تقوم بأطفائره<br />
ولكن الزمن فى ه ا المثال مت ير تبعا لقرأه الجهرد<br />
بنفس الزمن مثل المثال االول<br />
التماثلى على المدخل A0.<br />
blinking led<br />
فره هر ا المثرال اسرتخدمنا مقاومره مت يرره يمكننرا اك ن يرر قيمتهرا عرن طريرا لرا )تردوير ) عمرود<br />
الدوراك الخرا بهرا و بر ل نحصرل علرى اشراره تماثليره )تسرمى تلر العمليره ت يرر مرتحكم بره مرن<br />
االنساك( , فى المثال القادم سنتعلم نوع جديد من المقاومات المت يره و هرى المقاومره الضروئيه الترى<br />
تت يرر قيمتهرا بت يرر كثافره الضروء السراقط عليهرا و يسرمى هر ا ت يرر بيئرى و سرو نسرت ل راهره<br />
الت ير فى المقاومه بت ير الضوء لنحول المقاومه الى مستشعر للضوء<br />
light sensor<br />
77
اردوينو ببساطة<br />
Simplify<br />
.<br />
<strong>Arduino</strong><br />
المثررال الخررامس: المقاومرره الضررويه )حسرراس الضرروء التمرراثلى(<br />
Photo resistor as light sensor<br />
تصنع المقاومات الضوئية عاده من نروع خرا مرن السريلكوك ال ٌمعرالج, و يعتبرر السريلكوك المعرالج<br />
ماده شبهه موصله للكهرباء و تتأثر مدى توصيليته للكهرباء بالضروء لر ل يسرتخدم فره الحساسرات<br />
الضوئية و الخاليا الشمسية<br />
78
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال )5(:<br />
بورده اردوينو <strong>Arduino</strong> Uno<br />
لوحه تجارب Breadboard<br />
دايود ضوئى led 5mm<br />
مقاومه 560<br />
اوم<br />
مقاومه ضوئيه<br />
اسالك توصيل<br />
ورقه المساعده المطبوعه<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
تتررررررررررررروفر<br />
المقاومررات<br />
الضرررررروئية<br />
فره احجررام<br />
مختلفرررررررررره<br />
تبعررررا لمقرررردار حساسرررريتها للضرررروء و<br />
يمكرررررن اسرررررتخدام اى حجررررم متررررروفر<br />
79
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
//Example_5_Light_Sensor_led<br />
80
Simplify<br />
const int lightPin = A0;<br />
const int ledPin = 9;<br />
int lightLevel;<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
void setup ( )<br />
{<br />
pinMode(ledPin, OUTPUT);<br />
}<br />
void loop ( )<br />
{<br />
lightLevel = analogRead(lightPin);<br />
lightLevel = map(lightLevel, 0, 900, 0, 255);<br />
lightLevel = constrain(lightLevel, 0, 255);<br />
analogWrite(ledPin, lightLevel);<br />
}<br />
قم بتنفي البرنامج و رفعه على بورده المتحكمه الدقيقه ثم شاهد ماذا سريحدث للردايود الضروئى عنرد<br />
تعريض المقاومه الضوئيه للضوء, ثم حاول اك تقلل مقدار الضروء السراقط علرى المقاومره الضروئيه<br />
عن طريق ت طيتها بيدك و شاهد ماذا سيحدث الى الدايود الضوئى.<br />
قيمه الخرج<br />
رقم المخرج<br />
81
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
analogWrite (pin number,<br />
analog Output<br />
value);<br />
و هرى الدالره<br />
األك سرنتعر<br />
و يمكرن تطبيقهرا علرى<br />
المسرىله عرن توليرد خررج تمراثلى<br />
المخررررارج التررررى ترررردعم خاصرررريه التعررررديل الرقمرررره المعتمررررد علررررى عررررر<br />
و هى المخارج التى يكتب بجانبها<br />
عالمه و هى 6 مخارج كالتاله: 3,5,6,9,10,11<br />
النبضة)modulation )Pulse-Width<br />
. )~(<br />
ما هه خاصيه التعديل الرقمى PWM ؟؟<br />
خاصيه تمكن مرن انتراج فررق جهرد علرى هيئره موجره قابلره للت يرر عرن طريرق<br />
اشاره رقميه, و بر ل تسرتطيع أك تحرول األوامرر الرقميرة إلرى موجره تماثليره و<br />
يمكن است الل تل الخاصية فه توليد جهد مت ير قيمته بين صفر فولت حترى 5<br />
مثال:<br />
فولت عن طريق استخدام قيم رقميه من<br />
0 حتى 255<br />
255 = 5 volt<br />
128 = 2.5 volt<br />
0 =0 volt<br />
كيا نستفيد من ه ه الخاصيه؟؟<br />
الكثير من المكونات االلكترونيه و الكهريبه تتفاعرل مرع القريم المختلفره مرن فررق<br />
الجهد بصور مختلفه مثل الدايود الضوئى, مثال عندما تطبق 3 فولت علرى الردايود الضروئى سرتجد<br />
اك اضائته ضعيفه و اذا رفعت الجهد الى 4 فولت ستجد االضرائه قرد ازدادت و اذا و صرلت الرى 5<br />
فولرت سررتجد االضرائه وصررلت الرى اعلررى معردل سررطوع.. و هنراك مكونررات كهربيره مثررل المحرررك<br />
الكهربى )الموتور( و ال ى تزداد سرعته بزياده الفولت الكهربى.<br />
فره هر ا المثرال وصرلنا الردايود الضروئى علرى المخررج رقرم 9 )الر ى يردعم )PWM و اسرتخدمنا<br />
مقاومه ضوئيه حتى تستشعر كميه الضوء الموجود حولها ثم ترسل االشراره التماثليره الرى اردوينرو<br />
فيقوم بتش يل الليد بنائا على االشاره التماثليه من المقاومه الضوئيه .<br />
لنأخ مثال أخر على خاصيه التعديل الرقمه<br />
المثال السادس:المىثرات الضوئيه بأستخدام PWM<br />
82
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
83
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فرره هرر ا المثررال سررنقوم بتوصرريل دايررود ضرروئه ازرق )اخترررت اللرروك األزرق الك أضرراءته عاليررة<br />
مقارنره براأللواك األخررى و يمكنر اختيرار اللروك األبريض كر ل ) إلرى المنفر رقرم و الر ى يردعم<br />
خاصيه و سنست ل تل الخاصية فه عمل بعض المىثرات الضوئية الجميلة<br />
11<br />
PWM<br />
// Example_6_fading_led_light<br />
const int ledPin = 11;<br />
int i = 0;<br />
و األك نأته إلى الكود البرمجه:<br />
العداد األول<br />
العداد الثانه<br />
void setup( )<br />
{<br />
pinMode(ledPin, OUTPUT);<br />
}<br />
void loop()<br />
{<br />
for (i = 0; i < 255; i++)<br />
{<br />
analogWrite(ledPin, i);<br />
delay(10);<br />
}<br />
for (i = 255; i > 0; i--)<br />
{<br />
analogWrite(ledPin, i);<br />
delay(10);<br />
}<br />
}<br />
بعد االنتهاء مرن كتابره الكرود و رفعره إلرى المتحكمرة الدقيقرة.. الحرظ مراذا يحردث للردايود الضروئه و<br />
كيا تزداد إضاءته بهدوء و تنخفض بهدوء <br />
84
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
سنتعلم األك احدى اهم األوامر البرمجية و هه حلقات التكرار<br />
فه ه ا المثال شراهدنا امرر جديرد و هرو<br />
for (i =0; i < 10; i++)<br />
loop<br />
يسرتخدم هر ا األمرر فره<br />
عمل ما يسمى بالحلقة المتكرررة ويمكرن اسرتخدام الحلقرات فرى أداء و يفره تتكررر اكثرر مرن<br />
مره بعدد معرو مرن المررات أو الره مرا ال نهايرة و يمكرن اسرت الل الحلقرات فره عمرل مرا يسرمى<br />
counters<br />
بالعدادات و هه برامج ص يره تقوم بالعد التزايدى أو التناقصه كما يريد المبررمج ,<br />
و تكوك صي ه األمر كتاله:<br />
ماذا يفعل فه<br />
كل مره<br />
for (i=0; i
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
األجابره تتمثرل فرى الرتحكم فرى سررعه اردوينرو اثنراء تطبيرق الجهرد التمراثلى و لكرى يتضر المعنرى<br />
بصوره عمليه جرب اك ت ير الرقم و تجعله مره = 20 بحيث يكتب األمر<br />
أخرى تجعله 50 و مره أخرى تجعله = 5 و شاهد ماذا سيحدث للدايود الضوئى.<br />
delay(20);<br />
و مرره<br />
86
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مالحظات شخصيه :<br />
ه ه الصفحه مخصصه لكتابه مالحظات الشخصيه عن الفصل الرابع<br />
:<br />
87
ر<br />
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
اإلمام الشافعى<br />
العلم م رس كل فخر فافتخ<br />
واح ر يفوت فخر ذاك الم رس<br />
واعلم بأك العلم ليس يناله<br />
من همه فه مطعم أو ملبس<br />
البيانات أرسال<br />
الفصل الخامس<br />
و األوامر من اردوينو إلى الحاسب<br />
و اآلله<br />
88
Simplify<br />
العكس<br />
Computer interfacing with <strong>Arduino</strong><br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
89
Simplify<br />
اردوينو ببساطة<br />
جميررع برروردات اردوينررو )بخررال<br />
ترروفر إمكانيرره أرسررال و اسررتقبال البيانررات مباشررره مررع<br />
و ذل عن<br />
طريق منف الUSB و يمكن است الل ه ه الخاصية فه<br />
الكثير من المشاريع الرائع, وبالنسبة إلى البوردات الته<br />
ال ترردعم هرر ه الخاصررية فهرره تحترراج إلررى مررا يسررمى بالرر<br />
و هررررررره شرررررررريحه صررررررر يره<br />
تستخدم لتبادل البيانات بين الحاسب اآلله و المتحكمرات<br />
الدقيقة<br />
)lilypad, mini<br />
الحاسب اآلله computer interface<br />
FTDI interface<br />
Liliypad<br />
<strong>Arduino</strong><br />
يتحدث الفصل الخامس عن إمكانيه استخدام اردوينرو فره الحصرول علرى معلومرات مرن الحساسرات<br />
المختلفة و أرسال النتائج لعرضها على الحاسب اآلله أو اخ أوامر<br />
مررن الحاسررب اآللرره لتنفيرر ها علررى المكونررات اإللكترونيررة الموصررلة<br />
على البورده.<br />
فرره األمثلررة السررابقة كنررا قررد اسررتخدمنا اردوينررو فرره قررراءة بعررض<br />
الحساسرات مثرل الضروء و الحررارة و إ هرار نراتج الحسراس علرى<br />
دايود ضوئه ليوض مقدار ه ه القراءة أما األك فسنستخدم خاصريه<br />
القرررراءة الحساسرررات إلرررى<br />
الحاسرب اآللره حيرث يمكرن قرائره النرواتج باألرقرام و إجرراء بعرض<br />
العمليات الحسابية عليها.<br />
serial interface ألرسرررال نترررائج<br />
90
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
المثرررال السرررابع: اسرررتخدام حسررراس الحررررارة و أرسرررال درجررره<br />
الحرارة إلى الحاسب اآلله<br />
91
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال )7(:<br />
<br />
<br />
<br />
<br />
<br />
<br />
بورده اردوينو<br />
لوحه تجارب Breadboard<br />
حساس حرارى<br />
أسالك توصيل<br />
كابل التوصيل بالUSB<br />
ورقه المساعدة المطبوعة<br />
<strong>Arduino</strong> Uno<br />
LM35 TMPاو 36<br />
الحظ انه فه حاله استخدام لحساس حرارى مختلرا<br />
عررن النرروعين المرر كورين فرره األعلررى فررأك المررداخل و<br />
المخارج الخاصة بالجهد قد تختلرا و يمكنر معرفتهرا<br />
مرررن خرررالل قرررراءة الرررداتا شررريت الخاصرررة بالحسررراس<br />
المستخدم<br />
92
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعد االنتهاء من توصيل المكونات على لوحيه التجارب قم بكتابه األكواد التالية و تأكد من صحتها<br />
عن طريق زر Verify ثم ارفعها إلى بورده اردوينو<br />
93
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
// Example_7_Temprature_Sensor<br />
const int sensorPin = A0;<br />
int reading;<br />
float voltage;<br />
float temperatureC;<br />
void setup( )<br />
{ Serial.begin(9600); }<br />
void loop ( )<br />
{<br />
reading = analogRead(sensorPin);<br />
voltage = reading * 5.0/1024;<br />
Serial.print(voltage);<br />
Serial.println(" volts");<br />
temperatureC = (voltage - 0.5) * 100 ;<br />
Serial.println("Temperature is: ");<br />
Serial.print(temperatureC);<br />
Serial.println(" degrees C");<br />
delay(1000);<br />
}<br />
94
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعررد االنتهرراء مررن كتابرره و رفررع الكررود البرمجرره إلررى المتحكمررة نقرروم بالضرر ط علررى زر<br />
Serial<br />
Monitorالموجرررررررود فررررررره شرررررررريط األوامرررررررر السرررررررريعة كمرررررررا فررررررره الصرررررررورة التاليرررررررة:<br />
95
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ستظهر صفحه خاصه تستقبل البيانات من بورده اردوينو و تقروم بعرر درجره الحررارة كرل ثانيره<br />
كمررا سررنالحظ أك الرردايود الضرروئه الموجررود علررى بررورده اردوينررو المكترروب بجانبرره Tx برردأ فرره<br />
الوميض بسرعه و ذل يعنى أك اردوينو يرسل بيانات إلى الحاسب اآلله<br />
...<br />
-<br />
األك حاول ك ترفع درجه حراره الحساس عن طريق تقريب شمعه مشرتعلة أو عرود ثقراب مشرتعل<br />
أو أا مصرردر حرررارى مترروفر )حرر ارى أك تمررس النررار الحسرراس الحرررارى فر ل قررد يتلفره , هنرراك<br />
حساسرات حراريرة خاصره يمكنهرا تحمرل الحررارة الشرديدة لكرن الحسراس المسرتخدم فره هر ا المثرال<br />
يستطيع تحمل حراره تصل إلى 150 درجه مئوية تقريبا )<br />
ملحو ه: عالمه الشرطة ( ) الته تكترب قبرل درجره الحررارة ال تعنرى سرالب درجره مئويرة و إنمرا<br />
خطأ برمجى مىقت فه أول السطر عند استقبال بيانات من اردوينو<br />
شر الكود البرمجه<br />
يستخدم األمر<br />
Serial.begin(9600);<br />
فه جعل بورده اردوينرو تبردأ التواصرل مرع الحاسرب<br />
اآللرره عررن طريررق منفرر الررUSB و بهرر ا يمكررن لالردوينررو أرسررال أو اسررتقبال بيانرات مررن و إلررى<br />
الحاسب .<br />
96
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
نالحظ انه هناك مت يرراك و همرا<br />
و voltage<br />
temperatureC<br />
float<br />
بردال مرن اسرتخدام األمرر<br />
int<br />
ترم تعرريفهم باسرتخدام األمرر<br />
و ذلر الك الحسراس الحررارى يقريس درجره الحررارة بدقره<br />
عالية تصل إلى 0.1درجه مئوية و من المتوقع أك تكوك قيمه الجهرد الكهربره النراتج عنره و درجره<br />
الحرررار بالكسررور العشرررية و لرريس األعررداد الصررحيحة لرر ل اسررتخدامنا األمررر<br />
المت يرات تقبل قيمه تحتوى على كسور عشريه .<br />
يستخدم األمرر<br />
float<br />
reading = analogRead(sensorPin);<br />
sesnorPin<br />
لجعررل هرر ه<br />
فرى تسرجيل قرراءة الردخل التمراثله<br />
و ال ى يرمز إلى المدخل . A0<br />
على المت ير reading و هه القيمة الناتج من<br />
كما ذكرنا سابقا اك المتحكمة الدقيقة تقوم بتحويرل اإلشرارة التماثليرة إلرى قيمره رقميره مرن صرفر الرى<br />
1024<br />
ل ل استخدمنا األمر التاله لتحويل ه ه القيمة الرقمية إلى قيمه فولتيه نستطيع فهمها<br />
voltage = reading * 5/1024;<br />
97
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعد تحويل القيمة الرقمية إلى قيمه فولتيه استخدمنا األمر<br />
Serial.print(voltage);<br />
ألرسال<br />
ه ه القيمة إلى الحاسرب األلرى لعرضرها علرى بيئرة التطروير باسرتخدام الرMonitor Serial ثرم<br />
نسرتخدم األمرر<br />
قيمه فولت يعرضها على شاشه الحاسب اآلله<br />
Serial.println ("voltage");<br />
ليقروم بطابعره كلمره<br />
voltage<br />
بعرد كرل<br />
نسرتخدم األمرر<br />
temperatureC = (voltage - 0.5) * 100;<br />
درجرره حررراره بوحررده سره لزيروس<br />
الحرارة لعرضها على شاشه الحاسب اآلله<br />
Celsius<br />
ثررم نكرررر نفررس أوامررر<br />
لتحويرل قيمره الفولرت إلرى<br />
Serial.print<br />
مررع درجرره<br />
Serial.print(temperatureC);<br />
Serial.println(" degrees C ");<br />
delay(1000);<br />
و ذل لنجعل المتحكمة الدقيقة تنتظر ثانيه واحده قبل أك تعيد<br />
األمر األخير هو<br />
أرسال درجه الحرارة و الفولت إلى الحاسب اآلله مره أخرى.<br />
98
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
المثال الثامن: استخدام حساس الضوء و عر شده<br />
اإلضاءة على الحاسب اآلله<br />
هل تت كر المثال الخامس, سنقوم بأعاده تنف ذل المثال ولكن بدال من عر شده اإلضاءة على<br />
الدايود الضوئه<br />
led<br />
, سنعرضها على الحاسب اآلله .<br />
مقاومه<br />
اوم<br />
10<br />
مقاومه ضوئية<br />
كيلو<br />
99
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
// Example_8_Light_Sensor_2<br />
const int photocellPin = A0;<br />
int photocellReading;<br />
void setup(void)<br />
{ Serial.begin(9600); }<br />
void loop(void)<br />
{<br />
photocellReading = analogRead(photocellPin);<br />
Serial.print("Analog reading = ");<br />
Serial.print(photocellReading);<br />
if (photocellReading < 10) { Serial.println(" - Dark");}<br />
else if (photocellReading < 200) { Serial.println(" - Dim");}<br />
else if (photocellReading < 500) {Serial.println(" - Light"); }<br />
else if (photocellReading < 800) { Serial.println(" - Bright"); }<br />
else {Serial.println(" - Very bright"); }<br />
delay(1000);<br />
}<br />
100
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعررد االنتهراء مررن كتابره و رفررع الكررود البرمجره إلرى المتحكمررة نقرروم بالضرر ط علررى زر Serial<br />
Monitor<br />
الموجود فه شريط األوامر السريعة كما فه الصورة التالية<br />
:<br />
101
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
األك حاول أك ت ير مستوى اإلضاءة ال ى تتعر له المقاومة الضوئية عن طريق :<br />
تعريضها للضوء الساطع مباشره<br />
ت طيتها بقطعه قماش خفيفة<br />
ت طيتها بيدي لتحجب عنها الضوء تماما<br />
o<br />
o<br />
o<br />
ملحو ه:<br />
Dim<br />
Dark<br />
Light<br />
تعنى إضاءة خافته<br />
تعنى الم دامس<br />
تعنى إضاءة معتدلة<br />
Bright Light<br />
تعنى إضاءة شديده<br />
<br />
<br />
<br />
<br />
102
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
المثال<br />
التاسع: تش يل دايود ضوئه عن طريق استقبال<br />
أمر من الحاسب اآلله<br />
103
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال<br />
:)9(<br />
بورده اردوينو<br />
لوحه تجارب<br />
<strong>Arduino</strong> Uno<br />
دايود ضوئه led 5mm<br />
مقاومه 560<br />
اوم<br />
أسالك توصيل<br />
<br />
<br />
<br />
<br />
<br />
يعتبررر المثررال التاسررع تطرروير للمثررال األول و الثررانه , و فرره هرر ا<br />
المثرال سنسرتخدم الحاسرب اآللره فره الرتحكم فره الردايود الضروئه<br />
بدال من السويتش, سنجعل اردوينو يستقبل امر التشر يل و اإلطفراء عرن طريرق الرUSB باسرتخدام<br />
خاصيه ال Serialفه Monitor بيئة تطوير اردوينو <strong>Arduino</strong> IDE<br />
الكود:<br />
// Example_9_Computer_Interfacing<br />
int ledPin=13;<br />
int value;<br />
void setup ()<br />
104
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
{<br />
Serial.begin(9600);<br />
pinMode(ledPin,OUTPUT);<br />
}<br />
void loop ()<br />
{<br />
value = Serial.read();<br />
if (value == '1') {digitalWrite(ledPin,HIGH);}<br />
else if (value == '0') {digitalWrite(ledPin,LOW);}<br />
بعررد االنتهررراء مرررن كتابررة الكررود البرمجررره و رفعرره إلررى اردوينررو اضررر ط علررى أيقونرررة<br />
}<br />
serial<br />
1<br />
Monitor سرتجد شرريط كترابه فرى اعلرى الصرفحة قرم بكتابره و اضر ط زر أرسرال Sendو<br />
شاهد ماذا سيحدث للدايود الضوئه , ثم اكتب الرقم صفر و اضر ط علرى زر أرسرال مرره أخررى و<br />
شاهد ماذا سيحدث ...<br />
105
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
106
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فره هر ا المثرال اسرتخدمنا األمرر<br />
Serial.read( );<br />
المرسلة من الحاسب اآلله إلى اردوينو عبر منف الUSB و قمنا ب ضافة<br />
و هرو االمرر المسرتخدم فرى قرراءة البيانرات<br />
value=<br />
قبل ه ا األمر<br />
و ذل حتى تقوم المتحكمة بقراءة ما يرسل من ال ,USB تخزك ه ه القيمة فه المت ير value<br />
ثم استخدمنا جمله if.. else if<br />
لوضع شرط:<br />
اذا كانت قيمه المت ير<br />
أما اذا كانت قيمه المت ير<br />
value == 1<br />
value == 0<br />
تقوم المتحكمة بتش يل الدايود الضوئه<br />
تقوم المتحكمة ب طفاء الدايود الضوئه<br />
<br />
<br />
األك حاول أك تعدل الكود بنفس و تزيد عدد المخارج الته<br />
يمكن التحكم بها عن طريق الحاسب اآلله<br />
مصادر اضافيه للمعلومات:<br />
لمزيد من المعلومات عن األوامر المستخدمة فه<br />
التاله لمرجع األوامر الرسمه:<br />
ال Serial communication<br />
http://arduino.cc/en/Reference/serial<br />
تفضل الرابط<br />
مالحظات شخصيه :<br />
ه ه الصفحه مخصصه لكتابه مالحظات الشخصيه عن الفصل الخامس<br />
:<br />
107
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
108
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ألبرت أينشتين<br />
المعرفه قوه فى يد من يعلمها<br />
109
Simplify<br />
اردوينو ببساطة<br />
الفصل السادس<br />
أستخدام<br />
المحركات<br />
The Motors<br />
<strong>Arduino</strong><br />
110
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
تعتبرر المحركرات مرن أهرم العناصرر الداخلره فرى المشراريع األلكترونيره و هرى<br />
العنصرر المسررىل عررن تحويررل الطاقرره الكهربيره الررى طاقرره حركيرره فررى صرروره<br />
دوراك .<br />
ستجد المحركات فى كثيرر مرن األجهرزه االلكترونيره الترى<br />
يوجرررد بهرررا حركررره ميكانيكيررره مثرررل: الروبترررات بأنواعهرررا<br />
المختلفررره سررررواء كانرررت صررررناعيه او روبوترررات للترفيرررره,<br />
مش الت األقرا , ألعاب األطفال.. الخ<br />
<br />
تنقسم المحركات الكهربيه الى نوعين رئيسيين و هما :<br />
محركررات التيررار المسررتمر ( – Servo DC –<br />
)Stepper<br />
)3 Phase<br />
<br />
محركات التيار المتردد Phase( 1–<br />
فى ه ا الفصرل سرنتعر للنروع األول و هرو المحركرات الترى تعمرل بالتيرار المسرتمر مثرل الر DC<br />
و هما اشهر أنواع المحركات المستخدمه فرى مشراريع المتحكمرات<br />
و ال<br />
الدقيقه بأنواعها المختلفه.<br />
Servo Motor<br />
Motor<br />
Servo Motor<br />
DC Motor<br />
111
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
المثال العاشر:<br />
استخدام محرك التيار المستمر CD<br />
112
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال )7(:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
بورده اردوينو<br />
لوحه تجارب Breadboard<br />
محرك تيار م ست مرص ير<br />
<strong>Arduino</strong> Uno<br />
DC motor<br />
ترانزستور 2N2222 او PN2222<br />
1N4001<br />
مقاومه 2.2<br />
دايود او اى بديل<br />
كيلو اوم<br />
أسالك توصيل<br />
كابل التوصيل بالUSB<br />
ورقه المساعدة المطبوعة<br />
3<br />
نسرررررتخدم محررررررك تيرررررار<br />
فى ه ا المثرال سرو الصرررر ير و الرررر ى يوجررررد<br />
مسرررتمر مرررن الحجرررم األطفرررال و يعمرررل بفررررق<br />
عررررررراده فرررررررى لعرررررررب و اقصرررررررراه 9 فولررررررررت و<br />
فولت<br />
جهد يبدأ من المحركرررات متررروفره فرررى<br />
سررررررتجد مثررررررل هرررررر ه األلكترونيه او فى اى مرن<br />
محرررررالت المكونرررررات الترررررررى تحتررررررروى علرررررررى<br />
لعررب اطفررال القديمرره محركات <br />
113
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعد<br />
االنتهاء من توصيل المكونات على لو التجارب قم بكتابه األكواد التالية ثم ارفعها إلى بورده<br />
اردوينو<br />
//Example_10_DC_Motor<br />
114
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
int motorPin = 9 ;<br />
int onTime = 2500 ;<br />
int offTime = 1000 ;<br />
void setup ) (<br />
{pinMode(motorPin, OUTPUT); }<br />
void loop ) (<br />
{<br />
analogWrite(motorPin,100);<br />
delay(onTime);<br />
digitalWrite(motorPin, LOW);<br />
delay(offTime);<br />
analogWrite(motorPin,190);<br />
delay(onTime);<br />
digitalWrite(motorPin, LOW);<br />
delay(offTime);<br />
analogWrite(motorPin,255);<br />
delay(onTime);<br />
digitalWrite(motorPin, LOW);<br />
delay(offTime);<br />
}<br />
المثال<br />
الحادى عشر:<br />
استخدام محرك سيرفو<br />
115
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
116
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال )7(:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
بورده اردوينو<br />
لوحه تجارب Breadboard<br />
محرك تيار م ست مرص ير<br />
<strong>Arduino</strong> Uno<br />
DC motor<br />
ترانزستور 2N2222 او PN2222<br />
1N4001<br />
مقاومه 2.2<br />
دايود او اى بديل<br />
كيلو اوم<br />
أسالك توصيل<br />
كابل التوصيل بالUSB<br />
ورقه المساعدة المطبوعة<br />
نسررررتخدم محرررررك تيررررار<br />
فرى هر ا المثرال سرو الصررر ير و الررر ى يوجرررد<br />
مسررررتمر مررررن الحجررررم و يعمررل بفرررق جهررد يبرردأ<br />
عاده فى لعب األطفال فولرررت و سرررتجد مثرررل<br />
فولرت و اقصراه من متررررروفره فرررررى محرررررالت<br />
هررررررررر ه المحركرررررررررات او فرررررى اى مرررررن لعرررررب<br />
المكونرات األلكترونيره تحتررروى علررى محركرررات<br />
اطفرررال القديمررره الترررى <br />
9<br />
3<br />
117
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعد االنتهاء من توصيل المكونات على لو التجارب قم بكتابه األكواد التالية ثم ارفعها إلى بورده<br />
اردوينو )ملحو ه: يمكن اك تجد الكود البرمجى فى قائمه األمثله الجاهزه فى برنامج اردوينو<br />
)examples – servo – sweep<br />
118
Simplify<br />
//Example_11_Servo_Motor<br />
#include <br />
Servo myservo;<br />
int pos = 0;<br />
اردوينو ببساطة<br />
مكتبه اضافيه<br />
<strong>Arduino</strong><br />
void setup()<br />
{<br />
myservo.attach(9);<br />
}<br />
void loop()<br />
{<br />
}<br />
for(pos = 0; pos < 180; pos += 1)<br />
{<br />
myservo.write(pos);<br />
delay(15);<br />
}<br />
for(pos = 180; pos>=1; pos-=1)<br />
{<br />
myservo.write(pos);<br />
delay(15);<br />
}<br />
119
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مالحظات شخصيه :<br />
ه ه الصفحه مخصصه لكتابه مالحظات الشخصيه عن الفصل السادس<br />
:<br />
120
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
حكمه صينيه قديمه<br />
الجبال قد تصم د امام الزالزل لكنها لن تقاوم ق طرات<br />
الماء التى ت هط ل بأنتظام فى هدوء و تكرار , فأجعل<br />
ع مل مثل قطرات المياه حتى تت لب على جميع<br />
العوائق<br />
121
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الفصل السابع<br />
وسائل االدخال و االخراج المتطوره<br />
Advanced Inputs/Outputs<br />
122
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فى الفصول السابقه اعتمدنا بشركل اساسرى علرى ابسرط وسرائل االدخرال و<br />
االخراج للتعامل مع اردوينو مثل السويتش) ادخال<br />
الضوئى )اخراج<br />
) Input<br />
)output<br />
و الردايود<br />
فرى هر ا الفصرل سنسرتعر بعرض المكونرات االكثرر تطرورا للتفاعرل مرع المتحكمرات الدقيقره فرى<br />
مشاريع واقعيه يمكن استخدامها فى حياتنا اليوميه, سيتطرق ه ا الفصل الى شر المكونات التاليه:<br />
شاشات عر الكريستال السائل liquid crystal Display: LCD<br />
لوحه ادخال االرقام Keypad<br />
مصفوفه الدايود الضوئى Led matrix<br />
المتممات Relays<br />
<br />
<br />
<br />
<br />
شاشات عر<br />
الكريستال السائل : تتكوك ه ا الشاشات من زجاج الكريستال المعالج و تتوفر ه ه الشاشات بأحجام<br />
و انواع مختلفه و سو نستعر منها نوعين اساسيين و هما:<br />
شاشات العر المعتمده على الحرو<br />
Character LCD<br />
شاشات العر المعتمده على الرسومات Graphical LCD<br />
<br />
<br />
123
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
Character LCD<br />
Graphical LCD<br />
124
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
Character LCD<br />
امكانيره اخرراج اى نصرو<br />
توفر شاشات عر المعتمده على الحرو<br />
تتكوك من حرو او ارقام او رمروز )مثرل الترى تكترب علرى لوحره المفراتي فرى الحاسرب اآللرى ) و<br />
تتوفر بأحجام مختلفه و الواك مختلفه مثل:<br />
Green 16x2 lcd<br />
Blue 16x2 lcd<br />
Grees 20x4 lcd<br />
و يمثل الرقم 16x2 عدد السطور )2( الحرو التى يمكن كتابتها فى كل سطر )16( حر<br />
كما تتوفر بألواك مختلفه كما فى الصور التاليه:<br />
Green 16x2 LCD<br />
Blue 16x2 LCD<br />
Black 16x2 LCD<br />
Green 20x4 LCD<br />
المثال العاشر: توصيل شاشه Character LCD<br />
125
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بمقاس 16x2<br />
سنحتاج المكونات التاليه:<br />
16x2<br />
شاشه بقياس لوك اضائه ازرق )او اى لوك تفضله انت )<br />
اعمده توصيل نحاسيه قصيره 16 نقطه<br />
مقاومه مت يره بقيمه 10 كيلو اوم<br />
مكواه لحام<br />
قصدير لحام<br />
copper Pin Headers 16 point<br />
<br />
<br />
<br />
<br />
<br />
الخطوة األولى هه لحام نقاط التوصيل Pin Headers<br />
اللحام و القصدير فى ه ا العمليه:<br />
بنقاط لحام الشاشه و يتم استخدام مكواه<br />
اذا اردت تعلم لحام المكونات اإللكترونية توجهه إلى اللين<br />
التاله<br />
http://www.aaroncake.net/electronics/solder.htm<br />
126
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
5<br />
قم بلحام اول نقطره توصريل باسرتخدام الكاويره و<br />
القصرردير و انتظررر ثرروانى حتررى تبرررد نقطرره<br />
التوصيل<br />
تنبيرره: ال تحرراول لمررس نقطرره اللحررام بيرردك بعررد<br />
اللحام مباشره فقد يىدى ذل الرى حردوث حرروق<br />
127
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
للجلد من حراره اللحام<br />
بعد ذل قم بلحرام نقطره التوصريل االخيرره وذلر<br />
حتررى تقرروم بتثبيررت pinمررن headers كررال<br />
الجانبين<br />
قم بتكرار نفس العمليه السابقه مع جميع نقاط<br />
التوصيل حتى تنتهى من 16 نقطه كما فى<br />
الصوره التاليه<br />
128
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعد االنتهاء من اللحام قم بتركيب ال pin header على لوحه التجارب كما فه الصورة<br />
129
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
يفضل استخدام<br />
قاعده تثبيت بالستيكيه تستخدم فى تثبيت اردوينو و لوحه التجارب معا المثل التى<br />
تستخدم فى الصوره التاليه<br />
130
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
قاعده التثبيت<br />
البالستيكيه تحمل<br />
اردوينو و لوحه<br />
التجارب و الشاشه<br />
معا<br />
<br />
االك نقروم بتوصريل<br />
المخرررررررج 5v علررررررى خررررررط<br />
الموجب االحمرر و الطرر<br />
GNDعلرى الخرط االرضرى<br />
فى لوحه التجارب<br />
سالب<br />
موجب<br />
131
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
<br />
بعرررررد ذلررررر نقررررروم<br />
بتوصيل المدخل رقرم فرى<br />
شاشررره العرررر علرررى الخرررط<br />
االرضررى و نوصررل المرردخل<br />
رقم علرى الخرط الموجرب<br />
5كما v فى الصوره التاليه<br />
:<br />
16<br />
15<br />
<br />
قررررررررررم بتوصرررررررررريل<br />
اردوينررو بالبطاريرره او كابررل<br />
ثم الحظ اك الضوء<br />
الخلفى للشاشه بردأ فرى العمرل<br />
كما فى الصوره التاليه :<br />
ملحو ه يختلا لوك االضائه<br />
علرررررررررى حسرررررررررب الشاشررررررررره<br />
المسررتخدمه و تترروفر االلررواك<br />
التاليه:<br />
االحمررررررررررر األخضررررررررررر<br />
األزرق األبيض<br />
–<br />
–<br />
–<br />
–<br />
ال USB<br />
تركيب المقاومه المت يره للتحكم فى شده االضاءه<br />
132
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
تعتبرررر تلررر الخطررروه اختياريررره و<br />
يمكن اك تهملها اذا اردت.<br />
الهررررد مررررن تركيررررب المقاومرررره<br />
المت يررره هررو الررتحكم فررى التيررار<br />
الكهربررى الررداخل الررى الشاشرره و<br />
بالترالى الرتحكم فرى شرده السرطوع<br />
)االضاءه( الناتجه<br />
3<br />
<br />
قررررررم بتوصرررررريل احررررررد<br />
االطرررررررا الجانبيرررررره للمقاومرررررره<br />
المت يررررررره بررررررالخط الموجررررررب و<br />
الطرررر الجرررانبى االخرررر برررالخط<br />
السررالب ثررم قررم بتوصرريل الطررر<br />
االوسررررررط للمقاومرررررره المت يرررررررره<br />
بالمدخل رقم علرى الشاشره كمرا<br />
فى الصوره التاليه<br />
:<br />
133
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
<br />
1<br />
قرررم بتوصررريل المررردخل<br />
بالخط<br />
على شاشه العر رقم بررالخط<br />
و المرردخل رقررم االر الموجب على لوحه التجارب<br />
2<br />
االك قرررم بوصررريل البطاريررره مرررره<br />
اخرى و قم بتدوير عصا الدوراك<br />
فى المقاومه المت يره والحظ ماذا<br />
سريحدث لالضراءه الخلفيره لشاشره<br />
العر<br />
134
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
جميع الخطوات السابقه كانت تهد لتوصيل الشاشه بالطاقره و بالمقاومره الضروئيه الترى ترتحكم فرى<br />
مردى سرطوع الشاشره و شرده االضرائه الخلفيره , الخطروات التاليره ستوضر كيرا توصرل منافر نقرل<br />
البيانات من اردوينو الى الشاشه.<br />
فررى بعررض المشررراريع قرررد<br />
تسرتخدم المردخل رقرم 5 و<br />
ال ى يسمى RWلكن فرى<br />
حالتنا ه ا سنقوم بتوصيله<br />
بالخط االرضى<br />
135
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
قم بتوصيل المدخل رقم 4<br />
فررى شاشرره العررر علررى<br />
المخرج رقم فرى برورده<br />
اردوينو<br />
7<br />
بعرررد ذلررر نقررروم بتوصررريل<br />
المردخل رقرم فرى شاشره<br />
العررررر علررررى المخرررررج<br />
رقم 8 فى بورده اردوينو<br />
6<br />
136
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
قررررررم بتوصرررررريل المرررررردخل<br />
فرررررررى شاشررررررره<br />
العررررر علررررى المخرررررج<br />
فرررررررى برررررررورده<br />
اردوينو<br />
رقرررررررم 14<br />
رقرررررررم 12<br />
الخطررررروه االخيرررررره هرررررى<br />
توصرررريل المررررداخل رقرررررم<br />
بالمخررررررررررارج<br />
رقررررررررررررررررررررررررم<br />
الموجرروده علررى اردوينرررو<br />
برررنفس الترتيرررب كمرررا فرررى<br />
الصوره التاليه<br />
11,10,10<br />
13,12,11<br />
137
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الشررررررركل النهرررررررائى بعرررررررد<br />
توصرريل جميررع االطرررا<br />
الالزمرره لتشررر يل الشاشررره<br />
مع اردوينو.<br />
االك حاك وقت كتابه الكود البرمجى<br />
توفر بيئه تطوير اردوينو العديد من االمثله الجاهزه و يمكن اك تستخدم مثال الشاشه الجاهز من<br />
خالل فت قائمه االمثله كتالى:<br />
سنحتاج اك نعدل السطر البرمجى التالى :<br />
ليصب هك ا:<br />
File→Examples→LiquidCrystal→HelloWorld<br />
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);<br />
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);<br />
بعد تعديل السطر قم بتأكيد و رفع الكود الى بورده اردوينو كما فعلت فى االمثله السابقه<br />
الكود البرمجه بعد التعديل:<br />
//Example_12_LCD_16x2<br />
138
Simplify<br />
#include <br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);<br />
void setup()<br />
{<br />
lcd.begin(16, 2);<br />
lcd.print("hello, world!");<br />
}<br />
void loop()<br />
{<br />
lcd.setCursor(0, 1);<br />
lcd.print(millis()/1000);<br />
}<br />
139
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
الشكل النهائى للمثال العاشر )^_^(<br />
140
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
تستطيع تعديل مستوى سطوع الشاشه عن طريق ت ير قيمه المقاومه المت يره<br />
كما يمكن استخدام اى حجم و لوك تفضله من الشاشات<br />
فى عدد الحرو 20x4كما فى الصور التاليه<br />
Character LCD<br />
مثل الحجم االكبر<br />
141
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
142
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مصادر اضافيه للمعلومات:<br />
لمزيد من المعلومات و األوامر المستخدمه مع شاشات LCD<br />
http://arduino.cc/en/Tutorial/LiquidCrystal<br />
character LCD<br />
http://www.instructables.com/id/Controlling-a-character-LCD-with-an-<strong>Arduino</strong><br />
او Nokia 2600<br />
http://www.instructables.com/id/How-To-Use-a-Nokia-Color-LCD/<br />
لعمل اشكال مرسومه على شاشه من نوع<br />
لتوصيل شاشه هواتا نوكيا الملونه Nokia 6100 LCD<br />
استخدام لوحه األرقام Keypad مع اردوينو<br />
143
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
تعتبر لوحه االرقام من اهم وسائل االدخال المستخدمه بكثره فى مشاريع المتحكمات الدقيقه و التى<br />
ستجدها حول فرى العديرد مرن االجهرزه االلكترونيره مثرل الهراتا المنزلرى و لوحره المفراتي و لوحره<br />
التحكم فى المصاعد الموجوده فى البيوت متعدده الطوابق ... الخ<br />
و تختلرا اشركال لوحرات االرقرام تبعرا لحجمهرا و عردد االرقرام المتاحره , فرى بعرض اللوحرات سرتجد<br />
رموز اضافيه مثل عالمه النجمه )*( و عالمه الشباك )#( او حتى بعض الحرو االنجليزيه مثرل<br />
و تعتبر لوحه االرقام بحجم 4x3 و هى اشهر لوحات الكتابه<br />
4x4<br />
A,D,F<br />
3x4<br />
4x4<br />
4x4<br />
144
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
2<br />
كما تتوفر بعض اللوحات المرنه و القابله للطى بسهوله و التى تصنع من نوع خا من البالسرتي<br />
المرك و تتميرز بالنحافره حترى تبلر ثخانره اللوحره بضرعه مليمتررات فقرط و تتميرز بالسرعر المرنخفض<br />
)حوالى دوالر فقط )<br />
3x4<br />
سو<br />
نشر لوحه االرقام المرنه بمقاس<br />
و التى تتميز بالمواصفات التاليه:<br />
Weight: 7.5 grams<br />
Keypad dimensions: 70mm x 77mm x 1mm (2.75" x 3" x 0.035")<br />
Length of cable + connector: 85mm<br />
7-pin 0.1" pitch connector<br />
المثال<br />
الحادى عشر أستخدام لوحه ارقام<br />
145
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مكونات المثال الحادى عشر:<br />
لوحه ارقام )مرنه( بمقاس 3x4<br />
أعمده توصيل نحاسيه 7 نقاط<br />
Pin-Headers (7 )<br />
اردوينو <strong>Arduino</strong> Uno<br />
لوحه تجارب Breadboard<br />
<br />
<br />
<br />
<br />
146
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
قررم بتوصرريل مخررارج اردوينررو برردئا مررن المخرررج رقررم 2 حتررى المخرررج رقررم 8 بلوحرره األرقررام مررع<br />
مالحظه اك يكوك رمز<br />
#<br />
هو الرمرز المتواجرد امرام المخررج رقرم 2 فرى برورده اردوينرو كمرا فرى<br />
الصوره بالظبط و ب ل نكوك قد انتهينا من تجهيز لوحه األرقام.<br />
قبل اك نبدأ كتابه الكود البرمجى سيتوجب تحميل مكتبه لوحه االرقرام مرن موقرع اردوينرو حيرث<br />
علرى عكرس مكتبره اسرتخدام<br />
ال تتوفر ه ه المكتبه بشكل افتراضى فى برنامج<br />
و التى تتوفر بشكل افتراضى داخل برنامج<br />
الشاشات من نوع<br />
<strong>Arduino</strong><br />
<strong>Arduino</strong> IDE<br />
Character LCD<br />
IDE<br />
أوال : توجهه الى اللين التالى على موقع اردوينو الرسمى:<br />
http://www.arduino.cc/playground/Code/Keypad<br />
ثم قم بتحميل مكتبه لوحه االرقام كما فى الشكل التالى:<br />
147
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعررردها سررريبدأ المتصرررف بتنزيرررل مكتبررره لوحررره األرقرررام و هرررى عبررراره عرررن ملرررا مضررر وط اسرررمه<br />
, الخطوه التاليه هى اك تقوم بف ض ط الملا و نسرخ الفلرودر المسرمى<br />
keypad<br />
keypad.zip<br />
و توجهرره الررى مكرراك تواجررد برنررامج اردوينررو <strong>Arduino</strong> IDE حيررث سررتجد فولرردر اسررمه<br />
libraries<br />
قم بفت الفولدر و الصق<br />
keypad<br />
داخله كما فى الصوره التاليه:<br />
148
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
1<br />
2<br />
3<br />
149
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
بعد االنتهاء من تجهيز المكتبه البرمجيه نبدأ فى كتابه الكود:<br />
//Example_13_Keypad_Input<br />
#include <br />
const byte ROWS = 4;<br />
const byte COLS = 3;<br />
char keys[ROWS][COLS] =<br />
{<br />
{'1','2','3'},<br />
{'4','5','6'},<br />
{'7','8','9'},<br />
{'#','0','*'}<br />
};<br />
byte rowPins[ROWS] = {5, 4, 3, 2};<br />
byte colPins[COLS] = {8, 7, 6};<br />
عدد الصفو<br />
عدد األعمده<br />
الحرو<br />
و الرموز<br />
Keypad keypad = Keypad) makeKeymap)keys(, rowPins, colPins, ROWS,<br />
COLS (;<br />
void setup)(<br />
{<br />
Serial.begin)9600(;<br />
}<br />
أمر يقوم بتفعيل استقبال<br />
االرقام من لوحه االرقام<br />
void loop)(<br />
{<br />
char key = keypad.getKey)(;<br />
if )key != NO_KEY( { Serial.println)key(; }<br />
}<br />
بعد االنتهاء من كتابه الكود قم بتش يل serial monitor<br />
انظر ماذا سيحدث !!<br />
مصادر اضافيه للمعلومات:<br />
و اض ط على األرقام فى الKeypad و<br />
مكتبه لوحه األرقام و األوامر البرمجيه :<br />
http://www.arduino.cc/playground/Code/Keypad<br />
150
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
كيا تصنع قفل الكترونى بأستخدام اردوينو و السيرفو موتور:<br />
http://www.instructables.com/id/Access-control-with-<strong>Arduino</strong>-Keypad-<br />
4x4-Servo<br />
كيا توصل لوحه األرقام بأردوينو عن طريق<br />
3 أسالك فقط بدال من 7 أسالك:<br />
http://www.instructables.com/id/<strong>Arduino</strong>-3-wire-Matrix-Keypad<br />
عمل نظام امنى )مفتا الكترونى شامل( مكوك من اردوينو ميجا و شاشه و لوحه ارقام و قفل<br />
الكترونى )سيرفو موتر(:<br />
http://www.instructables.com/id/Password-Lock-with-<strong>Arduino</strong><br />
151
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
أستخدام المرح ل<br />
Relay مع اردوينو<br />
يعتبر الريالى من اهم العناصر المستخدمه فى التحكم االلكترونيى بأنواعه المختلفه<br />
ما<br />
هو ذل العنصر؟ وكيا يمكن استخدامه؟ وماهه تطبيقاته؟<br />
إيجابياته؟ سلبياته؟<br />
152
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مم يتكوك؟<br />
الريالا هو عنصر ميكرانيكه/إلكترونره، ويمكننرا تخيلره علرى شركل مفترا أو زر كهربرائه، داخليرا<br />
يتكوك من جزئين رئيسيين:<br />
األول: سل ملفو حول قالب حديدا، وفه مقدمة ذل القالرب يتوضرع الجرزء الثرانه: وهرو لسراك<br />
أو قطعرة معدنيرة مسرتطيلة الشركل تقرع أمرام القالرب/الملرا وهره بمثابرة المفترا فهره تحتروا علرى<br />
تماسات معدنية يتم من خاللها توصيل حمل كهربائه ليعمل الريالا علرى فصرله أو تشر يله بحسرب<br />
وضع الملا فه الريالا.<br />
ماهو الرمز اإللكترونه للريالا فه الدارات اإللكترونية؟<br />
يرمز للريالا بالشكل التاله: حيث الجزء األيسر هو الملا واأليمن هو رمز المفتا الكهربائه<br />
ارت كيب مس ار اخ<br />
153
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
كيف يع ؟<br />
عنردما يرتم تطبيرق فررق جهرد علرى طرفره الملرا الرداخله للرريالا، سريمر تيرار فره الملرا ليتحرول<br />
بواسرطته الملرا لم نراطيس كهربرائه مولردا مجراال م ناطيسريا سريقوم بردوره بجر ب ذلر اللسراك أو<br />
القطعرة المواجهرة للملرا بحيرث ت لرق التماسرات الكهربائيرة، وعنرد فصرل الجهرد المطبرق سيتالشرى<br />
التيررار ترردريجيا ليختفرره ذلرر المجررال الم ناطيسرره، وهنرراك زنبرررك سرريقوم ب عررادة اللسرراك لوضررعه<br />
الطبيعه وفصل التماسات وفت المفتا ال ا أغلق.<br />
154
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
إذا بكل بساطة فالريالا هو مفتا كهربائه ميكانيكه، ما إك يتم تطبيق جهد على ملفه، يبدأ بالعمل<br />
ليج ب تماسات معدنية ستعمل على غلق أو فت دارة خارجية متصلة بها.<br />
ومافائدته إذا؟ أال يمكننا استخدام مفتا كهربائه مباشرة؟<br />
تخيررل معرره أننررا نحترراج اك نوصررل اردوينررو بحمررل<br />
كهربررائه بعمررل علررى فرررق جهررد متررردد قيمترره<br />
فولررت فولررت. منطقيررا، ال يمكننررا تشرر يل ذلرر<br />
الحمررل مررن خررالل اردوينررو ألك اقصررى جهررد يمكررن<br />
توليده من اردوينو هو فولت فقط<br />
110<br />
،<br />
5<br />
او 220<br />
وهنا يأته دور الريالا فهو سيقوم بعملية تشر يل ألا<br />
حمرل ذا اسرتهالك كبيرر للطاقره مرن خرالل فررق جهرد<br />
ص ير، والسر يمكن وراء تش يل الملا بجهد ص ير<br />
مثرل 5فولرت لنقروم بتشر يل المصربا الر ا سريتم توصريله علرى أطررا التماسرات التره سريج بها<br />
الملا داخل الريالا.<br />
إذا للريالا فائدة عظيمة كونره سريعمل علرى ترحيرل جهرد وتيرار صر ير لقيرادة حمرل كبيرر. وأيضرا<br />
ميرزة الرريالا تكمرن فره قدرتره علرى العرزل الترام مرا برين دارة المصردر والحمرل “الخررج”، فهرما<br />
معزوالك تماما ولكل واحد منهما نقطة أرضية مرجعية مختلفة عن األخرى،<br />
وه ا له فائدة كبيرة فه منع انتقال التشويش والجهود العابرة لدارتنا وبمعنى أصر حمايتهرا. أخيررا،<br />
يمكن استخدام الريالا فه التحكم عن بعد، أا وضع الريالا بالقرب مرن الجهراز ومرد سرل للردراة<br />
الته تصدر األوامر.<br />
عيلبه:<br />
لكل عنصر إلكترونه فوائد وسلبيات ، وك ل األمر بالنسبة للريالا، فأهم سلبياته هه:<br />
(<br />
بما أنه يعتمد على الملا -وهو حثه- فل ل ستتولد فيه قوة دافعة كهربائية عكسية عند<br />
مرور تيار به تعر بقاعدة لنز ) عند التوصيل وعند الفصل مما قد يىدا لعطب<br />
الدارة المتصلة به. إال أنه يمكننا تجاوز ه ه المشكلة البسيطة بواسطة وضع عنصر<br />
الدايود بين طرفه الملا وذل لمنع عودة تل القوة الدافعة العكسية .<br />
<br />
155
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
حدوث ارتدادات ميكانيكية عند كل تحويل من وضع الفصل الى وضع التوصيل أو<br />
العكس. مما قد يىدا لعطب الحمل<br />
يحتاج إلى دائرة موائمة لكى يعمل جيدا مع األنظمة اإللكترونية وعادة تكوك ه ه الدارة<br />
هه مكونة من ترانزستور<br />
العمر االفتراضى للريالا ص ير نسبيا خصوصا فى الدوائر التى تتطلب عددا كبيرا من<br />
مرات الوصل والفصل وعادة ما ت كر قيمة عدد مرات الفصل والوصل القصوى لكل<br />
ريالا فه ملا المواصفات الفنية<br />
.<br />
<br />
<br />
<br />
سامة ع لية نستم ال ار يال مس ار ام اإلركت ونية<br />
عند اختيار أا ريالا فالبد من االنتباه لألمور التالية كه نتمكن من االختيار العلمه الصحي<br />
ومعرفة البدائل الته يمكن استخدامها فه حالة عدم توفر الريالا المناسب<br />
5<br />
فرق الجهد الالزم لتش يل الملا الداخله للريالا: فمثال لو كاك لدينا دارة تعمل على<br />
فرق جهد فولت فيجب اختيار ريالا له فرق جهد لملفه هو فولت، وفه حالة تع ر<br />
ذل يمكننا استخدام جهد أكبر بعد استخدام دارة مواءمة سبق أك طرحتها فه تدوينة<br />
الترانزستور.<br />
أقصى تيار الزم لتش يل ملا الريالا: وغالبا ه ه القيمة ال تعطى بشكل واض بل يتم<br />
ذكر مقاومة الملا بدال منها، ومن خالل قسمة فرق جهد الملا على مقاومته يتم حساب<br />
التيار األعظم. وهه قيمة مهمة جدا كه نعر هل يمكننا تش يل ووصل الريالا بدارتنا<br />
مباشرة أو البد من وضع دارة مواءمة<br />
جهد وتيار مرحلة الخرج أو التماسات، وهنا يجب معرفة ما يحتاجه الحمل ومقارنته<br />
بالريالا وينب ه دائما أك يتم اختيار قيمة تيار عظمى تزيد عن القيمة المطلوبة بنسبة<br />
5<br />
5<br />
إلى %10<br />
العمر االفتراضه لتماسات الريالا وعادة ما تعطى بماليين المرات<br />
<br />
<br />
<br />
<br />
ننتقل اآلك للدارة العملية<br />
سنحتاج له ه الدائره المكونات التاليه:<br />
ريالى يعمل على جهد<br />
دايود<br />
5<br />
فولت )يمكن استخدام<br />
فولت( 9 او 12<br />
<br />
<br />
156
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مقاومه كيلو اوم 1<br />
ترانزستور من نوع<br />
2N2222<br />
<br />
<br />
157
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
اذا استخدمت اى ريرالى<br />
بجهد اعلرى مرن 5 فولرت<br />
سيتوجب علير اك ت يرر<br />
قيمررره هررر ا الررردخل عرررن<br />
طريررق اسررتخدام مصرردر<br />
خارجى للطاقه<br />
158
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
تتوفر فى األسواق العديد من دوائر الم رحال ت الجاهزه لألستخدام<br />
كما تتوفر بأحجام و اعداد م رحال ت مختلفه مثل الصور التاليه:<br />
Relay Boards<br />
مع اردوينو<br />
159
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فى حال كاك مشروع يحتاج تش يل احمال بفرق جهد كبير مثل 220 فولت فاننى انص بشده<br />
بأك تشترى بورده جاهزه بالحجم المناسب للمشروع الخا ب و ذل ألك ه ه البوردات تصنع<br />
بجوده و دقه عاليه و هو ما تحتاجه فى المشاريع التى تعمل بجهد كبير تجنبا لحدوث اى اخطاء قد<br />
ال ي حمد عقباها.<br />
مصادر اضافيه للمعلومات:<br />
هناك مشروع جميل يشر كيفيه استخدام الريالى مع اردوينو لتجهيز منف للطاقه بجهد 220<br />
فولت يعمل من خالل اشارات التحكم الصاده من اردوينو<br />
http://www.sparkfun.com/tutorials/119<br />
ملحو ه: مرجع الصور و المعلومات الم كوره عن ار ح relay<br />
فى ه ا الفصل<br />
http://muslimlead.com/?p=2121<br />
و تحتوى المدونه ايضا على العديد من الدروس الرائعه حول نظريات عمل العديد من المكونات<br />
االلكترونيه مثل الدايود، الثنائه المشع للضوء، المكثا، الملا، الترانزستور<br />
يمكن الض ط على اى اسم من اسماء العناصر الم كوره ليتم نقل الى موضوع يشر اساسيات<br />
العنصر بالتفصيل <br />
160
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مالحظات شخصيه<br />
:<br />
ه ه الصفحه مخصصه لكتابه مالحظات<br />
الشخصيه عن الفصل السابع<br />
:<br />
161
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
أمير الشعراء<br />
أحمد شوقى<br />
س بحان اللهم خير معلم<br />
عل مت بالقلم القروك االولى<br />
أخرجت ه ا العقل من ل ماته<br />
وه ديته النور المبين سبيال<br />
الثامن الفصل<br />
أغطيه اردوينو الجاهزه<br />
162
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
<strong>Arduino</strong> Shields<br />
من اكثر المميزات المثيره فه اردوينو هره تروافر عردد<br />
كبيررر مررن األغطيررة الترره يمكررن تركيبهررا مباشررره علررى<br />
و اإلصردارة<br />
البوردات المختلفة مثل<br />
األعلررى فرره اإلمكانيررات و قرروه المعالجررة<br />
<strong>Arduino</strong> uno<br />
<strong>Arduino</strong><br />
163<br />
PCI<br />
Mega<br />
تعمل االغطيره برنفس فكرره كرروت الموجروده فرى<br />
الحاسرب اآللرى , علرى سربيل المثرال اذا لرم تروفر اللوحره<br />
االم Motherboard كرررارت شررربكه للررردخول علرررى
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
االنترنت فأن تستطيع بكرل بسراطه اك تشرترى كرارت شربكه network interface card و<br />
تقوم بتركيبه و الدخول على االنترنت فورا .. هك ا تعمل اغطيه اردوينو<br />
اذا كاك لردي خبرره سرابقه مرع المتحكمرات الدقيقره فالبرد انر<br />
تدرك مدى الصعوبه و المجهود المب ول حتى تقروم بتوصريل<br />
المتحكم الدقيق باالنترنت او شبكه محليه )حيرث سرتقوم ببنراء<br />
وحررده مررن الصررفر بنفسرر ) و سيسررتهل ذلرر<br />
الكثير من الوقت و المجهرود , امرا فرى حالره اردوينرو كرل مرا<br />
علير فعلره اك تشرترى ال طراء جراهز و تركبره مباشرره علرى<br />
البورده الخاصه ب و تبدأ فى برمجه مشروع بكل سهوله<br />
Ethernet<br />
تتوفر العديد من االغطيه و سنستعر<br />
منها التاله:<br />
<strong>Arduino</strong><br />
<br />
Ethernet Shield<br />
غطرررراء اردوينررررو للشرررربكة السررررلكية<br />
يوفر ذل ال طراء امكانيره توصريل اردوينرو<br />
بشرربكات الحاسررب اآللرررى و االنترنررت عرررن<br />
طريق توصيل كابل شبكه من نروع CAT5<br />
مثل المستخدم فرى الحاسرب اآللرى و يمكنر<br />
اسررت الل ذلرر ال طرراء فررى عمررل مشرراريع<br />
التحكم عن بعد بأستخدام الشربكه المحليره او<br />
االنترنررت فيمكنرر مررثال توصرريل عرردد مررن<br />
االجهررزه االلكترونيرره برراالدروينو و الررتحكم<br />
بهررا مررن اى مكرراك فررى العررالم عررن طريررق<br />
االنترنررررت , و هنرررراك بعررررض االصرررردارات<br />
الحديثه من ه ا ال طراء تروفر ايضرا امكانيره<br />
164
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
تركيب كارت ذاكره لتخزين الملفات و يمكن است الل ذل فى بعض المشراريع الترى تحتراج تسرجيل<br />
قيم بصوره دوريه مثل مشروع لتسجيل درجات الحراره كل فتره زمنيه معينه و تخزين القريم علرى<br />
كرت ذاكه ثم ارسالها عن طريق االنترنت الى صاحب المشروع<br />
Xbee Shield غطاء الشبكات الالسلكية <br />
يروفر هر ا ال طراء نفرس الو رائا الموجروده فرى Ethernet<br />
الكررن بصرروره ال سررليكه Wireless حيررث يمكنرر<br />
مرن توصريل االردوينرو براى شربكه السرليكه فرى نطراق يقرارب<br />
100 متر )يختلا النطاق بناء على قوه االشاره الالسلكيه(<br />
Shield<br />
165
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
<strong>Arduino</strong> Motor Shield غطاء المحركات )الموتور( <br />
يسرتخدم هر ا ال طراء فرى توصريل المحركرات مرن<br />
نرروع<br />
Stepper Motors حيررث يمكنرر توصرريل 3<br />
محركرررات فرررى نفرررس الوقرررت )ملحو ررره: بعرررض<br />
اصرردارت هرر ا ال طرراء تسررم بتوصرريل محررركين<br />
فقط( و يمكن است الل ه ا ال طراء فره المشراريع<br />
الته تحتاج محركات مثل مشراريع اإلنسراك اآللره<br />
DC Motor, Servo Motors,<br />
Robots<br />
و ماكينات CNC<br />
166
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
<strong>Arduino</strong> colored Touch screen غطاء الشاشه الملونه التى تعمل باللمس <br />
يسررتخدم ذلرر ال طرراء فرره ترروفير شاشرره ملونرره<br />
تفاعليرره تعمررل باالسررتجابة للمسررات األصررابع و<br />
يمكن اسرتخدامها فره المشراريع التره تحتراج إلرى<br />
وسيله لعر صوره او بيانات معقده و التره ال<br />
تكفررررى الشاشررررات ذات اللرررروك الواحررررد<br />
لعرضررررها, و يترررروفر ذلرررر ال طرررراء بأحجررررام و<br />
مقاسرات مختلفرة تبردأ مرن مسراحه 2 انرش مربرع<br />
انش مربع )اإلنش هو وحده قياس تساوى<br />
lcd<br />
إلى 4<br />
2.5 سنته متر )<br />
هناك قائمه كبيره بأسماء و مواصفات<br />
أغطيه اردوينو المختلفة تجدها على<br />
الموقع التاله:<br />
http://shieldlist.org<br />
167
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
مالحظات شخصيه :<br />
ه ه الصفحه مخصصه لكتابه مالحظات الشخصيه عن الفصل الثالث<br />
:<br />
168
اردوينو ببساطة<br />
Simplify<br />
<strong>Arduino</strong><br />
الفصل التاسع<br />
اردوينو و تطور ثوره المتحكمات الدقيقه مفتوحه المصدر من<br />
انتهائا بFPGA<br />
عائله الى<br />
ARM Cortex<br />
AVR<br />
169
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
2005 ايفريرا Ivrea<br />
االيطاليره عنردما أجمترع فريرق مرن مهندسره<br />
تبدأ القصه فى عام فى مدينه<br />
األلكترونيات ليناقشوا س ربل تعلريم ط رالب الجامعره و المعاهرد التقنيره علروم المتحكمرات الدقيقره او مرا<br />
, كاك الهد من اللقاء ايجاد أسلوب سرهل و غيرر مكلرا<br />
يعر بأسم ال<br />
ألدخال ه ا النوع مرن العلروم فرى الدراسره الجامعيره و يكروك مترا للهرواه فرى ذات الوقرت دوك اك<br />
تكوك هناك قيود أو تراخي مكلفه يحتاجوك لشرائها ألستخدام البرمجيات الترى كانرت تسرتخدم فرى<br />
برمجه المتحكمات الدقيقه فى ه ا الوقت .. من هنا تبدأ رحله نشأه اردوينو<br />
<strong>Arduino</strong><br />
Microcontrollers<br />
قام كل من " ماسيمو بانزى Massimo<br />
" بالتعررررررررراوك مرررررررررع " دايفيرررررررررد<br />
كرررررررروارتيليس<br />
و جاينلوكررررررررررا مررررررررررارتينو<br />
" برررررررررررررأطالق مشرررررررررررررروع<br />
أردويررن<br />
و تمررررت تسررررميه المشررررروع بأسررررم اشررررهر<br />
شخصرررريه تاريخيرررره فررررى المدينرررره و كرررراك<br />
الهد األساسرى للمشرروع هرو عمرل بيئره<br />
تطوير للمتحكمات دقيقره بصروره مفتوحره<br />
فررى المئرره و تضررمن هرر ا<br />
المشررررروع عمررررل بيئرررره تطرررروير برمجيرررره<br />
و تكروك مجانيره فرى<br />
للمتحكمرات الدقيقره<br />
ذات الوقت كما تضمن عمل لوحات تطوير Development Boards ص يره الحجم بتكلفره<br />
بسيطه يمكن للطالب و الهواه التقنين تحمل سعرها.<br />
Banzi<br />
David Cuartielles<br />
Gianluca<br />
Martino<br />
ايض يىىىا Arduin of Ivrea<br />
Integrated Development Environment<br />
المصرردر 100<br />
بررردأ تطررروير المشرررروع اعتمرررادا علرررى مشرررروع سرررابق اسرررمه<br />
و الرر ى قررد نجرر فررى تحقيررق بعررض<br />
أهدا مشروع اردوينو األساسيه مثرل المصردر المفترو لكرن<br />
لم يصرل الرى المسرتوى الر ى تمنراه فريرق التطروير مرن الناحيره<br />
البرمجيه و التصميم العتادى Hardware Design ل ل ترم البردأ فرى العمرل علرى تطروير الل ره<br />
البرمجيه المستخدمه فرى مشرروع Wiring و جعلهرا أسرهل و أفضرل كمرا ترم دمرج بعرض التقنيرات<br />
و هررى<br />
المسررتخدمه فررى ل رره Processing و سررميت هرر ه الل رره الجديررده بأسررم<br />
مشابهه جدا لل ه البرمجيه من ناحيه طريقه كتابه األوامر و تنسيق األكواد.<br />
<strong>Arduino</strong> C<br />
Wiring Platform<br />
C++<br />
170
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ترررم أطرررالق أول لوحررره تطويريررره ألردوينرررو فرررى<br />
اواخرررررررررر عرررررررررام 2005 و أعتمررررررررردت علرررررررررى<br />
مررن العائلرره المشررهوره<br />
و التررى تنتجهررا شررركه للشرررائ<br />
األلكترونيرررررره , و سررررررميت هرررررر ه اللوحرررررره بأسررررررم<br />
<strong>Arduino</strong> Serial V.1<br />
Atmel<br />
شررريحه ATmega168<br />
AVR<br />
بعد أطالق اللوحه قام مىسسى المشروع بنشر كل<br />
ما يتعلق بأردوينو برخصه مفتوحه المصردر علرى موقرع arduino.cc و الر ى كراك يعنرى أك اى<br />
فرررد فررى العرررالم يمكنرره االطررالع و التعرررديل علررى التصررميمات الهندسرررية و الشررفرات المصررردرية<br />
و البرمجيررات<br />
لكررل مررن برروردات اردوينررو المختلفررة<br />
و تم نشر كل ه ا مجانا .<br />
و ما اك تم نشر المشروع حتى توالت الكثيرر مرن التطرويرات علرى التصرميمات الهندسريه للوحرات<br />
األلكترونيرره و بيئرره التطرروير مررن مهندسررين و هررواه مختلفررين حررول العررالم و تررم أصردار العديررد مررن<br />
<strong>Arduino</strong> Boards<br />
Source Codes<br />
<strong>Arduino</strong> IDE<br />
اللوحات األحدث مثل:<br />
<strong>Arduino</strong> UNO , <strong>Arduino</strong> Mega, <strong>Arduino</strong> lilyPad, <strong>Arduino</strong><br />
Duemilanove, <strong>Arduino</strong> Fio<br />
و كاك القاسم المشترك فى كل األصدارات السرابقه هرى انهرا تعتمرد علرى شررائ المتحكمرات الدقيقره<br />
مررن عائلرره التررى تنتجهررا شررركه و حقررق المشررروع نجررا برراهر حتررى وصررل عرردد<br />
اللوحات األلكترونيه المباعه الى 300,000 قطعه فى مختلا دول العالم.<br />
Atmel<br />
AVR<br />
فررى عررام 2009 تعررر اردوينررو لنقلرره نوعيرره جديررده<br />
جائرت علرى يرد فريرق و الر ى قرام بتطروير<br />
لوحرره أردوينررو جديررده<br />
و<br />
تعمل بشرائ ألكترونيه مرن عائلره<br />
الترى نقلرت اردوينرو الررى افرق جديرد مرن السرررعه و القرروه<br />
حيررررث تتميررررز جميررررع شرررررائ ARMباحتوائهررررا علررررى<br />
معالجات عاليه السررعه تمتلر قروه معالجره تبردأ مرن 72<br />
ميجا هرتز و تصل فى بعض االصدارت الرى 1.5 جيجرا<br />
هرتز .<br />
LeafLabs<br />
تسررمى The Maple board<br />
ARM Cortex<br />
171
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
AVR<br />
وب ل أستطاع فريق LeafLabالخرروج مرن حردود امكانيرات شررائ و اسرتخدام الجيرل<br />
الجديد من ARMمرع Cortex االحتفرا بل ره أردوينرو البرمجيره الترى تتميرز بالسرهوله و خلوهرا<br />
من التعقيدات و فى ذات الوقت االحتفا بعامل السعر حيرث بلر سرعر<br />
دوالر مع تكلفه الشحن.<br />
Maple Board حروالى<br />
34<br />
اال اك التطروير لرم يتوقرا عرن<br />
التطورات السريعه فى لوحرات أردوينرو المختلفره و بالرغم من كل بل وصل الى شررائ " مصرفوفات البوابرات المنطقيرة القابلرة للبرمجرة "<br />
حدود<br />
فررى عررام 2010 تررم نشررر مشررروع<br />
منرره هررو صررناعه لوحرره اردوينررو تعمررل<br />
و الهررد مفتررو المصرردر اسررمه<br />
بشرائ من نوع FPGA و يمكن برمجتها بل ه<br />
ARM Cortex<br />
Field-Programmable Gate Arrays (FPGA)<br />
Papilio <strong>Arduino</strong><br />
<strong>Arduino</strong> C<br />
.<br />
FPGA<br />
تتميررز شرررائ بالسرررعه الفائقرره فررى اداء عمليررات<br />
المعالجرررررره بصرررررروره متوازيرررررره و فرررررر تشررررررفير البيانررررررات<br />
لرررر ل تسررررتخدم فررررى الكثيررررر مررررن التطبيقررررات<br />
الصررناعيه التررى يكرروك فيهررا عامررل الوقررت امرررا حاسررما فررى<br />
تصرميم المنررتج النهررائى لكررن يعيررب هرر ه الشرررائ عررده أمررور<br />
تجعلهررا مقتصررره علررى المحترررفين و الشررركات فقررط, األول:<br />
تكلفه لوحات التطوير الخاصه بها و الترى يبردأ سررعها غالبرا<br />
دوالر و اكثر, ثانيا: صعوبه برمجه الشرائ حيث<br />
تسرتخدم ل رات برمجيره معقرده فرى تشر يل هر ه الشررائ مثرل<br />
و ل ه Verilog<br />
Decoding<br />
من 100<br />
VHDL<br />
Papilio <strong>Arduino</strong><br />
ليحرررل هررر ه<br />
جررراء مشرررروع<br />
المشرركالت و يقرردم لوحرره تطرروير جديررده الررى عائلرره<br />
لوحات اردوينو و تم اصدار Papilio <strong>Arduino</strong><br />
و هى نسخه معدله من برنامج<br />
IDEلجعرررل ل ررره اردوينرررو تتناسرررب مرررع شررررائ<br />
FPGAكمررررررا تررررررم اصرررررردار لوحررررررات<br />
boardsللبيرع مرن منتصرا عرام 2010 بأسرعار<br />
تبرردأ مررن 40 دوالر فقررط و يمكنرر االطررالع علررى<br />
<strong>Arduino</strong><br />
papilio<br />
IDE<br />
172
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
papilio<br />
Papilio <strong>Arduino</strong><br />
AVR<br />
من الموقع التالى http://papilio.cc<br />
المزيد من المعلومات عن لوحات اصبحت عائله اردوينو تحتروى علرى لوحرات تطرويرات تعمرل<br />
بعد مشروع<br />
و حترى شررائ<br />
و شررائ<br />
تقريبا بكافه التقنيرات الترى ترم ابتكارهرا مثرل ARM Cortex<br />
FPGA<br />
و فى النهايه يمكننا القول أك مشروع اردوينو صرنع أكبرر مجتمرع تقنرى مرن المهندسرين و الفنرين و<br />
الهواه يعملوك على تطوير االفكرار و المشراريع المتعلقره برالتحكم اآللرى بصروره تشراركيه و تفاعليره<br />
حول العالم اعتمادا على استخدام لوحات الكترونيه بتقنيات مخلتفه و مرع ذلر يرتم برمجتهرا جميعرا<br />
بل ه برمجيه واحده و مجانيه و متاحه للجميع.<br />
انه مجتمع جديد و مختلا .. حقا انها ثوره الكترونيه ....<br />
173
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
فاب الب مصر او ما يعر بأسم ورشه التصنيع الشخصه<br />
هو مكراك مصرمم لتحويرل االفكرار مرن مجررد خيرال الرى واقرع ملمروس و بنراء مجتمرع مرن مصرنعى<br />
االفكرار و المنتجرات مرن الهرواه و المتحررفين فرى مجراالت مختلفره مثرل: )االلكترونيرات الهندسره<br />
الميكانيكيه هندسه الحاسب التصنيع الرقمى الفنوك(<br />
–<br />
–<br />
–<br />
–<br />
و يوفر المكاك العديد من االدوات التقنيه التى تساعدك على تصنيع افكارك مثل:<br />
ماكينه القطع بالليزر LASER cutter machine<br />
3D printer<br />
CNC machine<br />
طابعه ثالثيه االبعاد<br />
ماكينه حفر بالتحكم الرقمى<br />
بوردات اردوينو المختلفه و مكونات الكترونيه منوعه<br />
<br />
<br />
<br />
<br />
و العديد من االدوات االخرى ....<br />
يهد الفاب الب الى توفير بيئه تشاركيه و تعليميه فى ذات الوقت تساعد االفراد على االبداع و<br />
اطالق العناك الفكارهم و خيالهم و مشاركه ه ه االفكار مع المجتمع.<br />
كما يوفر وورش و دورات تدريبيه لالفراد مثل:<br />
ورش تدريب عمليه الستخدام اردوينو<br />
ورش تدريبيه لالطفال لتعلم االلكترونيات<br />
<strong>Arduino</strong> workshops<br />
Young Fab.Academy<br />
<br />
<br />
174
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
اذا كانت لدي فكره و تريد اك تنف ها و تحتاج الى بعض المسراعده او تعراوك مرن اشرخا اخرريين<br />
او تحتراج الرى دورات تدريبيره فرى اردوينرو فيمكنر زيراره فراب الب مصرر يوميرا مرن السراعه 12<br />
هرا حتى 8 مسائاٌ جميع االيام<br />
http://fablab-egypt.com<br />
https://www.facebook.com/fablab.egypt<br />
175
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
176
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
177
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ار اسم ارتعلي يه ارتل اعت عليها فل كتابه محتلى<br />
اركتاب<br />
http://www.instructables.com/id/<strong>Arduino</strong>-Projects<br />
http://www.oomlout.com<br />
http://ladyada.net<br />
http://bildr.org<br />
http://hlt.media.mit.edu/?cat=5<br />
http://circuit-projects.com/microcontroller<br />
http://www.eeweb.com<br />
http://www.lvl1.org<br />
http://www.coolcircuit.com<br />
http://www.instructables.com/id/Breadboard-How-To<br />
http://blog.makezine.com/2009/12/11/arduinoshields-open-source-hardwar/<br />
178
Simplify<br />
اردوينو ببساطة<br />
<strong>Arduino</strong><br />
ر س ي ي أستم ال امسوينل مس ار اسالب MATLAB<br />
http://www.mathworks.com/academia/arduin<br />
o-software/arduino-matlab.html<br />
http://arduino.cc/playground/Interfacing/Matlab<br />
مشاريع رائعه بأستخدام اردوينو يمكن اك تصنعها<br />
بنفس :<br />
http://fritzing.org/projects/<br />
http://www.instructables.com/id/<strong>Arduino</strong>-Projects<br />
http://www.ladyada.net/make/boarduino/index.html<br />
http://www.ladyada.net/make/mshield/index.html<br />
http://www.shapeoko.com/wiki/index.php/About<br />
http://www.ladyada.net/make/monochron/index.html<br />
http://www.ladyada.net/make/bedazzler/index.html<br />
http://www.ladyada.net/make/mintyboost/index.html<br />
http://dangerousprototypes.com/forum/viewtopic.php?f=56<br />
&t=2892#p28410<br />
http://www.ladyada.net/make/logshield/<br />
http://www.wayneandlayne.com/projects/video-game-shield/<br />
http://excamera.com/sphinx/gameduino/<br />
http://dangerousprototypes.com/2012/03/24/arduino-voicecontrol-with-easyvr-shield/<br />
http://blog.minibloq.org/p/documentation.html<br />
http://www.doctormonk.com/2011/09/arduino-solar-radio.html<br />
http://j4mie.org/blog/how-to-make-a-physical-gmail-notifier/<br />
http://blog.tinyenormous.com/2008/11/25/gmail-notifierproject-for-dummies/<br />
http://reprap.org/wiki/<strong>Arduino</strong>_Mega_Pololu_Shield<br />
179
Simplify<br />
اردوينو ببساطة<br />
مراجع أخرى: ك تب<br />
<strong>Arduino</strong><br />
30 <strong>Arduino</strong> Evil Genuis projects<br />
<strong>Arduino</strong>.Internals<br />
<strong>Arduino</strong> Projects to Save the World<br />
<strong>Arduino</strong> robotics<br />
Beginning Android ADK with <strong>Arduino</strong><br />
Environmental Monitoring <strong>Arduino</strong><br />
Getting Started with <strong>Arduino</strong> (Second Edition)<br />
Shrinkify Your <strong>Arduino</strong> Projects -burn arduino to ATiny<br />
(Video)<br />
Make a mind-controlled arduino robot<br />
Make_Magazine_Volume_25<br />
Making Things Talk Using Sensors (Second Edition)<br />
Making Things see hear and feel your world (Second Edition)<br />
O'Reilly - <strong>Arduino</strong> Cookbook<br />
O'Reilly-Make - <strong>Arduino</strong> Bots and Gadgets<br />
Oreilly Verlag - <strong>Arduino</strong> Physical Computing<br />
Practical <strong>Arduino</strong> Cool Projects For Open Source Hardware<br />
Programming Interactivity<br />
Programming Your Home Automate with <strong>Arduino</strong>, Android,<br />
and Your Computer<br />
The Art of Electronics 2nd edition Complete - Horowitz and<br />
Hill<br />
180