產生https所需要Key.pem與Cert.pem檔案

openssl genpkey -algorithm RSA -out private.pem

openssl req -new -key private.pem -out mydomain.csr

openssl x509 -req -days 365 -in mydomain.csr -signkey private.pem -out certificate.pem

最終得到的private.pem與certificate.pem

分類: 未分類 | 發佈留言

npm command

npm serch express

var, let, const

分類: 未分類 | 發佈留言

基本的Node與NPM使用方式

首先安裝 NVM (Node Version Manager),由它安裝及管理Node的開發環境版本。

使用npm init -y 建立一個node的專案

使用npm install express, request –save安裝此次所使用到的express.js與request Package.

建立server.js文件

修改package.json

使用npm start運行程式server.js

使用postman進行測試

分類: 未分類 | 發佈留言

ORingView Version Two

本系統功能為量測O型環的真圓度,採用ISO 12181-2: 2011所定義的方式進行量測。

使用一個接觸式的量測探針來接觸工件的外部輪廓,會得到一個外部輪廓起伏的量測數據圖(圖二),從數據中得到 Rmax 與 Rmin 的兩個數據而求出真圖度 Rmin / Rmax

圖一

圖二

術語說明

工業相機的曝光時間 (Exposure Time)

曝光時間是指工業相機的感光元件(如 CMOS 或 CCD)接收光線的時間長度。這個時間通常以微秒(μs)或毫秒(ms)為單位。曝光時間的調整直接影響進入相機的光量,因此是影響影像亮度和清晰度的重要參數。

曝光時間的調整對影像的影響

  1. 曝光時間過短(Underexposure)
    • 光線進入感光元件的時間過短,影像可能會過暗。
    • 細節可能無法分辨,特別是在低光環境下。
    • 適合用於高速移動物體拍攝,減少動態模糊。
  2. 曝光時間過長(Overexposure)
    • 感光元件接收過多光線,影像可能會過亮或白化。
    • 細節可能因過曝而丟失。
    • 適合靜態場景或光線不足時提升亮度,但容易導致運動模糊。

使用場景調整建議

  1. 高速拍攝(如生產線物體移動)
    • 使用短曝光時間,以避免影像模糊。
    • 搭配強光源以補足亮度。
  2. 靜態拍攝(如檢測零件)
    • 使用較長曝光時間以提升影像亮度和細節,但需防止過曝。
  3. 低光環境
    • 延長曝光時間,但需確保物體靜止,避免模糊。

影像灰階值的意義

影像的灰階值是指每個像素在灰階影像中的亮度程度,數值範圍通常為 0 至 255(8 位元影像)。

  • 0 表示純黑。
  • 255 表示純白。
  • 介於 0 到 255 之間的數值表示不同的灰階亮度(例如,128 為中灰)。

灰階值的意義在於它反映了像素所接收到的光線強度:

  • 高灰階值對應於亮部(光線強)。
  • 低灰階值對應於暗部(光線弱)。

應用中的影響與調整

  1. 影像增強
    • 透過直方圖均衡化,重新分配灰階值,提升影像的亮度與對比度。
    • 常用於改善光線不均或過暗的影像。
  2. 影像分割與檢測
    • 利用灰階值篩選目標(例如物體邊緣或缺陷)。
    • 根據灰階值設置閾值,可提取特定區域或對象。
  3. 影像壓縮
    • 灰階值範圍的調整可影響壓縮後的影像質量。過度壓縮可能導致灰階值分佈受限,影像細節損失。
  4. 三維重建與深度分析
    • 在某些應用中,灰階值可能對應於深度信息或高度(如 LiDAR 資料轉換成灰階影像)。

實驗平台

白色背光工業電腦及光源控器
相機夾具可以調整高低位置檢測平台夾具可以調整高低位置
工業相機規格

系統功能

  • 控制工業相機取像及曝光時間、偵率。
  • 控制光源的亮度。
  • 控制數位影像的呈現比例。
  • 量測O型環的真圓度。
  • 設定O型環的灰階門檻值。
  • 設定真圓度的門檻值。
  • 儲存影位影像。

使用者操作界面








數位影像


