Portál AbcLinuxu, 26. dubna 2024 03:44


Dotaz: Pripojeni svetelne brany na USB/RS232

18.5.2008 20:16 Jan (javes) Veselý | skóre: 2 | blog: Openbox
Pripojeni svetelne brany na USB/RS232
Přečteno: 1401×
Odpovědět | Admin
Dobry vecer,

mam svetelnou branu, kera slouzi pro mereni prujezdu zavodnika cilem. Jakmile zavodnik projede cilem (prerusi paprsek), zavora rozepne rele (na 0,8 sekund).

Poradte, prosim, jakym zpusobem tento udaj prenest (USB, nebo alespon RS232) a precist v PC.

Dekuji za jakekoli rady...
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

ZmaTkar avatar 18.5.2008 20:29 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dobry vecer, na USB zapomente pokud nechcete letovat nebo kupovat prevodnik USB-RS232. Ohledne RS232, asi by slo pouzit nektery ze signalizacnich pinu.
Punk's not dead ...
18.5.2008 20:37 Jan (javes) Veselý | skóre: 2 | blog: Openbox
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Bohuzel nemam predstavu kolik pajeni a letovani by to obnaselo, pripadne jestli by nebylo treba nejaky PIC jednocip, tery by mi to 0,8 sec. hluche misto zaregistroval a poslal na jeden z portu. Prave ono USB by se doopravdy moc hodilo :)
18.5.2008 20:58 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Záleží dost na tom, jak přesně je potřeba to měřit. Tedy jestli stačí jen zargistrovat, že k události došlo, nebo jestli je potřeba měřit čas mezi přerušeními s přesností třeba na 10 ms (pochopil jsem, že jde o nějaké měření závodníků na dráze).

Co se týče USB, tak ho nelze využít přímo, ale buď pomocí převodníku na RS232 nebo pomocí nějakého jednočipu s podporou USB (nebo softwarovou implementací USB, to jde třeba u Atmel AVR).

Pokud by nezáleželo na časové přesnosti zachycení, tak by šlo přímo použít vstupní linky RS232 (RI, DCD, CTS a DSR). Jednou jsem to v obdobné aplikaci použil a dá se počítat se zpožděním několika desetin sekundy - je potřeba ve smyčce pořád číst stav portu a kontrolovat změnu, ale možná to jde i nějak asynchronně přes signály, to jsem nezkoumal). Pro tohle řešení by šlo použít i převodník USB/RS232, ale pozor na to, že některé nepodporují řídící signály.

Druhá možnost je použít třeba ten Atmel AVR a softearovou implementaci USB, viz: http://www.obdev.at/products/avrusb/powerswitch.html Pak by bylo možné udělat i velmi přesné časové měření (1ms) a zpracovávat i víc vstupů (třeba 12 nebo i víc u procesoru s víc porty).
18.5.2008 21:21 Jan (javes) Veselý | skóre: 2 | blog: Openbox
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Nejsem v tomhle oboru moc zbehly a z toho co jsem vycet je u serioveho portu jeden vstupni pin, jeden vystupni pin, spolecna zem a ostatni "ridici porty".

Nemate nejaky tutorial, schematka, jak ten port konkretne zapojit s relatkem tak abych z nej mohl cist?

