發表文章

Arduino IDE 在安裝或更新 esp 32 開發板套件出現 「4 DEADLINE_EXCEEDED: context deadline exceeded」錯誤訊息時之解決方法

How to Fix ESP32 Install Error: "4 DEADLINE_EXCEEDED: context deadline exceeded" 如果想要用 Arduino IDE 撰寫可對 esp 32 系列開發板進行燒錄的程式,則事先須安裝 CP2102 USB to UART 的驅動程式外,還必須在 Arduino IDE 中安裝支援該系列開發板的核心函數庫。不過,當 Arduino IDE 在安裝或更新較大開發板套件如 esp 32 系列開發板 3.3.6 或其它版失敗時,常會出現如下的錯誤訊息: 4 DEADLINE_EXCEEDED: context deadline exceeded (Client.Timeout or context cancellation while reading body) 該訊息說明了因為下載逾時,導致安裝或更新的中止。原因是 Arduino IDE 在安裝或更新開發板套件時連網的預設終止時間為 60 秒 ( 參考資料 1 ) ,因此當網速較慢或套件較大時,一旦安裝或更新套件時間超過就會直接被中止。碰到這種情況簡單的解決方法就是去更改 Arduino IDE 的網路連線逾時終止時間 (timeout) 的配置,適當增加該秒數即可,方法如下:

電流 I = neAv 公式推導

Derivation of I = neAv 一外加電場的導體,假設在 $t$ 時間內有 $m$ 個電子受電場的作用漂移而通過導體中的一截面,電子速度分別是 $v_1$、$v_2$、$...$、以及 $v_m$,且這些電子在 $t = 0$ 時距離該截面的距離分別是 $l_1$、$l_2$、$...$、以及 $l_m$,則平均距離 $$l=\frac{\sum_{i=1}^m l_i}{m}=\frac{\sum_{i=1}^{m}(v_it)}{m}$$ $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=t\frac{\sum_{i=1}^{m}v_i}{m}$$ $$\;\;\;\;\;\;\;\;\;\;=t\frac{mv}{m}$$ $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=vt \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(1)$$ 其中的 $v$ 是這些 $m$ 個電子的 平均漂移速度 (drift velocity)。

從 2 積到 3 ,dx/(x^2 - 1)^3/2 的積分

圖片
  Integral of dx/(x^2 - 1)^3/2 Evalute from 2 to 3 $\int_2^3 \frac{dx}{(x^2-1)^{\frac{3}{2}}}$ 解: 令 $x=\sec \theta$,且 $-\frac{\pi}{2}\le \theta \le \frac{\pi}{2}$,則 $x=\sec^{-1}\theta$, $dx=\sec \theta\; \tan \theta\; d\theta$。所以, $$I=\int_2^3 \frac{dx}{(x^2-1)^{\frac{3}{2}}}=\int_{\sec^{-1}2}^{\sec^{-1}3} \frac{\sec \theta\tan \theta\; d\theta}{\left (\sec^2 \theta -1\right )^\frac{3}{2}}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;$$ $$\;\;\;\;\;\;\;\;\;\;\;\;=\int_{\sec^{-1}2}^{\sec^{-1}3} \frac{\sec \theta\tan\theta\; d\theta}{(\tan^2\theta)^\frac{3}{2}}$$ $$\;\;\;\;\;\;\;\;\;\;\;\;=\int_{\sec^{-1}2}^{\sec^{-1}3} \frac{\sec\theta\tan\theta\; d\theta}{\tan^3\theta}$$ $$\;\;\;\;\;=\int_{\sec^{-1}2}^{\sec^{-1}3} \frac{\sec\theta\; d\theta\;}{\tan^2\theta}$$ $$\;\;\;\;\;\;=\int_{\sec^{-1}2}^{\sec^{-1}3} \frac{\;\frac{1}{\cos\theta}\;d\theta\;}{\frac{\sin^2\theta}{\cos^2\theta}}$$ $$\;\;\;\;=\int_{\sec^{-1}2}^{\sec^{-1}3}\frac{\cos \theta\;d\theta}{\sin^2\theta}$$ $$\;\;\;=\int_{\sec^{-1}2}...

Arduino:I2C 16x2 LCD 攝氏溫度、濕度與時間顯示電路

圖片
Clock with  Thermo-hygrometer   Using Arduino and I2C 16x2 LCD 功能 如圖一與圖二所示,指撥開關 DIP Switch ON 時 LCD 顯示攝氏溫度、相對濕度與時間;指撥開關 DIP Switch OFF 時則可調整時間。其中 Hour 按鈕開關用來調整時,Minute 按鈕開關則可以調整分。 圖一      LCD 顯示攝氏溫度、相對濕度與時間

