<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects on Richard Medyanto 的部落格</title><link>https://richardmedyanto.github.io/zh-tw/categories/projects/</link><description>Recent content in Projects on Richard Medyanto 的部落格</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><lastBuildDate>Mon, 13 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://richardmedyanto.github.io/zh-tw/categories/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>HBT Tools</title><link>https://richardmedyanto.github.io/zh-tw/p/hbt-tools/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/hbt-tools/</guid><description>&lt;blockquote>
&lt;p>本專案於國立臺灣大學 IOED 實驗室完成&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>HBT 的特性分析主要包含兩個面向：&lt;strong>直流（DC）分析&lt;/strong>，透過 Gummel 曲線與輸出特性分析電流增益、理想因子與漏電流；以及 &lt;strong>射頻/交流（RF/AC）分析&lt;/strong>，透過 S 參數量測擷取小訊號模型參數。在多個偏壓條件下手動進行這些分析既繁瑣又容易出錯，因此我開發了一套 Python 工具來自動化整個流程。&lt;/p>
&lt;h2 id="ioed-hbt-tools">IOED HBT Tools
&lt;/h2>&lt;p>&lt;strong>IOED HBT Tools&lt;/strong> 是一個基於 &lt;a class="link" href="https://streamlit.io" target="_blank" rel="noopener"
>Streamlit&lt;/a> 的 Web 應用程式，用於 HBT 的 DC 分析、RF 特性分析、小訊號模型（SSM）擷取與參數調校。此工具完全以 Python 開發，可於 &lt;a class="link" href="https://hbt-tools.streamlit.app/" target="_blank" rel="noopener"
>Streamlit 線上伺服器&lt;/a> 或本地端執行。&lt;/p>
&lt;p>原始碼已開源於 GitHub：
&lt;a class="link" href="https://github.com/ioedhbt/hbt-tools/tree/IOED-Tools" target="_blank" rel="noopener"
>ioedhbt/hbt-tools（IOED-Tools 分支）&lt;/a>&lt;/p>
&lt;h2 id="直流分析">直流分析
&lt;/h2>&lt;p>Gummel 分析模組可匯入量測得到的 Gummel 曲線資料，並將多個偏壓點疊加比較。基極與集極電流的理想因子可透過各曲線的對數-線性斜率自動擷取。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/hbt-tools/dc_gummel.png"
width="1361"
height="883"
srcset="https://richardmedyanto.github.io/p/hbt-tools/dc_gummel_hu094fb20538a178161094ca53c593db01_69204_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/hbt-tools/dc_gummel_hu094fb20538a178161094ca53c593db01_69204_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="圖：含理想因子擷取之 Gummel 曲線"
class="gallery-image"
data-flex-grow="154"
data-flex-basis="369px"
>&lt;/p>
&lt;h2 id="射頻擷取與小訊號模型擬合">射頻擷取與小訊號模型擬合
&lt;/h2>&lt;p>RF 擷取模組可讀取多偏壓條件下的 &lt;code>.s2p&lt;/code> S 參數檔案，進行開路/短路去嵌（de-embedding），並計算增益與穩定性指標，包括 |h₂₁|²、Mason 單向增益 U，以及 Rollett 穩定因子 K。接著依據 Cheng 等人（&lt;em>Microelectronics Journal&lt;/em>, 121, 2022）的方法擷取小訊號等效電路模型。&lt;/p>
&lt;p>之後，將擷取出的模型回擬至量測的 S 參數。下方的 Bode 圖/Smith 圖顯示擬合後的 S21 幅度與相位，證明模型與量測結果在頻率範圍內具有良好的一致性。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/hbt-tools/smith_bode.png"
width="1767"
height="770"
srcset="https://richardmedyanto.github.io/p/hbt-tools/smith_bode_hua4f11232138af7f682901587a644330f_189125_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/hbt-tools/smith_bode_hua4f11232138af7f682901587a644330f_189125_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="圖：SSM 擬合後的 S21/Bode 圖"
class="gallery-image"
data-flex-grow="229"
data-flex-basis="550px"
>&lt;/p>
&lt;h2 id="gpu-加速參數調校">GPU 加速參數調校
&lt;/h2>&lt;p>為了處理模型參數最佳化時龐大的組合搜尋空間，調校引擎支援透過 &lt;strong>CuPy 進行 CUDA 加速&lt;/strong>。其實作包含自適應批次大小機制：根據可用顯存自動調整每次迭代的運算規模，在有餘裕時擴大批次，在發生記憶體不足時縮小規模，從而避免在 Windows WDDM 驅動下頻繁清除記憶體池。這使得大規模平行參數掃描成為可能，而僅使用 CPU 時幾乎無法實現。&lt;/p></description></item><item><title>OPTIC 2025</title><link>https://richardmedyanto.github.io/zh-tw/p/optic-2025/</link><pubDate>Wed, 10 Dec 2025 15:46:19 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/optic-2025/</guid><description>&lt;blockquote>
&lt;p>本專案於國立臺灣大學 IOED 實驗室完成&lt;/p>
&lt;/blockquote>
&lt;h2 id="optic-2025">OPTIC 2025
&lt;/h2>&lt;p>我有機會在 &lt;strong>Optics &amp;amp; Photonics Taiwan International Conference (OPTIC) 2025&lt;/strong>（於 2025 年 12 月舉行）上發表我的研究成果。這是一段非常寶貴的經驗，讓我能與來自光電領域的研究人員與工程師分享我們在異質接面光電電晶體方面的工作，並深入了解光子學與半導體元件研究的最新進展。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/optic-2025/optic.jpg"
width="2268"
height="4032"
srcset="https://richardmedyanto.github.io/p/optic-2025/optic_hu8cbddf9cd217b539c0aef8547def8b8a_3013771_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/optic-2025/optic_hu8cbddf9cd217b539c0aef8547def8b8a_3013771_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="參加 OPTIC 2025"
class="gallery-image"
data-flex-grow="56"
data-flex-basis="135px"
>&lt;/p>
&lt;h2 id="研究">研究
&lt;/h2>&lt;p>我們的研究探討 &lt;strong>單量子井異質接面光電電晶體（SQW-HPT）&lt;/strong> 的波長依賴光電流響應。此類元件結合了異質接面雙極性電晶體（HBT）的電流增益特性與量子井的光吸收能力。透過使用 830 nm 與 905 nm 雷射二極體照射元件，我們研究不同光子能量如何影響載子產生，進而影響電晶體輸出。&lt;/p>
&lt;p>其核心概念在於：在光照下，耗盡區中的光生載子會形成一種「光致基極電流」，並由電晶體的內在增益加以放大。下方能帶圖說明了電晶體在光輸入下的運作機制：光子在量子井與耗盡區附近被吸收，驅動載子並產生光電流。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/optic-2025/fig1.png"
width="707"
height="526"
srcset="https://richardmedyanto.github.io/p/optic-2025/fig1_hu3e4148f1fbe82084728ea619f575f53f_98027_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/optic-2025/fig1_hu3e4148f1fbe82084728ea619f575f53f_98027_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="光照條件下的能帶圖與元件結構"
class="gallery-image"
data-flex-grow="134"
data-flex-basis="322px"
>&lt;/p>
&lt;p>由於 830 nm 光具有較短波長（較高光子能量），相較於 905 nm 光，在 GaAs 基有源層中的吸收更強。因此會產生較大的光生電流，這在基極-集極（BC）二極體特性中表現為較高的反向電流幅值，並在 Ic–Vce 曲線族中呈現較大的集極電流。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/optic-2025/fig23.png"
width="1007"
height="775"
srcset="https://richardmedyanto.github.io/p/optic-2025/fig23_hu1ace7a6d811ced3e85216c553e484cb2_304539_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/optic-2025/fig23_hu1ace7a6d811ced3e85216c553e484cb2_304539_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="830 nm 與 905 nm 光照下的 BC 二極體特性與 Ic-Vce 曲線族"
class="gallery-image"
data-flex-grow="129"
data-flex-basis="311px"
>&lt;/p>
&lt;p>這些結果證實了 SQW-HPT 的波長選擇特性，使其在波長選擇型光偵測器以及光電積體電路（OEIC）應用方面具有潛力。&lt;/p></description></item><item><title>InP HBT</title><link>https://richardmedyanto.github.io/zh-tw/p/inp-hbt/</link><pubDate>Wed, 16 Jul 2025 15:46:19 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/inp-hbt/</guid><description>&lt;blockquote>
&lt;p>本專案於國立臺灣大學 IOED 實驗室完成&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>&lt;strong>異質接面雙極性電晶體（HBT）&lt;/strong> 是一種在不同區域採用不同材料的電晶體，而非像矽元件那樣僅使用單一材料。與僅使用單一載子的場效電晶體（FET）不同，HBT 同時利用電子與電洞進行導電。相較於單一材料的電晶體（如 BJT），異質接面設計具有較高的電流增益、更快的切換速度、更高的功率效率，以及更佳的設計彈性。這些優勢使其非常適合應用於高頻放大器與通訊系統。&lt;/p>
&lt;p>其中一個應用範例是以 InP 為基礎的太赫茲 HBT，可用於產生或放大太赫茲波，並有潛力應用於未來 6G 網路中的超高速（&amp;gt;100 Gb/s）無線通訊。&lt;/p>
&lt;h2 id="元件">元件
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/inp-hbt/hbt.jpg"
width="1390"
height="929"
srcset="https://richardmedyanto.github.io/p/inp-hbt/hbt_huba59d17bf525733f84d6e242907af411_98620_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/inp-hbt/hbt_huba59d17bf525733f84d6e242907af411_98620_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：發射極尺寸為 10 μm 的 HBT 元件"
class="gallery-image"
data-flex-grow="149"
data-flex-basis="359px"
>&lt;/p>
&lt;p>HBT 由三個區域組成：發射極、基極與集極。&lt;/p>
&lt;h2 id="製程流程">製程流程
&lt;/h2>&lt;p>此元件的外延結構生長於 InP 基板上。在我們的實驗室中，我們使用 MA6 進行微影製程（photolithography），透過濕蝕刻形成 mesa 結構，接著沉積金屬接點，並進行退火處理，以形成與半導體之間的歐姆接觸。&lt;/p>
&lt;h2 id="直流量測">直流量測
&lt;/h2>&lt;p>下圖顯示 Gummel 曲線與輸出特性曲線（family curves）。在本次量測中，我們於發射極尺寸為 20 μm 的元件上獲得最大電流增益（β）為 14.6。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/inp-hbt/gummel.png"
width="3216"
height="2462"
srcset="https://richardmedyanto.github.io/p/inp-hbt/gummel_hu17d21aeeb59337eb58c628114141a3cb_86340_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/inp-hbt/gummel_hu17d21aeeb59337eb58c628114141a3cb_86340_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="圖：Gummel 曲線"
class="gallery-image"
data-flex-grow="130"
data-flex-basis="313px"
>
&lt;img src="https://richardmedyanto.github.io/p/inp-hbt/family.png"
width="3216"
height="2462"
srcset="https://richardmedyanto.github.io/p/inp-hbt/family_hu031f2db45f58cc7faf6dee184437f2ad_68986_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/inp-hbt/family_hu031f2db45f58cc7faf6dee184437f2ad_68986_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="圖：輸出特性曲線"
class="gallery-image"
data-flex-grow="130"
data-flex-basis="313px"
>&lt;/p>
&lt;h2 id="未來工作">未來工作
&lt;/h2>&lt;p>為了實現射頻（RF）元件，仍需進一步優化製程。目前 IOED 實驗室的重點改進方向包括：將接觸電阻降低至 1e-8 Ω·cm²、進行表面鈍化，以及提升製程良率。&lt;/p></description></item><item><title>基於微控制器 ESP32 的自動定日鏡導向系統</title><link>https://richardmedyanto.github.io/zh-tw/p/heliostat/</link><pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/heliostat/</guid><description>&lt;blockquote>
&lt;p>本專案為我的大學畢業專題。研究成果已於 &lt;a class="link" href="https://stei.itb.ac.id/iceei2023/" target="_blank" rel="noopener"
>ICEEI 2023&lt;/a> 發表，並發表於論文（DOI：&lt;a class="link" href="https://doi.org/10.1109/ICEEI59426.2023.10346650" target="_blank" rel="noopener"
>10.1109/ICEEI59426.2023.10346650&lt;/a>）。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>太陽能是一種再生能源，通常透過光伏（太陽能板）轉換為電能。然而，太陽能板的效率較低，因此促使人們尋找其他替代方案，例如定日鏡（heliostat）。&lt;/p>
&lt;p>定日鏡是一種應用於聚光式太陽能發電（CSP）系統的裝置，透過將陽光反射至鍋爐來產生電力。然而，其高昂的投資成本仍然是發展上的主要障礙。&lt;/p>
&lt;p>本研究旨在開發一種能夠在整天持續將陽光反射至目標的定日鏡系統。&lt;/p>
&lt;h2 id="方法">方法
&lt;/h2>&lt;p>定日鏡透過在兩個軸向上移動鏡面來運作：方位角（azimuth）與仰角（elevation）。這兩個角度同時也用來描述特定時間與地點下的太陽位置。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/heliostat/az_elevation.jpg"
width="592"
height="425"
srcset="https://richardmedyanto.github.io/p/heliostat/az_elevation_hubf50283249f7b1118ecbd1cc2d912568_6670_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/heliostat/az_elevation_hubf50283249f7b1118ecbd1cc2d912568_6670_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="方位角與仰角示意圖。來源：https://www.celestis.com/resources/faq/what-are-the-azimuth-and-elevation-of-a-satellite/"
class="gallery-image"
data-flex-grow="139"
data-flex-basis="334px"
>&lt;/p>
&lt;p>太陽的位置可以透過 &lt;a class="link" href="https://gml.noaa.gov/grad/solcalc/" target="_blank" rel="noopener"
>NOAA Solar Calculator&lt;/a> 進行演算法計算。取得太陽的方位角與仰角後，即可調整鏡面，使反射光持續照射在目標上。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/heliostat/reflection1.png"
width="664"
height="551"
srcset="https://richardmedyanto.github.io/p/heliostat/reflection1_hu9476ef283d5350be1703ff5549e97f8b_51465_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/heliostat/reflection1_hu9476ef283d5350be1703ff5549e97f8b_51465_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="定日鏡將陽光反射至目標"
class="gallery-image"
data-flex-grow="120"
data-flex-basis="289px"
> &lt;img src="https://richardmedyanto.github.io/p/heliostat/reflection2.png"
width="643"
height="549"
srcset="https://richardmedyanto.github.io/p/heliostat/reflection2_huff564e38fe801c0fc8ae0a7490953cfd_54572_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/heliostat/reflection2_huff564e38fe801c0fc8ae0a7490953cfd_54572_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="鏡面轉動角度為太陽的一半"
class="gallery-image"
data-flex-grow="117"
data-flex-basis="281px"
>&lt;/p>
&lt;p>鏡面應位於太陽與目標之間。系統可用以下方塊圖表示：&lt;img src="https://richardmedyanto.github.io/p/heliostat/block-diagram.png"
width="973"
height="277"
srcset="https://richardmedyanto.github.io/p/heliostat/block-diagram_hu48f147ff572c80a63013da167a1a9284_39279_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/heliostat/block-diagram_hu48f147ff572c80a63013da167a1a9284_39279_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="351"
data-flex-basis="843px"
>&lt;/p>
&lt;p>定日鏡需要使用加速度計與陀螺儀，以及磁力計來偵測鏡面姿態，並透過伺服馬達進行控制。&lt;/p>
&lt;p>這是我在 Desmos 製作的動畫，展示系統的理想運作情形。紅線為鏡面，黃線為入射陽光，綠線為反射光。&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/W6gKNx95SNQ"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="原型">原型
&lt;/h2>&lt;p>為此系統設計了 PCB 以整合所需的電子元件。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/heliostat/pcb-design.png"
width="652"
height="677"
srcset="https://richardmedyanto.github.io/p/heliostat/pcb-design_hua888925467d428e5abc55bff0264dd12_162461_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/heliostat/pcb-design_hua888925467d428e5abc55bff0264dd12_162461_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="使用 KiCad 設計的 PCB"
class="gallery-image"
data-flex-grow="96"
data-flex-basis="231px"
> &lt;img src="https://richardmedyanto.github.io/p/heliostat/pcb-result.png"
width="697"
height="657"
srcset="https://richardmedyanto.github.io/p/heliostat/pcb-result_hu2839f3b5925e840c3e13cea2ab6b2051_553793_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/heliostat/pcb-result_hu2839f3b5925e840c3e13cea2ab6b2051_553793_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="實體 PCB"
class="gallery-image"
data-flex-grow="106"
data-flex-basis="254px"
>&lt;/p>
&lt;p>接著將元件焊接並組裝至外殼中，如下所示。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/heliostat/assembled-pcb.jpeg"
width="1599"
height="1200"
srcset="https://richardmedyanto.github.io/p/heliostat/assembled-pcb_hu0b327af37290d355e37e6fe9cb9b8597_184129_480x0_resize_q75_box.jpeg 480w, https://richardmedyanto.github.io/p/heliostat/assembled-pcb_hu0b327af37290d355e37e6fe9cb9b8597_184129_1024x0_resize_q75_box.jpeg 1024w"
loading="lazy"
alt="已組裝的 PCB"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="319px"
> &lt;img src="https://richardmedyanto.github.io/p/heliostat/heliostat.png"
width="1397"
height="2398"
srcset="https://richardmedyanto.github.io/p/heliostat/heliostat_hu07ff64f6e609f71fae3475fe34a685d9_1571996_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/heliostat/heliostat_hu07ff64f6e609f71fae3475fe34a685d9_1571996_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="定日鏡裝置"
class="gallery-image"
data-flex-grow="58"
data-flex-basis="139px"
>&lt;/p>
&lt;h2 id="結果">結果
&lt;/h2>&lt;p>我們進行測試以評估系統在維持陽光反射至目標的能力，以及其對目標的加熱效果。以下為定日鏡的示範影片（可開啟字幕）。&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/LS8yblDopR0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>由反射陽光所造成的溫度變化如下圖所示：&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/heliostat/test-graph.png"
width="784"
height="534"
srcset="https://richardmedyanto.github.io/p/heliostat/test-graph_hu2300b8b88604c29be3648b139124d602_46533_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/heliostat/test-graph_hu2300b8b88604c29be3648b139124d602_46533_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="146"
data-flex-basis="352px"
>&lt;/p>
&lt;h2 id="結論">結論
&lt;/h2>&lt;p>定日鏡可透過計算太陽與目標的位置來決定鏡面角度，進而控制反射光方向。所製作的原型成功提升了目標區域的溫度。&lt;/p></description></item><item><title>IoT 技術應用於 Depok 水耕社區</title><link>https://richardmedyanto.github.io/zh-tw/p/depok-iot-hydroponics/</link><pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/depok-iot-hydroponics/</guid><description>&lt;h2 id="背景">背景
&lt;/h2>&lt;p>本專案與德波市地方政府食品安全、農業與漁業局合作完成。專案由 BINUS ASO 講師 Muhammad Zacky Asyari 發起。我參與此專案，負責基於 ESP32 與 ESP32-CAM 開發參數控制與攝影監控功能。團隊共有來自本校的 12 位成員，分別負責儀表板設計、原型製作與社區培訓等不同工作。&lt;/p>
&lt;h2 id="調查">調查
&lt;/h2>&lt;p>在系統開發前，我曾隨 Zacky 老師與德波市政府官員一同前往當地水耕農場進行實地調查。透過參訪多個農場並與農場主交流後發現，由於人力不足，當工作人員外出休假時，植物會因缺乏營養供應而枯死。&lt;/p>
&lt;p>因此，本專案旨在自動化水耕營養添加流程，並監測水耕植物的環境與參數。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/depok-iot-hydroponics/observation.jpg"
width="1280"
height="589"
srcset="https://richardmedyanto.github.io/p/depok-iot-hydroponics/observation_hu4331118a1209d7f2674de439a9db2c55_234405_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/depok-iot-hydroponics/observation_hu4331118a1209d7f2674de439a9db2c55_234405_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="德波實地調查"
class="gallery-image"
data-flex-grow="217"
data-flex-basis="521px"
>&lt;/p>
&lt;h2 id="系統">系統
&lt;/h2>&lt;p>系統使用 TDS 與 pH 感測器偵測植物水質狀態，並使用溫濕度感測器監控環境條件，另以超音波感測器監測儲水槽水位。&lt;/p>
&lt;p>為了控制植物所需的營養與酸鹼度，系統採用 20×4 LCD 顯示器顯示參數，使用者可透過螢幕下方的 4 個按鍵進行調整。系統透過繼電器控制 4 個幫浦，用於添加營養液以及 pH 上升/下降溶液。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/depok-iot-hydroponics/device.jpg"
width="1280"
height="590"
srcset="https://richardmedyanto.github.io/p/depok-iot-hydroponics/device_hu8bfb1e7474d55ced9a96e0313fbc48bc_49611_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/depok-iot-hydroponics/device_hu8bfb1e7474d55ced9a96e0313fbc48bc_49611_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="設備實體"
class="gallery-image"
data-flex-grow="216"
data-flex-basis="520px"
>&lt;/p>
&lt;p>此外，我們使用 ThingsBoard 建立儀表板，以便透過行動裝置監控系統狀態。另一個子系統則使用 ESP32-CAM 拍攝植物影像並上傳至 Google Drive，以進行遠端監測。&lt;/p>
&lt;h2 id="證書">證書
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/depok-iot-hydroponics/certificate.jpg"
width="1227"
height="861"
srcset="https://richardmedyanto.github.io/p/depok-iot-hydroponics/certificate_hu1db778a6584aed19c9c08fe71bd21b3e_186212_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/depok-iot-hydroponics/certificate_hu1db778a6584aed19c9c08fe71bd21b3e_186212_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="專案證書"
class="gallery-image"
data-flex-grow="142"
data-flex-basis="342px"
>&lt;/p></description></item><item><title>智慧汽車系統</title><link>https://richardmedyanto.github.io/zh-tw/p/smart-car/</link><pubDate>Fri, 08 Jul 2022 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/smart-car/</guid><description>&lt;blockquote>
&lt;p>本專案為我大學第六學期課程 &lt;em>Microcontroller Design and Application、Automotive Engineering、Computer System Development and Methodology&lt;/em> 的期末專案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>2020 年，印尼因交通事故死亡人數達 30,668 人，為僅次於健康相關死亡的第二大死因。&lt;/p>
&lt;p>長時間曝曬於陽光下的車內空間可能會變得非常高溫，進而引發化學反應產生有害氣體。此外，處於高溫環境中的人也可能發生中暑。&lt;/p>
&lt;p>根據道路安全行動網絡（Safe Distance）的資料，2016 年有 33.63% 的事故發生於 18:00 至 24:00，顯示低光照環境可能是重要因素之一。&lt;/p>
&lt;h2 id="解決方案">解決方案
&lt;/h2>&lt;p>設計一套整合多種智慧功能的智慧車系統，以解決上述問題。&lt;/p>
&lt;h2 id="功能">功能
&lt;/h2>&lt;ul>
&lt;li>定速巡航&lt;/li>
&lt;li>防撞系統&lt;/li>
&lt;li>自動車室降溫系統&lt;/li>
&lt;li>自動頭燈系統&lt;/li>
&lt;li>攝影監控系統&lt;/li>
&lt;/ul>
&lt;h2 id="系統方塊圖">系統方塊圖
&lt;/h2>&lt;p>以下為原型系統的方塊圖：&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/smart-car/block-diagram.png"
width="1403"
height="781"
srcset="https://richardmedyanto.github.io/p/smart-car/block-diagram_hud83c503222383e897b29d7a1416fbf0d_35386_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/smart-car/block-diagram_hud83c503222383e897b29d7a1416fbf0d_35386_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="方塊圖"
class="gallery-image"
data-flex-grow="179"
data-flex-basis="431px"
>&lt;/p>
&lt;p>此原型為整合式系統，使用多個微控制器並透過 I2C 通訊。系統亦搭配多種感測器以偵測環境輸入。例如，ESP32 接收來自 TEMT6000 的光強訊號，而 Arduino Uno 則接收來自 4 個 HC-SR04 超音波感測器的距離資訊。&lt;/p>
&lt;h2 id="原型">原型
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/smart-car/prototype.png"
width="873"
height="755"
srcset="https://richardmedyanto.github.io/p/smart-car/prototype_hu6c7c44ac7522600e0f57bb5a36aeeedd_933769_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/smart-car/prototype_hu6c7c44ac7522600e0f57bb5a36aeeedd_933769_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="原型"
class="gallery-image"
data-flex-grow="115"
data-flex-basis="277px"
>&lt;/p>
&lt;h2 id="示範">示範
&lt;/h2>&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/sk2ViFiFlVM"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>Python 語言單字卡</title><link>https://richardmedyanto.github.io/zh-tw/p/flashcard-python/</link><pubDate>Thu, 21 Apr 2022 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/flashcard-python/</guid><description>&lt;blockquote>
&lt;p>本專案為我基於線上課程所學習之閃卡（flashcard）應用所進行的改良版本。&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/flashcard-python/demo-white.jpg"
width="286"
height="254"
srcset="https://richardmedyanto.github.io/p/flashcard-python/demo-white_hude1f93b63fd7970848fea9ad7e31467e_8715_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/flashcard-python/demo-white_hude1f93b63fd7970848fea9ad7e31467e_8715_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="112"
data-flex-basis="270px"
>
&lt;img src="https://richardmedyanto.github.io/p/flashcard-python/demo-green.jpg"
width="300"
height="266"
srcset="https://richardmedyanto.github.io/p/flashcard-python/demo-green_hue9cabaaa6a5fff3c2b83053177b07e64_7952_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/flashcard-python/demo-green_hue9cabaaa6a5fff3c2b83053177b07e64_7952_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="112"
data-flex-basis="270px"
>&lt;/p>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>學習一門新語言最困難的部分之一是詞彙累積。對於母語使用拉丁字母的人來說，若目標語言使用不同書寫系統，學習難度會更高。&lt;/p>
&lt;p>以中文為例，中文使用的書寫系統為漢字（hànzì，漢字）。漢字可以說是學習中文過程中最大的挑戰之一。雖然中文存在拼音系統（pīnyīn），但拼音主要用於學習階段，學習者仍需熟悉漢字本身。&lt;/p>
&lt;h2 id="動機">動機
&lt;/h2>&lt;p>我開發此閃卡專案的初衷是為了學習中文，同時展示一些 Python 程式設計能力。幸運的是，我在 Udemy 上修習的一門課程（&lt;a class="link" href="https://www.udemy.com/course/100-days-of-code" target="_blank" rel="noopener"
>100 Days of Code&lt;/a>，非常推薦）介紹了閃卡應用的基本架構，因此我在此基礎上進行修改，使其可同時用於學習日語與中文。&lt;/p>
&lt;h2 id="結果">結果
&lt;/h2>&lt;p>以下為應用程式的部分截圖：&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/flashcard-python/languages.jpg"
width="365"
height="267"
srcset="https://richardmedyanto.github.io/p/flashcard-python/languages_huc66aaf202b13a2a54cd7004a55145fe4_10706_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/flashcard-python/languages_huc66aaf202b13a2a54cd7004a55145fe4_10706_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="136"
data-flex-basis="328px"
>
&lt;img src="https://richardmedyanto.github.io/p/flashcard-python/menu2.jpg"
width="303"
height="415"
srcset="https://richardmedyanto.github.io/p/flashcard-python/menu2_hud4a92599d0eaab6730c0fb4185afc51a_15439_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/flashcard-python/menu2_hud4a92599d0eaab6730c0fb4185afc51a_15439_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="73"
data-flex-basis="175px"
>
&lt;img src="https://richardmedyanto.github.io/p/flashcard-python/no_pinyin.jpg"
width="420"
height="382"
srcset="https://richardmedyanto.github.io/p/flashcard-python/no_pinyin_huc4fa40eae35da12c77b74f4f3a85274c_12994_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/flashcard-python/no_pinyin_huc4fa40eae35da12c77b74f4f3a85274c_12994_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="109"
data-flex-basis="263px"
>&lt;/p>
&lt;p>原始碼： &lt;a class="link" href="https://github.com/richardmedyanto/language-flashcard" target="_blank" rel="noopener"
>Github&lt;/a>&lt;/p></description></item><item><title>VHDL 實現 FIR 與 IIR 濾波器</title><link>https://richardmedyanto.github.io/zh-tw/p/fir-iir-vhdl/</link><pubDate>Mon, 14 Mar 2022 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/fir-iir-vhdl/</guid><description>&lt;blockquote>
&lt;p>本專案是在我擔任數位系統課程助教期間完成的。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>在大學第五學期期間，我作為課程助教為 70 名低年級學生教授數位系統課程。在授課教師 Ir. Sofyan, S.Kom., M.Eng. 的指導下，我負責教學與協助學生完成課程專題，主要講解 FIR（有限脈衝響應）與 IIR（無限脈衝響應）濾波器的實作，以支援其期末專題開發。&lt;/p>
&lt;h2 id="數位濾波器與最佳化">數位濾波器與最佳化
&lt;/h2>&lt;p>數位濾波器接收離散輸入並輸出濾波後的離散訊號，可用於去除高頻、低頻或特定頻段的訊號，廣泛應用於感測器處理與各種演算法中。常見的數位濾波器包括 FIR 與 IIR。&lt;/p>
&lt;p>FIR 濾波器實作較為簡單，通常透過移位暫存器、乘法與加法實現輸出，但缺點是為了獲得良好的頻率響應，需要較高階數。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/fir-iir-vhdl/fir.png"
width="1920"
height="1080"
srcset="https://richardmedyanto.github.io/p/fir-iir-vhdl/fir_hub254b05f6ffab2be01091377531453b8_225069_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/fir-iir-vhdl/fir_hub254b05f6ffab2be01091377531453b8_225069_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="FIR filter. Image taken from O&amp;rsquo;Reilly website"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;p>相較之下，IIR 濾波器在較低階數下即可獲得良好的頻率響應，相比 FIR 具有較低的運算與記憶體需求。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/fir-iir-vhdl/iir.png"
width="1920"
height="1080"
srcset="https://richardmedyanto.github.io/p/fir-iir-vhdl/iir_huc2dce436016d1e3302dd98ad0364ab8e_151786_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/fir-iir-vhdl/iir_huc2dce436016d1e3302dd98ad0364ab8e_151786_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="IIR filter. Image taken from National Instruments website"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;p>在上述圖中（串接二階節點形式），系統需要進行多次乘法與加法運算。一般情況下，可以為每個運算單元設計獨立硬體，例如一個 section 需要 5 個乘法器與 5 個加法器。但這種平行實作會大量消耗硬體資源，因為乘法與加法屬於組合邏輯電路，在 FPGA/CPLD 上資源有限。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/fir-iir-vhdl/iir-problem.png"
width="1920"
height="1080"
srcset="https://richardmedyanto.github.io/p/fir-iir-vhdl/iir-problem_hudf1af61ee2f920d72c7bc38e239f679a_150641_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/fir-iir-vhdl/iir-problem_hudf1af61ee2f920d72c7bc38e239f679a_150641_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="IIR filter 的潛在問題"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;p>因此可以利用時脈頻率遠高於資料更新速率的特性，將原本的平行運算改為序列執行。透過一個乘加單元（multiply-accumulate, MAC）依序完成所有計算，而不是使用多個平行運算單元。這就像使用一台計算機依序完成 10 次計算，而不是使用 10 台計算機同時計算。由於輸入來自不同路徑，需要使用多工器（MUX）來選擇輸入來源。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/fir-iir-vhdl/multiply-accumulate.png"
width="1920"
height="1080"
srcset="https://richardmedyanto.github.io/p/fir-iir-vhdl/multiply-accumulate_hu47a537820f931851913438263be0691a_119044_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/fir-iir-vhdl/multiply-accumulate_hu47a537820f931851913438263be0691a_119044_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Multiply-accumulate approach"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;p>最終實作的 VHDL 程式基於串接二階結構，實現 FIR 與 IIR 濾波器的數位設計最佳化版本，以降低硬體資源使用量。濾波器增益係數透過 MATLAB Filter Design 計算並轉換為二進位以符合設計規格。完整 VHDL 程式碼可於 &lt;a class="link" href="https://github.com/richardmedyanto/DigitalSystem" target="_blank" rel="noopener"
>Github&lt;/a> 查看。&lt;/p>
&lt;h2 id="結論">結論
&lt;/h2>&lt;p>最終實作了 7 階 FIR 濾波器與 6 階 IIR 濾波器的 VHDL 設計，輸入與輸出皆為 8 位元。最佳化後的 IIR 濾波器採用序列式乘加架構，而非純組合邏輯實作。&lt;/p>
&lt;h2 id="課程講義">課程講義
&lt;/h2>&lt;p>我為課程每一堂課製作了投影片講義。可於此查看：&lt;a class="link" href="https://drive.google.com/drive/folders/1CD6J7lh3XZlzTd88AjCnveswjOvHbajx?usp=sharing" target="_blank" rel="noopener"
>講義連結&lt;/a>。FIR 與 IIR 實作內容位於第 15 週資料夾中。&lt;/p>
&lt;h2 id="參考資料">參考資料
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.oreilly.com/library/view/digital-filters-design/9781905209453/ch007-sec002.html" target="_blank" rel="noopener"
>FIR illustration&lt;/a>&lt;/p>
&lt;p>&lt;a class="link" href="https://www.ni.com/docs/en-US/bundle/labview-digital-filter-design-toolkit-api-ref/page/lvdfdtconcepts/iir_sos_specs.html" target="_blank" rel="noopener"
>IIR illustration&lt;/a>&lt;/p></description></item><item><title>碰撞預防系統</title><link>https://richardmedyanto.github.io/zh-tw/p/crash-prevention/</link><pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/crash-prevention/</guid><description>&lt;blockquote>
&lt;p>本專案為我大學第五學期《進階控制系統與數位訊號處理》課程期末專案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>根據印尼中央統計局（Badan Pusat Statistik）資料，印尼共有 15,800,933 輛乘用車，占全國機動車總數的 11.59%。2019 年共發生 116,411 起交通事故，其中 25,671 人死亡。如此高的交通事故死亡率是一個嚴重的社會問題，因此需要採取有效的預防措施。&lt;/p>
&lt;h2 id="解決方案">解決方案
&lt;/h2>&lt;p>本專案提出一種基於距離感測器的自動控制系統，可在必要時自動降低車速或停止車輛以避免碰撞。該系統能覆蓋駕駛者的速度輸入，以優先確保安全。&lt;/p>
&lt;h2 id="原型">原型
&lt;/h2>&lt;p>本原型使用 Arduino Uno、前後各一個紅外距離感測器、直流馬達、L298N H 橋驅動器以及可充電電池。&lt;/p>
&lt;p>系統採用 PID 控制進行車輛運動，並透過實驗方式優化 PID 參數。感測器的數位訊號經由基於漢明窗設計的 FIR 濾波器處理，並使用快速傅立葉轉換（FFT）進行頻譜分析。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/crash-prevention/acs.png"
width="1437"
height="528"
srcset="https://richardmedyanto.github.io/p/crash-prevention/acs_hub70683e5e4307b2ca8bd310f2646f182_55016_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/crash-prevention/acs_hub70683e5e4307b2ca8bd310f2646f182_55016_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="系統方塊圖"
class="gallery-image"
data-flex-grow="272"
data-flex-basis="653px"
>&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/crash-prevention/dsp.png"
width="1436"
height="776"
srcset="https://richardmedyanto.github.io/p/crash-prevention/dsp_hu55005ef17f6188c20c5729a8e31f120f_103480_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/crash-prevention/dsp_hu55005ef17f6188c20c5729a8e31f120f_103480_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="濾波結果"
class="gallery-image"
data-flex-grow="185"
data-flex-basis="444px"
>&lt;/p>
&lt;p>原型展示如下：&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/jkHZy50IedA"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>示範影片如下：&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/ViILeSpAEmI"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>本專案簡報可於此查看：&lt;a class="link" href="https://drive.google.com/file/d/1529pCAZztNKZ6Sh6hqMawIYgnN5aJWL/view" target="_blank" rel="noopener"
>連結&lt;/a>&lt;/p></description></item><item><title>全國醫療記錄資料庫</title><link>https://richardmedyanto.github.io/zh-tw/p/medical-record-db/</link><pubDate>Thu, 10 Feb 2022 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/medical-record-db/</guid><description>&lt;blockquote>
&lt;p>本專案為《資料庫設計與應用》課程期末專案，於大學第五學期完成。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>印尼的醫療紀錄系統目前處於分散且不互通的狀態，這代表不同資料庫之間的資料無法連結。此外，醫院也無法得知病人在其他醫院的病歷資訊，而部分醫院與診所仍使用紙本方式保存病歷。&lt;/p>
&lt;p>對某家保險公司的資深業務人員訪談顯示，醫療紀錄在判斷保險理賠是否真實有效時至關重要。過去流程需要逐一聯繫各醫院取得病患資料，效率低、耗時長，且容易產生詐欺風險。&lt;/p>
&lt;h2 id="解決方案">解決方案
&lt;/h2>&lt;p>為了解決此問題，我們團隊提出建立一套資料庫系統，用於集中管理所有印尼公民的醫療紀錄歷史。該系統將以網站平台形式提供，供政府、醫院與保險公司等需要存取醫療資料的機構使用。&lt;/p>
&lt;h2 id="優點">優點
&lt;/h2>&lt;p>對政府而言，集中管理公民健康紀錄可協助了解全國人民的健康狀況，以制定更完善的政策，並評估國家醫療技術與應變能力的發展程度。&lt;/p>
&lt;p>對保險公司而言，更容易存取客戶醫療紀錄可有效防止客戶與業務員的詐欺行為，並協助篩選合格新客戶，提高理賠決策效率。&lt;/p>
&lt;p>對醫院而言，此集中式數位資料庫可更有效管理病歷，減少紙本儲存空間。數位化系統也讓病歷的新增、修改與查詢更加便利，同時提高資料安全性，避免遺失或因自然災害、意外而損毀。醫院在回應政府、保險公司或其他機構查詢時也能大幅節省時間。此外，不同醫院之間亦可共享病患病歷資料。&lt;/p>
&lt;h2 id="資料庫">資料庫
&lt;/h2>&lt;p>系統使用 MySQL 作為資料庫管理系統。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/medical-record-db/er-diagram.jpg"
width="1023"
height="541"
srcset="https://richardmedyanto.github.io/p/medical-record-db/er-diagram_hubd7f1a0b5aeb58b08d18dd6893795534_58524_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/medical-record-db/er-diagram_hubd7f1a0b5aeb58b08d18dd6893795534_58524_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：資料庫 ER 圖"
class="gallery-image"
data-flex-grow="189"
data-flex-basis="453px"
>&lt;/p>
&lt;h2 id="網站展示">網站展示
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/medical-record-db/homepage.jpg"
width="1024"
height="531"
srcset="https://richardmedyanto.github.io/p/medical-record-db/homepage_huf0f59a101a0e1d6049f19ae84874929c_33350_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/medical-record-db/homepage_huf0f59a101a0e1d6049f19ae84874929c_33350_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：網站首頁"
class="gallery-image"
data-flex-grow="192"
data-flex-basis="462px"
>
&lt;img src="https://richardmedyanto.github.io/p/medical-record-db/search-result.jpg"
width="1024"
height="531"
srcset="https://richardmedyanto.github.io/p/medical-record-db/search-result_hu2567f6e8c6c3be420a0021e47be7840e_27831_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/medical-record-db/search-result_hu2567f6e8c6c3be420a0021e47be7840e_27831_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：依 ID 查詢結果（資料已遮罩）"
class="gallery-image"
data-flex-grow="192"
data-flex-basis="462px"
>&lt;/p></description></item><item><title>IoT 電動閘門與監控系統</title><link>https://richardmedyanto.github.io/zh-tw/p/motorized-gate/</link><pubDate>Tue, 08 Feb 2022 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/motorized-gate/</guid><description>&lt;blockquote>
&lt;p>本專案為我大學第四學期《電腦網路》課程的期末專案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>在駕駛車輛時開關家門具有一定風險。當駕駛下車開關大門時，車輛可能面臨被竊的風險，尤其是在忘記上鎖的情況下。&lt;/p>
&lt;p>另一個問題是，每當門鈴響起時都需要親自查看，十分不便。此外，當屋主不在家時，也無法得知來訪者的身分。&lt;/p>
&lt;h2 id="解決方案">解決方案
&lt;/h2>&lt;p>我們團隊提出了一套物聯網（IoT）解決方案，透過手機控制家門並結合 CCTV 進行監控。現有系統通常透過馬達控制大門，並將監控影像儲存在本地裝置中，且多半只能在室內操作。我們的目標是透過網際網路，使系統可以用手機遠端控制——手機是我們隨身攜帶的裝置。&lt;/p>
&lt;h2 id="原型">原型
&lt;/h2>&lt;p>在原型設計中，我們使用 ESP32 作為大門控制器，並使用 ESP32-CAM 進行影像擷取與傳輸。同時加入門鈴功能，當有人按下門鈴時，系統會通知屋主，在手機上顯示訪客影像，並透過電子郵件傳送該影像。使用者介面則採用 Blynk 建立。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/motorized-gate/blynk.jpg"
width="1024"
height="808"
srcset="https://richardmedyanto.github.io/p/motorized-gate/blynk_huf3c9fcdcb2fad1d3cfd5c14d12c8763b_67921_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/motorized-gate/blynk_huf3c9fcdcb2fad1d3cfd5c14d12c8763b_67921_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：Blynk 應用介面與電子郵件通知"
class="gallery-image"
data-flex-grow="126"
data-flex-basis="304px"
>
&lt;img src="https://richardmedyanto.github.io/p/motorized-gate/prototype.jpg"
width="827"
height="830"
srcset="https://richardmedyanto.github.io/p/motorized-gate/prototype_huc33a43b00fb08dad9e5fe5b9135b9c1a_74454_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/motorized-gate/prototype_huc33a43b00fb08dad9e5fe5b9135b9c1a_74454_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：大門原型"
class="gallery-image"
data-flex-grow="99"
data-flex-basis="239px"
>&lt;/p>
&lt;p>請觀看下方影片示範：&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/PPq_CMVNdZg"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>類比車門碰撞預防系統</title><link>https://richardmedyanto.github.io/zh-tw/p/impact-prevention/</link><pubDate>Sun, 11 Jul 2021 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/impact-prevention/</guid><description>&lt;blockquote>
&lt;p>本專案為我大學第四學期《控制系統》課程期末專案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>在停車場中，僅靠視覺有時難以避免碰撞到牆壁、行人或其他車輛。超音波感測器通常安裝於車輛前後以測量距離，但車身側面較少配置此類感測器。本小組專題目標是在車輛側邊加入紅外線感測器（由於課程要求，本設計採用類比電路實作）。&lt;/p>
&lt;h2 id="電路設計">電路設計
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/impact-prevention/schematic_consys.jpg"
width="1023"
height="724"
srcset="https://richardmedyanto.github.io/p/impact-prevention/schematic_consys_hu925d696f6f13de582260b5ce28ca5335_88545_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/impact-prevention/schematic_consys_hu925d696f6f13de582260b5ce28ca5335_88545_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：電路設計"
class="gallery-image"
data-flex-grow="141"
data-flex-basis="339px"
>&lt;/p>
&lt;h2 id="工作原理">工作原理
&lt;/h2>&lt;p>&lt;strong>簡要說明（TL;DR）&lt;/strong>：紅外線感測器偵測到的距離會與兩個固定閾值進行比較。距離越近，蜂鳴器的警報頻率越高。&lt;/p>
&lt;p>紅外線感測器在 10–80 cm 範圍內偵測到障礙物時會輸出類比電壓。障礙物越近，輸出電壓越高。該類比電壓再透過兩個 LM741 比較器與電位器設定的閾值進行比較。上方比較器在距離較近時輸出高電位，下方比較器在距離更近時也會輸出高電位。&lt;/p>
&lt;p>電位器的設定位置依據如下近似計算：&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/impact-prevention/pot_turn.jpg"
width="720"
height="403"
srcset="https://richardmedyanto.github.io/p/impact-prevention/pot_turn_hue86ab40088d3aaecb89daa0e23fbdfbc_36837_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/impact-prevention/pot_turn_hue86ab40088d3aaecb89daa0e23fbdfbc_36837_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：電位器旋轉比例。來源：https://www.pololu.com/product/136"
class="gallery-image"
data-flex-grow="178"
data-flex-basis="428px"
>&lt;/p>
&lt;p>當僅上方比較器導通時，LM555 會輸出約 1.8 Hz 方波驅動蜂鳴器。此時 LM555 使用連接至繼電器常開端的 33 μF 電容。&lt;/p>
&lt;p>當障礙物更近時，下方比較器也會導通，進而觸發繼電器，使 LM555 切換至連接常閉端的 10 μF 電容，蜂鳴器輸出更高頻率約 5.8 Hz 的聲音。&lt;/p>
&lt;h2 id="原型">原型
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/impact-prevention/prototype.png"
width="948"
height="534"
srcset="https://richardmedyanto.github.io/p/impact-prevention/prototype_hub8e2cba4cef5b68b2cd9c4001806d2c5_369106_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/impact-prevention/prototype_hub8e2cba4cef5b68b2cd9c4001806d2c5_369106_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="圖：原型"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;h2 id="展示">展示
&lt;/h2>&lt;p>（印尼語）&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/w0EJugUqVQU"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>&lt;a class="link" href="https://www.canva.com/design/DAEXnbXfPTM/UMC_lzbS3-lSLgSNfd8P9g/view?utm_content=DAEXnbXfPTM&amp;amp;utm_campaign=designshare&amp;amp;utm_medium=link&amp;amp;utm_source=sharebutton" target="_blank" rel="noopener"
>簡報連結&lt;/a>&lt;/p></description></item><item><title>趨光機器人：VHDL 專案</title><link>https://richardmedyanto.github.io/zh-tw/p/light-seeking-robot/</link><pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/light-seeking-robot/</guid><description>&lt;blockquote>
&lt;p>本專案為我大學第四學期《數位系統》課程期末專案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="目標">目標
&lt;/h2>&lt;p>本專案目標為製作一個尋光機器人，使用 BASYS 3 FPGA 開發板、OV7670 攝影機，以及透過 PMOD HB5 H-Bridge 驅動的一組馬達。程式開發使用 Vivado 與 VHDL 完成。&lt;/p>
&lt;p>由於本專案為課堂專題，我們以分組方式進行，並分工設計不同模組。我所屬小組負責根據光源的位置與大小輸入，決定機器人的移動方向與速度。&lt;/p>
&lt;h2 id="步驟">步驟
&lt;/h2>&lt;ol>
&lt;li>定義需求：輸入/輸出與模組間通訊（課堂討論完成）&lt;/li>
&lt;li>設計數位系統架構&lt;/li>
&lt;li>將數位系統轉換為 VHDL 程式&lt;/li>
&lt;li>整合各模組為完整系統&lt;/li>
&lt;li>在原型上進行測試&lt;/li>
&lt;/ol>
&lt;h2 id="模組設計">模組設計
&lt;/h2>&lt;p>本專案與 thresholding 小組以及馬達控制與速度量測小組密切合作完成。&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/light-seeking-robot/blocks.png"
width="1024"
height="305"
srcset="https://richardmedyanto.github.io/p/light-seeking-robot/blocks_hu7725388aab82b9aae5a466f3dbeb3802_48317_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/light-seeking-robot/blocks_hu7725388aab82b9aae5a466f3dbeb3802_48317_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="小組設計方塊圖"
class="gallery-image"
data-flex-grow="335"
data-flex-basis="805px"
>&lt;/p>
&lt;p>thresholding 模組輸出光源位置（10 位元的光強與位置資訊）。若未偵測到光源，nolightcounter.vhd 模組會使機器人先原地旋轉 360 度後停止。否則，依據光源大小與位置，控制模組（Ctrl.vhd）決定機器人向左、向右、前進或後退。&lt;/p>
&lt;p>接著，左右馬達的目標速度會與實際速度在誤差模組（ERROR.vhd）中進行比較，以決定所需的馬達控制動作。S2US.vhd 與 US2S.vhd 模組則負責有號與無號數值轉換，並與馬達速度量測模組相連。&lt;/p>
&lt;h2 id="原型">原型
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/light-seeking-robot/robot.png"
width="1024"
height="768"
srcset="https://richardmedyanto.github.io/p/light-seeking-robot/robot_hu66d1e6f4ed13c28c6ab4b2adaf4ef147_994128_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/light-seeking-robot/robot_hu66d1e6f4ed13c28c6ab4b2adaf4ef147_994128_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="機器人原型"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;p>註：由於硬體端存在問題，加上當時正值疫情期間，我們沒有足夠時間完成整體系統的整合與測試。&lt;/p>
&lt;h2 id="貢獻">貢獻
&lt;/h2>&lt;p>作為組長，我負責協調團隊分工、推動各子模組開發，並代表小組參與課堂討論與報告。&lt;/p>
&lt;h2 id="教學">教學
&lt;/h2>&lt;p>我們將本專案教學整理並發布於 &lt;a class="link" href="https://www.instructables.com/VHDL-Motor-Speed-Control-Decide-Direction-and-Spee" target="_blank" rel="noopener"
>Instructables&lt;/a>&lt;/p></description></item><item><title>類比車內空氣排放系統</title><link>https://richardmedyanto.github.io/zh-tw/p/car-cabin-exhaust/</link><pubDate>Fri, 11 Dec 2020 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/car-cabin-exhaust/</guid><description>&lt;blockquote>
&lt;p>本專案為我大學第三學期《電路與訊號、電子元件專題》課程專案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>雅加達氣溫最高可達 34°C。在陽光直射下，停放車輛的車內溫度甚至可能達到 70°C。此外，車內材料的化學反應可能對人體健康造成影響，增加中暑與致癌風險。&lt;/p>
&lt;h2 id="解決方案">解決方案
&lt;/h2>&lt;p>我們設計了一個簡單的類比電路系統，用於排出車內空氣。當車內溫度達到 28°C 時，風扇會自動啟動，將車內空氣強制排出。&lt;/p>
&lt;h2 id="原型">原型
&lt;/h2>&lt;p>&lt;img src="https://richardmedyanto.github.io/p/car-cabin-exhaust/circuit.jpg"
width="823"
height="479"
srcset="https://richardmedyanto.github.io/p/car-cabin-exhaust/circuit_hue6a3bfaaa1329b28af920d6bfcac8ba0_86957_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/car-cabin-exhaust/circuit_hue6a3bfaaa1329b28af920d6bfcac8ba0_86957_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：電路設計"
class="gallery-image"
data-flex-grow="171"
data-flex-basis="412px"
>
&lt;img src="https://richardmedyanto.github.io/p/car-cabin-exhaust/pcb.jpg"
width="917"
height="700"
srcset="https://richardmedyanto.github.io/p/car-cabin-exhaust/pcb_hubb391fc6503365843b296521c28bc20a_88997_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/car-cabin-exhaust/pcb_hubb391fc6503365843b296521c28bc20a_88997_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：PCB 設計"
class="gallery-image"
data-flex-grow="131"
data-flex-basis="314px"
>&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/car-cabin-exhaust/prototype.jpg"
width="1024"
height="576"
srcset="https://richardmedyanto.github.io/p/car-cabin-exhaust/prototype_hu704f77dab924bdebff48f76e92297ad5_99089_480x0_resize_q75_box.jpg 480w, https://richardmedyanto.github.io/p/car-cabin-exhaust/prototype_hu704f77dab924bdebff48f76e92297ad5_99089_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="圖：原型"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p></description></item><item><title>C 語言簡易財務記錄應用程式</title><link>https://richardmedyanto.github.io/zh-tw/p/finance-record-c/</link><pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate><guid>https://richardmedyanto.github.io/zh-tw/p/finance-record-c/</guid><description>&lt;blockquote>
&lt;p>本專案為我大學第二學期《演算法與程式設計基礎》課程期末專案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>財務紀錄的管理相對複雜。許多企業仍使用紙本記錄，需要手動計算收入與支出。而現有應用程式對使用者而言，有時因功能過於繁多而難以上手。&lt;/p>
&lt;h2 id="解決方案">解決方案
&lt;/h2>&lt;p>本專案目標是開發一個簡單的財務記錄應用程式。此程式採用命令列介面（CLI），並可將紀錄儲存至檔案中。程式使用 C 語言撰寫。&lt;/p>
&lt;h2 id="結果">結果
&lt;/h2>&lt;p>以下為應用程式的部分截圖：&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/finance-record-c/example1.png"
width="643"
height="664"
srcset="https://richardmedyanto.github.io/p/finance-record-c/example1_hue0b90ee6178f540db192b454b6c96674_41649_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/finance-record-c/example1_hue0b90ee6178f540db192b454b6c96674_41649_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="96"
data-flex-basis="232px"
>&lt;/p>
&lt;p>&lt;img src="https://richardmedyanto.github.io/p/finance-record-c/example2.png"
width="530"
height="694"
srcset="https://richardmedyanto.github.io/p/finance-record-c/example2_hu500751c1be1d589cfa71cb1f3c7e85af_38901_480x0_resize_box_3.png 480w, https://richardmedyanto.github.io/p/finance-record-c/example2_hu500751c1be1d589cfa71cb1f3c7e85af_38901_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="76"
data-flex-basis="183px"
>&lt;/p>
&lt;p>原始碼：&lt;a class="link" href="https://github.com/richardmedyanto/AAPF" target="_blank" rel="noopener"
>Github&lt;/a>&lt;/p></description></item></channel></rss>