مشروع تتبع الشمس بأستخدام الاردوينو ( الورده الشمسيه )

مشروع تتبع الشمس بأستخدام الاردوينو
 ( الورده الشمسيه )

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

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

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

الخطوه الاولى : التحضير 



نحتاج في هذا المشروع ما يلي :



الخطوه الثانيه : صنع الجزء الامامي


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

بعد ان قمت بعمل شق ادخل الأثنتين ببعضها البعض ليشكلان حرف X بعد ان جمعتهما معا قم بلصق العصا كما هو موضح 

لتشير دائما الى اتجاه الشمس ولتعطي الجهاز ثباتا اكثر ومنظر جمالي افضل 



الخطوه الثالثه : جمع حساسات الضوء

قم بصنع اربع ثقوب في الفود كما هو موضح بالصور في الاعلى لوضع حساسات الضوء فيها من ثم قم 
بصنع ثقب خامس لأدخال العصى فيه ثم قم بلصق الاجزاء مع بعضها


الخطوه الرابعه : إجمع الحساسات بالاسلاك




قم بتوصيل الاسلاك مباشره الى الحساسات ولا تنسى استعمال الاصق كي لا تخرج الاسلاك من مكانها مع تكرار الحركه




الخطوه الخامسه : ركب ما قمت بصنعه على الذراع




قم بتوصيل ما تم صنعه على الذراع مع الانتباه على ان تكون الحساسات رقم 1+2 في الاسفل كما هو مبين بالصوره 

وارجو الانتباه هنا ان الالواح الشمسيه تم وضعها كزينه فقط فهذا المشروع مهتم فقط بتتبع االشمس 

حيث سأقوم بأذن الله بشرح مشاريع للأستفاده من طاقة الالواح الشمسيه في دروس قادمه


الخطوه السادسه :ارفع الكود البرمجي 



    
#include  // include Servo library 

Servo horizontal; // horizontal servo
int servoh = 90; // stand horizontal servo

Servo vertical; // vertical servo 
int servov = 90; // stand vertical servo

// LDR pin connections
// name = analogpin;
int ldrrd =0; 
int ldrld =1;
int ldrlt = 2; 
int ldrrt = 3; 
 


void setup()
{
  Serial.begin(9600);
// servo connections
// name.attacht(pin);
  horizontal.attach(9); 
  vertical.attach(10);
}

void loop() 
{
  int lt = analogRead(ldrlt); // top left
  int rt = analogRead(ldrrt); // top right
  int ld = analogRead(ldrld); // down left
  int rd = analogRead(ldrrd); // down rigt

  int dtime = analogRead(4)/20; // read potentiometers  
int tol = analogRead(5)/4;

int avt = (lt + rt) / 2; // average value top
int avd = (ld + rd) / 2; // average value down
int avl = (lt + ld) / 2; // average value left
int avr = (rt + rd) / 2; // average value right

int dvert = avt - avd; // check the diffirence of up and down
int dhoriz = avl - avr;// check the diffirence og left and rigt

if (-1*tol > dvert || dvert > tol) // check if the diffirence is in the tolerance else change vertical angle
{
if (avt > avd)
{
servov = ++servov;
if (servov > 180)
{
servov = 180;
}
}
else if (avt < avd)
{
servov= --servov;
if (servov < 0)
{
servov = 0;
}
}
vertical.write(servov);
}

if (-1*tol > dhoriz || dhoriz > tol) // check if the diffirence is in the tolerance else change horizontal angle
{
if (avl > avr)
{
servoh = --servoh;
if (servoh < 0)
{
servoh = 0;
}
}
else if (avl < avr)
{
servoh = ++servoh;
if (servoh > 180)
{
servoh = 180;
}
}
else if (avl == avr)
{
// nothing
}
horizontal.write(servoh);
}
delay(dtime);
} 




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


رقم السلك (الحساس)
رقم مدخل الانالوج
1
0
2
1
3
3
4
2



الخطوه الثامنه : توصيل المقاومات المتغيره

قم بتوصيل المقاومات الخطيه الي مدخلي انالوج (A4 , A5) لا يوجد ترتيب معين قم بوصل كل واحده منهم على مدخل لاكن احفظ 
كل منهما على اي مدخل قمت بوصلها لأن مدخل رقم 4 يتحكم بسرعة الاستحابه ومدخل رقم 5 يتحكم بسرعة التفاف الماتور


الخطوه التاسعه : قم بوصل الذراع بالاردوينو 

قم بتوصيل ماتورات الذراع مع الاردوينو على النحو الذي في الصوره ولمزيد من التوضيح :

  • down servo الماتور العامودي  >> مع مدخل ديجيتال رقم 9

  • up servo الماتور الافقي  >> مع مدخل ديجيتال رقم 10


الخطوه العاشره: تزويد الجهاز بالطاقه

 هنالك الكثير من الطرق لتزويد بزورد الاردوينو بالطاقه لكني اليوم سأقوم بأستعمال ابسطها وهي عن طريق كيبل ال usb


قم بتشغيل المشروع ! 

تهانينا ! لقد انجزت مشروعك للتو , قم بنشره بين اصدقائك لتعم الفائده 
no_sidebar

إرسال تعليق

أحدث أقدم