從 0 積到 1,sqrt (x^2+1) 的積分 | 除法定則推導

Integral of Sqrt(x^2+1) from 0 to 1 求 $\int_0^1 \sqrt {x^2+1}\;dx$ 解: $$I=\int_0^1 \sqrt {x^2+1}\;dx$$ 利用 變數變換 (Change of Variable),令 $$x=\tan \theta$$ 則 $$\theta = \tan^{-1}x$$ 且 $$dx=\sec^2 \theta\;d\theta$$ 代入 $I$,可得 $$I=\int_{\tan^{-1}0}^{\tan^{-1}1}\sqrt{\tan^2 \theta +1}\sec^2 \theta\;d\theta $$ $$\;\;= \int_0^{\frac{\pi}{4}}\sec^3 \theta\;d\theta\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(1)$$ 已知 $d(\tan \theta)=\sec^2\theta\;d\theta$ ,所以式子 (1) 可改寫成 $$I =\int_0^{\frac{\pi}{4}}\sec \theta\;d(\tan\theta)$$ 接著將上式應用 分部積分 (Integration by Parts) 公式:  $\int u\;dv=uv-\int v\;du$ ,可得 $$I=\left. \sec \theta \tan \theta \right \rvert_0^{\frac{\pi}{4}}-\int_0^{\frac{\pi}{4}}\tan \theta\;d(\sec\theta)\;\;\; $$ 又已知 $d(\sec \theta)=\sec \theta\tan\theta\; d\theta$ ,所以 $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;I=\left [ \sec \left (\frac{\pi}{4}\right )\tan \left (\frac{\pi}{4}\right )-\sec (0)\tan (0) \right ]-\int_0^{\frac{\pi}{4}}\tan \theta \c...

從 0 積到 3,x/(36-x^2)^(1/2) 的積分

