├── source ├── people.md ├── science.md ├── video.md ├── article.md ├── discuss.md ├── message.md ├── preface.md ├── pdffooter.htm ├── md0.js ├── Makefile ├── convert.exe ├── mimetex.exe ├── title.md ├── tex2img.bat ├── metadata.xml ├── message3.md ├── header.htm ├── footer.htm ├── science1.md ├── license.md ├── reflink.md9 ├── editor.md ├── messageGPGPU.md ├── video1.md ├── home.md ├── people2.md ├── message2.md ├── info.md ├── people1.md ├── article4.md ├── article1.md ├── message1.md ├── article6.md0 ├── article6.md ├── discuss1.md └── article2.md ├── submit ├── Intro-Moving-Avg │ ├── cinput.bak │ ├── sma.py~ │ ├── Ma-Type1-Figure.aux │ ├── exp-avg.py~ │ ├── Ma-Type1-ztrans-Figure.aux │ ├── Ma-FIR-1.tex~ │ ├── .DS_Store │ ├── MA_N_4_freq.fig │ ├── Exp-Avg-Diagram.eps │ ├── Exp-Avg-Diagram.odg │ ├── Exp-Avg-Diagram.pdf │ ├── Intro-Moving-Avg.ctx │ ├── Intro-Moving-Avg.dvi │ ├── Intro-Moving-Avg.pdf │ ├── Intro-Moving-Avg.tex │ ├── Ma-Type1-Figure.dvi │ ├── Ma-Type1-Figure.jp2 │ ├── Ma-Type1-Figure.pdf │ ├── Ma-Type1-Figure.png │ ├── Intro-Moving-Avg.ctx~ │ ├── Ma-Type1-Figure.synctex.gz │ ├── Ma-Type1-ztrans-Figure.dvi │ ├── Ma-Type1-ztrans-Figure.png │ ├── Ma-Type1-ztrans-Figure.synctex.gz │ ├── Ma-FIR-1.tex │ ├── sma.m~ │ ├── Intro-Moving-Avg.xlg │ ├── build │ ├── DC-Blocker-1.tex~ │ ├── sma.m │ ├── DC-Blocker-1.tex │ ├── sma.dat │ ├── Intro-Moving-Avg.tex~ │ ├── missfont.log │ ├── ExpAvgZTrans.tex │ ├── Ma-Type1-Figure.tex │ ├── Ma-Type1-Figure.tex~ │ ├── ExpAvgZTrans.tex~ │ ├── Ma-Type1-ztrans-Figure.tex │ ├── MA-Type1-z-trans.tex~ │ ├── Fibonacci.tex │ ├── Fibonacci.tex~ │ ├── MA-Type1-z-trans.tex │ ├── MA-Type1.aux │ ├── MA-IIR-ztrans.tex │ ├── sma.py │ ├── Fibonacci.aux │ ├── ExpAvgTimeEqn.aux │ ├── ExpAvgZTrans.aux │ ├── MA-IIR-ztrans.aux │ ├── MA-Type1-z-trans.aux │ ├── MA-Type1.tex~ │ ├── ExpAvg-Alpha-1over16.tex │ ├── ExpAvgTimeEqn.tex │ ├── ExpAvgTimeEqn.tex~ │ ├── MA-Type1.tex │ ├── exp-avg.py │ ├── cinput.tex │ ├── avg_exp.dat │ ├── Ma-Type1-Figure.log │ └── Ma-Type1-ztrans-Figure.log ├── iNEXT.zip ├── Intro-Moving-Avg.zip └── __MACOSX │ └── Intro-Moving-Avg │ ├── ._.DS_Store │ └── ._Intro-Moving-Avg.pdf ├── code.zip ├── book ├── A4.pdf ├── A4.epub ├── ipad.epub └── ipad.pdf ├── img ├── Pong.jpg ├── Pong.png ├── RFig1.jpg ├── RFig2.jpg ├── cover.jpg ├── AvgFig1.jpg ├── AvgFig10.jpg ├── AvgFig11.jpg ├── AvgFig2.jpg ├── AvgFig3.jpg ├── AvgFig4.jpg ├── AvgFig5.jpg ├── AvgFig6.jpg ├── AvgFig7.jpg ├── AvgFig8.jpg ├── AvgFig9.jpg ├── coverA4.png ├── prefix1.JPG ├── prefix2.JPG ├── prefix3.JPG ├── prefix4.JPG ├── prefix5.JPG ├── prefix6.JPG ├── ChisqPPlot.jpg ├── LOLChampion.png ├── ArduinoServo1.png ├── ArduinoServo2.png ├── Nolan_Bushnell.jpg ├── ArduinoServoBoard1.png └── ArduinoServoCircuit1.png ├── timg ├── 0010f24dbf35.jpg ├── 00cbaae89778.jpg ├── 01dba172fdeb.jpg ├── 020e71d9cec6.jpg ├── 042c0e6771cd.jpg ├── 05612f0a5794.jpg ├── 08e08af8fcf1.jpg ├── 0a55ffecc693.jpg ├── 0aa37261b1c3.jpg ├── 0dcb2bf4d557.jpg ├── 0e1443164864.jpg ├── 14d4aa16392d.jpg ├── 156736be7191.jpg ├── 1678f3e8aff5.jpg ├── 1ac98cbacf5d.jpg ├── 1b47eeb41ee1.jpg ├── 1b67371903c9.jpg ├── 1c3d0a61f717.jpg ├── 1c9ac1f07d71.jpg ├── 1d2ab0938302.jpg ├── 20cd69035be5.jpg ├── 25c061178b1b.jpg ├── 2bc64e7b7791.jpg ├── 2dcf57924d26.jpg ├── 2f6a5e5c59f0.jpg ├── 32960354f0b9.jpg ├── 342551799b8b.jpg ├── 3a3ea00cfc35.jpg ├── 3ae2e9294398.jpg ├── 3bad11696277.jpg ├── 40853c87a0e1.jpg ├── 4247fc4e9559.jpg ├── 4402073c9654.jpg ├── 4424522a20fd.jpg ├── 4577c29298a5.jpg ├── 474abe12bfc3.jpg ├── 4b43853d059b.jpg ├── 4c3aa1bbc317.jpg ├── 4dac25bca00f.jpg ├── 4e4867259d13.jpg ├── 4f08e3dba63d.jpg ├── 5263eb30532a.jpg ├── 537e42306196.jpg ├── 5467ce985981.jpg ├── 55202c2e6d17.jpg ├── 5575f4ceb7ec.jpg ├── 55f3f49d7a89.jpg ├── 571ca3d7c7a5.jpg ├── 58b5664cb90e.jpg ├── 58fff8209500.jpg ├── 59bdf0ba696e.jpg ├── 5adf65d04b87.jpg ├── 5b69bc2712cc.jpg ├── 5bda4e3ebc5d.jpg ├── 5dbc98dcc983.jpg ├── 5e2f33ebf381.jpg ├── 5efeebd0f700.jpg ├── 5f569369b46d.jpg ├── 60855b83ca47.jpg ├── 60c13e05d3ec.jpg ├── 61f5525b072e.jpg ├── 628b9a326ba9.jpg ├── 68c6edd176d1.jpg ├── 6b90439c29bf.jpg ├── 6d23a1099e1e.jpg ├── 6db5f6c29040.jpg ├── 6e61fe64d722.jpg ├── 6e88e3b57497.jpg ├── 70a0f27af98f.jpg ├── 74dceb1a25f0.jpg ├── 7505c1e8a38a.jpg ├── 75309442d573.jpg ├── 75edc6420794.jpg ├── 76970b1b1111.jpg ├── 770530eadce1.jpg ├── 78155d2ec4b0.jpg ├── 7832dac13bec.jpg ├── 7b4fb4b370b0.jpg ├── 7b7f9dbfea05.jpg ├── 7b8b965ad4bc.jpg ├── 7d433fbb1182.jpg ├── 81ffcf4cdde6.jpg ├── 8355332d57a2.jpg ├── 83c72463717c.jpg ├── 840fc8faa95c.jpg ├── 865c0c0b4ab0.jpg ├── 877a5ca0f4fa.jpg ├── 8860d8433aff.jpg ├── 88a68437ce17.jpg ├── 8de2b7e93bf6.jpg ├── 8ece14977518.jpg ├── 8ed89aa7b851.jpg ├── 9072920d51e8.jpg ├── 90bff388daef.jpg ├── 915e65791a39.jpg ├── 91c474acddee.jpg ├── 92e4da341fe8.jpg ├── 93c4119f2946.jpg ├── 99053e25ea01.jpg ├── 9b3e1452602d.jpg ├── 9dad43eddec9.jpg ├── a0a9427f99fb.jpg ├── a4268c738e93.jpg ├── a4efefe3444a.jpg ├── a82e036aca4f.jpg ├── a83ea75f5993.jpg ├── a918f5a94a3f.jpg ├── af588ddfed0e.jpg ├── afe2179e08f3.jpg ├── b0603860fcff.jpg ├── b096cbc3716d.jpg ├── b26c3c7d1354.jpg ├── b4c61a87a281.jpg ├── bbe5b9e9cfa0.jpg ├── bcb89257537a.jpg ├── bcce8d1a60ac.jpg ├── bdd9365a07ff.jpg ├── c0b5b2681cfd.jpg ├── c0e40ebe71d7.jpg ├── c39e022d2205.jpg ├── c50db37f8175.jpg ├── c928907f07c3.jpg ├── c9c3e3a5b193.jpg ├── c9faf6ead2cd.jpg ├── cb03916a7df7.jpg ├── cbfd9235adc8.jpg ├── cc6b8d4028dc.jpg ├── ce9249c8a8b7.jpg ├── d2606be4e0cd.jpg ├── d31371910256.jpg ├── d378a88523cf.jpg ├── d70d5b85ce83.jpg ├── ddd793090e4a.jpg ├── dddbde759064.jpg ├── deea0a27a5b3.jpg ├── e0093af2f546.jpg ├── e21ff5d2c6ad.jpg ├── ea2cd385799b.jpg ├── f67ed6db9325.jpg ├── f6e1a81168e2.jpg ├── f75c218c9489.jpg ├── fb3a60fa09df.jpg ├── fd6442230b9c.jpg ├── fd820c985ac2.jpg ├── fee9fbc99e90.jpg └── ff6846bb3c64.jpg ├── code ├── mcu0m.hex └── mcu0m.v ├── htm ├── article.html ├── message.html ├── people.html ├── video.html ├── preface.html ├── science.html ├── discuss.html ├── message3.html ├── title.html ├── science1.html ├── editor.html ├── license.html ├── messageGPGPU.html ├── people2.html ├── video1.html ├── message2.html ├── home.html ├── people1.html ├── info.html ├── message1.html ├── article1.html └── article4.html └── css └── pmag.css /source/people.md: -------------------------------------------------------------------------------- 1 | 2 | # 人物速寫 3 | -------------------------------------------------------------------------------- /source/science.md: -------------------------------------------------------------------------------- 1 | # 程式與科學 2 | -------------------------------------------------------------------------------- /source/video.md: -------------------------------------------------------------------------------- 1 | 2 | # 影音頻道 3 | -------------------------------------------------------------------------------- /source/article.md: -------------------------------------------------------------------------------- 1 | 2 | # 程式人文集 3 | -------------------------------------------------------------------------------- /source/discuss.md: -------------------------------------------------------------------------------- 1 | # 程式人討論區 2 | 3 | -------------------------------------------------------------------------------- /source/message.md: -------------------------------------------------------------------------------- 1 | 2 | # 程式人短訊 3 | -------------------------------------------------------------------------------- /source/preface.md: -------------------------------------------------------------------------------- 1 | # 前言 2 | 3 | 4 | -------------------------------------------------------------------------------- /submit/Intro-Moving-Avg/cinput.bak: -------------------------------------------------------------------------------- 1 | 0 0 2 | -------------------------------------------------------------------------------- /source/pdffooter.htm: -------------------------------------------------------------------------------- 1 |
# 程式人文集
17 |# 程式人短訊
17 |# 人物速寫
17 |# 影音頻道
17 |國立成功大學全國中小學科普教育生根計畫:夏令研習營 -- 2013夏令研習營
17 |【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】
27 |在本期的「程式人雜誌」中,聚焦的一個主題是「電子玩具」,像是樂高 MindStorm、電子積木等等,甚至像 Arduino 與 Raspberry Pi 等我也認為可以變成玩具,我認為這類的玩具的開發空間還很大,像是學習有線無線通訊的玩具到目前為止 我就還找不到,自己動手用 Arduino 與 Raspberry Pi 做四軸飛行器等也可以算是某種玩具。
23 |目前、3D 印表受到了很大的注意、但事實上像是 FPGA 、電路板雕刻機與電路印表機等技術也正在發展當中,未來或許 真的有機會將「工廠搬回家」,在家生產電子玩具的原型也說不定。而像麵包板、手動焊接等傳統方法也是可以訓練 電路知識的好方法,加上電腦軟體模擬的技術,像是 Spice 與 Verilog 之類的軟體設計模擬方式之後,筆者相信可以整合 一套很好的電子教學方法,讓小孩也能輕易的學會這些專業知識的。
24 |在程式人文集當中,雖然「 R 統計軟體與 JavaScript 系列」暫時結束了,但是我們將加入像「C 語言秘技」等系列文章, 祝大家閱讀愉快。
25 |---- (程式人雜誌編輯 - 陳鍾誠)
26 |本雜誌採用 創作共用:姓名標示、相同方式分享 授權,若您想要修改本書產生衍生著作時,至少應該遵守下列授權條件:
23 |另外、當本雜誌中有文章或素材並非採用 姓名標示、相同方式分享 時,將會在該文章或素材後面標示其授權,此時該文章將以該標示的方式授權釋出,請修改者注意這些授權標示,以避免產生侵權糾紛。
28 |例如有些文章可能不希望被作為「商業性使用」,此時就可能會採用創作共用:姓名標示、非商業性、相同方式分享 的授權,此時您就不應當將該文章用於商業用途上。
29 |最後、懇請勿移除公益捐贈的相關描述,以便讓愛心得以持續散播!
30 |【本文由陳鍾誠取材並修改自 維基百科 ,採用創作共用的 姓名標示、相同方式分享 授權】
34 |還記得去年我在萬華萬大路的一家隱身於巷子內的超難找小店裏,買了一盒「電子積木」玩具, 那盒積木大概就像下列淘寶網電子積木分類下的這些玩具一樣
23 |但是、由於今年淘寶透過全家便利店直接攻入台灣,現在您應該可以輕鬆的透過「全家取貨」的方式買到這類的東西了。
27 |雖然這樣的電子積木,在技術層次上並不是非常高,但是卻是真正能量產,能夠賣到商場與玩具店的一種教學產品。
31 |令人意外的,在中國大陸,這類型的電子積木,卻是由一位王文渭老先生所發明的,以下是節錄自 互動百科:王文渭 的一段描述:
32 |33 |37 |1988年,王文渭還是湖北省電業技工學校電子老師,在實際的電子教學過程中,為了讓學生更形像更直觀的了解電子電路,王老師根據多年的實際教學經驗,發明了多用電子電工實驗裝置,專門用於電子電路實驗教學。此方法在老師和學生中大受歡迎。後來此裝置還獲得了國家教育部實驗教學的特等獎。
34 |1995年,王老師進一步改善了萬用電子積木,並重新申請了專利。於是,一款用於兒童早教、開發智力的兒童玩具終於誕生了。這項發明,在電子玩具領域內,不僅在國內尚屬首例,在國際市場上也是空白!
35 |1996年,王老師在朋友的介紹來,來到了杭州,此時杭州有兩家企業願意與他合作,王老師終於選擇了其中一家公司,簽訂協議後,成立了杭州科林電子有限公司,主打產品《百變電子圖》。科林公司為了盡快讓這一產品推廣到市場,通過教育部門,在全國範圍內舉辦了中小學生電子競賽。通過這場競賽,百變電子圖終於走進了千家萬戶。在與科林的三年合同期間,百變電子圖為公司帶來了近千萬元的營業額,萬老師也從中獲取了相應的報酬!而王老師的“電子要從娃娃抓起的目標”終於實現了!
36 |
以下是互動百科中有關這種電子積木的介紹:
38 |另外、大陸也有一些電視節目訪問並介紹了「王文渭」老先生,以下是其中的幾段訪問。
42 |關於這些電子積木的玩法,您可以參考下列的影片:
46 |這樣的玩具讓我想起在我小時候的台灣,有一款玩具叫做「動動腦」,您可以在以下網址看到這種玩具。
52 |我很喜歡像「動動腦」這類的玩具,而且「動動腦」赤裸裸的將「電容、電阻、電感」呈現在小孩的眼前,玩的時後感覺更加有意思, 只是入門的難度會更高一些,而且對兒童恐怕會有一些安全性的問題。
56 |我在想,如果能將 Arduino、Raspberry Pi、與麵包板之類的電子實驗器材,改造成安全性較高的玩具,那應該對小孩會是一個很有 吸引力的東西,樂高的 NXT MindStorm 就是一個成功的範例,不過如果能夠進一步納入 FPGA 之類的設備,讓小孩也能自行學習 設計 CPU、甚至是無線收發模組,那我想對激發小孩的學習潛力而言,應該會有很好的效果才對。
57 |對於台灣的五年級 (民國 50 年代出生) 的朋友們而言,可能很多人都玩過那種小型的掌上遊戲機, 但是大部分的人可能不瞭解這類電動遊戲的歷史,以下的影片用較通俗的方式介紹了電玩的歷史。
23 || History of Video Games | 27 |內容簡介 | 28 |連結 | 29 |
|---|---|---|
| 前言 | 34 |Making of | 35 |http://youtu.be/YqJEgA93KEo | 36 |
| 第 1 集 | 39 |steve russell, computer space, spacewar | 40 |http://youtu.be/Egw-EdMVZ4w | 41 |
| 第 2 集 | 44 |Magnavox Odyssey Ralph Baer | 45 |http://youtu.be/BNkDjQPdlu0 | 46 |
| 第 2B 集 | 49 |Magnavox Odyssey Light Rifle Gun | 50 |http://youtu.be/WyXwqJOyDUY | 51 |
| 第 3 集 | 54 |PONG, Space Race, Gotcha, Gran Trak 10 | 55 |http://youtu.be/Or35jROrkmc | 56 |
| 第 4 集 | 59 |steve russell, computer space, spacewar | 60 |http://youtu.be/XgzJWYNtVJY | 61 |

圖、第一個進入生活領域的 Pong 電玩遊戲
66 |看到上面的「乒乓球」遊戲,真的讓我想起很小的時候,曾經看過且玩過這樣的遊戲機,而後來的「小蜜蜂」 、「小精靈」等遊戲,還曾經造成很多小學生在電動玩具店流連忘返。
68 |我記得在我小學一年級左右,台灣街頭巷尾都有人在店裏擺上一台電動機台,小孩投兩塊錢好像就可以玩一次, 那時候我很喜歡玩「小精靈、小蜜蜂」之類的遊戲,可惜功力太差,常常不到兩分鐘就掛了。
69 |但是我的大哥後來練到功力很好,結果怎麼打都不會掛,還常常引起一堆人在旁圍觀,一打就是一個小時, 結果 .... ,我的老爸聞風而來,把他給捉回去,然後就禁止他打電動了。
70 |而我、則是因為功力太差,反而逃過一劫 ...
71 |【本文由陳鍾誠取材並修改自 維基百科,採用創作共用的 姓名標示、相同方式分享 授權】
77 |最近兩年在 3D 印表機的帶頭之下,興起了一個 Maker 熱潮,雖然 3D 印表已經存在了幾十年了, 但是這類的技術最近激起了很多人的希望,或許有機會可以將不少原本只有在工廠可以做出來的東西 搬回家裏做也說不定。
23 |以下我們將介紹一些類似 3D 印表機的原型技術,這些技術很多都還在發展當中,尚未真正的商品化, 但有些卻是已經很成熟的老掉牙技術了,不過一但這些技術成功的進入家庭,都會對 Maker 運動產生 正面的影響。
24 |電路印表機是一種可以印出電路的機器,據說這種印表機的成本相當的便宜,大約台幣一萬元左右而已, 而且一分鐘之內就可以印出一張電路。
26 |如果有了這樣的一台印表機,那麼我們用電腦設計的電路就可以直接被印出來,這對開發電子產品的原型將會是一大神器。
32 |既然可以用印的,那當然也可以用畫的,電路手寫筆 Circuit Scribe 就是這樣一支神奇的筆,您只要畫一畫, 筆經過的地方就成了可導電的線路,這樣我們就不太需要接麵包板,只要畫一畫之後,再把元件接上去就好了。 以下是 Circuit Scribe 在 KickStarter 網站上募資時釋出的網址與影片,真是令人期待啊!
34 |除了以上這些比較新穎的技術之外,其實麵包板就是一種原型設計工具,而最近興起的 Arduino、Raspberry Pi 這類 開源硬體,則降低了開發電子產品原型的難度,讓我們可以在家裏設計電子產品,我想這也是為何最近 Maker 運動如火如荼 的重要原因。
39 |但是、還有一些已經很成熟的技術,其實對製作原型也很有幫助,甚至可以讓工業技術進入家庭,或者成為玩具的, 例如像是樂高的 NXT MindStorm 機器人套件,其實某種程度上也是一種電子產品的原型設計工具。而像 Altera 與 Xylinks 這兩家廠商主宰的 FPGA 技術,則可以讓我們輕易的設計出非常複雜的數位電路,像是 CPU 等等,這些工具 對筆者而言,都是某種原型開發工具,這類工具在大學老師教電子資訊類學生的時候,會有很大的幫助, 這也是筆者為何特別關注這類技術的原因。
40 |除此之外,近來在 Maker 運動與 KickStarter 之類的募資管道合力下,很多原本很難跨入的領域,也都有了進入家庭的可能, 像是以下的 HackRF 專案,就企圖設計出一組開放原始碼的高功能 RF 模組。
41 |未來這些硬體裝置如果能與開放原始碼的軟體,像是 GNU Radio 等結合,那麼無線通訊產品的開發也可能透過這些進入家庭。
45 |另外、筆者也特別對 Papillo 這個將 FPGA 技術開放原始碼的專案特別有興趣,一但這樣的技術能夠接上開放原始碼的 EDA 工具, 那麼就有可能突破 Altera 與 Xylinks 等廠商的壟斷型態,將 FPGA 這種強力的原型技術納入開源的版圖,於是我們就可以在這種 開源環境下設計「開源的數位電路」,再搭配像電路印表機與手寫筆等技術,或許只要一台電腦就可以開發任何數位類比電路了也說不定。
46 |如果您有看到哪些有趣的原型技術,也歡迎分享到 科學玩具實驗室 與 程式人雜誌社團 讓我們知道, 也歡迎加入這些社團與我們一同研究「程式、原型與玩具」等技術。
50 |程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌。
18 || 出刊年月 | 23 |epub | 24 |ipad:PDF | 25 |A4:PDF | 26 |單頁 HTM | 27 |原始碼 | 28 |
|---|---|---|---|---|---|
| 2013年12月 | 33 |epub | 34 |ipad.pdf | 35 |A4.pdf | 36 |pmag.html | 37 |code.zip | 38 |
程式人雜誌預定於每個月 1 日出刊,您可以從下列網址取得程式人雜誌的所有內容 (包含當月最新出刊的雜誌)。
75 | 78 |竭誠歡迎程式人投稿,或者成為本雜誌的專欄作家,現在就可以加入 程式人雜誌社團 一同共襄盛舉。
80 |本雜誌編輯為「陳鍾誠 (@ccckmit)」,若要聯絡編輯,請寄信到 。
86 |
圖、Atari 的創辦人 Nolan Bushnell
24 |1968年,Nolan Key Bushnell 從美國猶他大學畢業,當時的他應該不會想到,自己後來成為電玩史上的 傳奇人物。
27 |1971年, Nolan Bushnell 與 Ted Babney 建造了《宇宙戰爭》的投幣式街機版本,稱為《電腦空間》。 後來 Nutting Associates 取得該遊戲授權並大量製造了 1500 部,於 1971 年 11 月發行。 雖然該遊戲因各種困難而不太成功,但卻樹立了標竿,成為第一個大量製造並供商業銷售的電子遊戲。
28 |1972年,Nolan Bushnell 與 Ted Babney 兩人又再度攜手創辦了 Atari 公司,並且推出了革命性的 乒乓遊戲 (Pong),以下是該遊戲的一個畫面。
30 |
圖、乒乓遊戲 Pong 的一個畫面
32 |1976年,為了開發新遊戲機,Bushnell 乾脆將整個公司以2800萬美元的價格出售給 「華納通訊公司」(Warner Communications)以便取得開發資金,並在進一步取得 1 億美元的追加投資後, Atari 公司在 1977 年 開發出型號為 2600 的遊戲機,成為該公司的經典代表作,這讓 1982 年 Atari 的年銷售額達到 20 億美元。
34 |1978 年,Nolan Bushnell 與華納通訊的老闆因公司經營方向產生爭執,於是只好離開 Atari 公司。
36 |離開後,他手上還有一家集合「快餐、遊戲和娛樂」於一體的 Chuck E. Cheese 的 Pizza 餐館,1981 年 Nolan Bushnell 將餐館交給他人經營,並創辦了 Catalyst Technologies 這家公司 (該公司是最早期的育成中心 business incubators 之一)。
37 |可惜的是, 1983 年時 Chuck E. Cheese 餐館出現了財務問題,並於 1984 年宣告破產。
38 |Catalyst Technologies 這家育成公司後來孵育出了 Androbot, Etak, Cumma, and Axlon 等公司,Axlon 後來創造出 不少受歡迎的產品,像是一隻泰迪熊 AG Bear,並為 Atari 2600 設計了兩款遊戲。而孵育出的 Etak 這家公司則成為 電子地圖的先驅,
39 |1990 年代 Nolan Bushnell 成了 PlayNet 這家公司的顧問,後來又在 2000 年成立了 uWink 這家數位娛樂公司,經營 類似網咖 (網吧) 的業務。然後在 2012 年又成立了 BrainRush 這家公司,致力於開發具有教育學習功能的電玩遊戲。
40 |2010 年 Atari 宣布 Nolan Bushnell 回到 Atari 的董事會,成為董事會的董事之一。
41 |Atari 公司的成功也對台灣產生了重要的影響,Atari 於 1980 年時在台灣的工廠每天可以生產1萬5000台遊戲機, 而且使用的連結器全都來自鴻海,是鴻海早期的主要客戶之一。
43 |當初為了取得 Atari 的連結器訂單,郭台銘跳過代理通路直接找上任職於 Atari 的方國健,宣稱擁有 「秘密武器」,可以將成本大幅縮減至「嚇死人的地步」,成功的透過方國健拿下了訂單。
44 |從 Nolan Key Bushnell 的故事中,我們可以看到一位創業家奮鬥的歷程。雖然在 Atari 之後,Nolan Bushnell 看來並沒有創造出非常知名的公司,但是這樣的一位創業家與遊戲領域先驅者,即使到了老年仍然不斷的奮鬥創業, 這是非常令人敬佩的啊!
46 |【本文由陳鍾誠取材並修改自 維基百科,內文採用創作共用的 姓名標示、相同方式分享 授權】
57 |程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌,如果您願意成為本雜誌的專欄作家,請加入 程式人雜誌社團 一同共襄盛舉。
29 |我們透過發行這本雜誌,希望讓大家可以讀到想讀的書,學到想學的技術,同時也讓寫作的朋友的作品能產生良好價值 – 那就是讓讀者根據雜誌的價值捐款給慈善團體。 讀雜誌做公益也不需要有壓力,您不需要每讀一本就急著去捐款,您可以讀了十本再捐,或者使用固定的月捐款方式,當成是雜誌訂閱費,或者是季捐款、一年捐一次等都 OK ! 甚至是單純當個讀者我們也都很歡迎!
30 |本雜誌每期參考價:NT 50 元,如果您喜歡本雜誌,請將書款捐贈公益團體。例如可捐贈給「羅慧夫顱顏基金會 彰化銀行(009) 帳號:5234-01-41778-800」。(若匯款要加註可用「程式人雜誌」五個字)
31 |給專欄寫作者: 做公益不需要有壓力。如果您願意撰寫專欄,您可以輕鬆的寫,如果當月的稿件出不來,我們會安排其他稿件上場。
33 |給網誌捐贈者: 如果您沒時間寫專欄或投稿,沒關係,只要將您的網誌以 [創作共用的「姓名標示、非商業性、相同方式分享」授權] 並通知我們,我們會自動從中選取需要的文章進行編輯,放入適當的雜誌當中出刊。
34 |給文章投稿者: 程式人雜誌非常歡迎您加入作者的行列,如果您想撰寫任何文章或投稿,請用 markdown 或 LibreOffice 編輯好您的稿件,並於每個月 25 日前投稿到程式人雜誌社團 的檔案區,我們會盡可能將稿件編入隔月1號出版程式人雜誌當中,也歡迎您到社團中與我們一同討論。
35 |如果您要投稿給程式人雜誌,我們最希望的格式是採用 markdown 的格式撰寫,然後將所有檔按壓縮為 zip 上傳到社團檔案區給我們, 如您想學習 markdown 的撰寫出版方式,可以參考 看影片學 markdown 編輯出版流程 一文。
36 |如果您無法採用 markdown 的方式撰寫,也可以直接給我們您的稿件,像是 MS. Word 的 doc 檔或 LibreOffice 的 odt 檔都可以,我們 會將這些稿件改寫為 markdown 之後編入雜誌當中。
37 |您也可以擔任程式人雜誌的編輯,甚至創造一個全新的公益雜誌,我們誠摯的邀請您加入「開放公益出版」的行列,如果您想擔任編輯或創造新雜誌,也歡迎到 程式人雜誌社團 來與我們討論相關事宜。
39 || 公益團體 | 48 |聯絡資訊 | 49 |服務對象 | 50 |捐款帳號 | 51 |
|---|---|---|---|
| 財團法人羅慧夫顱顏基金會 | 56 |http://www.nncf.org/ 02-27190408分機 232 |
62 | 顱顏患者 (如唇顎裂、小耳症或其他罕見顱顏缺陷) | 63 |銀行:009彰化銀行民生分行 帳號:5234-01-41778-800 |
64 |
| 社團法人台灣省兒童少年成長協會 | 67 |http://www.cyga.org/ 04-23058005 |
73 | 單親、隔代教養.弱勢及一般家庭之兒童青少年 | 74 |銀行:新光銀行 戶名:台灣省兒童少年成長協會 帳號:103-0912-10-000212-0 |
75 |
對於台灣的五年級 (民國 50 年代出生) 的朋友們而言,可能很多人都玩過那種小型的掌上遊戲機, 但是大部分的人可能不瞭解這類電動遊戲的歷史,在本期的程式人雜誌當中,我們會將焦點放在遊戲 與其相關產品的歷史介紹上。
23 |電玩遊戲起源於 1950 年代,Thomas T. Goldsmith Jr. 與 Estle Ray Mann兩人是第一位申請遊戲機專利者, 描述了一個用了八顆真空管以模擬飛彈對目標發射,包括使用許多旋紐以調整飛彈航線與速度的遊戲裝置, 但是當時的顯示技術還不夠成熟,結果只好改用單層透明版畫當目標,所以這個遊戲機不太好用。
25 |1951年,英國的 Christopher Strachey 寫出了西洋跳棋程式,1952年劍橋大學的 A.S. Douglas 發展出了 一個稱為《OXO》井字棋遊戲。1958年 William Higinbotham 利用示波器與類比電腦創造出了《雙人網球》遊戲。
26 |1961年,美國的 Steve Russell 等學生,於麻省理工學院的一部 DEC PDP-1 電腦中寫了一個名為《宇宙戰爭》 (Spacewar!)的遊戲。後來這款遊戲還在早期的網際網路上發售。因此 Spacewar 被認為是第一個廣為 流傳及具影響力的電子遊戲。
28 |1966年,Ralph Baer 發明了一個在標準電視上顯示的簡單電子遊戲:《追擊》(Chase)。 後來並幫助 Bill Harrison 一起製造了光線槍並於1967年與 Bill Rusch 共同開發了幾個電子遊戲。1968年他們發展出一個具有桌球及射擊等不同遊戲的原型機。
29 |1969年,C 語言發明人之一的 Ken Thompson 寫了一個在 Multics 系統上運行的《太空旅行》 (Space Travel)遊戲。後來 Ken Thompson 改用 PDP-7 撰寫,結果寫著寫著就創造出了 UNIX 作業系統, 而《太空旅行》也就成了 UNIX 的第一個應用程式。
30 |1971年9月,模仿《宇宙戰爭》的初代小蜜蜂遊戲(Galaxy Game)被安裝在史丹福大學的一個學生活動中心裏。 是第一個投幣式電子遊戲,而且該機器只有建造一部。
32 |1971年, Nolan Bushnell 與 Ted Babney 建造了《宇宙戰爭》的投幣式街機版本,稱為《電腦空間》。 後來 Nutting Associates 取得該遊戲授權並大量製造了 1500 部,於 1971 年 11 月發行。 雖然該遊戲因各種困難而不太成功,但卻樹立了標竿,成為第一個大量製造並供商業銷售的電子遊戲。
33 |有了上述的經驗, Nolan Bushnell 與 Ted Babney 兩人乾脆攜手於 1972 年創立了 Atari 公司, 並於同一年內就創造出 《乓》(Pong)這款遊戲,而且大獲成功,總共賣了19,000 部,以下是 Pong 這個遊戲 的畫面,或許您曾經玩過也說不定。
34 |
圖、Pong 遊戲的畫面
36 |1977年,Atari發行了名為 Video Computer System (VCS) 卡匣為主的遊戲機,後來改稱Atari 2600, 設計了9款遊戲並在假期季節發行。它迅速成為所有早期遊戲機當中最受歡迎的一款。
38 |後來日本開始踏進遊戲工業,1978年日本 TAITO 公司開發出的《太空侵略者》(Space Invaders)大賣, 遊戲產業開始進入美日兩國相互競爭的年代。
39 |1979 年的小精靈《Pac-Man》第一個在主流文化上廣受歡迎,並且是第一個遊戲角色以其自己本身形象 獲得大眾肯定的遊戲。
40 |街機黃金年代在1980年代到達了頂峰,很多在技術或類型上革新的遊戲在80年代前幾年紛紛出現。
42 |《3D怪物迷宮》(3D Monster Maze,1981年)是家用電腦上的第一個三維遊戲,而《戴格拉斯地下城》(Dungeons of Daggorath,1982年)則再添加了各種類型的武器與怪物、細緻的音效、和一個「心跳」的血條。《一級方程式賽車》(Pole Position,1982年)。
43 |1980年發行的《魔域》更進一步地使文字冒險遊戲在家用電腦上流行起來,並確立了開發商Infocom在這類型遊戲上的優勢。
44 |1982年8月,Commodore 64公開發行。它因為強勢行銷與優越價位造成其一開始就賣得火紅。
45 |1983年 SuperSet Software公司創造了《狙擊》(Snipes)這個文字模式的網路電腦遊戲,並在新的IBM PC架構下的電腦網路測試、展示遊戲功能。
46 |1984年一個真正的現代冒險遊戲隨著雪樂山《國王密使》系列誕生。
47 |BBS 在1980年代十分流行,因此有時被用來當作線上遊戲進行的平台。許多玩家透過 BBS 進行遊戲。遊戲類型從文字冒險到賭博遊戲如廿一點等。也有多人遊戲像是 MUD (Multi-User Dungeons) 等等,這些遊戲最終進化成今日眾所週知的 MMORPG(大型多人在線角色扮演遊戲)。
48 |任天堂的 Game &Watch 生產線在 1980 年開始生產 LCD 可攜遊戲機。 後來很多廠商也開始做。它們的體積很小,有些可以像手錶一樣可載在手腕上。
49 |電腦遊戲市場於 1984 年取代了家用機市場。1985年,北美的電子遊戲市場因任天堂在亞洲外被稱為任天堂娛樂系統(Nintendo Entertainment System,縮寫為NES)的8位元FC遊戲機(任天堂紅白機)的發行而復甦。該機隨機銷售《超級瑪利歐》,立即大賣。在新遊戲機裏,手柄取代了搖桿、旋鈕及keypad成為系統所包括的預設遊戲操縱器。一個備8個方向的指向柄(Directional-pad, D-pad)和2個或以上的行動鍵的手柄設計成為了當時的標準。
50 |1986年《勇者鬥惡龍系列》第一部《勇者鬥惡龍 I》發行,在日本文化上造成有史以來的奇蹟,又稱國民RPG。
51 |1990年代三維電腦圖像,伴隨著透過音效卡與光碟機的「多媒體」能力升級。1992年即時戰略遊戲(RTS)沙丘魔堡II發行。它當然絕不是該類型遊戲第一炮(許多其他遊戲足以被稱為非常原始的RTS,請參見即時戰略遊戲歷史),不過它為後來的票房RTS遊戲如魔獸爭霸、終極動員令、與星海爭霸定下了這類遊戲的標準技巧。
53 |1990年代Maxis開始發行它成功的《模擬XX系列》,從《模擬城市》(Sim City)開始,以其它不同的變種作為延續,如《模擬地球》(Sim Earth)、《模擬城市2000》(Sim City 2000)、《模擬螞蟻》(Sim Antz)、《模擬大樓》(Sim Towers)及2000年推出、後來燴炙人口的日常生活模擬器──《模擬人生》(The Sims)。
54 |1996年,隨著3dfx的Voodoo晶片上市,引領了第一個個人電腦上使用的平價3D加速卡。第一人稱射擊遊戲(如有名的《雷神之錘》)是其中第一個利用這新技術的。
55 |任天堂64沿用了卡匣而非CD-ROM,此舉帶來了較高的成本並引起遊戲廠商的不滿。值得一提的是,史克威爾把之前由任天堂家機平台獨佔的《最終幻想》系列轉給了PlayStation;1997年《最終幻想VII》的巨大成功,使 PlayStation成為該類遊戲的主要平台,並帶動RPG的流行。
56 |1998 年投入市場的Dreamcast,開啟了此世代的大門,但其銷路不佳,隨後在後繼機種出現前就淡出市場,SEGA 因此撤退到第三方遊戲開發市場。索尼以PlayStation 2 開啟新的紀元,該機器日後成為目前為止銷售最佳的家用機。
57 |在2001年年終之前,視窗作業系統暨專業生產力軟體巨擘微軟,挾家用機市場成熟與世嘉和任天堂的衰頹,以Xbox切入電子遊戲業。
59 |隨著價廉物美的寬頻網際網路連線在全球普及,許多出版商轉向時間計費線上遊戲,作為一種創新嘗試。大型多人在線角色扮演遊戲(MMORPG)號召了許多作品的賣座,如《魔獸世界》(World of Warcraft)與《最終幻想XI》(Final Fantasy XI)。此類遊戲主打PC市場,Xbox透過其內建的網路介面分了一杯羹。而PS2與GameCube缺乏上線能力,兩者後來都有這類連網附加週邊發行,但反響效果不如xbox live。
60 |2005年任天堂的 Wii Remote 成功的將手握型遙控體感裝置帶入家庭遊戲的領域,成為新一代家庭遊戲機的典範。
61 |2010年,微軟推出了 Kinect 改用身體當作體感裝置,搶食了 Wii 的市場。
62 |接著、蘋果推出的 iPad 大受歡迎,讓平板遊戲開始快速發展,整個世界進入了行動娛樂的新時代 .....
63 |【本文由陳鍾誠取材並修改自 維基百科,採用創作共用的 姓名標示、相同方式分享 授權】
69 |練習用可變電阻控制伺服馬達(Servo motor)的旋轉角度。
43 |
45 | 伺服馬達有三條線,電源(紅線)、接地(黑線),以及訊號線。
56 |
58 | 把伺服馬達紅線接到 +5v,黑線接到 GND,訊號線接到 pin 9 可變電阻中間腳位接到類比輸入(Analog Input) pin 0,剩下的兩支腳位,一支接到 5V,另外一支接到 GND
60 |
62 |
66 | RC 伺服馬達(Radio Controlled Servo Motor) 大部份是透過 PWM (Pulse Width Modulation, 脈波寬度調變)來控制,Arduino 裏內建了 Servo Library 讓事情變得很簡單,就算你對 PWM 不熟,也可以很輕鬆地控制伺服馬達。底下的程式碼示範 Servo Library 的使用方法(Servo.pde):
69 |// 引用 Servo Library
70 | #include <Servo.h>
71 |
72 | // 建立一個 Servo 物件
73 | Servo myservo;
74 | // 旋轉角度
75 | int value = 0;
76 |
77 | void setup()
78 | {
79 | myservo.attach(9); // Servo 接在 pin 9
80 | }
81 |
82 | void loop()
83 | {
84 | if (value == 0)
85 | value = 180;
86 | else
87 | value = 0;
88 |
89 | // 叫 Servo 旋轉角度:
90 | // myservo.write(0) 是叫 Servo 旋轉到 0 度的位置
91 | // myservo.write(180) 是叫 Servo 旋轉到 180 度的位置
92 | myservo.write(value);
93 | delay(1500);
94 | }
95 | 程式說明:
96 |// 使用可變電阻控制 Servo 的旋轉角度
102 | // by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
103 |
104 | // 引用 Servo Library
105 | #include <Servo.h>
106 |
107 | // 建立一個 Servo 物件
108 | Servo myservo;
109 |
110 | // 可變電阻接在 Analog pin 0
111 | int potpin = 0;
112 | // 儲存旋轉角度的變數
113 | int val;
114 |
115 | void setup()
116 | {
117 | myservo.attach(9); // Servo 接在 pin 9
118 | }
119 |
120 | void loop()
121 | {
122 | val = analogRead(potpin); // 讀取可變電阻(數值介於 0 到 1023)
123 | val = map(val, 0, 1023, 0, 179); // 把 0 - 1023 的數值按比例縮放為 0 - 180 的數值
124 | myservo.write(val); // 設定 Servo 旋轉角度
125 | delay(15); // 等待 Servo 旋轉指定的位置
126 | }
127 | 程式說明:
128 |請參考 makezine.com 做的這個影片,影片除了示範伺服馬達的控制外,也講解了線路的接法以及程式碼:
135 | 138 |【本文作者為馬萬圳,原文網址為: http://coopermaa2nd.blogspot.tw/2011/01/arduino-lab16.html ,由陳鍾誠編輯後納入本雜誌】
146 |Dim Stack() ' 建立一個堆疊
60 | Dim StackTop ' 堆疊頂端指標
61 |
62 | Private Sub StartInFo_Click()
63 | '-----中序轉後序-----
64 | ReDim Stack(Len(Text1)) ' 堆疊大小為整串大小 (避免出錯)
65 | StackTop = 0 ' 堆疊初始化
66 | Text3 = "" ' 一開始將輸出清空
67 |
68 | For i = 1 To Len(Text1) ' 一個一個字抓直到結束
69 | Select Case Mid(Text1, i, 1)
70 | Case "(" ' 放入堆疊中
71 | StackPush (Mid(Text1, i, 1))
72 | Case ")"
73 | ' 拿出來直到等於 "("
74 | Do Until Stack(StackTop) = "("
75 | Text3 = Text3 & StackPop
76 | Loop
77 | StackPop
78 | Case "+", "-" ' 如果堆疊頂端的權值大於等於讀入的值則先讀出 => "+","-","*","/"
79 | Do Until Stack(StackTop) <> "+" And Stack(StackTop) <> "-" And Stack(StackTop) <> "/" And Stack(StackTop) <> "*"
80 | Text3 = Text3 & StackPop
81 | Loop
82 | StackPush (Mid(Text1, i, 1))
83 | Case "*", "/" ' 如果堆疊頂端的權值大於等於讀入的值則先讀出 => "*","/"
84 | Do Until Stack(StackTop) <> "*" And Stack(StackTop) <> "/"
85 | Text3 = Text3 & StackPop
86 | Loop
87 | StackPush (Mid(Text1, i, 1))
88 | Case Else ' 除了括號或運算元直接放入
89 | Text3 = Text3 & Mid(Text1, i, 1)
90 | End Select
91 | Next i
92 |
93 | Do Until StackTop = 0 ' 將堆疊中的全部拿出來
94 | Text3 = Text3 & StackPop
95 | Loop
96 |
97 |
98 | '-----中序轉前序-----
99 | ReDim Stack(Len(Text1)) ' 堆疊大小為整串大小 (避免出錯)
100 | StackTop = 0 ' 堆疊初始化
101 | Text2 = "" ' 一開始將輸出清空
102 |
103 | For i = Len(Text1) To 1 Step -1 ' 從最後面開始做做到最前面,輸出也是從後面放到前面
104 | Select Case Mid(Text1, i, 1)
105 | Case ")" ' 放入堆疊中
106 | StackPush (Mid(Text1, i, 1))
107 | Case "(" ' 拿出來直到等於 ")"
108 | Do Until Stack(StackTop) = ")"
109 | Text2 = StackPop & Text2
110 | Loop
111 | StackPop
112 | Case "+", "-" ' 拿到直接讀入的值 <= 堆疊頂端的值
113 | Do Until Stack(StackTop) <> "*" And Stack(StackTop) <> "/"
114 | Text2 = StackPop & Text2
115 | Loop
116 | StackPush (Mid(Text1, i, 1))
117 | Case "*", "/"
118 | StackPush (Mid(Text1, i, 1)) ' 直接放入
119 | Case Else ' 除了括號或運算元直接放入
120 | Text2 = Mid(Text1, i, 1) & Text2
121 | End Select
122 | Next i
123 |
124 | Do Until StackTop = 0 ' 將堆疊中的全部拿出來
125 | Text2 = StackPop & Text2
126 | Loop
127 | End Sub
128 |
129 | Function StackPush(Inp) ' 放入堆疊
130 | StackTop = StackTop + 1
131 | Stack(StackTop) = Inp
132 | End Function
133 |
134 | Function StackPop() ' 從堆疊中讀出
135 | StackPop = Stack(StackTop)
136 | Stack(StackTop) = ""
137 | StackTop = StackTop - 1
138 | End Function
139 | 【本文作者為「廖憲得」,原文網址為: http://www.dotblogs.com.tw/0xde/archive/2013/11/18/130093.aspx ,由陳鍾誠編輯後納入本雜誌】
143 |