2022年12月31日 星期六

XYZ三軸手機測試系統-螢幕顏色篇

 三軸手機測試系統包含幾個重點項目

1. android系統程式的撰寫
2. 三軸馬達的控制
3. CDD 影像擷取
4. 上位機程式撰寫
首先 系統硬體包含三軸馬達, CCD



















然後android 系統程式規劃一些系統功能面的測試包含螢幕, 周邊硬體等



















電腦控制程式包含有馬達控制, CCD控制, 手機控制及自動流程路徑規劃




















全部整合後, 就可以來做測試與驗證了
影片一: 電腦端執行的畫面從路徑規劃設定測試項目的觸擊點例如SreenTest測試時會從CCD抓取螢幕所顯示顏色存檔
影片二:三軸觸擊平板測試選項所執行的影片

AP525-Audio Precision聲音量測

 利用BCB所寫的測試GUI去控制AP(Audio Precision)做聲音的量測


控制介面
GUI system設定頁面可以設定AP的畫面是否顯示, 輸出格式及powersupply的控制
測試選項畫面可以勾選要測試的項目
另一篇文章在  AP525-Audio Precision聲音量測的高級貨

電池充電線路測試項目

 利用儀器Keithley2306 Battery/Charger Simulator去驗證充電IC的主要功能

1.    Slow mode charge current
2.    Fast mode charge current
3.    Normal charge current
4.    Saturation voltage

測試的GUI可以用在於產線驗證PCBA的充電功能或是
讓RD去驗證PCBA的充放電profile是否正確

PCBA電壓檢測項目-Aglient 34970A

 利用儀器 Aglient 34970A34401A (Data Acquisition/Switch Unit)去做電壓檢測功能的測試主要驗證各個輸出的電壓是否有輸出

測試GUI有多組電壓測試設定及量測等待時間可供利用

2022年12月28日 星期三

ESP32 WiFi Mesh 控制 4 port Relay模組

利用行動電源接上ESP32結合4port relay的模組
再使用中控程式GUI執行模組Node11的指令

main的ESP32接收到如下資訊再經由GUI解JSON的格式再下達切換relay的指令
myObject["node"] = 11
myObject["function"] = Relay
startHere: Received from 2085146325 msg={"node":11,"function":"Relay"}

圖一: ESP32 + 4port relay module
演示影片

2022年12月26日 星期一

ESP32 WiFi mesh中控介面的實踐

 

圖一: Mesh 網絡架構

利用ESP32 WiFi Mesh的網絡連接功能, 設計一個連接電腦的中控介面. 
Node1 為連接PC的主要Port點, 爾後連接上的Node點在中控介面上會自動改變對應的Node數與將其點亮綠燈為連接上此網絡, 斷線為紅燈.  
圖二:網絡連線照片
當一個Node點上電後會自動連上網絡, 改變燈號與Node Number. 此為設計的重點項目.可用於智慧停車場與智慧農場的中控介面. 
演示影片
首先Node1以PC連接, 後續Node4連接上後中控解Json結構字串功能為3Axis
myObject["node"] = 4
myObject["function"] = 3Axis
Node5為
myObject["node"] = 5
myObject["function"] = DS18B20
Node7為
myObject["node"] = 7
myObject["function"] = PIR
各接點Node斷電就秀紅燈!!


2022年12月22日 星期四

ESP32模組集合

 將手上的感測器結合ESP32連成WIFI MESH網路, 利用改裝的XBOX搖桿, 控制servo 馬達. 中控的ESP32結合控制的GUI, 可以接收各個sensor的資料.

圖一:感測LED燈
圖二:伺服馬達
圖三:XBOX搖桿改裝背面
圖四:XBOX搖桿改裝正面
圖五:ITG3205陀螺儀
圖六:BMP085感測器

2022年12月19日 星期一

c# Ixchariot throughput 測試

一般網通廠在驗證產品的throughput時大部分都是用Ixchariot這套軟體去做測試

Figure1: Ixchariot
軟體架構:利用LDA-908V 200 – 8000 MHz High Resolution Digital Attenuator來模擬距離遠近, 來測試哪個衰減值throughput會減少比較明顯.
進階應用: 利用TurnTable旋轉角度檢測那個方位接收效果較差.
Figure2:LDA-908V


Figure3:TurnTable
GUI部分:
在setup 頁面設定Attenuator and 開啟TurnTable控制port
Test Function頁面設定開始衰減值. 結束值和step的值
利用Ixchariot command line進行自動測試
runtst.exe test.tst test123.tst -t15 (執行IxChariot [configuration] [result] 無法執行15後結束)
fmttst -v -s test123.tst test(將result 轉成CSV檔)
Turntable 開始角度結束角度 step角度
Data 頁面會自動抓取csv輸出檔的throughput average的值
Figure4:測試GUI


