عناوين الدرس

اصنع سلة ذكية متعددة الأغراض باستخدام الاردوينو

مبتدئ

مقدمة

أصبحت التقنيات الذكية لا تخلو من أي منزل فوظائفها المتعددة تساعدنا على انجاز مهام مختلفة في وقت واحد، في هذا الدرس ستتعلم صنع سلة ذكية باستخدام الاردوينو وحساس المسافة ومحرك السيرفو تنفتح بمجرد الاقتراب منها وبدون لمسها ويمكن استخدامها في العديد من الأماكن في المنزل.

سلة ذكية

المواد والأدوات

arduino-smart-basket

1× اردوينو اونو

سلة ذكية

لوحة تجارب حجم صغير

arduino-smart-basket

1× سلك الاردوينو

سلة ذكية

حزمة أسلاك توصيل (ذكر – أنثى)

arduino-smoke-gas-sensor

 حزمة أسلاك توصيل (ذكر- ذكر)

سلة ذكية

حساس المسافة (HC-SR04)

سلة ذكية

2× محرك سيرفو (TowerPro SG90 micro servo)

arduino-smart-basket

1× شريط لاصق ذو وجهين

سلة ذكية

1× قالب كرتوني أو فليني لإعداد هيكل السلة

(اختياري)

توصيل الدائرة

 للمزيد حول محرك السيرفو يمكنك الرجوع للدرس التالي محرك السيرفو ، لمعرفة كيفية تنزيل المكتبات يمكنك الرجوع إلى درس التالي.

وللمزيد حول حساس الموجات الفوق صوتية يمكنك الرجوع للدرس التالي حساس الموجات فوق الصوتية.

arduino-smart-basket

يمكنك اختيار هيكل وحجم السلة المناسب لك.

بعد ذلك ثبت الدائرة على هيكل السلة باستخدام اللاصق ذو وجهين.

الكود البرمجي

عليك تنصيب مكتبة <NewPing.h> من الرابط التالي مكتبة NewPing.

بعد ذلك ارفع الكود البرمجي على لوحة الاردوينو باستخدام برنامج اردوينو IDE لتستطيع التحكم في السلة الذكية.

#include <Wire.h>
#include <NewPing.h>
#include <Servo.h>

Servo myservo1;
Servo myservo2;

#define TRIGGER_PIN_1 7
#define ECHO_PIN_1 6
#define MAX_DISTANCE 400

NewPing sonar1(TRIGGER_PIN_1,ECHO_PIN_1,MAX_DISTANCE);

float distance1;
float duration1;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
myservo1.attach(11); // Servo pin
myservo2.attach(10); // Servo pin
}
void loop() {
// put your main code here, to run repeatedly:
duration1=sonar1.ping();
distance1=(duration1 / 2)*0.0343; Serial.println(distance1);
if(distance1 < 35){ // set the minimum distance here
myservo1.write(10);
myservo2.write(100);
delay(600);}
else{ myservo1.write(100); myservo2.write(10); } }

شرح الكود البرمجي

هذه الأسطر توضح المكتبات المستخدمة مكتبة <Wire.h> للتواصل بين الاردوينو وحساس الموجات فوق الصوتية ومكتبة <Servo.h> الخاصة بمحرك السيرفو وأخيرًا مكتبة <NewPing.h> الخاصة بحساس الموجات فوق الصوتية.

#include <Wire.h>
#include <NewPing.h>
#include <Servo.h>

هنا يتم تعريف المغيرات الخاصة بكلا محركي السيرفو الأول myservo1 والسيرفو الثاني myservo2.

Servo myservo1;
Servo myservo2;

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

منفذ TRIGGER مع المنفذ الرقمي 7.

ECHO مع المنفذ الرقمي 6.

#define TRIGGER_PIN_1 7
#define ECHO_PIN_1 6

المتغير MAX_DISTANCE يحمل أقصى مسافة سيكتشفها حساس المسافة (يمكنك تحرير المسافة على النحو الذي تريده).

#define MAX_DISTANCE 400

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

NewPing sonar1(TRIGGER_PIN_1,ECHO_PIN_1,MAX_DISTANCE);

في الدالة ()setup يتم تعريف منافذ الاردوينو المستخدمة لربط كلا محركي السيرفو.

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
myservo1.attach(11); // Servo pin
myservo2.attach(10); // Servo pin
}

في الدالة ()loop يتم قراءة المسافة بيننا وبين حساس الموجات فوق الصوتية إذا كانت أقل من 35 سيعمل كلا محركي السيرفو وتنفتح السلة الذكية وتنغلق من تلقاء نفسها بدون لمسها.

void loop() {
// put your main code here, to run repeatedly:
duration1=sonar1.ping();
distance1=(duration1 / 2)*0.0343;
Serial.println(distance1);
if(distance1 < 35){ // set the minimum distance here
myservo1.write(10);
myservo2.write(100);
delay(600);}
else{
myservo1.write(100);
myservo2.write(10);
}
}

 

X
Product added to the cart