الأربعاء، 25 فبراير، 2015

نقل البيانات عن طريق الليزر باستخدام الاردوينو

Data transfer Using Laser




ادعموا مدونة جينوترونكس على موقع باتريون Patreon لكي نستمر في نشر المزيد من التجارب و المشاريع المختلفة باللغه العربية 

حتى اقل دعم يساعدنا على الاستمرار , شكرا لك متابعينا و داعمينا 


تعتبر احدى طرق تراسل البيانات اللاسلكيه بين قطعتي اردوينو, حيث يتم ارسال البينات عن طريق اشعة الليزر باستخدام laser module  واستقبالها عن طريق مستقبل ضوئي LDR Sensor. وهو موضوع شيق وممتع .....


المبدأ العام لتناقل البيانات هو ضبط المرسل والمستقبل على نمط معين لفهم البيانات المتبادله. مثلا في الserial  يتم ارسال واستقبال البيانات byte-by-byte ويتم الارسال والاستقبال على هذا الأساس... الفكره هنا ان نضبط المرسل والمستقبل على نمط معين للتواصل نحن نحدده, وفي هذا المضوع سوف نعتمد على الزمن . 




في موضوعنا سوف نقوم بارسال الأرقام  0  -  to 9 من بطاقة اردوينو عن طريق laser module واستقبالها على بطاقة اردوينو أخرى عن طريق LDR. ثم طباعتها على LCD .

لنقوم بذلك أولا سنتحدث عن ال laser module : يرسل اشعة ليزر بخط مستقيم عند إعطائه HIGH على ال signal pin
والاشعة التي يرسلها كافيه لتغيير مقومة LDR بشكل كبير.


يتم ارسال HIGH&LOW لزمن معين من بطاقة الاردوينو المُرسله عبر الليزر واستقبال الاشاره على حساس الضوء وقرائتها عن طريق بطاقة الاردوينو الثانيه. حيث تقوم بقياس زمن التحول من HIGH الى LOW أو العكس وذلك باستخدام الامر PulseIn() ويقوم هذا الامر بقياس نبضه pulse على pin معين(سواء كانت HIGH او LOW ) حيث يبدأ التوقيت عند بداية النبضه وينهي التوقيت عند نهايتها ويعطي قيمة التوقيت .


ولعمل ذلك يتم تحديد زمن معين لكل رمز سيتم ارساله . مثلا لارسال الرمز4 سيتم ارسال إشارة HIGH لمدة 500ms على جزء الارسال ثم يقيس الزمن على جزء الاستقبال فيتم تحديد الرمز المرسل . ثم نقوم بطباعته على الشاشه LCD screen.


الان ننتقل الى الجزء العملي . 




لعمل التجربه تحتاج للتالي : 

1)بطاقتي اردوينو uno (انا استعملت uno & mega)
2)Laser module
3)LDR sensor
4)100ohm&5kohm resistors
5) الشاشة الكريستاليه Lcd1602
6)اسلاك توصيل . 
7) Breadboard

التوصيله : 








البرمجة:

تنقسم البرمجه الى جزئين:
1) جزء الارسال .
2)جزء الاستقبال . 

في جزء الارسال سنقوم باستقبال الرقم المراد ارساله عن طريق ال serial monitor ثم ارساله عن طريق الlaser بزمن محدد .

كود الارسال :

الجزء الثاني : نقوم باستقبال الرقم المرسل من الليزر عن طريق الldr . ويتم هذا عن طريق فحص حالة الpin وتغيرها من low الى high وقياس الزمن عن طريق امر pulsein()
ثم حسب الزمن المحدد يتم تحديد الرقم لطباعته على lcd.


** ملاحظه : عند استقبال الرقم من laser يكون هناك بعض الزياده بالزمن بال ms وللحصول على قيمه يجب التخلص من القيمه الزائده ويتم هذا عن طريق العمليه الحسابيه modulo % (باقي القسمه) كالتالي : time – time%100 . فاذا اعتبرنا مثلا انا ارسلنا رقم 2 أي ان القيمه المفترض استلامها هي 300 ولكن فعليا القيمه المستلمه قد تكون 340 ولكن القيمه المطلوبه هي 300. للقيام بذلك نطرح قيمة الزياده من القيمه الكامله : فبقاي قسمة 340 على 100 هي 40 . وبطرح 40 من 340 نحصل على الرقم 300 . وهكذا لاي قيمه . ويجب الانتباه ان الامر يعطي الزمن بال مايكرو لذلك يجب القسمه على 1000 لتحويله الى ملي.


البرنامج : 
1) جزء الأرسال 




2) جزء الأستقبال 






