You are on page 1of 14

Kahve Yapmak Nasl

Yazan: eviren:

Fotis Georgatos
<gef (at) ceid.upatras.gr>

Oguz Yarmtepe
<comp.ogz (at) gmail.com>

11 Subat 2007

zet Bir yazlm hakknda en ok hatrlanan yorumlardan biri de kodun su veya bu parasnn kahve yapp yapamadgdr. Kahve petrolden sonra ikinci sray alm tm dnyaya mal olmu bir maddedir. LINUX s s kahve yapar ve gerekten de kahvenin gzel bir tad vardr!

Konu Baslklar
1. Giris . . . . . . . . . . . . . . . . . . . . . . . 1.1. Telif Hakk . . . . . . . . . . . . . . . . . 1.2. Feragatname . . . . . . . . . . . . . . . 1.3. Srm . . . . . . . . . . . . . . . . . . . 1.4. eviriler . . . . . . . . . . . . . . . . . . 1.5. Tantm . . . . . . . . . . . . . . . . . . 1.6. Bunu yazarken ne iersiniz? . . . . . . . 1.7. Geri Besleme . . . . . . . . . . . . . . . 2. Men . . . . . . . . . . . . . . . . . . . . . . . 2.1. Trk Usul . . . . . . . . . . . . . . . . 2.2. Fransz Usul . . . . . . . . . . . . . . . 2.3. Nescafe . . . . . . . . . . . . . . . . . . 2.4. Frappe . . . . . . . . . . . . . . . . . . 2.5. Freddo . . . . . . . . . . . . . . . . . . 2.6. Espresso . . . . . . . . . . . . . . . . . 2.7. Cappuccino . . . . . . . . . . . . . . . . 3. Donanm . . . . . . . . . . . . . . . . . . . . . 3.1. Bilgisayardan 05V elde etmek . . . . . . 3.2. Rle ile kontrol . . . . . . . . . . . . . . 3.3. TRIAK ile kontrol #1 . . . . . . . . . . . 3.4. TRIAK ile kontrol #2 . . . . . . . . . . . 4. Yazlm . . . . . . . . . . . . . . . . . . . . . . 4.1. Programlama . . . . . . . . . . . . . . . 4.2. Aygt srcs . . . . . . . . . . . . . . 4.3. Internet ile baglant . . . . . . . . . . . . 5. Tam bir Turing Kahve Makinasn Olusturmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 4 5 5 5 5 6 6 6 6 6 6 6 6 7 7 8 8 9 10 10 10 10 10

Kahve Yapmak Nasl

5.1. Uygun bir assembly dili . . . . . . . . . 5.2. Donanm ve arayz . . . . . . . . . . . 5.3. Yazlm . . . . . . . . . . . . . . . . . 5.4. Turing Makinas zerine kk bir ele tiri s 6. Asr doz belirtileri . . . . . . . . . . . . . . 7. Belge Kapsamnn Genisletilmesi . . . . . . 8. Daha Fazla Bilgi Iin . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

11 11 12 12 13 13 13

http://belgeler.org

Linux Kitaplg

2 / 14

Kahve Yapmak Nasl

Gemis
1.0 2004-08-29 FG

http://belgeler.org

Linux Kitaplg

3 / 14

Kahve Yapmak Nasl

1. Giris
Uzun yllardr insanlk, bir bilgisayarn nasl kahve yapabilecegini merak etti. nsanlar, uyank kalmak ve bilgisayar kar snda uzun sre kalabilmek iin kahveye ihtiya duyar. Geceleri kod I s yazmann daha iyi oldugu yaygn bir bilgece szdr! Esas hner, bir kahve makinasn, bir yazlm ile kontrol edilebilmesi iin, bilgisayarla btnle tirmektir. Bu NASIL s belgesi bunu nasl yapacagnz anlatacaktr. lk ba ta, kahve makinasnn g kaynagn kontrol eden bir AMA/KAPAMA anahtar, elektronik bir devre olarak I s gsterilecektir. Ba ka bir blmde tam bir Turing Makinas (Turing Complete) gibi olan, akll kahve makinalarnn s nasl yaplacagnn srlar anlatlacaktr. Bu NASIL belgesi ilk olarak, linuxgreekusers ileti listesindeki linux kahve yapabilir mi yapamaz m tart mas s (B1) zerine yazld. Daha sonra internetteki magaz isimli dergimizde bir makale haline geldi. Merak edenleriniz iin syliyeyim, magaz Yunancadr ve eminim ki baknca size de yle gelecektir! yi Eglenceler. I

1.1. Telif Hakk


