Ovládání hardware z PC

vyvojář

Ovládání hardware z PC
« kdy: 26. 12. 2012, 00:31:36 »
Chtěl bych si vyzkoušet udělat nějakou blbinu a naprogramovat si k tomu do linuxu ovladač, ale moc nevím, co vše bych musel vlastně řešit. Řekněme, že bych si koupil nepájivý pole, jeden demultiplexor a nějaké diodky. Demultiplexor na základě hodnoty na adresových vodičích posílá na daný výstupní vodič vstupní signál.

Takže si říkám, že bych na výstupní vodiče demultiplexoru připojil ty ledky a pak bych chtěl z pc určovat hodnotu na těch adresních vodičích, co by mělo svítit. Asi u tohohle by zrovna nebyl ten problém, ale říkám si, kdybych měl něco složitějšího, jak se vlastně potom řeší třeba ten hodinový signál? Nebo když bych měl jednu ledku a chtěl bych, abych ji mohl rozsvěcet a zhasínat z pc, tak jak bych zařídil, abych tam dodával pořád napětí, aby svítila pořád?

Hodil jsem si do googlu jak psát ovladače pro linux a tam byla nějaká funkce outb, tak tím bych tu ledku asi rozsvicel, ale to bych to musel volat tu funkci pořád, ne? Jinak jsem na fitu ve druháku, máme tam předměty jako např. návrh počítačových systému, návrh číslicových systému, vím co to je demultiplexer, multiplexer, ..., ale vůbec nevím, jak bych z toho měl vlastně něco udělat, dá se to vůbec , nebo bych musel jít třeba na FEL?
« Poslední změna: 26. 12. 2012, 23:28:39 od Petr Krčmář »


KapitánRUM

Re:Ovládání hw z pc.
« Odpověď #1 kdy: 26. 12. 2012, 00:57:24 »
S tímhle jsem si hrál poprvé na Gymplu ve 12-ti, sice jsem nevěděl, co to je Multiplexer a Demultiplexer, ale ledky mi blikaly a ovládal jsem   s tím i poměrně složitý věci :P Jinak otázka je položená asi jako "Mám převodovku, vím co to je převodovka, jak z toho udělám auto?"  ;D

KapitánRUM

Re:Ovládání hw z pc.
« Odpověď #2 kdy: 26. 12. 2012, 01:06:18 »
Abych nebyl tak krutej:

A) Musíš se rozmyslet, jaké rozhraní pro komunikaci s tím zařízením použiješ, nejjednodušší je asi seriový port.
http://www.hw.cz/rozhrani/hw-server-predstavuje-seriova-linka-rs-232.html#programovy_model
Viz Google: RS232

B) Pak musíš vědět, jaký jazyk pro komunikaci s tím zařízením chce použít, asi bych řekl že C++
http://cboard.cprogramming.com/networking-device-communication/119973-rs232-serial-port-library-linux-windows.html
http://www.easysw.com/~mike/serial/serial.html
Viz Google: RS232+ "C++" +Linux

C) Pak se ti hodí vědět nějaké elementární věci o elektronice:
http://knihy.heureka.cz/elektronika-tajemstvi-zbavena-3-pokusy-s-cislicovou-technikou/specifikace/#section
Nejlíp si na to najít knížku, ale nehledej je na nahraj.to, není to správné.

D) Naučit se takovou věc, jako je třeba formulace otázky.

Kazatel

Re:Ovládání hw z pc.
« Odpověď #3 kdy: 26. 12. 2012, 10:23:46 »
Otázkou taky je, jestli máš už s HW nějaké zkušenosti a jak moc to myslíš vážně. Docela slušně si můžeš ze začátku vyhrát s Arduinem, TI Lunchpadem, případně Raspberry PI.. Případně se na studijním na FITu optej na možnost zapsání předmětu z FELu, co by tě zajímaly (nejspíš pár věcí z kybery, na výpočetce se tohle moc nejede co vím z osobní zkušenosti).

3ugeene

Re:Ovládání hw z pc.
« Odpověď #4 kdy: 26. 12. 2012, 10:51:49 »
physical computingem se zabyvam relativne dost uz par let a zacinal jsem na tom, ze jsem na seriovym portu jednotlive ovladal piny (= 3 vystupy a asi 4 vstupy) to same pak paralelni port. Na takovy blbnuti jsou super knizky od B. Kainky Vyuziti rozhrani PC a Vyuziti rozhrani PC pod Windows...

V dnesnich dobach jsem uz trosku chytrejsi a pouzivam seriovej port jako standardni RS232 rozhrani pro komunikaci tak, jak bylo navrzeno a jako komunikator s okolim pouzivam arduino, do kteryho nahraju standardni firmata, ktera z arduina udela jakysi most mezi okolnim svetem a PC s moznosti digitalnich vstupu a vystupu, analog. vstupu a vystupu ci sbernice i2c - vic mi vicemene staci... Knihovna fiirmata je navic univerzalni a je delana pro kvanta jazyku - posledni tyden treba blbnu s firmata na node.js

