الاثنين، 31 مارس 2014

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

مقياس التسارع ADXL 345







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




هذا الحساس ADXL345 ,يستطيع قراءة التسارع ضمن مدى (-16 الى +16)g و هذا مدى واسع للقراءة , بحيث نستطيع قراءة ابسط تغير حتى أقل من 1 درجة .




النشرة الفنية لهذا الحساس تجدونها هنا , و مهم جداً قراءتها قبل استخدام هذا الحساس .

يمكن برمجة هذا الحساس باستخدام البروتوكولين SPI,I2C و الأغلب  يبرمجونه باستخدام ال I2C لعدة اسباب , منها أنه يمكن وضعه ضمن مشروع كبير يتضمن عدة قطع أخرى , فبالبروتوكول I2C يمكن اضافة حتى 127 جهاز على خط الناقل , بينما ال SPI فهو على الرغم من سرعته الكبيرة , فيمكنك اضافة فقط جهازين "ضمن الأردوينو , و حتى 3 أجهزة للأردوينو DUE " و يفضل ان يترك للوظائف التي تحتاج سرعة اعلى مثل ال WiFi, RGB Screen .

ايضاً البروتوكول spi قد يحتاج لدارة منطقة "NAND Gate " لتجنب التحميل الكبير على الخط الذي يسبب فقد البيانات المرسلة .

يمكنك برمجته باستخدام SPI و المعلومات متوفرة عن طريقة برمجته في النشرة الفنية .

المعلومات التي في الجدول التالي تساعدنا على فهم القيم الاساسية التي يعطيها هذا الحساس .




تستخدم هذه القطعه في الهواتف الخلويه وأجهزه الملاحه والالعاب الحديثه.


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

1) بطاقة الأردوينو
2)حساس التسارع ADXL345
3) اسلاك توصيل Jumper
4)لوحة تعليمية مثقبة BreadBoard .







التوصيل :





البرمجة :
هناك طريقتين لبرمجته , سأقوم ببرمجته دون استخدام مكتبات , و أخرى باستخدام مكتبة .
سنقوم باخراج المعلومات عن ميلان القطعه على شاشه LCD

أولاً بدون مكتبة " برمجة مباشرة " :







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

يتوفر على الأنترنت العديد من هذه المكتبات و سأكتفي باستخدام هذه المكتبة "يمكن تحميلها من هنا وايضاً من هنا  " 


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

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

البرنامج :










هذا كل شيء , نرجو ان تكون هذه المقالة مفيدة للجميع , تحياتي 

السبت، 15 مارس 2014

البوصلة الألكترونية HMC5883L

البوصلة الألكترونية HMC5883L 



دائماً ما نسمع عن البوصلة , و هي اداة تستخدم للاسترشاد بالأتجاهات , حيث يوجد هناك ابره مصنوعة من مواد ممغنطة  Ferrous Magnatic و دائماً ما تتجه نحو القطب المغناطيسي الجنوبي" القطب الشمالي الجغرافي "  , و الفكرة انه يتجه نحو المجال المغناطيسي للكرة الأرضية , مثلاً لن تعمل البوصلة في وجود مجالات مغناطيسية مجاورة لأنه قد تسبب في تغيير المجال المغناطيسي للكرة الأرضية .








بالنسبة للبوصلة الكهربائية فعملها مختلف نوعاً ما من ناحية التركيب , اذا انها تتكون من 3 مقاومات ممغنطة تتغير مقاومتها بناءاً على المجالات المغناطيسية المتكونه حوله , و بناءاً على قيمة هذه المقاومات يتحدد قيمة التيار المار فيها , و عادة ما تكون هذه المقاومات الممغنطة موجودة داخل شرائح متكاملة IC تقوم بتنفيذ كل هذه العمليات المعقدة و تخزن النتائج في مسجلات Register يسهل الوصول لها .


ما سأقوم بشرحه اليوم هو الحساس HMC5883L و هو حساس يستطيع قراءة التغيرات في المجالات المغاطيسية القصيرة , و تحتوي على بروتوكول اتصال رقمي الا و هو I2C و مسجلات بطول 12Bit ADC ,و بشدة المجال التي يستطيع قراءتها من -8 إلى  8 جاوس  , يستعمل في اجهزة الهاتف , الاجهزة اللوحية , في اجهزة الملاحة




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

1) بطاقة أردوينو Uno
2)الحساس HMC5883L 
3) اسلاك توصيل Jumper
4) BreadBoard

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



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

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








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







الأربعاء، 12 مارس 2014

روبوت التحكم عن بعد بواسطة المرسل الراديوي 315MHz

Robot Remote control Using RF315/433MHz 




من الجميل بناء روبوتات و التحكم فيها عن بعد , و قد عرضنا في سلسلة الروبوت طريقة التحكم عن بعد بالروبوت بواسطة البلوتوث


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



