الاثنين، 30 سبتمبر 2013

حساس الضوء BH1750

Light Sensor BH1750

من التطبيقات الرائعة التي انتشرت كثيراً هي تقنية متتبع ضوء الشمس Solar System Tracker و الذي يستخدم لتعريض الخلايا الشمسية لأكبر كمية من ضوء الشمس الساقط لتوليد الطاقة .


أغلب المشاريع قائم على تحسس الضوء باستخدام المقاومات الضوئية LDR تستخدم لأستشعار كمية الضوء الساقطة عليها ,تعتبر هذه طريقة تماثلية سهلة و رخيصة لمثل هذه المشاريع لكنها ليست الأمثل .




يوجد هناك حساس رقمي ذو دقة عالية هو BH1750 يستطيع قراءة شدة الأضاءة بدقة تصل حتى 0.5lux و يتميز ب :




1)دقة قراءة عالية و مدى قراءة واسع "1-65535" lux .
2)التخلص من الضجيج الناتج عن الطيف الضوئي خصوصاً عند التردد 50-60 هيرتز .
3)يعمل على فولتيات حتى 1.8 فولت .
4)لا يتأثر بالأشارات القادمة من الأجهزة التي تصدر الأمواج تحت الحمراء .
5) استهلاك متدني للطاقة .
6)يستخدم بروتوكول رقمي I2C للتخاطب مع المتحكمات الدقيقة  MPU و الأصغرية MCU .


هذه بعض المميزات التي يتمتع بها هذا الحساس .


له استخدامات واسعة في الهواتف الخلوية , الشاشات لضبط شدة الأنارة اوتوماتيكيا , الألعاب التفاعلية , الكاميرات الرقمية , و غيرها .



ما ستحتاجه لتنفيذ هذه التجربة :

1) بطاقة أردوينو
2)حساس الضوء BH1750
3) اسلاك توصيل JUMPER
4) المبدل الغير عاكس CD4050 او 3 مقاومات 510 اوم
5) لوحة تعليمية Breadboard .

أفكار البرمجة :


يتم التخاطب مع هذا الحساس بواسطة البروتوكول I2C , و كل المعلومات التي ستحتاجها في البرمجة موجودة في النشرة الفنية

قمت بكتابة مكتبة خاصة لهذا الحساس سهلة الأستعمال .

يمكن تحميل المكتبة من موقع github.com , بعدها قم بفك ضغط المكتبة و وضعها ضمن مسار المكتبات في مجلد الأردوينو.



استعمال المكتبة ستجدونه ضمن الملف المرفق مع هذه المكتبة


التوصيل :



التوصيل يجب ان يكون مع مصدر 3.3 فولت و ليس 5 فولت

هناك أكثر من خيار لذلك :

1)يمكن التوصيل باستخدام cd4050 و هو Level Shift يحول الفولتية بين 5-3.3 فولت .




2) وضع مقاومة 510 اوم على التوالي .



3) الاصدارات الأحدث من الأردوينو هناك I/OREF و بتوصيل هذا المدخل مع 3.3 فولت تصبح مداخل الأردوينو تعطي 3.3 فولت و ليس 5 فولت "ميزة رائعة"



بعد تحميل المكتبة يمكنك فتح الأمثلة المرفقة معها .

كمثال بسيط , هذا البرنامج البسيط يوضح كيفية قراءة القيم من هذا الحساس و عرضها على شاشة السيريال Serial Monitor




مثال بسيط في التحكم بشدة أضاءة LED بعلاقة عكسية مع شدة اضاءة المكان .




و هذا مثال مع شاشة LCD 1602 لعرض شدة الإضاءة عليها 


توصيلة الشاشة كالأتي , و الحساس لا يختلف على توصيلته شيء .




و الفيديو التالي يوضح مبدأ عمل هذا البرنامج .






الأربعاء، 25 سبتمبر 2013

بطاقة الذاكرة SD Card

SD Card





بطاقة الذاكرة او ما يعرف باسم  Memory Card هو نوع من أنواع ذواكر  الفلاش و تستخدم لحفظ البيانات عليها , و تتميز بسعتها الكبيرة و انها لا تحتاج طاقة لتخزين البيانات عليها .

