مورس هو نظام الاتصالات لترميز أي حرف في اثنين من فترات مختلفة من الإشارات يسمى النقاط و شرطات . تم تطوير شفرة مورس بواسطة Samuel FB واستخدامها أيضًا في التلغراف لنقل المعلومات السرية. كان الأكثر استخدامًا في وقت الحرب العالمية الثانية. يمكن تنفيذ شفرة مورس عن طريق النقر أو وميض الضوء أو الكتابة. يتوفر رمز مورس في نسختين ، الأصلي ورمز مورس الدولي. في كود مورس الدولي ، يتم تعديل الإصدار الأصلي عن طريق إزالة المسافات وتصميم الشرطات بطول معين. شفرة مورس متاحة لتشفير الحروف الأبجدية والأرقام. يتم استخدامه بشكل أساسي في الاتصالات اللاسلكية والمحيطية وأيضًا جزء من تدريب الجنود.
لطالما كانت اللغة هي العائق أمام شفرة مورس ، حيث يصعب تنفيذ الكود الخاص بأحرف التشكيل في لغة أخرى. هناك بعض الكلمات الشهيرة التي تعتبر ميزة مهمة في شفرة مورس مثل "SOS". شكل SOS الكامل هو Save Our Souls الذي تم إنشاؤه كإشارة استغاثة عالمية تمثل خطرًا.
تُظهر الصورة أدناه رمز مورس للأبجديات من الألف إلى الياء.
سنقوم اليوم في هذا البرنامج التعليمي ببناء مترجم مورس باستخدام Arduino والذي سيأخذ أي حرف كمدخل من الشاشة التسلسلية وتحويله إلى أصوات صوتية مكافئة لـ Morse code بواسطة الجرس.
المكونات مطلوبة
- اردوينو اونو
- صفارة
- اللوح
- أسلاك توصيل
مخطط الرسم البياني
قم بتوصيل الدبوس الموجب للجرس بالدبوس الثامن من Arudino UNO والدبوس السالب بأرض Arduino. قم بتحميل الكود باستخدام Arduino IDE واكتب الأحرف على الشاشة التسلسلية لإنشاء الصوت. يمكن أيضًا إضافة شاشة LCD مع Arduino لعرض لوحة القيادة والنقاط.
شرح البرمجة
يتم تقديم الكود الكامل لمولد Arduino Morse Code Generator في النهاية ، ونوضح هنا البرنامج لفهم عمل المشروع.
يتم استخدام الكود أدناه لتلقي سلسلة الأحرف ثم تحويلها إلى رمز مورس.
سلسلة char stringToMorseCode = ""؛
ثم حدد دبوس الجرس المتصل بـ Arduino ودرجة الصوت الناتج عن هذا الجرس. ثم نقوم بتحديد طول النقطة والشرطة.
int audio8 = 8 ؛ // إخراج الصوت على pin 8 int note = 1200 ؛ // نوتة موسيقية / درجة صوت int dotLen = 100 ؛ // طول كود مورس 'dot' int dashLen = dotLen * 3 ؛ // طول كود مورس "داش"
في حلقة باطلة () وظيفة، إذا كانت البيانات التسلسلي هو متاح، سيوفر إلى متغير indata . ثم يقرأ الحرف واحدًا تلو الآخر باستخدام الأمر inData . يتم استخدام متغير الأمر .toUppercase () لتغيير الأحرف الصغيرة إلى أحرف كبيرة. ثم يصدر صوتًا وفقًا لكل شخصية.
حلقة باطلة () { char inChar = 0 ؛ char inData = ""؛ // طول البيانات 6 أحرف متغير السلسلة = "" ؛ متغير السلسلة 1 = "" ؛ int index1 = 0 ؛ if (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { delay (100)؛ inChar = Serial.read () ، inData = inChar ؛ فهرس 1 ++ ؛ inData = '\ 0' ؛ } variable.toUpperCase () ؛ لـ (بايت i = 0 ؛ i <100 ؛ i ++) { variable.concat (String (inData)) ؛ } تأخير (20)؛
يتم استخدام الوظائف التالية MorseDot و MorseDash لإنشاء صوت النقطة والشرطة على التوالي.
باطل MorseDot () { tone (audio8، note، dotLen) ؛ // بدء تشغيل نغمة تأخير (dotLen) ؛ // Hold in this position } void MorseDash () { tone (audio8، note، dashLen) ؛ // بدء تشغيل نغمة تأخير (dashLen) ؛ // شغل هذا المنصب }
و GetChar وظيفة لديها رمز لجميع الحروف الهجائية. لذلك ، عندما نكتب أي أبجدية ، يتم أخذ رمز مورس ذي الصلة من هذه الوظيفة لإنشاء صوت معين.
void GetChar (char tmpChar) { switch (tmpChar) { case 'a': MorseDot ()؛ تأخير (100) ؛ مورسداش () ، تأخير (100) ؛ استراحة؛ ... ... ... الافتراضي: كسر. } }
الآن قم بتحميل الكود إلى Arduino باستخدام Arduino IDE واكتب أي حرف في الشاشة التسلسلية واضغط على زر الإدخال لإرسال الأحرف إلى Arduino.
هنا قمنا بكتابة "SOS" وهي إشارة استغاثة عالمية لخلق الصوت لنفسه.
يتم تقديم العرض التوضيحي لنفسه في الفيديو أدناه.