مشروع لمساعدة الأطفال ذوي الصعوبات التعليمية على تعلم الأسماء بشكل تفاعلي اكتب تعليقُا

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

شرح فكرة المشروع

  • في هذا المشروع، سيتم تصميم نطام الكتروني بواسطة متحكم الأردوينو، وهذا بصدد مساعدة الأطفال ذوي الصعوبات التعليمية على تعلم الأسماء بشكل تفاعلي.
  • إن المشكلة التي يواجهها الأطفال ذوو الصعوبات التعليمية تكمن في عدم قدرتهم على التفاعل مع المحتوى التعليمي بطرق تقليدية. هؤلاء الأطفال قد يجدون صعوبة في تذكر الأسماء أو ربطها بالصور أو الأصوات بسبب ضعف في المهارات الإدراكية أو اللغوية. التفاعل الضعيف مع المواد التعليمية قد يؤدي إلى إحباطهم ويجعل العملية التعليمية أقل متعة و فعالية.
  • لذا، فإن توفير نظام إلكتروني تفاعلي باستخدام متحكم الأردوينو يمكن أن يكون حلاً فعالاً. إذ يمكن أن يساهم في تعزيز الفهم والاحتفاظ بالمعلومات.
  • التفاعل الرقمي والأنشطة التفاعلية قد تساعد في تعزيز تجربة التعلم وزيادة التحفيز والإثارة، مما يجعل العملية التعليمية أكثر جذباً وفعالية لهؤلاء الأطفال ذوي الصعوبات التعليمية.
  • في هذا البروتوتايب، سنقوم بتصميم نظام تفاعلي باستخدام لوحة Arduino وشاشة LCD بهدف تعلم الأسماء بشكل ممتع وفعال.
  • يشمل البرنامج إعداد شاشة LCD لعرض الأسئلة، أزرار للإجابة، مصابيح LEDs للإشارة إلى الإجابات الصحيحة والخاطئة، وطّنّان لتوليد نغمات إشعارية.
  • يقوم البرنامج بعرض سؤال عشوائي يتعلق باسم ما، ويطلب من الطفل اختيار الإجابة الصحيحة باستخدام الأزرار. بحيث إذا كانت الإجابة صحيحة، يُشغل LED الأخضر ونغمة فوز، أما إذا كانت خاطئة، فيُشغل LED الأحمر ونغمة خطأ. مما يعزز تجربة تعلم تفاعلية ومشجعة.
  • كما أنه في هذا النظام، يرتبط كل زر بعنصر معين،أي بالترتيب من الزر الأيمن الى الأيسر، لدينا : الزر الأيمن يمثل “الدفتر”، الزر الأوسط يمثل “القلم”، والزر الأيسر يمثل “الكوب”.
  • عند البدء، يمكن وضع العنصر أو صورته أمام الجهاز ليتمكن الأطفال من التعرف عليه. ثم يُطلب منهم اختيار الرقم الصحيح الذي يطابق اسم العنصر المعروض على الشاشة. عند اتقان المهمة السابقة، يمكن إضافة عناصر جديدة، و تعديل الكود البرمجي ليتناسب مع التغييرات المحدثة.
  • وفي الختام، نرجو أن نكون قد أضأنا شعلة الأمل في قلوب هؤلاء الأطفال، الذين يمثلون أمل المستقبل. من خلال توفير أداة تعليمية مبتكرة، تصبو لتمكينهم من اكتشاف قدراتهم الكامنة وتحقيق إمكاناتهم الفريدة والبديعة. فالعلم هو القوة الدافعة نحو التقدم، والتي توصلنا إلى آفاق النجاح والتفوق، و كل خطوة نحو المعرفة هي خطوة نحو تحقيق الأحلام وبناء مستقبل مزهر. إن العلم هو البذور التي نزرعها اليوم، والتي ستثمر غدًا بأحلام عظيمة وإنجازات لامحدودة.

أدوات المشروع

مخطط المشروع

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

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

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// إعداد شاشة LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);

// تعيين دبابيس الأزرار
const int button1Pin = 2;
const int button2Pin = 3;
const int button3Pin = 4;

// تعيين دبابيس LED
const int greenLED = 8;
const int redLED = 9;

// تعيين دبوس الطنان
const int buzzerPin = 10;

// المتغيرات
int correctAnswer = 0;
const char* items[3] = {“Notebook”, “Pen”, “Cup”};
const char* questions[3] = {“What is this?”, “Find the item:”, “Identify this:”};

// نغمة الفوز المعقدة
void playWinTone() {
int melody[] = {262, 294, 330, 349, 392, 440, 494, 523}; // نغمات في الموسيقى الغربية
int duration = 300; // مدة النغمة

for (int i = 0; i < 8; i++) {
tone(buzzerPin, melody[i], duration);
delay(duration);
noTone(buzzerPin);
delay(50); // فاصل بين النغمات
}
}

// نغمة الخطأ المعقدة
void playErrorTone() {
int melody[] = {523, 440, 349, 294, 220}; // نغمات مختلفة للتنبيه
int duration = 300; // مدة النغمة

for (int i = 0; i < 5; i++) {
tone(buzzerPin, melody[i], duration);
delay(duration);
noTone(buzzerPin);
delay(100); // فاصل بين النغمات
}
}

void setup() {
// إعداد شاشة LCD
lcd.init();
lcd.backlight();

// إعداد الأزرار
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(button3Pin, INPUT_PULLUP);

// إعداد LED و Buzzer
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(buzzerPin, OUTPUT);

// عرض السؤال الأول
showQuestion();
}

void loop() {
if (digitalRead(button1Pin) == LOW) {
checkAnswer(0);
} else if (digitalRead(button2Pin) == LOW) {
checkAnswer(1);
} else if (digitalRead(button3Pin) == LOW) {
checkAnswer(2);
}
}

void showQuestion() {
int index = random(3);
correctAnswer = index;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(questions[index]);
lcd.setCursor(0, 1);
lcd.print(items[index]);
}

void checkAnswer(int answer) {
if (answer == correctAnswer) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Hero!”);
digitalWrite(greenLED, HIGH);
playWinTone(); // تشغيل نغمة الفوز المعقدة
digitalWrite(greenLED, LOW);
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Try again”);
digitalWrite(redLED, HIGH);
playErrorTone(); // تشغيل نغمة الخطأ المعقدة
digitalWrite(redLED, LOW);
}
delay(2000); // الانتظار لبضع ثوانٍ
showQuestion(); // عرض سؤال جديد
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *