الجمعة، 27 ديسمبر 2013

الدارة المتكاملة PCF8574

الدارة المتكاملة PCF8574





تتميز المتحكمات الأصغرية MCU بعدد من المنافذ الرقمية Digital Ports التي يمكنها قراءة الأوامرالرقمية كما في ال Push Button او لوحات الادخال Keypad و ما شابه .

لكن هل تحتاج لمنافذ رقمية أكثر لمشروعك ؟ 
في هذه التدوينة ستتعرف إلى الدارة المتكاملة PCF8574 التي تعمل على زيادة المنافذ المتاحة لك ل 8 منافذ و استعمالها كمدخل Input لقراءة  او كمخرج.

شركة فيليبس طورت البروتوكول I2C في التسعينيات 

طريقة الأتصال مع الأردوينو هي ما يميز هذه القطعة اذا انها تستخدم بروتوكول I2C. يتصل هذا البروتوكول باستخدام سلكين لتبادل البيانات,حيث السلك الاول هو (SCL)والاخر (SDA). مع هذه القطعه يمكننا فقط استخدام منفذين من لوحة الاردوينو للتحكم ما يصل الى 8 منافذ رقمية , بالإضافة لأمكانية 
توصيل ما يصل إلى 8 أجهزة من ال PCF8574،فيصبح لدينا  64منفذا في المجموع ! 64 منفذ اضافي نتحكم بهما بواسطة سلكين فقط من لوحة الأردوينو يا للروعة .


توزيع الأرجل لهذه الدارة المتكاملة :




تأتي هذه الدارة المتكاملة في عدة تعليبات مختلفة Packages 





وظيفة كل مدخل من هذه الدارة المتكاملة في الجدول :



A0,A1,A2  :هي أرجل لعنونه القطعة بحيث نحدد عنوان هذه الدارة .

P0,P1,P2,P3,P4,P5,P6,P7 :هي المنافذ التي ستعمل كمدخل او كمخرج .

SDA,SCL :هي أرجل ال I2C للاتصال مع المتحكم .


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

ينضبط عن طريق المداخل A0,A1,A2 فمثلا اذا وصلنا هذه ال3 مداخل بالGND يكون العنوان للقطعة هو 32 .

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


ومن التطبيقات عليها :
1)دارة قيادة الشاشة الكريستالية LCD driver و تحدثنا عنها سابقاً 
2) قيادة الباعث الضوئي LED drver.
3)قراءة المفاتيح button-مثل لوحات الادخال keypad driver

ما سنحتاجه لتنفيذ هذه التجربة :
1)بطاقه أردوينو
2)الدارة المتكاملة  PCF8574
3)باعث ضوئي  LED عدد 8 
4)مقطع سُباعي Seven segment
5)مقاومتين 4.7 كيلو اوم
6)مقاومه 50 اوم
7)اسلاك التوصيل

8)BreadBoard .

في البداية سنوصل هذه الدارة المتكاملة  مع  LED

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

الطرف الموجب من الباعث الضوئي LED مع المصدر الموجب و الطرف السالب مع الPCF8574 


هذه الدارة عبارة عن مبدد للتيار Current sink و ليس مصدر للتيار Current source .

البرنامج :




