Brownout và watchdog giúp hệ thống đáng tin cậy và mạnh mẽ hơn. Nó hỗ trợ ICSP cũng như lập trình vi điều khiển USB với PC và laptop.
a) Một vài thơng số của Arduino mega 2560:
Chíp xử lý Atmega 2560
Điện áp hoạt động 5V
Nguồn ngồi 7-12V
Cường độ dịng điện trên mỗi 3.3V 50 mA
Cường độ dòng diện trên mỗi I/O pin 20 mA
Flash Memory 256 Kb
SRAM 8 Kb
EEPROM 4 Kb
Clock Speed 16 Mhz
b) Cổng kết nối:
54 chân digital ( trong đó có 15 chân có thể sử dụng như những chân PAM từ chân số 2-13 và chân 44-46).
6 ngắt ngoài: chân 2 ( interrupt 4), chân 3 ( interrupt 1), chân 18 ( interrupt 5), chân 19 ( interrupt 4), chân 20 ( interrupt 3) và chân 21 ( interrupt 2).
16 chân vào từ Analog ( từ A0 đến A15 ). 4 cổng Serial giao tiếp với phần cứng. Một thạch anh với tần số dao động 16Mhz.
1 cổng kết nối USB. 1 jack cắm điện. 1 đầu ICSP. 1 nút RESET.
2.4 Thiết kế mạch đo và xử lý tín hiệu
2.4.1 Tổng quan về xử lý ảnh
Xử lý ảnh là một lĩnh vực mang tính khoa học và cơng nghệ. Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó. Sau đây là các bước thực hiện q trình xử lý ảnh:
Thu nhận ảnh: ảnh có thể nhận được qua camera màu hoặc đen trắng. Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, mơi trường.
Phân tích và vận dụng các kỹ thuật trên hình ảnh:
Tiền xử lý: sau bộ phận thu nhận ảnh,ảnh có thể bị nhiễu hoặc độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng ảnh . Chức năng: lọc nhiễu, tăng hoặc giảm độ tương phản.
Phân đoạn ảnh : là tách ảnh đầu vào thành các vùng để biểu diễn , phân tích và nhận dạng ảnh.
Biểu diễn ảnh : các vật thể sau khi được phân đoạn có thể được mô tả dưới dạng chuỗi các điểm và biểu diễn ảnh thường được sử dụng khi ta quan tâm đến đặc tính bên trong của vùng ảnh .
Nhận dạng và nội suy : là quá trình phân loại vật thể dựa trên cơ sở các chi tiết mô tả vật thể và nhận dạng ảnh là quá trình xác định ảnh và quá trình này thu được băng cách so sánh với mẫu đã được lưu trữ từ trước.
Đầu ra là kết quả ảnh có thể được thay đổi hoặc các báo cáo được dựa trên phân tích hình ảnh đầu vào.
Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay. Nó là mơn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác. Sau đây là một vài kiến thức cơ bản về xử lý ảnh:
2.4.1.1 Những vấn đề trong xử lý ảnh a. Điểm ảnh (Picture Element)
Là đơn vị cơ bản nhất để tạo nên một bước ảnh kỹ thuật số. Địa chỉ của điểm ảnh được xem như là một tọa độ (x,y) nào đỏ. Một bức ảnh kỹ thuật số, có thể được tạo ra bằng cách chụp hoặc bằng một phương pháp đồ họa nào khác, được tạo nên từ hàng ngàn hoặc hàng triệu pixel riêng lẻ. Bức ảnh càng chứa nhiều pixel thì càng chi tiết. Một triệu pixel thì tương đương với 1 megapixel.
b. Độ phân giải của ảnh
Độ phân giải là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều.
c. Mức xám của ảnh
Mức xám: Là kết quả của sự biến đổi tương ứng 1 giá trị độ sáng của 1 điểm ảnh với 1 giá trị ngun dương. Thơng thường nó xác định trong [0,255] tuỳ thuộc vào giá trị mà mỗi điểm ảnh được biểu diễn. Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ dụng. Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám. Mức xám dùng 1 byte biểu diễn: = 256 mức, tức là từ 0 đến 255).
d. Ảnh số
Là tập hợp hữu hạn các điểm ảnh, thường được biểu diễn bằng một mảng hai chiều (mxn) phần tử. Ảnh số được chia làm 3 loại:
- Ảnh nhị phân: Giá trị xám của tất cả các điểm ảnh chỉ nhận giá trị 1 hoặc 0. Như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 bit.
- Ảnh xám: Giá trị xám nằm trong khoảng 0…255. Như vậy mỗi điểm ảnh trong ảnh xám được biểu diễn bởi 1 byte .
- Ảnh màu: Là ảnh tổ hợp từ 3 màu cơ bản đỏ (R), lục (G), lơ (B) và thường thu nhận trên các giải băng tần khác nhau. Để biểu diễn cho ảnh màu cần 24 bit, 24 bit này được chia làm ba khoảng 8 bit, mỗi khoảng này biểu diễn cho cường độ sáng của một trong các màu chính.
e. Những định dạng của ảnh
Ảnh thu nhận được sau q trình số hóa thưởng được lưu lại cho các q trình xử lý tiếp theo hay truyền đi. Trong quá trình truyền của kỹ thuật xử lý ảnh, tồn tại nhiều định dạng khác nhau từ ảnh đen trắng như định dạng IMG, ảnh đa cấp xám cho đến ảnh màu (BMP,JPEG, GIF).
f. Các phần mềm hỗ trợ xử lý ảnh
Hiện nay xử lý ảnh được giảng dạy trưởng đại học và ứng dụng vào thực tế rất nhiều như các phần mềm chỉnh sửa hình ảnh hay nhận biết khn mặt. Chính vì thế có rất nhiều cơng cụ để chúng ta lập trình ứng dụng vào thực tế, Như phải kể đến Matlab hay ngôn ngữ Python,...
2.4.2 Giới thiệu về ngôn ngữ Python và thư viện OpenCv2.4.2.1 Ngôn ngữ Python 2.4.2.1 Ngôn ngữ Python
a. Giới thiệu ngôn ngữ Python
Python là một ngôn ngữ lập trình được sử dụng phổ biến ngày nay từ trong môi trường học đường cho tới các dự án lớn. Ngôn ngữ phát triển nhiều loại ứng dụng, phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web... Ngồi ra Python cũng là ngơn ngữ ưa thích trong xây dựng các chương trình tri tuệ nhân tạo trong đó bao gồm machine leaming. Ban đầu, Python được phát triển để chạy trên nền Unix, nhưng sau này, nó đã chạy trên mọi hệ điều hành từ MS- DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Python do Guido van Rossum tạo ra năm 1990, Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum
hiện nay vẫn là tác giả chủ yếu của Python. Ơng giữ vai trị chủ chốt trong việc quyết định hướng phát triển của Python.
b. Đặt điểm nổi bật của Python
Python là ngơn ngữ có hình thức đơn giản, cú pháp ngắn gọn, sử dụng một số lượng ít các từ khố, do đó Python là một ngơn ngữ dễ học đối với người mới bắt đầu tìm hiểu. Python là ngơn ngữ có mã lệnh (source code hay đơn giản là code) không mấy phức tạp. Cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy doán được ý nghĩa của từng dịng lệnh trong source code. Python có nhiều ứng dụng trên nhiều nền tảng, chương trình phần mềm viết bằng ngơn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau bao gồm Windows, Mac OSX và Linux.
2.4.2.2 Thư viện OPENCV
a. Giới thiệu
OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở, nó là miễn phí cho những ai bắt đầu tiếp cận với các học thuật. OpenCV được ứng dụng trong nhiều lĩnh vực như cho thị giác máy tính hay xử lý ảnh và máy học. Thư viện được lập trình trên các ngơn ngữ cấp cao: C++, C, Python, hay Java và hỗ trợ trên các nền tảng Window, Linux, Mac OS, iOS và Android. OpenCV đã được tạo ra tại Intel vào năm 1999 bởi Gary Bradsky, và ra mắt vào năm 2000. Opencv có rất nhiều ứng dụng: Nhận dạng ảnh, xử lý hình ảnh, phục hồi hình ảnh/video, thực tế ảo.... Ở đề tài này thư viện OpenCV được chạy trên ngôn ngữ Python. OpenCV được dùng làm thư viện chính để xử lý hình ảnh đầu vào và sau đó đi nhận dạng ảnh.
b. Đặt điểm
OpenCv là một thư viện mở nên sử dụng thuật tốn một cách miễn phí, cùng với việc chúng ta cũng có thể đóng góp thêm các thuật tốn giúp Thư viện thêm ngày càng phát triển.
Các tính năng của thư viện OpenCV:
Đối với hình ảnh, chúng ta có thể đọc và lưu hay ghi chúng. Về Video cũng tương tự như hình ảnh cũng có đọc và ghi. Xử lý hình ảnh có thể lọc nhiễu cho ảnh, hay chuyển đổi ảnh.
Thực hiện nhận dạng đặc điểm của hình dạng trong ảnh.
Phát hiện các đối tượng xác định được xác định trước như khuôn mặt, mắt, xe trong video hoặc hình ảnh.
Phân tích video,... ước lượng chuyển động của nó, trừ nền ra và theo dõi các đối tượng trong video.
2.4.3 Phương pháp phân loại sản phẩm theo màu sắc
Với để tài “Nghiên cứu, thiết kế hệ thống đếm số lượng và phân loại sản phẩm theo màu sắc” Thiết kế mơ hình phân loại sản phẩm (sử dụng sản phẩm là các phôi) theo các màu (đỏ, xanh, vàng). Ở phần này sẽ đi tìm hiểu chi tiết phương pháp nhận dạng của từng màu sắc của sản phẩm và phân loại sản phẩm theo từng màu sắc đã được nhận dạng.
2.4.3.1 Các màu sắc cơ bản của sản phẩm
Trong cuộc sống hiện nay, nhu cầu về màu sắc sản phẩm ngày càng được chứ trọng, để đáp ứng nhu cầu thiết yếu đó nên trên thị trường ra nhiều sản phẩm có màu sắc đa dạng. Ở đây sản phẩm sử dụng màu sắc của các phơi, có hai nhóm màu sắc cơ bản: Màu sắc sản phẩm phổ biến, màu sắc sản phẩm ít phổ biến. Cách chia này dựa vào sự phổ biến của màu sắc sản phẩm ở ngồi cuộc sống, nhóm màu sắc chính (đỏ, xanh, vàng) và các mùa sắc cịn lại thì ít thơng dụng hơn nên là thuộc nhóm cịn lại. Ở đề tài để gần với thực tế, nhóm chọn sản phẩm phơi có màu sắc phổ biến.
2.4.3.2 Phương pháp nhận dạng màu sắc
Giới thiệu về các không gian màu
Một bức ảnh chụp có thể được biểu diễn bằng các khơng gian màu khác nhau. Khơng gian màu là một mơ hình tốn học dùng để mô tả các màu sắc trong thực tế được biểu diễn dưới dạng số học. Trên thực tế có rất nhiều khơng gian màu khác nhau được sử dụng vào những mục đích khác nhau. Trong phần này sẽ tìm hiểu qua về ba khơng gian màu cơ bản hay được nhắc tới và ứng dụng nhiều, đỏ là hệ không gian màu RGB, HSV và CMYKI
RGB là không gian màu phổ biến dùng trong máy tính, máy ảnh, điện thoại và nhiều thiết bị kĩ thuật số khác. Không gian màu này khá gần với cách mắt người tổng hợp màu sắc. Nguyên lý cơ bản là sử dụng 3 màu sắc cơ bản 17 R (red - đỏ), G (green - xanh lục) và B (blue - xanh lam) để biểu diễn tất cả các màu sắc.
Mỗi kênh màu sẽ sử dụng 8 bit để biểu diễn, tức là giá trị R, G, B nằm trong khoảng 0 - 255. Bộ 3 số này biểu diễn cho từng điểm ảnh, mỗi số biểu diễn cho cường độ của một màu.
Với mơ hình biểu diễn 24 bit, số lượng màu tối đa sẽ là: 255×255×255=16581375