جدول المحتويات:

تكنولوجيا لجدك: 13 خطوة (بالصور)
تكنولوجيا لجدك: 13 خطوة (بالصور)

فيديو: تكنولوجيا لجدك: 13 خطوة (بالصور)

فيديو: تكنولوجيا لجدك: 13 خطوة (بالصور)
فيديو: حركة في الاندرويد هتبكي اللي معه آيفون #android #iphone #samsung 2024, شهر نوفمبر
Anonim
Image
Image

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

على سبيل المثال ، حصل جد صديقتي على جهاز تلفزيون جديد وحاولنا تعليمه كيفية تغيير المصدر حتى يتمكن من التبديل بين أقراص DVD والتلفزيون - لكنه لم يستطع اكتشاف ذلك. إنه يتعامل أيضًا مع ضعف البصر ولا يهتم كثيرًا بمحاولة تذكر العمليات المعقدة ، إنه يريد فقط مشاهدة عروضه عندما يريد ذلك. بعد محاولة شرح الخطوات بهدوء خلال زيارتنا الأخيرة دون نجاح كبير ، قررت أن أجعله جهاز التحكم عن بعد البسيط الخاص به. سيسمح له ذلك بتغيير مصدر الإدخال على تلفازه دون ألم ، والتبديل بين أقراص الفيديو الرقمية المحبوبة Matlock و Price is Right بكل سهولة.

الخطوة 1: المواد

  • PhidgetIR
  • PhidgetSBC4 (أو أي كمبيوتر لوحي واحد مثل Raspberry Pi)
  • لحام حديد
  • القواطع الجانبية
  • أدوات تقشير الأسلاك
  • أسلاك العبور
  • كابل USB
  • كابل Phidget
  • نسيج
  • موصلات عبر الفتحات
  • أنابيب الانكماش الحراري

الخطوة الثانية: التخطيط

طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد

من أجل إنشاء جهاز التحكم عن بُعد ، كنت بحاجة إلى القدرة على إرسال أوامر الأشعة تحت الحمراء للمستهلك (CIR) إلى التلفزيون. قررت استخدام PhigetIR لهذه المهمة. PhidgetIR هو جهاز يتم التحكم فيه بواسطة USB ولديه القدرة على إرسال واستقبال أوامر CIR. اخترت هذا لعدة أسباب:

  • كنت أرغب في إنهاء هذا المشروع في أقرب وقت ممكن واستخدامه ، لذلك لم تكن فكرة تفكيك مرسمة الذبذبات واللوح الخاص بي جذابة. أيضًا ، ما مدى احتمالية استمرار دوائري الملحومة يدويًا في العمل خلال عام أو عامين؟
  • PhidgetIR لديه القدرة على "تعلم" أوامر CIR مما يجعل التطوير بسيطًا للغاية.
  • يمكنك استخدام أي لغة برمجة سائدة تقريبًا مع PhidgetIR. هذا يعني أنه يمكنني استخدام Java وإنهاء الأمور بسرعة.
  • أخيرًا ، أعمل في Phidgets ، لذلك أنا مرتاح لواجهة برمجة التطبيقات ، وهناك دائمًا أجهزة احتياطية موجودة.

لأنني اخترت استخدام PhidgetIR ، كنت بحاجة إلى جهاز كمبيوتر لتشغيله. أردت أن يكون هذا المشروع تطبيقًا قائمًا بذاته ، يشبه إلى حد كبير جهاز التحكم عن بعد العادي ، لذلك كان سطح المكتب أو الكمبيوتر المحمول خارجًا. اخترت استخدام PhidgetSBC4 (كمبيوتر لوحي واحد يعمل بنظام Debian Linux) ، لأنه سمح لي بالتفاعل مع كلا الأزرار الانضغاطية دون أي أجهزة إضافية. يمكن ببساطة توصيلها مباشرة بمركز VINT Hub المدمج. ملاحظة: يمكنك أيضًا استخدام Raspberry Pi لهذا المشروع. أخيرًا ، بالإضافة إلى كونه سليمًا وظيفيًا ، أردت أن يبدو هذا المشروع رائعًا ، لذلك قررت أن العلبة المطبوعة ثلاثية الأبعاد ستكون ضرورية.

الخطوة 3: طباعة ثلاثية الأبعاد

طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد

لهذا المشروع ، تم استخدام Geomagic لنمذجة العلبة. تتوفر ملفات خطوات ثلاثية الأبعاد لكل من PhidgetIR و PhidgetSBC4 مما سهل العملية. تم اتخاذ بعض القرارات خلال هذه الخطوة فيما يتعلق بحجم ووظيفة العلبة:

  • يحتوي PhidgetIR على اثنين من مصابيح LED IR التي يجب أن تشير إلى التلفزيون لإرسال الأوامر. بدلاً من تصميم العلبة حول لوحة PhidgetIR ، يمكن فك مصابيح LED IR ولصقها في الفتحات الموجودة على جانب العلبة. يمكن بعد ذلك تركيب لوحة PhidgetIR بعيدًا عن مصابيح LED ، باستخدام المساحة الفارغة.
  • يمكن ثني موصلات VINT Hub الموجودة على PhidgetSBC4 لأعلى ، مما سيسمح بالوصول لوصلات الأزرار ، كما سيمنع الاضطرار إلى إنشاء حاوية أكبر.

قررت أيضًا إضافة تسمية للأزرار وتسمية تشير إلى الاتجاه الذي يجب أن تواجهه بحيث يتم توجيه مصابيح LED للأشعة تحت الحمراء في الاتجاه الصحيح. لقد قمت بطباعة العلبة المحلية من بلاستيك ABS الأسود.

الخطوة 4: التجميع - قم بإزالة المصابيح

التجميع - قم بإزالة المصابيح
التجميع - قم بإزالة المصابيح
التجميع - قم بإزالة المصابيح
التجميع - قم بإزالة المصابيح
التجميع - قم بإزالة المصابيح
التجميع - قم بإزالة المصابيح

سيتم في النهاية لصق مصابيح LED بالأشعة تحت الحمراء في فتحات على جانب العلبة. هذا يعني أنهم يحتاجون أولاً إلى إزالة اللحام.

الخطوة 5: التجميع - أضف الرؤوس من خلال الفتحات

التجميع - أضف رؤوس الفتحات
التجميع - أضف رؤوس الفتحات
التجميع - أضف رؤوس الفتحات
التجميع - أضف رؤوس الفتحات

بعد ذلك ، تمت إضافة رؤوس من خلال الفتحات في مكان وجود مصابيح LED ، مما جعلها سهلة الاتصال باستخدام سلك توصيل ذي 4 سنون. استخدم أنابيب الانكماش الحراري لمنع التلامس العرضي.

الخطوة 6: التجميع - إرفاق المصابيح

التجميع - إرفاق المصابيح
التجميع - إرفاق المصابيح
التجميع - إرفاق المصابيح
التجميع - إرفاق المصابيح

قم بلصق مصابيح LED في جانب العلبة.

الخطوة 7: التجميع - إرفاق PhidgetIR

التجميع - إرفاق PhidgetIR
التجميع - إرفاق PhidgetIR
التجميع - إرفاق PhidgetIR
التجميع - إرفاق PhidgetIR
التجميع - إرفاق PhidgetIR
التجميع - إرفاق PhidgetIR

قم بتوصيل PhidgetIR بالعلبة ، وقم بتوصيل مصابيح LED.

الخطوة 8: التجميع - إضافة الأزرار

التجميع - إضافة الأزرار
التجميع - إضافة الأزرار
التجميع - إضافة الأزرار
التجميع - إضافة الأزرار
التجميع - إضافة الأزرار
التجميع - إضافة الأزرار

يجب توصيل الأزرار الانضغاطية بـ VINT Hub المدمج في PhidgetSBC ، لذلك قمت بقص كابل Phidget إلى النصف ولحمت الأطراف بالأزرار. لاحظ أنه يلزم فقط السلك الأبيض (الإشارة) والأسود (الأرضي).

الخطوة 9: التجميع - وضع كل شيء معًا

التجميع - وضع كل شيء معًا
التجميع - وضع كل شيء معًا
التجميع - وضع كل شيء معًا
التجميع - وضع كل شيء معًا

كانت هناك حاجة إلى بعض إدارة الكابلات من أجل تجميع كل شيء معًا ، ومع ذلك ، فإن العلبة تعمل بشكل جيد.

الخطوة 10: البرنامج - كود

لا يوجد سوى ملف Java واحد مطلوب لهذا المشروع يمكنك العثور عليه هنا. يستخدم البرنامج كائن PhidgetIR واحد وكائنين DigitalInput. يمكنك إنشاء هذه الكائنات مثل هذا:

PhidgetIR ir = new PhidgetIR () ؛

DigitalInput tvButton = New DigitalInput () ؛ DigitalInput otherButton = new DigitalInput () ؛

يتم تعيين كائنات الإدخال الرقمي إلى زر ضغط فعلي على لوحة VINT Hub. يتم أيضًا الاشتراك في أحداث الإرفاق والفصل والخطأ وتغيير الحالة في:

tv.setIsHubPortDevice (صحيح) ،