nevim co presne chces delat, ale chapiu asi dobre, ze je to jen nejaka blbustka a kvuli ni se chystat na psani driveru pro jadro je podle me blbost...


Re:Ovládání hw z pc.
« Odpověď #5 kdy: 26. 12. 2012, 11:04:05 »
[offtopic - nic osobního]
Ach jo, tohle je přesná ilustrace toho, co nesnáším na našem školství - napereme do nich jakési pojmy, se kterými pak budou moci šermovat, ale všeobecný přehled v oboru, propojení všeho a ukázka, jak se to vlastně používá, na to už nám nezbyl čas :(((
[/offtopic - nic osobního]

Co se týče přímého ovládání z počítače z normálního OS, tak k tomu nepotřebuješ psát drivery, stačí použít sériový nebo paralelní port a používat normálně přes soubory v /dev. Ale maximum, co s tím rozumně dosáhneš, je blikání s ledkou nebo třeba zapínání nějakých relé, generování analogového signálu apod. Tam tě nějaká ta milisekunda nezajímá. O nic víc v podstatě nemá smysl se snažit, protože pokud nemáš realtime OS, nedosáhneš správného časování i kdyby ses na hlavu postavil.

Takže na cokoli víc je nejlepší použít nějaký ten mikrokontroler, kterému budeš posílat jenom povely typu "zapni ledku 1", "posílej na výstup 2 hodinový signál s frekvencí 50kHz" apod. a to přesné časování už budeš řešit v tom mikrokontroleru, kde toho dosáhnout jde (např. i maličký čip ATtiny za asi 50Kč je schopný *softwarově* emulovat USB1 a s časováním celkem nemá problém). Mikrokontroler můžeš programovat v C/C++, takže žádný megahardcore to není. Existuje spousta knihoven, která z toho programování dělá v celkem trivialitu.

Co se týče výběru toho mikrokontroleru, AVR od Atmelu je asi docela dobrá volba, pokud nemáš důvod volit něco jiného. Já osobně bych spíš než Arduino doporučil JeeNode, který je postavený na stejném čipu (takže se programuje stejně, jsou k dispozici stejné knihovny), ale má tu výhodu, že výstupy jsou pěkně uspořádané tak, že můžeš připojovat různá zařízení a hezky je řetězit za sebe nebo vedle sebe, což s Arduinem dost dobře nejde. Nevýhodou je menší portfolio zařízení a trochu vyšší ceny (Číňani zatím JeeNode neobjevili...)

Stačí si koupit JeeLink (bezdrátový USB dongle) a jeden JeeNode - a můžeš krásně z PC ovládat cokoli bezdrátově.
Koukni: http://jeelabs.com/collections/all

Nebo pokud chceš co nejlevnější věc, tak asi tohle: http://dx.com/p/nano-v3-0-avr-atmega328-p-20au-module-board-usb-cable-for-arduino-118037

Ge Bu

Re:Ovládání hw z pc.
« Odpověď #6 kdy: 26. 12. 2012, 11:19:57 »
Já nevím, jestli je to školstvím. Myslím, že je tak nastavená společnost. Rozkejvat dětičky k něčemu navíc - k tomu je potřeba nadlidská síla. Nejhorší předměty: praxe (kde se musí pájet) a měření (kde se musí nejen něco zapojit, ale ještě taková hrůza jako přemýšlet). Hlavně nechtít po nikom, aby věcem rozuměl - namalujte obrázky a zmizte.

[offtopic - nic osobního]
Ach jo, tohle je přesná ilustrace toho, co nesnáším na našem školství - napereme do nich jakési pojmy, se kterými pak budou moci šermovat, ale všeobecný přehled v oboru, propojení všeho a ukázka, jak se to vlastně používá, na to už nám nezbyl čas :(((
[/offtopic - nic osobního]

Jose D

  • *****
  • 889
    • Zobrazit profil
Re:Ovládání hw z pc.
« Odpověď #7 kdy: 26. 12. 2012, 13:11:10 »
Ahoj,

rozmysli si, na co to budes pouzivat.

a) jen na hrani - asi bych otevrel PCko, a kouknul se, jestli na MB neni vyvedeny paralelni LPT port. Ten je na takove to domaci hrani asi nejjednodussi na pouziti. Pokud tam bude, nechaji se koupit brackety, kterymi port vyvedes ven z case.
Z PC periferii se da jeste rozumne bastlit s seriovym portem, nebo PS2, u kteryho jsi ovsem omezeny v podstate jednosmernou komunikaci. Vytvaret si vlastni PCI(E) device je nerealny, USB device bez dedikovanyho obvodu taky neni trivialni, o SATA nemluve. Proste PC uz je technologicky dneska o par levelu dal, nez je domaci bastlic. Proto bych spis doporucil bod b) :))

b) na nejake to serioznejsi ovladani - koupil bych nejaky linuxovy ARM/cokoliv board s ethernetem a vyvedenym GPIO. - Treba raspberry pi. Po ethernetu, resp. SSH so budes s Rpi povidat, a samotne Rpi ma dost ruznych vstupne/vystupnich pinu, na ktere se da rozumne sahat jak z C/C++, nebo pomoci knihoven treba primo z BASHe. A na piny uz muzes povesit LEDek, nejakych multiplexeru atd kolik budes chtit. Kdybys s tim Rpi potreboval poradit, klidne se tu ptej, myslim ze mimo me je tu dost lidi, kteri uz ho maji trochu v ruce.

marwyn

Re:Ovládání hw z pc.
« Odpověď #8 kdy: 26. 12. 2012, 13:16:48 »
Nejlíp si na to najít knížku, ale nehledej je na nahraj.to, není to správné.

No nekecej, a odkdy? Musí si to teda vypůjčit v knihovně a doma oskenovat, aby to bylo v pořádku? Neupadnuls náhodou po tom rumu na hlavičku?

KapitánRUM

Re:Ovládání hw z pc.
« Odpověď #9 kdy: 26. 12. 2012, 14:06:47 »
Já nevím, jestli je to školstvím. Myslím, že je tak nastavená společnost. Rozkejvat dětičky k něčemu navíc - k tomu je potřeba nadlidská síla. Nejhorší předměty: praxe (kde se musí pájet) a měření (kde se musí nejen něco zapojit, ale ještě taková hrůza jako přemýšlet). Hlavně nechtít po nikom, aby věcem rozuměl - namalujte obrázky a zmizte.

[offtopic - nic osobního]
Ach jo, tohle je přesná ilustrace toho, co nesnáším na našem školství - napereme do nich jakési pojmy, se kterými pak budou moci šermovat, ale všeobecný přehled v oboru, propojení všeho a ukázka, jak se to vlastně používá, na to už nám nezbyl čas :(((
[/offtopic - nic osobního]

Oba máte pravdu, hrozný!
Za to může naše společnost, kdy papaláši si vlastně nepřejí, aby člověk přemýšlel.
Televize nechce, abys přemýšlel.
Film vlastně nechce, abys přemýšlel.
Řada počítačových her je udělaná tak, aby člověk nepřemýšlel.
ATD..

Knížku můžeš odložit a zamyslet se nad těma blbostma co ten člověk píše a pak pokračovat.
Zastavovat film je řekněme neobvyklé a v televizi to ani nejde.
Otázka je, jestli je pak ještě na místě to označení "homo sapiens sapiens"  ::)

DZOLO

Re:Ovládání hw z pc.
« Odpověď #10 kdy: 26. 12. 2012, 15:14:43 »
Ve třeťáku budeš podobné věci dělat v laboratořích předmětu IMP (http://www.fit.vutbr.cz/study/course-l.php.cs?id=107). Dále si třeba zapiš volitelný ITP (http://www.fit.vutbr.cz/study/course-l.php.cs?id=242). Pokud se ti nechce čekat, nějaké záznamy jsou z přednášek a demo cvičení IMP jsou na video serveru ;-).

Re:Ovládání hw z pc.
« Odpověď #11 kdy: 26. 12. 2012, 15:21:53 »
Ve třeťáku budeš podobné věci dělat v laboratořích předmětu IMP (http://www.fit.vutbr.cz/study/course-l.php.cs?id=107).
Jestli on není spíš na FIT ČVUT, když se zmiňuje o FEL :)

Re:Ovládání hw z pc.
« Odpověď #12 kdy: 26. 12. 2012, 15:33:15 »
To mi nedošlo, omlouvám se.

vyvojar

Re:Ovládání hw z pc.
« Odpověď #13 kdy: 26. 12. 2012, 19:37:05 »
Díky všem, na vše se postupně podívám. Jinak jsem na VUT, ani nevím, proč jsem nezmínil spíš FEKT. Mě zajímá spíš ta možnost ovládání HW z PC, respektive programování driverů, mikrokontrolerů,.... Mám hrozně rád jazyk C a C++ a tohle mi přijde tak nějak sexy :D. Vždycky jsem si představoval, jak si budu sestavovat různý hw, do kterého pak budu cpát embedded linux a bude mi to ovládat co já vím třeba stahování rolet u oken nebo cokoliv :). Nejdál jsem se ale zatím dostal tam, že jsem se nějak pokoušel si naprogramovat vlastní jednoduchý OS a k tomu nějaké ovladače, třeba na klávesnici, ale ani už nevím, kde jsme se zasekl, asi už někde u teorie :)

Re:Ovládání hw z pc.
« Odpověď #14 kdy: 27. 12. 2012, 00:01:51 »
Tak jestli jsi na VUT, tak to nemáš daleko do Blanska, takže pokud bys chtěl, můžeš se za náma stavit na http://un-xovani.gosw.cz - momentálě si právě s mikrokontrolerama hrajeme, takže pomocná ruka by k dispozici byla a fantazii se meze nekladou :)
Termíny na leden ještě dohodnuté nemáme, ale kdybys měl zájem, můžeš se buť ozvat na kontaktní mail, nebo tu stránku sledovat, kdy se tam nějaký termín objeví. Nemělo by to dlouho trvat, ale obvykle to tam dávám na poslední chvíli :)