日記
生活
日期 | 概述 |
---|---|
12/06(一) | 電磁的互感、自感 |
12/07(二) | 電子三的PSRR |
12/08(三) | 電子的實際放大器與等效電路模型 |
12/09(四) | 單晶片的多線程概念 |
12/10(五) | 吃導生聚 |
12/11(六) | 電子的MOSFET基本原理與cascode |
12/12(日) | 寫電子三的考古 |
12/13(一) | 讀電子學三 |
12/14(二) | 電子三二段 |
12/15(三) | 單晶片專題的後場人員或廚師的OLED介面 |
12/16(四) | 單晶片專題的車體確定 |
12/17(五) | 單晶片專題的報告草稿 |
12/18(六) | 通原的mixing與image frequency |
12/19(日) | 單晶片的ESP32與mega板子藍芽連線 |
12/20(一) | 電子三的PSPICE作業 |
12/21(二) | 電子三的butterworth filter |
12/22(三) | 單晶片專題的秤重模組與RFID |
12/23(四) | 單晶片專題的確認循跡軌道 |
12/24(五) | 寫平顯作業二 |
12/25(六) | 通原的single-tone FM |
12/26(日) | 通原的FM(單頻率與多頻率)的頻寬 |
12/27(一) | 單晶片專題的ESP32和Mega2560、heroku的server要如何傳輸 |
12/28(二) | 電子三一階二階濾波電路實踐 |
12/29(三) | 通原的機率函數、變異數、correlation coefficient |
12/30(四) | 單晶片專題的點餐流程大致完成 |
12/31(五) | 單晶片專題的GPS模組與語音服務 |
01/01(六) | 通原的隨機程序的自相關函數、自共變函數 |
01/02(日) | 通原的ergodic、PSD、SNR |
01/03(一) | 通訊原理期末考 |
01/04(二) | 電子三的antoniou 電感模擬電路 |
01/05(三) | 單晶片專題的循跡車體與車上模組整合 |
01/06(四) | 複習平顯、電儀表作業 |
01/07(五) | 平顯、電儀表考試 |
01/08(六) | 單晶片專題的車子行進、車上模組、後端整合 |
01/09(日) | 電子三的KHN biquad與Tow-Thomas biquad |
01/10(一) | 電子三複習一二階filter |
01/11(二) | 電子三三段 |
01/12(三) | 單晶片專題的完成所有整合 |
01/13(四) | 單晶片專題的實際demo |
01/14(五) | 看平顯成績 |
01/15(六) | 搬離宿舍回潮州住 |
01/16(日) | 補日記 |
2021下三段總結 | 通原的機率與統計與隨機程序、電子三的filter設計流程、完成單晶片專題 |
子路實驗做class B輸出級,雖然解決class A的靜態電流耗能的缺點,但在輸入電壓小於時,BJT/MOSFET不導通,會有一段deadband,造成crossover distortion。
因此才有class AB輸出級,藉由電路增加輸入電壓offset,使輸出級沒有失真的狀況。在class AB實驗中,改變,會造成負半周的波型被截斷,推測一顆BJT一直不導通,不過我分析電路的能力很差,這方面需要去刷smith後面的題目補救。
接下來lab11是做Schmitt trigger電路,電路照著教材上接,debug很久還是檢查不出來哪裡有問題,輸出的波型一直是正弦波,拖到5點,整個實驗室只剩我們這組,最後直接放棄,好險帶我們實驗室的助教很佛,他們說自己都搞不清楚這實驗了,自然不會要求我們,聽到其他班是郭泰豪助教帶的實驗課,每次做實驗都會要求每個人各自做、要求數據準確性、結報要分析電路並使用latex打完整計算過程…那才叫硬,我是覺得好好讀好smith,比起花時間打這些結報還來的有意義。
晚上把電磁的互感與自感讀完,感覺這方面需要結合後面的法拉第定律比較能理解,反正我先了解定義。
互感解題流程為
久違地把PSPICE載回來,要做電子三作業,很麻煩的是元件參數都沒給,要自己去設計一個他所指定規格的二級放大器,我先把電路和環境搞好。需要注意元件都在
跑模擬時Simulation Settings
->Configuration Files
,需要指定如上的Library Path
。
電子三講新的參數PSRR(power supply rejection ratio),衡量輸入電源與的改變對輸出訊號的影響 從結論看,越大的通道長度可以提高增益、CMRR、PSRR這些"靜態"的參數,但同會讓transition frequency 、slew rate(SR)"動態"參數變差,就是設計上的trade-off,視要設計電路功能而定。之後又講了一個bias電路與folded-cascode op amp,分析電路的設計巧思與計算相關參數。
晚上讀電磁,雖然今天感覺沒做什麼事情,不過我好累,明天再讀。
下午裝Vitrual Box虛擬機,參考影片教學調好1980*1080
的全螢幕顯示,不過虛擬機卡卡的,不知道問題在哪裡。再來讀電磁的磁能整理如下表
X | 電能 | 磁能 |
---|---|---|
從電路求能量 | ||
從場求能量 |
因此有別於12/03(一)從基本定義求自感,另一種解題思路是先求磁場、磁能,再回推自感值。
晚上重讀電子學,實際放大器會遇到以下問題
做一個線性電路模型,放大器就是線性電路的特解,禁止返回的轉移量,以此推導出放大器的電路模型。
這次單晶片只有3個lab而已,我也順便在今天就打完結報,學習創建新的thread與用signal(用來告知process有一個event發生)去觸發指定的thread運作。不過關於作業系統相關的知識,我一知半解,之後或許可以研究一下OS處理的機制。
早上電儀表講eye diagram是用來方便判別切換時抖動(jitter),當訊號穩定時才會在該區間取值,不知道為什麼就開始講到傳輸線,由於電磁波在無界空間傳輸效率差,需要有引導裝置,並計算在有損傳輸線,但電磁波的反射係數,在阻抗匹配的情況下,就不會有反射的情況。
平顯講到儲存電容連接至掃描線的設計,不過這部分上課都聽不懂。晚上導生聚去吃陶板屋,我是沒加任何活動的系邊,沒什麼認識的人,我們這邊也都是不認識的,只是簡單聊一下選課,聽到旁邊桌在聊一些老師和課程的八卦就加減聽一下。
禮拜五晚上的我有些鬆懈的,沒什麼心情就打開千戀萬花,共同線劇情全破了,祓除崇神收集碎片解開詛咒,之後進入茉子線,在跟芳乃確認完彼此沒有男女的心意之後,每晚送茉子回家,慢慢了解茉子的事情。常陸家代代服侍朝武家,茉子平常都在服侍芳乃根本沒有自己的生活,慢慢地看著茉子能有自己的生活,找到自己喜歡的事情,我內心是非常欣慰的。到最後告白時,茉子自卑驅使說自己不是故事的女主角,不夠配我,但對我來說,我也是被女主角芳乃拒絕的男配角啊,在我們故事裡,茉子就是我唯一的女主角。之後的生活,發現茉子真的是一個很色的女生,因為一開始我們還不敢愛愛,茉子每晚都會偷偷自己解決,吵到睡在她旁邊的芳乃,自己還沒察覺到,芳乃和茉子的反應,真的有夠好笑,也超可愛的。
感覺每次睡醒都在耍廢,等到下午罪惡感油然而生,才開始讀書,晚上進度沒達標,就會熬夜,隔天早上又睡掉,就好像正回授系統一樣,是一個不穩定的系統。
讀電子三教授的授課講義,這次要考輸出級和運算放大器,也複習電子一二很基本但我忘記或是沒讀好的東西。
MOSFET基本原理
如OCW 26 : 14,加大直到從cut-off區到triode區電子通道剛形成;再加大,直到,從triode區到saturation區通道會"被捏到幾乎沒有",稱為pinch off,再繼續加大,通道會往前面移一點點,但形狀(參雜)幾乎沒有改變,所有新加的跨壓會全部跨在通道到drain端,因此電流不會改變。
channel length modulation參考那張圖,
組態 | 增益 | 輸入阻抗 | 輸出阻抗 | 轉換 |
---|---|---|---|---|
理想CS | transconductance | |||
理想CG | current follower | |||
理想CD | voltage follower |
低頻增益。
在回授路徑加一個米勒電容,使系統在高頻下不會變成正回授,震盪起來,再加個電阻,把讓系統不穩定的零點移到無限大。
左邊current source使用Widlar current source,使電流只與與有關,增加準確度。
最後一堂實驗室做數位CMOS電路,很簡單,所以就提早結束了,真舒服。今天繼續讀電子學,不過有些觀念卡卡的,讀起來不太順,又回去看了電子二的觀念,晚上寫了smith幾題二級放大器的例題。這幾天下來有點鬆散,有不少時間都在睡覺,需要克制一下自己惰性。
今天考電子三,第1大題一樣觀念是非選擇,第2大題是class AB輸出級、第3大題是class AB輸出級改良、第4大題是class D無法達到100轉換效率的原因、第5大題是二級放大器的題組,佔56分。
都是教授上課講義的習題變形,不過跟同學討論了一下我覺得我考爆了,尤其是輸出電阻寫錯真的很不應該,心情好煩躁,不知道最後出來是幾分,吃完飯後腳踏車找了快2個小時還是沒找到,我記得我明明都有上鎖的,那台腳踏車看起來很破,應該是沒理由被偷吧,之後筆電D槽無法讀取,我把所有的資料都放那裡,現在我完全不能工作了,今天也太慘。明天要繼續找看看我的腳踏車,也要去台南火車站前站修電腦,等事情處理完,要趕快補通原進度,最近的讀書效率不太好,自己都心不在焉,這樣不是一件好事。
結果昨天以為被偷的腳踏車是停在對面一條街忘記了,腳踏車確實是有鎖,而今天打開電腦,發現D槽可以順利讀取,不過之後還是需要留意一下後續這顆SSD狀況。
延續昨天和組員討論單晶片期末專題,我今天弄了送餐流程最一開始 - 顯示給後場人員或廚師OLED的人機介面。
接下來打了一下明天lab實作項目,看了周志遠作業系統OCW,多線程要共享資源時需要同步(Process Synchronization),以免線程之間取到的資源不同步,使用Mutex(Mutual Exclusion)去鎖住critical section,確保同一時間內資料只會有單一存取。
而Semaphore算是一個比起Mutex更generalized的機制,本質上是一個計數,紀錄這個critical section可以同時被幾個線程共同執行,因此當數量為1時,代表這個critical section只能被一個線程執行,稱為binary Semaphore,等於前面講的Mutex。
承昨天做的http server,新增了一些功能,創建一個queue
的class與動態配置(直接操作heap區的記憶體),來記錄不斷增加的訂單,在OLED介面上新增未有訂單的車子動畫與按下確認鍵後要倒數計時5秒再發車。這邊有一個很低級的錯誤就是我ESP32開發板接線圖(pinout)看相反了,因此線路接錯,導致按鈕一直無法正確運作,debug很久,到最後終於發現,下次還需要注意一下。
由於我昨天已經有打了六、七成實作內容,所以今天我都丟給我組員研究,我做期末專題,另一方面也是覺得這次實驗題目很惱人,明明就不需要multi-thread要做的內容,硬要用到mutex
和semaphore
,反正認真就輸了,不要浪費再沒意義的事情上面,光是助教都搞太不懂了。
晚上拿到助教以前做專題的機械手臂車,拆解剩下我們需要的車體,輪子使用麥卡納姆輪,可以前後左右平移、繞自身旋轉,真的是一個蠻厲害的輪軸設計,5個紅外線感測IC除了可以循跡之外,我們還將房號編碼成黑白區域,當紅外線感測IC感測到指定的pattern,對應到指定房號,就會停下來。
我使用繪圖軟體illistrator畫圖,需要注意的是影印時,會對原本要印的A4白紙對98%的縮放,因此墨水不會印到邊框,需要進入"影印設定"調,縮放調成"無",但如果邊緣有黑色物體,一樣會留白,這是要保護印表機,因此下一次畫圖要避免畫到邊寬向內延伸4公分以內的範圍。
最後我在ESP32嘗試使用無源蜂鳴器,但與Arduino系列開發板不同的是不支援tone()
,今天先使用ESP32上改變PWM頻率的函式ledcWriteNote(channel, frequency)
,實作當接收到server傳來的訂單時,類似手機響鈴的提醒短暫鈴響,明天再研究可以嘗試使用Arduino Tone for ESP32。此外,還要解決多筆餐點顧客等待時間計算錯誤的bug。
今天早上電儀表上示波器與波型產生器,介紹外觀按鈕有甚麼功能與SPEC要怎麼看,但我也不是很懂,之後要刷他給練習題。下午平顯大二各組在報告,我就在打單晶片的報告,又畫了一張示意圖與我們做到的進度。 分工就是我弄車上模組、劉XX弄車子移動循跡、李XX弄後端,下禮拜就各自報自己做到的進度。
晚上把解決多筆餐點顧客等待時間計算錯誤的bug解決,queue多加一個紀錄收到定單的時刻,在enqueue的成員函數加上newNode->waiting_time = millis();
即可,並在server多開一個path,把queue遍歷,印出正在排隊的所有訂單,不過有個問題就是網站需要不斷刷新,才會更新資料,這邊可以用ajax
或是websocket
解決,但是同樣的問題是不懂網頁。
期末專題真的是有夠花時間的,要做出一般網站需要的功能,對我這新手需要花很時間研究,寒假是有時間可以給我慢慢研究,但現在一頭栽下去真的不行,計畫明天把進度停掉,專心讀通原和做電子三作業。
輸入訊號為,想要得到輸出訊號,利用積化和差推導,得出結論是需要加上一個本地震盪器,頻率為,再加上一個中心頻率為的BPF(bandpass filter)。
而當輸入訊號為多個頻帶時,做mixing時會造成2個頻帶重疊、互相干擾,因此我們需要找到那個干擾的頻率,即為image frequency ,推導結論是,並在mixing之前,用IR(image rejection) filter把image frequency過濾掉。
一個AM接收器,當接收到多個波段的訊號可以用一個可調的channel selection filter去過濾想要的頻率,但由於BPF是可調且Q-factor很大(),因此在實務上很難設計。既然bandwidth不能改,就去改center freq,把前面說的IR filter和mixer加進來,其中IR filter和mixer是可調的,而IF filter是不可調的,再加上期中考教的AM demod的envolope detection與DC removal(noncoherent),這個架構就是superheterodyne(超外差) receiver
中午看了一點通原影片,接下來整個下午到晚上都是單晶片團體討論,我主要完成ESP32與mega板子連線,一開始我用I2C,但發現只能從master傳至slave,而不能從slave傳至master,理論上是可以傳輸,但因為我找不到相關的程式範例,所以使用藍芽傳輸,基本流程大致與單晶片lab6結報 藍芽配對相同,不同點是一開始需要獲取作為slave端的ESP32內建藍芽的地址,而在燒錄後,由於同時運行WIFI和藍芽會造成記憶體爆滿,所以需要修改flash(快閃記憶體)分區表,這邊給程式運行的記憶體我設為最大(3MB),最後把一些demo的流程轉成GIF放在簡報並新增各個板子之間的比較,完成我負責報告的部分。
今天電子電路實驗final project,光罩圖助教已經畫完了,我們只需要曝光、顯影、蝕刻、鑽孔,接下用錫焊接金屬元件,並用示波器測試結果即可,這讓我想到當初大二上修電工實驗也是這樣,時間過得好快。
接下來都是在跑電子三PSPICE模擬,那個作業是要自己設計兩級CMOS運算放大器,但參數全都沒給。我和一位同學討論,從作業要求的SPEC計算個別的,但很麻煩的實際計算值與PSPICE跑出來的值不吻合,到最後實在沒頭緒,都在隨便亂調參數,看會有甚麼變化,最後調到有符合DC gain和unity-gain bandwidth的要求,但phase margin沒過。
今天剛好是系上的聖誕節餐會,去吃一頓免錢的飯,去年這時候我在做計算機組織實驗,沒去吃,今年來體驗一下。
電儀表講示波器,分為DSO和DPO兩種,如Oscilloscope Types,DSO是把觀測到的類比波型轉換數位波型,再交由microprocessor處理,瓶頸在於microprocessor的處理速度,因此有了DPO並行處理可以即時呈現訊號,多了傳統示波器缺少的時間資訊(瞬態變化)。
繼續跑電子三PSPICE模擬,測SR+和SR-過了,但PM沒過,最後只能交,至少3個過還有基本分,晚上我那位電神幫我調,他之前也是測了很久,不過有歸納出一些心得,很快就調出來了- 在第一級model()時,其實的影響不大,與我們上課計算的公式有所差異。
電子三講到一個算是很重要的章節 - filter,先介紹filter的SPEC有4個參數。而講了2個數學式符合在filter要求的範圍。
今天冬至,晚上我待在系館做單晶片期末專題組員那邊的雜事、打一下日記。今天是15周,目前還有平顯和通原作業待完成,剩4個禮拜這學期就結束了,這段時間要撐過去,不要因此而鬆懈。
今天早上我跟組員約好測HX711,但無法校正,直到找到arduino ESP32 HX711重量感測的範例,才成功測得公克數,準度還蠻高的,Arduino mega板子實際37g,測量值43g;自己的手機redmi note 6 pro實際182g,測量值199g。
另一個模組是RFID,這邊我是使用SPI通訊協定,RFID的tag幾乎都是使用NXP(恩智普)的Mifare,其中內建EEPROM,可對它寫入和讀取數據,例如:停車票卡可紀錄車主的停車時間。這份範例程式可以去修改(可修改的)UID,最後應該就剩要熟悉wav, mp3解碼器的函式庫了,還有把所有模組整合起來,完成送餐時的交易流程,就完成我負責"車上模組"的內容。
下午單晶片進度報告,我口條實在沒有很好,一些想要講的東西也沒講到,都是簡單帶過。教授們的回應老實說有些都是為了說而說,像是說我不要放亂亂的模組實體接線圖,然後換到下一組報告,又叫那組的人要學我們這組放實際上做出來模組與線路圖,讓人無所適從,摸不透教授真的想看什麼,反正我也沒有很在乎報告,這只是算是一個進度上的回報而已,做給自己看的。晚上團體討論,劉XX測試車體,我做圖不斷修正,而目前的路徑暫定如下,由26張A4白紙拼貼路線,之後劉XX還要做測試。
而另一邊server端,這邊使用之前2021下二段日記 11/16(二),完成ESP32發送GET
請求給李XX建立的server,至於server要如何"主動"傳輸資料給ESP32,我覺得有2種方法就是ESP32不斷發送GET
請求,確認數值是否更新或是用websocket持續連線,但李XX有其他見解,所以這邊ESP32就給他拿去研究,反正我也不是很懂後端就是了。
早上是電儀表的最後一堂課,網路教學示波器探头如何校准、示波器电压探头X1X10档有何不同,各功能按钮有啥用,示波器校準流程如下
下午平顯是最後一堂課,並繳交作業二,講的是訊號延遲與Micro LED技術。
晚上是平安夜,我那位電神朋友約我吃飯,聊到他以前在航太系讀的一些古典力學、待過教會、修過電腦,還有最近在讀一些經典文學,經驗也太豐富,之後我繼續讀通訊原理。
Continuous-Wave Modulation分為linear和angle,angle是分為PM與FM,先定義一些名詞。
名稱 | 數學式 |
---|---|
instaneous phase of | |
phase deviation | |
instaneous frequency of | |
frequency deviation |
由於angle modulation是非線性的,分析上有困難,所以我們先用特例去簡化分析FM,就是single-tone FM。
由上式推導就可以知道single-tone FM signal的頻率與震幅是
關於昨天的single-tone FM有幾個參數有補充
理論上FM的BW是無限大,因為bessel function會散開,但由於,我們會定義一個power ratio要大於某一個值去決定FM的頻寬,因此STFM的頻寬定義為,為最小的整數使PR大於某一值,而根據經驗法則,因此頻寬改寫為。
當輸入訊號為任意值時,根據Carson's rule的經驗法則得頻寬為 這邊參數與公式與ST FM類似,可以相互對照。
FM的demod可以使用discriminator或是Phase-Locked Loop(PLL)。理想的discriminator可以直接抓取的,再做微分得 (當乘上一個正的常數代表解調成功),但實際上很難這樣做,因此實際上的discriminator我們會先把接收訊號
延續上禮拜,下午電子電路實驗做final project,焊接和元件都已完成,但還沒測,我是沒有抱太大的信心,感覺PCB板上的電路就一副短路的樣子,不過我重心也不在這裡,還有很多科目還要讀。之後討論一下單晶片,ESP32和Mega2560要如何傳輸,基本上就是
ESP32傳多少的編碼,車子就移動到哪裡,最後回傳1代表已經結束任務
而另一邊我隨便抓了10樣台灣小吃,已經決定好餐單。與server的連線目前組員打算是在ESP32也架個server,ESP32與heroku的server雙邊通訊,使用ngrok服務,將ESP32原先的private IP轉為public IP,傳送檔案類型使用*json
,由於ESP32開發板還在組員那裡,我打給組員大致測試流程為
車子語音方面,使用雅婷文字轉語音,已錄製好要播放的語音提示,為了了解wav, mp3模組提供聲音處理的EQ值,我開了adobe audtion,EQ就是在frquency domain裡面去調哪個頻帶的聲音高低,如下圖就是EQ的參數化面板有HP就是high pass filter,用來過濾低頻訊號,Q是品質因子,中心頻率去除以3dB的頻寬,簡單來講就是調整要影響頻帶的範圍。
由於wav, mp3模組使用microSD儲存音訊檔,但我遲遲借不到microSD讀卡機,所以在露天網購,禮拜二時送達,但Win11驅動好像有問題,一直無法正常操作內部檔案,實在是很麻煩,很想退貨,重買一個比較有聽過的牌子;還有一個問題是ESP32外部供電,目前想到的解決方法是使用之前Uno板供電的方式 - 電池12V輸入給L298N,而L298N有拉出一個5V的電源接到ESP32的供電,禮拜四一起討論時再試看看。很多東西都還沒弄,像是到達客戶端時各個模組相應功能、ESP32與heroku的server之間要開幾個API來傳資料…期末專題弄這些有的沒的東西有趣是有趣,但我實在是沒什麼時間。
電子三上禮拜12/21(二)是講根據filter的那4個SPEC去找出符合SPEC下的transfer function,而今天是講要怎麼根據算好的transfer function去實現實際的電路。在設計高階filter時,一般會用多個二階以下的block去實現,因為當一次設計3階電路時,需確保在unity gain frequency下phase沒有下降到-180
度以下,這樣設計起來需要考量穩定性,會很麻煩。一階濾波器有4種型態分別是LP、HP、general、All-pass,由transfer function的分子項決定。實現方式可以用被動的RC電路與OP AMP RC電路,而關於transfer function需要自行推導。
再來是二階濾波器,他的transfer function就顯得複雜許多,LP為了求頻率響應的極值,把transfer function做微分=0,由推導出來的結果可以知道當時,能達到最大值,即Butterworth filter;而HP也是同樣做法;BP我們感興趣的是他的bandwidth,算出結果是;而當zero落在時,稱之為notch filter,又可細分為LP、HP、regular三種。
最後就是電路實踐,使用LCR電路,基本架構都符合natural structure,差別只在於要用電流或電壓激發(相同)與在哪個位置激發(區別LP、HP、BP),而notch filter一樣不改變natural structure,以及最後的all-pass filter電路。
通訊原理前面所探討的是沒有noise下的mod與demod,但在加入noise情況下,需要機率的知識去量化noise。而輸入訊號其實也是隨機(random)的,而非決定性的(deterministic),原因在於接收端我們不知道預期的輸入訊號長什麼樣子。幾個基本的名詞定義要知道 - random experiment, outcome, events, sample space, 機率3大公理, 條件機率, 獨立事件,值得注意的是隨機變數不是變數,而是一個函數的對應關係,重要的例題有binary symmetric channel。
機率的隨機變數分為2種
隨機變數種類 | 質量/密度機率函數 | 累計分布機率函數 |
---|---|---|
離散型 | PMF | CDF |
連續型 | CDF |
2種常見分布,1是均勻分布,2是高斯(常態)分布,PDF為(要背),由他的平均數(期望值)與標準差決定,又定義了一個新名詞Q-function ,在數位通訊常用到,只是CDF的互補數(1-CDF)而已,這邊有個bit-error和Q-function計算的例題要熟悉。
再來是考慮2個隨機變數以上所形成的聯合機率函數
PDF與CDF提供最完整的隨機變數的資訊,但有時候我們只需要隨機變數的部分資訊即可,而有了統計(statistics)。
要計算2個隨機變數的相關性,引入covariance ,分為大於0是正相關、小於0是負相關、等於0是不相關,covariance可以判斷相關性的方向,但無法判斷強度,需要normalization,得相關係數(correlation coefficient) ,當是獨立時,是不相關,反向不成立,特例是高斯分布,反向會成立。
最後一個性質是高斯分布做線性轉換仍然是高斯分布,實際應用上一個常態分布的noise經過一個linear filter,依然是常態分佈的。
實驗內容為USB host,與master與slave之間溝通方式類似,很快就做完了。之後跟劉XX討論循跡路線問題,會因為地不平而影響到能擺設的房號,不過理想上還是想要能繞一個圈,這樣起點到終點那段距離就不需要手動去搬運,之後他來弄車上模組的食物自動掀蓋裝置,這是之前報告時教授提點的內容,這邊是用L298N
與馬達去驅動3D建模的半圓形的蓋子來實現。另一邊跟李XX討論heroku跟ESP32的連線,原本是採用12/27(一),但因為ngrok服務,一來連接速度慢、二來網頁沒有安全性憑證,用外網的手機網頁連線,一直無法測試成功,因此最後改用ESP32做為client去不斷get資訊。
這種分工討論,常常需要互相協調,我承認我的溝通能力有待加強,有時候一股腦兒就想吐露出我的想法,而沒有聽取別人的聲音,就如同我平常打日記一樣,有時候一時興起長篇大論,盡都是個人的主觀想法。就算覺得自己的想法比較好,也要有說服別人的能力,讓別人聽的懂自己的想法與正確地回答別人提出的疑問。
晚上把點餐流程大致完成,延續先前後場人員出餐完後的進度,接下來是行進過程要實時確認餐點重量有無遺失,測得重量都顯示在OLED上。再來是到達房間一開始是顧客刷房卡(RFID),確認UID吻合後取餐,一樣所有流程指示都顯示在OLED上,最後車子回到起點(後場人員),繼續下一筆訂單。
今天是元旦補假,也是2021年的最後一天,繼續趕單晶片專題的進度。我加上最後一個模組GPS功能,但這邊就遇到一個很大的問題,也幾乎佔掉我快一整天的時間在處理,GPS也是使用跟DFplayer一樣的RX和TX的UART傳輸,勢必會與DFplayer的接口衝突,因此DFplayer要去尋找其他腳位,我試了幾乎所有腳位都無法用HardwareSerial
來初始化,最後拔掉hx711
的16與17腳位,改用DFplayer總算是能正常運作了,可是hx711
又要尋找新的腳位了,試了幾乎所有腳位,要不是燒不進去程式,要不是顯示
GPIO2引腳用於 ESP32連接電路。在負載期間,不會被拉至GND。如要接管FLASH存儲器,必須在上傳過程中將引腳拉至GND
解法一確定不管用,目前在使用解法二,我只能說ESP32的pin腳真的很麻煩 - 有些不能用,有些又有一堆限制,然後每個廠商的集成ESP32的板子接線又不一樣…這些坑點花了我今天一整天的時間。
好在今天該實現的,最後總算是有做出來,新增GPS模組與加上各個流程的語音服務,而關於送餐車行進過程,播放的是Hololive裡面rushia和aqua的bgm,真的好聽。
json
格式並解析早上做了3件事,一是ESP32爬openweather與B站上的json
格式並做解析,獲取我需要的資訊;二是找到別人現成的OLED過場動畫,之後我再修改成自己的動畫;三是確定DFplayer的TX可以回傳撥放的狀態,這樣就可以等到DFplayer撥放完,傳給我訊息,我再給DFplayer訊號,讓它繼續撥放下一個聲音了,一樣之後再弄。
12/29(三)學的隨機變數是對應到一個"數字",而隨機程序是是指在每個取樣空間內的取樣點對應到一個"函數",這個函數稱為sample function,所形成的集合稱為ensemble,例如一個local oscillator的隨機程序,當在秒時觀察這個系統,會簡化為,即為隨機變數,也就是說隨機程序退化成隨機變數。
隨機程序一樣可用機率函數描述joint PDF, Joint CDF,統計量mean, variance,差別只在於通常算出來是與時間相關的函數,而非一個常數,再來定義
當每一階的統計量皆與絕對時間無關,稱為嚴格穩態(strict-sense stationary, SSS),而只要符合一階與二階統計量與絕對時間無關,稱為廣義穩態(wide-sense stationary, WSS),由於高斯分布知道一階統計量mean和二階統計量variance即可決定機率密度函數PDF,因此當為高斯分布,WSS -> SSS。
昨天探討的是ensemble average是在同一時間內各個simple function的統計量,而今天要討論的是同一simple function內的時間平均,即是time average of a RP。
當n階time average與ensemble average相同時,時,稱為ergodic,當1、2階滿足時,稱為wide-sense ergodic,這部分可以前面的SSS與WSS做比較,而當隨機程序為ergodic,必然為SSS。由於計算較簡單,因此可以多加利用這樣性質計算。
定義訊雜比SNR衡量參數。
對一個WSS的隨機程序,可以定義功率密度函數(power spectral density, PSD) 因此可以由以上關係式得。PSD決定隨機訊號的頻寬。
Gaussian Random Process定義為取出任意個有限的隨機變數皆是jointly Gaussian PDF,性質是WWS等價SSS與uncorrelatedness等價independence。White Process,PSD為const,與頻率無關。
結合之前訊號調變與解調的觀念,例題一是探討經過AWGN channel下的系統,而例題二是DSB-SC在noise影響下的分析,如下圖所示。
需要複習學期初講的 - 一隨機程序通過一LTI系統為。分析流程是依序求出各個節點的訊號,這部分需要多加練習。
今天整天都是在弄通訊原理,早上練教授給的考古題,考的題目很靈活,用到的觀念與公式要背熟,但這次期末考題型跟考古題完全不一樣,應該說期中考也是這樣,題目如下 :
沒想到他考AM、FM調變的比重,前兩堂課是我一個月前讀的內容,這部分我沒有複習的很透徹,感覺很多觀念都忘了,反正講這些都太過於主觀,成績出來才是重點。
晚上我把2份通訊原理作業寫完,其中最後一份是FM Stereo Multiplexing,我大概掌握教授作業的方向,因為教授其實沒有把通訊原理所有內容講完,都是挑重點講(這樣也好,不然光是教授上課的內容我就讀不太完了),而作業就是出他上課沒講,原文書有的內容,因此我都看交大OCW 陳伯寧通訊原理來找答案,內容放在FM Stereo Multiplexing,基本上就是原文書與交大OCW的中譯內容而已,我想說既然考試已無力回天,但好歹作業好好寫,把這基本分拿好,就這樣不知不覺寫到隔天的早上6點。
antoniou
電感模擬電路昨天寫完通訊原理作業、今天打完電子電路final project的結報,這兩科算是結束了,接下來是禮拜五早上的電儀表考試與下午的平面顯示器考試,以及下禮拜二的電子三考試,今天上完電子三的最後一堂課,打鐵趁熱,馬上複習一下授課的內容。
由於電感體積大,磁場問題,需要與其他電子元件分開,避免磁場的問題,因此需要找到能代替電感的電路,這邊介紹一個取代方法 - antoniou inductance simulation circuit
,而由於負載連接會改變特性,因此在輸出的地方加一個buffer(增益K的放大器),上禮拜教的二階LCR的L通通取代為antoniou
電路,複習一下上禮拜二講的內容,以下基本架構都符合natural structure,差別只是輸入源(激發位置)不同:
filter | 輸入電壓源 |
---|---|
LP | 接在L |
HP | 接在C |
BP | 接在R |
的notch | 接在LC |
的LPN | 接在LC,把C拆成2個並聯 |
的LPN | 接在LC,把L拆成2個並聯 |
All pass |
值得注意的是All pass在這裡就是1-(2BP),一般的L做不到2BP,但在這裡,我利用buffer,實際上為non-inverting amplifier的增益,做出;由於1-(2BP)是(2BP)的互補數,因此我把輸入訊號與GND交換接,即可實現All pass filter。
剩下的內容等禮拜五考完電儀表和平顯期末考,再複習。
雖然我不太情願(書都讀不完了,還要搞這個苦差事),但今天還是跟組員弄了一整天的單晶片專題,整合循跡、掃房號編碼的車子和我這邊的車上模組,循跡和編碼一直是我們車子的核心功能,但受到行進地面平坦度與材質影響,影響變音太大,需要不斷去調參數、測試多次才會成功,所以這次拍完demo影片,之後就會把循跡和編碼束之高閣了,很可惜,但也無可奈何。
反正最後總算是有測試成功,錄了個demo短片,回去我花了2個半小時做出每個流程的動畫窗格,如果之後的進度難產,好歹還有這個影片與目前的流程當作備案。
今天重寫之前2次平面顯示器的作業,需要背的公式還蠻多的,像是 MOS與TFT區別、IPS(normally black)與TN(normally white)面板區別、LCD與OLED面板區別、3D眼鏡種類區別、為什麼要用AC驅動配向膜(用等效電路解釋)、電壓平均值(數值)不等於0時會有DC殘留效應、液晶漏電流的RC放電公式、等效液晶電容計算、藍相液晶電位計算等觀念。
再來電儀表一樣繼續背公式與很多名詞定義,分為3班老師出題
晚上拿到朋友傳來的考古,就和其他人分工寫考古,從考古看,很多內容也都是作業的內容,外加更多要背的東西。我就這樣背讀到隔天五點,但實在太多,背不太起來。
電儀表學期末考題
平面顯示器期末考題
題目 | 對應內容 |
---|---|
FHD SXGA VGA顯示器 人類視覺解析長度 對比度 | 作業1 |
儲存電容目的 電荷守恆定義 TFT-LCD全名 | 作業1 |
RC像素電路充放電 | 作業1-9 |
藍相液晶優點,電容耦合計算 | 課本P80例題計算 |
電流對電壓圖判斷,計算Vgs=0時下的漏電流對應像素數目 | 無 |
資料線補正電壓計算 | 作業2-7-b |
mini LED電路A點計算與LED等效電路 | 實驗3 |
一直線的座標轉換 | 作業1-13 |
像素電路frame判斷 | 作業1-12 |
電儀表考的十二導程心電圖,沒想到直接要你畫出所有10個電極要擺放在身體上的那個位置,我沒背到那個地方,其中6個電極位置就亂寫;setup time不知道為什麼我寫成settle time,而最不確定的是頻率響應圖判斷LCR電路的組態,這個我課程沒有看到。
平面顯示器一開始基本計算題,其中SXGA的解析度應該是,寬度我背錯,虧我後面計算還寫很多;TFT-LCD的全名是Thin film transistor liquid crystal display
,其中Thin film我沒寫出來;電流對電壓圖判斷那題完全沒碰過,該題組是整份考卷中最不確定的、LED等效電路應該是一個TFT並聯一個電容,這是當初實驗三時,助教的叫我們這樣接電路的,那題一樣寫錯。
queue
結構的data今天單晶片結報約出來實作一整天。一開始先確認後端連線正常,接下來我加上一些取消與非法操作的相應流程,讓整個系統更加完善,包括後場人員的cancel鍵取消訂單、取餐時,未先掃描RFID會有警示鈴聲、RFID錯誤感應超過三次,就取消訂單。
我這邊程式測試主要成兩個部分 - 一個是單一功能,另一個是整合到所有系統。之前測單一功能沒問題是去爬去網站上的json
檔並去做解析,但當整合到系統時,HTTP Status Code
卻是-1
,代表巨集connection refused
,參考這篇文章,底下留言說ESP32不能同時開藍牙和http client,因為兩者都需要同一天線,但令我不解的是之前ESP32同時開藍牙與http server明明就可以,現在改成當作http client就出錯,這個問題目前無解,所以workaround就是不用ESP32內建的藍牙,而改用ESP32操控HC-05。
這又導致另一個問題是腳位都已經全數接滿,所以要接HC-05,只能砍掉GPS模組,接腳位12和腳位14,如前面我一貫的測試流程,單一功能測試是沒問題的,但當整合到系統時,ESP32的RX卻一直收到很多雜亂的訊息和空字元,問題點是出在12這個腳位,如ESP32 Pinout Reference,規定說如果開機時腳位12是HIGH
,會開機失敗,因此之前的GPS和現在的藍牙模組 ,我都是需要一開始先排除負載電路,燒完程式或開機完後才接回去(這是12/31(五)遲遲無法燒錄程式的原因,並得出來的解決分法),我以為腳位12只有這個限制,但這個腳位在開機後訊號可能也會不穩定,所以workaround是拔掉昨天(禮拜五)接的蓋子功能,多出來這三個腳位,給HC-05用,而蓋子功能給MEGA2560操作,ESP32發送藍牙訊息叫MEGA2560開蓋即可。
接下來我把queue
結構的節點改了一下,內部data紀錄一筆訂單的各項品項int menu[10]
,RFID碼int rfid[4]
、房號char room_number
,但由於HTTP GET一個流程要花差不多0.3秒的時間完成流程,造成我的OLED顯示幀數太低,按鈕與一些感應都不太靈敏,這部分一開始我想到的解決方法由於NodeMCU-32s是雙核,可以使用多線程並行處理,但我之前測試的就結果是,由於我的程式內容太多了,造成無法多開雙核,畢竟不同執行序的一些記憶體分區會共享,所以workaround是當我queue
不為空時,就是有訂單流程再跑時,我可能就會改10秒才會HTTP GET一次架在heroku的server。
最後是整合的部分 這邊劉XX調路線和蓋子開合的參數、李XX修改他那邊後端的一些bug,我們終於成功跑完一輪送餐流程,最後是要給ESP32外接電源供電,這在01/05(三)時有試過了,L298N雖然可以提供5V,但可能由於電流過大,DFplayer mp3解碼器無法正常運作,解決方法是從車體底座的28V轉5V變壓器中的5V電源接線上來,給ESP32和工作電壓在5V的模組用,而今天我們仿造之前成功的例子,但卻發現之前車體底座的5V,在洞洞板的焊錫脫落,之後換其他腳位還是電壓太低,我們把L298N的5V和車體底座的5V接在一起,終於成功了!但好景不長,在我們測試完後,要復刻剛才的例子時,卻遲遲沒有足夠的電壓,最後好像還發生了電路短路導致電流異常升高,導致我這邊的DFplayer mp3解碼器模組燒壞,因此現在只能重新網購燒壞的模組以及自己外界用外界電池,加上買個穩壓模組去供電好了,車子的電源管理布局一直不是很好,這是助教當初給我們時,也講過的問題,沒想到在測試要結束的最後一刻,卻被供電搞到,要重買模組。
除了01/04(二)實現LCR電路實現各個功能的filter,另一個方法就是使用雙積分迴路(biquad),積分器可由HP的轉移函數推得,拉出3條訊號線,既能同時實現LP、HP、HP,又稱主動濾波器。關於具體實現方法有
根據回授基本定義推導,filter的pole與RC電路的zero是一樣的,而filter的zero是受輸入源的位置影響,在不改變natural structure的情況下,也就是filter的pole不變下改變輸入訊號源位置。接下來是要會互補回授電路的轉換與靈敏度計算。
根據前兩次段考經驗,教授的講義要看熟,明天再重頭看與計算上面的例題一遍。
今天從頭複習所有教授講過的內容,因為考試範圍只有考到filter的sensitivity而已,所以這次考試要好好把握,由於教授講義與smith高度重疊,我就smith搭配上課講義看,寫smith的練習題,如12/21(二)是filter的SPEC定義,有4個重要參數、濾波器衰減函數、選擇因數、熟悉butterworth filter從transfer function到各參數的推導,以及練習解題流程,而Chebyshev filter解題流程也是類似,不過數學式太繁瑣,可能不會考。
接下來看陳振芳OCW 16:55,複習了電子二的OPAMP內容,積分器的電容再並聯一個電容是為了要避免offset電壓灌入,讓積分器從還沒灌入時候,就積分到無限值(實際上是積分到飽和電壓),但當頻率低於,就會變成放大器,而對應到我們現在上的filter即是當作為一階的low pass filter,今年寒假我想系統性重看一遍陳振芳OCW,聽他上課真的很舒服,不過一階電路太簡單,應該都是考二階電路,如01/04(二),而我這次主要是背公式與那些transfer function,通通背起來,以及後面的antoniou
電感值一樣背下來。
早上寫2年份教授給的考古題,並回去複習那些觀念與公式,大部份的題目都是照抄smith後面的習題,所以我也寫了smith的其他課後題目,而這次考題直接上圖。
1題考觀念、2題butterworth filter流程、3題bandpass filter(2019年考古題的類題,好險我有做考古題)、4題antoniou
電感值(考古題)、5題bridge-T網路,其中5-a題的推導,助教考試時,有給全班提示說a點不會流電流,因此未知數和限定方程式是夠求出來的,不過我推導不太確定。依照上次二段平均85分看,這次難度跟上次差不多,可能也是很高,或許就不會調分數了,只求我能在平均就好,不要有太多的計算錯誤。
昨天7點考完電子學後,接下來只剩單晶片期末專題,而重買01/08(六)燒壞的模組今天也已經到貨了,我反覆測試又弄到隔天5點,主要內容實現有2項。1是OLED上排顯示餐點名稱 - 超過3筆則會顯示刪節號、2是DFplayer能連續撥放語音 - DFplayer的TX回傳撥放的狀態,讀取狀態為0代表已經沒有撥放曲目,因此可以繼續撥放下一首,但實際測下來DFplayer的硬體可能沒辦法負荷一直連續讀取值,因此我把送餐後的餐點撥放獨立成一個state的subfunction,不斷在void loop{}
內不斷呼叫,直到離開這個state++
。
每次測試都是這樣明明邏輯是沒問題的,但當整合在一整個流程的時候,可能是受限於硬體效能,就無法正常運行,而這個"無法正常運行",也沒辦法像C/C++有gdb之類強大的debugger,因此只能不斷燒錄,不斷trial and error,讓我搞到心很煩。
下午約出來做,這邊我所有功能已測試完畢,但車子的mega2560板在反覆測試卻無法燒錄程式碼,推測可能也是因為之前01/08(六)電路燒壞有關,好險還有另一塊mega2560板子,一開始測試另一塊mega2560板子是沒問題的,但實際裝上板子後,程式就燒不進去了,推測可能是板子接口不良導致,好險車體移動程式已燒錄完成,但自動掀蓋機的參數就無法調了。
自動掀蓋機是由L298N驅動馬達轉動3D列印的半圓形蓋子構成,L298N供電是從車體底下的12V拉上來,但這個12V電壓十分不穩, 由於現在車體已經充飽電了,實際上供電可能會大於12V,造成馬達轉速過快,蓋子就會很用力地蓋下,蓋子下方是要放秤重平台的,可能會經不起大力地碰撞,因此最後只能砍掉自動掀蓋的功能,讓使用者自行掀蓋,很可惜,但這或許比起冒險實裝自動掀蓋機還來的保險。
最後我們錄製兩部分的影片 - 手機操作與實際車體與車上模組的操作流程,因為我們不知道明天實際demo還能不能跑,光是今天測下來,就問題一堆了,這問題不在於軟體,而是硬體不穩定性,這是我們無法解決的。
延續昨天12點錄完demo影片後,我回宿舍洗澡、吃消夜,整理完心情後,凌晨2點多跑去新K館剪影片,剪到早上10點多輸出影片,分為line介面與車子視角,有一次完整的正常流程以及5個異常處理 - 運送途中食物重量異常減少、消費者未遵照正常手續直接取餐、消費者使用房卡感應錯誤超過3次、後場人員在一開始即取消訂單、消費者逾時未取餐。
睡了2個小時,下午單晶片最終報告,在報告前又測試了幾遍流程確定沒問題,但實際上台時,可能短路問題,車子回程時我這邊模組有些問題,但是前面的demo影片已經足夠詳細了,也沒被教授噴,這學期的單晶片算是圓滿落幕。
晚上我們三個組員去吃億品鍋,在這學期18周之間,我們每次做完課堂實作以及期末專題時,都會一起吃飯,今天或許就是最後一次聚餐了,當初修這門課時,幸好是遇到認識的轉學、轉考的人組對,比較認識彼此,在課堂實作與期末專題上都蠻carry的,不然很多時候分組都是所有東西都要自己完成,我覺得自己一個人做雖然並沒有什麼不好的,但時間絕對不夠,還有專業科目要讀。
今天或許是期末考考完了,億品鍋店內的人很多,聲音吵雜,大家都在歡呼慶祝,但我內心沒有一絲喜悅,因為這只是一個階段的結束,我還有很重要的問題待解決 - 成績,我校內成績一直沒有很好,之後沒意外的話是考研究所,但是就算考研過了,二階還是要看書審成績,所以無論如何還是看成績,而現在很多科成績都還沒公佈,如果下禮拜有一科公布,平均80分,發現自己只有拿10分而已,我想我也不會開心到哪裡去。
今天處理一些雜事 - 還單晶片材料、剪頭髮、請朋友幫我禮拜天幫我辦離宿手續。下午上平顯課和看平顯成績,看了一下有在平均之上,我就滿意了,另外要到5分,其中2分是部分給分、3分是助教改錯,算是還不錯,也問了其他題,把一些錯誤的觀念弄懂,起碼知道自己是怎樣被扣的。平顯就是一堂凉課,只有2次作業和1次大考而已,好歹把這種涼課的基本分數拿到,或許就能稀釋掉考差的科目,拉高平均了。
今天早上爸媽開車來勝一宿舍,搬東西,記取去年暑假的2個教訓 :
去年暑假的問題 | 今天寒假的改進 |
---|---|
搬太多書,每科都想讀,結果根本讀不完。 | 只有搬必要的幾本書而已,隨身的物品大幅減少。 |
有一袋寄放物品的菜瓜布和一整套牙膏、牙刷不見。 | 如下圖,標記每一袋的編號,方便之後取物時,清點行李有無缺失。 |
在經過大學生活3年半的來來回回搬宿舍,東西已經減少不少,現在只剩衣物、計算紙、書籍這些必要品,但這樣看起來還是覺得東西很多。
原本是想說要回台北,但爸爸說台北的家很擠,哥哥現在也在用我以前高中時期住的那個房間,講現在台北疫情多嚴重之類的話,所以還是回潮州好了,不過跟去年暑假不同的是今年寒假就只剩我一個人,阿姨、爸媽下禮拜回潮州過年前,我要打理好自己的生活,還記得去年暑假,我常常下午才醒來,都是哥哥幫我買午餐,但現在不行了,要自己去買午餐,而晚餐的話可能就是跟去年暑假一樣去阿嬤家吃,不然外面都沒有青菜可以吃,也不太好。
晚上載了原神下來玩,想感受一下原神的魅力,不然我iPad買來只用GoodNotes而已,也有點說不過去。我超喜歡安柏的,這種綁蝴蝶結的女生真的超可愛的,她戰鬥時,射箭也很帥,不過平板實在不太好瞄準。
原神這種開放世界隨便一個岩石都能爬,到處探索地圖,並且在物件互動上做得不錯,拿安伯的火箭射草地,該片草地會燒起來,凱亞用冰封的技能去直接冰凍河川表面,造一條路出來,對一個移動平台的遊戲實在很猛,但就是因為感覺太好玩了,所以我玩了4個小時就把遊戲刪掉了,感覺如果玩下去,沉溺於原神寬闊的大地圖,我今年寒假就荒廢掉了。
今天看了戏中人间——《原神》云堇创作的幕后,訪談包括2D作畫、3D建模、音頻創作對於新角色創作的心路歷程,事前做得很多工作,研究傳統京劇文化,盡可能還原傳統文化,但又不失去遊戲性,讓我了解到創作者對於一個自己創造的角色能有如此厚重的感情;另一個是影視颶風的去年的年度回顧一个百大UP主的创业故事,從公司的現金流危機到Tim心理狀態不穩定,吐露的是Tim那最真實的一面,好無保留,這不是一般的心靈雞湯,而是真真實實發生在這個世界的事情。
晚上補了日記,這兩天下來有點倦怠,明天再上工。