2022年12月6日 星期二

c# Emgu WebCAM 影像應用(二)-影像標的物旋轉定位

接續c# Emgu WebCAM 影像應用(一)-影像物體顏色追蹤這篇文章配合旋轉台,將ROI中的影像顏色的標的物角度旋轉到90度的正向位置.

旋轉台是用RS232控制的架構

_Port[PortID] = new SerialPort(PortNumber, BaudRate, Parity.None, 8, StopBits.One);

MCvBox2D rect;

rect = currentContour.GetMinAreaRect();

這個函式GetMinAreaRect會包含角度的值 rect.angle

再依據angle的值去控制轉台旋轉到此角度達到所要需求.

演示影片



2022年12月5日 星期一

c# Emgu WebCAM 影像應用(一)-影像物體顏色追蹤


編寫環境:

OS: Win 11

C#: VS2010

EMGU:2.4.10

構想: 利用滑鼠down->move->up在圖形上的事件, 抓取ROI區塊上的顏色, 進而去判斷整個影像中相對應的顏色物件並將其以最小矩形框出.

利用滑鼠的事件

private void imageBox1_MouseDown(object sender, MouseEventArgs e)

private void imageBox1_MouseMove(object sender, MouseEventArgs e)

private void imageBox1_MouseUp(object sender, MouseEventArgs e)

去抓取imageBox1中的ROI區塊的影像去做處理

利用到的函式

// bgr 轉 hsv

TEmgu._EmguPara.TouchRegionHsv = CommonData.ROIImageSource.Convert<Hsv, Byte>();

TEmgu._EmguPara.TouchRegionHsv.SmoothGaussian(5);

TEmgu._EmguPara.m_Lower = new Hsv(TEmgu._EmguPara.m_TargetColor.Hue - 30, TEmgu._EmguPara.m_TargetColor.Satuation - 30, TEmgu._EmguPara.m_TargetColor.Value - 30);

TEmgu._EmguPara.m_Higher = new Hsv(TEmgu._EmguPara.m_TargetColor.Hue + 30, TEmgu._EmguPara.m_TargetColor.Satuation + 30, TEmgu._EmguPara.m_TargetColor.Value + 30);

//搜尋的顏色範圍

TEmgu._EmguPara.InRageFrame = TEmgu._EmguPara.ImageHsv.InRange(TEmgu._EmguPara.m_Lower, TEmgu._EmguPara.m_Higher);

//抓取ROI顏色的最小矩形

using (MemStorage storage = new MemStorage()) 

{

         for (Contour<Point> contours = TEmgu._EmguPara.InRageFrame.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_EXTERNAL, storage); contours != null; contours = contours.HNext)

        {

                  Contour<Point> currentContour = contours.ApproxPoly(contours.Perimeter * 0.010, storage);

                  if (currentContour.BoundingRectangle.Width < 10 ||                                                  currentContour.BoundingRectangle.Height < 10)                //对于太小的外接矩形,删除掉

                  {

                          continue;

                   }

                   if (currentContour.BoundingRectangle.Width > 50 && currentContour.BoundingRectangle.Height > 50)

                  {

                                TEmgu._EmguPara.ImageSource.Draw(currentContour.GetMinAreaRect(), new Bgr(0, 0, 255), 1);

                                MCvBox2D rect;

                                rect = currentContour.GetMinAreaRect();

                                CommonData.Angle = rect.angle;

                                cnti++;

                    }

           }

}

Figure1:WebCAM and 旋轉結構

Figure2:實際WebCAM環境
Figure3:WebCAM即時影像
演示效果

2022年3月6日 星期日

產品自動化測試工程人員工作技能

最近就業博覽會又開始了所以寫一些本身從事這工作的建議給想從事產品測試工作的人! 
首先一間公司的產品要問市銷售 
1. 要從業務面的規劃與客戶需求來設計公司的產品 
2. 研發設計 
3. 生產製造 
4. 品保維修 
 所以在產品測試人員就位於3. 生產製造的環節上 
而想接觸這一些工作的人需要有哪一些基本的技能呢? 
最重要的我覺得是興趣因為有一些公司會引進新血從頭訓練 
所以若沒興趣工作起來可能會有倦怠感 
若想多爭取一些薪資空間就必須要具備一些軟硬體的技能 
硬體方面要會 
1. 看懂線路圖如Orcad一些繪製電路圖的軟體都可 跟零件的datasheet
2. 控制板的應用例如:利用arduino或樹莓派做治具控制 
3. 儀器操作:電源供應器 示波器 三用電表 
軟體方面:至少要會一種可以規劃GUI的程式語言如c# VC VB python等等