فهرست مطالب:
- مرحله 1: مواد
- مرحله 2: برنامه ریزی
- مرحله 3: چاپ سه بعدی
- مرحله 4: مونتاژ - LED ها را بردارید
- مرحله 5: مونتاژ - اضافه کردن سرفصل های سوراخ
- مرحله 6: مونتاژ - LED ها را وصل کنید
- مرحله 7: مونتاژ - PhidgetIR را وصل کنید
- مرحله 8: مونتاژ - افزودن دکمه ها
- مرحله 9: مونتاژ - کنار هم گذاشتن همه چیز
- مرحله 10: نرم افزار - کد
- مرحله 11: نرم افزار - دستورات CIR
- مرحله 12: اجرای برنامه
- مرحله 13: نتیجه
تصویری: فناوری برای پدربزرگ شما: 13 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
چند بار برای کمک به "مشکل فناوری" به خانه پدربزرگ و مادربزرگ خود مراجعه کرده اید که در نهایت یک کابل برق جدا شده ، یک باتری از راه دور خراب شده یا نتوانسته اید منبع تلویزیون خود را تغییر دهید؟ من می دانم که برای من ، این اغلب اتفاق می افتد. در حالی که بسیاری از مشکلات آنها را می توان با دویدن به فروشگاه برای برخی از AA های جدید حل کرد ، گاهی اوقات آنها می توانند از یک راه حل سفارشی تر سود ببرند.
به عنوان مثال ، پدربزرگ دوست دخترم یک تلویزیون جدید گرفت و ما سعی کردیم به او بیاموزیم که چگونه منبع را تغییر دهد تا بتواند بین DVD و تلویزیون جابجا شود - اما او نمی تواند آن را بفهمد. او همچنین با نقص بینایی سر و کار دارد و علاقه چندانی به تلاش برای به خاطر سپردن فرایندهای پیچیده ندارد ، او فقط می خواهد وقتی می خواهد برنامه هایش را تماشا کند. پس از تلاش برای توضیح آرام مراحل در آخرین ملاقات ما بدون موفقیت زیاد ، تصمیم گرفتم که او را از کنترل ساده دو دکمه شخصی خود بسازم. این به او این امکان را می دهد که منبع ورودی تلویزیون خود را بدون درد تغییر دهد و بین DVD های دوست داشتنی خود Matlock و Price به راحتی جابجا شود.
مرحله 1: مواد
- PhidgetIR
- PhidgetSBC4 (یا هر رایانه تخته ای مانند Raspberry Pi)
- آهن لحیم کاری
- برش های جانبی
- استریپرهای سیم
- سیم های جامپر
- کابل یو اس بی
- کابل فیجت
- محفظه
- سرفصل های سوراخ دار
- لوله های کوچک کننده حرارتی
مرحله 2: برنامه ریزی
برای ایجاد کنترل از راه دور ، من نیاز به توانایی ارسال دستورات مادون قرمز مصرف کننده (CIR) به تلویزیون داشتم. تصمیم گرفتم از PhigetIR برای این کار استفاده کنم. PhidgetIR یک دستگاه USB کنترل شده است که قابلیت ارسال و دریافت دستورات CIR را دارد. من این را به چند دلیل انتخاب کردم:
- من می خواستم این پروژه را در اسرع وقت به پایان برسانم و از آن استفاده کنم ، بنابراین فکر شکستن اسیلوسکوپ و تخته نان من جذاب نبود. همچنین ، چقدر محتمل است که مدارهای لحیم کاری شده من هنوز در یک یا دو سال کار کنند؟
- PhidgetIR توانایی یادگیری دستورات CIR را دارد که توسعه را بسیار ساده می کند.
- تقریباً می توانید از هر زبان برنامه نویسی اصلی با PhidgetIR استفاده کنید. این بدان معناست که من می توانم از جاوا استفاده کنم و کارها را سریع به پایان برسانم.
- سرانجام ، من برای Phidgets کار می کنم ، بنابراین با API راحت هستم و همیشه وسایل یدکی در اطراف وجود دارد.
از آنجا که من استفاده از PhidgetIR را انتخاب کردم ، برای خاموش کردن آن به رایانه نیاز داشتم. من می خواستم این پروژه یک برنامه مستقل باشد ، درست مانند یک ریموت معمولی ، بنابراین یک دسکتاپ یا لپ تاپ خاموش بود. من استفاده از PhidgetSBC4 (رایانه تک بوردی که از Debian Linux استفاده می کند) را انتخاب کردم ، زیرا به من این امکان را داد که بدون هیچ سخت افزار اضافی با هر دو دکمه فشاری ارتباط برقرار کنم. آنها به سادگی می توانند مستقیماً به هاب داخلی VINT متصل شوند. توجه: برای این پروژه می توانید از رزبری پای نیز استفاده کنید. سرانجام ، علاوه بر اینکه از نظر عملکردی سالم هستم ، می خواستم این پروژه عالی به نظر برسد ، بنابراین تصمیم گرفتم که یک محفظه چاپ سه بعدی لازم باشد.
مرحله 3: چاپ سه بعدی
برای این پروژه ، Geomagic برای مدل سازی محوطه استفاده شد. فایلهای مرحله ای سه بعدی برای PhidgetIR و PhidgetSBC4 وجود دارد که روند را ساده می کند. در این مرحله تصمیماتی در مورد اندازه و عملکرد محفظه گرفته شد:
- PhidgetIR دارای دو LED مادون قرمز است که برای ارسال دستورات باید به سمت تلویزیون نشان داده شوند. به جای طراحی محفظه در اطراف برد PhidgetIR ، LED های IR را می توان جدا کرد و به سوراخ های کنار محفظه چسباند. سپس می توانید برد PhidgetIR را دور از LED ها نصب کنید و از فضای خالی استفاده کنید.
- کانکتورهای VINT Hub در PhidgetSBC4 می توانند به سمت بالا خم شوند ، که همچنان اجازه دسترسی به اتصالات دکمه را می دهد و همچنین از ایجاد محفظه بزرگتر جلوگیری می کند.
من همچنین تصمیم گرفتم یک برچسب برای دکمه ها و یک برچسب که جهت آن را نشان می دهد اضافه کنم تا LED های IR در جهت درست نشان داده شوند. من محوطه را از پلاستیک سیاه ABS چاپ کردم.
مرحله 4: مونتاژ - LED ها را بردارید
LED های IR در نهایت به سوراخ هایی در کنار محفظه چسبانده می شوند. این بدان معناست که ابتدا باید آنها را جدا کرد.
مرحله 5: مونتاژ - اضافه کردن سرفصل های سوراخ
در مرحله بعد ، سربرگ هایی که در آن LED ها قرار داشتند ، اضافه شدند ، که اتصال آنها را با استفاده از سیم بلوز 4 پین آسان می کند. برای جلوگیری از تماس تصادفی از لوله های کوچک کننده حرارتی استفاده کنید.
مرحله 6: مونتاژ - LED ها را وصل کنید
LED ها را در کنار محفظه بچسبانید.
مرحله 7: مونتاژ - PhidgetIR را وصل کنید
PhidgetIR را به محفظه وصل کرده و LED ها را وصل کنید.
مرحله 8: مونتاژ - افزودن دکمه ها
دکمه های فشار باید به هاب داخلی VINT در PhidgetSBC متصل شوند ، بنابراین من یک فیجت کابل را از وسط برش داده و انتهای آن را به دکمه ها لحیم کردم. توجه داشته باشید که فقط سیم سفید (سیگنال) و سیاه (زمین) مورد نیاز است.
مرحله 9: مونتاژ - کنار هم گذاشتن همه چیز
برای جمع آوری همه چیز ، برخی از مدیریت کابل مورد نیاز بود ، با این حال ، محفظه به خوبی کار می کرد.
مرحله 10: نرم افزار - کد
فقط یک فایل جاوا برای این پروژه مورد نیاز است که می توانید در اینجا پیدا کنید. این برنامه از یک شی PhidgetIR و دو شیء DigitalInput استفاده می کند. شما می توانید این اشیاء را به این شکل ایجاد کنید:
PhidgetIR ir = جدید PhidgetIR ()؛
DigitalInput tvButton = جدید DigitalInput ()؛ DigitalInput otherButton = جدید DigitalInput ()؛
اشیاء ورودی دیجیتال به یک دکمه فیزیکی در هاب VINT نقشه برداری می شوند. رویدادهای ضمیمه ، جدا ، خطا و تغییر حالت نیز در موارد زیر مشترک هستند:
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 (دیس دیجیتال DigitalPointChangeEvent) {
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 ("خطا:"+ ex.getDescription ())؛}}} ؛
هنگامی که یک دکمه فعال می شود ، کد رویداد اجرا شده و یک پرچم تنظیم می کند. این پرچم ها در حلقه اصلی ارجاع داده شده و تنظیم مجدد می شوند. حلقه اصلی به سادگی منتظر تغییر حالت دکمه است و سپس با استفاده از تابع انتقال که از API PhidgetIR در دسترس است ، دستورات IR را ارسال می کند.
while (true) {if (tvButtonActivated) {
tvButtonActivated = false؛ Log.log (LogLevel. INFO ، "CHANGING SOURCE - TV") ؛ ir.transmit (sourceButtonString ، codeInfo) ؛ موضوع. خواب (500) ؛ ir.transmit (rightButtonString ، codeInfo) ؛ موضوع. خواب (500) ؛ ir.transmit (enterButtonString، codeInfo)؛} if (otherButtonActivated) {otherButtonActivated = false؛ Log.log (LogLevel. INFO ، "CHANGING SOURCE - DVD") ؛ ir.transmit (sourceButtonString ، codeInfo) ؛ موضوع. خواب (500) ؛ ir.transmit (leftButtonString ، codeInfo) ؛ موضوع. خواب (500) ؛ ir.transmit (enterButtonString، codeInfo)؛} Thread.sleep (250)؛}
مرحله 11: نرم افزار - دستورات CIR
در اینجا مثالی از نحوه ایجاد یک فرمان (در این مورد فرمان افزایش صدا) آورده شده است:
// کد IR
IRCodeInfo sourceButtonCI = IRCodeInfo جدید ()؛ String volumeUp = "77e1d0f0"؛ // تنظیم دکمه منبع sourceButtonCI.bitCount = 32؛ sourceButtonCI.encoding = IRCodeEncoding. SPACE؛ sourceButtonCI.gap = 108921؛ sourceButtonCI.trail = 549؛ sourceButtonCI.zero = newint [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: اجرای برنامه
فایل جاوا را می توان روی یک رایانه خارجی نوشت و کامپایل کرد. PhidgetRemote.java و phidget22.jar را در یک پوشه قرار دهید و دستور زیر را اجرا کنید:
Windowsjavac -classpath. ؛ phidget22.jar PhidgetRemote.java
macOS/Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java
پس از کامپایل ، فایلهای کلاس تولید شده را در PhidgetSBC4 کپی کرده و پیکربندی کنید تا در بوت اجرا شود.
مرحله 13: نتیجه
وقتی ریموت را به پدربزرگ دوست دخترم دادم و نحوه استفاده از آن را به او نشان دادم ، از ساده بودن آن شگفت زده شد. ویدیو را ببینید تا در عمل ببینید!
جایزه سوم در مسابقه کنترل از راه دور 2017
توصیه شده:
Fanair: یک ایستگاه هواشناسی برای اتاق شما: 6 مرحله (همراه با تصاویر)
Fanair: یک ایستگاه هواشناسی برای اتاق شما: روشهای بی شماری برای آگاهی از آب و هوای کنونی وجود دارد ، اما پس از آن فقط آب و هوای بیرون را می شناسید. اگر می خواهید از آب و هوای داخل خانه خود ، در یک اتاق خاص مطلع شوید ، چه می کنید؟ این چیزی است که من سعی می کنم با این پروژه حل کنم. Fanair از mul استفاده می کند
Luciferin ، روشنایی سوگیری بی سیم برای رایانه شما: 6 مرحله (همراه با تصاویر)
لوسیفرین ، روشنایی سوگیری بی سیم برای رایانه شما: لوسیفرین یک اصطلاح عمومی برای ترکیب ساطع کننده نور است که در موجودات زنده یافت می شود که مانند کرم شب تاب و کرم های درخشان بیولومینسانس ایجاد می کنند. Firefly Luciferin یک نرم افزار رایانه ای جاوا Fast Screen Capture است که برای سیستم عامل Glow Worm Luciferin طراحی شده است ، کسانی که
DIY GPS Data Logger برای شما درایو بعدی/مسیر پیاده روی: 11 مرحله (همراه با تصاویر)
DIY GPS Data Logger برای شما درایو بعدی/مسیر پیاده روی: این یک GPS Data Logger است که می توانید از آن برای چند منظوره استفاده کنید ، بگویید اگر می خواهید درایو طولانی خود را که آخر هفته برای بررسی رنگهای پاییزی طی کرده اید وارد کنید. یا مسیر مورد علاقه ای دارید که هر سال در پاییز از آن دیدن می کنید و
نقاط زرد رمز و راز: آیا چاپگر شما از شما جاسوسی می کند؟: 5 مرحله (همراه با تصاویر)
نقاط زرد رمز و راز: آیا چاپگر شما از شما جاسوسی می کند ؟: تصور کنید هر بار که یک سند را چاپ می کنید ، به طور خودکار شامل یک کد مخفی است که می تواند برای شناسایی چاپگر - و به طور بالقوه ، شخصی که از آن استفاده می کند ، استفاده شود. به نظر می رسد چیزی از یک فیلم جاسوسی است ، درست است؟ متأسفانه سناریو
نحوه تهیه تقویم پدربزرگ و مادربزرگ & amp؛ دفترچه راهنما (حتی اگر نحوه چسباندن را نمی دانید): 8 مرحله (همراه با تصاویر)
نحوه تهیه تقویم پدربزرگ و مادربزرگ & amp؛ دفترچه یادداشت (حتی اگر نمی دانید چگونه دفترچه یادداشت کنید): این یک هدیه بسیار مقرون به صرفه (و بسیار قدردانی!) تعطیلات برای پدربزرگ و مادربزرگ است. من امسال 5 تقویم با هزینه کمتر از 7 دلار تهیه کردم. مواد: 12 عکس عالی از فرزند ، فرزندان ، خواهرزاده ها ، برادرزاده ها ، سگ ها ، گربه ها یا سایر اقوام شما 12 قطعه مختلف