Belgenin ingilizce orjinalinin Telif hakk 2004 Fotis Georgatoa, trke evirisinin telif hakk 2005 Oguz Yarmtepeye aittir. A agdakileri yapmakta zgrsnz: s

Bu al may kopyalamak, dagtmak, gstermek ve gerekle tirmekte s s Bu i ten tretilmi i ler yapmakta s s s Yaplan al may ticari hale getirmekte s

A agdaki durumlarda atfta bulunmalsnz. Orjinal yazar bilgilerini vermelisiniz. Benzer sekilde payla n. Bu s s belgeyi degi tirir, farklla trr veya bu belgeyi kullanarak bir seyler yaparsanz, ortaya kan al may bu s s s belgedekinin ayns olan bir lisansla dagtabilirsiniz.

Herhangi bir yeniden kullanmnda ya da dagtmnda, bu al mann lisans haklarn ak sekilde duyur s malsnz Bu durumlardan bazlarndan, yazardan izin almanz durumunda, feragat edilebilir.

1.2. Feragatname
Bu belgede yazlanlar kullanmak tamamen sizin sorumlulugunuzdadr. erikle ilgili olu abilecek potansiyel I s herhangi bir sorumlulugu reddediyorum. erigin, rneklerin ve/veya bu belgedeki diger bilgilerin kullanmndan I dogacak risk tamamen size aittir. Tm telif haklar aksi zellikle belirtilmedigi srece sahibine aittir. Belge iinde geen herhangi bir terim, bir ticari isim ya da kuruma itibar kazandrma olarak alglanmamaldr. Bir rn ya da markann kullanlm olmas ona onay verildigi anlamnda grlmemelidir. s Temel bir ykleme yapmadan nce sistemizle ilgili yedeklemeleri dzenli zamana aralklarnda yapmanz siddetle tavsiye edilir.

1.3. Srm
Bu Kahve NASIL belgesi artk Kahve Yapma NASIL (Coffee Making HOWTO) olarak anlmakta ve srm 1.0 a dogru yol almakta olup, su adreste bir yerlerde gzkecektir:

http://fotis.home.cern.ch/fotis/Coffee.html http://belgeler.org
Linux Kitaplg 4 / 14

Kahve Yapmak Nasl

Artk herkesin, Kahve Yapmann *herhangi bir* Linux dagtmyla gelen standart bir zellik oldugunu bilmesinin zamandr. Yoksa SCOnun bunun zerinde de mi bir patent hakk var?

1.4. eviriler
Bu ve bundan nceki Kahve Yapma NASIL belgesinin srmlerinin a agdaki dillerde evirilerini kolaylkla bus labilirsiniz:

ince Japonca Rusa Malay Dili talyanca I Polonya Dili Trke*

ve umuyorum daha fazlas... (spanyolca ve Portekizce, var m kimse?) I

1.5. Tantm

Etiyopya: Kahvenin anavatan olarak tannr Kahve, 1683 ylnda Trklerin Viyanaya olan ba arsz bir aknnn geride kimsenin istemedigi garip kahvs erengi fasulya taneleri ieren uvallar brakmasna kadar, Orta Doguda ok yaygnd: http://www.

vienna.cc/ekaffeeh.htm/
1967de Kostas Lialiambis, Linux makinasyla kahve yapamadgn sylemeye cesaret eden biriydi Panagiotis Vrionis, yakn zamanda bana ilgin ve komik notlar verip topun dnmesini saglad. Internetteki PEKOKlar, katlm ve yorumlarnza... Hepinize gerekten te ekkrler. Her ne kadar heps inizin iletilerine cevap veremesem de.

1.6. Bunu yazarken ne iersiniz?


Aslnda, en iyi krime gre, bu tamamen zgr bir doping kullanm i idir. s Ama size arka fonda alan mzigin srrn verebilirim: Zampetas veya Mpithikotsis syledigi herahngi bir sark (buzuki veya benzeri).

1.7. Geri Besleme


Kendi yaptgnz DIY Kahve Makinasnn online anlatmlar iin dmeni su adrese krnz: http://coffee.sf.net/(B4) Hala sylemek istediginiz yorumlar varsa, bu gnlerde iletilerin (mail) kayboldugu d nlrse, neden gzel s sehrinizden, ierisinde sehirinizdeki en gzel kahve yerlerinden birini neren bir kartpostal atmyorsunuz?
Fotis Georgatos, Aliartou 32, TK 11142 Athens, GREECE

Son Sz

nerileriniz gzden karlmayacaktr, bu aralar geziye kmaya ok meyilliyim, siz farkna varmadan birden etrafnzda olmu olabilirim. s Linux Kitaplg 5 / 14

http://belgeler.org

Kahve Yapmak Nasl

Evet, bir sre Amsterdamda kaldm ve hatta orada 3 yl ya adm; Kahve Dkkanlar alelade kafeler gibi s saylmazd. Spriz: Ben aslnda kahveyi zerinde ukulata ve ay ile severim. ;)

2. Men
2.1. Trk Usul
Kpg ve nefaseti ile nldr. Yaplmas zen ister. Makineler iin uygun degildir. Birinin sizin iin yapmas gerekir. Bir ncannn krk yl hatr vardr.

2.2. Fransz Usul


Programclar arasnda nl olandr, nk ok fazla zen istemez ve tpk ticari bir yazlm gibi, pi irilmesi verim s saglar (streamlined). Heyecan verici tad, gnn daha ilk saatlerinde, pekok programcy inanlmaz programlar yazma ynnde cezbeder. M$ Windows, rnegin, kahve sayesinde saat sabahn 5in de yazlm tr. Benzer bir s netice garanti edilir!

2.3. Nescafe
Nescafe biraz daha gl, zerinde duman tten scak su, seker ve kahvenin kar mndan yaplan bir kahvedir. s Genelde, bir ka k kahve ve bir ka k seker ve ok az da su alrsnz kar trmak iin. Bu arada suyunuz da s s s kaynyor olmaldr. Su yeterince scak olur olmaz, hepsini kar trp, zerine tercihen yogun miktarda st eks lersiniz. Her ne kadar suyu kaynatmak iin bir kahve makinasndan daha basit seyler de kullanabilseniz de, genelde bunun daha ok byle yapldgn grdm...

2.4. Frappe
Yukarda bahsedilen kahvenin degi ik popler bir halidir. Aslnda, yle zel bir kahve makinasna ihtiyacnz s yoktur, yerine soguk su ve buz kpleri iin bir buzdolab gerekir. Bu, Gney Dogu Avrupada scak yaz aylarnda ok nldr.

2.5. Freddo
Bu biraz kar ktr, KahveSSSi okuyunuz. (Daha fazla bilgi alma ksmn okuyunuz) s

2.6. Espresso
Espresso ok sert, talyan tarz bir kahvedir. Kk ncanlar iinde (Neden mi? A r Doz Belirtilerine baknz), I s bir veya iki para sekerle servis edersiniz. yi bir espresso yapmak iin, taze gtlm kahve ekirdekleri, I s su, kesme seker ve zel bir makinaya ihtiyacnz vardr. Bu makinalar suyu kaynatarak meydana gelen scak buharn gtlm kahve ekirdeklerinden gemesini saglar. Oldukaaldatc bir makinay olduka fazla paraya s alabilirsiniz. Ucuz bir makina da i inizi grebilir, tabii ki. s Tamam, hadi ba layalm. Makinanza suyu koyunuz. Isnmasn bekleyiniz. Bu arada, 1 ay ka g kahve tozunu s s makinanzn ltresine koyunuz. Kahve tozunu a ag itiniz. Ama fazla degil. Evet, artk su yeterli sda. Filtreyi maks inaya takarak, makinann al masn saglaynz. Yakla k 30 saniye sonra, lezzetli, scak bir espressoyu servis s s edebilirsiniz. yi bir yemekten sonra, gzel gider. Kendinizi iyi hisseder ve bir ka saat daha kod yazabilirsiniz. I

http://belgeler.org

Linux Kitaplg

6 / 14

Kahve Yapmak Nasl

2.7. Cappuccino
(Espresso ksmna da baknz) Eger daha kaliteliye benzer bir makinanz varsa, onu stle kprtmek iin kul lanabilirsiniz. Bu zellige, kremams bir kahve yapmak iin ihtiyacnz vardr. Hazrlamas ok kolaydr. Bir kahve ncanna biraz kpkl st koyarak espresso ile doldurunuz. ukulata paralaryla da ssleyiniz. Hepsi bu.

3. Donanm
Sistem devre semas syledir:
05V 220V | PC |====>====|Circuit|==========|CoffeeMachine|

Temel mantk syledir, elektriksel olarak yaltlm bir devreyi bir rle veya triyak ile kontrol etmemizi saglayacak s denetim gerilimini bilgisayardan alrz. 200Wattan daha byk bir kahve makinanz varsa bir rle devresi semelisiniz. Kahve makinanz o kadar byk bir gce sahip degilse triyak tabanl bir devreyi de seebilirsiniz. Gsterilmi olan tm devreler denenmi tir, fakat sonular ve riskler SZN SORUMLULUGUNUZDUR. Eger s s I I elektronik ile tecrbeniz yoksa bunlar YAPMAmalsnz, yoksa kt bir netice alabilirsiniz. 220V ile al rken ok dikkatli olmalsnz, ayrca uygun bir sigortann kullanm kesinlikle tavsiye edilmektedir. s

3.1. Bilgisayardan 05V elde etmek


A agda, bilgisayarn paraler portundan 05V elde etmek iin bir rnek vardr: s
Arkadan grn s Erkek DB25 Konnektr + Pin 10 ACK | + Pin 9 D7 + Pin 2 D0 | | | + Pin 1 Strobe v v v v / \ \ 13 12 11 10 9 8 7 6 5 4 3 2 1 / \ / \ 25 24 23 22 21 20 19 18 17 16 15 14 /

1 numaral, Strobdur. (Strobe) (mantksal ters) 29 aras pinler veri yolu (DATA BUS) sinyalleri iindir, esas itibariyle paralel porta yazlan her sey bir OUTB komutuyla tutulmaktadr. 10 numaral pin, onay (ACK) sinyalidir, sizin tarafnzdan denetlenir, bylece i lemciye bir kesme gnderes bilirsiniz. 1825 aras pinler ksa devredir, topraklaga baglanmaldr (GND). Ayrntl olarak:
<= gir DB25 => k pin => 1 Cent pin 1 Sinyal smi I Strobe Yazma Biti Aklama C0 gnderme iin >05us aa ekilir s g

http://belgeler.org

Linux Kitaplg

7 / 14

Kahve Yapmak Nasl

=> => => => => => => => <= <= <= <= => <= => => ==gt;

2 2 Data 0 3 3 Data 1 4 4 Data 2 5 5 Data 3 6 6 Data 4 7 7 Data 5 8 Data 6 8 9 9 Data 7 10 10 Ack 11 11 +Busy 12 12 +PaperEnd 13 13 +SelectIn 14 14 AutoFd 15 32 Error 16 31 Init 17 36 Select 1825 1930 Ground

D0 D1 D2 D3 D4 D5 D6 D7 S6+ S7 S5+ S4+ C1 S3+ C2+ C3

en kymetsiz bit ... ... ... ... ... ... en kymetli bit IRQ onaydan sonra 5us aa ekilir s g Megul/Devred/Hata iin yukar ekilir s s Kat sonu iin yukar ekilir g yazc seiliyse yukar ekilir bir satr ileri iin aa ekilir s g Hata/Devred/Katsonu iin aa ekilir s g s g ilklendirme iin >50uS aa ekilir s g yazcy semek iin aa ekilir s g

3.2. Rle ile kontrol


Bir rleyi srebilecek bir devrenin semas genelde syle bir eydir: s
Vcc | ++ | _ _|_ _ Rle /\ Diode 1N4002 Bobini /\ | | ++ | | / 4.7K B |/ C paralel port >\/\/\/\/| NPN Transistor: BC547A or 2N2222A veri ucu |\ E | \ V paralel port >+ toprak ucu | Toprak

Vcc ucunu rlenin al ma gerilimine e it gerilimdeki bir kaynaga baglaynz (Genellikle 5 veya 12 Vdir). Elbette s s ki rle zellikleriniz kahve makinasna gre ayarlanm olmaldr. s Barmen, rleyi transistrden sonra, kollektr (C) ucu yerine, emetr (E) ucunun oldugu yere koyma meyilindedir. Bu kt bir denemedir ve transistr kt ynde etkiler ve sonu olarak da kt bir kahve ile neticelenebilir. 1N4002 diyodu, transistr rlenin ters akmndan korumak iin kullan ldr. Eger kullanmazsanz, bir sre s sonra transistr bozulabilir.

3.3. TRIAK ile kontrol #1


http://belgeler.org
Linux Kitaplg 8 / 14

Kahve Yapmak Nasl

Eger basit bir devre istemezseniz, Motorolann triyak srcs olan MOC301[012]i, SC141D gibi genel amal bir triyakla kullanabilirsiniz. Bu yntemin getirisi, ilave bir g kaynagna ihtiya duymamanzdr. Endktif olmayan ykler iin, i te devre: s
270 1 ++ 6 180 +5v VAVAVA+ +VAVAVA+ Faz 2 | MOC | | TTL in + 3012 +nc VA SC141D | | 4 / | nc+ +/ | ++ +\/\/\/ Ntr LOAD

Eger 220V ile al acaksanz, bir 3021 edinmeye al n. Endktif ykler triyaka paralel kapasitrler ile birlikte s s kullanlmaldr, en iyisi Motorola Application Note AN780a ba vurun. Kahve makinalar genelde diren gsteren s yklerdir ve (bir motor gibi) endktif degildir, fakat sizinkinin ne oldugunu kim bilebilir?

3.4. TRIAK ile kontrol #2


+5VDC | 180 180 2.2k +/\/\/\++ +/\/\/+/\/\/\+> | 1| |6 | | | +=====+ | | MT1 | | MC | TRIAC | ++ | | 3032| Src | G | | TRIAC | +=====+ | /| | \| 2| |4 | / ++ 2N3904 |+ | | | | MT2 /| | + | + | V | | | | | > | > | | > 43 .01u 10k > | | > 500V > | | | | | | ++ | | | | +++o o> |/ Yk >/\/\/\| 2N3904 |\ V | ///

120V Faz

Ntr 120V

Bu devre 120V iin tasarlanm tr. 220V iin direnleri uygun sekilde ayarlamalsnz. s MC3032 bir TRIAK src optoizolatrdr. 180ohmluk diren optoizolatr iindeki LED emetr iin akm ayarlar. Daha uygun akmlar almak iin eger gerekliyse bu direncin degerini degi tiriniz. s Bir yk olmadan bu devreyi kontrol edemezsiniz. TRIAK herhangi bir AA gerilim kaynag olmadan

http://belgeler.org

Linux Kitaplg

9 / 14

Kahve Yapmak Nasl

al mayacaktr, bu yzden basit bir anahtarlama iin sebeke gerilimi ve yk uygulamadan al trmak mmkn s s degildir. .01uFlk kapasitrn 500Vluk olmasna dikkat ediniz.

4. Yazlm
4.1. Programlama
A agdaki i lemleri yapan al trlabilir bir program olu turmalsnz: s s s s

ioperm ile ekirdegi agrarak, Girdi/kt adres uzay iin izin alnz: rn, operm(BASE, range ,1);
Paralel portta 05V olu turmak iin d ar bir istekte bulununuz: rn, outb(1, BASE); s s Kahve yaplana kadar yeterince bekleyiniz. Bu zaman dilimini komut satrna bakarak geirmek gzel olabilir. Daha sonra kahve makinasn kapatlacaktr: outb(0 , BASE); Sonlanmadan nce ioperm(BASE, range, 0); ile paralel porta geri dn yaplmaldr. s

BASE degerini /dev/lp0 iin BASE = 0x3bc olarak, /dev/lp1 iin 0x378 ve /dev/lp2 iin 0x278
olarak ve bu sekilde 8 farkl durum iin d nerek degi tiriniz. s s Programnz setuid olarak ayarlamanz gzel olurdu, bylece herkes kahve iebilir.

4.2. Aygt srcs


Bir aygt srcs yazmak iin yalnzca http://en.tldp.org/LDP/khg/HyperNews/get/khg. html adresindeki belgeyi (kernel hackers guide) okuyun, bunu ayn zamanda kullanc uzaynda da yapabilirsiniz. Ltfen bunu bir modl olarak derleyin ki bizlerde her kernel gncellemesinde, kernel derlemek zorunda kalmayalm. Daha sonra sunu yazn:
# echo cappuccino >/dev/coffee

Ve sonra bir dakika iinde scak kahveniz olacaktr! Sadece rootun kahve yapmasn isteyip istememenize gre, /dev/coffee aygtna uygun eri im yetkilerini veriniz. s Bu yntemin getirisi, paraler port veya benzeri bir yerden gelen ACK kullanarak kahve makinasndan bir geri besleme saglamasdr, bylece akll kahve makinalar, hazr olduklarnda bir kesme gnderebilirler. Alessandro Rubini ve Jonathan Corbetin muhte em Linux Aygt Srcleri (B6)ni okuyup apraz Linux Refers (B7) ans ndaki kodlar al tktan sonra bunu kendiniz yapmaya al n. s s

4.3. Internet ile baglant


Eger kontrol programn C ile yazdysanz (yukary inceleyiniz), sadece bir CGI betigi yazarak kahve maki nasn AIK veya KAPALI konuma getirmeli veya daha karma k komutlar gndermelisiniz. Gzel web sayfalar s hazrlayarak, nasl kahve yaplacagn ve apache sunucusuna nasl konulacagn anlatmalsnz. LAMP teknolojisi, (Linux, Apache, MySQL, [Perl|Python|PHP]), kullanc ayarl mkemmel bir kahve sisteminin yaplmasnda yardmc olacaktr. Gelecekte bir gn, programlar daha karma k hal aldgnda, ak tabanl programlamaya (FlowBased Pros s gramming) gemek istebilirsiniz: http://www.jpaulmorrison.com/fbp/. Byk bir kahve makinas iin ne byk bir tesadf!

http://belgeler.org

Linux Kitaplg

10 / 14

Kahve Yapmak Nasl

5. Tam bir Turing Kahve Makinasn Olusturmak


Erkeklerin erkek oldugu ve kendi kahve makinalarn yaptklar eski gnlerin zlemini duyar msnz? Bu blm akll, zeki bir kahve makinas olu turmakla ilgili olucaktr. von Neuman mimarisinde bir bilgisayar s tasarm olucak, CPU, ROM/RAM ve I/Odan olu acak, genel kullanma ak olacaktr, ki bunlar Turing Makis nas(B9) olarak da bilinmektedir.

5.1. Uygun bir assembly dili


CISC veya RISC gibi diger popler sistemlerin tersine, bizim makinamz MISC olacaktr: MonoInstruction Set Computer! Ne yazk ki, bizim i lemcimiz sadece bir komut alglayabilecek ve sizin 3GHz Pentium 4 i lemcinizin s s gerekle tirdigi herhangi bir eylemi yeterli zaman ve bellek verilirse gerekle tirebilecek ya da simle edecektir; s s hesaplanabilir bir problemi a agdaki gibi kodlar al trarak zebilecektir: s s
SBN SBN SBN SBN SBN SBN [...] $mem1, $mem2, $mem3, $mem4, $mem5, $mem6, $addr1 $addr2 $addr3 $addr4 $addr5 $addr6

Sihirli SBN $mem, $addr (Subtract and Branch if Negative) komutu, $mem bellek gzndeki veriyi almakta, sayilarn tutuldugu akmlatrden bu degeri karmakta (A, bu mimarideki tek yazmatr), daha sonra bunu $mem bellek gznde ve akmlatrde saklamaktadr: [mem] <= A <= A[mem]. Eger sonu negatifse, sadece o zaman, $addr ile belirtilen tasarm adresine dallanmaktadr. Eger $addr bir sonraki komutu i aret s ediyorsa o zaman ko ullu bir dallanma yaplmam olur. Simdi, elinizdeki bu komutla, karma, toplama, bellek s s adresini sfrlama, baytlar evirme, arpma, kyaslama ve benzerlerini gerekleyebilirsiniz. En gzeli ise, optimize edecek bir derleyici tasarlayabilirsiniz. Bu gerek bir Turing Makinas problemi iin harika bir sistemdir, art orjinal Turing Makinasna gre de kodlamas daha kolaydr!

5.2. Donanm ve arayz


Yeniliki MIPS i lemcinizin en iyi taraf, komutlarnzn opkod ksmlarn saklamak iin 0 bite ihtiya duys manzdr. Bu da i lemcinizi ok ok daha basit hale getirir: Her seferinde bir iki degi keni okumanz gerekes s s s s cektir. slemcinizin yapabildiklerini, SBN komutunun i ledigi degi ken saysn 3 veya 4e kararak geli tirmek I isteyebilirsiniz, bylece artk dogrudan bellekten veri okuyup, bellege yazabilecektir. Bu, okuyucuya braklan bir (B10) denemedir, yce google a bir sorun. slemci diyagram su sekilde gzkr: I
<========= ADDRESS BUS ==============> = = = ++ = = | CONTROL | = ++ ++ | ALU & A | | Program Counter | ++ ++ = | LOGIC | =

http://belgeler.org

Linux Kitaplg

11 / 14

Kahve Yapmak Nasl

= ++ = = = <=========== DATA BUS ===============>

Simdi tek yapmanz gereken bir ka bellek ipini bir araya getirmek, mesela eski 386 bilgisayarnzn RAMini ve ALU birimini ve biraz da yap trc kullanabilirsiniz. Anahtar (latch) ve mantk devreleri iin TTL veya CMOS s kullanabilirsiniz; ben bir CMOS adamym, tabii bu tamamen sizin zevkinize kalm tr. 8, 16, 32, 64 bit veya hers hangi bir bitlikte sistemi ihtiyacnza gre tasarlayabilirsiniz. ok byk kelime geni liklerinin olmas durumuna s kar , nceden programlanm bir 27128 EPROMSu bir ALU ile beraber kullanmay, bulunmas daha zor olan s s 74x181sa tercih ederim. Elde bitini (carry propogation bit) de kontrol etmeyi unutmayn. Btn bu sistemin dogas sadece girdi/kt iin bellek adreslemesine izin verir, ift ynl tasarm iin daha zel ko ullara ihtiya duyari, fakat bu ihtiyalar, eski nesil sistemlerden daha acayip degildir. AGC(B11), Apollo 11i s aya gnderen bilgisayard ve bu tr sistemler kullanmaktayd, onun iin bylesi bir durumda yeterli olmaldr. Veri yolunun tam olarak adres yolu kadar geni olmas gerektigini unutmaynz, ki bu da byte kavramnn 8 bitlik s kahve makinalarna uygulanabilirligini ortaya koyuyor ki, bir zellikten ok bir hata olarak anlayacaksnz. 8 veya 16 bitlik yollara sahip bir kahve makinasyla nasl kahveler yapabileceginizi d ndke sa racaksnz. Bu, s s basit i ler iin tasarlanm , gerekten de genel amal bir donanmdr. s s