تتميز هذه الأنواع من الذواكر بأنواع متعددة , فهناك M2 و MMC و SD و SDHC و MicroSD و لها خصائص وسعات تخزينية قصوى مختلفة .




بكل الأحوال , سنتحدث عن كيفية ربط ذواكر ال SD مع الأردوينو , سواء كانت 
SDHC  او MicroSD .

هناك العديد من النماذج المختلفة من مصنعين مختلفين , فهناك من :

سباركفن SparkFun







ادافروت Adafruit 


و هناك أنواع أخرى مثل هذا , و هو الأكثر شيوعاً 





و هناك أغطية Shields تحتوي على مداخل للذواكر SD Card للأردوينو . يمكن استخدامها أيضاً .





أي نوع من الأغطية Shields التي تتوفر فيها SD Card يجب ان تراعي الأمور التالية :

أن تكون تحتوي على 3.3V converter logic لأن هذه الذواكر لا تعمل على 5 فولت مباشرة لأنها تنعطب بسهولة , يستخدم احياناً CD 4050 كمبدل رقمي بين 3.3 و 5 فولت .





سوف اشرح شرح متوافق مع كل هذه الأنواع و ما سيختلف فقط هو توافقية أحد هذه الأنواع ل 3.3 ام لا .

اذا كنت تستخدم غطاء Shield يوجد به 
3.3V converter logic فتستطيع التوصيل مباشرة مع الأردوينو , اذا لم تكن تملك واحداً فستحتاج فقط اما ل CD4050  او سنحتاج مقاومات 510 اوم عدد 3 .

يعتمد الأتصال مع الذواكر SD Card مع الأردوينو على البروتوكول SPI الذي يسمح بانتقال سريع للبيانات بين الأردوينو و المعلومات المخزنة بالذاكرة . 


ستحتاج في هذه التجربة ل :



1) بطاقة أردوينو 
2)غطاء الذاكرة SD Card 
3) ذاكرة sd card اي سعة متوفرة لغاية 16Gb 
4) اسلاك توصيل 
5)مقاومات 510 اوم عدد 3
6) لوحة توصيل Bread board


التوصيل :




اذا كان الغطاء الذي تستخدمه يدعم 5 فولت مباشرة يمكنك الأستغناء عن المقاومات و التوصيل مباشرة مع الأردوينو .


SCLK>>>D13 "with resistor 510 ohm"
MISO>>>D12
MOSI>>>D11 "with resistor 510 ohm"
CS>>>>>D4   "with resistor 510 ohm"
VCC>>>>3.3V
Gnd>>>>Gnd


البرنامج  : يقوم بفتح الذاكرة و يقوم بطباعة جملة  في ملف سينشئه داخل الذاكرة , و ثم يقوم بفتح نفس الملف في مسار الذاكرة و يقرأ الجملة المطبوعة داخله .









و هذا الذي سيظهر على الشاشة بعد تحميل البرنامج .




التعامل مع هذه المكتبة سهل و يمكن مراجعة الأوامر الخاصة بالمكتبة على موقع أردوينو  SD Library

الخميس، 19 سبتمبر 2013

Force sensor حساس القوة

Force sensor

حساس القوة 

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

 سأتحدث عن حساس القوه FSR في هذه التدوينة .



 force sensor






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



هذا الحساس يأتي بالنشرة الفنية   , و هو عبارة عن مقاومة متغيرة تتغير تبعاً لمقدار الضغط الناشئ عليها .

ستحتاج لتنفيذ هذه التجربة البسيطة :






1) بطاقة أردوينو 
2)حساس القوة FSR 406 او اي نوع متوفر 
3)اسلاك توصيل 
4) BreadBoard .
5)مقاومة "قيمة تكون بين 2.2كيلو- 10كيلو اوم "

الفكرة الرئيسية التي ترتكز عليها قراءة مثل هذه الحساسات هي تقنية تسمى مقسم الجهد Voltage Divider



ترتكز كالأتي : اذا كان لدينا مصدر جهد Vcc و كان لدينا مقاومتين R1, R2 فإن تم توصيل المقاومتين على التوالي فأن مقدار الفولتية على المقاومة R2 تعطى بالقانون :



و مقدار الفولتية على المقاومة R1 يساوي :