10 ms neni problem (do tech 800 ms neni problem ;)), spis ne na vsech pocitacich je seriovy port, nemluve o laptopech... :(
18.5.2008 21:36 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Sériový port má pro datovou komunikaci 1 vstup a jeden výstup a samozřejmě zem. Kromě toho má ale ještě řídící, které se používaly k řízení modemů nebo k ovládání toku (tj. připojené zařízení mohlo signalizovat připravenost na přijetí dat apod., ale to není důležité).

Důležité je, že sériový port na PC má kromě těch 2 datových vodičů ještě 4 vstupy DCD, DSR, CTS, RI. Stav těchto vstupů lze číst jako bin. hodnotu 0/1 pozor na to, že log. 0 na RS232 odpovídá kladnému napětí 3 až 12 V a log. 1 zápornému napětí. Pokud máte k dispozici výstup jako relé, pak není potřeba žádný ext. zdroj, ale využije se některý výstup (DTR nebo RTS), který je přes relé připojen/nepřipojen na použitý vstup.

Co se týče USB, tak se dají bez problémů sehnat převodníky RS232 na USB ve formě kabelu, který má na jednom konci USB a na druhém konektor RS232 s vestavěnou elektronikou převodníku. Pozor na to, že některé tyhle převodníky nemají vyvedené zmiňované řídící signály.

Pro obsluhu portu používám Perl, konrétně v Linuxu modul Device:SerialPort http://search.cpan.org/~cook/Device-SerialPort-1.002/SerialPort.pm z CPANu, který má výhodu v tom, že pro Windows je modul Win32:SerialPort se stejnými funkcemi, takže je to multiplatformí - Stačí na začátku programu vložit modul buď pro linux nebo pro win a zybtek je stehný.
18.5.2008 22:14 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Jednou jsem to v obdobné aplikaci použil a dá se počítat se zpožděním několika desetin sekundy - je potřeba ve smyčce pořád číst stav portu a kontrolovat změnu, ale možná to jde i nějak asynchronně přes signály, to jsem nezkoumal
Asynchronní příjem dat jde určitě. Asynchronní příjem změn na řídících pinech jsem hledal, ale nic jsem nenašel...
Quando omni flunkus moritati
18.5.2008 22:22 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Sériový port má schopnost vyvolat přerušení při změně některé řídící linky, takže hardwarově to jde, softwarově v Linuxu nevím, v DOSu by se udělal ovladač přerušení.
18.5.2008 22:45 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
takže hardwarově to jde, softwarově v Linuxu nevím
Hledal jsem tu část "softwarově v Linuxu" - nenašel jsem nic (což samozřejmě neznamená, že to nejde.)
Quando omni flunkus moritati
18.5.2008 22:59 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Nevím zda linux dovolí instalovat si vlastní obsluhu přerušení, ale něco by mohlo být ve zdrojácích jádra od modulu sériového portu (tedy pro céčko). To přerušení je pak stejný jako při příjmu znaku (to lze nastavit konfiguračními registry sériového portu).
18.5.2008 20:48 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pravděpodobně nejjednodušší realizace by v tomhle případě byla jednočip + RS232.

Otázka je, jak tohle všechno bude přesné, protože při zpracování (tj. přenos dat do počítače a příjem obslužným programem) by mohlo dojít k nějakému předem neznámému zpoždění.

S přivedením toho signálu z relé přímo na nějakou součást počítače by asi byl trochu problém. Jediné, co si dokážu představit, je připojení k datovému pinu sériového portu.
Quando omni flunkus moritati
18.5.2008 20:54 Jan (javes) Veselý | skóre: 2 | blog: Openbox
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Kdyby se po pripojeni do toho jednocipu poslal aktualni cas, mohl by pri preruseni brany poslat presny cas kdy se to stalo. Pote by se nemuselo resit zpozdeni prenosu.

Je to realne?
18.5.2008 21:18 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Jo tohle je reálné.
18.5.2008 21:22 Jan (javes) Veselý | skóre: 2 | blog: Openbox
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
A muzete doprucit cip?
18.5.2008 21:43 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Reálné to je. Dokonce se tam objevují další možnosti, jako že by třeba čas měřil přímo ten jednočip (stačilo by mu dodat nějaký signál START) a do počítače poslal rovnou výsledek.

Co se doporučení čipu týče, mám dobré zkušenosti s tímhle
Quando omni flunkus moritati
18.5.2008 21:55 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Podle mě má zbytečně mnoho pinů, na funkci stačí tak tři datové (možná i dva): vstup přerušení (z toho relátka) a sériový výstup. Program pak bude čekat na přerušení a pokud k němu dojde, tak se přečte hodnota čítače a pošle se to na sériový port. Na to by stačil klidně nějaký ATtiny (jen nevím zda má UART)
18.5.2008 22:03 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Já bych se taky přiklonil k ATmega8. Vzhledem k tomu, že v GM stojí 34 Kč a ty menší ATtiny jsou paradoxně většinou draží.

AVR dokonce zvládá i sofware emulaci USB, takže by nebyl nutný převodník na RS232. USB implementace pro AVR je jako opensource třeba tady: http://www.obdev.at/products/avrusb/index.html .

Otázkou je, jestli je pro danou aplikaci takovéhle řešení nutné. Je přece jenom potřeba spájet nějakou desku s jednočipem a pás součástkami okolo a napsat pro něj program - nevím, jak je v tomhle tazatel zběhlý...
18.5.2008 22:17 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Ono to vyjde cenově nastejno :-D, ale zase kvůli dvěma I/O dělat plošnák na 28 pinů mě přijde "náročné" :-D. Je ale fakt, že k tomu ATmega by šly pak přidat ještě nějaké další periferie.
18.5.2008 22:35 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Koukám, že ATtiny docela zlevnily, takže cenově by to vyšlo nastejno

Na druhou stranu jediná ATtiny, která má UART, je ATtiny2313 - ta má 20 pinů, takže 20 nebo 28, to už mi přijde skoro to samé (nemluvě o podpoře více instrukcí, hardwarové násobičce a velké paměti navíc u megy)
Quando omni flunkus moritati
18.5.2008 22:45 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Pokud se může emulovat USB rozhraní, tak není problém emulovat i UART (alespoň Tx) :-D.
více instrukcí, hardwarové násobičce a velké paměti
To je otázka, jak moc bude ten program složitý. Výhoda je, že attina se dá vecpat přímo to konektoru, kdežto 28 pinová atmega už moc ne (možná v nějaké SMD verzi).
18.5.2008 22:48 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Pokud se může emulovat USB rozhraní, tak není problém emulovat i UART (alespoň Tx)
Problém to není, ale je to pakárna.
To je otázka, jak moc bude ten program složitý.
V tomhle případě bych řekl, že ne dost na to, aby bylo cokoliv ze zmíněného potřeba ;-) Maximálně kdyby si tazatel vzpomněl, že to má dělat ještě něco dalšího.
Quando omni flunkus moritati
18.5.2008 22:55 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Bylo by dobré, kdyby tazatel napsal, co přesně to má dělat, aby se dalo navrhnout co nejjednodušší řešení.

