abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Navštivte Abc obchůdek se samolepkami a přívěsky!
Rozšířené hledání
×
včera 22:45 | IT novinky
NASA, která společně s Rackspace stála u zrodu projektu OpenStack, se již nadále nebude podílet na dalším vývoji této "infrastructure-as-a-service" platformy. V NASA totiž došli k závěru, že vzhledem k podpoře OpenStacku ze strany společností jako Red Hat, AT&T a HP lze jejich práci považovat za dokončenou. Posléze se NASA plánuje stáhnout i z vývoje další platformy pro cloud computing jménem Nebula.
Migilenik | Komentářů: 0
včera 22:45 | Upozornění
Blíží se svátek IPv6 a s ním i konference IPv6 Day. Na návštěvníky této akce čeká nejen bohatý program, ale také jedna speciální nabídka – v průběhu setkání bude možné získat se slevou 66 procent třetí vydání knihy IPv6 vysokoškolského pedagoga a publicisty Pavla Satrapy, tedy za 105 korun. … více »
Vilem Sladek | Komentářů: 1
včera 16:14 | Pozvánky

Přijďte si zasprintovat na Djangu, jiném Python open-source projektu, nebo jen potkat ostatní vývojáře!

… více »
Whit | Komentářů: 0
včera 10:20 | Nová verze
Na zrcadlech a torrentech jsou již k dispozici ISO obrazy distribuce Mageia 2. Poznámky k vydání čtěte zde.
Liborek | Komentářů: 8
23.5. 13:47 | Pozvánky

Letos v říjnu se v Praze uskuteční hned několik konferencí. Odehraje se zde nově vzniklá konference LinuxDays. K ní se přidá čtvrtý ročník openSUSE Conference, dvanáctý ročník SUSE Labs conference a aby to nebylo málo, přidá se i první ročník Gentoo miniconf. A to vše ve stejné dny a na stejném místě.

… více »
Miška | Komentářů: 7
23.5. 13:27 | Zajímavý projekt
Printerd je název nového projektu tiskového démona, který bude využívat PolicyKit a D-Bus. Projekt je zatím na úplném začátku, takže nejde o nic vhodného k produkčnímu nasazení. Mimo jiné aktuálně akceptuje jako vstup jen PDF dokumenty.
Luboš Doležel (Doli) | Komentářů: 35
23.5. 13:25 | Zajímavý software
Tři vývojáři ze společnosti Engine Yard přecházejí po dohodě mezi firmami do Red Hatu. Jde o vývojáře zabývající se rozvojem projektu JRuby. To ukazuje, že Red Hat má zájem o podporu alternativních jazyků nad OpenJDK.
Luboš Doležel (Doli) | Komentářů: 1
23.5. 13:20 | Zajímavý software
Fedora přejde na knihovnu libusbx, což je fork původní knihovny libusb. Důvodem pro fork byl zjevný nedostatek času nebo zájmu ze strany správce projektu. libusbx už teď nabízí užitečné funkce navrch.
Luboš Doležel (Doli) | Komentářů: 2
23.5. 10:29 | Nová verze
Vyšlo LLVM 3.1. Vylepšení se dotýkají podpory C++ 11 nebo architektur ARM a MIPS. Dále se můžete těšit z Python bindings nebo nástroje AddressSanitizer pro detekci chyb při práci s pamětí.
Luboš Doležel (Doli) | Komentářů: 0
23.5. 00:01 | Nová verze
Vyšla nová verze open source služby pro sdílení a synchronizaci souborů ownCloud 4. Mezi hlavní novinky patří verzování, šifrování dat, vestavěný prohlížeč ODF souborů, nové API a další - podrobnější popis novinek a vylepšení zde.
Dirka | Komentářů: 1
Pokud by se prohlížeč Opera stal svobodným:
 (10%)
 (29%)
 (1%)
 (60%)
Celkem 177 hlasů
 Komentářů: 10, poslední včera 22:42
    Rozcestník
    Reklama
    Autoškola testy online Levný benzín
    Štítky: není přiřazen žádný štítek

    Vložit další komentář
    27.1. 18:07 psonek | skóre: 19 | blog: psonek
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    No moc jsem to necetl, ale proc nepouzit arduino? Je to za par stovek a ma to hromadu vstupu/vystupu (i analogovych) a da se pripojit pres USB k pocitacu. Programuje se v Cecku a komunikovat se da pres to USB (tvari se jako seriova linka). Ja tim ovladam frezu z merkuru a funguje perfektne:

    video tady
    Dreit avatar 27.1. 20:36 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Andruino beru taky jako možnost, ale hledám nejlevnější alternativu a vlastní cestu (neprobádanou + chci se naučit jak to funguje).

    Navíc co se týče "programování", tak jen Bash, s Cčkem neumim a nikdy jsem nepochopil jak funguje (ano, jsem barbar).

    Domluvil jsem, ňuf
    Jendа avatar 27.1. 21:51 Jendа | skóre: 61 | blog: Výlevníček | Praha
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Protože přes USB nedosáhneš přesného timingu. Takže budeš muset mít v tom Arduinu netriviální processing, jakmile budeš chtít navádět nějakou časově náročnější aplikaci (třeba brmlabí lasercutter nebo reprap). Přidej k tomu, že ta ATMega není nejrychlejší (pythagorova věta je často na hranici možností, sinus už real-time nemáš šanci zvládat) a tak budeš muset data masivně předpočítávat na počítači a cpát je tam nějakým netriviálním protokolem… bléé.
    27.1. 22:08 Jirka Keresteš | skóre: 12
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Sinus se da i na takovym prditku pocitat "realtime", pokud to nepotrebujes nejak presne (na to se atmega stejne nehodi). Staci si po resetu predpocitat tabulku pro interval [0;pi/2], neznamy hodnoty pak dopoctes nejakou interpolaci daleko rychleji nez taylorem. ;-)
    A physics book seems to be a mathematician's worst nightmare.
    Jakub Lucký avatar 27.1. 18:22 Jakub Lucký | skóre: 37 | Praha
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    S HW poradit neumím, ale generovat sinusoidu určitě šlo v soxu...

    If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek
    gtz avatar 27.1. 18:23 gtz | skóre: 26 | blog: merlins | Brno - Venkov / Rosicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    přece existoval Osciloskop ze zvukové karty :-) a tam o sinusiodu šlo.
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    Dreit avatar 27.1. 20:38 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    xoscope

    Domluvil jsem, ňuf
    27.1. 20:04 Kvakor
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Jde to Soxem (viz Using Sox to Synthesize Sound), jde generovat sinusovka, obdélník, pila, trojúhelník, pulzy a různé druhy šumů.

    A zvukové karty s FM syntézou (např.. s OPL2/3) to umí i hardwarově (ale cpát to do vstupu umí, poku vím, jen SB16), nebo se to dá udělat signálovým procesorem na kartě (např.Emu10K/20K). Na to první bych možná ještě někde vyhrabal svůj dosový program pro SB16.
    Dreit avatar 27.1. 20:39 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Díky moc, to vypadá přesně jako to, co jsem celou dobu hledal. Ještě něco co by dokázalo číst signál na vstupu a počítat impulzy a bylo by to perfektní :-)

    Domluvil jsem, ňuf
    gtz avatar 27.1. 18:22 gtz | skóre: 26 | blog: merlins | Brno - Venkov / Rosicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    jen bych doporučil se vyhnout převodníkům USB-RS485, které používají pouze half-duplex. My pácháme přístroje pro stravovací a docházkové systémy, které jsou řízeny Atmely/PIC a komunikujeme s PC přes RS232 nebo RS485. A najít někdy ten správný převodník je potíž. PCI-expres RS232 jsou totálně o ničem na Linuxu pořádně nefungují.

    a snad víš, že RS23 je komunikace dvou zařízení, tzn. že jednotlivé bity přenášených dat jsou vysílány postupně za sebou (v sérii) po jednom páru vodičů v každém směru.
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    27.1. 18:39 chachar87 | blog: chacharovo
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    na komunikaci pouzivame vetsinou rs485, ale kde neni jine moznosti nez 232, tak pouzivame bez problemu tyhle
    Kdyz nejde o zivot, tak jde o hovno...
    gtz avatar 27.1. 19:34 gtz | skóre: 26 | blog: merlins | Brno - Venkov / Rosicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    od Papoucha převodníky znám jsou velice slušné. Jen rozměry nám tehdy nevyhovovaly ... bylo potřeba něco menšího. Dá se to bez problémů udělat doma (náklady cca 500,-), ale je to pouze half-duplex.
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    28.1. 08:54 Jiri
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Papouch je má hodně předražené - obzvlášť ten základní model rs232->rs485. Vyzkoušeli jsme z dealextreme a funguje úplně stejně už dlouho, ale cena je mnohem nižší :) http://www.dealextreme.com/p/rs232-to-rs485-converter-6040
    gtz avatar 28.1. 10:46 gtz | skóre: 26 | blog: merlins | Brno - Venkov / Rosicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    RS232-RS485 je v pohodě. Ale již USB-RS485 není v pohodě, levné převodníky používají pouze half-duplex - tedy 3 dráty ven a některé aplikace s tím mají problémy. Většina zapojení pro USB-485 je právě pro half duplex.
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    27.1. 18:45 dad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    ..PCI-expres RS232 jsou totálně o ničem na Linuxu pořádně nefungují. ...

    my mame v nasazeni MOXA produkty a o problemech nevim. Co pouzivate?
    gtz avatar 27.1. 19:02 gtz | skóre: 26 | blog: merlins | Brno - Venkov / Rosicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Netuším co šéf někde sehnal..... Byl tam problém s komunikací a tak se tam dával převodník USB-RS232. My na komunikaci terminálů používáme náš soft, který komunikuje s terminály a tam tehdy byly nějaké problémy s odesíláním dat z PC do terminálu. Někdy se to odeslalo někdy zase ne. No dnes jsme byli na nějakém servisu, kdy měl zákazník náš převodník v WIN7 a byl velký problém to celé uchodit. Divné bylo, že když tam jel nějaký jejich kamerový systém tak se data nepodařilo poslat (by data opakovaně posíláme).
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    27.1. 18:36 dad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    seriovy port signalizuje hardwarove pres piny RTS/CTS nebo DTR/DSR ze je pripraven prevzit dalsi data. My jsme drive pouzivali vlastne vyhradne RTS/CTS (to jsou piny 4/5 na 25 kolikove zastrcce) - myslim kvuli tomu, ze DTR nekteri vyrobci zneuzivali jinak.

    Ale dneska bych take vychazel z toho, ze seriovy port bude brzy out a vsechno pobezi pres usb.
    Dreit avatar 27.1. 20:43 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Právě 25-kolíková zástrčka mě docela děsí, protože teď je všude jen ta 9-kolíková :-(

    Tak ale na USB můžu připojit rovnou andruino, radši bych něco primitivního, co umí klidně i jen posílat data jedním směrem, ale zato to skoro nic nestojí

    Domluvil jsem, ňuf
    29.1. 17:16 pjoter
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Jo, to si tady povime za dalsich 10 let, zda je seriovy port out nebo ne :-) Tyto konstatovani me bavi, dalsi ze stejneho soudku je treba tento "NAND u embedded zarizeni plne nahradi SD karty, NAND uz bude brzy out".
    27.1. 19:25 Tom
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Momentálně nevím jak s tím vstupem přes audio ( jen nezapomeňte, že jsou tam kondenzátory a projdou jen impulzy - žádné delší úrovně v 0 nebo 1 ) Ale pokud jde o výstup, existují knihovny pro seriový výstupní port na audio výstupu. A ten je stereo, tak můžete mít linky dvě. Našel jsem tehdy odkaz přes AndroidMarket, když jsem potřeboval dostat data z tabletu do Arduina.
    Dreit avatar 27.1. 20:45 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Nezapomínám, právě mi jde jen o ty impulzy. Teda, takže přes zvukovku už i posílat sériově data? No, ne že by mě to nenapadlo, ale že na to opravdu existuje i nějaká knihovna.....wow :-)

    Domluvil jsem, ňuf
    xkucf03 avatar 28.1. 19:17 xkucf03 | skóre: 40 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Tak ono kdysi se používaly modemy, které nebyly připojené drátem, ale položilo se na ně sluchátko telefonu a data šla přes mikrofony a reproduktory…
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    kotyz avatar 28.1. 20:01 kotyz | skóre: 23 | blog: kotyzblog | Radnice
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    To sem viděl akorát ve filmech a nechtělo se mi moct věřit že to vážně kdysi používali ...
    Starý časy jsou pryč a už se nikdy nevrátí. | Hrdý člen KERNEL ULTRAS. | Vyspíš se až umřeš. | Nemám čas ztrácet čas.
    Bystroushaak avatar 28.1. 20:31 Bystroushaak | skóre: 16 | blog: Bystroushaakův blog | Litoměřicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Pokud vím, radioamatéři podobné módy pro komunikaci používají dodnes. STANAG který používá NATO je třeba docela hustý.
    Poté, co mi došlo, že nejsem génius, rozhodl jsem se zešílet. ## České stránky o programovacím jazyce D
    xkucf03 avatar 28.1. 20:54 xkucf03 | skóre: 40 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Takhle budeme komunikovat, až nám vypnou Internet…
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    Bystroushaak avatar 28.1. 21:20 Bystroushaak | skóre: 16 | blog: Bystroushaakův blog | Litoměřicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Jak kdo, na to je zapotřebí mít licenci imho :P
    Poté, co mi došlo, že nejsem génius, rozhodl jsem se zešílet. ## České stránky o programovacím jazyce D
    Dreit avatar 29.1. 00:14 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Domluvil jsem, ňuf
    Jendа avatar 27.1. 21:53 Jendа | skóre: 61 | blog: Výlevníček | Praha
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    jen nezapomeňte, že jsou tam kondenzátory a projdou jen impulzy - žádné delší úrovně v 0 nebo 1
    Menšestr nebo podobná modulace.

    Tohle nevím v jakém je stavu.
    28.1. 00:10 Kvakor
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Může se to modulovat: amplitudovou modulací (tj. měnit úrovně, jednoduché, ne moc spolehlivé), frekvenční modulací (přepínat frekvenci, celkem spolehlivé, ale složitější detekce) případně ješte dalšími, exotičtějšími druhy modulace (fázová, kvadraturní). A protože se může použít stereovstup, tak by šlo použít i různé rozdílové přenosy azpracovávat jen rozdíl (velmi jednoduché a spolehlivé).

    27.1. 20:21 Kvakor
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Paralelní i sériové porty jdou koupit zvlášť v cená v řádu stovek korun (viz např. tady), včetně PCIe verze. Čipy většinou v Linuxu podporu mají, navíc pro většinu pioužití stači stejně mít jen adresu bázového portu z výpisu PCI prostředků. Třeba dva paralelní porty na PCI řadiči, co mám v počitači, vypadají v lspci takto:
    00:06.0 Communication controller: NetMos Technology PCI 9815 Multi-I/O Controller (rev 01)
    	Subsystem: LSI Logic / Symbios Logic 2P0S (2 port parallel adaptor)
    	Flags: medium devsel, IRQ 17
    	I/O ports at d800 [size=8]
    	I/O ports at d400 [size=8]
    	I/O ports at d000 [size=8]
    	I/O ports at c800 [size=8]
    	I/O ports at c400 [size=8]
    	I/O ports at c000 [size=16]
    	Kernel driver in use: parport_pc
    	Kernel modules: parport_pc
    
    Adresy, co potřebujeme, jsou ta první a ta třetí v pořadí, v případě pochybností je to neejedoduší to zkusit přímo na hardwaru, nebo nechat jádro natáhnout ovladač a kouknout se, co vypíše:
    parport1: PC-style at 0xd800 (0xd400), irq 17, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
    parport2: PC-style at 0xd000 (0xc800), irq 17, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
    
    Ty druhé jsou pro EPP/ECP a pro používaní paralelního portu jako GPIO nejsou potřeba.

    Pokud se nechcete trápit s USB obludkami, je tohle asi nejjednoduší řešení.
    Dreit avatar 27.1. 20:49 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Děkuji moc, vypadá to jako moc zajímavá možnost :-)

    Domluvil jsem, ňuf
    27.1. 21:08 Kvakor
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Ještě k tomu sériovému portu, záleží, jaký typ řízení toku umí druhá strana.

    Ta hardwarove nejjednoduší je pomocí softwaru posíláním speciálních řídících znaků XON/XOFF (0x11 a 0x13), kde XOFF znamená, zjednodušeně řečeno, "Teď nic neposílej, mám plno" a XON "Můžeš zas posílat". Tento protokol používají většinou pomalá zařízení, obzvlášť když komunikují v textovém protokolu. K připojení stačí jen tři vodiče, RX, TX a zem.

    Pak je několik variant řízení toku pomocí signálú na řízení modemu, většinou pomocí RTS+CTS (občas i DTR+DSR). Když je zařízení na druhém konci může přijímat, nastaví RTS (Ready To Send), které je připojené k vstupu CTS (Clear To Send) a naopak. Z pohledu aplikace se o to není třeba nijak, stačí to jen zapnout a ovladač udělá zbytek.

    Na připojení je třeba pět vodičů, i když teoreticky jde použít k řízení i další signály*. Hlavní výhoda je možnost použít vyšší rychlosti (než, řekněme, 9 600 baudů) a bezproblémové přenášení binárních dat. A často používaný převodník úrovní TTL<->RS232 MAX232 má právě čtyři vstupy/výstupy, takže na TX+RX+RTS+CTS to přesně stačí.

    Nevýhoda je, že různá zařízení to řeší různým způsobem, i když ve většině případu by mělo stačit jen proházet dráty. Tedy alespoň teoreticky ...

    *Například jsem viděl popis GPS přijímače, kde jeden signál indikoval 2D/3D fix (tj. získání polohy) a druhý posílal sekundové pulzy.
    Jendа avatar 27.1. 21:48 Jendа | skóre: 61 | blog: Výlevníček | Praha
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    To je neuvěřitelné, jaké obezličky se vymyslí kvůli tomu, že výrobci počítačů nejsou schopní vyvést GPIO!

    Signál se dá generovat programem siggen/sweepgen.
    28.1. 01:40 pc2005 | skóre: 29 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Současné kompy maj GPIO v čipu BIOSu...
    Nevykat; malamanteau
    Jendа avatar 28.1. 01:46 Jendа | skóre: 61 | blog: Výlevníček | Praha
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Jasně, ale to očividně není vyvedené tak, jak bychom si představovali…
    28.1. 02:07 pc2005 | skóre: 29 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Omotanej drátek? :-D

    Ještě by třeba šlo využít i2c sběrnici, co bejvá v kompu.
    Nevykat; malamanteau
    28.1. 14:59 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    I2C (pod jmenem DDC) je vyvedena v kazdem VGA a DVI portu, i kdyz v podstate jde o dva GPIO piny na kterych se I2C dela softwarove.
    29.1. 17:20 pjoter
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    No to asi zalezi jak a kde, kazdopadne ja bych si dovolil spise trvdit opak.
    28.1. 17:32 Jirka Keresteš | skóre: 12
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Pokud mas USB, tak muzes mit GPIO pinu (skoro) kolik potrebujes. Hint: FT2232 + asynchronni bitbang rezim ;-)
    A physics book seems to be a mathematician's worst nightmare.
    28.1. 03:44 Václav HFechs Švirga | skóre: 21 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Ahoj,

    protoze jsem si kdysi nejake generovani sinusovky v C napsal, tak jsem ten programek nekde vyhrabal a trosku upravil (prokrastinace :-)).

    Umi to generovat libovolne dlouhy sinus o libovolne frekvenci a amplitude na 8 bitech (sinusovka je symetricka kolem hodnoty 128 (teda az na amplitudu 128, tu v kladne casti skaluju na 127, at se to vleze do 255), vyssi amplitudy orezavam) pri vzorkovaci frekvenci 48000 Hz (ta by mohla jit zmenit) co hraje libovolny cas (i nekonecne dlouhy, i velmi kratke).

    Jako zarizeni pro komunikaci se zvukovkou to otvira /dev/dsp, tedy to nepouziva alsu a mozna to nepojede uplne vsude (ruzna pulseaudia mozna budou problem). Kdyz to zapnes, nemej pustenou zadnou jinou aplikaci co neco prehrava, pripadne to zkus pustit takhle: aoss ./program. Jinak v nejhorsim bych to asi umel prepsat i na alsu, ale kod by byl delsi :/.

    Je to spise jako priklad, nemel by byt problem si to nejak upravit, jak budes potrebovat.

    Co se pak tyce cteni, taky by to slo samozrejme vyresit ;), cetl bys navzorkovany mikrofonni vstup a s tim si uz muzes delat co chces (treba nejake zpetne fourierovy transformace ze :D) - ale s mikrofonem sem si nikdy nehral, by se muselo zas vygooglit nejake howto :).

    Tady je zdrojak:
    /* Generovani sinusovky */
    /* Autor: Vaclav Svirga */
    /* (tedy az na nastaveni zvukovky, to uz nevim z jakeho tutorialu sem vykrad) */
    /*
     DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                        Version 2, December 2004
    
     Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
    
     Everyone is permitted to copy and distribute verbatim or modified
     copies of this license document, and changing it is allowed as long
     as the name is changed.
    
                DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    
      0. You just DO WHAT THE FUCK YOU WANT TO. 
    */
    
    #include <unistd.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/ioctl.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <linux/soundcard.h>
    #include <math.h>
    
    //Uzivatelske konstanty
    #define D_AMP 128  //defaultni amplituda (0 - 128, vyssi amplitudy se orezou)
    #define D_FREQ 440 //defaultni frekvence (Hz)
    #define D_TIME -1  //defaultni delka hrani (v sekundach)
                       //klidne to muze byt desetinne cislo, ale nejmensi casovy usek je
                       //delka jedne periody sinu * (N + 10), kde N je pocet period
                       //aby se to presne vlezlo do poctu vzorku (aby sinusovka navazovala)
                       //Pro NEKONECNO jde zadat -1
    
    //Nejake interni konstanty, nemenit az na vzorkovaci frekvenci
    #define RATE 48000   // the sampling rate
    #define SIZE 8      // sample size: 8 or 16 bits - jen pro nastaveni zvukovky */
    #define CHANNELS 1  // 1 = mono 2 = stereo - jen pro nastaveni zvukovky
    #define LENGTH 20 //max delka bufferu v sekundach
    
    unsigned char buf[LENGTH*RATE*SIZE*CHANNELS/8]; //jednosekundovy buffer
    
    //Pomocna funkce pro vytvoreni sinu s patricnou amplitudou ve stupnich
    //x je uhel, a je |amplituda|, nula sinusovky je ve 128
    //Pri amplitude 128 se pro kladnou cast dela amplituda 127, aby se vysledek vesel na 8 bitu
    //    tedy je sinus nesymetricky
    //Pri vyssich amplitudach se sinus orezava na 8 bitu
    int sinus(int x, int a)
    {
      if (a==0) return 0;
      x %= 360;
      int ret = sin((M_PI * 2.0 * x) / 360.0) * ((x<= 180 && a == 128) ? 127 : a) + 128;
      if(ret > 255) ret = 255;
      if(ret < 0) ret = 0;
      return ret;
    }
    
    int main(int argc, char *argv[])
    {
      //Nejaka magie pro otevreni zvukovky
      int fd;  /* sound device file descriptor */
      int arg;  /* argument for ioctl calls */
      int status;   /* return status of system calls */
      /* open sound device */
      fd = open("/dev/dsp", O_RDWR);
      if (fd < 0) {
        perror("open of /dev/dsp failed");
        exit(1);
      }
      /* set sampling parameters */
      arg = SIZE;     /* sample size */
      status = ioctl(fd, SOUND_PCM_WRITE_BITS, &arg);
      if (status == -1)
        perror("SOUND_PCM_WRITE_BITS ioctl failed");
      if (arg != SIZE)
        perror("unable to set sample size");
      arg = CHANNELS;  /* mono or stereo */
      status = ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &arg);
      if (status == -1)
        perror("SOUND_PCM_WRITE_CHANNELS ioctl failed");
      if (arg != CHANNELS)
        perror("unable to set number of channels");
      arg = RATE;     /* sampling rate */
      status = ioctl(fd, SOUND_PCM_WRITE_RATE, &arg);
      if (status == -1)
        perror("SOUND_PCM_WRITE_WRITE ioctl failed");
    
      //nacteni parametru
      int f = D_FREQ, amp = D_AMP, i;
      float time = D_TIME;
      if (argc > 1) f = atoi(argv[1]);
      if (argc > 2) amp = atoi(argv[2]);
      if (argc > 3) time = atof(argv[3]);
      printf("Hrani sinusovky na /dev/dsp\n"
             "Pokud vam to nehraje, nebo chcete softwarovy mixer, zkuste to pustit s aoss ./program\n\n"
             "Frekvence je:    %6i Hz \t(mozne zadat jako 1. arg)\n"
             "Amplituda je:    %6i    \t(mozne zadat jako 2. arg, idealne 0 - 128, vyssi amp se orezou, 128 je 127 pro kladnou cast)\n"
             "Delka hrani je:  %3.3f s\t(mozne zadat jako 3. arg (i des. cislo), -1 je nekonecno)\n", f, amp, time);
      if(f <= 0 || amp < 0) exit(1);
      
      //Spocitame kolik amplitud sinusovky se nam PRESNE vleze do vzorkovaci frekvence + 10
      //Je to nutne proto, aby sinusovky hezky navazovaly na sebe a buffer nebyl prilis kratky
      //Pokud by se to nesplnilo, nemuselo by to hrat pekne ;]
      int count_amp = 10;
      while ((RATE * count_amp) % (f) != 0) count_amp++;
      
      //Spocitame delku vsech amplitud ve vzorcich
      int size_amps = (RATE * count_amp) / (f);
      int s;
      
      //vygenerujeme buffer se vzorky sinu
      for (i = 0; i < size_amps + 1; i++)
      {
        s = sinus((360.0 * count_amp * i) / size_amps, amp);
        buf[i] = s > 255 ? 255 : s;
      }
     
      //zahrajeme sinusovku :)
      float remain = (RATE * time) / size_amps - (int) ((RATE * time) / size_amps);
      //budeme prehravat buffer tak dlouho, aby jsme hrali pozadovany cas
      for(i = 0; time < 0 ? 1 : i < (int) ((RATE * time) / size_amps); i++)
      {
        status = write(fd, buf, size_amps);
      }
      //A nakonec prehrajeme zbytek do pozadovaneho casu, nalezite osekly
      status = write(fd, buf, size_amps * remain);
    }
    
    Přeložíš to takhle: gcc -lm -o program program.c a pustis treba takhle:

    ./program

    (bude hrat porad komorni a pri amplitude 128)

    nebo

    ./program 200 10 0.5

    (pul sekundy 200 Hz pri amplitude 10)

    nebo

    ./program 200 10 -1

    (nekonecne dlouho 200 Hz pri amplitude 10).

    Zbytek informaci je v komentarich a napovede co to vypise pri spusteni...
    Podporuji Českou pirátskou stranu | Nový počítač a už ne gentoo :-)
    28.1. 03:50 Václav HFechs Švirga | skóre: 21 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Příloha:
    Sakra, radek 118 je tam zbytecne, zbylo z predchoziho prepisovani, cely ten cyklus by mel byt
      //vygenerujeme buffer se vzorky sinu
      for (i = 0; i < size_amps; i++)
      {
        buf[i] = sinus((360.0 * count_amp * i) / size_amps, amp);
      }
    Ale funguje to stejne :-).

    No pro vetsi pohodli prikladam zdrojak do prilohy.
    Podporuji Českou pirátskou stranu | Nový počítač a už ne gentoo :-)
    28.1. 03:52 Václav HFechs Švirga | skóre: 21 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    A jeste tam nezaviram soubor :'-(, nakonec si muzes pridat fclose(fd);, ale to taky nema na nic vliv ;)... Os zavre, Os je hodny :-).
    Podporuji Českou pirátskou stranu | Nový počítač a už ne gentoo :-)
    28.1. 04:01 Václav HFechs Švirga | skóre: 21 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Hmmm a posledni malickost co tam vidim, komentar u konstanty D_TIME (default time), ze cas muze byt nejmene *neco* keca, cas muze byt libovolny, to platilo predtim nez sem to vylepsil a poslal sem :-). Neco na tom, ze komentare zastaravaji, bude :-D. Porc clovek vzdycky na ty chyby prijde az to "odevzda"? :P
    Podporuji Českou pirátskou stranu | Nový počítač a už ne gentoo :-)
    28.1. 04:04 Václav HFechs Švirga | skóre: 21 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    A kdyby to jeste nekdo moc zkoumal, mam tam v komentari frazi "kolik amplitud se vleze do..." a melo to byt "kolik period se vleze do"... chjo :/, to je tim ze jsou 4 rano ;]... uz ten soubor zaviram, nebo z toho zesedivim, dulezite je, ze to dela co ma (aspon doufam) :).
    Podporuji Českou pirátskou stranu | Nový počítač a už ne gentoo :-)
    Dreit avatar 28.1. 15:18 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Teda, díky moc za vlákno příspěvků, určitě se to bude hodit :-)  I když spíš koukám po sox, i tak - bude se mi to hodit minimálně v případě, kdybych se učil programovat v C ;-)

    Domluvil jsem, ňuf
    28.1. 16:36 Václav HFechs Švirga | skóre: 21 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Není zač :-),

    ono z blogu jsem pochopil že ten počítač má ten tvůj stroj nějak řídit a to řízení by šlo v C napsat celé, tedy že by to ten C program krom generování toho pískotu četl třeba ten mikrofon a podle přijmaných dat by něco dělal :). Akorát by se to muselo napsat vícevláknově. Zaujalo mě to, protože audio vstup / výstup je celkem hezké analogové rozhraní dostupné na každém pc do nějakých, dejme tomu, 10 kHz a využití pro takové účely je dost zajímavý nápad :).
    Podporuji Českou pirátskou stranu | Nový počítač a už ne gentoo :-)
    Dreit avatar 28.1. 18:20 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Pochopeno správně :-)  Snažím se použít naprosto nejjednodušší principy, jestli se k tomu jednou dokopu, tak to pojede jednovláknově a pokudmožno chci aby všechno šlo zrealizovat v Bashi. A proč to dělám? Protože můžu :-)  A protože neumim s C :-D

    Děkuji, obecně analog bych pořád cpal kamkoli to jde, asi je to můj osud :-D

    Domluvil jsem, ňuf
    Bystroushaak avatar 28.1. 16:53 Bystroushaak | skóre: 16 | blog: Bystroushaakův blog | Litoměřicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Hm. Kdysi jsem měl v plánu udělat systém pro duplexní přenos dat zvukem, protože mi taky došlo že zvukovka je to jediné, co dnes mají všechny počítače. Nakonec to padlo na kombinaci lenosti a nepochopení FFT (ne že bych to neuměl použít, ale matematicky jsem to moc nepobral).

    Pár linků k tématu:
    Poté, co mi došlo, že nejsem génius, rozhodl jsem se zešílet. ## České stránky o programovacím jazyce D
    Dreit avatar 28.1. 18:23 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Děkuju moc za hromadu linků, rychle jsem na to kouknul a zaujalo mě to :-)  Hlavně programování Andruina přes zvukovku :-D   Jestli někdy programovat mikročipy, tak chci jít rozhodně do AVR ;-)

    Domluvil jsem, ňuf
    28.1. 21:51 pc2005 | skóre: 29 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Všichni zapomínaj na Bellarda :-(.
    Nevykat; malamanteau
    Bystroushaak avatar 29.1. 02:46 Bystroushaak | skóre: 16 | blog: Bystroushaakův blog | Litoměřicko
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Hah, o tom jsem ani nevěděl, přesto že Bellard je jeden z mých oblíbenců :D S tím jeho javascriptovým emulátorem x86 jsem si docela vyhrál, udělal jsem pro něj implementaci textové life a packer co zabalí data sám do sebe (.sh soubor), takže je můžeš různě přenášet pomocí toho clipboardu tam :)
    Poté, co mi došlo, že nejsem génius, rozhodl jsem se zešílet. ## České stránky o programovacím jazyce D
    Grunt avatar 28.1. 23:11 Grunt | skóre: 17 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Přílohy:
    Absolutně nesouhlasím. Od komunikace se zařízeními tu máme jiné výstupy. Že se z PC stala víc spíš kolíkovačka pro pár spotřebních krámů místo obecného kontroleru, za to už nemůžu. Nepoužívej x86. Na takové věci je to GPIO a pár jiných sběrnic. Kupodivu i blbé Spektrum jakožto ikona spotřebního zboží z oblasti mělo obecný vstupně/výstupní interfejs na bastlení a pro komunikaci s okolím. Zvuková karta samozřejmě není nic jiného než DAC/ADC jako každý jiný, ale v tomhle ohledu je trošku specifický. Základ je Resistor ladder nebo 1-bitová oversamplovaná Delta-sigma, jenže pak následuje kaskáda specifických filtrů (zvlášť u toho 1-bitu je to docela drsné) a celkově je to ke komunikaci docela komplexní zařízení. Nehledě na to, že spousta zvukovek má nějaké vyrovnávací buffery a na nějaký real-time se hraje jen těžko. Komunikaci skrze zvukové porty už jsem si samozřejmě v minulosti zkoušel, je to nosná platforma jako každá jiná, ale jinak nic moc. Je tu spousta jiných zajímavých alternativ. Ani co do parametrů to nevypadá se zvukem moc zajímavě. V minulosti se to používalo (viz některých z mých zápisů v minulosti) právě skrze zmiňované modulace, ale jinak je právě zvukovod víc náchylný ke zkreslování a chytání různých šumů, takže by si ještě ke všemu musel řešit i nějakou korekci chyb, započetí přenosu (na pulzní ovládání krokáče prosím zapomeň rovnou), atd. Celkově se to stává nezajímavým. Jinak já si ze zvukovky udělal aspoň spektrální analyzátor (viz přílohy — konkrétně měřím vyfiltrovaný tvar výstupního střídavého proudu z UPSky který ho střídá pomocí PWM), ale doporučuju si ho radši koupit (já si to můžu dovolit, já jsem chudý :-)) C se nauč. Celé je to jen o tom co budeš rvát funkci sinus. Zatím jsem byl ještě líný se naučit pracovat s knihovnami ALSy a řeším to skrze buffer, write(1, buffer, VELIKOST_BUFFERU) a pípu do aplay/arecord, ale i tak je to na pár řádků.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    29.1. 00:39 pc2005 | skóre: 29 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    IMG099.jpg
    Žádnej průběh nevidím, ale máte hezkej vchod do baráku ;-). Jinak pozor, mám za to, že jsem si spekrálním analyzérem ze zvukovky odpálil zvukovku.
    Nevykat; malamanteau
    Grunt avatar 29.1. 13:01 Grunt | skóre: 17 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Žádnej průběh nevidím, ale máte hezkej vchod do baráku
    No jo. Debilní lesklé obrazovky. To nahoře je waveform, ten Gauss je okno a to pod tím je spektrogram. Čím víc vpravo, tím vyšší frekvence a osa směrem dolů je čas. Původně to byly skoro schodky, proto tolik čar za sebou i ve vyšších frekvencích (jsou to harmonické).
    Jinak pozor, mám za to, že jsem si spekrálním analyzérem ze zvukovky odpálil zvukovku.
    Musíš kontrolovat kolik ti tam leze energie. Dobré jsou takové ty trafa co se dají šroubovákem přizpůsobit.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    29.1. 13:24 pc2005 | skóre: 29 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    To nahoře je waveform, ten Gauss je okno a to pod tím je spektrogram. Čím víc vpravo, tím vyšší frekvence a osa směrem dolů je čas. Původně to byly skoro schodky, proto tolik čar za sebou i ve vyšších frekvencích (jsou to harmonické).
    Stačí napsat Baudline to mluví samo za sebe :-D. Dobrej soft.

    No já jsem jen sondoval přijímač FSK 868MHz s napětím 5V max. Ale je fakt, že ta zvukovka už byla načatá.
    Nevykat; malamanteau
    Grunt avatar 29.1. 13:30 Grunt | skóre: 17 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    No já jsem jen sondoval přijímač FSK 868MHz s napětím 5V max
    Na to už bude potřeba nějaká elektronika, že? Já to zkoušel jen na jednoduchý R-C filtr.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    29.1. 13:42 pc2005 | skóre: 29 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Ani ne, to FSK je na tom modulu v odkrytých signálech v CMOS logice.
    Nevykat; malamanteau
    29.1. 19:04 w4rr10r
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    Moje sotva rok staré PC má LPT, GamePort a nevyvedený COM. Někde je chyba.
    Dreit avatar 29.1. 20:14 Dreit | skóre: 9 | blog: Dreit a jeho dračí postřehy | Lázně Bělohrad
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty

    Mám cca 2 roky, má COM, LPT přes bracket (za stovku) a GamePort leda kdybych se postavil na hlavu, stáhnul všechnu dokumentaci k desce, připájel konektor a napsal si ovladač.

    Domluvil jsem, ňuf
    30.1. 16:15 w4rr10r
    Rozbalit Rozbalit vše Re: Čtení dat z RS-232 / zvukové karty
    GamePort byl AFAIK vždycky na zvukovce. Zvukovku s GamePortem do PCI dneska pořídíš za pár stovek.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   Powered by Hosting 90 Server hosting
    © 1999-2012 Argonit s. r. o. Všechna práva vyhrazena.