發表文章

目前顯示的是 4月, 2021的文章


~~ 記錄自己點點滴滴的學習歷程 ~~





MOD 接分享器:IPTV設定 (使用 Asus RT-AC51U)

圖片
參考  ☆【RT-N16】設定分享器接MOD、中華電信MOD接分享器IPTV教學 @ 赤漠青舟 :: 痞客邦 :: (pixnet.net) 為了能讓家人在客廳使用無線網路,把之前還在外宿時的分享器拿出來,然後我忽然想到客廳有裝 MOD,我想說直接拿那條線來用,好不容易設定好了,手機都可以正常連線,但唯獨 MOD 就是開不出來, 我心裡想說死了 ,該不會有綁 IP 位置吧,如果是需要特殊的 IP,肯定無法讓 MOD 正常開啟😅,上網爬文之後發現,確實不能直接這樣接,如果要接需要有 IPTV 的功能,幸好之前買的分享器可以設定這個功能XDDD,接下來就照著參考資料來設定。 設定方式都一樣,先進入分享器的控制台,因為我有改,所以是 192.168.2.1,正常預設應該都是 192.168.1.1 才對,接著進到 LAN 中,然後選 IPTV,剛好也是插在 LAN 2 上面,設完按下“套用本頁設定之後”,讓他重新啟動,MOD 就可以看繼續看了。

從長度跟接腳來認識 M.2 SSD 需注意的事情

圖片
前言 最近想換筆電的 SSD,所以去查了筆電的規格,然後就查到下面的資訊 1x M.2 SSD Combo (NVMe PCIe Gen3 / SATA ) SSD 發現看不懂阿XD,平常也很少組裝電腦,趁這次來了解一下 SSD 有哪些規格 長度 所先要注意長度,大致可以分為 2242、2260、2280 等,如果長度不對肯定裝不進去的。 M.2 SSD 的長度 腳位 分為三種 M、B、B&M Key 三種型式,我目前還不知道我的筆電主機板有沒有通用這些腳位,很怕買錯啊………… M.2 SSD 的腳位 我的筆電原廠內建的 SSD 型號是 Samsung SSD PM871b 128GB, M.2 (MZNLN128HAHQ-00000),從圖片可以看到是屬於 2280 以及 B&M Key Type: Solid State modules (SSM) shape factor: M.2 2280 Interface: M.2/​B-M-Key (SATA 6Gb/​s) Read: 540MB/​s Write: 500MB/​s IOPS 4K read/Write: 68k/​80k memory modules: 3D-NAND TLC, Samsung, 64 Layer (V-NAND v4) Reliability prediction: 1.5 Mio. hours (MTBF) Protocol: AHCI Power consumption: not specified (maximum), not specified (operation), not specified (idle), not specified (Sleep mode) Dimensions80x22x3.5mm Source from    Samsung SSD PM871b 128GB, M.2 (MZNLN128HAHQ-00000) 目前大概了解這些而已,最主要還是擔心買錯不能裝就冏了😅,錢包空空還是等了解透徹點再來自己 DIY,才不會買錯走冤枉路。除了大小、腳位之外,也需要注意 顆粒 ,畢竟這是影響 SSD 壽命的東西,目前我是知道 SLC >> MLC >> TLC > QLC,價格也是...

PyQt5:使用 Eric6 進行 PyQt5 的開發

圖片
前言 讀研究所時,遇到的第一個工作就是把之前學長所做的東西給別人操作,既然提到操作,勢必就要製作一個介面給別人使用,當時其實也剛學 Python 不久,懵懵懂懂的我就誤打誤撞學習 PyQt5 來完成當時的工作。 除了網路的資料外,我自己也從一本參考書學到許多技巧,叫做 "Python GUI 程式設計 PyQt5 實戰"。其實這本書還沒進實驗室就買了,當時我還在用線上課程來學 Python 呢,只是沒想到居然進了研究所就要製作介面,而且直到我畢業之前都還需要介面製作,既然都做了那麼久,趁著又空閒的時間記錄一下學習過程吧。 安裝及配置 通常我新的實驗項目都會使用 Anaconda 建一個虛擬環境,藉此分開每個項目的環境,這邊我就先建一個名稱為 pyqt5 的虛擬環境並且進入環境中。 一、打開 CMD 或是 Anaconda Prompt,然後輸入以下指令 conda create -n pyqt5 python=3.7 activate pyqt5 二、接著安裝 PyQt5、pyqt5-tools 及 eric6,其中 pyqt5-tools 是用來安裝 Qt Designer,而 eric6 算是整合 Qt 功能的編輯器,相信也會有人說可以使用 PyCharm,但我覺得 eric6 用起來更流暢,就看自己習慣用什麼來寫程式了,不過我自己都會用就是了。 注:關於 PyCharm 的配置可以看  [PyQt5] 基本教學(1) 安裝 PyQt5,印出 ......略 pip install PyQt5 pip install eric-ide 這邊秀下我所使用的版本 eric-ide 21.3 PyQt5 5.15.1 pyqt5-tools 5.15.1.3.0.2 QScintilla 2.12.0 有時候版本對不到,在安裝 pyqt5-tools 會出現錯誤,並不是直接無腦安裝就好啊XD

