daljinsko za odpiranje vrat preko gsm ...

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Se malo sem premislil: naredil bom z 12 vhodi, od tega bo 5 pravih (fizicni pini na konektorju), 2 ali 4 bodo od stevcev oziroma timerjev, ostali pa samo interne zastavice, katere se bo dalo postaviti enako kot izhode. Med vhodi bo za posamezen izhod mozno vsak vhod invertirati in med njimi opraviti logicno AND oz. OR operacijo, za izpeljavo kompleksnih pogojev bodo pa uporabljene tiste virtualne zastavice. En preprost primer, da bo lazje razumeti:

Ce se mora izhod vkljuciti samo, ko sta vhoda 1 in 2 oba hkrati aktivna, ali pa ko ni aktiven vhod 3, se to zapise kot

izhod = (1 & 2 ) | !3

v tem programcku bo pa sestavljeno z uporabo vmesne zastavice za pogoj (1 & 2) in bo torej razbito v dve enacbi

zastavica = 1 & 2
izhod = zastavica | !3

Tako bo cisto intuitivno za uporabo za vsakega, ki je naredil srednjo solo (osnove boolove algebre so obdelane pri matematiki), hkrati pa meni ne bo pretirano zakompliciralo dela, ki bi ga imel s parsanjem in preverjanjem pravilnosti izrazov, ce bi ti bili vneseni v tekstni obliki, namesto da lahko uporabnik preprosto poklika vse skupaj.

Bom se malo premlel, potem pa zacnem pisati, ce ne bo drugih predlogov.
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Evo, zdaj je narejeno priblizno do polovice. Sem prilepil dve sliki za ilustracijo.

Na prvi je glavno okno. Tam izberes za kateri izhod (pravi izhod na LPT ali pa navidezni, najsibo to interna zastavica za zacasno shrambo ali pa nadzor katerega od timerjev ali counterjev za naprednejse krmiljenje) bos postavil enacbo, ki doloca stanje vhoda.

2mrxhg3.png