相機取像儲存影像檢測功能設定灰階值設定門檻值光源亮度
影像顯示比例
工業相機曝光時間

程式啟動方式

  1. 目前電腦開機時,檢測程式即自動執行。
  2. 桌面上有ORingView捷徑,可以手動執行程式。
  3. 工作列上有ORingView捷徑,可以手動執行程式。

連接工業相機進行取像


請按下「尋找相機」按鈕請按下「開始取像」按鈕

顯示即時的數位影像

設定檢測功能


白色為目標灰階值,顯示O型環

顯示即時數位影像,不進行檢測。

實際進行檢測的操作情節:

設定真圓度半徑比例0.97為良品 Value <= 0.97
設定真圓度半徑差7為良品 Value <= 7

逼近外輪廓

紅色輪廓為O型環的外邊緣輪廓藍色為可以包覆紅色輪廓的圓綠色為中心點後外逼近紅色輪廓的圓

逼近外輪廓及內輪廓

紅色輪廓為O型環的外邊緣輪廓藍色為可以包覆紅色輪廓的圓綠色為中心點後外逼近O型環的內邊緣輪廓

調整曝光時間

調整光源亮度

放大影像

延伸影像

極大化使用者操作界面

儲存影像

螢幕鍵盤

關閉程式

關閉電腦

分類: 未分類 | 標籤: | 發佈留言

ORingView操作手冊

系統主畫面

尋找相機
相機資訊 (相機型號 序號)
FPS 每秒張數
開始啟像
停止啟像
儲存影像
檢測功能 (有四個檢測功能)
顯示數據 (半徑比例、半徑差)
良品門檻值
最大灰階值
最小面積

尋找相機 Find Device

按下「尋找相機 Find Device」,系統會偵測相機。

當系統並沒有相機時

當系統找到相機時

設定FPS

FPS: 每秒取像張數

開始取像 Start

停止取像 Stop

儲存影像 Save Image

檢測功能

曝光時間

分類: AOI, Software Technology | 標籤: | 發佈留言

XenethAOI 操作手冊

程式主畫面

程式功能

教導:每個焦段的偏移值與Motion Zoom Focus
RS232通訊埠設定
搜尋相機
相機的IP
開始取像
停止取像
載入校正檔
儲存影像
Color Map
是否套用影像偏移
每個焦段的按鈕:
透過RS232下 ZOOMPOS positionTime.Sleep(3)透過RS232下 FOCUSPOSposition

設定畫面

  • 定義每個焦段的名稱
  • 定義每個焦段的Zoom Encoder位置
  • 定義每個焦段的Focus Encoder位置
  • 定義每個焦段的影像的偏移值

RS232通訊設定

影像明暗調整

調整影像灰階比例:new image = image x aplpha + beta
Min: 0  Max: 255Min: 18  Max: 179

佈署及執行程式:

  1. 選擇安裝路徑,按Next開始安裝
分類: AOI, Software Technology | 發佈留言

Coating 製程噴液異常

噴液異常視覺檢測

鴻博資訊有限公司

系統架構圖

此專案規劃一台電腦最多可以跑四隻AOI程式,同時跑多隻AOI程式時的運行順暢度取決於電腦硬體本身的規格。

AOI程式與Modbus程式間是透過Socket進行通訊,每隻AOI程式需配置一個唯一序號,1到4號,當AOI程式偵測到異常時會發送一個訊號給Modbus程式,Modbus根據訊號中的AOI程式唯一序號,在對應的PLC Modbus位址上發送一個100 ms的ON訊號。

AOI IDModbus Address
1100
2101
3102
4103

工業相機

官網:https://www.toshiba-teli.co.jp/en/products/industrial-camera/index.htm

請點選【Support】【Software Download】下載軟體SDK

【註】使用Ubuntu 22.04 

下載TeliCamSDKforLinux_S5104031.zip

壓縮檔內容

請開啟Readme檔案

程式安裝路徑 /opt/TeliCamSDK

TeliViewer

說明文件:請參閱/opt/TeliCamSDK/documents/

啟用Dongle硬體

$ sudo vim /etc/udev/rules.d/99-my-hid.rules

99-my-hid.rules內容為:

SUBSYSTEM==”usb”, ATTRS{idVendor}==”096e”, ATTRS{idProduct}==”0304″, MODE=”0666″

$sudo udevadm control –reload-rules

Modbus 程式

Listen Port:此欄位是設定與 AOI 程式 Socket 交握的埠。

Modbus Slave IP: 此欄位是設定 PLC 的網路 IP 位址。

Modbus Slave Port: 此欄位是設定 PLC 的網路埠。

Modbus Slave:此欄位是設定 PLC 的 Slave ID。

Start Address:此欄位是設定AOI異常位址。

AOI IDModbus Address
1100
2101
3102
4103

如上圖:按下Start及Connection按鈕,啟動與AOI程式及PLC連線。

按上右上角的關閉按鈕,會提示此程式會隱藏並顯示在狀態列。

滑鼠移到Modbus 程式圖示上,按滑鼠右鍵,會跳出下列選單,按下【Show】則顯示主畫面;按下【Quit】則結果程式。

AOI程式

Camera下拉式選單,指定AOI程式連接的相機
Frame Rate:指定相機的Frame Rate
Exposure (us):指定相機的曝光時間 micro second
Connect:連接相機
Start:開始取像
Video:開始錄影
Demo:撥放Demo影片
Reset:清除 Demo影像
TCP Port:與Modbus通訊的Socket Port
Modbus:此AOI程式的唯一識別碼
Clear Count: 設定當Error Image大於100時,進行清除Error Image
Error Image:開啟存放Error Image的路徑
Log:開啟Log的路徑
Video:開啟Video的路徑
About:程式的開發公司的聯絡資訊
Exit:結束程式
ROI Height:檢測區域的高度
ROI Width:檢測區域的寬度
ROI offset:檢測區域的Y軸位置的偏移
Min Row:設定原始影像X軸最低位置
Max Row:設定原始影像X軸最高位置
Min Area:噴嘴治具在影像中會打光成白色,最小的白色面積
Max Width:噴嘴治具在影像中會打光成白色,最大寬度
Min Gray:噴嘴治具在影像中會打光成白色,最低灰階值
Threshold:檢測區域會進行AOI分析會得到一個數值,大於                    Threshold的設定值被判定為異常。
Show Bin:勾選時顯示Binary Image,未勾選顯示原始影像
Kernel:用於影像的的斷開
Set:儲存參數

Error Image路徑

About:程式的開發公司的聯絡資訊

異常影像

分類: AI, AOI | 標籤: , | 發佈留言

電池藍色蓋片貼合及外輪廓檢測

由左至右分為四個區塊:相機的觸發影像區塊,檢查異常的影像區塊,量測數據區塊、功能作業區塊。

相機區域

設定:進入教導畫面

開啟相機:執行開啟相機操作

開始取像:執行連續取像 (相機中心點會顯示十字,用於相機鎖附時調整中心點)

曝光時間:執行變更相機曝光時間操作(以拖拉及輸入的方式)

相機教導畫面

連續取像:執行連續取像

教導影像:執行擷取影像到教導所需的影像

練習:連續取像

  1. 使用者以滑鼠點擊「連續取像」按鈕。
  2. 可以看到右上角視窗顯示即時影像。

練習:教導影像

  1. 使用者以滑鼠點擊「教導影像」按鈕。
  2. 擷取即時影像存成左側教導畫面所需的影像。

練習:

先設定ROI(檢測區域),輸入圓的座標(X,Y)及半徑R

設定外圈最及內圈的亮度值。建議初始值如下所示。

亮度設定值:數值越小,比較暗的區域也會被選取;數值越大,比較亮的區域才會被選取。

偏心率:是焦距(焦點之間的距離)與長軸長度之比。該值在區間 [0, 1) 中。為 0 時,橢圓變為圓形。數值越小代表趨近圓形。

偏心率就偏高0.77

周長:區域輪廓的周長

右側周長為3648 左側周長為4707

面積:區域佔了多少像素。下圖有絕緣片翹起的情況,會造成內圈面積的差異。

填滿面積:將綠色區域填滿的面積。如右圖白色后域為左圖綠色區域填滿。