كل ما سنفعله هو بناء روبوت يتم التحكم به عن بعد بواسطة اردوينو مربوط معها عصا تحكم
Joystick و ارسال الأوامر لاسلكياً للروبوت .



أذن سنكون دارتين , احداها كمرسل , و الآخر مستقبل و سنثبت دارة الأستقبال على الروبوت .

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

1) بطاقة أردوينو عدد 2



2)دارة قيادة المحرك L298 Module



3)المرسل والمستقبل الراديوي RF 315MHz .



4)هيكل الروبوت Robot chassis



5)عصا التحكم Joystick



6)بطاريات لتغذية المحرك "استخدمت بطاريات ليثيوم3.7v عدد2"



7)اسلاك توصيل jumpers

التوصيل :
دارة الأرسال :

توصيل دارة الأرسال كما في المخطط ادناه



دارة الأستقبال : قد يكون توصيل دارة القيادة غير واضح , للتوضيح أكثر توصيل دارة القيادة مع الأردوينو كالآتي :


IN1>>>D5

IN2>>>D4

IN3>>>D6

IN4>>>D7










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

ثم نقوم بتثبيت المستقبل
RF RX  إلى الأردوينو كما في المخطط .



يجب ان يكون مخطط التوصيل كاملاً لدارة الأستقبال كالآتي :

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

البرمجة :

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

البرنامج بالنسبة للمرسل .


يجب ان تفتح شاشة السيريال في الأردوينو و ان تحرك عصا التحكم , يجب ان تتظهر الكلمات الصحيحة عند تحريك العصا بالأتجاه المطلوب "FORWARD,BACKWARD,LEFT,RIGHT " و هكذا ...

البرنامج للمستقبل "الروبوت "





و هذا الفيديو يوضح كيفية عمل هذا النظام بالكامل .


الثلاثاء، 4 مارس 2014

الأردوينو و توليد النغمات Arduino And Tones

الأردوينو و توليد النغمات 


Arduino And Tones


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

من اكثر الأمور متعة خلال استعمالي للمتحكمات الأصغرية MCU هي توليد نغمات موسيقية Tones مختلفة و جميلة .

تعتمد هذه النغمات على تقنية PWM في الأساس "التحكم بعرض نبضة الصوت" او بشكل ابسط تشغيل مؤقت لقياس عرض هذه النبضة "و هو ما نقوم به فعلياً في الأردوينو "




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

Tone


يقوم هذا الأمر بتوليد موجة مربعة ذات مشغولية duty cycle تساوي 50% عند اي تردد مطلوب .

هذه التقنية تعطينا اصواتاً مسموعة عند ترددات ما بين "20-20كيلو هيرتز " .

الألعاب القديمة التي كانت على اجهزة التلفزيون في منتصف الثمانينيات و التسعينيات "قبل ظهور الفيفا و المزرعة السعيدة :) " كانت هذه الألعاب تصدر اصوات رائعة نذكر منها اللعبة الأشهر "ماريو " هذه اللعبة تعتمد في اصدار الأصوات على نفس المبدأ الذي سنتعامل معه اليوم .


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

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

1) بطاقة اردوينو
2) سماعة Speaker
3)مقاومة 470 اوم .
4)اسلاك توصيل 
5)BreadBoard

سنقوم في البداية بتوصيل الدارة كما في المخطط .




برنامج بسيط .







البرنامج بسيط و يعتمد في فكرته على تحديد مخرج رقمي "D8 في برنامجنا " و وضع نوتات موسيقية ذات ترددات مختلفة على ايقاعات مختلفة "2,4,8,16" ثم توليد هذه النوتات بطولها المحدد على المخرج , يصدر لدينا هذا الصوت على السماعة .



RTTL 

قامت شركة نوكيا بتطوير لغة اطلقت عليها اسم RTTL"Ringtone Transfer Language" كانت وظيفتها تحويل النغمات إلى صيغ يفهمها الهاتف المحمول "هل تذكر مولد النغمات في الجهاز Nokia 3310 ؟ "




هذه اللغة تحتوي 3 اقسام رئيسية :
 name.
default value.
data

يكون الأسم مكوناً من 10 احرف , و تليه 3 قيم هي 


d - duration

o - octave

b - beat, tempo


هذه القيم تحدد الطول  و المدة و النغمة الموسيقية المراد تشغيلها .


هذا مثال بسيط لكيفية تشغيل صوت معين .

لو اردنا تشغيل صوت مثل موسيقى لعبة الماريو الشهيرة



هذا البرنامج يقوم بهذه المهمة .





الكود قد يكون معقداً بعض الشيء , أليس كذلك ؟

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


سنستعمل مكتبة RTTL يمكن تحميلها من هنا  .

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

كتبت هذا الكود لتوليد أكثر من نغمة موسيقية مشهورة متنوعة .

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








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


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



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