To odpre drugo okno, kjer za izbrani izhod (v primeru na sliki je to O4 (cetrti data pin LPT porta), ki bo aktiven takrat, ko bo aktiven ali (izbrano zgoraj) vhod I2 (drugi statusni pin) ali ne I5 (peti statusni pin).

15xqsjs.png


Izgleda malce komplicirano, a je v resnici cisto preprosto. Ce bi npr. hotel imeti programcek, ki bi pognal skropilnike (izhod O7) na vrtu za 15 minut vsakih 6 ur ali pa takrat, ko nekdo pritisne tipko na vhodu I1, hkrati bi pa imel se eno glavno stikalo na I3, s katerim bi lahko v eksplicitno izkljucil skropilnike in timerje, bi to naredil takole:

1: Nastavil bi oba timerja, enega na 15 minut, drugega na 6 ur.

2: Izhodu O7 bi kot pogoj nastavil T2Running IN I3.

3: Timer2Start bi kot pogoj nastavil Timer1IOverflow ALI I1LoHi (ali I1HiLo, odvisno od tega kaksen odziv bi zelel imeti, torej na pritisk ali na izpust tipke).

4: Timer2Stop bi kot pogoj nastavil Timer2Overflow (sicer bi tekel v nedogled in sprical veselo dalje
evil.gif
)

5: Timer1Start bi kot pogoj nastavil I3LoHi (oz. I3HiLo, odvisno od zeljenega odziva; torej se aktivira Timer1 sele ob sklenitvi stikala).

6: Timer2Stop bi kot pogoj nastavil ravno obratno od prejsnje tocke, torej I3HiLo (oz. i3LoHi).

(seveda se da narediti tudi bolj elegantno - recimo samo z enim timerjem in enim counterjem recimo, v tem primeru steje timer 15 minut, ob overflowu poveca counter, dokler je ta enak prednastavljeni vrednosti, ki bo za 15 minut na 6 ur enaka (6 * 60) / 15, skropilniki delujejo, ko je vrednost vecja, se Counter resetira na 0 in steje zopet od zacetka)

Za tisti banalen primer iz tvojega sporocila mi menda ni treba razlagati, da samo kliknes relevantni izhod za dolocen vhod in je to to ?

Moram narediti uporabniski vmesnik malce bolj luser friendly, preveriti ce racunanje deluje pravilno in dodati konfiguracijo ter izpis v log. Zdajle mi zmankuje casa in volje ...

Kaksne pripombe razen da je zadeva super ?
evil.gif
 

leni

gps navigator
17. avg 2007
1.549
0
36
S46.2296732 V14.5190865
www.sajko.com
Jest bi imel eno veliko pripombo........ TI SI CAR !!!
BRAVO !!!

No to je moja pripomba, ko sem drugič prepbral dejansko ni komplicirano, zdaj ne vem al je samo meni hitro jasno al je dejansko zadeva to in več kar sem v bistvu iskal-želel.

Skratka ODLIČNO zgleda zaenkrat !!!
Ali mogoče še veš kje bi dobil kartico z releji ali vsaj optokoplerji da bi potem lahko krmilil večje napetosti in moči.

Vprašal bi samo še, če misliš da bi se to dalo spraviti tudi v internet varianto, se pravi oddaljen dostop in nadzor, da bi recimo dal naredil kakor ledico za aktivni - neaktivni pin. NI pa panike če se ne da naredit za internet, le aktivni izhod bi bilo fino videt
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Koliko penezov pa imas ?
grims-1.gif


Moj posel je razvoj inf. opreme, torej HW in SW. Razmisljal sem tako, da bi bil tole samo projektek za vmes ("vaba" za druge stvari
evil.gif
), potem bi naredil se samostojen modul, ki ne bi potreboval toliko prostora, elektrike itd., ampak samo en majhen napajalnik, delal bi pa isto stvar in bi se programiral direktno s to aplikacijo, po potrebi bi pa se imel mocnostne izhode za krmiljenje vecjih porabnikov. Tisti, ki ne potrebujejo elektronike in jim PC zadosca, bi pa pac imeli samo ta programcek. Daj mi se malo casa, da tole dokoncam (vmes je vikend, kar negativno vpliva na ucinkovitost ...).

Ja, tudi sam sem razmisljal glede prikaza stanja pinov, bom to dodal.

In ja, stvar mora biti cisto enostavna vsakemu, ki ni padel na glavo v mladosti ... preveckrat :D
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Sem malo pobijal insekte, ki so se skotili v kodi, in dodal se lucke. Na sliki se vidi kako deluje: ce dolocen izhod nima nastavljene nobene prevajalne enacbe, potem je njegova "LEDica" ugasnjena, torej siva (na sliki vsi izhodi razen O1 in O2). Ce enacbo ima doloceno ima in je njen rezultat tak, da je izhod v stanju 0 (torej da pogoj ni izpolnjen), je rdece barve (na sliki je tak izhod O2), ce pa je pogoj izpolnjen in je torej izhod v stanju 1, pa je zelene barve (O1 na sliki).

Razmisljam ali bi dodal se za vhode, ceprav ne vidim nobene koristi v tem (preprosto se da eni zastavici pripisati vrednost vhoda in potem spremljati stanje vhoda preko zastavice z minimalno zakasnitvijo).

k96g7k.png


Imam se par idej za izboljsave, treba pa bo doreci se nekaj stvari, med ostalim to, koliksna naj bo casovna enota za timer (jaz se nagibam k 1/10 sekunde ali kar 1 sekunda), in kaksna naj bo frekvenca pollerja (moje mnenje je, da mora biti vsaj 10x visja od timerja, ni pa prav zanesljivo merjenje tako kratkih intervalov na tako zelo ne-RT OSu, kot so Windows).
 

leni

gps navigator
17. avg 2007
1.549
0
36
S46.2296732 V14.5190865
www.sajko.com
Ja "ledice bi bile dobrodošle tudi na vhodih, da veš recimo alil se je gub pritisnil ali ne, to pomaga predvsem pri reševanju slabih kontakov da veš kje iskat napako ali na stikalu ali na programiranju, če ti kaj ne zalaufa ravno takoj.
timer jaz nebi nastavljal na manj kot sekundo, razen če je za to kaka posebna želja ampak mislim da manj kot sekundo skoraj ne bi potreboval nihče.
Kaj je poller pa žal ne vem.
Če se dela že detajle bi bilo morda fino da bi lahko vsak sam dal imena vhodom in izhodom, O1 da bi lahko preimenoval recimo v ključavnica, še vedno pa bi ostala številka 1, O2 da bi preimenoval v vrata ostala pa bi 2 v oklepajih recimo. Skratka da bi lahko gumbe preimenoval v kar bi pač kdo želel, za lažje delo z programom.
Kar se cekinov tiče je pa tako, da je to pač, vsaj meni, za hobi tako da ravno kakih velik stroškov si ne bi delal. Se pa recimo dobi od siemensa tak fensi šmensi PLC z 4 vhodi in 4 izhodi za malenkos več kot 100€ mislim da je nekih 110-120€ , seveda pa je treba dokupit še software za programiranje in kabel za povezavo z PC, ampak če to že imaš potem je to to. je pa to industrijska zadevca z luštnim LCD-jem kjer ti prikazuje stanje ali pa tekst katerega si vnesel v program. Program pa zgleda tako da enostavno dodajaš IN ALI ter TIMER ikonce in jih kar z linijami povezuješ potem na vhode-izhode, na koncu pa še lahko dodaš okenšek kamor vpišeš teks ali spet okenček da ti prikazuje čas ali tekst na displejčku.

To sem sicer videl pri kolegu, ki to vgrajuje v svoje naprave in je za moj hobi to predrago, čeprav bi mi posodil kabel in program kadar bi ga rabil.
Skratka par 10€ bi ti prispeval k tvojemu trudu kaj več pa bolj težko.

No sem sedajle malce pogledal po ebayu za že narejenimi karticami za izhode in sem našel tole http://cgi.ebay.com/8-Relay-Bo...=item19bd3cdca8
A bi tole pasalo na tvoj program?
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Tisto glede preimenovanja vhodov bom verjetno dodal kar z zunanjo konfiguracuijsko datoteko, ki se jo da popravljati v Notepadu.

Tale ploscica je videti OK, potreboval bos pa dodaten napajalnik (releji ne bodo delali samo od sebe) in upostevati bos moral, da ima implementiranih samo 8 izhodov (od moznih dvanajstih) in nic vhodov. To pomeni, da za vhode moras se vedno od nekje priskrbeti napajanje (5V, nekaj mA).
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Jaz trenutno nimam nobene kartice. Ce bi jo potrenobal, bi jo naredil. Za en kos je sicer neekonomicno (racunajo prevec za izdelavo, da bi lahko konkuriral Kitajcem), zato je najboljse, da nabavis kar tisto, dodas en primeren napajalnik (najbrz pise kaksni releji so na tisti ploscici, napajalnik mora biti sposoben zagotociti dovolj visoko napetost za tuljavico, sicer pa ni nobenih drugih posebnih zahtev, tisti ULN gor, ki krmili releje, je precej robusten), in poskrbis za vhodni del, saj ni nic kompliciranega. Rabis samo 5V regulator, serijske upore za vsak slucaj (kaksnih 100R), kaksen kondenzator (100nF ali vecji) preko vsakega vhoda in to je to.

Vceraj sem imel drugo delo, danes sem dodal zunanjo konfiguracijo in prikaz stanja vhodov. Pojavil se je pa en potencialen problem: vhode seveda lahko tudi preimenuejs (kot se vidi na sliki), ampak je druga forma (kjer nastavis enacbo za izbrani izhod) malo omejena s prostorom ravno pri vhodih, saj morajo biti tam se prehodi in invertirana stanja, in s kilometrskim imenom bi tam hitro ena stvar rpekrila drugo. To moram se malo premisliti, zaenkrat se imena da nastaviti samo na prvi formi (na sliki spodaj).

Pa se ena stvar: stanje nekaterih pinov na portu je invertirano, ker je tako pac port narejen. Ne vem ali bi jih pustil tako kot so, ali bi jih vse obrnil, da bi uproabnik imel obcutek, da delajo vsi enako. To lahko pripelje do problemov, ce boi kdo dejansko prebral opis delovanja porta, saj bi potem vsi taki pini navidez delovali ravno narobe. Tudi to je se ena stvar za razmislek ...

j59x1j.png
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Eni pini so invertirani. Dva primera:

1: pin 11 (I5) je vhod, ki je v stanju 0, kadar je na njem 5V, in v stanju 1, ko je na njem 0V.

2: pin 1 (O9) je izhod, ki da ven 5V, ko je v stanju 0, in 0V, ko je v stanju 1.

Jaz lahko to skrijem pred uporabnikom, torej da bo videti, da se vsi pini obnasajo kot da je 5V = logicna 1. Problem je, ce kdo pozna delovanje paralelnega porta in pricakuje obratno logiko (morda jo celo zeli, ker lahko pride kdaj prav, da so nekateri pini invertirani, tako ni potrebno komplicirati s programom) in ga stvar lahko zmede.

Glede omejitve imen - meni je vseeno kaj uporabnik nastavi - njegov problem, ce nastavi bedarijo oziroma onesposobi program, nikjer ne pise, da mora to poceti. Ze tako se da narediti "cudne" stvari s preprostim klikanjem, ce recimo uporabnik ne dojame razlike med vhodi v enacbi, ki so tipa one-shot in vhodi, ki delujejo na level. Posledica je recimo, da ce bi hotel imeti aplikacijo, ki bi stela koliko ljudi gre skozi fotocelico, prijkljuceno na I1, in da pri 1000000-em cloveku vrze dol nanj konfete (dispenser prikljucen na O1, ki ga aktivira C1Eq in Counter1 nastavljen na 1000000), in bi namesto I1LoHi (ki je one-shot in je pravilna izbira) povezal C1Up samo na I1 (ki je level active in je napacna izbira), bi stevec "sam od sebe" stel navzgor takrat, ko bi bil I1 v stanju 1 (torej lahko za vsak impulz od fotocelice recimo po 10x ali kolikorkolikrat pac ze, odvisno od dolzine impulza fotocelice), namesto da bi stel samo enkrat za vsakega cloveka, torej samo enkrat za vsak impulz, ki pride iz fotocelice.

Ce bo kdo nastavil daljsa imena, jih pac bo, to ni moj problem. Zaresen problem na drugi strani programa je v tem, da res ni prostora, da bi pisalo npr. namesto

I1 I1Inv I1LoHi I1HiLo (vmes so se kljukice)

Fotocelica FotocelicaInv FotocelicaLoHi FotocelicaHiLo (vmes so se kljukice)

ali pa morda

Fotocelica Fotocelica (Inv) Fotocelica (LoHi) Fotocelica (HiLo)

ceprav je ime "fotocelica" dolga samo 10 znakov, kolikor se tebi zdi smiselna omejitev. Edina moznost bi bila vse skupaj precej povecati, ampak vseeno bodo imena izgledala cudno ... bom se malo premislil.

Glede tiske ploscice: poznam ne nobene, berem pa kaj pise v opisu. Tale je videti zelo obetavna, ima prikljucene vse vhode in izhode, zavedaj pa se, da bos verjetno moral dodati se svoje releje za pogon cesarkoli omembe vrednega, kar ni krmiljeno elektronsko (ce imas pa samo elektronsko krmiljene porabnike, pa to ne bo potrebno, jih pa lahko optocoupler krmili direktno). Tisti mali optocouplerji so tam samo toliko, da locijo ploscico od moznostnega dela, katerega moras ti se narediti, ce ga tvoja aplikacija potrebuje, enako, kot ce bi recimo hotel nekaj prikljuciti na PLC (npr. radiator, bojler, elektricna vrata, motorno zago ...).
 

leni

gps navigator
17. avg 2007
1.549
0
36
S46.2296732 V14.5190865
www.sajko.com
Se pravi, če to bolj po domače poveva, so eni pini NO (normaly Open) drugi pa NC ( Normaly Closed) ? Saj to bi bilo tudi vredu samo treb bi bilo vedeti kateri so kateri.
Kar se kartice tiče, mi je jasno da je tisto samo izolacija računalnika od porabnika in to bi tudi v bistvu želel, ker ne bi rad uničil mameplate če bi kaj narobe priklopil po nesreči. Jasno se potem naprej uporabijo močnostni releji.
To kartico uporabljam na CNC rezkalniku zato sem se spomnil nanjo ker u bistvu samo razdeli pine iz kabla in jih loči od mameplate.

Kar se pa imen tiče, boš pa ti sigurno najbolj vedel kaj je prav in kaj ne. Meni osebno bi bilo vseeno če ostane kot si naredil na začetku, sem samo malo razmišljal še na druge ljudi da bi se zadeva poenostavila in če praviš da bi se znalo zakomplicirat, pač omejiš na manj znakov, kolikor misliš da je največ še uporabno.
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
NO in NC nomenklatura se lahko uporablja samo pri stvareh, kjer je fizicno mogoca locitev (rele, stikalo, tipka) in tam pomeni to, kar bi clovek sklepal iz imena. Meni se ne zdi smiselna za to situacijo, saj tukaj ne gre za to, da .bi bilo kaj fizicno locenega, ampak za to, da je obrnjena polariteta, na uporabniku pa je, da to uporabi, kakor mu ustreza. Torej je tako, kot sem napisal zgoraj.

Seveda dokumentacija za to obstaja, vsak opis paralelnega porta (kot npr. tale) ima to napisano. Ravno zato me skrbi, da ce bi naredil tako, da bi navidezno vsi pini delovali enako (torej da program se enkrat invertira njihovo stanje), ne bi potem kdo javkal, da zadeva deluje narobe. Narediti se da oboje ... ideja: mogoce bi to celo dodal kot nastavitev programa ?

Kartica iz povezave v zadnjem sporocilu je videti ravno pravsnja za tole.

Sem dobil tudi eno idejo kako urediti tisto drugo stran glede imen, bom poskusal implementirati. Zdajle slavim izpad Anglezev za Amerikanci, ce je ze bilo tako nefer, da smo mi izpadli v zadnjih sekundah
smile-1.gif
 

leni

gps navigator
17. avg 2007
1.549
0
36
S46.2296732 V14.5190865
www.sajko.com
mogoče bi lahko naredil za pine tako da kdor bi želel bi bilo prednastavljeno "vsi pini low output", nekje pa bi naredil recimo kljukico "original pin setup", kar bi recimo pomenilo da bi pini obdržali svojo originalno strukturo.
 

Radirko

Fizikalc
18. avg 2007
6.242
0
36
Glede logov: kaj naj se evidentira ? Spet je problem, ker level-active dogodkov ne mores evidentirati, oziroma bi jih evidentiral mnogokrat. Zaenkrat se da smiselno evidentirati spremembo stanja petih vhodov (LoHi oz. HiLo pogoj), timer overflow (torej da stevec presteje do prednastavljene vrednosti) in counter match (torej da je stanje counterja po zadnji spremembi, ne glede na to v katero smer je sprememba bila, enako prednastavljenemu).
 

leni

gps navigator
17. avg 2007
1.549
0
36
S46.2296732 V14.5190865
www.sajko.com
Ja log bi v bistvu bolj prav prišel za input, čeprav tudi ne bi bilo slabo če bi zapisoval spremembe statusov pinov. Da log ne bi bil preveč velik bi ga mogoče lahko omejil na 10Mb kar je še vedno dovolj velik log.
 

Apollo8

Mahoney
15. avg 2007
15.169
7.009
113
ker mi je zanimiv programcek. Dosedaj sem delal v php in javi. Vedno bolj so mi zanimivi mikrokontrolerji in programiranje naprav itd... In to je ze nekaj zanimivega, zato sem pa vprasal
smile-1.gif