Integral of x/(36-x^2)^(1/2) from 0 to 3 求 $\int_0^3 \frac{x}{\sqrt{36-x^2}}dx$ 解: $$I=\int_0^3 \frac{x}{\sqrt{36-x^2}}\;dx$$ $$\;\;\;\;\;\;\;=\int_0^3 \frac{x}{\sqrt{36(1- \frac{x^2}{36})}}\;dx$$ $$\;\;\;\;\;\;=\int_0^3 \frac{x}{6 \sqrt{1-(\frac{x}{6})^2}}\;dx$$ 利用 變數變換 (Integration by Substitution) , 令  $$\frac{x}{6} = \sin\theta$$ 可知  $$\theta = \sin^{-1}\frac{x}{6}$$ 且 $$x=6\sin\theta$$ $$dx=6\cos\theta\; d\theta$$ 則 $$\;\;\;\;\;I=\int_{\sin^{-1}0}^{\sin^{-1}\frac{1}{2}} \frac{(6\sin\theta)(6\cos\theta) }{6\sqrt{1-\sin^2\theta}}\;d\theta$$ $$\;\;\;\;=\int_0^{\frac{\pi}{6}}\frac{(6\sin\theta)(6\cos\theta)}{6\cos\theta}\;d\theta\;\;\;$$ $$\;\;=\int_0^{\frac{\pi}{6}}6\sin\theta\; d\theta\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;$$ $$=-6\int_0^{\frac{\pi}{6}}d(\cos\theta)\;\;\;\;\;\;\;\;\;\;\;\;\;$$ $$=\left. -6\cos\theta \right\rvert_0^{\frac{\pi}{6}}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;$$ $$\;\;=6(\cos 0-\cos \frac{\pi}{6})\;\;\;\;\;\;\;\;\;\;\;\;\;\;$$ $$=6\left (1-\frac{\sq...

三段式電子開關電路

圖片
3-section Digital Subsection Switch   如圖一與圖二所示,為具有相同功能的三段式 電子開關電路。二者的差別在於前者的 組合邏輯電路部分是由及閘、反閘以及互斥或閘所組成,而後者則是僅由反或閘所組成。以下將就其功能、電路動作原理以及組合邏輯設計方法分別說明之。 圖一   三段式 電子開關電路圖 ( 組合邏輯部分由及閘、反閘以及互斥或閘所組成 ) 圖二     三段式 電子開關電路圖  ( 組合邏輯部分由反或閘所組成 ) 功能 當開關 SW 第一次閉合 ( 第一段 ),黃色 LED 以及紅色 LED  全亮;開關 SW 第二次閉合 ( 第二段 ),僅黃色 LED 亮;開關 SW 第三次閉合 ( 第三段 ),僅紅色 LED 亮。 動作原理 這個電路的核心是 IC 4017 十進制計數器 (Decade Counter),其接腳圖與真值表分別如圖三及圖四所示。 圖三    IC 4017 接腳圖 圖四     IC 4017 的真值表 由圖四的真值表與圖五所示的 燈光切換控制 電路 可知 ,當電源接上,IC 4017 的第 3 接腳 $(Q_0)$ 會輸出邏輯 "1",其餘的輸出 $(Q_1...Q_4)$ 皆會輸出邏輯 "0"。 圖五    燈光切換控制器的開關第一次切上時的狀態 而當開關第一次切上 (SW ON) 時,IC 4017 的第 14 接腳 $(CLOCK)$ 接收到第 $1$ 個正緣時脈,$Q_1$ 會輸出邏輯 "1",其餘輸出邏輯 "0",此次輸入為此電子開關電路的第一段開關動作;同理開關第二次切上,第 14 接腳 $(CLOCK)$ 接收到第 $2$ 個正緣時脈,$Q_2$ 輸出邏輯 "1",其餘輸出邏輯 "0" ( 第二段開關動作 );開關第三次切上,$Q_3$ 則輸出邏輯 "1",其餘輸出邏輯 "0" ( 第三段開關動作 )。最後,開關第四次切上,$Q_4$ 輸出邏輯 "1" 給第 15 接腳 $(CLEAR)$ ,回復到 $Q_0 $ 輸出邏輯 "1",其餘輸出 $(Q_1...Q_4)$ 皆為邏輯 "...

半波對稱訊號的複數指數傅立葉級數之係數推導

圖片
Derivation of  Complex Exponential Fourier Series  Coefficients for  Signals with Half-wave Symmetry   如果一週期性訊號 $x(t)$ 滿足下列條件 $$x(t \pm \frac{1}{2}T) = -x(t)$$ 其中的 $T$ 是該訊號的週期,則該訊號被稱為 半波對稱 (Half-wave Symmetry) 訊號。例如圖一所示,$x(t)$ 就是一個 半波對稱訊號。 圖一      半波對稱 訊號 任意一週期性波形 $x(t)$ 的 複數指數傅立葉級數 (Complex Exponential Fourier Series) 可表示為 $$x(t) = \sum_{n=-\infty}^{\infty}C_ne^{jn\omega_{0}t} \; \; \; \;\; \;\; \;\; \;\; \; \; \;\;t_0 \le t \le t_0+T$$ 其中的 $C_n$ 為 $$C_n=\frac{1}{T}\int_{t_0}^{t_0+T}x(t)e^{-jn\omega_0t}dt$$ 又上式可改寫成 $$C_n=\frac{1}{T}\left [ \int_{t_0}^{t_0+\frac{T}{2}}x(t)e^{-jn\omega_0t}dt+\int_{t_0+\frac{T}{2}}^{t_0+T}x(t)e^{-jn\omega_0t}dt \right ]$$ 上式第二項的部分,令 $t^{'}=t-\frac{T}{2}$,則 $dt^{'}=dt$,代入上式第二項,可得 $$C_n=\frac{1}{T}\left [\int_{t_0}^{t_0+\frac{T}{2}}x(t)e^{-jn\omega_0t}dt+\int_{t_0}^{t_0+\frac{T}{2}}x(t^{'}+\frac{1}{2}T)e^{-jn\omega_0(t^{'}+\frac{T}{2})}dt^{'}\right ]$$ $$\;\;=\frac{1}{T}\left [\int_{t_0}^{t_0+\frac{T}{2}}x(t)e^{-jn\omega...

x tan^(-1) x 的積分

Integral of x tan^(-1) x 求解 $\int x\tan^{-1}x\;dx$ 解: $$I=\int x\tan^{-1}x\;dx\;$$ $$\;\;\;\;=\int \tan^{-1}x\;d(\frac{x^2}{2})$$ $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=\frac{x^2}{2}\tan^{-1}x-\int \frac{x^2}{2}d(\tan^{-1}x)$$ 已知  $$(\tan x)^{'} = (\frac{\sin x}{\cos x})^{'}=\frac{\cos^2 x+\sin^2 x}{\cos^2 x}=\sec^2 x$$ 即 $$\frac{d(\tan x)}{dx}=\sec^2 x$$ 所以, $$d(\tan x)=\sec^2 x\;dx$$ 又 $$\tan \left (\tan^{-1}x \right )=x$$ $$d \left [\tan \left (\tan^{-1}x \right ) \right ]=dx$$ $$\sec^2 \left (\tan^{-1}x \right )d \left (\tan^{-1}x \right )=dx$$ $$\left [1+\tan^2 \left (\tan^{-1}x \right )\right]d(\tan^{-1}x)=dx$$ $$(1+x^2)d(\tan^{-1}x)=dx$$ 可得 $$d \left (tan^{-1}x \right )=\frac{dx}{1+x^2}$$ 因此, $$I=\frac{x^2}{2}\tan^{-1}x-\int \frac{x^2}{2}\frac{dx}{1+x^2}$$ $$\;\;\;\;\;=\frac{x^2}{2}\tan^{-1}x-\frac{1}{2} \int \frac{x^2}{1+x^2}dx$$ $$\;\;\;\;\;\;\;\;\;\;\;=\frac{x^2}{2}\tan^{-1}x-\frac{1}{2} \int \frac{1+x^2-1}{1+x^2}dx$$ $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\...

IC 555 單穩態多諧振盪電路的原理與其輸出脈波寬度公式推導

圖片
Working Principle and Output Pulse Duration Derivation of IC 555 Monostable  Multivibrator 如圖一所示,為一 IC 555 所組成的 單穩態多諧振盪電路 。首先我們先說明此振盪器的原理,接著再來推導此振盪器的輸出脈波寬度公式。 圖一      IC 555 單穩態多諧振盪電路 動作原理 如圖二所示為 555 的內部電路,其可幫助我們了解  IC 555 單穩態多諧振盪電路的動作原理。 如圖三所示,當電源打開瞬間,555 的第 4 腳 $(\;\overline {Reset}\;)$ 因其所連接的電容在該瞬間短路,會接收到邏輯 "0" 訊號,使得其第 3 腳 $(Output)$ 被重置,因而輸出邏輯 "0",且放電電晶體導通,開始放電。但當電源穩定後,該電容開路使得第 4 腳接收到邏輯 "1" 訊號,停止重置輸出接腳,第 3 腳的輸出狀態才開始能受到第 6 腳與第 2 腳的輸入狀況的影響而改變。此時在放電電晶體導通的情況下,第 6 腳 $(Threshold)$ 電位約 $0.2V$ 等同於輸入邏輯 "0",加上按鈕未按下時的第 2 腳輸入的是邏輯 "1",意即此時 IC 555 的內部的 $RS$ 栓鎖器的 $R$ = "0" 且 $S$ = "0",$Q$ 與 $\overline Q$ 維持原態 $($ $RS$ 栓鎖器的真值表,如圖四所示 $)$,因此第 3 腳繼續輸出邏輯 "0"。 圖二    IC 555 內部電路 圖三    IC 555 單穩態多諧振盪電路電源打開瞬間,輸出邏輯 "0" 且放電電晶體導通 ,電容 C 不充電 圖四     RS 栓鎖器真值表 當電源穩定後,按鈕開關按下瞬間,IC 555 的第 2 腳 $(Trigger)$ 會輸入邏輯 "0",導致 IC 555 內部的 $S$ = "1",$R$ 依舊為 "0",因此 $Q$ = "1",且放電電晶體不導通停止放電,電容 C 開始充電,...

(sqrt(x^2+4x+5))^(-1) 的積分 | 變數變換法的公式 | 變數變換法的公式證明

圖片
Integral of (sqrt(x^2+4x+5))^(-1) 求 $\int \frac{dx}{\sqrt {x^2+4x+5}}$ 解: $$I=\int \frac{dx}{\sqrt {x^2+4x+5}}$$ $$\;\;\;\;\;\;\;\;=\int \frac{dx}{\sqrt {x^2+4x+4+1}}$$ $$\;\;\;=\int \frac{dx}{\sqrt {(x+2)^2+1}}$$ 令 $x+2=tan\; \theta$,則 $\theta = \tan^{-1}(x+2)$,且 $dx = \sec^2\theta\; d\theta$,可得 $$I=\int \frac{\sec^2\theta \;d\theta}{\sqrt{\tan^2\theta + 1}}\;$$ $$=\int \frac{\sec^2\theta \;d \theta}{\sec\; \theta}\;\;\;\;\;$$ $$\;=\int \sec\;\theta \;d \theta\;\;\;\;\;\;\;\;$$ $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=\int \sec\theta \left ( \frac{\sec\theta + \tan \theta}{\sec\theta + \tan \theta}\right ) d \theta$$ $$\;\;\;\;\;=\int \frac{d(\sec \theta + \tan \theta)}{\sec \theta + \tan \theta}$$ $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=\ln |\sec\theta + \tan\theta | + C\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;C \in R\;\;$$ 如圖一所示,$\tan \theta = x+2$,$\sec \theta = \sqrt{(x+2)^2+1}$,代入上式,可得 圖一      $tan\; \theta = x+2$ 的直角三角形    $$I=\ln |...

x sin^-1 x 的積分 | 分部積分推導 | 變數變換法的公式及證明

圖片
Integral of x sin^-1 x 求 $\int x \sin^{-1}x\;dx$ 解 : 令 $$I = \int x \sin^{-1}x\;dx$$ $$\;\;\;\;\;\;=\int \sin^{-1}x\;d(\frac{x^2}{2})$$ $$\;\;\;\;\;\;\;\;=\frac{1}{2}\int \sin^{-1}x\;d(x^2)$$ 上式利用分部積分 (Integration by parts),可得 $$I =\frac{1}{2}(\sin^{-1}x)(x^{2})-\frac{1}{2}\int x^2d(sin^{-1}x)$$ 因為 $$\sin (sin^{-1}x)=x$$ 將上式等號兩邊微分,可得 $$\cos (\sin^{-1}x)d(sin^{-1}x) = dx\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(1)$$ 圖一     描述 $\sin (sin^{-1}x) = x$,$\cos (sin^{-1}x) = \sqrt {1-x^2}$  關係式的直角三角形 然而如圖一所示,可知 $$\cos (\sin^{-1}x) = \sqrt {1-x^2}$$ 代入式子 (1)  可得 $$\sqrt {1-x^2}\;d(\sin^{-1}x) = dx$$ 即 $$d(\sin^{-1}x)=\frac{dx}{\sqrt {1-x^2}}$$ 所以, $$I=\frac{x^2}{2}\sin^{-1}x-\frac{1}{2}\int \frac{x^2}{1-x^2}dx$$ 接著令 $x=\sin \theta$,則 $\theta = \sin^{-1}x$,且 $dx = \cos \theta \;d\theta$,因此上式可改寫成 $$\;\;I=\frac{x^2}{2}\sin^{-1}x-\frac{1}{2}\int \frac{\sin^2 \theta}{\cos \theta}\cos \theta\; d \theta$$ $$=\frac{x^2}{2}\sin^{-1}x-\frac{1}{2}\int \sin^2 \theta \;d \theta\;\;\;\...

CMOS 無穩態多諧振盪器的原理與振盪頻率推導

圖片
Working Principle and Frequency Derivation of a CMOS Astable Multivibrator 如圖一所示,為 CMOS 反閘的無穩態多諧振盪器。其中的 CMOS 反閘 (NOT GATE),常可用 CMOS 反或閘 (NOR GATE) 代用,如圖二所示。 圖一     CMOS 反閘無穩態多諧振盪器 圖二      CMOS 反或閘無穩態多諧振盪器 電路原理 假設 $V_{SS} = 0 V$,如圖三所示,當電源打開瞬間,CMOS 反相器 1 的輸入為邏輯 "0" $($電位 $\simeq V_{SS} = 0 V$ $)$,其輸出則為邏輯 "1" $($電位 $\simeq V_{DD}$$)$,CMOS 反相器 2 的輸出就會是邏輯 "0"。此時,電容 C 開始充電。 圖三       CMOS 反閘無穩態多諧振盪器-電容充電 充電過程中,電容 C 負極的電位維持為 $0V$ 而其正極的電位會因充電而上升,一旦其值充至大於 CMOS 邏輯閘的 臨限觸發電壓 $V_t$  $(\simeq \frac{V_{DD}}{2})$ 瞬間,電容 C 兩極的電位差 $V_C = V_t$ ,CMOS 反相器 1 輸出轉態為邏輯 "0",且 CMOS 反相器 2 輸出轉態為邏輯 "1" $($電位 $\simeq V_{DD}$$)$。在此瞬間電容 C 正極的電位本來應該變成 $V_t+V_{DD}$,負極則為 $V_{DD}$ $($ 電容器正負極的電位差 $V_C$ 值在該瞬間一樣維持為 $ V_t$$)$。但是由於 CMOS 邏輯閘輸入端有二極體組成的 靜電保護電路 ,如圖五所示,該保護電路會將此時電容 C 的正極的電位限制在約 $V_{DD}$,且電容會開始放電,如圖四所示。 圖四        CMOS 反閘無穩態多諧振盪器-電容放電 圖五     CMOS 邏輯閘的二極體輸入保護電路,會將輸入電壓限制在 $V_{SS} - 0.7 V$ 至 $V_{DD}+0.7V$ 之間 ...