هذا القانون أهم قانون في الدوائر الكهربائية و الأكثر شيوعاً و في حالتنا هذه سنستخدمه لقراءة مقدار الفولتية على حساس القوة .

و هذا الجدول مهم جداً و يعرض العلاقة بين المقاومة و مقدار القوة المطبقة على هذا الحساس .



التوصيل : سيكون التوصيل كالآتي :




البرمجة :


كبرنامج بسيط سنقوم بقراءة التغير كقيمة فولتية على شاشة السيريال .






و هذا البرنامج يقيس المقاومة الناتجة ايضاً 







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



الخميس، 12 سبتمبر 2013

مقياس التسارع accelerometer ADXL335

مقياس التسارع ADXL335

Accelerometer ADXL335



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



في البداية ما هو مقياس التسارع accelerometer ؟

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

F=ma  

و هذه الخاصية تمكننا من معرفة المحاور الرئيسية و اي تغيير في الحركة قد يحدث و يغير من احداثيات هذه المحاور .

مقياس التسارع الذي سأتحدث عنه هو adxl335 الذي يستطيع استشتعار التغيير في المحاور الثلاثة 3axis  .


البنية الداخلية لهذا الحساس تظهر كما في الصورة 


اهم مواصفات ال adxl335  هي كما يلي :


فولتية التغذية :بين 1.8 - 3.6 فولت 
الحساسية : 300ملي فولت \g
0g فولتية المرجع :
 x&y axis  ما بين 1.35-1.65 فولت .
 z axis :  ما بين 1.2 - 1.8 فولت .

هذه اهم المعلومات التي نحتاجها لبرمجة و استخدام مقياس التسارع adxl335.

و لتتذكر امراً مهماً هو أننا في العادة نستخدم BreakOut عبارة عن لوحة مطبوعة و موضوع عليها القطع اللازمة مع هذا الحساس , في بعض الأنواع تدعم التوصيل مع 5 فولت , اما إذا لم تكن تدعم ال 5 فولت , فكل ما عليك هو توصيل مقاومة 500 اوم بين مداخل ال x,y,z لهذا الحساس و مداخل الأردوينو .

انا سأستخدم breakOut يدعم التوصيل مباشرة مع 5فولت دون الحاجة لاضافة أي مقاومات .

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



1) بطاقة اردوينو 
2) مقياس التسارع Accelerometer ADXL335
3) اسلاك توصيل SOLDERLESS Jumper
4)BreadBoard .

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





قبل ان نبدا بالبرمجة نعود  لطرح سؤال مهم , كيف يمكننا تحديد المحاور و تغيرها بالنسبة للجاذبية ؟

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

و لمحور ال Zout

و الصورة الكاملة تتضح هنا .

حسناً في حال كان المقياس موازياً لسطح الأرض يعمل فقط محور الz axis فاما يعطي ان الوجه العلوي باتجاه الأرض -g او باتجاه الأعلى +g .

بالنسبة للمرجع Reference 0g و كيفية حسابه .

في الحالة العادية يكون الanalog reference  الخاص بالADC في الأردوينو هو 5 فولت و عليه تكون الحساسية SENSITIVITY الخاصة  بالADC  هو :

S=5/1023 = 4.887E-3 Volt/Reading.

يصبح حساب الzero g سهلاً و يكون :
0 g(x&y axis) = 1.5/4.887E-3 = 307 Typical
0 g(x&y axis) = 1.35/4.887E-3 = 276 min
0 g(x&y axis) = 1.5/4.887E-3 = 337 Max

و عليه تكون قراءة المدخل التشابهي للمحورين السيني و الصادي هو ما بين (276 و 337  )  .
و يمكنكم حساب القراءة لمحور الZ Axis كما هو مبين بالطريقة اعلاه  .
هذا الكود الخاص بهذا الحساس , يمكن رؤية النتائج على الSerial Monitor 








تطبيقات هذا الحساس :
يستخدم هذا الحساس بشكل رئيسي في
1) قياس الأهتزازات مثل اهتزاز المحركات - اهتزاز المنشئات المدنية و المباني -قياس الهزات الأرضية و شدتها 
2) في الأذرع الاليه لقياس مدى شدة انقباض الذراع الألي على الأجسام .
3) تستخدم في برامج اختبارات السلامة الخاصة بالتصادمات في السيارات .



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