Pasidaręs kompiuterio valdymą su IR pulteliu per COM jungtį ir pasinaudojęs kelis mėnesisius, nusprendžiau pasidaryti kompiuterio valdymas per USB jungtį.
Pasidaręs kompiuterio valdymą su IR pulteliu per COM jungtį ir pasinaudojęs kelis mėnesisius, nusprendžiau pasidaryti kompiuterio valdymas per USB jungtį :-! . Taip nusprendžiau daryti, nes:
- schema per COM jungtį naudoja nemažai procesoriaus resursų komandų dešifravimui (o schema per USB jungtį iš vis nepkrauna procesoriaus, nes viską atlieka mikrokontroleris !amazed)
- ne visi kompiuteriai turi COM jungtį (ypač nauji nešiojami)
- prietaisas per USB jungtį atrodo daug naujoviškiau nei per COM jungtį 😎
Schema
Problema iškilo renkantis greitą mikrokontrolerį. USB greitis labai didelis: LowSpeed – 1.5Mbit/s, FullSpeed – 12Mbit/s, HighSpeed – 480Mbit/s. Shemos pagrindas – RISC mikrokontroleris iš Atmel AT90S2313. Šis mikrokontroleris neturi USB palaikymo, todėl viską turi atlikti mikrokontrolerio programa. Dėl reikiamo USB dažnio sinhronizacijos, mikrovaldiklis buvo šiek tiek “užturbintas” panaudojant 12 MHz kvarcą.
Įrenginio schema su mikrokontroleriu AT90S2313-10 :
Schema
Naudojau TSOP1736 IR daviklį:
Įrenginys yra labai paprastas, tačiau veikia tikrai gerai. Ypač malonu, kai pirmą kartą prijungus prie USB jungties išvysti užrašą “New hardware found” 🙂
Kadangi schemą buvau sugalvojęs patalpinti kompiuterio viduje, tai nesistengiau daryti labai mažos:
IrDA per USB jungtį
Kiti įrenginio variantai buvo mažesni:
IrDA mano rankoj
Matosi detalės
Prie mikrokontrolerio 9 kojos (D1) per atitinkamą varžą (aš naudojau 680 omų)prijungus šviesos diodą, jis priimant IR koda blykčios. Man tai patiko ši funkcija 🙂
Įrenginio instaliavimas
Kaip ir visiems USB įrenginiams, šiam taip pat reikia naudoti tvarkykles (draiverius).
Paveiksliukais bus parodyta kaip teisingai įdiegti įrenginio tvarkykles pirmą kartą prijungus prie kompiuterio per USB jungtį. Tvarkyklės yra tos pačios Windows98, WindowsME, Windows2000 ir WindowsXP (Windows95 neveikia). Visi parodyti veiksmai tokie pat ir kitom operacinėm sistemoms (Windows 98, Windows ME, Windows 2000)
Nurodome aplanką su tvarkyklėmis
Tvarkyklės neturi skaitmeninio parašo iš Microsoft, bet mes tęsiame instaliacija
Instaliacija baigta
Kompiuteris jau atpažįsta irengiį ir jis gali veikti
Po sėkmingos instaliacijos mes matome įrenginį “Device manager”
Komandų atpažinimui ir kompiuterio valdymui naudojau program? Girder. Programa yra universali, todėl norin naudoti ją pagal šio schemą teks parsisiųsti plug-in’ą “IgorPlug.dll”. Šį failą reikia įkelti į programos aplanke esantį aplanką “Plugins” ir įjungus programą ir nuėjus į nustatymus (File -> Settings) reikia nustatyti, kad naudotų “Igor SFH-56 device” pgug-in’ą:
“Igor SFH-56 device” plugino nustatymai :
Nustatykite USB jungtį.
Prietaisą galite patikrinti taip:
Įjunkite programą ir nustatykite visus nustatymus, pažiūrėkite į būsenos indikatorius. Normalioje būsenoje jie turėtų būti tokie:
O aktyvioje būsenoje (kai spaudote pultelio klavišus):
Komandų kūrimas
Jei viskas veikia, galite pereiti prie linksmosios dalies – komandų kūrimo.
Sukurti komandas tikrai paparasta. Norėdami pradėdti kurti komandas, reikia įsijungti Girderį. Įsijungus programą, kairėje pusėje matome baltą ruožą. Jame spaudžiam dešiniu pelės klavišu ir pasirenkame ~Add Command~.
Programa “Girder”
Atsiranda aplankas, o jame pilkas stačiakampis. Tai ir yra komanda. Komandas ir aplankus galima pervadinti. Tarkim, kad kursim komandą kompiuterio išjungimui. Tam reikia pažymėti ką tik sukurtą komandą, dešinėje išsirinkti skiltį ~O.S.~ (čia valdomos ~Windows~ funkcijos), o iš ten ~Poweroff~ ir paspausti ~Apply~. Visą tai padarius, viršuje reikia paspausti ~Learn Event~ mygtuką. Paspaudus, programa lauks kol nukreipsite pultelį ir paspausite pasirinktą mygtuką. Jei viskas gerai, programos apačioje atsiras kodas ir mygtukas bus priskirtas komandai. Dabar kiekvieną kartą paspaudus tą patį mygtuką bus išjungiamas kompiuteris.
Įjungti programas pulteliu – taip pat paprasta. Tam reikia sukurti kitą komandą (“Add Comand”), ją pažymėti ir iš dešinėje esančio sąrašo pasirinkti “O.S.”, o iš ten ~Execute~. Tada reikia nurodyti kelią iki programos (“Browse”) ir priskirti mytuką, paspaudus “Learn Event”.
Norint sukurti nestandartines funkcijas, pvz. Programos “Winamp” “Play”, reikia sukurti dar vieną naują komadą (“Add Command”). Tada reikia ją pažymėti ir dešinėje pasirinkti skiltį “Command”. Ten paspausti mygtuką “Capture”. Atsidarys dar vienas programos langas, kuriame paspausime mygtuką “Start Capture” (bus pradedami fiksuoti visi veiksmai), įjungsime “Winampą” ir paspausime “Play”. Tai padarę, “Girder” lange sustabdysime fiksavimą mygtuku “Stop Capture”, pasirinksime vieną iš paskutinių veiksmu, kuriame minimas “Winamp”, ir paspausime “OK”.
Capture naudojimas
Dabar bereikia priskirti mytuką, paspaudus “Learn Event”.
Pabaigoje visus nustatymus reikia išsaugoti (File -> Save).
Mikrokontrolerio programavimas
Mano mikrokontroleris
Kad mikrokontroleris veiktų, jį reikia užprogramuoti. Programavimui naudojau šį programatorių ir programą PonyProg2000. Mikrokontrolerio programa hexas.
Šioks toks programatorius
Programuoju…
Dabar gauti AT90S2313 beveik neįmanoma, tad tenka naudoti ATtiy2313. Gal tai net geriau, nes ATtiny gali dirbti 20MHz dažniu, tad nereikia jo “turbinti”. Kadangi ATtiny yra naujesnis mikrokontroleris tai jis turi daugiau galimybių. Užprogramavus šį mikrokontrolerį (programa tinka ta pati nuo AT90S2313) reikia pakeisti saugiklius (Fuses). CKSEL3..1 turi būti nustatyti 1111. Užprogramuotas saugiklis skaitosi 1, tad atsargiai, nesusimaišykite! Štai kaip viskas turėtų atrodyti su PonyProg:
Fuses
Montažinė plokštė (PCB)
Naudojant mikrokontrolerį SO20 korpuse, dariau tokią PCB:
Montažinė plokštė
Detalių išdėstymas turėtų būti toks:
Detalių išdėstymas
Reikalingi failai
ar ne per brangu toki darytis vien PC valdymui, is tos pacios mikruchos iseitu ir IRda telefui sujungt su kompu
prie ko jungei diodus?
Kokius diodus? Šviesos?
O kaip irda čia galima padaryti (aš čia žalias visai)
🙂
Būtu visai idomu
turiu pasidares per COM toki irengini. Veikia taip pat ir nereikia jokio draiverio. Girderis mato ir COM tai kam reikia usb.
o man visai patinka per usb tai tikrai šiuolaikiškiau ir com portas laisvas nes usb turiu daug laisvų, o com užimtas.
Tačiau kas užprogramuos shemos pagrindą – RISC mikrokontrolerį iš Atmel AT90S2313 😉
o koki programeri naudojai?
Užsiprogramtuoti galima pačiam turintprogramatorių 🙂 Aš rašiau, kad naudojau ši programatorių
Labas. Kokia PonyProgo versija palaiko ATtiny2313. Netgi naujausią beta 2.05 teradau ATtiny22 🙁
Ups, atsiprašau, radau dar naujesnę. Tik plačiau akis atmerkt reikėjo :)))
Aš ATtiny2313 programavau su PonyProg v2.06f BETA, ten jau yra šis mikrokontroleris.
Katik pasidariau šį malonumą. Puikiai veikia 🙂
sveiki visus su naujais
taiva as nusprenziau pasidaryti kompo valdyma su pultu
pradzei pabandziau su COMu nesigavo gelezine dalis viskas tvarkoi veikia bet niekaip girderis nemato devaiso
gerai uzsikruses su tuo COMu nusprendziau pasidaryti sita per USB
ir vel kartojasi viskas uzprogramuota gerai prijungi devaisa ir
USBdevice not recognized bandziau nurodyti jam tuos draiverius
ir ka kompas neranda ju nurodytoje vietoje
gal dovidai galetum pasufleruoti ka as gal ne taip padariau
sveiki visus su naujais
taiva as nusprenziau pasidaryti kompo valdyma su pultu
pradzei pabandziau su COMu nesigavo gelezine dalis viskas tvarkoi veikia bet niekaip girderis nemato devaiso
gerai uzsikruses su tuo COMu nusprendziau pasidaryti sita per USB
ir vel kartojasi viskas uzprogramuota gerai prijungi devaisa ir
USBdevice not recognized bandziau nurodyti jam tuos draiverius
ir ka kompas neranda ju nurodytoje vietoje
gal dovidai galetum pasufleruoti ka as gal ne taip padariau
~~~~~~~~~~~~~~~~~
Irenginį kompas turi matyti ir be draiverių. Jei nemato, tai kažkas neveikia. Gali būti kad blogai užprogramuotas, neveikia nuo išorinio 12MHz generatoriaus. Draiverius reikia dėti tik tada, kai kompas jau mato įrenginį.
tai va po ilgu skaitinejimu ciatuose radau vaistu
kartais reikia dadeti pora varzu i data+ ir i data- grandines
ne avras kaikuriems kompams siuncia per stipru signala
varzos bandymo metodu kazkur 68 omai turetu buti
vienu zodziu veikia super dabar liko tik su tuo girderiu issiaiskinti 🙂
Gal galit ka pasakyt kur galima isigyt Atmel’u? Savo zinomose parduotuvese nerandu… :/
Gal galit ka pasakyt kur galima isigyt Atmel’u? Savo zinomose parduotuvese nerandu… :/
~~~~~~~~~~~~~~~~~
Neaišku kur ieškai 🙂 Lemona, RCL, Evita, Megaomas, Edvinas ir Bičiuliai. Galima siųstis ir paštu ar kurjeriais.
Nu aisku… matyt ieskot nemoku 🙂
o sita irda tik winampa valdo ar ka nori gali valdyt?
o sita irda tik winampa valdo ar ka nori gali valdyt?
~~~~~~~~~~~~~~~~~
Galima valdyti ką nori. Tiksliau – viskas priklauso nuo to, kaip sugebėsi sukonfiguruoti 🙂
Montažinė plokštė (PCB) o tai sios plokstes su eagle eye nubraizyto archyvo nera atsisiusti???
Montažinė plokštė (PCB) o tai sios plokstes su eagle eye nubraizyto archyvo nera atsisiusti???
~~~~~~~~~~~~~~~~~
Deja, neturiu. Šita dariau su paprastom grafikos programom.
As tuos FUSES nustaciau taip ir tada pradejo veikti, o kai viska nuzymejau neveike …
http://img60.imageshack.us/my.php?image=configurationandsecurittk8.jpg
Tai stai mano “menas” telieka tik grazia viska sutvarkyti 🙂
http://img230.imageshack.us/my.php?image=irda001ge8.jpg
http://img75.imageshack.us/my.php?image=irda002pu3.jpg
o kuom nors skiresi AT90S2313-10 nuo AT90S2313-20pu ar tas galas tik mikroshemos tipa parodo ta prasme forma?
o kuom nors skiresi AT90S2313-10 nuo AT90S2313-20pu ar tas galas tik mikroshemos tipa parodo ta prasme forma?
~~~~~~~~~~~~~~~~~
Parodo maksimalų darbo dažnį ir maitinimo įtampą.
Rodos, kad nėra tokio AT90S2313-20pu, tikriausiai pats sugalvojai !ill
Tokie dalykai datasheetuose rašomi :!
http://www.lemona.lt/index.php?page=item&i_id=61150
Na nezinau bet as toke nusipirkau :/
[nuoroda]
Na nezinau bet as toke nusipirkau :/
~~~~~~~~~~~~~~~~~
Tai čia ATTINY2313-20PU, o ne AT90S2313-20pu.
bet yvedus y lemonos pajieska AT90S2313-20pu suranda ta kur jau rodziaus
a ce analogas 🙂 tai tada tinka 🙂
geras
labai