‏إظهار الرسائل ذات التسميات دوائر. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات دوائر. إظهار كافة الرسائل

الاثنين، 4 نوفمبر 2019

الاردوينو Arduino الجزء الثاني



هناك العديد من أنواع لوحات الأردوينو Arduino و التي يمكن إستخدامها لأغراض مختلفة. تبدو بعض اللوحات مختلفة قليلاً عن تلك الموجودة في الصورة التالية ، و لكن معظم الأردوينو Arduinos لديها غالبية هذه المكونات المشتركة.

ما الذي تحتويه لوحة الأردوينو Arduino ؟!


دائرة اردوينو اونو Arduino Uno

- مصدر الطاقة  (USB / Barrel Jack )
كل لوحة اردوينو Arduino تحتاج إلى وسيلة للاتصال بمصدر الطاقة. يمكن تشغيل Arduino UNO من كابل USB قادم من جهاز الكمبيوتر  أو من مصدر طاقة الجدار (مثل هذا) الذي يتم استخدامه لشحن التليفون المحمول . في الصورة ، رقم  1 هو USB و مقبس باريل (2).

اتصال USB هو أيضًا الطريقة التي سيتم بها تحميل التعليمات البرمجية على لوحة الاردوينو Arduino.
ملاحظة: لا تستخدم مصدر طاقة أكبر من 20 فولت حيث ستتمكن من التغلب على الدائرة (وبالتالي تدمير) الاردوينو Arduino الخاص بك. يتراوح الجهد الموصى به لمعظم  انواع اردوينو Arduino بين 6 و 12 فولت.

- نقاط جهد (5 فولت ، 3.3 فولت ، GND ، تناظرية ، رقمية ، PWM ، AREF)
النقاط الموجودة على Arduino هي الأماكن التي تقوم فيها بتوصيل الأسلاك لإنشاء دارة (ربما بعض الدوائر تحتوي على "رؤوس" بلاستيكية سوداء تسمح لك بتوصيل السلك مباشرة باللوحة.و تحتوي على عدة أنواع مختلفة من النقاط ، يتم تمييز كل منها على اللوحة ويستخدم في وظائف مختلفة.

3- GND : اختصار لـ "Ground" مشترك . هناك العديد من النقاط  GND على Arduino ، يمكن استخدام أي منها لتوصيل دائرتك.
5 فولت هو رقم (4) في الصورة و 3.3 فولت (5): كما هو واضح  نقطة 5 فولت تعطي 5 فولت من الطاقة ، بينما توفر نقطة جهد  3.3 فولت ، 3.3 فولت من الطاقة. معظم المكونات البسيطة المستخدمة مع اردوينو Arduino تعمل في مدي جهد من 5 الي 3.3 فولت.
نقاط جهد تناظري  - Analog - 6 : منطقة النقاط الموجودة تحت ملصق "Analog" (من A0 إلى A5 على UNO) هي نقاط جهد متناظر Analog. يمكن لهذه النقاط قراءة الإشارة من جهاز استشعار تمثيلي ( تناظري ) - مثل مستشعر درجة الحرارة -  وتحويله إلى قيمة رقمية يمكننا قراءتها.
- Digital - 7 نقاط جهد رقمي: تحتوي لوحة اردوينو اونو Arduino UNO علي نقاط جهد رقمية (من 0 إلى 13 على اردوينو UNO). يمكن استخدام هذه النقاط لكل من المدخلات الرقمية (مثل معرفة ما إذا تم الضغط على زر) والإخراج الرقمي (مثل تشغيل مؤشر LED).
PWM - 8 ربما لاحظت الإشارة (~) بجانب بعض النقاط الرقمية (3 و 5 و 6 و 9 و 10 و 11 على لوحة اردوينو اونو  UNO). تعمل هذه النقاط كمخارج رقمية عادية ، ولكن يمكن استخدامها أيضًا في شيء يسمى Pulse-Width Modulation و الترجمة الحرفية لها في اللغة العربية هي (تعديل عرض النبض) و يرمز لها ب (PWM).هنا يمكنك معرفة تفاصيل اكثر عن  PWM ، ولكن في الوقت الحالي ، فكر في هذه النقاط على أنها قادرة على محاكاة الإخراج التمثيلي (مثل تغير شدة إضاءة مصباح LED).
AREF - 9 : نقطة قيمة مرجعية تناظرية. غالبا نترك هذه النقطة بدون توصيل .لكن يتم استخدامها في بعض الأحيان لتعيين جهد مرجعي ( للمقارنة) خارجي (بين 0 و 5 فولت) كحد أقصى لنقاط الإدخال التناظرية.
زر إعادة الضبط Reset Button
 يحتوي اردوينو اونو Arduino Uno على زر إعادة الضبط رقم (10). سيؤدي الضغط عليه إلى توصيل نقطة إعادة التعيين مؤقتًا بالجهد الأرضي  وإعادة تشغيل أي برنامج تم تحميله على الاردوينو Arduino. قد يكون ذلك مفيدًا للغاية إذا لم يتم تكرار الكود اثناء البرمجة ، و أردت اختبار البرنامج عدة مرات.
مؤشر إضاءة LED للطاقة
أسفل وتحت يمين كلمة "UNO" على لوحة الأردوينو الإلكترونية  ، يوجد مؤشر ضوئي صغير بجوار كلمة "ON" (11). يجب أن يضيء مصباح LED هذا عندما تقوم بتوصيل اردوينو Arduino بمصدر طاقة. إذا لم يتم تشغيل هذا الضوء ، فهناك خطأ ما قد حدث 😥.و لابد من إعادة فحص دائرة الأردوينو الخاصة بك😊

TX RX LEDs مؤشرات الإرسال و الإستقبال
TX اختصار للإرسال ، RX اختصار للاستقبال. تظهر هذه العلامات قليلاً في الإلكترونيات للإشارة إلى النقاط المسؤولة عن الاتصال التسلسلي. في حالتنا ، يوجد مكانان على Arduino UNO يظهر فيهما TX و RX - مرة واحدة بواسطة نقاط رقمية 0 و 1 ، ومرة ​​أخرى بجانب مؤشر LED لمؤشر TX و RX (12). ستمنحنا مصابيح LED هذه بعض المؤشرات المرئية اللطيفة عندما يتلقى Arduino بياناتنا أو ينقلها (مثل عندما نقوم بتحميل برنامج جديد على الدائرة).

IC الرئيسي
الشيء الأسود مع مجموعة الأرجل المعدنية هو IC ، أو الدوائر المتكاملة (13). التفكير في الأمر كما أدمغة. يختلف IC الرئيسي في اردوينو Arduino قليلاً من دائرة اردوينو إلي أخري ، ولكنه عادة ما يكون من نوع ATmega من شركة ATMEL. قد يكون هذا مهمًا ، حيث قد تحتاج إلى معرفة نوع IC (جنبًا إلى جنب مع نوع اللوحة الخاصة بك) قبل تحميل برنامج جديد من برامج الاردوينو Arduino. عادة ما يمكن العثور على هذه المعلومات من الكتابة على الجانب العلوي من الدائرة المتكاملة IC.
منظم الجهد Voltage Regulator
منظم الجهد (14) ليس في الواقع شيئًا يمكنك (أو ينبغي) أن تتفاعل معه على الاردوينو Arduino. لكن لابد من أن نعرف أنه موجود وما هو المقصود به. يقوم منظم الجهد بعمل ما يسمي به بالضبط - إنه يتحكم في مقدار الجهد المسموح بدخوله إلى لوحة اردوينو Arduino. مثل وظيفة حارس البوابة ؛لذلك سيقوم بإيقاف الجهد الإضافي الذي قد يضر الدائرة. بالطبع ، لها حدود ، لذلك لاتقوم بتوصيل أي جهد أعلي من 20فولت بدائرة الاردوينو Arduino.
تابع معنا في الجزء الثالث من الاردوينو في المقالة القادمة بإذن الله .

الثلاثاء، 1 مايو 2018

الجزء الثانى من مشروع فرز ألوان بإستخدام متحكم دقيق الاوردينو Arduino

بناء جسم الجهاز

المطلوب لتنفيذ هذا المشروع هو لوح من الخشب 3 ملم.
 نقوم برسم الأجزاء المطلوبة على الألواح الخشبية وفقًا للرسومات باستخدام منشار صغير تقطع كل الأجزاء إلى الحجم و الشكل المطلوب ، كما موضح بالصورة التالية
بمجرد أن أصبحت جميع الأجزاء جاهزة ، نبدأ في تجميعها. أولا قمت بتجميع الأجزاء الخارجية بإستخدام مسدس الغراء.

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

بعد ذلك ، يتم إدخال مفتاحًا ومقبسًا كهربائيًا لتزويد دائرة الاوردينو Arduino بطاقة 5V و في المنصة الثالثة قم بإدخال جهاز استشعار الألوان .
يتم توصيل المكونات الكهربائية طبقا لرسم الدائرة فى الصورة التالية
رسم دوائر كهربية مبسطة

برمجة الاردينو Arduino Code
يجب الان ان نبدأ فى برمجة الاردينو قبل أن يتم تثبيت بوردة الاردينو فى جسم الجهاز ، و هذا هو البرنامج المستخدم لبرمجة الأردينو الخاص بالمشروع


  • /* Arduino Project - Color Sorting Machine

  • *

  • * by Dejan Nedelkovski, www.HowToMechatronics.com

  • *

  • */

  • #include <Servo.h>


  • #define S0 2

  • #define S1 3

  • #define S2 4

  • #define S3 5

  • #define sensorOut 6


  • Servo topServo;

  • Servo bottomServo;


  • int frequency = 0;

  • int color=0;


  • void setup() {

  • pinMode(S0, OUTPUT);

  • pinMode(S1, OUTPUT);

  • pinMode(S2, OUTPUT);

  • pinMode(S3, OUTPUT);

  • pinMode(sensorOut, INPUT);


  • // Setting frequency-scaling to 20%

  • digitalWrite(S0, HIGH);

  • digitalWrite(S1, LOW);


  • topServo.attach(7);

  • bottomServo.attach(8);


  • Serial.begin(9600);

  • }


  • void loop() {


  • topServo.write(115);

  • delay(500);


  • for(int i = 115; i > 65; i--) {

  • topServo.write(i);

  • delay(2);

  • }

  • delay(500);


  • color = readColor();

  • delay(10);


  • switch (color) {

  • case 1:

  • bottomServo.write(50);

  • break;


  • case 2:

  • bottomServo.write(75);

  • break;


  • case 3:

  • bottomServo.write(100);

  • break;


  • case 4:

  • bottomServo.write(125);

  • break;


  • case 5:

  • bottomServo.write(150);

  • break;


  • case 6:

  • bottomServo.write(175);

  • break;


  • case 0:

  • break;

  • }

  • delay(300);


  • for(int i = 65; i > 29; i--) {

  • topServo.write(i);

  • delay(2);

  • }

  • delay(200);


  • for(int i = 29; i < 115; i++) {

  • topServo.write(i);

  • delay(2);

  • }

  • color=0;

  • }


  • // Custom Function - readColor()

  • int readColor() {

  • // Setting red filtered photodiodes to be read

  • digitalWrite(S2, LOW);

  • digitalWrite(S3, LOW);

  • // Reading the output frequency

  • frequency = pulseIn(sensorOut, LOW);

  • int R = frequency;

  • // Printing the value on the serial monitor

  • Serial.print("R= ");//printing name

  • Serial.print(frequency);//printing RED color frequency

  • Serial.print(" ");

  • delay(50);


  • // Setting Green filtered photodiodes to be read

  • digitalWrite(S2, HIGH);

  • digitalWrite(S3, HIGH);

  • // Reading the output frequency

  • frequency = pulseIn(sensorOut, LOW);

  • int G = frequency;

  • // Printing the value on the serial monitor

  • Serial.print("G= ");//printing name

  • Serial.print(frequency);//printing RED color frequency

  • Serial.print(" ");

  • delay(50);


  • // Setting Blue filtered photodiodes to be read

  • digitalWrite(S2, LOW);

  • digitalWrite(S3, HIGH);

  • // Reading the output frequency

  • frequency = pulseIn(sensorOut, LOW);

  • int B = frequency;

  • // Printing the value on the serial monitor

  • Serial.print("B= ");//printing name

  • Serial.print(frequency);//printing RED color frequency

  • Serial.println(" ");

  • delay(50);


  • if(R<45 & R>32 & G<65 & G>55){

  • color = 1; // Red

  • }

  • if(G<55 & G>43 & B<47 &B>35){

  • color = 2; // Orange

  • }

  • if(R<53 & R>40 & G<53 & G>40){

  • color = 3; // Green

  • }

  • if(R<38 & R>24 & G<44 & G>30){

  • color = 4; // Yellow

  • }

  • if(R<56 & R>46 & G<65 & G>55){

  • color = 5; // Brown

  • }

  • if (G<58 & G>45 & B<40 &B>26){

  • color = 6; // Blue

  • }

  • return color;

  • }



  • الأن نستطيع تثبيت لوحة الاردينو فى جسم الجهاز ثم نقوم بلزق الانبوب الشفاف الذى سيحتوى الدوائر الملونة 
    و هكذا يكون المشروع انتهى
    اذا كان لديك اى استفسار عن المشروع يمكنك تركه فى تعليق :)

    لدعم المدونة للإستمرار يمكنك شراء منتجات الاردوينو من موقع امازون من هذا الرابط

    https://www.amazon.ae/gp/search/ref=as_li_qf_sp_sr_il_tl?ie=UTF8&tag=lakanata1-21&keywords=arduno&index=aps&camp=247&creative=1211&linkCode=xm2&linkId=9630bab8d96f5277f8462fce9b790396


     يشرفنا و يسعدنا
    إشتراكك فى قائمتنا