Mám pocit, že rady jak to udělat s jednočipem pro něj budou docela komplikované. Když pokládá takovýhle dotaz, tak nepředpokládám, že by měl nějaké konstrukční zkušenosti s elektronikou (i když možná se pletu). Každopádně by musel dát dohromady programátor (ale to pro AVR není problém) a napsat program (asi nejlíp v C, GCC pro AVR funguje docela bez problémů).

Před nějakou dobou tady vyšel dvoudílný seriál a programování AVR pod linuxem, tak tam se lze inspirovat - jsou tam základní principy, programování i komunikace přes UART.
18.5.2008 23:24 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Před nějakou dobou tady vyšel dvoudílný seriál a programování AVR pod linuxem, tak tam se lze inspirovat - jsou tam základní principy, programování i komunikace přes UART.
Ten seriál je dost zastaralý a na některé věci je lepší podívat se do doplňujícího článku - http://www.abclinuxu.cz/clanky/hardware/jednocip-attiny2313-pod-linuxem
Quando omni flunkus moritati
18.5.2008 22:21 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Já bych se taky přiklonil k ATmega8. Vzhledem k tomu, že v GM stojí 34 Kč a ty menší ATtiny jsou paradoxně většinou draží.
Přesně tak. Proto radši ATmega8 a ATtiny jenom tam, kde je potřeba šetřit místem nebo elektrikou.
AVR dokonce zvládá i sofware emulaci USB, takže by nebyl nutný převodník na RS232. USB implementace pro AVR je jako opensource třeba tady:
Ta softwarová emulace USB docela hodně omezí uživatelský program, nicméně v tomhle případě by to neměl být problém, protože ten program zase nebude tak náročný .

Horší je to, že se člověk musí postarat i o druhou stranu, tedy buď napsat ovladač pro USB zařízení, nebo přizpůsobit firmware v procesoru, aby se tvářil jako nějaké zařízení, které je známé (např. myš nebo sériák) Podle mě je to spousta zbytečné práce navíc, když už by bylo nutné USB, tak bych asi raději použil ten převodník
Je přece jenom potřeba spájet nějakou desku s jednočipem a pás součástkami okolo a napsat pro něj program - nevím, jak je v tomhle tazatel zběhlý...
To je pravda. K MCU je potřeba připojit tři dráty (napájení + signál od té brány) a jednu součástku (krystal), takže tady by možná ještě šlo udělat vrabčí hnízdo. Horší je to se sériovým portem, protože tam se musí udělat nějaký převodník úrovní a například kolem takového MAX232 je pět kondenzátorů; tam už to vrabčí hnízdo není taková sranda.
Quando omni flunkus moritati
18.5.2008 22:27 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Horší je to se sériovým portem, protože tam se musí udělat nějaký převodník úrovní a například kolem takového MAX232 je pět kondenzátorů; tam už to vrabčí hnízdo není taková sranda.
Tohle by řešil převodník USB/UART, protože tam je na výstupu TTL logika.

