A pak ještě jedna věc: Zapisovat přímo na port 0×378 je velice nešikovný přístup. V dobách DOSu to bylo OK, ale na Linuxu je daleko lepší využít už nachystaných ioctl() a program bude fungovat i na paralelním portu připojeném v USB (takový ten převodník asi za 400Kč) nebo i na druhém a třetím portu. Prostě na všem co vidí jádro.
Doporučuju kouknout do adresáře Documentation ve zdrojácích jádra, je to tam hezky popsané a po vhození odpovídajících symbolů do googlu vypadnou i pěkné příklady.
Pak taky tuším, že na abclinuxu.cz před nějakou dobou vyšlo pár článků na podobné téma.
Tak já toto řeším použitím knihovny parapin… Je to hezké usnadnění práce s LPT :-) je to dost snadno použitelné (set_pin(LP_PIN[X]); clear_pin(LP_PIN[X]); pin_is_set(LP_PIN[X])) a možná by stálo za to v tomto seriálu parapin představit a i používat…
Jinak parádní seriál, díky
Jak uz jsem zminil v uvodu, budu to delat tim nejjednodussim zpusobem. Jednak protoze s tim mam zkusenosti (ani si nejsem jist, zda ty ioctl() existovaly v dobe, kdy jsem s tim zacinal; na 2. a 3. portu by to samozrejme chodilo, staci prepsat adresu – jsou v uvodu) a druhak proto, ze casem prejdu na zapojeni s atmegou8 a seriovym portem, ktera uz budou cista a universalni.
Pokud napisete nejakou cistou implementaci a vystavite ji tu, tak budu jedine rad.
Videl jsem tolik ruznych portu, ze bych to netvrdil tak kategoricky … navic se mi parkrat kratkodoby zkrat povedl.
Videl jsem i port, ktery mel tak male vystupni napeti, ze na nej nesly pripojit TTL chipy :-( …
Ale nikomu bych zkrat nedoporucoval, protoze zrovna jeho port to nemusi snest …
Článek pěknej, ale to bastlení… už ta fotka zbytku solidně přepálené kalafuny v minulém článku působí velmi výstražným dojmem, ale tyhle ledky, to je teda hroznej bastl! Když už to má být seriózní článek, tak by si zasloužil kousek univerzální desky, nebo alespoň nepájivé pole.
Samozrejme, ze to je to bastl.
Ocekavam, ze kazdy, kdo to bude chtit pouzit k necemu praktickemu, zauvazuje nad tim, jak to udelat mechanicky stabilnejsi.
Chtel bych se zeptat autora tohoto clanku, zda-li by umel sestavit program, ktery by umel pocitat kola a merit cas na autodraze? Myslim, ze tento clanek je dobrym zakladem… Hardwarove bych to uz realizovat dovedl.
Kontakt na me je v prezdivce – predem diky!
PS: Kdyby nekoho zajimalo, jakou autodrahu mam na mysli: http://www.volny.cz/…ot_cars.html
Mozna by stalo za to se podivat na http://hw.cz/frc2009, treba by nekdo z organizatoru poradil …
Napsat takovy program neni nic sloziteho. Jedina otazka je, jak dlouho je sepnuty kontakt (nebo jak probiha detekce auticka) pri prujezdu auticka maximalni rychlosti.
Pokud by to bylo nekde pod 1/10 sekundy, tak byste si musel zacit hrat s RT Linuxem :-), nebo to napsat do jadra. A nebo tam dat klopny obvod, ktery bude preklopeny tak dlouho, dokud ho pocitac nevynuluje. Ale o to klesne presnost …
Pokud na to nespechate, prislo by mi pohodlnejsi resit tento problem s procesorem atmega 8.
Má smysl řešit měření pomocí PC ??? Na takovéto měření je lepší použít jednočip a obohatit o display. Přijde mi zbytečné, aby kvůli autodráze běželo celé PC. Maximálně sehnat starý notebook 286 nebo 386 a použít ho pouze pro zobrazení, ale z důvodu časování se to bez jednočipu neobejde.
No, tady by asi bylo lepsi snimat preruseni napr. ze serioveho portu. Mozna by k temto ucelum sel ohnout LIRC (http://www.lirc.org/), ktery pri pouziti snimace na seriovy port dela efektivne to same – kdyz prijde preruseni od seriaku (sepnute prijimacem infracerveneho signalu), tak nekam zaznamena timestampu, ktera pak jde do userspace.
Mozna uplne v prvni fazi by stacilo postavit si na LIRC strankach popsany infraprijimac a misto vysilace dat smerovou infraledku ktera by smerovala na ten prijimac pres autodrahu a byla prerusovana prave koly auticek (vlastne opticka zavora) a pomoci programu ‚mode2‘ z distribuce LIRCu si nechat vypisovat pulsy :-) I kdyz autori LIRCu asi netusili ze by to nekdo mohl pouzivat takhle, treba by to fungovalo..
Blby je ze na modernich PC se uz seriak tolik nevyskytuje, ale furt se daj koupit seriaky do USB (ale tam zas nevim jak je to s latenci, jestli ty auticka pojedou hodne rychle tak by to mohlo zkreslovat mereni…)
No, jen jako napad ktery se da ozkouset za 30 kc…
Timto bych chtel podekovat autorum ohackovavace (http://nlp.fi.muni.cz/cz_accent/), bez nehoz by tyto clanky nikdy nevznikly, nebot root (myslim) neprijima clanky bez diakritiky.
Ohackovavac samozrejme nechape vyznam, takze doplnuje diakritiku vsude, kde to jde (moc hezky vypadalo ‚doně‘ na konci bashoveho cyklu). A tohle jsem prehledl. Doufam, ze to nikoho moc nezmate.
Tak me napada … nestalo by za to navrhnout jednoduchou desticku s atmega8/32, pripojitelnou k PC pres USB (SW emulace), s predinstalovanym bootloaderem a vyvedenymi porty a kousem bastlpole? A mozna PTC pojistku na napajeni?
Myslim, ze neco takoveho dovedu nakreslit za odpoledne, samotnemu by se mi to obcas hodilo. Na SW uplne nemam cas, snad jen na nejaky trivialni.
Jako firma bychom dovedli zajistit vyrobu a osazeni, a snad i nejakou formu doruceni zajemcum (no jo … ale treba to muzu svest na blizici se krizi ;-) )
Na to uz existuje treba arduino. Ale myslim, ze pro zacatecnika je lepsi, kdyz muze vzit soucastky za 10kc a zkusit si, ze to opravdu s tou jednou diodou blika …
Vyrobit plosnaky budu potrebovat na programator atmelu, takze nabidky rad vyuziju. Fakt je, ze ta programovaci atmega by sla prepnout do rezimu, kdy pujde z pocitace primo hybat jejimi nohami a dat tam vystupy …
Nasel jsem tohle: http://metalab.at/wiki/Metaboard
Sice se mi to moc nelibi, ale je to hotove. Plosnak vyjde asi na 100kc (pri 20ks), ostatni soucastky pod 150Kc (pravdepodobne pod 100, muzu poptat). Je to cele klasicka montaz, takze to jde osadit i trafopajkou – jako kit Je pro to bootloader, takze odpada problem s programatorem, staci mit predprogramovany procesor a dalsi aplikace se jen nahrajou.
Musim rict ze se mi libi toto hardwarove reseni z nekolika duvodu:
ISA kartu jsem delal … ale otazka je, jestli to ma dneska jeste smysl. Nejake navody sem dam, ale fotka nebude a mozna v tom bude nejaka ta chybka. Delal jsem jenom 8-bit a nejsem si treba uplne 100%ne jist tim, jak se resi 16-bit provoz (mam to nactene, i jsem takovou kartu kreslil, ale uz jsem ji nikdy nevyrobil, takze jsem to nevidel na vlastni osciloskop).
PCI karta uz je mnohem vetsi maso :-( …
Existuje FT232 – prevodnik z USB na seriak. Asi by slo nejak sikovne cist ridici piny.
A podle tohoto: http://asix.cz/ftusbic_bm.htm to umi FT245. Ale nikdy jsem s nim zatim nic nedelal. Ale az budu mit trochu volneji, tak si ho koupim a treba v nekterem z budoucich pokracovani bude …
Jinak existuje arduino – prodava se i osazene – pripoji se k USB a programuje se primo pres to USB (je v nem bootloader).
To arduino vypada fakt dobře, díky.
Pokud by někoho zajímaly ceny, distributor v SK: http://elektromodely.com/modely/shop.php?…
V posledni dobe to neni tak zle … mame tu asi 50 zarizeni na FT232B, jedou pres 12 hodin denne, za posledni rok nebyl hlasen zadny problem. A komunikace jede porad, 2B vyzva, 2B odpoved cca po 50ms.
Je fakt, ze bylo treba pouzit d2×x drivery, s VCP nejake problemy byly. Ale mozna to vyresila nova verze driveru.
http://www.arduino.cc Presne ono, je to deska s jednocipem, pripojitelna pres serial nebo USB. A neni potreba programator, cip obsahuje bootloader…
http://www.papouch.com/…/_detail.asp?…
Leze z toho teplota v plain textu.
Tak, plním slib. Typ IO jsem našel, je to MDAC 08. Trochu jsem s ním experimentoval, když si pohrával s myšlenkou udělat si z PC Multimetr. :)
No nevim … je k tomu pridat nejaky prevodni algoritmus (na postupnou aproximaci byl nejaky 74×x, vicemene posuvny registr, jde to i pres ten paralelni port), referenci, komparator, mozna vstupni zesilovac.
Atmel za par korun ma vicekanalovy 10 bit A/D, nektere umi diferencialni vstupy a zasileni. Nejmensi jsou v 8pin (dnes uz 6pin) pouzdru.
Ale je fakt, ze ja uz dnes pouzivam atmel i tam, kde by bohate stacila 555ka. Pro ten atmel sahnu do supliku ;-)
co treba tohle: http://www.obdev.at/…ylogger.html a pripojit termistor nebo primo http://www.stahlke.org/…temperature/
Koncepce: 100 let za opicema, paralelni port uz dneska nema moc pocitacu
Zapojeni: bastl, prasarna, velka sance odpalit paralelni port. Pokud sem prase, necham si od nekoho pomoct a nesnazim se vymyslet obskurni duvody proc je to „schvalne“
Program: prasarna + amaterismus autora ktery pise primo na porty a vymlouva se ze s tim ma „velke zkusenosti“ (tipuju pul roku), a ze „ioctl“ neexistoval kdyz s tim zacal (podle toho je autorovi tak aspon 50). Pominu to ze ne kazdej pocitac musi bejt PC.
Shrnuti: Na rootu se objevuje vic a vic „autoru“ ktery neumej skoro nic a vetsinu clanku maji napsanou na zaklade neceho co zkusili den predem nebo co si precetli na wiki. Opet se tak potvrzuje zname rceni: Kdo neco umi, ten to dela. Kdo to neumi, ten to uci (=pise „navody“ na rootu).
Urazka autora: bezte spolu s panem adamem strauchem do prdele
kazdy jednou zacina. krome vysoce odbornych clanku pro pokrocile ctenare je fajn kdyz existuje i siroka knihovna clanku pro zacinajici.
takze dik za tyto clanky pro zacatecniky v bastleni.
odbornik nebude vytykat autorovi jednoduchost a zamereni na zacatecniky, ale vytkne pouze fakticke chyby, ktere by mohly zacatecnika zavezt spatnym smerem. coz belzebub neucinil a kritizoval jen povrchni problemy.
No nevim jestli je povrchni problem ze chudak zacatecnik propali ubrus v kuchyni pajeckou, spali si 3 prsty a znici 3 ledky jenom proto aby pak zjistil ze jeho notebook zadnej paralelni port nema a s tim paralelnim portem na USB co si pucil od taty mu to nefunguje. Pak stravi hodinu tim ze bude ve sklepe hledat stary pc s paralelnim portem, jenom aby pak stravil 2hodiny zjistovanim jakou adresu ma vlastne ten port co je na ty pridavny karte. Kdyz na to pride tak stravi dalsi hodinu zjistovanim ze mu to nefunguje protoze musi bejt root nebo se pridat do nejaky skupiny. Jasne, na tohle vsechno zacatecnik ceka a raduje se z toho :)
Souhlasim. Podobne zacinala vetsina lidi v dobe kdy nebyl internet a co sis neprecetl v ABC to si nevedel.. V dnesni dobe si clovek na netu muze najit tuny navodu. No a cilem tech navodu, tutorialu, nebo jak tomu rikat, je eliminovat tohle srani. Coz myslim ze tenhle clanek nesplnuje.
Koncepce:
Te, ze paralelni port nema dnes vetsina pocitacu je moz pekny argument. Ale kdyz sem nacpu FTDI232 a Atmegu8 do prvniho clanku, tak se na to kazdy koukne a rekne si „hezke, ale moc slozite … a k tomu programator atmelu za 1500kc“ a nezkusi to. Ten, kdo to zkusi bude zkuseny bastlir a ten uz to vicemene nepotrebuje.
Jestli se vam nelibi paralel, tak to proste nectete, dokud tam nebude seriak a USB. Ale pak se zase budou objevovat komentare, ze to je moc slozite a jestli by to neslo nejak zjednodusit …
Zapojeni:
Jde o princip, nebo o nejkrasnejsi binarni hodiny na svete? Schvalne je to proto, ze nebudu kvuli serialu letovat neco, co vubec k nicemu nepotrebuju.
Program:
Nejjednodussi prasarna, jaka jde udelat. Myslim, ze ppdev se objevil az v kernelech 2.4 (mozna, ze ve 2.2 uz byl jako patch mimo radu, nevim) a ja tohle delal s 2.0.38. O tom, proc jsem vybral PC jsem psal v uvodu. Odpalit PC nenasere tak, jako alphaserver (i ten ma paralel), nebo SGI. Kdyz cokoliv pripojuju ke svemu DS-20, Alphaserveru1000, DEC3000, iBooku G4, RS6000, MicroVAX3100, TS7250, Voipac PXA270 a dalsim, tak to nejdriv zkousim na nejakem starem pentiu 100, nebo jinem kramu, pokud to jde. A pokud ne, tak se to snazim alespon oddelit, nebo dukladne promerit.
Pokud je vas psychicky stav tak spatny, ze nesnesete pohled na paralelni port, doporucuji vam preskocit prvnich par dilu (a pak nenadavejte, ze to na vas je slozite).
Shrnuti:
Nejsem pisatel clanku na hlavni pracovni pomer – nebo mi to alespon nikdo nenabidl. Takze se snazim uvest lidi do toho, jak zacit. Sice mam v planu specialne kvuli tomuhle serialu neco zbastlit (protoze me to zajima), ale rozhodne kvuli jedne force nebudu bastlit znovu kazdou testovaci blbost, kterou jsem kdysi potreboval na pul hodiny.
Muzu vam posilat schemata, vy to zbastlite hezky (zadarmo), poslete fotky a budou tu hezci. Co vy na to?
Urazka autora komentare: Do prdele bezte sam a predtim si poradne prectete uvod.
Paralelni port mi nevadi, vadi mi to ze spousta lidi ho nema, ale muze si poridit paralelni port na USB. S vasim „programkem“ mu to ale fungovat nebude. To zacatecnika odradi urcite vic nez to ze by jeho sletovana verze byla osklivejsi nez vase obrazky :)
Obecne sem chtel rict, ze pokud ma bejt clanek pro zacatecniky, neznamena to ze ho ma psat zacatecnik. Naopak. Pokud clanek napise nekdo kdo tomu skutecne rozumi a kdo to umi, ma to pro zacatecnika mnohem vetsi cenu, protoze autor vi „s cim bejva problem“ a napise to tak aby se problemum zacatecnik vyhnul. Podle vaseho clanku spis do spousty problemu spadne.
Co se tyce argumentu, ze nejde o nejkrasnejsi binarni hodiny – tak to taky muzeme rovnou prestat rozlisovat I a Y.. nebo proc v programech odsazovat? Proc to nepsat vsechno na jednu radku? Nejde prece o ceskou gramatiku nebo o nejkrasnejsi zdrojak ne? :) Proste kdyz neco publikuju, tak by to melo mit aspon nejakou uroven – zrovna treba to nepajivy pole by vetsine zacatecniku usetrilo dost problemu (zacatecnik treba ani neumi poradne pajet – presne jako vy), navic by to vypadalo prehlednejs.
Argumentu ze neco nebylo v 2.0.38 snad nemyslite vazne? Kazdy na necem zacinal, ale vetsina lidi se uci novy veci jak novy veci prichazej. Pokud to nedokazete je to jenom dalsi dukaz toho ze byste clanky psat nemel.
Urazku si tentokrad opustim, uz jenom to ze odpovidam je myslim dostatecny :)
To, ze to nebude fungovat s portem v USB jsem psal v uvodu, ktery jste si mel precist.
Pokud si clocek nedokaze nastudovat, jak pajet, ackoliv dostal v uvodu (ktery jste necetl) odkazy, asi by to delat nemel.
Zda se mi, ze jste ponekud nepochopil prosty fakt, ze posledni vec na paralel jsem udelal v roce 2004 (tusim) a byl to programator atmelu. Od te doby pouzivam atmely na seriovem portu (ktery maji vsechny moje pocitace) a tudiz se nove veci okolo paralelu neucim, anzto je nepotrebuji – pouzivam reseni, ktere je universalnejsi (a tady se k nemu take dostanu). Prijde mi rozhodne lepsi napsat sem neco, co je vyzkousene, nez neco co by mohlo fungovat, pokud jsem spravne pochopil nejakou dokumentaci.
Zbytek nebudu komentovat … jenom vas lituju, pokud si na kazdy testovaci pripravek na pulhodinove pouziti navrhujete profi plosnak – to nemuzete vubec nic stihnout … nebo je to tak, ze ve skutecnosti nic nedelate a jenom vam to dobre keca?
Pokud mate cas na vyrobu prototypovych desek na moje schemata, rad zverejnim vase fotky ve svych clancich. Chcete poslat schemata do pristiho clanku?
:)) muzes mi prosim ukazat kde pisu o tom ze by si mel navrhnout plosnak? Ja naopak pisu o tom ze by si mel pouzit nepajivy pole, coz je myslim pro zacatecnika o hodne lepsi.
Co se paralelniho pornu na usb portu tyce – ten s ppdev funguje stejne jako ten co je na desce – tj pokud bys to udelal s ppdev tak je to prave univerzalni, a ne kdyz to udelas natvrdo :)
Ten konektor portu do pole nedate, takze je potreba spajet minimalne kabel k tomu konektoru …
Jak jsem jiz psal, s ppdev nemam zadne zkusenosti a s paralely uz nedelam. Snazim se presentovat veci, o kterych na 100% vim, ze chodi a mam je nekolikrat vyzkousene. Samozrejme, ze si ted muzu precist neco o ppdev, ubastlit s tim nejaky hello world a dat to sem (driv, nez pristi tyden se k tomu stejne nemam sanci dostat), ale vim ja, jestli to chodi opravdu vsude, nebo jenom na tom jednom pocitaci? Nevim. Klidne muzu mit stesti a napsat prasarnu, ktera mi bude nahodou chodit a nikomu jinemu ne. A ja nebudu vedet proc. Muze to byt portem, verzi kernelu, parametry kernelu, distrem …
Pokud mate s ppdev nejake prakticke zkusenosti, rad zverejnim vas kod (nebo ho zverejnete v diskusi), myslim, ze to bude prinosem pro vsechny zucastnene.
Diky.
Obavam se, ze od paralelu v tomto serialu utecu driv, nez bude vetsine ctenaru mile :-(. Ale ten programator atmelu v tom bude … aby slo postoupit na dalsi level bez nakupu profi programatoru, jako je treba tento: http://www.gme.cz/cz/index.php?… (1600kc a to ani nevim, zda funguje v linuxu … ale asi ano).
Neutikejte.. aspon ja nepicuju kvuli paralelnimu portu (souhlas ze na tohle hrani je idealni), ale picoval sem jenom kvuli zpusobu jakym ste na nej pristupoval.
No kdyz se atmely daj programovat pres paralelni port pomoci 5 dratu (reset, miso, mosi, sck, gnd) a 3 odporu, tak to tam napiste, ne? A funguje to i pomoci paralelniho portu do USB :) (aspon avrdude). To myslim pro zacatecnika staci vic nez dost. Naklady: 1× DB25, 3× 220R odpor, par dratu a nejakej idealne 2×5 pin samice konektor (pro nepajivy pole ani to neni potreba) – tj pro lidi co maj doma nejakej PC srot zadarmo, jinak tak 30kc..
A ted jak sem uz ospalej a na mekko, tak na zaver omluva autorovi: i kdyz trvam na tom co se mi nelibilo, s posilanim do prdele sem to posral, takze se vam omlouvam.
Paralel do USB jsem nikdy v zivote nedrzel v ruce … a vzhledem k tomu, ze jsem videl, jak se programuje atmel po seriaku (bitbanging ridicich signalu) v USB, neveril bych, ze to prez ten paralel v USB pojede. Pres ten USB seriak se to programovalo asi 20 minut. Takze jdu ten port sehnat a zkusit to. Diky za tip.
Programovani peti draty a tremi odpory mi nejak neslo (mozna blby port), takze jsem si postavil programator se ctyrmi hradly, kondenzatorem a asi sedmi odpory (jinak je to uplne totez) a s tim to bylo skoro vsude bez problemu. Pouzivam uisp. Jenom v jednom notebooku to neslo ani s tim … To schema tu zverejnim. Nicmene za predpokladu, ze ten programator na portu prez USB nechodi, je logicke nejdriv zverejnit LEDky a teprve pak programator. Od jednodussiho ke slozitejsimu.
Omluvu prijimam a jestli mate nejake prakticke zkusenosti s ppdev, tak si myslim, ze se tu vsichni (vcetne me) radi pouci.
ten paralel do USB sice nema tak presny casovani, ale jednou sem to uspesne pouzil pro preprogramovani attiny13 (ten ma tak malou flashku ze ani nevim jestli to slo nejak pomalejs..) – prave na notebooku kterej sice paralelni port mel, ale daval jenom asi 2V, coz nestacilo.
jinak 5tidratovy zapojeni (uisp tomu rika tusim DAPA) funguje i bez tech odporu (ale to uz je dost prasarna), ale fakt je ze na tech paralelakach kde je moc maly napeti (typicky notebooky) to nepude
ppdev se pouziva strasne jednoduse – otevru soubor /dev/parport0 (1, 2…) a zapisuju do nej, ctu z nej pripadne ho nastavuju pomoci ioctl – viz http://www.linuxfocus.org/…5/ppdev.html
posledni poznamka – od jisty doby sem zanevrel na uisp a pouzivam avrdude – s uisp sem casto musel programovat vickrat a presto se nekdy cip nenaprogramoval – subjektivne mi pride ze avrdude funguje lip
Nechodi to ani s uisp, ani s avrdude (ktere, jak se zda, neumi autodetekovat typ pripojeneho procesoru, ale tak daleko jsem se nedostal).
Zbytek si prosim prectete na http://pastebin.com/m72ff8dbc protoze root.cz se domniva, ze v tom jsou jakasi zakazana slova (fakt by me hodne zajimalo, co v tom seznamu zakazanych slov je a kdo ho delal)
Nechodi to ani s druhym paralelem do usb (delock USB 1.1 Parallel adapter), takze prez petikilo jsem vyhodil do kanalu a z toho nesmyslu muzu tak maximalne ustrihnout kabel a pouzit ho na FTDI :-( …
Z toho plyne pouceni: PARALEL NA USB NEKUPOVAT. Belzebubovi to na jednom chodilo, me na dvou ne … pro zacatecnika idealni situace, kdyz nevi, jestli ma chybu v necem, co udelal sam, nebo nechodi port.
Oba porty se detekovaly, vytvorily si zarizeni /dev/usb/lp0 … a na obou to hlasi, ze nemuze provest ioctl. uisp vyuziva ten ppdev, o kterem se tu v souvislosti s temito porty mluvi. Tim si jsem jist, protoze jsem kvuli nemu asi 10× prekladal na jednom pentiu 100 jadro (2.2 nema ppdev, 2.4 na tom nebootovalo, ale ja jsem si porad myslel, ze mam neco blbe … no a nejnovejsi 2.6.10 se nakonec chytla a mela i ppdev).
Pan Belzebub se za posledni tri dny nevyjadril … nbo … popravde receno, ani se mu nedivim, dnes jsem se primo od autora linuxoveho driveru pro USB paralel dozvedel, ze bitgangovat umi pouze jeden jediny chip a port s timto chipem uz dneska davno nejde koupit. Vsechny ostatni se hlasi, jako USB tiskarna a da se s nimi komunikovat pouze protokolem tiskarny (asi nemusi byt uplny).
Takze jsem tech 540kc skutecne hodil do kanalu …
Opravdu by me zajimalo, jestli pan Belzebub odhadl, ze by to fungovat melo a napsal to sem, nebo jestli opravdu ma port s tim jedinym chipem, se kterym to chodi …
+1 Přesně tak.
Nehledě na to, Paralelním portem ještě pořád spousta PC vybavena je. Už jen kvůli tomu, že ještě pořád použivá spousta LPT tiskáren. A myslím si, že nejdřív je potřeba zvládnout pár příkladů na něm – protože se asi nejjednodušeji popisuje a vysvětluje.
A pokud to pár lidí nezajímá, tak ať si počkají až budete probírat USB. A pokud někdo tu o někom vykládá, že nic neumí, tak ať laskavě předvede ty své. Jinak jsou to jen kecy o ničem…
Yokotasi musim rict ze prispevek belzebuba me nasral, prijde mi to jako nefer kritika.
To zbastleni primo na kabel se mi nelibi, protoze kabel je ohebny a hrozi ze se nekde neco dotkne a nastane zkrat. Moje oblibena technika je, pokud se mi nechce srat s univerzalnim tistakem nebo nepajivymi nekontaktnimi poli, naletovat to zemema na kus pocinovaneho plechu. Jde vystrihnout i z plechovky od buraku, rajcatoveho protlaku, merunkoveho kompotu, plechovych kanystriku od redidel a jedleho oleje, nebo ukladaci krabice IKEA EMU.
Milý Yokotashi, seriál je velmi zajímavý, nenechte se trotlem belzebubem znechutit. Takoví se vždycky najdou. Kdybyste psal úvod do programování, tak by vám nejspíš vyčítal, že není objektový, nepoužívá dependency injection a inversion of control a neuchovává data v databázovém serveru.
Na rootu se objevuje vic a vic „autoru“ ktery neumej skoro nic a vetsinu clanku maji napsanou na zaklade neceho co zkusili den predem nebo co si precetli na wiki.
Všichni, kdo Yokotashiho znají, potvrdí, že je to zkušený praktik a v oboru se vyzná. Prostě jen nepovažuje vzhled za důležitý. Jestli chcete, říkejte „Yokotashi je čuně“ (to mu určitě nebude vadit), ale neříkejte „Yokotashi to neumí“, tím jste za blba.
Kdo to neumi, ten to uci (=pise „navody“ na rootu).
Pokud vám připadá úroveň roota nízká, proč ji nepomůžete zvednout tím, že sám napíšete nějaký kvalitní článek?
Ja sem si navrhnul a vytvoril vlastni projekt s Atmegou16
http://cs.wikipedia.org/…:Arduelo.jpg
je to klon znameho Arduina a je s nim plne kompatibilni funguje to i s tim jeho jednoduchym IDE a naprogramovat v tom blikajici ledku je prace asi na pul minuty :))
Vyrobil jsem 4 kusy ktery se u me ani neohraly. Pripojuje se to pres usb a funguje to docela pekne.
vsechny podklady jsem vytvoril v programu kicad jako free a pokud si to chcete vyrobit tak vsechny podklady jsou zde:
pokud si chces hrat s roboty, tak nemusis cekat na dobu az si budes umet postavit robotove hardware, ale muzes uz zacit trenovat programovani virtualnich/softwarovych robotu.
Myslim, ze je daleko snazsi sehnat funkcni NB. Dokumentace k panelu se ve vetsine pripadu bude dost tezko schanet.
Obecne se do LCD posilaji RGB data, hodiny a synchronizace. A asi i generator budiciho napeti bude na motherboardu. Pokud nedodrzis casovani, pak panel shori (nesmi se nechat zapnuty bez hodin). Taktovani bude 60Hzpocet pixlu, i RGB data muzou byt multiplexovana (3 vetsi takt). Znamy na to kdysi delal diplomku (graficka karta pripojitelna k jednocipu s vystupem na prumyslovy panel, postavene na FPGA) a rozhodne to nebylo trivialni (jeden z nejlepsich hardweraru, co znam).
$ ls Makefile par_in.c par_out.c parport.h
$ make par_out gcc -O2 -Wall -ggdb -c par_out.c -o par_out.o make: *** No rule to make target `parport.c', needed by `parport.o'. Stop.
$ make par_in gcc -O2 -Wall -ggdb -c par_in.c -o par_in.o make: *** No rule to make target `parport.c', needed by `parport.o'. Stop.
$ ls Makefile par_in.c par_in.o par_out.c par_out.o parport.h
$
Redakci jsem sice poslal vsechno (ted jsem se koukal do toho archivu) … ale zapomel jsem do clanku napsat odkaz na parport.c
Omlouvam se vsem, kteri se to pokouseli neuspesne zkompilovat. Priste budu muset udelat nejen korekturu na preklepy, ale i na soubory.
Je to tady: http://pastebin.com/f401e1d9 prvni radek samozrejme neni soucasti zdrojaku.
Jestli chcete zazit poradnou prasarnu, pustte si nejakou pisnicku od Morcat na uteku.
Zacinam litovat, ze jsem svolil k tomu, ze k navodum dodam fotky.
Pokud mi kazdy jedinec, ktery si mysli, ze bych mel jenom a pouze kvuli serialu letovat zapojeni, ktera pak hodim do skrine (kde budou navic prekazet) posle na udet pade, tak to budu delat.
Ze se na takové zodpuštěním VOLY nevykašleš. Tady na Rootu se stalo už téměř sportem zhodit každého kdo se snaží něco udělat nebo ukázat. Pokračuj, jak jsi se mohl v diskuzy dočíst, tak svoje čtenáře, kteří se těší na další článek (včetně fotografii) už máš a jak to vypadá není jich zrovna málo a jak je vidět další ještě přibívají.
A na tyhle dementy co si léčí osobní problémy tím, že to zhazují se prostě a jednoduše vys… ;)
Jojo presne ja uz se taky tesim, az Yokotashi vyda dalsi clanek a budu mu v tom moct hledat hnidy. Budu moct tim vylepsovat svoje ronjove sebevedomi. Treba demonstruju, ze znam nejaky zapadly obskurni detail nebo kuriozitu, ktery jsem se nahodou pri mudrovani jak Ronju navrhnout dozvedel, a Yokotashi ho nevi! :)
Vite, on neni moc problem v tom, jak to vypada. Kdybyste videl nektere nase produkty v prvni fazi vyvoje, to je hnus neskutecny (byt' se jedna mnohdy o miniaturni soucastky typu QFN32 apod.). Sam jsem mel DAC na paralelni port udelany velmi podobne, v prvni verzi nebyl ani pajeny!
Problem je v tom, ze nejaka soucastka ma definovane urcite parametry a ty vy prekracujete. To je asi tak, jako kdyz zapojite MCU na nestabilizovany zdroj (a mimo napetovy rozsah), tak zrejme nejak bude fungovat. Jenze pak k tomu date ruku a MCU se restartuje. Nebo obcas vyskoci zahadne z nejake smycky, apod. Nebo mu shori nejaky I/O pin. No a to presne delate vy.
Asi by neslo rict nic na clanek, kde byste zacal OK- pro jednoduchost si vezmete srotovy pocitac, ktery mozna odpalite, a pripojime si na port LEDku naprimo. LEDka za 5 minut uz nesviti? Pokud odesla LED, vymente. Pokud pin LPT, pouzijte dalsi. Vidite, ze je nekde problem. A ten problem je v … tak to vyresime takto …
Dle meho nazoru by bylo spis dobre pro takove pokusy pouzit nejakou desku typu Arduino (http://www.arduino.cc/ ), kterou si pro jednoduchost muzete pripojit i k monitoru a klavesnici (http://www.microvga.com ;-) ).
Nicmene urcite pokracujte, nekomu to 100% pomuze. Akorat bych doporucoval, aby k tomu napsal vzdy komentar ci oponenturu nekdo znaly.
Třeba by to Yokotashi taky zvládl i se dvěma promile? (Já osobně si myslím, že ano.)
Nicméně, Technikrate, je tu jedna podstatná věc: on nebyl líný napsat článek (a to správně česky!), vyfotografovat ta zapojení, a nést svou kůži na trh. Co jsi udělal ty, když jsi tak chytrý?
Paradni clanek, nejsem sice uzivatelem Linuxu dlouho, ale toto je presne co jsem od Linuxu ocekaval! Nemuzu se dockat pokracovani! Mimochodem pokud by Linux byl pouzit jako ridici system neceho. Jak je to s licenci? Lze legalne nejakou takovou aplikaci pouzivat a popr. i dal prodavat? Mam nejake mlhave napady jak by se to dalo v praxi vyuzit.
„Jak je to s licenci? Lze legalne nejakou takovou aplikaci pouzivat a popr. i dal prodavat?“
Pokud je dany software pod Licencí GNU GPL, pak máte nárok takovou aplikaci jakoliv využívat, modifikovat, máte právo na zdrojové kódy k danému software. Smíte jej i dále šířit, ale musíte jej zachovat pod licencí GNU GPL – to znamená nemůžete už chtít poplatek za software samotný a za jeho používání a musíte dalším uživatelům poskytnout stejná práva jako máte vy sám (včetně modifikované verze). Na této licenci je založena drtivá většina linuxového software v distribucích.
Další licence která vás asi bude zajmat je GNU LGPL, která ke stávajícím právům přidává ještě jedno : Můžete využít API daného software ve svém projektu a ten vyvíjet pod vlastní licencí. Vše ostatní co se týče daného software pod LGPL je zhruba stejné. Proto je většina knihoven vyvýjena právě pod touto licencí.
Popsal jsem to vlastními slovy a dost volně, doporučil bych k hlubšímu studiu začít zde : http://cs.wikipedia.org/wiki/GNU
V Linuxu se používájí i jiné licence (včetně propertialních) software, tam je potřeba si nastudovat text licence ke konkrétnímu software.
Linux jako ridici system pouzit jde i nejde. Zalezi na tom,, jak rychle je to, co ridite. Pokud nevadi, ze to nekdy o desetinu sekundy ujede (treba rizeni teploty v nekolik aterrariich), tak to pouzit jde. Spalovaci motor uz tim ridit nejde.
Dalsi moznost je pouzit RT linux, tam se da dostat na vyrazne presnejsi casovani a i kdyz jsem s nim pri testu zazil pomerne dost problemu, tak lze rict, ze pokud vam tam pobezi jeden proces s RT prioritou a jeden proces k tomu rizeni (idealne kazdy na svem jadre CPU), tak nemate problem. Problemy nastavaji pri vysoke zatezi a vice RT procesech (tyral jsem ho, co to slo …) na malo jadrech (1–2).
CO se tyka licence, tak to, co jsem zde zverejnil (jestli tak male a zakladni kousky kodu ma vubec smysl licencovat) je GPL. A pokud byste to chtel prodavat … tak jednak jde prodavat i GPL (se zdrojaky) a druhat to stejne budete muset prepsat, takze budete auterema muzete si to licencovat, jak chcete. Pokud to chcete prelicencovat, tak si jenom musite dat pozor na knihovny – pouzit jen LGPL a BSD knihovny.
Diky za vysvetleni. Pro ucely pro ktere, bych to chtel postacuje presnost v radu s, takze nepresnosti v radu 100ms me netrapi. Jinak predpokldam, ze problem s licenci by slo vyresit i tak, ze by byl SW zdarma, ale zpoplatnenim servisu a HW. ne? ;-) Jinak neztracejte cas dopisovanim s lidma, co Vas kritizujou a radeji pripravujte dalsi clanek pro spokojenou vetsinu!.
Na zaver si dovolim doplnit belzebuba:„Opet se tak potvrzuje zname rceni: Kdo neco umi, ten to dela. Kdo to neumi, ten to uci.“ – A ten kdo to neumi a nedokaze ani ucit, tak to aspon kritizuje!
Kdyz sw zustane pod GPL, jde bez problemu zpoplatnit servis a hw. Dokonce jde zpoplatnit i sw, ale nesmite nikomu, kdo to koupi, branit v tom, aby to prodaval (nebo rozdaval) dal …
Co se tyka tech presnosti, tak by to chtelo nejake delsi testy … myslim, ze normalni kernel nezarucuje nic. Ale vzhledem k tomu, ze na nem normalne chodi zvuk, tak kdyz na tom pocitaci nepobezi nic jineho a pocitac se bude flakat (bacha na crona, updatedb a podobne), tak je to v pohode. Samozrejme je otazka, co se stane, kdyz se to jednou nestihne. Jestli se operace udela znovu a bude to stat 2 halere, tak o nic nejde, jestli to bude pruser za 10 milionu, tak bych tam rozhodne userspace aplikaci v linuxu nedaval.
Akurat som to dopajkoval, a skompiloval program – a blika to. Sa tesim pri pohlade na blikajuce ledky ako male decko :) Inak som sa zaprisahal, ze odkedy root zverejnuje v diskusiach IP-adresy, ze uz nenapisem ani riadok (ide o princip, linux, slobodny softwer, a potom toto), ale yokotashi (a este tisnovsky, a mozno este par) za to stoja …
Dobrý večer , tento SW a návod na použití ledek z parportu není nic nového , jak zde bylo psané , používal jsem to hodně dávno jako identifikace stavů. Třeba zde nebo popř. přímo na odkazech ve článku. Na serveru ibiblio.org je takových to projektů celkem hodně a všechny jsou již celkem hodně staré.
Tuhle jsem googloval prurazne napeti pro „supersvitivou zelenou LED“ (bez
uvedeni typu) a kdosi tvrdil, ze vsechny tyhle LED to maji specifikovane jako
5V. Jednalo se ale
o supersvitive LED, jestli normalni LED vydrzi vic nevim.
LED se daji take merit multimetrem v poloze „--|<|--“ ten to zkousi neco pres 2V a proudem 1mA.
Uz som to vyriesil, ale mam problem s tym, ze vzdy mi to vypise nejake chyby…
$ make
gcc -O2 -Wall -ggdb -c parport.c -o parport.o parport.c:1: error:
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before
‘parport’ In file included from /usr/include/stdio.h:75,
from parport.c:2: /usr/include/libio.h:332: error: expected
specifier-qualifier-list before ‘size_t’ /usr/include/libio.h:364: error:
expected declaration specifiers or ‘…’ before ‘size_t’
/usr/include/libio.h:373: error: expected declaration specifiers or ‘…’
before ‘size_t’ /usr/include/libio.h:493: error: expected ‘=’,
‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_sgetn’ In
file included from parport.c:2: /usr/include/stdio.h:312: error: expected
declaration specifiers or ‘…’ before ‘size_t’
/usr/include/stdio.h:319: error: expected declaration specifiers or ‘…’
before ‘size_t’ /usr/include/stdio.h:361: error: expected declaration
specifiers or ‘…’ before ‘size_t’ /usr/include/stdio.h:363: error:
format string argument not a string type /usr/include/stdio.h:365: error:
expected declaration specifiers or ‘…’ before ‘size_t’
/usr/include/stdio.h:678: error: expected ‘=’, ‘,’, ‘;’, ‘asm’
or ‘__attribute__’ before ‘fread’ /usr/include/stdio.h:684: error:
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before
‘fwrite’ /usr/include/stdio.h:706: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘fread_unlocked’
/usr/include/stdio.h:708: error: expected ‘=’, ‘,’, ‘;’, ‘asm’
or ‘__attribute__’ before ‘fwrite_unlocked’ In file included from
/usr/include/stdio.h:906,
from parport.c:2: /usr/include/bits/stdio2.h:24: error: expected declaration
specifiers or ‘…’ before ‘size_t’ /usr/include/bits/stdio2.h:26:
error: expected declaration specifiers or ‘…’ before ‘size_t’
/usr/include/bits/stdio2.h:53: error: expected declaration specifiers or
‘…’ before ‘size_t’ /usr/include/bits/stdio2.h:54: error: expected
declaration specifiers or ‘…’ before ‘size_t’
/usr/include/bits/stdio2.h:56: error: expected declaration specifiers or
‘…’ before ‘size_t’ /usr/include/bits/stdio2.h:57: error: expected
declaration specifiers or ‘…’ before ‘size_t’
/usr/include/bits/stdio2.h:62: error: expected declaration specifiers or
‘…’ before ‘size_t’ /usr/include/bits/stdio2.h: In function
‘snprintf’: /usr/include/bits/stdio2.h:65: error: ‘__n’ undeclared
(first use in this function) /usr/include/bits/stdio2.h:65: error: (Each
undeclared identifier is reported only once /usr/include/bits/stdio2.h:65:
error: for each function it appears in.) /usr/include/bits/stdio2.h: At top
level: /usr/include/bits/stdio2.h:75: error: expected declaration specifiers
or ‘…’ before ‘size_t’ /usr/include/bits/stdio2.h: In function
‘vsnprintf’: /usr/include/bits/stdio2.h:78: error: ‘__n’ undeclared
(first use in this function) /usr/include/bits/stdio2.h: At top level:
/usr/include/bits/stdio2.h:220: error: expected declaration specifiers or
‘…’ before ‘size_t’ /usr/include/bits/stdio2.h: In function
‘gets’: /usr/include/bits/stdio2.h:228: error: ‘size_t’ undeclared
(first use in this function) /usr/include/bits/stdio2.h:229: error: too many
arguments to function ‘__gets_chk’ /usr/include/bits/stdio2.h: At top
level: /usr/include/bits/stdio2.h:233: error: expected declaration specifiers
or ‘…’ before ‘size_t’ /usr/include/bits/stdio2.h:238: error:
expected declaration specifiers or ‘…’ before ‘size_t’
/usr/include/bits/stdio2.h: In function ‘fgets’:
/usr/include/bits/stdio2.h:247: error: ‘size_t’ undeclared (first use in
this function) /usr/include/bits/stdio2.h:250: error: too many arguments to
function ‘__fgets_chk’ /usr/include/bits/stdio2.h:252: error: expected
‘)’ before ‘__n’ /usr/include/bits/stdio2.h:253: error: too many
arguments to function ‘__fgets_chk_warn’ /usr/include/bits/stdio2.h: At
top level: /usr/include/bits/stdio2.h:258: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘__fread_chk’
/usr/include/bits/stdio2.h:261: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘__fread_alias’
/usr/include/bits/stdio2.h:265: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘__fread_chk_warn’
/usr/include/bits/stdio2.h:274: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘fread’
/usr/include/bits/stdio2.h:319: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘__fread_unlocked_chk’
/usr/include/bits/stdio2.h:322: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘__fread_unlocked_alias’
/usr/include/bits/stdio2.h:326: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘__fread_unlocked_chk_warn’
/usr/include/bits/stdio2.h:335: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘fread_unlocked’ make: ***
[parport.o] Chyba 1