17.12.2016 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!