fbpx
صناعة عدة تعليم إلكترونيات
يونيو 25, 2018
التطبيق ده بيمكن مرضى السكر إنهم يطلبوا الأكل المناسب ليهم من أي مطعم
يونيو 26, 2018

روبوت أردوينو من أفلام ديزني

اصنع بنفسك روبوت حقيقي باستخدام إمكانيات بسيطة .. تصميم الروبوت مستوحى من فيلم Wall-E من ديزني بيكسر و ظهرت شخصية الروبوت ده في الفيلم و أسمه Burn-E.

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

عشان تعمل المشروع ده؟

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

ولو إنت ميكر هتحب صناعة مجسمات الورق بطريقة الـ papercraft

مستوى الصعوبة : متوسط

المكونات:

  1.  3 موتور سيرفو 9g
  2.  جهاز إنذار صوتي Piezo
  3.  لوحة أردوينو أونو 3 Arduino Uno
  4.  إضاءة LED
  5.  مقاومة 220 آوم
  6.  حساس الاستشعار بالموجات فوق الصوتية Ultrasonic sensor
  7.  سينسور درجة الحرارة Temperature sensor
  8.  أسلاك توصيل Jumper wires

الأدوات:

  • أدوات الورق (مقص – صمغ – Cutter) فقط

ملحوظة: تركيب باقي المكونات يدوي

الخطوة الأولى: تصميم مجسم الروبوت

تصميم المجسم من الورق المقوى ويمكنك تحميل النموذج الورقي للروبوت و التعديل عليه بسهولة عشان تقدر تركب الدايرة الكهربية و باقي المكونات الإلكترونية.

تقدر تحمل المجسم من هنا: تحميل المجسم

و متوفر شرح كامل إزاي تحول الورق المطبوع علية شكل الروبوت لمجسم حقيقي

الخطوة التانية: تركيب السينسور لرأس الروبوت

بعد تحميل المجسم الورقي بصيغة PDF، اتبع خطوات التركيب وعند اكتمال رأس الروبوت، أصنع فتحتين مكان عين الروبوت لوضع سينسور الاستشعار بالموجات فوق الصوتية Ultrasonic Sensor بدلاً من العينين كما هو موضح.

الخطوة التالتة: إختبار السينسور

وصل سينسور الاستشعار بالموجات فوق الصوتية Ultrasonic الموجود برأس الروبوت بلوحة الأردوينو كما هو موضح وذلك للتأكد من أنها تعمل جيداً بعد وضعها داخل الرأس.

السينسور فيه مكان لأربع أسلاك:

  1. VCC وصله الكابل الموجب وصله بـ 5v في لوحة الأردوينو
  2. GND وصلة الكابل السالب وصله بـ GND في لوحة الأردوينو
  3. Trig وصلة بـ منفذ الديجيتال رقم 6
  4. Echo وصلة بـ منفذ الديجيتال رقم 7

للتعلم أكثر كيف تعمل الحساسات يمكنك زيارة الرابط: https://www.arduino.cc/en/Tutorial/Ping

الخطوة الرابعة: آليه تحريك الرأس والذراعين

و لتحريك الرأس والذراعين لكي يبدو الروبوت أكثر واقعية؟

أستخدمت ثلاثة مواتير سيرفو servo motors 9g ، موتور منهم للرأس و اتنين لتحريك الذراعين، يتم وضعهم بهذا الشكل دخل جسم الروبوت

وعشان تعرف أكثر إزاي تتحكم في موتور السيرفر هتلاقي الشرح هنا: https://www.arduino.cc/en/Reference/Servo

الخطوة الخامسة: الدايرة الكهربية

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

#include

Servo Hservo,Rservo,Lservo; // create servo object to control a servo

// defines pins numbers
const int trigPin = 6;
const int echoPin = 7;
int piezoPin = 11;
int led = 13;
const int temperaturePin = 0;

// defines variables
long duration;
int distance,val;

void setup() {

pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
pinMode(led, OUTPUT);

Serial.begin(9600); // Starts the serial communication

Rservo.attach(8); // right arm servo
Hservo.attach(9); // head servo
Lservo.attach(10); // left arm servo
}
void loop() {

float voltage, degreesC;
voltage = getVoltage(temperaturePin);
degreesC = (voltage – 0.5) * 100.0;

// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;

delay(50);

if (distance < 10) //
{
// Prints the distance on the Serial Monitor
Serial.print(“Distance: “);
Serial.println(distance); // print the currnet distance on serial port
tone(piezoPin, 1000, 500); // this will alarm the sound every time distance
digitalWrite(led, HIGH);
delay(1000); // wait 1 1second
}
else
{
noTone(piezoPin);
digitalWrite(led, LOW);
delay(50);
}

if(Serial.available())
{
String value = Serial.readStringUntil(‘\n’); // read the string from serial window
Serial.println(value);
if(value == “left”)
{
Hservo.write(80); // moving the head little left
delay(15);
Lservo.write(60); // left arm up
delay(15);
Rservo.write(20); // right arm down
delay(15);
}
else if(value == “right”)
{
Hservo.write(40); // moving the head little right
delay(15);
Lservo.write(20); // left arm down
delay(15);
Rservo.write(60); // right arm up
delay(15);
}
else if(value == “temp”)
{
Serial.print(“voltage: “); // print temperature
Serial.print(voltage);
Serial.print(” deg C: “);
}
}
}

float getVoltage(int pin)
{
// point value, which is the true voltage on that pin (0 to 5V).
return (analogRead(pin) * 0.004882814);
}

بعد تنفيذك للمشروع هتتعلم إزاي تتحكم في أهم مكونات أي دايرة كهربائية معتمدة على الأردوينو..

زي موتور السيرفر و سينسور درجة الحرارة و سينسور الموجات الصوتية و كمان هتتعلم إزاي هتتحكم في جهاز الإنذار الصوتي buzzer و تشغيل لمبات الـ LED

ده بالإضافة لتكوين خبرة في حرفية الورق وعمل مجسمات 3D بطريقة الـ Papercraft

التكلفة الشاملة للمشروع:

1200 جنية

ممكن تجيب المكونات و الأدوات منين؟

المكونات كلها متاحة في شركات ومكاتب المسلتزمات الإلكترونية في القاهرة وتحديداً في وسط البلد (باب اللوق).

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

هيقيس درجة حرارة الغرفة وتقدر تعرف ده عن طريق توصيل الروبوت بكابل الـ USB وفتح شاشة الـ serial عشان تقرأ النتايج

X