2020年6月16日 星期二

[自動化工程]對於座標系統的基本認識 - 比喻篇


(李永樂老師起手式) 有小朋友問我,使用學習機械手臂為什麼要理解座標系統概念呢? 不就是把要走到的位置個別記憶起來就好了嗎?

當然純粹記憶位置也是能使用的,但既然如此為何各家廠商還仍是有提供諸如局部座標系統、工具座標系統...等等工具呢? 當然理解座標系統在運用上是有好處的

2019年7月1日 星期一

[Sqlite]合併兩表不重複ID並計算總個數

一個產品在工程階段中有所謂的材料表(BOM),列舉出要組成此產品的所有零件、取得來源、數量...等等製造資訊;在材料運送任務中,為了節省運費或省下包裝成本,或許會將若干個產品包裝成一包寄出,此時需要將材料表合併,並統計個別零件的數量,作為運送資訊

產品間通常會有共通零件,比方螺絲,因此合併後的材料表材料項目,是可能少於原始個別材料表材料項目的加總,比如說產品1、產品2個別有50種零件,合併後的材料表只會小於等於100種零件.


2019年5月1日 星期三

[線性代數] 找擬合線上投影點 - Part2 - 解各資料點對應擬合線上投影點

在Part1我們已經找到某資料群對應的擬合線,接著我們想問:

如何求出各資料點對應擬合線上的最短距離投影點?如下圖的各個藍色點:


2019年4月26日 星期五

[線性代數] 找擬合線上投影點 - Part1 - SVD解擬合線篇

二點可以完全確定一直線,而在資料點超過三點的情況時蠻有可能找不到一個完美直線讓所有資料點都能夠與某直線重合,此時只能找所謂的最佳解,合理的命題如下:


2019年2月16日 星期六

[自動化工程]給定運動時間與行程,馬達功率的最低要求


承接此篇,我們知道了一段加減速運動中所需的最大功率發生在何處,且與機構形式無關,接著問下一個問題:

給定運動時間與行程,馬達功率的最低要求為何?


2019年2月10日 星期日

[線性代數]以SVD處理兩直線交點

自從學了線性代數以後,不光是多益成績大幅進步,食慾大增...每天我都能多吃兩碗飯,開了10年的老車油門也突然變得輕巧,更棒的是,兒子長到了180公分,腦袋也靈光許多,總之...線性代數改變了我的人生
摘自-攻殺小


2019年1月24日 星期四

[線性代數]以SVD處理已知兩點求直線系數


學完線性代數的這幾年間,漸漸褪去國中數學的直覺式幾何思考,的確,在處理幾何問題上,相較歐氏幾何的邏輯,線性代數的公理化思考很抽象,很不好傳達給其他人理解,也要三不五時複習一下,咬文嚼字規格間的邏輯關係與意義,不過倒是越嚼越有味(齁假

但也正是如此,線性代數作為以公理出發推演而生的一套思考系統,在運用時可以避免處理問題時陷入案例列舉,這個的思維性質,尤其在軟體系統裡要追求一致性高的實作時,乃至撰寫測試案例,採用線性代數的處理手法相較於直覺式幾何思考,目前我仍認為是比較強健的方法,可以避開許多誤區,不用透過案例窮舉來檢視演算法的可靠度,因為先賢先烈們已經用許許多多的數學證明完善了邏輯上的縝密性


----------------------------------------戰鬥開始


2019年1月20日 星期日

[自動化工程]馬達功率的快速粗略選定攻略

羊毛出在羊身上
-到底是誰說的?

從上圖釐清,根據能量守恆的概念,對於一物體,在其加速過程中,功率即是當前推力與速度的乘積,而產生此動力的源頭就是馬達(電能-動能轉換裝置),傳動機構在之中只是扮演轉換的角色,不增加/減少能量(理想狀況)

因此,我們可以先忽略馬達(動力源)至移載物之間的傳動關係,光是從移載物質量、加速度、最高速...等參數,反推估加速段所需功率,就可以推估出所需馬達額定功率;接著再根據馬達特性(額定轉速,額定扭矩),細部設計傳動機構,調整轉速/扭矩轉換後的比值


2019年1月3日 星期四

[自動化工程]螺桿推力計算

做個螺桿扭矩轉推力計算心得,採用自己比較習慣的思路,雖說習慣但一陣子沒用還是會忘記,沒事寫個筆記磨磨槍:

-------------------------------主要採用能量守恆觀點-------------------

2018年12月30日 星期日

[自動化工程]所需馬達扭矩計算-以輸送帶系統為例-概念

宅哥常在工作場合聽到:

這組機構400W馬達應該夠力吧?以我的經驗應該用100W就夠了!感覺這個這麼重,應該要來個750W!

這樣的討論內容有點愧對工程師這個頭銜,18 19世紀各種偉大科學家也都一併擁有冠上工程師這個頭銜呢,我們雖沒有這樣的才智好歹也要追求這樣的精神,更何況我們面對的問題好像僅是牛頓第二定律?多點數學少點感覺Let's go

2018年12月21日 星期五

[C/C++][STL][C#]集合處理筆記

標準模板函式庫(STL)Wiki:

STL 將「在資料上執行的操作」與「要執行操作的資料分開」

對於構築集合處理的方式,.NET與STL思想上略有小小不同。

NET趨向物件導向想法(結合資料與操作成為一物件),將集合操作用函數以成員函數形式(member function)附屬在樣板容器之下,相當於在集合操作用函數中隱含(implicity)帶入自身參考。

.NET集合操作用函數無法直接帶入函數指標,而是要帶入委派(delegate),建立對應操作的委派的方式之一:

2018年12月11日 星期二

[Qt]分離Ui執行緒與Worker執行緒


有時候為了增進Ui的響應速度,不得不把例行工作,尤其那些需要定時呼叫或狀態控制的工作,移到背景執行緒,形成雙執行緒的工作架構(基本上就是自動化產業的101招):

  • 主執行緒(Main thread)負責Ui的訊息迴圈,捕捉使用者事件如滑鼠點擊,鍵盤按下等等
    • 通常開發框架都幫忙搞定好訊息迴圈架構了,我們只需要填寫各事件的處理常式
      • 心得:處理一圈迴圈的延遲能在100ms內搞定,使用者基本上會感覺流暢

  • 背景執行緒(Working thread),可能就負責收集外部I/O的資訊,內部物件狀態控制,等等...與介面無關的工作
    • 時脈上就與使用者的反應無關,這個執行緒Looping的速度盡量越快越好
      • 心得:處理一圈的延遲能在10ms內搞定,順序控制在大部分應用情況不會太糟

2018年12月2日 星期日

OpenCVSharp@MACOS 安裝步驟

步驟大致參考此,另外註記心得
https://github.com/shimat/opencvsharp/tree/master

OpenCVSharp只是opencv的C# wrapper,所以本機上必須要有opencv套件+opencvsharp
,需要特別注意版本對應問題,本篇針對opencv4.0.0做紀錄

2017年10月11日 星期三

[Raspberry PI][Flask] 土炮MJPG Stream

WIKI
Motion JPEGM-JPEGMJPEG,Motion Joint Photographic Experts Group,FourCC:MJPG)是一種影像壓縮格式,其中每一影格圖像都分別使用JPEG編碼。
或許是實作上相對單純好理解,據說MJPEG常用在網路攝影機(IP-Camera)等相關的應用,由於也是相對古老的實作方式,大多的瀏覽器都支援.mjpg格式;在網路上最常被提到的知名套件是MJPG-Streamer ,在輕鬆的設定播放相關參數後可以輕易的將你的攝影機影像投到網頁上.

今天練習用flask實作簡單的mjpg-streamer,算是練練python還有學習一點html與http的概念:

2017年9月25日 星期一

[Blogger][Javascript] 在撰寫區標記Google Prettify區段

Google prettify簡單又好用,只是在Blogger內貼程式碼時,還要手動轉到HTML頁籤在落落長的HTML元素裡找到正確排版位置、透過HTML Escape跳脫字元、自己標記<pre class="prettyprint">...</pre>...有點麻煩

2017年9月21日 星期四

[VS Code][C/C++] 基本開發環境設定


這次輪到在VS Code上開發C/C++程式,被宇宙最強IDE Visual Studio寵壞的關係,一開始搞不清楚到底在設定什麼東西,最後終於搞懂幾件關於VS Code的機理:

2017年9月20日 星期三

[VS Code][Bash Shell Script] Debug環境設定


Shell Script也是可以Debug的,下斷點、看變數內容...都可以,VS Code配來寫Shell Script也是很下飯,記錄一下環境設定