Đây là bài viết thứ hai trong series hướng dẫn sử dụng camera công nghiệp Basler.
Ở bài trước, chúng ta đã cài đặt bộ phần mềm pylon và lưu file cấu hình .pfs cho camera:
Hướng dẫn sử dụng bộ phần mềm pylon để vận hành camera công nghiệp Basler
.
Trong bài này, chúng ta sẽ đi thêm một bước: tích hợp camera Basler vào ứng dụng Windows Form C#
sử dụng project mẫu IndustrialCamera, chạy trên .NET Framework 4.7.2.
Ứng dụng cho phép:
- Khai báo Serial của camera.
- Chọn file cấu hình .pfs.
- Start camera, Stop và Capture (chụp ảnh) trực tiếp từ giao diện.
hãy xem lại bài trước để hoàn tất bước chuẩn bị môi trường.
Mục lục
- 1. Tổng quan về project IndustrialCamera
- 2. Yêu cầu môi trường & công cụ
- 3. Tải source IndustrialCamera từ GitHub
- 4. Cấu trúc thư mục và vị trí lưu file .pfs
- 5. Mở solution IndustrialCamera và cấu hình .NET
- 6. Giao diện chính và ý nghĩa từng ô nhập liệu
- 7. Nhập Serial, chọn file config và khởi động camera
- 8. Dừng camera và chụp ảnh (Capture)
- 9. Gợi ý tùy biến code C# theo nhu cầu thực tế
- 10. Tổng kết
1. Tổng quan về project IndustrialCamera
IndustrialCamera là một ứng dụng mẫu dạng Windows Form, dùng để minh họa cách điều khiển camera công nghiệp Basler từ C# thông qua thư viện pylon. Điểm chính:
- Ngôn ngữ: C#.
- Kiểu ứng dụng: Windows Forms App.
- Framework: .NET Framework 4.7.2.
- Sử dụng các thư viện pylon .NET đi kèm để kết nối tới camera.
- Cho phép chọn file cấu hình .pfs được lưu từ pylon Viewer.
Xem project IndustrialCamera trên GitHub
2. Yêu cầu môi trường & công cụ
2.1. Phần mềm & thư viện cần có
- Đã cài pylon Software Suite (trong bài trước).
- Có thể mở camera và lưu file cấu hình .pfs trong pylon Viewer.
- Visual Studio 2019 hoặc 2022 (khuyến nghị bản mới nhất).
- .NET Framework 4.7.2 Developer Pack (nếu chưa có, Visual Studio sẽ gợi ý cài thêm).
- Windows 10 (64-bit) hoặc tương đương.
2.2. Camera & kết nối
- Camera công nghiệp Basler (ví dụ: acA3800-14uc).
- Cáp kết nối tương ứng (USB 3.0 hoặc GigE).
- Nguồn cấp cho camera (nếu model yêu cầu).
3. Tải source IndustrialCamera từ GitHub
- Mở trang project: https://github.com/thigiacmaytinh/IndustrialCamera.
- Có hai cách tải:
- Clone bằng git:
git clone https://github.com/thigiacmaytinh/IndustrialCamera.git - Hoặc nhấn nút Code > Download ZIP rồi giải nén vào thư mục, ví dụ:
D:\Project\GitHub\IndustrialCamera\.
- Clone bằng git:
4. Cấu trúc thư mục và vị trí lưu file .pfs
Sau khi giải nén / clone, cấu trúc thư mục chính của project sẽ tương tự:
|
1 2 3 4 5 6 7 |
IndustrialCamera\ ├─ IndustrialCamera\ // Source code C# (.cs, .resx, .config, ...) ├─ bin\ // Thư mục chứa file .exe sau khi build │ └─ config\ // Nơi lưu các file cấu hình .pfs cho từng camera ├─ lib\ // Thư viện đi kèm (ví dụ Basler pylon .NET) └─ IndustrialCamera.sln // Solution cho Visual Studio |
Trong ứng dụng, đường dẫn file cấu hình được mặc định trỏ tới thư mục bin\config.
Ví dụ về file:
bin\config\acA3800-14uc_21816852.pfs
Bạn có thể copy file đó vào thư mục bin\config hoặc đổi tên cho dễ nhớ, miễn là trỏ đúng đường dẫn trong ứng dụng.
5. Mở solution IndustrialCamera và cấu hình .NET
- Mở Visual Studio.
- Chọn File > Open > Project/Solution….
- Đi tới thư mục dự án, chọn file IndustrialCamera.sln và mở.
- Đợi Visual Studio load solution và project.
5.1. Kiểm tra target framework
- Chuột phải vào project IndustrialCamera > Properties.
- Tab Application, mục Target framework chọn
.NET Framework 4.7.2. - Nếu không có 4.7.2, cài thêm Developer Pack hoặc chọn khung gần nhất mà project hỗ trợ.
5.2. Cấu hình build (x86/x64)
- Đảm bảo cấu hình Platform (x64) trùng với bản pylon bạn cài (thường là x64).
- Chọn ở thanh toolbar: Any CPU > đổi thành x64 (nếu cần).
Sau khi thiết lập xong, bạn có thể nhấn Build > Build Solution để Visual Studio tạo file IndustrialCamera.exe trong bin\.
6. Giao diện chính và ý nghĩa từng ô nhập liệu
Giao diện chính của ứng dụng (Form Camera) như trong hình dưới:

