الثلاثاء، 29 أبريل 2014

مقالة جديدة على موقع INSTRUCTABLES

مقالة جديدة على موقع INSTRUCTABLES



مقال جديد على موقع instructables  بعنوان :


يمكنكم متابعة المقال و الأستفادة من هذه الدارة المتكاملة للتحكم بمحركات كهربائية مستمرة DC ذات قدرة عالية 


الاثنين، 28 أبريل 2014

برمجه ال LED matrix بواسطة Max7219


MAX7219 Dot Matrix




لقد ذكر سابقا في مقال الدائره المتكامله  Max7219 انها دائره  تستخدم للتحكم ب 64 باعث ضوئي او 8 ارقام من ال 7Segment , في هذا المقال سنشرح كيفيه برمجه ال  LED matrix 8*8 خطوه بخطوه باستخدامها .


في البدايه يجب تحميل المكتبه من هنا ووضعها في مسار مكتبات الاردوينو

يتم تعريف المكتبه في بدايه البرنامج عن طريق اضافه 



ثم نسمي القطعه  نعرف المداخل عن طريق امر  ledControl كما موضح اعلاه.

هناك خاصيه تسمح لنا باطفاء هذه القطعه بحيث تطفىء كل البواعث الضوئيه المربوطه بها ,اذا كانfalse سيكون هذا الامر معطلا وسيستمر عمل البواعث الضوئيه 

true سيكون الامر مفعلا وسيتم اطفاء جميع البواعث الضوئيه المربوطه وينطفئ تشغيل القطعه .
الفائده  من هذا الامر توفير للطاقه .
من خلال امر :

matrix leds name .shutdown(item number, state) ;
  

وهناك امر Set Intensity للتحكم بشده سطوع البواعث الضوئيه, وايضا امر clearDisplayلاطفاء جميع البواعث الضوئيه وتهيئتها لامر جديد , كما هو موضح بالصوره






 في الجزء الاول من  مقال Max 7219 تحدثنا عن التحكم بشكل رئيسي عن التحكم في البواعث الضوئيه 
الان سنتحدث بشكل موسع عن التحكم بمصفوفه البواعث الضوئيه (او ما يسمى ب LED matrix) وهي تتكون من 64 باعثا ضوئيا مقسمه على 8 صفوف و8 اعمده.

 هناك 3 طرق مختلفه يمكننا فيها التحكم بمصفوفه البواعث الضوئيه 
الطريقه الاولى :
عن طريق استخدام امر setLed




الطريقه الثانيه :
عن طريق استخدام الامر setRow





الطريقه الثالثه :
عن طريق استخدام الامر setColumn



ويمكنكم رسم الشكل المراد واخذ قيمته بالثنائي جاهزه كما في الصوره ادناه من هنا



طريقه التوصيل :
 في هذه التجربه لقد استخدمنا موديول خاص به






القطع التي نحتاجها لهذه التجربه ::

1) بطاقة اردوينو 
2) LED Matrix MAX7219 Module
3) اسلاك توصيل female-male






فيديو  يبين كيفية اظهار بعض الحركات و الأسماء :




الجمعة، 25 أبريل 2014

حساس بصمة الأصبع

Finger print sensor



في بعض المشاريع نحتاج لعمل نظام حماية او عمل نظام دخول لمكان او لقاعدة بيانات معينة , من أكثر الحساسات شيوعاً في الأستخدام هو حساس بصمة الأصبع , بحيث يعتمد التأكد من شخص ما على بصمة اصبعه .

سنقوم اليوم باستعراض هذا الحساس و كيفية توصيله مع الأردوينو .

في البداية سنتعرف على الحساس الذي سنستخدمه و هوSEN04172P



 Module Type : SEN04172P
Supply voltage: 3.6~6.0 V
Operating current(Max) : 120 mA
Storage capacity: 162 templates
Baud rate :9600, 19200, 28800, 38400, 57600bps (default is 57600)
Interface:TTL Serial
Work Temperature:-20 ~ +50 ℃

هذا الحساس يعتمد على البروتوكول UART Serial .



يأتي هذا الحساس عادة مع سلك خاص لتوصيله به ذو الألوان :

الأحمر : تغذية 5V
الأسود : الأضي Gnd
الأبيض: سلك Rx للحساس TTL
الأخضر"احياناً اصفر": سلك Tx للحساس TTL

القطع المستخدمة في هذه التجربة :


1) بطاقة أردوينو "أونو " 
2)حساس البصمة  
3)اسلاك توصيل Jumper

سنقوم في البداية بتخزين البصمات التي نريد التعرف عليها مسبقا , و هذا يتم عن طريق الخطوات التالية :


1) نحمل برنامج فارغ Blank على الأردوينو "يحتوي على setip, loop فقط " 
//Blank code 
//http://www.genotronex.com
//Code for finger print sensor
void setup() {}
void loop() {}