صور من نتائج التجربة .




ارسال رقم 7 من خلال نافذة السيريال

وصول رقم 7 لدارة الأستقبال




كاتب المقال : معتز محمد الفياض بني عامر . 
الايميل : bada2wave3@gmail.com


الأربعاء، 18 فبراير، 2015

عمل رادار بسيط بواسطة الأردوينو

Arduino Simple  Rader using Ultrasonic 




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

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

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



1) Servomotor mg995 180degree
2)Ultrasonic sensor
3)Arduino uno board 
4)Breadboard small size 

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


توصيل السيرفو :-

يتم توصيل مدخل التغذيه vcc مع مدخل ال5V بالاردوينو 
يتم توصل الGND مع مدخل الGND بالاردوينو
واخيرا توصيل سلك ال DATA مع مدخل D9 بالاردوينو  


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

يحتوي الالتراسونيك على اربعة منافذ توصيل ,مدخل التغذيه VCC , ومدخل الGND ,ومدخل ال Trigger اللذي يقوم بارسال النبضات ,ومدخل الECHO اللي يستقبل صدى النبضات اللتي ارسها ال TRIGGER

سنقوم بتوصيل الTRIGGER مع D12
ومدخل ال ECHO مع D13




التوصيل  :



البرنامج : 









السيرفو :-
#include <Servo.h>

نستخدم هذه ال instruction لاستدعاء مكتبة السيرفو والتي تتيح لنا التعامل مع جميع التعليمات اللازمه للتحكم بال servo



Servo Name;
هذه ال instruction تعرف من خلالها  object السيرفو الذي سنتعامل معه 


Name.attach(Pin Number);

عن طريق هذه الinstruction نقوم بتحديد المدخل pin الذي اوصلناه بالسيرفو والذي كان pin 9  , ويجب ان يكون هذا المدخل هو احد مداخل الPWM او احد مداخل ال analogue 



Name.write(val)

هنا نحدد الزاويه اللتي يعمل فيها السيرفو وهي عدد صحيح مداه (0-180)

الالتراسونيك :


#include "Ultrasonic.h"

هذه الinstruction تتيح لنا التعامل مع المكتبه الخاصه بحساس الالتراسونيك



Ultrasonic ultrasonic(trig,echo); 

هنا يتم تعريف المداخل اللتي ستوصل عليها كل من ال trigger  وال echo وقد تم توصيلهما على D12 و D13 بالترتيب 


ultrasonic.Ranging(CM)

وعن طريق هذه ال Instruction نستطيع الحصول على قراءة الالتراسونيك بالسنتيمترات






وهذه النتائج تظهر على شاشة السيريال : 







وهذا الفيديو يوضح عمل المشروع : 


الكاتب : عبد الرحمن قسايمة - الأردن 

الجمعة، 13 فبراير، 2015

التحكم بالمحركات الكهربائية بواسطة الأوامر الصوتية .

Voice Control DC Motor 





تتضمن هذه المقال تجربة لعمل تحكم بمحرك مستمر DC Motor بأتجاهه و بسرعته عن طريق الصوت

يمكن لهذا التطبيق ان يستخدم لتشغيل - فتح الأبواب الكهربائية  , تشغيل و اطفاء اجهزة كهربائية عن طريق تغيير بعض القطع في المشروع "كأضافة مرحل Relay "

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


1) بطاقة أردوينو .
2) موديول التعرف على الصوت Voice Recognation Module 
4)محرك كهربائي DC Motor 
5)اسلاك توصيل Jumper Wire  .
6)مصدر جهد خارجي "في حال تم استخدام محركات ذات قدرة كبيرة " 


خطوات المشروع : 

اولا :  نقوم بتحديد الأوامر الصوتية التي سنستخدمها للتحكم بالموتور ثم نقوم بتسجيل الصوت.

أنا اخترت الأوامر :

Forward , Backward للتحكم باتجاه الحركة 

Increase ,Decrease للتحكم بالسرعة 

Stop لايقاف الحركة


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

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

نقوم بتوصيل القطع جميعاً مع بعضهم البعض كما في المخطط :





في هذا المشروع قمنا بتخزين الأوامر كالآتي : 

الأمام : 0x11
الخلف :0x12
الوقوف : 0x13
زيادة السرعة :0x14
تقليل السرعه :0x15



حيث يتم تسجيلهم بهذا التسلسل في المجموعه الأولى في موديول التعرف على الأصوات 
البرنامج :










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


تم كتابة المقال بواسطة :
 لينه أحمد  عامر - الأردن
البريد الإلكتروني : linaaamer93@gmail.com
 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.