/*

كل ما نقوم به هو فتح الأتصال عن طريق ارسال  عنوان القطعة و من ثم ارسال قيمة بين صفر -255 و على اساسها نستطيع تفعيل او تعطيل عمل كل مدخل على حدا 

وهذا الفيديو يوضح هذا التطبيق:





التطبيق الثاني هو قيادة المقطعات السُباعية Seven segment 


التوصيل :
 

وهذا الفيديو يوضح هذا التطبيق:



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

الدارة المتكاملة TLC5940

LED Driver TLC5940




تعتبر TLC5940 من أنتاج Texas instrument  دارة متكاملة ذات استعمالات متعددة نظراً لعدد المخارج الكبير و قدرة المربط الواحد على تصريف التيار , كما أنها تتمتع بميزة PWM  ب 12Bit أي من (0-4095) خطوة .




استعمالات هذه القطعة متعددة , فتستخدم لقيادة البواعث الضوئية و أيضاً للمحركات servo و حتى في قيادة المرحّلات الكهربائية Relay .




سنعطي لمحة بسيطة اليوم عن قدرات هذه الدارة المتكاملة الجبّارة ذات ال16 مخرج و سنقتصر على ذكر استخدامها مع الLED البواعث الضوئية .



نظرة عامة على الدارة :



هذه الصورة تبيّن الوصف لكل مرابط الدارة :











سنأخذ أهم المعلومات عن هذه الدارة بالأضافة لشرح عن كل مربط منها  و سنأخذ تعليب DIP  ذو ال28 رجلاً:




تعمل على إطفاء كل المخارج عندما تكون في وضعيةHIGH
و عندما تكون LOW يتم التحكم بالمخارج بواسطة PWM
23
Blank
تحول الدارة لوضعية الdc input  عندما تكون LOW
سمضعها دائماً HIGH و لن نستعمل هذا الوضع
19
DCPRG
تأريض الدارة
22
GND
مرجع الساعة لل PWM
18
GSCLK
مربط تحديد التيار , يربط معاه مقاومة تحدد التيار
20
IREF
ساعة الإزاحة التسلسلي
25
SCLK
مدخل البيانات التسلسلي
26
SIN
مخرج بيانات تسلسلي
17
SOUT
هذا المربط مسؤول عن تحديد وضع العمل للدارة "HIGH,LOW,Vprg "
27
VPRG
خرج الخطأ , يستخدم لمعرفة إذا ما كان هناك باعث ضوئي معطل أو خلل في التوصيل , حيث ينتقل الخرج لLOW عندها .
16
XERR
ماسك البيانات للمسجلات
24
XLAT
المخارج  للدارة و عددها 16 مخرج
تعمل لمصرف للتيار Current sink  .
28,
1-15
OUT (0-15)


سنحتاج بداية ل القطع التالية : 



1) بطاقة أردوينو 
2)بواعث ضوئية LED  عدد 32 
3)مقاومات ( 10كيلو *2  و  3كيلو اوم*2)
4)الدارة المتكاملة TLC5940 عدد 2
5)اسلاك توصيل 
6)لوحة تعليمية Breadboard


التوصيل :

هنا التوصيل لهذه الدارة مع الأردوينو


البرنامج :

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

هذه المكتبة تسهل العمل و تجعل كتابة الكود أسهل .

بعدما تقوم بتحميل الملف الخاص بالمكتبة قم بفك ضغطه ووضعه في العنوان التالي :

<Arduino Folder>/hardware/libraries/ 


سنشرح أهم التعليمات في هذه المكتبة :

حتى نضيف المكتبة يجب علينا أولاً كتابة الكود التالي :

#include "Tlc5940.h" 

هذا الأمر يجعل المكتبة فعّاله .

في جملة التثبيت void setup نقوم بكتابة ...

Tlc.init(); 

هذه ضرورية لتهيئة المتحكم للعمل ...
أمر آخر ...


Tlc.clear(); 

يقوم هذا الأمر بتصفير جميع المخارج " ضمنياً داخل المكتبة يقوم بتحويل مربط الBlank إلى حالة 1 منطقي HIGH .

أما الأمر الذي يجعلنا قادرين على تحديد أي مربط سنظهر عليه الخرج هو :

Tlc.set(PIN, intensity ); 

حيث :

PIN:المربط المراد إظهار الخرج عليه "من 0-15 "

intensity:عبارة عن قيمة شدة الخرج وهي من 0-4095

و تعبر عن PWM وهذا الوضع يسمى Grayscale PWM .

و لن يتم تحميل البيانات على المتحكم و عرضها إلا إذا تم كتابة الأمر :

Tlc.update(); 

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

هناك أمر أخير يجب توضيحه قبل البدء , ما هي قيمة R التي سنضعها بين مصدر الجهد و IREF ؟

من النشرة الفنية نعرف أن القانون العام لتحديد التيار المار في كل مخرج من المخارج ال16 تعطى بالمعادلة :


أنا أريد تحديد قيمة تيار كل مخرج ب13 ملي امبير إذن سأحتاج لمقاومة قيمتها 3 كيلو أوم . و هكذا يمكنك تحديد التيار و المقاومة لهذه الدارة .




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



كما يجب الأخذ بعين الأعتبار كمية الطاقة المصروفة , اذا أن الطاقة العظمى التي تستطيع هذه القطعة تبديدها هي 1500ملي واط لل DIP Package و تصل لغاية 2500 ملي واط في ال SOP Package اي تطبيق تريد ربطه مع هذه القطعة يجب ان لا تتعدى قدرته هذا الحد .


التيار الاقصى الذي يستطيع المدخل الواحد تبديده يعتمد على مصدر التغذية لهذه القطعة " يبلغ 60ملي امبير عند 3.3 فولت و 120ملي امبير عند 5 فولت " يفضل ان يستخدم المصدر 3.3 فولت حتى نتجنب مشكلة الحرارة الزائدة Overheating التي قد تسبب احتراق هذه القطعة.

موديول جاهز Breakout من سباركفن الأمريكية 



هذه الدارة هي فقط تستطيع تبديد التيار "current sink " و لا تستطيع ان تكون كمصدر للتيار





الجمعة، 15 نوفمبر 2013

روبوت البلوتوث

روبوت الأردوينو و التحكم به بواسطة الأندرويد


قد ترغب في بناء روبوت تستطيع التحكم به عن بُعد , سيكون هذا مسلياً جداً خصوصاً إذا استطعت أن تتحكم فيه بواسطة جهازك الذكي العامل على نظام الأندرويد Android .

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



القطع التي سنحتاجها :

1) بطاقة أردوينو  Uno " ميجا ستحتاج لتعديل في البرنامج "




2)غطاء قيادة المحركات L293 Motor driver 

او دارة قيادة المحرك  L298




3) هيكل روبوت Magician Chassis من شركة spark fun  او الهيكل 4Wheel Robot او هيكل روبوت Zumo من Pololu





4) قطعة البلوتوث HC-05 او HC-06 او احياناً تسمى Linvor .






5)بطاريتان , واحدة لتغذية المحرك "يجب ان تكون أكبر من 5 فولت " و الثانية  بطارية 9 فولت مع الحاضنة  لتغذية الأردوينو .



6) جهاز ذكي او لوح مزود لنظام التشغيل أندرويد 4.0

7) قطع اخرى , مثل  اسلاك توصيل , ستحتاج لأسلاك توصيل female-female عدد 4 , و ايضاً ستحتاج ل dc jack male+female لتسهيل توصيل البطارية مع غطاء الأردوينو الخاص بالمحرك  , و اخيراً pin header male عدد 1 .




التوصيل :

لأنني سأستخدم الغطاء L293 Motor driver فسأربط البلوتوث مع الأرجل A0,A1 على التوالي , و الجيد في هذا الغطاء هو امكانية توصيل المداخل التناظرية بسهولة .

التوصيل كالتالي :







وفي حال استخدام دارة القيادة L298 يكون التوصيل كالآتي :

ستحتاج لتحميل هذا التطبيق من متجر الأندرويد 






هذا التطبيق متوافق مع هذا البرنامج 

البرنامج للروبوت سواءاً كانت ب 4 عجلات ام بعجلين .

الكود مع دارة القيادة L298









الكود مع دارة غطاء قيادة المحرك L293



و هذا الفيديو يوضح تطبيق هذا البرنامج 






الثلاثاء، 12 نوفمبر 2013

الروبوت المتفادي للحواجز باستخدام حساس الأشعة تحت الحمراء 1

الروبوت المتفادي للحواجز Avoiding IR Robot 1


L298 Motor driver



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




ما سنقوم ببناءه هو روبوت متفادي للحواجز " Avoiding Robot " هذا الروبوت يمكنه تحسس الأجسام التي أمامه و تفاديها , مستخدماً حساس الأشعة تحت الحمراء SHARP 2Y0A21




في ما يلي في هذا المقال سستعرف على كل المفاهيم المرتبطة بهذا الروبوت .

في البداية , ماذا سنحتاج لتنفيذ هذه التجربة ؟ 

القطع المطلوبة لتنفيذ هذا الروبوت قليلة و سهلة التوافر , و طريقة ربطها بعضها سهلة ايضاً , القطع هي 

1) أردوينو Uno او Dumilanova  .



2) هيكل الروبوت Magician Chassis من شركة Sparkfun , هيكل سهل التركيب ,و يمكن استخدام هيكل ذو 4 محركات ذو عزم و تحكم أفضل من ذو العجلين , لكنه يستهلك طاقة مضاعفة  





3)  L298 Motor Sheild و هو غطاء مصمم خصيصاً ليتناسب مع بطاقات الأردوينو المختلفة , يحتوي على دارة متكاملة هي L298


4) حساس الأشعة تحت الحمراء IR 
SHARP 2Y0A21





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


5)بطاريتان , واحدة لتغذية المحرك "يجب ان تكون أكبر من 5 فولت " و الثانية  بطارية 9 فولت مع الحاضنة  لتغذية الأردوينو .
6) قطع اخرى , مثل  اسلاك توصيل , ستحتاج لأسلاك توصيل female-female عدد 4 , و ايضاً ستحتاج ل dc jack male+female لتسهيل توصيل البطارية مع غطاء الأردوينو الخاص بالمحرك  , و اخيراً pin header male عدد 1 .

توصيل القطع : قد تحتاج فقط لعكس التوصيلات بحيث تقلب السلك الأحمر مع السلك الأزرق لكلا المحركين , و لا ضرورة لتوصيل 5فولت بين غطاء قيادة المحرك L298 Module و بين الأردوينو .



التوصيلة لروبوت بمحركين 
التوصيل لروبوت بأربع محركات 

توصيلة الحساس مع الأردوينو

هذا الحساس يعطي خرجاً متناسباً تناسباً عكسياً مع المسافة .

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

برنامج اختبار المحركات فقط :








و هذا البرنامج الكامل للمشروع .







و هذا الفيديو يوضح كيف يعمل هذا الروبوت , رائع أليس كذلك ؟




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