tvButton.setHubPort (4) ، tvButton.addAttachListener (onAttachListener) ؛ tvButton.addDetachListener (onDetachListener) ؛ tvButton.addErrorListener (onErrorListener) ؛ tvButton.addStateChangeListener (onStateChangeListener) ؛ tvButton.open () ، otherButton.setIsHubPortDevice (صحيح) ، otherButton.setHubPort (5) ، otherButton.addAttachListener (onAttachListener) ؛ otherButton.addDetachListener (onDetachListener) ؛ otherButton.addErrorListener (onErrorListener) ، otherButton.addStateChangeListener (onStateChangeListener) ، otherButton.open () ،

يبدو مستمع تغيير الحالة المشار إليه أعلاه كما يلي:

privatestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@ OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource () ؛ جرب {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true؛} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true؛}} catch (PhidgetException ex) {System.out.println ("Error:" + ex.getDescription ())؛}}}؛

عند تنشيط الزر ، سيتم تنفيذ رمز الحدث وتعيين علامة. ستتم الإشارة إلى هذه العلامات وإعادة تعيينها في الحلقة الرئيسية. تنتظر الحلقة الرئيسية ببساطة حدوث تغيير في حالة الزر ، ثم ترسل أوامر IR باستخدام وظيفة الإرسال المتوفرة من PhidgetIR API.

while (true) {if (tvButtonActivated) {

tvButtonActivate = خطأ ، Log.log (LogLevel. INFO، "تغيير المصدر - التلفزيون") ؛ ir.transmit (sourceButtonString ، codeInfo) ؛ Thread.sleep (500) ؛ ir.transmit (rightButtonString، codeInfo) ؛ Thread.sleep (500) ؛ ir.transmit (enterButtonString، codeInfo)؛} if (otherButtonActivated) {otherButtonActivated = false؛ Log.log (LogLevel. INFO، "تغيير المصدر - DVD") ؛ ir.transmit (sourceButtonString ، codeInfo) ؛ Thread.sleep (500) ؛ ir.transmit (leftButtonString ، codeInfo) ؛ Thread.sleep (500) ؛ ir.transmit (enterButtonString، codeInfo)؛} Thread.sleep (250) ؛}

الخطوة 11: البرنامج - أوامر CIR

البرمجيات - أوامر CIR
البرمجيات - أوامر CIR

فيما يلي مثال على كيفية إنشاء أمر (أمر رفع مستوى الصوت في هذه الحالة):

// كود IR

IRCodeInfo sourceButtonCI = new IRCodeInfo () ، String volumeUp = "77e1d0f0" ؛ // إعداد مصدر زر المصدرButtonCI.bitCount = 32 ؛ sourceButtonCI.encoding = IRCodeEncoding. SPACE ، sourceButtonCI.gap = 108921 ؛ sourceButtonCI.trail = 549 ؛ sourceButtonCI.zero = جديد [2] ، sourceButtonCI.zero [0] = 549 ، sourceButtonCI.zero [1] = 627 ؛ sourceButtonCI.one = newint [2] ، sourceButtonCI.one [0] = 549 ، sourceButtonCI.one [1] = 1755 ؛ sourceButtonCI.header = newint [2] ، sourceButtonCI.header [0] = 9084 ، sourceButtonCI.header [1] = 4600 ؛ sourceButtonCI.repeat = newint [3] ، sourceButtonCI.repeat [0] = 9084 ، sourceButtonCI.repeat [1] = 2308 ؛ sourceButtonCI.repeat [2] = 549 ؛ sourceButtonCI.length = IRCodeLength. CONSTANT ،

من أجل الحصول على المعلومات الخاصة بهذا الأمر ، استخدمت ببساطة مثال PhidgetIR الذي يأتي مع مكتبات Phidget. بعد توجيه جهاز التحكم عن بُعد نحو PhidgetIR والضغط باستمرار على زر رفع الصوت ، "يتعلم" IR الرمز ، ويملأ المثال ، ويمكن بعد ذلك نسخ هذه المعلومات ببساطة في الكود.

الخطوة 12: تشغيل البرنامج

يمكن كتابة ملف Java وتصنيفه على جهاز كمبيوتر خارجي. ضع PhidgetRemote.java و phidget22.jar في نفس المجلد وقم بتشغيل الأمر التالي:

Windowsjavac -classpath.؛ phidget22.jar PhidgetRemote.java

macOS / Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java

بعد التجميع ، انسخ ملفات الفئة التي تم إنشاؤها إلى PhidgetSBC4 ، وقم بتكوينها للتشغيل عند الإقلاع.

الخطوة 13: النتيجة

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

مسابقة التحكم عن بعد 2017
مسابقة التحكم عن بعد 2017
مسابقة التحكم عن بعد 2017
مسابقة التحكم عن بعد 2017

الجائزة الثالثة في مسابقة التحكم عن بعد 2017

موصى به: