Мазмуну:

Чоң атаңыз үчүн технология: 13 кадам (Сүрөттөр менен)
Чоң атаңыз үчүн технология: 13 кадам (Сүрөттөр менен)

Video: Чоң атаңыз үчүн технология: 13 кадам (Сүрөттөр менен)

Video: Чоң атаңыз үчүн технология: 13 кадам (Сүрөттөр менен)
Video: Айгерим Расул кызы тойдо алып баруучу Нурзат Токтосунованын чачынан сүйрөдү 2024, Ноябрь
Anonim
Image
Image

Канча жолу чоң ата -чоң энеңиздин үйүнө бардыңыз, "технология көйгөйүн" чечүү үчүн, ал өчүрүлгөн электр кабели, алыстан батареясы өчүп калган же булагын телевизоруна кое албай калган? Мен билем, бул мен үчүн көп учурда болот. Алардын көйгөйлөрүнүн көбүн дүкөнгө жаңы ААга чуркоо менен чечсе болот, бирок кээде алар ыңгайлаштырылган чечимден пайда ала алышат.

Мисалы, менин сүйлөшкөн кызымдын чоң атасы жаңы сыналгыга ээ болду жана биз ага DVD менен сыналгыны которуштуруу үчүн булакты кантип өзгөртүү керектигин үйрөтүүгө аракет кылдык - бирок ал муну түшүнө алган жок. Ал ошондой эле начар көрүүчү менен алпурушат жана татаал процесстерди эстеп калууга кызыкдар эмес, жөн гана каалаган учурда анын шоуларын көргүсү келет. Биздин акыркы сапарыбызда кадамдарды тынч түшүндүрүүгө аракет кылгандан кийин, мен ага өзүнүн эки баскычтуу алыстан башкаруу пулун жасоону чечтим. Бул анын телекөрсөтүүсүнүн кириш булагын оорутпастан өзгөртүүгө мүмкүндүк берет, сүйүктүү Matlock DVDлерин алмаштырат жана Price is Right оңой.

1 -кадам: материалдар

  • PhidgetIR
  • PhidgetSBC4 (же Raspberry Pi сыяктуу бир тактай компьютер)
  • Кандооч
  • Side Cutters
  • Wire Stripers
  • Jumper Wires
  • USB кабели
  • Phidget Cable
  • Корпус
  • Тешиктин башы
  • Жылуулукту кыскартуучу түтүк

2 -кадам: Пландоо

3D Басып чыгаруу
3D Басып чыгаруу

Алыстан башкаруу пультун түзүү үчүн мага керектөөчүлөрдүн инфракызыл (CIR) буйруктарын телевизорго жөнөтүү жөндөмү керек болчу. Мен бул иш үчүн PhigetIRди колдонууну чечтим. PhidgetIR - бул CIR буйруктарын жөнөтүү жана алуу мүмкүнчүлүгүнө ээ болгон USB көзөмөлдөгөн түзмөк. Мен муну бир нече себептерден улам тандап алдым:

  • Мен бул долбоорду мүмкүн болушунча тезирээк бүтүрүп, колдонууга бергим келди, андыктан осциллографымды жана нан панелимди сындыруу ою жаккан жок. Ошондой эле, менин кол менен ширетилген микросхемаларым дагы бир-эки жылдан кийин иштеп калышы мүмкүнбү?
  • PhidgetIR CIR буйруктарын "үйрөнүү" жөндөмүнө ээ, ал иштеп чыгууну өтө жөнөкөй кылат.
  • Сиз PhidgetIR менен дээрлик бардык негизги программалоо тилин колдоно аласыз. Бул мен Java колдонуп, иштерди тез бүтүрө алам дегенди билдирет.
  • Акыр -аягы, мен Phidgets үчүн иштейм, андыктан API менен ыңгайлуумун жана дайыма запастык түзмөктөр тегеректелип турат.

Мен PhidgetIRди колдонууну тандаганым үчүн, аны иштетүү үчүн компьютер керек болчу. Мен бул долбоор кадимки пультка окшош, өзүнчө тиркеме болушун кааладым, ошондуктан рабочий же ноутбук иштебей калды. Мен PhidgetSBC4 (Debian Linux менен иштеген бир тактай компьютер) колдонууну чечтим, анткени ал мага кошумча жабдыксыз эки баскыч менен тең иштөөгө мүмкүнчүлүк берди. Алар жөн гана түздөн-түз камтылган VINT Hubга туташтырылышы мүмкүн. Эскертүү: бул долбоор үчүн Raspberry Pi колдоно аласыз. Акыр -аягы, функционалдык жактан бекем болгондон тышкары, мен бул долбоордун сонун болушун кааладым, ошондуктан 3D басылган корпус керек деп чечтим.

3 -кадам: 3D басып чыгаруу

3D Басып чыгаруу
3D Басып чыгаруу
3D Басып чыгаруу
3D Басып чыгаруу

Бул долбоор үчүн Geomagic корпусту моделдөө үчүн колдонулган. Бул процессти жөнөкөйлөткөн PhidgetIR жана PhidgetSBC4 үчүн 3D кадам файлдары бар. Бул кадамдын жүрүшүндө корпустун өлчөмү жана иштеши боюнча кээ бир чечимдер кабыл алынган:

  • PhidgetIRде буйруктарды жөнөтүү үчүн сыналгыны кароо керек болгон эки IR LED бар. PhidgetIR тактайынын айланасындагы корпусту долбоорлоонун ордуна, ИР -диоддордун түсүн өчүрүп, корпустун капталындагы тешиктерге чаптап койсо болот. PhidgetIR тактасы бош орунду колдонуп, LEDден алысыраак орнотулушу мүмкүн.
  • PhidgetSBC4теги VINT Hub туташтыргычтары өйдө карай ийилген болушу мүмкүн, бул дагы баскычтардын туташуусуна мүмкүнчүлүк берет жана чоң корпусту түзүүнүн алдын алат.

Мен ошондой эле баскычтардын этикеткасын жана IR LED диоддору туура багытта көрсөтүлүшү үчүн, алар туш болушу керек болгон багытты көрсөткөн этикетка кошууну чечтим. Мен корпусту кара ABS пластиктен басып чыгардым.

4 -кадам: Ассамблея - Светодиоддорду алып салыңыз

Ассамблея - Светодиоддорду алып салыңыз
Ассамблея - Светодиоддорду алып салыңыз
Ассамблея - Светодиоддорду алып салыңыз
Ассамблея - Светодиоддорду алып салыңыз
Ассамблея - Светодиоддорду алып салыңыз
Ассамблея - Светодиоддорду алып салыңыз

IR LEDлери акыры корпустун капталындагы тешиктерге жабыштырылат. Бул биринчи кезекте алардын чачын тазалоо керек дегенди билдирет.

5 -кадам: Ассамблея - Тешиктин башын кошуу

Ассамблея - Тешиктин башын кошуу
Ассамблея - Тешиктин башын кошуу
Ассамблея - Тешиктин башын кошуу
Ассамблея - Тешиктин башын кошуу

Кийинчерээк, тешиктин баштары, мурунку светодиоддорго кошулган, бул аларды 4-пин секирүүчү зым менен туташтырууга оңой кылган. Кокус байланышка жол бербөө үчүн жылуулукту азайтуучу түтүктү колдонуңуз.

6 -кадам: Ассамблея - Светодиоддорду тиркеңиз

Ассамблея - Светодиоддорду тиркөө
Ассамблея - Светодиоддорду тиркөө
Ассамблея - Светодиоддорду тиркөө
Ассамблея - Светодиоддорду тиркөө

Светодиоддорду корпустун капталына чаптаңыз.

7 -кадам: Ассамблея - PhidgetIR тиркөө

Ассамблея - PhidgetIR тиркөө
Ассамблея - PhidgetIR тиркөө
Ассамблея - PhidgetIR тиркөө
Ассамблея - PhidgetIR тиркөө
Ассамблея - PhidgetIR тиркөө
Ассамблея - PhidgetIR тиркөө

PhidgetIRди корпуска тиркеп, LEDлерди туташтырыңыз.

8 -кадам: Ассамблея - Баскычтарды кошуу

Ассамблея - Баскычтарды кошуу
Ассамблея - Баскычтарды кошуу
Ассамблея - Баскычтарды кошуу
Ассамблея - Баскычтарды кошуу
Ассамблея - Баскычтарды кошуу
Ассамблея - Баскычтарды кошуу

Баскычтарды PhidgetSBCдеги VINT Hubга туташтыруу керек, ошондуктан мен Phidget кабелин экиге бөлүп, учтарын баскычтарга туташтырдым. Белгилей кетсек, ак зым (сигнал) жана кара (жерге) гана талап кылынат.

9 -кадам: Ассамблея - Бардыгын бириктирүү

Ассамблея - Бардыгын бириктирүү
Ассамблея - Бардыгын бириктирүү
Ассамблея - Бардыгын бириктирүү
Ассамблея - Бардыгын бириктирүү

Баарын чогултуу үчүн кээ бир кабелдик башкаруу талап кылынган, бирок корпус жакшы иштеген.

10 -кадам: Программалык камсыздоо - Код

Бул долбоор үчүн бир гана Java файлы талап кылынат, аны бул жерден таба аласыз. Программа бир PhidgetIR объектисин жана эки DigitalInput объектин колдонот. Сиз бул сыяктуу объекттерди түзө аласыз:

PhidgetIR ir = жаңы PhidgetIR ();

DigitalInput tvButton = жаңы DigitalInput (); DigitalInput otherButton = жаңы 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 = жаңы DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent ажыратуу) {

DigitalInput ch = (DigitalInput) disce.getSource (); аракет {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} кармоо (PhidgetException ex) {System.out.println ("Error:"+ ex.getDescription ());}}};

Кнопка иштетилгенде, окуя коду аткарылат жана желек орнотулат. Бул желектер шилтеме кылынат жана негизги циклде баштапкы абалга келтирилет. Негизги цикл жөн гана баскычтын абалынын өзгөрүшүн күтөт, андан кийин PhidgetIR APIден жеткиликтүү берүү функциясын колдонуп IR буйруктарын жөнөтөт.

while (true) {if (tvButtonActivated) {

tvButtonActivated = false; Log.log (LogLevel. INFO, "CHANGING SURCE - TV"); 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, "CHANGING SURCE - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

11 -кадам: Программалык камсыздоо - CIR Commands

Программалык камсыздоо - CIR Commands
Программалык камсыздоо - CIR Commands

Бул жерде буйрукту кантип түзүүнүн мисалы (бул учурда көлөмдү көбөйтүү буйругу):

// 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;

Бул буйрук боюнча маалымат алуу үчүн, мен жөн эле Phidget китепканалары менен келген PhidgetIR мисалын колдондум. Алыстан башкарууну 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

Сунушталууда: