├── source ├── people.md ├── science.md ├── video.md ├── article.md ├── discuss.md ├── message.md ├── preface.md ├── pdffooter.htm ├── md0.js ├── Makefile ├── md0 - 複製.js ├── mimetex.exe ├── title.md ├── tex2img.bat ├── metadata.xml ├── header.htm ├── footer.htm ├── license.md ├── editor.md ├── reflink.md9 ├── message2.md ├── home.md ├── discuss1.md ├── info.md ├── article1.md ├── message1.md ├── people1.md0 ├── people1.md ├── article7.md ├── science1.md ├── science1.md0 ├── article2.md ├── video1.md ├── people2.md0 ├── people2.md ├── article3.md0 ├── people3.md0 ├── article3.md ├── people3.md └── article5.md ├── code.zip ├── book ├── A4.pdf ├── A4.epub ├── ipad.pdf └── ipad.epub ├── code ├── alu.v ├── alu2.v ├── alu3.v ├── cpu0mc.v ├── mic.gif ├── mic-slash.gif ├── mic-animate.gif ├── SpeechToText.html ├── alu ├── alu2 └── alu3 ├── img ├── AM.jpg ├── FM.jpg ├── cover.jpg ├── Ampere.jpg ├── BackEMF.jpg ├── Battery.jpg ├── EmWave.jpg ├── EmWave3D.jpg ├── Faraday.jpg ├── MagnetCD.jpg ├── Maxwell.jpg ├── Spectrum.jpg ├── coverA4.png ├── mega2560.jpg ├── motor1.jpg ├── BoyerModel.jpg ├── FieldLines.jpg ├── Inductance.jpg ├── LeydenJar.jpg ├── TVAntenna.jpg ├── egenerator.jpg ├── einmagMove.jpg ├── AmpereMeter.jpg ├── Arduino_SHT15.jpg ├── CoulombRule.jpg ├── FieldLines2.jpg ├── LemonBattery.jpg ├── MagLineShow.jpg ├── MagneticLine.jpg ├── MaxwellProof.jpg ├── MocularModel.jpg ├── Transformer.jpg ├── VoltaBattery.jpg ├── light_speed.jpg ├── ArduinoSHT15_1.png ├── FieldLineCurve2.jpg ├── FieldLinesCurve.jpg ├── GalvaniBattery.jpg ├── HertzExperiment.jpg ├── LeadAcidBattery.jpg ├── MaxwellEquation.jpg ├── MotorEGenerator.jpg ├── speechToText_en.png ├── speechToText_tw.png ├── ElectronicMagnetic.jpg ├── MotorEGenerator2.jpg ├── ZincCarbonBattery.jpg ├── optimization_flow.png ├── AmpereRightHandRule.jpg ├── AmpereRightHandRule2.jpg ├── Arduino_SHT15_board2.png ├── FieldLinesVoltageMap.jpg ├── MaxwellProofHesswei.jpg ├── arduino_sht15_board.png ├── ArduinoBluetooth_MATCH.jpg ├── Arduino_SHT15_Screen1.png ├── Arduino_SHT15_circuit1.png ├── Arduino_SHT15_library_1.png ├── ArudinoBluetooth_Module.jpg ├── FieldLineBallCapactor.jpg ├── FieldLineIrregularCurve.jpg ├── FieldLinesCapactorFill.jpg ├── MaxwellEquationOriginal.jpg ├── ArduinoBluetooth_Circuit.gif ├── ArduinoBluetooth_DSCN2103.JPG ├── ArduinoBluetooth_mega2560.jpg └── FieldLineElectronMagnatic.jpg ├── slide └── 201310.odp ├── submit └── pbdMPI.v1.1.zip ├── timg ├── f_8fa14cdd754f91cc6554c9e71929cce7.jpg ├── s_03c7c0ace395d80182db07ae2c30f034.jpg ├── w_f1290186a5d0b1ceab27f4e77c0c5d68.jpg ├── y_415290769594460e2e485922904f345d.jpg ├── L_2_07cbd6c155424e110559a84df364be5a.jpg ├── _rho_d2606be4e0cd2c9a6179c8f2e3547a85.jpg ├── x_i_1ba8aaab47179b3d3e24b0ccea9f4e30.jpg ├── y_i_8d62e469fb30ed435a668eb5c035b1f6.jpg ├── D__ii__44fc0c929fb5a83b5439317dfdf39379.jpg ├── _Gamma_07710b5c43702a8bb7b9104eacc6ba71.jpg ├── 6_073_ti_0044d1bad3a1ff122e9f39ff3c6f930a.jpg ├── 8_93_tim_a7eb7fa70cbe24f332a6d890f6df78e4.jpg ├── D__ii_fr_e805ec74096e8806a937fa11f78c5a5c.jpg ├── E_frac_d_345cf0d4c0e85277c1389852f14780cc.jpg ├── E_frac_m_58c00e38c28c11b0734320a36aa64e30.jpg ├── E_frac_m_8576bc2eefeb78106384b47681c46135.jpg ├── E_frac_q_9c5b35cea55d87c3c3e083c23cc0c6d8.jpg ├── P_y_i_pm_908e6b3623af0fa7eb7893d17b0a0577.jpg ├── V_frac_q_4c2aa0cd21a40375743fc8d554ea84e2.jpg ├── X_i_T_D__18c004e8a771369ebf46397984047ae8.jpg ├── X_left_b_b1618b1df3546befe33baf498abed9a4.jpg ├── X_left_b_e1a12bcf588f1ff52a43e8f4cf6cba81.jpg ├── _A_vec_X_0010fa7e4e1c1009258cdeb4761750d1.jpg ├── _A_vec_X_9a70096eafacb31f4b691e41688b8240.jpg ├── _A_vec_X_9b7f5816221d06aa5eb34a5fb3d8b49f.jpg ├── _A_vec_X_e086b0976a2b530c6b5ad7690461077b.jpg ├── _Gamma_k_87178ad029be326b9f5cb45690a16d54.jpg ├── _lambda__5614371f803f8a78b18b27391549a107.jpg ├── _lambda_c6a6eb61fd9c6c913da73b3642ca147d.jpg ├── _left_X__473e73c6b2be3569d3246edc76d8bec4.jpg ├── _mathrm__88021d94484de5aea293d67ac3b657c7.jpg ├── _nabla_2_26fc9f507ebe1b808449f8f0cd56c9a7.jpg ├── _nabla_2_2c4aeb2711d97003e66605c5f26281fd.jpg ├── _nabla_2_683590a0c6a1c3a77515ee29d578dbb9.jpg ├── _nabla_2_b3b44fe9479618568a50279e37b390d3.jpg ├── _nabla_2_dc6c012bd0fcddc9f54e8ea08712a89b.jpg ├── _nabla_f_7a1cfe905108e307bce9f3810a80042a.jpg ├── _nabla_f_8b89a43d93ebcb54fa54d24afb9e51b8.jpg ├── _nabla_f_b158d7803254a6fc013ba44ca41d078b.jpg ├── _nabla_t_71472b68994d8c09ae7c7f86ef45465d.jpg ├── _nabla_t_d2043e5b8de68c1f0f7e31e126f5636a.jpg ├── _nabla_t_f195a2c3ac1e7b023641cb07df0d208e.jpg ├── _oint__C_6ebb62f837eb5efd9159d5fe5fa4ed1d.jpg ├── _oint__C_9078963ed770e004bed65ace403c77a9.jpg ├── _sum__i__bfd1a8f772db71036020fac840b76d60.jpg ├── _sum__i__df417ef6ae240a2fb9153ca4ae19da2f.jpg ├── _vec_A_3_34a578b55cf6fe9b149722e9f8977aae.jpg ├── _vec_X__259132779c57997f83cc4e797de1822b.jpg ├── _y_a_b___4fb62ff1202dd258df727b57df1c26b4.jpg ├── f_w_frac_42fccca098b26396cc4b2df69921769b.jpg ├── m_frac_M_2031d341f604dcc09daa8b14a597877d.jpg ├── mpi_grad_290fd303ab3cb6433b938221466f324a.jpg ├── p__c_R_i_e1650e901408bc001d8ff6a01a451583.jpg ├── p_times__3168a2f0bd25e0593fd8b61ec901c5af.jpg ├── v_R_omeg_835d6289e38187f9a9d5f82308b05cb4.jpg ├── w_i_in_m_0898409895a04282f74716fb5b5c0e21.jpg └── y_is_na__a5ab5b42ec8fc1f5ffc5c49519c3f9ff.jpg ├── htm ├── article.html ├── message.html ├── people.html ├── video.html ├── preface.html ├── science.html ├── discuss.html ├── title.html ├── editor.html ├── license.html ├── message2.html ├── home.html ├── info.html ├── message1.html ├── discuss1.html ├── people1.html ├── article1.html └── people2.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 | -------------------------------------------------------------------------------- /source/pdffooter.htm: -------------------------------------------------------------------------------- 1 |
# 程式人文集
17 |# 程式人短訊
17 |# 人物速寫
17 |# 影音頻道
17 |在本期的「程式人雜誌」中,聚焦的一個主題是「電磁學」,這是一個對於程式人而言,通常有概念卻又無法深入理解的領域, 我們試圖在本期當中讓讀者能更進一步理解「電磁學」的「人物、歷史、理論、以及應用」等等面向。
23 |在前幾期當中,我們通常用「程式人介紹、程式人頻道、....」等等以程式人開頭的標題。但是最近編輯常常將觸角 延伸到程式相關領域的主題上,因此我們將標題改為「人物速寫、影音頻道」等等,希望能更忠實的反應所呈現的內容。
24 |當然、在程式人文集當中,我們同樣有關於「Arduino、JavaScript、R、Verilog 與開放電腦計畫」的文章,讓大家可以吸收到 專業的程式資訊,希望您會喜歡這些文章。
25 |---- (程式人雜誌編輯 - 陳鍾誠)
26 |本雜誌採用 創作共用:姓名標示、相同方式分享 授權,若您想要修改本書產生衍生著作時,至少應該遵守下列授權條件:
23 |另外、當本雜誌中有文章或素材並非採用 姓名標示、相同方式分享 時,將會在該文章或素材後面標示其授權,此時該文章將以該標示的方式授權釋出,請修改者注意這些授權標示,以避免產生侵權糾紛。
28 |例如有些文章可能不希望被作為「商業性使用」,此時就可能會採用創作共用:姓名標示、非商業性、相同方式分享 的授權,此時您就不應當將該文章用於商業用途上。
29 |最後、懇請勿移除公益捐贈的相關描述,以便讓愛心得以持續散播!
30 |電容器(Capacitor)是兩金屬板之間存在絕緣介質的一種電路元件。其單位為法拉,符號為F。電容器利用二個導體之間的電場來儲存能量,二導體所帶的電荷大小相等,但符號相反。
23 |若根據國際單位制,若一電容器兩極施加一伏特的電壓,其儲存電荷量為一庫侖,則此電容器的電容量為一法拉(F)。在實務上,法拉是相當大的單位,電容器的電容量一般常以毫法拉 (mF, 1mF = 10-3F)、微法拉 (µF, 1µF = 10-6F)、納法拉 (nF, 1nF = 10-9F) 或皮法拉 (pF, 1pF = 10-12F)表示。
24 |Nollet 是一個對電學特別有興趣的法國神父,1746 年時、他做了一個實驗
25 |Nollet was particularly interested in the new science of electricity, which he explored with the help of Du Fay and Réaumur. He joined the Royal Society of London in 1734 and later became the first professor of experimental physics at the University of Paris. He is reputed to have given the name to the Leyden jar after it was invented by Pieter van Musschenbroek.
26 |In 1746 he gathered about two hundred monks into a circle about a mile (1.6 km) in circumference, with pieces of iron wire connecting them. He then discharged a battery of Leyden jars through the human chain and observed that each man reacted at substantially the same time to the electric shock, showing that the speed of electricity's propagation was very high. In 1748 he discovered the phenomenon of osmosis in natural membranes.
27 |In 1750 Nollet made some advances on electrospray. He noted water flowing from a vessel would aerosolize if the vessel was electrified and placed near electrical ground. He also noted that similarly “a person, electrified by connection to a high-voltage generator, would not bleed normally if he were to cut himself; blood would spray from the wound.”
28 |【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】
29 |程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌。
18 || 出刊年月 | 23 |epub | 24 |ipad:PDF | 25 |A4:PDF | 26 |單頁 HTM | 27 |原始碼 | 28 |全部下載 | 29 |
|---|---|---|---|---|---|---|
| 2013年10月 | 34 |epub | 35 |ipad.pdf | 36 |A4.pdf | 37 |pmag.html | 38 |code.zip | 39 |all.zip | 40 |
說明:本期前半部的焦點在電磁學等領域,對此不感興趣的朋友可以直接從「程式人文集」開始閱讀,謝謝!
44 |程式人雜誌預定於每個月 1 日出刊,您可以從下列網址取得程式人雜誌的所有內容 (包含當月最新出刊的雜誌)。
87 | 90 |竭誠歡迎程式人投稿,或者成為本雜誌的專欄作家,現在就可以加入 程式人雜誌社團 一同共襄盛舉。
92 |本雜誌編輯為「陳鍾誠 (@ccckmit)」,若要聯絡編輯,請寄信到 。
98 |程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌,如果您願意成為本雜誌的專欄作家,請加入 程式人雜誌社團 一同共襄盛舉。
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 |
電池,一般狹義上的定義是將本身儲存的化學能轉成電能的裝置,廣義的定義為將預先儲存起的能量轉化為可供外用電能的裝置。因此,像太陽能電池只有轉化而無儲存功能的裝置不算是電池。其他名稱有電瓶、電芯,而中文池及瓶也有儲存作用之意。
23 |萊頓瓶(英語:Leyden jar)是一種用以儲存靜電的裝置,最先由 Pieter van Musschenbroek(1692年-1761年)在荷蘭的萊頓試用。 作為原始形式的電容器,萊頓瓶曾被用來作為電學實驗的供電來源,也是電學研究的重大基礎。萊頓瓶的發明,標誌著對電的本質和特性進行研究的開始。
25 |典型的萊頓瓶是一個玻璃容器,內外包覆著導電金屬箔作為極板。瓶口上端接一個球形電極,下端利用導體(通常是金屬鎖鏈)與內側金屬箔連接。萊頓瓶的充電方式是將電極接上靜電產生器等來源,外部金屬箔接地;內部與外部的金屬將會攜帶相等但極性相反的電荷。
26 |嚴格來說,萊頓瓶並不屬於電池,而是一種電容,但早期還沒有電池的時候,常被事先充好電之後,拿來當一次性的放電體使用,所以可以說是最早的「電池」。
27 |
圖、萊頓瓶的實體與結構
29 |以下有個關於萊頓瓶如何被用在早期電學實驗上的故事,相信大家會有興趣,故事如下:
31 |Jean-Antoine Nollet 是一個對電學特別有興趣的法國神父,1746 年時、他想要測試電流到底跑得多快,所以請兩百位修道士每個人手池金屬條 連接成總長一英哩 (1.6 公里) 的環狀迴路,然後他手持一只特大的萊頓瓶,連接上兩端的電極,結果這些修道士幾乎同時因被電極而癱軟在地。
32 |後來他還想再做這類的實驗,但是修道士們都避之唯恐不及,拒絕再當一次實驗品,後來他只好去找法皇路易十五,讓皇帝命令一百八十名御林軍在凡爾賽宮當實驗品。
33 |在萊頓瓶剛發明不久的那個年代,很多王公貴族對這些新奇的小玩意都很有興趣,甚這後來在酒吧裏,還流行用小的萊頓瓶去「電吻」, 也就是「觸碰一下萊頓瓶、感受被電到的感覺」。
34 |在1780年,路易吉·伽伐尼 (義大利文:Luigi Galvani) 發現,兩種不同的金屬(例如,銅和鋅)連接後,如果同一時間觸摸青蛙腿的兩處神經,青蛙腿會發生收縮。 他稱這是「動物電」(animal electricity)。
36 |伏打電堆(Voltaic pile),又名伏打堆,是最早出現的化學電池,是在1800年由義大利物理學家亞歷山卓·伏打伯爵發明。
37 |伏打電堆由很多個單元堆積而成,每一單元有鋅板與銅板各一,其中夾著浸有鹽水的布或紙板以作為電解質。如下所示:
38 |
圖、伏打電堆的結構與實體
40 |後來、這類由兩種不同的金屬與一種電解質組成的電池,通常被稱為「伽伐尼電池」,其結構通常改由兩個半電池間以鹽橋或多孔物相連而成。 其電路與反應式如下:
42 |
圖、鋅-銅 伽凡尼電池的電路圖與反應式
44 |碳鋅電池 (zinc–carbon battery) 的容器是一個鋅罐。裡面有一層由 NH4Cl 和 ZnCl2 所構成的糊狀液體, 這個糊狀液體通過一個紙層與粉末狀的碳和二氧化錳隔開。這些粉末填充在一個碳棒的周圍。
47 |此電池正極的碳棒與二氧化錳中所混合的碳只負責引出電流,並不參與反應,正極實際參與還原反應並提供 正電的是二氧化錳,因此,又稱為錳鋅電池、鋅錳電池或鋅-二氧化錳電池,也有簡稱錳乾電池的。
48 |碳鋅電池的電動勢大約是1.5V。電動勢的不確定是由於陰極反應十分複雜,相比來說,陽極反應(鋅端)則有一個已知的電勢。 副反應及活性反應物的消耗直接導致電池的內阻增加,電池電動勢降低。
49 |
圖、碳鋅電池的反應式、實體與結構
51 |蓄電池的原理是通過將化學能和直流電能相互轉化,在放電後經充電後能復原,從而達到重複使用效果。
54 |鉛酸蓄電池 (Lead–acid battery) 的氧化還原總反應電壓為 2 V (伏特) ,所以一顆由 K 的電磁單元所組成的 鉛蓄電池之電壓通常為 2K 伏特。
55 |
圖、鉛酸蓄電池的反應式、實體與用途
57 |看了以上這麼多電池,雖然感覺原理並不難,但是要自己動手做一顆,卻還是不知如何下手。
60 |不過還好、我們可以用檸檬!
61 |YouTube 上已經有人做了詳細的示範,告訴我們「如何用檸檬做出電池」,請參考以下影片:
62 |所以、我們應該也可以用「50 元或 1 元的銅板」,加上鐵釘去做出檸檬電池,其中銅板是正極,而鐵釘因為表面通常會 鍍鋅以防止生鏽,再加上檸檬所含的電解質可以扮演鹽橋的功能,所以就可以組合成標準的「銅-鋅、伽凡尼」電池。
66 |
圖、檸檬電池的做法
68 |「銅-鋅反應」釋放的電壓大約是 1.1 伏特,而點亮一顆 LED 需要 3 伏特以上的電壓,所以必須要用三顆以上的檸檬電池 串連,就可以點亮 LED 燈了。
70 |電池通常是由「化學反應」所供電的,而這些化學反應釋放的電壓經常是固定的,假如該電池的化學反應釋放的電壓是 n 伏特,那麼這類電池所釋放的電壓通常是 n*k 伏特,因為一顆電池通常是由 k 個電池單元 (Battery Cell) 所組成的。
72 |【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】
83 |討論網址: https://www.facebook.com/groups/programmerMagazine/permalink/707649472585105/
43 |44 |51 |請問大家在寫 C 語言的時候,如果需要一個 HashTable ,那你會怎麼做呢?
45 |46 |
50 |- 用 OpenSource .... 哪一個呢?
47 |- 自己寫一個 .....
48 |- 其他 .....
49 |
心得:
52 |討論網址: https://www.facebook.com/groups/programmerMagazine/permalink/707669262583126/
64 |65 |68 |請問 Glib 好用嗎?在 windows 上呢?
66 |http://fred-zone.blogspot.tw/2008/03/glib-programing-io-giochannel.html
67 |
心得:
69 |討論網址: https://www.facebook.com/groups/programmerMagazine/permalink/707655949251124/
78 |79 |86 |再一個問題是,你在 C 語言裡會盡可能使用靜態宣告,或常常使用 malloc 分配呢?
80 |81 |
85 |- 盡可能使用靜態
82 |- 每次都使用動態 malloc 分配,即使是字串複製也會使用 strdup
83 |- malloc 時盡可能一次分配大塊,然後在慢慢使用。(例如用一大塊記憶體當字串表 )
84 |
心得:
87 |我最近讀一本書,書名是 「 深入理解计算机系统 」, 發現二維以上陣列的存取順序對 locality 影響很深,而 locality 對「cache hit rate 影響很深」 特別是像以下程式:
95 |for (i=0; i<n; i++)
96 | for (j=0; j<m; j++)
97 | sum += a[i][j];
98 | 如果反過來
99 |for (j=0; j<m; j++)
100 | for (i=0; i<n; i++)
101 | sum += a[i][j];
102 | 這樣 locality 就會很差,執行速度可能因此而慢上數十倍啊 ....
103 |雖然 C 語言是很多人都學過的,甚至還是很多人學的第一門程式語言,但其實 C 語言並不好學, 而且有很多「陷阱」。
105 |另外、C 語言的出現很早,但是標準函式庫卻很小,因此常常要使用非標準函式庫,所以更要懂得使用 OpenSource, 而且要避免採用重複功能的函式庫,以免程式膨脹過快。
106 |但是 C 語言的速度快,而且在嵌入式系統與作業系統上有強大的用途,因此很多快速與底層的應用仍然必須仰賴 C 語言。 但是要達到高速,對硬體的很多考慮仍然是必須的,像是 locality 就是其中之一。
107 |
圖、安德烈-馬里·安培
24 |安德烈-馬里·安培(André-Marie Ampère,FRS,1775年-1836年),法國化學家,在電磁作用方面的研究成就卓著, 對物理學及數學也有重要貢獻。電流的國際單位安培即以其姓氏命名。
26 |1820年 7月,H.C.奧斯特發表關於電流磁效應的論文後,安培馬上集中精力研究,幾周內就提出了安培定則即右手螺旋定則。 隨後很快在幾個月之內連續發表了 3 篇論文,並設計了 9 個著名的實驗,總結了載流迴路中電流元在電磁場中的運動規律, 即安培定律。
27 |1820年 9月25日,安培報告了兩根載流導線存在相互影響,相同方向的平行電流彼此相吸,相反方向的平行電流彼此相斥; 對兩個線圈之間的吸引和排斥也作了討論。通過一系列經典的和簡單的實驗,他認識到磁是由運動的電產生的。
28 |1821~1825年,安培做了關於電流相互作用的四個精巧的實驗,並根據這四個實驗導出兩個電流源之間的相互作用力公式。
29 |1827年,安培將他的電磁現象的研究綜合在《電動力學現象的數學理論》一書中 ,這是電磁學史上一部重要的經典論著, 對以後電磁學的發展起了深遠的影響。
30 |1、直線電流的安培定則用右手握住導線,讓伸直的大拇指所指的方向跟電流的方向一致,那麼彎曲的四指所指的方向就是磁感線的環繞方向。
32 |
圖、安培右手定則
34 |然後、安培用數學描述這個現象,於是提出了著名的「安培定律」。
36 || 40 | | 積分形式 | 41 |微分形式 | 42 |「馬克士威-安培方程式」的微分形式 | 43 |
|---|---|---|---|
| 安培定律 | 48 |![]() |
49 | ![]() |
50 | ![]() |
51 |
「安培定律的積分形式」所述說的是:「電流直線流動 I 會造成環形磁場
」,而後人所改寫的「微分形式」所述說的是: 「磁通量 B 的旋度
來自於(產生該磁場的)傳導電流密度 J」。
這個定律後來經過馬克斯威的修正之後,成了「馬克斯威電磁波方程式」裏重要的一個公式,如上表最右邊的公式所示, 該公式主要加入了「電流的變化 (或說電通量變化) 也會造成磁場的改變」這個修正。
56 |2、環形電流的安培定則讓右手彎曲的四指和環形電流的方向一致,那麼伸直的大拇指所指的方向就是環形電流中心軸線上磁感線的方向。
57 |
圖、環形電流的安培定則
59 |
圖、安培電流計
65 |70 |72 |補充 1:1911年,拉塞福提出電子環繞原子旋轉的模型,此時距離安培電子流假說已將近百年,
71 |

圖、安德烈-馬里·安培
74 |76 |78 |補充 2: 1913年,波耳提出了拉塞福模型的改良版,加入了軌域的觀念。距離原子核越遠,軌域的能量就越高。當電子從距離原子核更遠的軌域,躍遷到距離原子核更近的軌域時,會以光子的形式釋放出能量。相反的,從低能級軌域躍遷到高能級軌域則會吸收能量。
77 |

圖、波耳的能階軌域模型
80 |藉著這些量子化軌域,波耳正確地計算出氫原子光譜。但是,使用波耳模型,並不能夠解釋譜線的相對強度,也無法計算出更複雜原子的光譜。 這些難題,尚待後來量子力學的解釋。
82 |安培思考科學問題專心致志,據說有一次,安培正慢慢地向他任教的學校走去,邊走邊思索著一個電學問題。 經過塞納河的時候,他隨手揀起一塊鵝卵石裝進口袋。過一會兒,又從口袋裡掏出來扔到河裡。到學校後, 他走進教室,習慣地掏懷錶看時間,拿出來的卻是一塊鵝卵石。原來,懷錶已被扔進了塞納河。
84 |還有一次,安培在街上散步,走著走著,想出了一個電學問題的算式,正為沒有地方運算而發愁。突然, 他見到面前有一塊「黑板」,就拿出隨身攜帶的粉筆,在上面運算起來。那「黑板」原來是一輛馬車的車廂背面。 馬車走動了,他也跟著走,邊走邊寫;馬車越來越快,他就跑了起來,一心一意要完成他的推導, 直到他實在追不上馬車了才停下腳步。安培這個失常的行動,使街上的人笑得前仰後合。
85 |從以上的小故事我們可以看到,安培能夠在電磁學上有卓越的貢獻,並非僥倖而已,當一個人全心投入某個領域時, 才有可能在該領域散發出無比耀眼的光芒啊!
87 |【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】
99 |練習使用 SHT15 溫溼度計,將讀到的溫溼度讀值輸出到 Serial Port 上。下圖為 SHT15 模組的外觀:
43 |
45 |
58 | 實際接線照片:
60 |
62 |
66 | 關於 SHT1x 溫溼計,原本使用程序是很繁瑣的(見 SHT1x and SHT7x Sample Code),SHT1x Library 已經把事情變簡單了,現在只要安裝 SHT1x Library,就可以很輕鬆地讀取 SHT1x 系列(SHT10, SHT11, SHT15) 溫溼度計的讀值。
69 |SHT1x Library 的安裝辦法很簡單,先到官網或直接點此下載函式庫後,把檔案解壓縮放到 Arduino 的 Libraries 資料夾底下即可:
70 |
72 | 底下是 SHT15 溫溼度計的讀取範例,程式讓 Arduino 向 SHT15 讀取資料,並將讀到的溫溼度讀值輸出到 Serial Port,每秒鐘做一次(ReadSHT1x.pde):
75 |/* Lab10 - SHT1x 系列(SHT10, SHT11, SHT15)溫溼度計的讀取範例
76 | *
77 | * 須安裝 SHT1x Library:
78 | * https://github.com/practicalarduino/SHT1x/
79 | */
80 |
81 | #include <SHT1x.h>
82 |
83 | // 定義 SHT1x 連接的腳位
84 | #define dataPin 11
85 | #define clockPin 10
86 |
87 | // 初始化 sht1x 物件
88 | SHT1x sht1x(dataPin, clockPin);
89 |
90 | void setup()
91 | {
92 | Serial.begin(9600);
93 | }
94 |
95 | void loop()
96 | {
97 | // 宣告三個變數,分別代表溫度(攝氏), 溫度(華氏) 以及溼度
98 | float temp_c, temp_f, humidity;
99 |
100 | // 讀取 SHT1x 溫溼度值
101 | temp_c = sht1x.readTemperatureC();
102 | temp_f = sht1x.readTemperatureF();
103 | humidity = sht1x.readHumidity();
104 |
105 | // 將讀到的溫溼度讀值輸出至 Serial Port
106 | Serial.print("Temperature: ");
107 | Serial.print(temp_c, 1); // 顯示到小數點後一位
108 | Serial.print("C / ");
109 | Serial.print(temp_f, 1); // 顯示到小數點後一位
110 | Serial.print("F. Humidity: ");
111 | Serial.print(humidity);
112 | Serial.println("%");
113 |
114 | delay(1000);
115 | }
116 | 上傳程式到 Arduino 後,打開 Serial Monitor,就會看到 Arduino 送過來的溫溼度資料,如下圖:
118 |
120 | 試修改程式,把從 SHT15 讀到的溫溼度資料輸出到 2x16 的 LCD 上。2x16 LCD 的使用方法可參考「 Lab9 在 2x16 LCD 上顯示 "Hello World” 訊息 」 Arduino 現在可以把溫溼度資料送到 Serial Port,試在 PC 端寫一支「溫溼度 Data Log」程式,把 Arduino 送過來的溫溼度資料寫到資料庫,資料庫軟體任君選擇,要用 Excel, Access, SQLite 或 MySQL 都可以。
123 |使用你熟悉的工具(如 Excel, JavaScript/flot, Tcl),繒製一張每日溫溼度曲線度。
124 |【本文作者為馬萬圳,原文網址為: http://coopermaa2nd.blogspot.tw/2010/12/arduino-sht15.html ,由陳鍾誠編輯後納入本雜誌】
132 |
圖、麥可·法拉第的肖象素描
由約翰·瓦特金所畫,現存於大英圖書館
麥可·法拉第(英語:Michael Faraday,1791年9月22日-1867年8月25日),英國物理學家在電磁學及電化學領域 做出很多重要貢獻。
26 |西方科學與工業之間,總是存在某種相互促進的關係,在科學的發展過程當中,總是呈現「理論 - 實驗 - 理論 - 實驗 ....」 這樣的發展循環,而法拉第所代表的,極度的偏向「實驗」這一端,他一生當中做過了無數的實驗,這些實驗遍佈了 整個電磁學領域,讓後來的「馬克斯威」可以透過解讀他的實驗結果,運用深厚的數學內功提出了電磁學的完整理論架構, 並創造出了「馬克斯威方程式」,如果沒有法拉第,或許就沒有「馬克斯威」的電磁學理論了。
27 |法拉第出生於英國紐因頓,接近現在的倫敦大象堡。法拉第家的經濟狀況並不好,他的父親詹姆士是個鐵匠以及 基督教桑地馬尼安教派的一員,於1780年代從英格蘭的西北部來到倫敦。由於家境貧窮,因此他只好靠自學 求取知識。14歲時,他成為書本裝訂商及銷售人喬治·雷伯的門生。7年學徒生涯中,他讀過大量書籍,包括以 撒·華茲的「悟性的提升」,書中對於學習的原則與建議,法拉第一直遵行不輟。另外,他也從由珍·瑪西女士 所寫的「化學閒聊」中得到很多啟發。在這些大量的閱讀之中,法拉第漸漸樹立起對科學的興趣,這其中, 又以電學為甚。
29 |1812年,時齡二十歲,隨著門生生涯走入尾聲,法拉第開始旁聽由赫赫有名的皇家研究機構的一員以及 英國皇家學會會長:漢弗里·戴維爵士以及市立哲學協會的創始者:約翰·塔特姆所開的演講。 參加這些演講的門票大多是由威廉·譚斯(皇家愛樂協會的創辦人之一)給予法拉第。之後有一次,法拉第將 自己在演講中細心抄錄,並旁徵博引,內容達三百頁的筆記拿給戴維過目,戴維立刻給予他相當友善且正面的答覆。 也因此,戴維在一次三氯化氮實驗中發生意外,視力受損之後,便僱用了法拉第作為他的秘書。當皇家研究院中一位 助手約翰·培恩離開後,他們便請求戴維尋找替代人選。戴維在1813年3月1日推薦法拉第成為化學助理。 由於法拉第在印書店的新僱主亨利·德拉羅許脾氣暴躁,他毫不猶豫的離開了這份舊工作。
30 |戴維展開一次長期的歐洲巡迴。由於他的侍從並不想跟隨,法拉第原本是以助手的身份跟去, 卻被要求同時作戴維的僕人,直到在巴黎找到人代替為止。戴維最後沒有找到代替者, 法拉第也因此被強迫在整個旅行中同時兼任僕人與助手。戴維的妻子珍·亞普莉絲不願意平等 對待法拉第,旅行時要他坐在馬車外,與傭人一起吃飯,法拉第的處境越來越悽慘,甚至開始 考慮獨自回到英國放棄科學研究。不過這次旅行,也讓他接觸了歐洲許多的科學菁英, 刺激出他許多想法。逆境最終沒有阻擋住法拉第在科學上的貢獻。在旅行過後不久, 法拉第的成就便超越了戴維。
32 |法拉第的主要贊助者兼顧問為約翰·『瘋狂傑克』·富勒,他在皇家研究院裡創立了富勒里安化學教授這個職位。
33 |在1824年,法拉第被選為皇家學會院士,並於1825年被指派為實驗室主任。1833年他被選為皇家研究院終身職,任職而不需講課。
34 |法拉第是一名高度虔誠的教徒,他是桑地馬尼安教派(蘇格蘭國教會的一分支)的信徒,曾在其中任兩任長老。 此教派是由蘇格蘭長老會牧師格拉斯於1730年創立,此教要求完全的信奉和承諾。傳記學家曾經認為"一種神與 自然融為一體的感覺貫穿了法拉第的生活與工作。法拉第在1821年娶沙拉·巴娜德為妻,不過膝下無子。 他們由於參加桑地馬尼安教會而認識。
35 |雖然法拉第只受過很少的正式教育,這使得他的高等數學知識(例如微積分)相對有限,但不可否認, 法拉第仍是歷史上最有影響力的科學家之一。某些科學史學家認為他是科學史上最優秀的 「實驗主義者」。其科學知識可能主要是在擔任另一科學家戴維的助手時所學習而來,因而雖然 法拉第不曾受過高等教育,但仍可把漢弗里·戴維視為法拉第的指導教授。
36 |由於道德原因,法拉第拒絕參與為「克里米亞戰爭」製造化學武器。在倫敦薩弗伊廣場,電工程師協會外,聳立著一個法拉第的雕像, 而在布魯內爾大學新建的一個接待廳以法拉第為名。
37 |1821 年,在丹麥化學家「漢斯·奧斯特」發現電磁現象後,「戴維」和「威廉·海德·渥拉斯」頓嘗試設計一部電動機,但沒有成功。 法拉第在與他們討論過這個問題後,繼續工作並建造了兩個裝置以產生他稱為「電磁轉動」的現象:由線圈外環狀磁場造成的連續旋轉運動。 他把導線接上化學電池,使其導電,再將導線放入內有磁鐵的汞池之中,則導線將繞著磁鐵旋轉。這個裝置現稱為單極電動機。 這些實驗與發明成為了現代電磁科技的基石。
39 |但此時法拉第卻做了一件不智之舉,在沒有通知戴維跟渥拉斯頓情況下,擅自發表了此項研究成果。此舉招來諸多爭議, 也迫使他離開電磁學研究數年之久。
40 |在這個階段,有些證據指出戴維可能有意阻礙法拉第在科學界的發展。如在1825年,戴維指派法拉第進行光學玻璃實驗, 此實驗歷時六年,但沒有顯著的進展。直到1829年,戴維去世,法拉第停止了這個無意義的工作並開始其他有意義的實驗。 在1831年,他開始一連串重大的實驗,並發現了電磁感應,雖然在福朗席斯科·札德啟稍早的工作可能便預見了此結果, 此發現仍可稱為法拉第最大的貢獻之一。
41 |這個重要的發現來自於,當他將兩條獨立的電線環繞在一個大鐵環,固定在椅子上,並在其中一條導線通以電流時, 另外一條導線竟也產生電流。他因此進行了另外一項實驗,並發現若移動一塊磁鐵通過導線線圈,則線圈中將有電流產生。 同樣的現象也發生在移動線圈通過靜止的磁鐵上方時。
42 |他的展示向世人建立起「磁場的改變產生電場」的觀念。此關係由法拉第電磁感應定律建立起數學模型, 並成為四條馬克士威方程組之一。這個方程組之後則歸納入場論之中。
43 |1839年他成功了一連串的實驗帶領人類了解電的本質。法拉第使用「靜電」、電池以及「生物生電」已產生靜電相吸、 電解、磁力等現象。他由這些實驗,做出與當時主流想法相悖的結論,即雖然來源不同,產生出的電都是一樣的, 另外若改變大小及密度(電壓及電荷),則可產生不同的現象。
44 |在他生涯的晚年,他提出電磁力不僅存在於導體中,更延伸入導體附近的空間裡。這個想法被他的同儕排斥, 法拉第也終究沒有活著看到這個想法被世人所接受。法拉第也提出電磁線的概念:這些流線由帶電體或者是磁鐵 的其中一極中放射出,射向另一電性的帶電體或是磁性異極的物體。這個概念幫助世人能夠將抽象的電磁場具象化, 對於電力機械裝置在十九世紀的發展有重大的影響。而這些裝置在之後的十九世紀中主宰了整個工程與工業界。
45 |1845年他發現了被他命名為抗磁性 (diamagnetism) 的現像 (現在則稱為法拉第效應):一個線性極化的光線在經過一 物體介質時,外加一磁場並與光線的前進方向對齊,則此磁場將使光線在空間中劃出的平面轉向。 他在筆記本中寫下:『我終於在「闡釋一條磁力曲線」—或者說「力線」—及「磁化光線」中取得成功。』 ("I have at last succeeded in illuminating a magnetic curve or line of force and in magnetising a ray of light")。 這個實驗證明了光和磁力有所聯繫。
46 |47 |49 |筆者註:這個實驗暗示了光很可能是一種電磁波,於是後來馬克士威推論出電磁波速度等於光速時,幾乎就立刻體悟了這個結論。
48 |
在對於靜電的研究中,法拉第發現在帶電導體上的電荷僅依附於導體表面,且這些表面上的電荷對於導體內部沒有任何影響。 造成這樣的原因在於在導體表面的電荷彼此受到對方的靜電力作用而重新分佈至一穩定狀態,使得每個電荷對內部造成的 靜電力互相抵銷。這個效應稱為遮蔽效應,並被應用於「法拉第籠」這個隔絕電磁波的裝置上。
50 |法拉第最早的化學成果來自於擔任戴維助手的時期。他花了很多心血研究氯氣,並發現了兩種碳化氯。 他也研究過氣體擴散現象,並成功的液化了多種氣體;然後研究過不同的鋼合金,並進行過光學的實驗,更製造出多種新型的玻璃。 其中一塊玻璃樣品後來在歷史上佔有一席之地,因為在一次當法拉第將此玻璃放入磁場中時,他發現了極化光平面受磁力造成偏轉 及被磁力排斥。
52 |法拉第在戴維去旅行時曾代理職務,並接受分析委託,其中最著名的三項委託是:
53 |其中第三項的彎刀研究,發現古敘利亞可能有鉑礦場,並加入鉑礦使之輕巧但卻鋒利無比,連西方騎兵重軍刀都能被削斷。
57 |後來英國人經過不斷的嘗試之後,終於發明了「碳鋼」,這使大英帝國的騎兵在中東戰場能夠擊破大馬士革的彎刀。
58 |他也盡心於創造出於一些化學的常用方法,用結果、研究目標以及大眾展示做為分類,並從中獲得一些成果。 他發明了一種加熱工具,是本生燈的前身,在科學實驗室廣為採用,作為熱能的來源。
59 |法拉第在多個化學領域中都有所成果,發現了諸如苯等化學物質(他稱此物質為雙碳化氫(bicarburet of hydrogen)),發明氧化數,將如氯等氣體液化。他找出一種氯水合物的組成,這個物質最早在1810年由戴維發現。
60 |法拉第也發現了電解定律,以及推廣許多專業用語,如陽極、陰極、電極及離子等,這些詞語大多由威廉·休艾爾 發明。由於這些成就,很多現代的化學家視法拉第為有史以來最出色的實驗科學家之一。
61 |法拉第電磁感應定律是電磁學中的一條基本定律,跟變壓器、電感元件及多種發電機的運作有密切關係。定律指出: 任何封閉電路中感應電動勢的大小,等於穿過這一電路磁通量的變化率。
63 |
65 | 這個定律與安培定律,基本上就是馬克斯威方程式的兩大核心定律。
67 |這兩大定律,讓「電生磁、磁生電」的循環建立起來了,於是、「電磁學的世界」有了一個堅實的理論基礎。
68 |然後、這個世界裏更多的科學家與工程師連手,打造出了「發電機、馬達、天線、電磁爐、有線與無線的電子電機設備」等等, 像是「馬達」與「發電機」就完全是依靠「法拉第與安培」定律所打造出來的設備,如下圖所示。
69 |
圖、馬達與發電機的構造與原理
71 |法拉第在電化學上也貢獻良多,例如他發現在物質電解過程中,參與電極反應的質量與通過電極的電量成正比。 換句話說,不同物質電解的質量則正比於該物質的化學當量,這個發現可以寫成以下定律。
74 |
76 | 其中 n 為 1 莫耳物質電解時參與電極反應的電子的摩爾數(即化合價),(M/n)又稱化學當量(Eq); F 為法拉第常數,即電解1電化學當量物質所需電量。
78 |法拉第電解定律適用於一切電極反應的氧化還原過程,是電化學反應中的基本定量定律。
79 |1848年,受到艾伯特王夫引見,法拉第受賜在薩里漢普頓宮的恩典之屋,並免繳所有開銷與維修費。這曾是石匠師傅之屋, 後稱為法拉第之屋,現位於漢普頓宮道37號(No.37 Hampton Court Road)。在1858年,法拉第退休並在此定居。
81 |在他有生之年中,他推辭了封爵並且兩次拒絕成為皇家學會會長。他在 1867 年 8 月 25 日死於位於漢普頓宮的家中。 在西敏寺,艾薩克·牛頓的墓旁座落著他的紀念碑。但是他拒絕在西敏寺下葬,而入土於桑地馬尼安教派的海格特墓園中。
82 |在閱讀了法拉第的故事之後,感覺到科學界似乎有兩類不同的典型,像是「法拉第、愛迪生、瓦特、萊特兄弟」等人, 是屬於做實驗與應用的「劍宗高手」,這類科學家往往可以創造出很多偉大的發明與實驗結果。
84 |而另一類科學家,像是「馬克斯威、牛頓、愛因斯坦」等人,則是數學很強的「氣宗高手」,他們雖然實驗與應用能力 不見得很好,但是透過深厚的數學內功,往往可以把前人的實驗結果解讀後,創建出一個完整的理論體系,而這個理論體系, 最後會成為下一波「劍宗高手」的「武學秘笈」,指引他們「邁向下一個偉大的航道」啊!
85 |最令我感動的是,法拉第的謙虛,以及對馬克士威的友好態度,並且與他結成忘年之交,兩人共同構築了電磁學理論的科學體系。 (雖然當初戴維與她太太瞧不起法拉第,但是法拉第成名後並沒有向他們一樣變成高傲的人,相反的卻很樂意提攜後進)。
86 |這種透過「理論與實驗結合」,以及「學術與產業的結合」,讓整個世界的科學,不斷的突破進展的精神,是我一直認為台灣所缺乏的, 我想,整個國家需要的不是「個人利益的算計」,而是一種「無私奉獻精神的良性循環」,只有透過這種良性循環,才能讓國家或全人類都能真正獲得 進步的動力啊!
87 |如果、這個世界只有「氣宗」或者只有「劍宗」的話,應該不會如此多采多姿吧!
88 |【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】
99 |