Rainmeter:美化桌面的一些程式

主程式: Rainmeter, desktop customization tool 工作列模糊: Rainmeter - Elegance 2 by lilshizzy on DeviantArt 時鐘小工具: TranslucentTaskbar 1.2 by arkenthera on DeviantArt 工具列圖示置中: mdhiggins/CenterTaskbar: Center Windows Taskbar Icons (github.com) 工作列圖示放大: 7+ Taskbar Tweaker - RaMMicHaeL's Blog 字體優化: MacType - 20170628糖果最佳化支援Win10 RS3 App模式Metro UI、Edge、Chrome、Firefox Quantum,改善ClearType字體不清楚,Win7、Win8.1也可用!! | 糖果の無人小島 (candy.moe) 參考 改善WIndows視覺體驗-桌面時鐘小工具 - YouTube 【密技】徹底爆改!! win10系統 如同macOS舒適的體驗! @電腦應用綜合討論 哈啦板 - 巴哈姆特 (gamer.com.tw)

Arduino:SG90伺服馬達實作

圖片
今天快速記錄下 SG90 伺服馬達的 arduino 程式碼。 Tinkercad  的模擬程式範例 PIN 腳位定義: 橘色:控制訊號 紅色:輸入電源 +(3~7.2V) 棕色:共同接地 規格: Weight: 9g Dimension: 23×12.2x29mm Stall torque: 1.8kg/cm(4.8v) Gear type: POM gear set Operating speed: 0.12 sec/60degree(4.8v) Operating voltage: 4.8v~7.2V Temperature range: 0℃_ 55℃ Dead band width: 1us Power Supply: Through External Adapter servo wire length: 25 cm Servo Plug: JR (Fits JR and Futaba) 轉動角度:最大90° 範例程式: 參考  傑森創工 - [Arduino範例] SG90 Servo伺服馬達 參考  Tinkercad 的模擬程式

深度學習:使用 MNIST 實作 CNN 數字辨識

圖片
人工智慧 (Artificial Intelligence, AI),這個名詞一直是大家對於科技的想像,希望電腦能像人類一樣聰明,其實,AI 已經充斥在我們生活中;而現今的代表技術正是機器學習 (Machine Learning),而眾多機器學習演算法中,深度學習 (Deep Learning),是近期大放異彩,成長最快的技術。 深度學習的應用中,可以大致區分兩大類: 一、使用影像資料進行分析的卷積神經網路 (Convolution Neural Networks, CNN) 二、用自然語言資料進行分析的遞歸神經網路 (Recurrent Neural Networks, RNN) 其中使用影像作為學習資料的 CNN,應用範圍最廣泛,幾乎各個領域都能看到它的蹤跡,再加上現在有許多工具或是開源軟體套件降低開發門檻,讓我們要進入 AI 的世界變得更容易,而且許多教學也都是從 CNN 開始入門,因此本文從最基本的數字辨識開始說起,這在深度學習領域來說可是像 Hello World 的存在呢。 本文將會提到 tf.keras 環境建立 MINST 資料集 CNN 模型講解 數字辨識的測試結果 其實關於 CNN 模型我已經在碩士班期間實作很多遍了,也做過更複雜的模型,這篇文章主要目的,是將之前一些經驗記錄下來,也會重新紀錄一下自己參考的東西,畢竟越久沒碰越容易忘記,順便紀錄一下可能會遇到的坑,這樣之後如果有需要重新開啟人工智慧的項目,至少還有東西可以參考,不用從頭去啃別人的文章。 環境建立 (假設有 GPU 的情況) 1. 安裝 Anaconda/Miniconda 我自己使用 Python 已經習慣用 Anaconda 了,最主要是因為它在管理各個虛擬環境實在太方便了,再加上我常常會在同台電腦同時搞好幾件事,這樣將各個環境獨立區分開來也讓我好管理。 (安裝時記得要加入環境變數,這樣使用 CMD 就能用 Conda 指令了) 2. 建立支援 GPU 的開發環境 (CUDA & cudnn) 通常最多坑都是出現在這邊,因為這邊必須考慮到 Tensorflow 及 Nvidia 的 Cuda 函式庫的版本,若是沒有對到可是會出大事。 為了能確實將環境裝好,我會先去看 官網安裝說明 ,確定所需要的版本再去下載 CUDA 及 cudnn,這邊基本上可以直接用 Google 搜...