5.3. Yazlm
Bylesi saf bir sistem, gml sistem kontrolnde ok nl olan FORTH(B12) ile ok iyi uyu acaktr. En temel s gereksiniminiz, bir ygn yapsnn olmasdr, bu da bir bellek havuzuna bagl bir saya ile tasarlanabilir. Eger gerekten de ciddi bir kahve geli tirme platformu tasarlamak istiyorsanz, Cnin ta nabilirligi gerekten de s s bu zamanlarda bir zorunluluk olmu durumdadr. Yapabileceklerinizden birisi, gcc, lcc veya sdccyi krarak, zel s olarak tasarlanm MISC kodunda ince ayar yapmaktr. Belki ilerde siz de C diline benzer bir dil yazmak isteyes bilirsiniz, D yi kullanmay d nmeyin zaten alnd bunun iin de derleyicinizle ayn hatay yapmayn ve ltfen s su adrese gidip bilgileri okuyunuz: http://www.gnu.org/software/gcc/projects/beginner.

html
Kendi derleyicinizi yazmay d nmeniz halinde, ex, yacc ve ilgili konular okuyunuz. zellikle, Noam Choms skynin diller zerindeki snandrmasna hayran olacaksnz:

Dzenli dilbilgisi (Dzenli ifadelerin (regular expression) soyutlanmas) erikten bagmsz dilbilgisi (BNF aklamal herhangi bir dil buna girer) I

Simdilik bu kadar. Hesaplanabilirlik Teorisi (B14)ni okuyarak devam edebilirsiniz.

5.4. Turing Makinas zerine kk bir elestiri


