發表文章



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





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" ,    ...

Bootstrap:快速建立響應式網頁

圖片
Bootsrap 是一種功能強大得前端網頁框架,相關介紹都可以從網路上找到許多資料,對於非科班出身,也不是從事前端相關工作,只是想要快速製作網頁又想要網頁美美的人, 像我這種人XD ,又或者是想要學習前端網頁技術的人而言,這是一個好選擇。 以前曾學習過一點 HTML、CSS ...等前端網頁程式語言,在念碩士班時,我在實驗室也是負責網頁管理,對於網頁製作其實並不陌生,不過一直都沒好好學習網頁設計這塊,雖然知道有一些模板框架可以使用,好縮短網頁製作的時間,但都沒去深入研究,光搞研究就占了大半時間......... 近期小弟我正在服兵役,剛好休假都沒啥事幹,乾脆來研究之前一直沒好好正視的 Bootstrap

C:遞迴 permutation -- 排列組合

圖片
程式碼 list = [a, b, c]; perm(list, 0, n-1); void perm () { int j, temp; if (i == n) { for (j=0; j<=n; j++) { printf("%c", list[j]); } printf(" "); } else { for (j=0; j<=n; j++) { swap(list[i], list[j], temp); perm(list[i], i+1, n); swap(list[i], list[j], temp); } } } 遞迴過程

Python:用 PyAutoGUI 來操控滑鼠及鍵盤

圖片
最近軍中的朋友問能不能自動按鍵盤,我馬上想到之前看過的書 — 「Python 自動化的樂趣:搞定重複瑣碎&單調無聊的工作(第二版)」,其中第18章是用 pyautogui 來完成 GUI 自動化控制,就趁著休假來時做看看。 基本上會 Python 的人就能操作,也可以在 Linux, Windows, Mac 使用,算是非常好用的模組,而且網路上也有很多資料可以看,要學習完全不是問題。 而根據官方文件所說,PyAutoGUI 具有這些功能: 模擬滑鼠行為 鍵盤控制 截取屏幕截圖 這次主要針對按鍵進行實作吧! 安裝 要使用之前必須先安裝 PyAutoGUI 才行 pip install pyautogui 測試滑鼠功能 import pyautogui while True:      x, y = pyautogui.position()      print("x: {:04d} y: {:04d}".format(x, y)) 這樣抓到滑鼠在螢幕中的座標位置,再來看看如何操作鍵盤。 測試鍵盤功能 使用 write() 指令,就可以自動輸入文字。(不過需要手動點選要術入的文字框) import pyautogui pyautogui.write('Hello world!') pyautogui.write('Hello world!', interval=0.25) 可以加入 interval 來設定間隔時間

使用 C# 來操作 Arduino

C# 與 Arduino 相互溝通 上半部是 C# 程式,下半部 Arduino 程式 整個概念就是依靠 Serial Port 來溝通,讓電腦端可以控制 Arduino 的 LED 燈

深度學習:口罩檢測器

圖片
由於疫情關係,出門都要帶著口罩,為了確保進出的人都能戴口罩,因此衍伸出了這個主題。開始做之前看了不少國外神人的範例,其實大家方法都差不多,最後決定就照著深度學習的方式來實作看看。

Python:list 中 * 的用途

將原本 list 的 value 當作個別的變數來輸入 e.g. 1 def add(a, b): return a+b list_add = [1, 2] add(list_add[0], list_add[1]) add(*list_add) # 直接用 * 來輸入

機器學習:混淆矩陣

圖片
最近剛口試完,複習一下混淆矩陣的定義 透過混淆矩陣可以計算模型的效能指標,例如 accuracy、precision、recall ……等指標。     Predict     Positive Negative Ground True Positive True Positive False Negative Negative False Positive True Negative True Positive:正陽性,預測 正 ,實際 正 。 True Negative:正陰性,預測 負 ,實際 負 。 False Positive:偽陽性,預測 正 ,實際 負 。 False Negative:偽陰性,預測 負 ,實際 正 。   三種指標的定義。       Precision:預測正樣本中,實際為正樣本的比例。 Recall:所有正樣本中,真正檢測出正樣本的比例。

轉錄:Beaglebone Black 接上網路

If you power down the Beaglebone Black by unplugging its USB cable,  plug it back in (hence rebooting it) and connect via PuTTY and try the ping command again ... >>> ping 8.8.8.8 Network is unreachable … you will find that the network is no longer reachable.  This is because the >>> /sbin/route add default gw 192.168.7.1 command you entered earlier did not survive a reboot.  Just enter it again and the ping command should work. ---------------------------------------------------- >>> ping google.com The thing that translates names into IP addresses is called a nameserver  and we might as well use googles public nameservers to translate names into IP addresses for us.  You can, of course, use your own local nameservers if you wish. Nameservers are set in the /etc/resolv.conf file.  To add a few nameservers just edit the /etc/resolv.conf file (as root) using a command like >>> nano /etc/resolv.conf ↘↘↘↘↘↘↘↘↘↘↘ domain local...

Ananconda Conda Commands

使用 Anaconda 管理多個隔離的 Python 環境 1. 安裝anaconda 針對OS,選擇合適版本 windows安裝過程中需注意勾選將軟體加至"環境變數 path"    (即可在 cmd 運行 conda 指令) 2 .查看當前環境下已安裝的套件 查看在conda中已經安裝的包,會顯示套件名字和版本 -->  conda list 3. 建立 Python 虛擬環境 有兩種方法: -->  conda create -n env_name package-name e.g.1 <conda create -name py3 pandas> e.g.2 <conda create -name py2 python=2.5> -->  Anaconda Navigator GUI 建立新虛擬環境 4. 查看已建立的虛擬環境清單 -->  conda env list -->  Navigator GUI 中查看環境列表 5. 啟動/退出環境 -->  activate env_name  | 啟動某個已創建虛擬環境 -->  deactivate  | 退出已啟動虛擬環境 6. 在啟動某個環境中查看/安裝依賴庫 -->  conda list  | 查看已經安裝的庫 -->  conda install packagename  | 安裝某個庫 e.g. <conda install pyreadline> pyreadline 基於jupyter的程式自動補全庫,強烈推薦 7. 導出某個環境用於共享 對使用 conda 套件 將當前環境中的套件配置導出成yaml格式 建議在共享Python專案時提供該文檔即可一鍵安裝 -->  conda env export > env_name.yaml 通過外部導入配置當前虛擬環境 -->  conda env update -f=path/env_name.yaml 對使用 pip 套件 -->  pip f...

FDTD Note

1. Open FDTD Initial project is 3D project 2. Add Simulation Region Background index Geometry Mesh settings Boundary conditions z direction use PML x, y direction use Periodic if want to simulate tilt angle light sourse (like SA)  ** we must use Bloch ** 3. Add Structure Geometry Material index Rotations 4. Add Source General Plane wave angle, direction Geometry Wavelength 5. Add Monitor Refractive index Movie Refractive index 6. loop sweep

CMD:查看連過得 Wi-Fi 密碼

查看存在的 Wi-Fi 名稱 netsh wlan show profile 存下所有的 Wi-Fi 資料 netsh wlan export profile folder=D;\ key=clear

CMD:tree 指令

Windows 裡可以在 CMD 裡 輸入 tree 可以把資料夾的目錄結構印出來。 tree [<Drive>:][<Path>] [/f] [/a]。 [<Drive>:]為要查看目錄的磁碟機路徑,不輸入則為當下所在目錄的磁碟機。 [<Path>]為要查看的目錄,不輸入則為當下所在目錄。 [/f]:顯示每個目錄中的檔案。不輸入預設僅顯示目錄(資料夾)。 [/a]:顯示時使用文字字元圖形。不輸入預設已圖形字元顯示。 自己最常用的方式是用在存放影像資料夾 tree D:\Database 來印出有哪些類別的資料夾在資料夾中