Příští týden bude mít premiéru film Wicked (Čarodějka). Společnost Mattel připravila k filmu sadu panenek Wicked. Na jejích obalech měl být webový odkaz na stránky filmu. Je tam ale odkaz na stránky pro dospělé. V adrese wickedmovie.com jim vypadlo slovo movie. Společnost Mattel se omlouvá (CNN).
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již pátý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 7.20. Nově s podporou architektury Loongson LoongArch.
PHPStan (PHP Static Analysis Tool), nástroj pro statickou analýzu a hledání chyb v PHP kódu, byl vydán ve verzi 2.0. Po třech letech od vydání verze 1.0. Podrobný přehled novinek v poznámkách k vydání na GitHubu.
Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.10.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest (Wikipedie) před měsícem přejmenovaný na Luanti.
Vyšla nová verze open source ticketovacího nástroje Redmine 6.0.0. Tato verze přináší 146 vylepšení a oprav. Došlo k vylepšení UI, upgrade na Rails 7.2 a Ruby 3.3, byla provedena integrace asset pipelines s Propshaft a mnoho dalšího, viz kompletní changelog.
Firefox slaví 20 let (YouTube). Verze 1.0 byla vydána 9. listopadu 2004.
Z proprietárního světa: Přijdete ráno do práce a zjistíte, že všechny Windows Servery byly neplánovaně automaticky upgradovány z verze 2022 na verzi 2025.
Byl vydán Debian 12.8, tj. osmá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Standard Matter (Wikipedie, GitHub), původně Project Connected Home over IP (CHIP), pro propojení IoT a domácí automatizaci byl vydán ve verzi 1.4.
Dear princess Luna....
Bude to znít podivně, ale mám několik nápadů na externí zařízení připojitelná k PC pro vyhodnocování dat. Problémem je, že netuším jak číst data.
Nejdříve popíšu můj názor na věc:
- Paralelní port - Velmi oblíbený port pro tisk či ovládání CNC fréz (i naše záložní školní která je právě v rekonstrukci ho používá), bohužel v dnešní době díky omezenosti výrobců desek již vyhynulý.
- Sériový port - Dříve používaný pro připojení modemů, ale doteď je hojně používán pro programování automatů PLC, existují funkční převodníky z USB bez větších latencí.
- Gameport - Dávno vyhynulý a přesto neskutečně zajímavý (jestli se nepletu, tak dokázal zpracovávat i analogové vstupy - třeba aktuální polohu frézy).
Bohužel žádný z těchto portů na dnešních strojích již nenajdete, sériový port se (na stolních strojích) drží tesáky drápy, ale mám pocit, že věčně tu nevydrží.
Mým hlavním cílem u mých projektů je zajistit, aby funkce nebyla omezená "technologicky" v takovém smyslu, že moje zařízení půjde připojit JEN na množinu N počítačů. Ovládací software může přepsat a rozšířit kdokoli, ale dodatečně připájet konektory nedokáže na desku bez cest ani Chuch Norris.
Při poslouchání muziky mi po chvíli došlo, že hudbu nezačneme snad nikdy nenávidět....a vzpomněl jsem si na kdysi populární ZX Spectrum. Zvuková karta tu byla, je a ještě dlouho bude.
Nějakou dobu jsem hledal sinusový generátor pro GNU/Linux, ale nic co by pořádně fungovalo jsem (ano, píše se rok 2012!) nenašel. Speaker-test obsažený v ALSA dokáže sice generovat sinus, ale ať nastavím hodnoty jakkoli, nikdy netrvá takovou dobu, kterou si nastavím, vždy jen něco pod dvě vteřiny. Nakonec jsem si v Audacity vytvořil vzorky sinusových signálů o různých frekvencích. Frekvencí je celkem 11, ovšem výstup je sedmibitový, pro mě dostačující (4 vzorky spouštějí najednou dva sousední výstupy). Při vzorkování 96K mají soubory velikost v jednotkách KB a proto se není čeho obávat.
Externí zařízení připojené k PC by mělo pomocí frekvenčních filtrů a komparátorů spínat jeden (dva) ze svých výstupů.
Tímto se dostávám k jádru pudla.
Snad každý opravdu přesný a funkční přístroj vyžaduje zpětnou vazbu. Co to je? To je něco, bez čeho se žít dá, ale život se hodně znesnadňuje. V mém případě by externí zařízení k PC stálo možná více jak dvojnásobek svojí ceny při NEpoužití zpětné vazby.
Po první kapitole o portech je asi jasné, kterým "portem" chci zrealizovat zpětnou vazbu, teda dostávat data do Debianu.
Mikrofoní a Line vstupy obsahuje snad každá zvuková karta. V mém případě potřebuji jen počítat impulzy. Nešla by k tomu využít právě zvuková karta? Nemá někdo tip na program, který dokáže číst úroveň signálu na vstupu zvukové karty a vypisovat třeba tečku při překročení nastavené hodnoty? Tímto by se zajistila zpětná vazba u mého prvního projektu, který je na toto docela choulostivý. Původní plány byly kompletně bez zpětné vazby a i taková zařízení jsou funkční. Ovšem v mém případě bych v zájmu úspor zpětnou vazbu ocenil, neboť narozdíl od školní CNC frézy řízené přes paralelní port je leccos jinak.
Dalším vstupem (vhodným pro jiný projekt) je sériový port, připojený případně přes USB převodník. Chápu že na sériový port musím posílat data určitou rychlostí, číst je bych měl taky dokázat, ovšem jak je oddělit? Když mám sériový port nastavený jako osmibitový bez parity a budu chtít 2x po sobě poslat 8 bitů, jak to mám udělat? Poslat prvních 8 bitů, počkat dalších (minimálně) 8 bitů a poté posílat další? A může sériový port na jednom ze svých pinů poslat impulz typu "Tlač sem další data, jsem ready"?
Toť pro mě nepřekonatelný problém. Je to tak nebo není?
Pokud mi někdo vysvětlí jak je to vlastně s tím sériovým portem a jestli jdou počítat impulzy přes zvukovou kartu, budu tomu tvorovi velmi zavázán
Leckteré pasáže mohou vypadat jak vytržené z kontextu, od pondělí jsem pořádně nespal (je pátek) a právě se to chystám dohnat. Předem díky všem
Tiskni Sdílej:
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).
xoscope
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í
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í
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
jen nezapomeňte, že jsou tam kondenzátory a projdou jen impulzy - žádné delší úrovně v 0 nebo 1Menšestr nebo podobná modulace. Tohle nevím v jakém je stavu.
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_pcAdresy, 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í.
Děkuji moc, vypadá to jako moc zajímavá možnost
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.
/* 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...
//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.
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
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ěkuji, obecně analog bych pořád cpal kamkoli to jde, asi je to můj osud
Děkuju moc za hromadu linků, rychle jsem na to kouknul a zaujalo mě to Hlavně programování Andruina přes zvukovku Jestli někdy programovat mikročipy, tak chci jít rozhodně do AVR
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.
Žádnej průběh nevidím, ale máte hezkej vchod do barákuNo 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.
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 . 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á.
No já jsem jen sondoval přijímač FSK 868MHz s napětím 5V maxNa to už bude potřeba nějaká elektronika, že? Já to zkoušel jen na jednoduchý R-C filtr.
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č.