مقدمة
في هذا الدرس ستتعلم كيف تصنع آلة توزيع الحلوى باستخدام الاردوينو ومحرك السيرفو ومستشعر تجنب الحواجز بالأشعة تحت الحمراء، بحيث يمكن توزيع الحلوى بدون لمس الجهاز مما يؤدي إلى تقليل احتمالية انتقال الفيروسات
المواد والأدوات
1× اردوينو اونو
×1 مستشعر تجنب الحواجز بالأشعة تحت الحمراء
1× محرك سيرفو (TowerPro SG90 micro servo)
1× هيكل آلة توزيع الحلوى
توصيل الدائرة
للمزيد حول محرك السيرفو يمكنك الرجوع للدرس التالي محرك السيرفو.
وللمزيد حول مستشعر تجنب الحواجز بالأشعة الحمراء يمكنك الرجوع للدرس مستشعر تجنب الحواجز بالأشعة الحمراء.
هيكل آلة توزيع الحلوى
في هذا الدرس تم استخدام قالب فليني لمحاكاة نموذج الآلة.
يمكنك اختيار شكل الهيكل المناسب لك سواء قالب فيليني أو كرتوني أو نموذج بالطابعة ثلاثية الأبعاد أو نموذج خشبي بجهاز الليزر.
هنا مراحل إعداد النموذج تم قص القالب الفليني بهذا الشكل.
وتم تثبيت الدائرة الكهربائية بهذا الشكل.
الكود البرمجي
ارفع الكود البرمجي التالي على لوحة الاردوينو باستخدام برنامج اردوينو (IDE).
#include <Servo.h> Servo servo; int pos; int Signal = 8; int servopin = 9; void setup() { pinMode(Signal, INPUT); servo.attach(servopin); servo.write(0); //close cap on power on delay(1000); servo.detach(); } void loop() { int buttonState = digitalRead(Signal); delay(1); if (buttonState == 0) { servo.attach(servopin); delay(1); servo.write(90); delay(3000); //wait 5 seconds servo.write(0); delay(1000); servo.detach(); } }
شرح الكود البرمجي
في هذا السطر تم استدعاء مكتبة محرك السيرفو: <Servo.h>.
#include <Servo.h>
تم تعريف المتغير Signal الخاص بمستشعر تجنب الحواجز بالأشعة تحت الحمراء وربطه بالمنفذ الرقمي 8 على لوحة الاردوينو.
int Signal = 8;
تم تعريف المتغير servopin الخاص بمحرك السيرفو وربطه بالمنفذ الرقمي 9 على لوحة الاردوينو.
int servopin = 9;
في الدالة ()setup يتم تعيين محرك السيرفو كمخرج ومستشعر تجنب الحواجز بالأشعة تحت الحمراء كمدخل.
وستكون الحالة الابتدائية لمحرك السيرفو تساوي صفر.
void setup() { pinMode(Signal, INPUT); servo.attach(servopin); servo.write(0); //close cap on power on delay(1000); servo.detach(); }
في الدالة loop() يتم تعريف المتغير buttonState لقراء البيانات من مستشعر تجنب الحواجز بالأشعة تحت الحمراء.
void loop() { int buttonState = digitalRead(Signal);
ستتم قراءة البيانات من مستشعر تجنب الحواجز إذا كان هناك حاجز أمام الحساس سيتحرك محرك السيرفو بزاوية 90.
servo.attach(servopin); delay(1); servo.write(90);
وإذا لم يكن هناك حاجز أمام مستشعر تجنب الحواجز سيتوقف محرك السيرفو عن العمل ويعود للزاوية صفر.
servo.write(0); delay(1000); servo.detach();
يمكنك اختبار آلة توزيع الحلوى بعد رفع الكود البرمجي للوحة الاردوينو.
لا تنسَ فصل مصدر الطاقة بعد الانتهاء من استخدام النظام.