半徑差:下圖綠色區域有兩個圓,外側圓、內側圓這兩個的圓的半徑值相減。

教導畫面細項操作

(此拉條設定曝光時間)

將教導參數儲存到檔案

放棄此次教導設定,回復初始設定

儲存教導中的影像

載入教導所需影像

運行記錄

用於查看指定的影像,當初為何被判定良品或不良品。

操作方式:

  1. 點選右側Log Recorders的記錄
  2. 點選相機頁次
  3. 點選照片
  4. 就可以看節判定設定及結果

系統組態

設定相機、是否儲存影像,儲存位置、Modbus通訊參數。

操作情境

調整相機影像的明暗

上圖紅色方框可以以拖拉的方式與填入數值的方式進行設定,建議從1000這個數值為基準進行設定,當影像藍色的區域比較像真實的顏色,不會過白、過暗,即完成設定。

下圖左側的影像會比右側好,因為右側的影像有過亮的情況。

調整相機檢測區域

進入「光學檢測參數設定」畫面,可以看到「步驟1. 原始影像」區塊,紅色圈ROI,其中心點座標及半徑。

圖一:為ROI 中心座標為(400,512)半徑400,設定數字後,按下「設定」進行套用。

圖二:為ROI 中心座標為(100,512)半徑400,設定數字後,按下「設定」進行套用。

圖三:為ROI 中心座標為(100,100)半徑400,設定數字後,按下「設定」進行套用。

圖四:為ROI 中心座標為(640,512)半徑100,設定數字後,按下「設定」進行套用。

圖五:為ROI 中心座標為(640,512)半徑300,設定數字後,按下「設定」進行套用。

圖六:為ROI 中心座標為(640,512)半徑400,設定數字後,按下「設定」進行套用。

調整外圈亮度

可以看下圖左上角的區域,可以看到外圈的亮度的變化,亮點由80到255的變化。當製造發生異常造成外圈破損時,破損處的影像的光影變化處會呈現比較暗的情況。


圖一:請看右側的影像,外圈亮度80的變化。

圖二:請看右側的影像,外圈亮度90的變化。

圖三:請看右側的影像,外圈亮度100的變化。

圖四:請看右側的影像,外圈亮度110的變化。

外圈的亮度,目前的建議值為亮度100,比亮度100暗的情況就會造成外圈斷掉,檢測邏輯就可以檢出。

調整內圈亮度

圖一:內圈亮度150,所呈現的影像

圖二:內圈亮度170,所呈現的影像

圖三:內圈亮度250,所呈現的影像

建議設定在250以上,可以看上面的圖示可以清楚正確的捉到內圈的輪廓。

可以發覺當發生這種異常時,就可以被AOI檢測出異常。

調整斷開參數


斷開設定為3的影像,可以看到外圈3點鐘方向有一點輕微的異常,如果這種情況也捉取的話,可以改設定為5,可以看看調整後的檢測情況。

可以看到斷開參數調整成5時,就可以正確捉到這種異常。

分類: AI, AOI | 標籤: | 發佈留言

Coating製造噴液異常視覺檢測

檢測噴嘴輸出異的情況,針對異常的影像進行偵測、存檔。

Error Image路徑

分類: 未分類 | 發佈留言

React-Native Mobile App

WSL2 環境 

Java 環境

sudo apt install openjdk-17-jdk

Windows-based X Server

在Windows主機下查詢IP

修改WSL2中的~/.bashrc內容,增加一行

Android Studio環境

下載位置: https://developer.android.com/studio/?gclid=Cj0KCQiAjJOQBhCkARIsAEKMtO3zEhdK4_I0CEZic3UH4dl-9gVXuHFR9dCl3TOHKjmv3xWLU3UxfhYaApfAEALw_wcB&gclsrc=aw.ds&hl=zh-tw

~/.bashrc 增加下列

執行Android-studio

下載額外的Hardware Profiles

https://github.com/React-Native-Nation/Hardware-Profiles-For-Android-Studio

由ARM 改成 x86_64

NPM 環境

click a to run on Android

分類: 未分類 | 發佈留言