非接觸式 斷線查驗器

圖片
最近老爸給我看了一支國外影片 1 ,內容是關於製作一個佈線檢測器,而他平常幫人修理東西常常都是電源線裡面的斷線,所以他就問我有沒有辦法製作一個可以檢驗電器AC電源線是否斷線的小工具,這樣他以後哪邊斷線直接在那邊重新接線即可。 展示佈線檢驗器的國外影片 (取至 YouTube) 非接觸式交流電壓檢測器如何工作? 在開始進行實驗之前,先來了解一下影片中的工作(這個小電路也要分析,太誇張了),影片並沒有使用很難的技術,而是 電磁感應並搭配電晶體去放大信號 ,來達成上述檢驗AC電壓的功用,甚至可以延伸到檢查佈線、驗電壓大小等功能,對於我們來說需求更簡單,只要能夠檢驗電器的電源線斷線的話,不用考慮太多,只要前端的線圈能感應到些微電流,使 LED 工作就可以了,就算直接整個線圈貼上去也無訪。 因此本次工作最最重要的元件應該就是電晶體了,影片中使用三個 NPN C945 電晶體,來增強線圈的電流使 LED 可以工作,不過我打算使用別顆電晶體,例如 2N3904 電晶體來製作,其他元件及電路基本上都會跟影片中大同小異。 電晶體原理 電晶體具有三個腳位: 集極 (Collector, C )、 射極 (Emitter, E ) 和 基極 (Base, B ),可藉由基極來控制集極到射極之間的導通與否。當基極沒有電流流入時,集極到射極之間就不會有電流流動,反之,當加入適當偏壓,使基極有電流流入時,即可導通電晶體。因此,它可以是 "ON",可以是 "OFF",亦可介於兩者之間。 NPN 電晶體的符號。 左圖表示C、B、E的引腳、中右圖分別為未導通及導通之狀態 集極電流與基極電流之比 稱為電流增益。假設電晶體的增益為100,代表集極到射極的電流為基極電流的100倍。若將它的 輸出連接到另一個電晶體的基極,則總增益將是兩個電晶體的乘積 ,即 100 x 100 = 10,000。因此,我們可以利用這種方式連接三個電晶體,則總增益將為 100 x 100 x 100 = 1,000,000,即可使用極小的信號來接通正常電路。 ...

C/C++:設定 VS Code 來編譯 C/C++ 語言

圖片
最近覺得 Python 寫多了,很多東西其實都省略掉了,為了好好加強自己的程式語言,決定來重學 C 語言。記得以前剛學程式的時候,都是用 Dev C++,不過現在有微軟的 VS Code,安裝容量也很輕量,另外還能安裝許多額外的擴充功能,我學很多程式都可以使用這個,實在太好用了,決定就用這個來當作自己學 C 語言的工具。 Download Files Visual Studio Code - Code Editing. Redefined MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net LLVM Download Page MinGW 安裝 :我是載線上安裝版,安裝的時候我會將Architecture 更改為 x86_64,其餘不須更動,安裝路徑用預設的或自訂都可以,裝完之後再將裡面的 bin 資料夾加到環境變數中。 安裝 LLVM : 記得自己設定的安裝路徑,安裝完之後再將剛剛 MinGW 裡的東西複製到 LLVM 的資料夾 ,然後開啟 CMD,如果看到以下畫面代表成功,再來就可以設定 VS Code 了。 PS: 安裝 MinGW 應該可以用第四個檔案就好,載下來會是 壓縮檔 ,解壓縮之後,再把所有檔案丟進去 LLVM 的資料夾中,應該也可以自動合併檔案。 VS Code Extensions C/C++ (C/C++ 語言的支援) C/C++ Clang Command Adapter (使用Clang命令完成 C / C ++) Code Runner (運行程式文件) 設定編譯環境 建立 .vscode 資料夾,接著建立四個檔案分別為 c_cpp_properties.json、launch.json、setting.json、tasks.json。 c_cpp_properties.json {      "configurations" : [       {          "name" :  "MinGW" ,    ...