Các thành phần chính:
- Textbox Serial:
- Nơi nhập Serial Number của camera Basler.
- Serial có thể đọc ở thân camera hoặc trong pylon Viewer (cột Serial Number).
- Textbox Config file:
- Đường dẫn tới file .pfs lưu cấu hình camera.
- Mặc định trỏ vào thư mục
bin\config.
- Nút folder (biểu tượng thư mục):
- Mở OpenFileDialog để chọn file .pfs từ máy.
- Nút Start:
- Kết nối tới camera có Serial đã nhập.
- Nạp cấu hình từ file .pfs.
- Bắt đầu phát hình ảnh (tùy code phần hiển thị).
- Nút Stop:
- Dừng stream và giải phóng kết nối camera.
- Nút Capture:
- Chụp một frame từ camera và lưu ra file ảnh.
- Đường dẫn, định dạng file có thể tùy biến trong code C#.
- Picturebox hiển thị hình ảnh từ camera:
Bên dưới các nút chức năng là picturebox hiển thị hình ảnh trực tiếp từ camera.
7. Nhập Serial, chọn file config và khởi động camera
7.1. Lấy Serial Number của camera
- Mở pylon Viewer và chắc chắn camera đã xuất hiện trong mục Devices.
- Ghi lại Serial Number của camera (ví dụ: 22171036).
- Hoặc xem trực tiếp trên tem dán ở thân camera.
7.2. Chuẩn bị file .pfs
- Trong pylon Viewer, mở camera và chỉnh các tham số (Exposure, Gain, ROI, Trigger, …).
- Chọn menu Camera > Save Features để lưu cấu hình.
- Đặt tên file theo gợi ý Model_Serial.pfs, chẳng hạn:
acA3800-14uc_22171036.pfs. - Copy file này vào thư mục bin\config của ứng dụng IndustrialCamera.
7.3. Điền thông tin trong ứng dụng
- Chạy ứng dụng IndustrialCamera.exe (Debug hoặc Release).
- Trong ô Serial, nhập số serial của camera, ví dụ: 22171036.
- Trong ô Config file, nhấn biểu tượng thư mục:
- Duyệt tới thư mục bin\config.
- Chọn file config tương ứng, ví dụ: acA3800-14uc_22171036.pfs.
- Kiểm tra lại: Serial & file cấu hình đã khớp với đúng camera.
7.4. Nhấn Start để mở camera
- Nhấn nút Start.
- Ứng dụng sẽ:
- Tìm camera có Serial đúng.
- Kết nối và nạp cấu hình từ file .pfs.
- Bắt đầu stream (tùy code phần hiển thị / xử lý hình ảnh).
- Nếu có lỗi:
- Kiểm tra lại camera đã cắm và hoạt động trong pylon Viewer.
- Kiểm tra Serial nhập đúng chưa.
- Kiểm tra đường dẫn file .pfs đúng và file còn tồn tại.
8. Dừng camera và chụp ảnh (Capture)
8.1. Dừng camera
- Khi không cần stream nữa, nhấn nút Stop.
- Ứng dụng sẽ dừng việc lấy ảnh, giải phóng tài nguyên camera.
- Việc giải phóng đúng cách giúp tránh lỗi “camera đang được sử dụng bởi ứng dụng khác”.
8.2. Chụp ảnh (Capture)
- Đảm bảo camera đang trong trạng thái đã Start và có dữ liệu hình ảnh.
- Nhấn nút Capture.
- Ứng dụng sẽ chụp một frame từ camera và lưu ra file ảnh.
- Vị trí lưu mặc định là
bin\pictures\hoặc một path được cấu hình trong code. - Định dạng có thể là .bmp, .png, … tùy cách bạn triển khai. Trong code mặc định lưu .jpg
- Vị trí lưu mặc định là
- Mở thư mục lưu ảnh để kiểm tra kết quả chụp.
để thuận tiện tra cứu lại sau này.
9. Gợi ý tùy biến code C# theo nhu cầu thực tế
Project IndustrialCamera được thiết kế đơn giản, tập trung vào thao tác cơ bản với camera.
Từ đây, bạn có thể mở rộng:
- Hiển thị ảnh trên PictureBox hoặc UserControl tự vẽ.
- Lưu log thời gian Start/Stop, trạng thái kết nối, lỗi.
- Tự động tìm camera nếu không nhớ serial (enumerate devices qua pylon).
- Tích hợp xử lý ảnh bằng OpenCV / EmguCV / thư viện riêng trước khi hiển thị.
- Điều khiển nhiều camera cùng lúc, mỗi camera một tab hoặc một panel riêng.
- Kết hợp với PLC / Robot / băng tải để tạo thành một hệ thống thị giác máy tính hoàn chỉnh.
10. Tổng kết
Qua bài viết này, bạn đã:
- Biết cách tải và mở project IndustrialCamera trong Visual Studio.
- Hiểu cách cấu hình .NET Framework 4.7.2 và build ứng dụng.
- Biết ý nghĩa các trường Serial, Config file, và các nút Start / Stop / Capture.
- Biết cách sử dụng file cấu hình .pfs lưu trong thư mục
bin\configđể khởi tạo camera đúng tham số.
Bạn có thể tham khảo lại bài viết cài pylon tại đây để đảm bảo môi trường luôn ổn định:
Hướng dẫn sử dụng bộ phần mềm pylon để vận hành camera công nghiệp Basler
.
Chúc bạn triển khai thành công các ứng dụng thị giác máy tính trên Windows với C# và camera công nghiệp Basler!