Ještě mě napadlo, jak má být to relátko od notebooku daleko, USB mívá problémy se vzdáleností.
18.5.2008 22:32 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Měl jsem na mysli hotový převodník ve formě kabelu, ten má samozřejmě úrovně RS232 a převodník úrovní by byl nutný. Pak také existují samostatné čipy USB<>RS232 třeba od FTDI, ale tam je docela problém, že největší pouzdro, ve kterém to dělají, má rozteč vývodů cca 0,3mm a to se docela špatně pájí i na pocínovanou desku s nepájivou maskou.

Ohledně vzdálenosti bych problém neviděl. Je možné dát elektroniku blízko k počítači a to případně dlouhé vedení mít od relátka, kde to v podstatě není omezeno (vzhledem k tomu, že impuls je 0,8s a napětí 5V; maximálně by se tam dal nějaký RC člen proti zákmitům).
18.5.2008 22:42 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Pak také existují samostatné čipy USB<>RS232 třeba od FTDI, ale tam je docela problém, že největší pouzdro, ve kterém to dělají, má rozteč vývodů cca 0,3mm a to se docela špatně pájí i na pocínovanou desku s nepájivou maskou.
Dělá se i větší pouzdro - rozteč vývodů 0.8mm. Nicméně i to se pájí docela blbě a člověk na to musí být docela machr. I když prý existuje varianta, že se tam ten čip prostě připájí nějakou docela velkou vrstvou cínu (i tak, že se propojí nožičky) a pak se použije tohle - http://gme.cz/cz/index.php?page=search&id=1274&q=odsavaci%20&w=1111#result

Přiloží se k součástce, zahřeje a ten knot vysaje přebytečný cín, takže čip zůstane přilepený na DPS, ale nožičky nejsou propojené. Prý to funguje docela dobře, ale sám jsem to nezkoušel a v akci jsem to taky neviděl.

Každopádně SMD součástky vylučují cokoliv horšího, než je fotocestou vyvolávaná DPS.
Ohledně vzdálenosti bych problém neviděl.
Tohle bych taky neřešil - možností, jak si prodloužit dosah, je docela dost.
Quando omni flunkus moritati
18.5.2008 22:52 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
a ten knot vysaje přebytečný cín
Jo tohle jsem viděl jednou na youtube, podle toho videa to funguje dost dobře.
ZmaTkar avatar 20.5.2008 16:15 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Já nedávno tohle jedno FTDI letoval a řešil jsem to tak, že jsem na plošky na plošňáku dal vrstvičku cínu, obvod jsem zespoda nakápnul chemoprenem, umístil na místo a mikropájkou jednu nohu po druhej zatlačil do toho cínu na desce a šlo to dobře. U toho odsátí cínu bych se bál, že mi něco zůstane propojený.
Punk's not dead ...
20.5.2008 18:01 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Koukám, že ho dělají i v pouzdru TQFP, tj. rozteč asi 0.8mm -- Na pocínovaný plošňák to jde mikropájkou pájet docela dobře, akorát jsem zjistil, že je potřeba cín průměru max. 0.3mm (se silnějším to vůbec nešlo :-).
20.5.2008 20:50 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
S 0.5mm to jde taky.
Quando omni flunkus moritati
20.5.2008 20:48 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
U toho odsátí cínu bych se bál, že mi něco zůstane propojený.
Já asi ne, tipl bych si, že ten knot bude na cín fungovat jak magnet a vysaje všechno, co nebude držet adhezí na nožičkách a ploškách (u toho tvého způsobu je stejně tak možnost, že se ti to sleje)
Quando omni flunkus moritati
ZmaTkar avatar 20.5.2008 16:12 ZmaTkar | skóre: 18 | blog: ZmaTkar
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Ja bych spíš jako jednodušší viděl FTDI 232RL, je to převodník USB-serial. Ten má vyvedeny všechny signály RS232, dá se napájet rovnou z USB a nemusí se nic programovat. Nevýhodou je, že je to prťavý SMD a tak se špatně letuje a výroba desky taky nebude úplně triviální, ale ne nemožná.
Punk's not dead ...
20.5.2008 20:52 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Pripojeni svetelne brany na USB/RS232
Záleží vyloženě na potřebách a schopnostech tazatele. Obě možnosti mají něco do sebe.
Quando omni flunkus moritati
19.5.2008 09:09 pet
Rozbalit Rozbalit vše Minimální HW řešení je
Odpovědět | | Sbalit | Link | Blokovat | Admin
připojit relé přímo na řídící signál RS232 portu a driverem v kernelu (zavedeném jako modul) naprogramovat port tak, aby při klapnutí relé vygeneroval interrupt. Interrupt rutina driveru pak zapíše systémový čas a uživatelská aplikace si jej přečte. Stejně by to šlo řešit i pomocí printerportu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.