2) نوصل الحساس مباشرة إلى ال (Hardware serial (D0,D1  نقوم بتشغيل برنامج SF Demo و يمكن تحميله من هنا 






3) نقوم بأختيار رقم المنفذ الصحيح " كتنويه أذا لم يفتح معك البرنامج و يرتبط مع السنسور بشكل صحيح فأجعل رقم المنفذ الخاص بالأردوينو بين 2-10 عن طريق اعدادات المنافذ " كما في الصورة .


بعد الربط بشكل صحيح مع الحساس ستعطي المعلومات و البيانات المتعلقة بالحساس , و حتى البصمات المخزنة مسبقاص "أن وجدت" ستظهر على الشاشة .

الآن سنضيف بصمة جديدة ليتعرف الحساس لاحقاً عليها .

نذهب للخيار Enroll و نضغط عليه لتظهر لدينا شاشة , هذه الشاشة تطلب منا تحديد مكان تخزين البصمة الحالية "من 0 - 162 بصمة "




"بعد تحديد مكان تخزين البصمة , نضغط OK ثم نضع الاصبع على الحساس , سيظهر لون أحمر على الحساس , أبقي يدك موضوعه عليه و ستظهر رسالة على الشاشة ترشدك للخطوات .





هذه هي الطريقة لتخزين بصمة جديدة "يمكنك تخزين 162 بصمة مختلفة ".


طريقة سريعة للتأكد من أن تخزينك للبصمة صحيحة و مكان تخزين البصمة نختار الأمر ( بحث search ) ثم نضع الأصبع على الحساس و أن كانت البصمة مخزنة مسبقاً سيعطي الحساس انها موجودة و المكان المخزنة فيه هذه البصمة .



هكذا نكون قد تعرفنا على طريقة تخزين بصمة جديدة لهذا الحساس .



الخطوة الثانية : ربطه مع الأردوينو مباشرة .


الخطوة التالية تتلخص في عمل مقارنة للبصمات التي سيتم ادخالها لهذا الحساس و توظيفها لعمل وظائف مختلفة "تشغيل محرك , السماح بدخول قاعدة بيانات , السماح بتلقي اوامر من هذا المستخدم ...ألخ "





التوصيل سيتغير  كما في المخطط .




و هذا هو البرنامج المستخدم لهذا الحساس .






يقوم هذا البرنامج بمقارنة البصمات المخزنة فيه بالبصمات التي يتم وضعها على الحساس و ادخالها , و طباعة اسم صاحب البصمة  










الأربعاء، 23 أبريل 2014

روبوت متتبع الخط Line Follower

روبوت متتبع الخط  Line Follower


ارسم خط و هو يمشي عليه





كثيرا ما نسمع عباره "ارسم خط و امشي عليه " اما للسخريه او للتخطيط و ما الى ذلك . ولكن لماذا لا نطبقها فعليا على روبوت نرسم له خط على الارض و عليه ان يتبعهز

من منا لا يذكر قصه الاولاد الصغار الذين دخلو الى الغابه و حتى لا يضلو الطرق اثناء العوده مان يلقون بعض كسرات الخبز خلفهم ليتبعوها عند عودتهم

ماذل لو فعلنا الشئ نفسه مع روبوت من صنع ايدينا "نرسم له الخط وعليه ان يتبعه " 




انا نتحدث عن :


" الروبوت متتبع الخط"


"Line Follower Robot"


ولكن هل يستطيع هذا الشيئ ان يتتبع اي مسار نحدده له؟

الاجابه هي : نعم

بكل بساطه نحن البشر قادرون على صنع اي شئ طالما نمتلك هذا العقل الجبار الذي هو هبة من الخالق سبحانه وتعالى


كل ما نحتاجه لصنع هذا الروبوت هو التالي :

1. اردوينو اونو" Arduino Uno"


2. دائرة قيادة المحركات " L298 Dual H-Bridge Motor Driver"
3. حساس متتبع الخط " Line follower Sensor QRE1113 Analog"

4. اسلاك توصيل " male-male/male-female"


5. زر تشغيل و ايقاف


6. جسم الروبوت "Robot Platform "






7.  حامل بطاريه للاردوينو


الرسم التوضيحي لتوصيل القطع معا :



اما عن الصعوبات او المشاكل التي واجهتني اثناء العمل على الروبوت فهي مشاكل بسيطه جدا حيث انني قد اخطائت في توصيل المحركات بدائره القياده و قد عكست قطبيه احدهم فبدلا من ان يسير الروبوت الى الامام كان يدور حول نفسه و بعد مراجعه التوصيلات اكتشفت الخطاء و اصلحته على الفور


الكود المستخدم في الروبوت :






هذا الفيديو اثناء تجريب الروبوت على مسارين مختلفين



 كاتب المقال :
محمود حمدي عيد
جمهورية مصر العربية
للتواصل مع الكاتب :



الأحد، 13 أبريل 2014

Arduino Joystick Module عصا التحكم

عصا التحكم 


Arduino Joystick Module 



عصا التحكم هي احدى القطع الألكترونية الأكثر بساطة و سهلة البرمجة و ذات تطبيقات متعددة في التحكم , نراها بكثرة في أيدي الألعاب , تحريك أذرع الروبوتات و الرافعات , و غيرها الكثير .





يمكننا بواسطه مدخلات هذه القطعه  التحكم بالحركه  في 3 الاتجاهات (س,ص,ع)   .وذلك لانها تتكون من مقاومتين متغيرتين"Potentiometers" للتحكم بالاتجاهين "س"و"ص" و"button" للاتجاه "ع", لذلك تكون المدخلات بالاتجاهين "س" و"ص"  تماثليه "  analog signals", والبعد الثالث "ع" مدخل رقمي "digital signals".






طريقه التوصيل :

يمكننا بسهوله توصليها مع بورد الاردوينو


  
vRX: لادخال البيانات عند حركته بلاتجاه "س" ويوصل مع A0 على بورد الاردوينو .
vRY: لادخال البيانات عند حركته بالاتجاه "ص" ويوصل مع A1على الاردوينو.
SW:لادخال البيانات عند حركته بالاتجاه "ع"يوصل مع المداخل الرقميه لبورد الاردوينو (1 الى 13) لم نستخدمه في هذه التجربه 

GND<<Arduino GND 
5v>>Arduino 5v



الكود :






في الوضع الطبيعي للقطعه تكون قراءه الفولتيه 2.5 فولت وعند تحريكها تدريجيا باتجاه السيني السالب تقل الى ان تصل صفر فولت . اما عند تحريكها باتجاه السيني الموجب تزداد لتصل 5فولت.وهكذا بالنسبه للتحريك بالاتجاه الصادي.في هذا البرنامج نقوم بقراءه حركه عصا التحكم في الاتجاهين السيني والصادي وتحويل هذه القراءه لفولتيه باستخدام المعادله


القراءه بالفولت = القراءه التماثليه * 4.88*10^-3
 واظهار القيمتين على ال Serial monitor


 وقد استخدمنا هذه القطعه للتحكم في حركه الروبوت في مقال روبوت التحكم عن بعد بواسطه المرسل الراديوي 315MHz

الأحد، 6 أبريل 2014

حساس الحركه (Passive Infra-Red) PIR Sensor

حساس الحركة 






حساس الحركه(PIR Sensor) قطعه كهروحراريه يكشف عن  وجود الحركه من خلال استشعار التغيرات في مستويات الاشعه تحت الحمراء المنبعثه من الاجسام المحيطه به ويحولها لاشاره كهربائيه.هذه الاشاره يمكننا قرآتها بواسطه  متحكم (Microcontroller). سأتحدث في هذا المقال عن مميزات هذه القطعه تطبيقاتها وكيفيه ربطها مع الاردوينو.
 


حساس الحركه قطعه تستشعر وجود حركه بالقرب منها لمسافه من 3  الى 7 متر بزمن تأخير عالاقل 5 ثواني  اضيفت له قبه بلاستيكيه لزياده انتشار الموجات ويستشعر وجود الحركه بزاويه 110درجه.فعند وجود الحركه يعطي اشاره رقميه (HIGH ) . يمكننا التحكم  بزمن اخذ القراءات ومسافه كشف الحركه عن طريق مقاومتين متغيرتين بتحريكهم باتجاه عقارب الساعه.







من تطبيقات هذه القطعه  اجهزه الانذار واناره الغرف عند وجود حركه بها في انظمه المنازل الذكيه ,وفتح ابواب المحال التجاريه عند اقتراب الناس منه وغيرها الكثير





في هذا المقال سنقوم بعمل تجربتين الاولى هي اضاءه باعث ضوئي (LED) عند وجود الحركه , اما الثانيه هي ان تصل رساله عن طريق البلوتوث الى التلفون بوجود حركه في المكان.
  
القطع التي نحتاجها:
1) بطاقه اردوينو uno
2) سنسور الحركه PIR sensor
3) باعث ضوئي LED
4) مقاومه 100 اوم 
5)قطعه  بلوتوث HC-05
6)اسلاك التوصيل 
7) Bread Board 



التجربه الاولى : ربط حساس الحركه وباعث ضوئي مع بطاقه الاردوينو .

 
طريقه التوصيل:




الكود :



   
 فيديو التجربه :




التجربه الثانيه : توصيل حساس الحركه وقطعه البلوتوث مع بطاقه الاردوينو 


طريقه التوصيل : 





الكود :




وقد استخدمت هذه القطعه في اضاءه لمبه عند وجود حركه بالغرفه وهذا الفيديو يبين ذلك :








 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.