Turing Makinas, al ma seklinden dolay (bunun iin su adrese baknz: http://plato.stanford. s edu/entries/turing- machine/), programlanmas ve gn sonunda da hatalarn bulunmas konusunda olduka zor bir cihazdr. Bunun sebebi a agdaki parametrelere bagml, sral bir i lem yapsna sahip ols s masndandr: 1. Makinann bulundugu durum 2. Bulundugu daire ierisinde aradg sembol ya da say, ve 3. Komut tablosu Turing Makinasnn (TM) en temel agda sorunlarndan biri, ard l yapsdr, kendi yapsyla yalnzca belli tipteki s s problemleri zebilirsiniz. TMler seri depolama aygtlar (teypler) ve veri referanslar iin indeksler kullanmayan

http://belgeler.org

Linux Kitaplg

12 / 14

Kahve Yapmak Nasl

problemlerin zm iin uygundur. Bu Kahve Makinas (KM) iin bir tezattr, nk rastgele eri imli isteklere s de cevap verebilmektedir (basitlikten ok da uzakla mayarak). s Buna ek olarak, TMler 3. maddenin ok yksek ve gereksiz karma klgn, 1. ve 2. maddeleri basit tutarak lehlers ine saglamaktadr. Ve eger, komut (instruction) tablosundakilerin karman orman oldugunu d nyorsanz, s Turing Makinas iin bir derleyici yazmaya ne dersiniz? Kolay programlanamayan ve de hatalar ayklanmayan bir sistem, en azndan bir bilgisayar mhendisi iin sorgulanmas gereken bir sistemdir. Mesela kahve makinasn Turing Makinas olarak simle etmeye al n ya da tam tersi. Hey, eger hala kabul etmiyorsanz, bana s kodu gsterin. Alt Satr: Kahve Makinas (KM), von Neuman mimarisinin iyi bir modelidir, O(1) karma klgna sahiptir. s

6. Asr doz belirtileri

heyecan sinir uykusuzluk kalp arpnts yorgunluk ga a r duyarllk s s degi ik ses etkilerine sinirli tepki verme s mide ve bagrsak rahatszlg

7. Belge Kapsamnn Genisletilmesi


Burada bahsedilen tm donanm ve yazlm, tostlara, elmal keklere, v.b...ne uygulanacak sekilde geni letilebilir s 8 Kahve Makinal bir kme (clusters). Birisi bitirse bile hemen kahvenizin hazr olmasn saglayacak. Elbetteki biraz performans girdisi olacaktr. Paralelvektr kahve makinas, bir sonraki srm olacaktr Maksimum kontrol/otomatik ynetim istiyorsanz, daha fazla devre ve sensre ihtiyacnz vardr, bylece su ak n, scaklg, kahve kalitesini, v.b... ni kontrol edebilirsiniz. s Yakn bir zamanda SNMP zelliklerini yazacagz. 115Kbps hznda seri kahve makinas

8. Daha Fazla Bilgi in I


http://db.uwaterloo.ca/~alopez- o/Coffee/coffaq.html Internetteki KahveSSS http://faculty.washington.edu/chudler/caff.html Kafein ve sinir sistemine etkileri http://www.gardfoods.com/coffee/coffee.coffee.htm nsalgn kahve bitkisiyle olan I
hikayesi. Afrikada insanlar 100,000 yldr kahve ignemektedir. Kahve Yemende de M. 525de ana vatan olmamakla beraber yeti tiriliyordu. s

http://www.faqs.org/rfcs/rfc2324.html RFC2324: Hyper Text Coffee Pot Kontrol Protokol (HTCPCP/1.0)

http://www.faqs.org/rfcs/rfc2325.html RFC2325: DamlatmaTipi Sv Istan cihazlarn


SMIv2 ile kontrol

http://belgeler.org

Linux Kitaplg

13 / 14

Kahve Yapmak Nasl

http://www.tldp.org/HOWTO/mini/IO- Port- Programming nl i letim sistemi Linux s


altnda Girdi/kt portlarnn programlanmas

http://www.ee.washington.edu/circuit_archive/circuits/F_ASCII_Schem_ PC.html ASCII de izilmi pek ok devre. Bazlar paralel port iin. s http://www.citr.auckland.ac.nz/~james/parport.html Paralel port hakknda
grenmek istediginiz ve sormaya cesaret edemediginiz her sey

http://dir.yahoo.com/Computers_and_Internet/Internet/Devices_ Connected_to_the_Internet/Coffee_Machines/ evrim ii kahve makinalar. Maalesef henz benchmark testleri yok.

http://en.tldp.org/LDP/khg/HyperNews/get/khg.html Kendi aygt srclerinizi nasl


yazarsnz. Hadi, durmayn!

http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html Elektronikten ho lanan herkesin grmesi gereken Tomi Engdahln web sayfas s http://www.cs.su.oz.au/~bob/Coffee/index.html Bu kahve makinas sadece cappuccino yapabiliyor. Ykseltilmesi lazm!

http://web.archive.org/web/19980121162752/http://einstein.et.tudelft. nl/~janssen/ Hollandadan scak kahve http://www.cl.cam.ac.uk/coffee/coffee.html Truva odas Kahve Makinas http://www.menet.umn.edu/coffeecam/ CoffeCAM

Bu blmdeki baglar bazen zaman a mna ugramaktadr, onlar tekrar bulmak iin mkemmel yol bulma aracn s kullanabilirsiniz: http://www.archive.org/

Notlar
a) Belge iinde dipnotlar ve d baglantlar varsa, bunlarla ilgili bilgiler bulunduklar sayfann sonunda dipnot s olarak verilmeyip, hepsi toplu olarak burada listelenmi olacaktr. s Konsol grntsn temsil eden sar zeminli alanlarda metin geni ligine sgmayan satrlarn sgmayan s ksm karakteri kullanlarak bir alt satra indirilmi tir. Sar zeminli alanlarda karakteri ile ba layan s s satrlar bir nceki satrn devam olarak ele alnmaldr.

b)

(B1) (B4) (B6) (B7) (B9) (B10) (B11) (B12) (B14)

http://magaz.hellug.gr/ http://coffee.sf.net/ http://www.xml.com/ldd/chapter/book/index.html http://lxr.linux.no/source/ http://www.wordiq.com/definition/Turing_machine http://www.google.com/ http://www.sandroid.org/Apollo/ http://www.wordiq.com/definition/Forth_programming_language http://www.wordiq.com/definition/Computability_theory


Bu dosya (kahvenasil.pdf), belgenin XML biiminin TEXLive ve belgeler-xsl paketlerindeki aralar kullanlarak PDF biimine dntrlmesiyle elde edilmitir. s s

11 Subat 2007 http://belgeler.org


Linux Kitaplg 14 / 14

You might also like