CHƯƠNG 1. TỔNG QUAN Xây dựng chương trình hoàn chỉnh cho toàn hệ thống, các hàm, các lưu đồ, các chương trình được sử dụng. Lắp ráp và chạy chương trình. Viết tài liệu hướng dẫn sử dụng, quy trình thao tác.
Chương 5: Kết quả, nhận xét và đánh giá. Nêu các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh giá kết quả thực thi được. Chương 6: Kết luận và hướng phát triển. Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2.1 GIỚI THIỆU 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ó.
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. Đầu tiên phải kể đến xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công cụ toán như đại số tuyến tính, xác xuất, thống kê. Một số kiến thứ cần thiết như trí tuệ nhân tao, mạng nơron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh.
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân đôn đến New York từ những năm 1920. Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh. Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955.
Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh sô thuận lợi. Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh. Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng. Các phương pháp tri thức nhân tạo như mạng nơ ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan[1].
Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như camera, máy chụp ảnh). Trước đây, ảnh thu qua camera là các ảnh tương tự (loại camera ống BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT kiểu CCIR).
Gần đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. Máy ảnh số hiện nay là một thí dụ gần gũi. Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằng máy quét ảnh.2 TỔNG QUAN VỀ MATLAB. MATLAB là viết tắt của "matrix laboratory", là ngôn ngữ lập trình cao cấp thế hệ thứ 4 của Mathworks.
MATLAB cung cấp môi trường tương tác để thực hiện tính toán và lập trình[3], … MATLAB là ngôn ngữ lập trình do MathWorks phát triển, cho phép người dùng xây dựng ma trận, vẽ đồ thị hàm số hay biểu đồ dữ liệu, thực hiện các phép toán, tạo các giao diện người dùng, liên kết các chương trình máy tính được viết trên nhiều ngôn ngữ khác nhau, bao gồm cả C, C++, Java, và FORTRAN, phân tích dữ liệu, phát triển các thuật toán, tạo ra các mô hình và ứng dụng. MATLAB được tích hợp nhiều lệnh và các hàm toán học, giúp người dùng thực hiện tính toán các con số, vẽ đồ thị và thực hiện các phương pháp số. MATLAB được sử dụng rộng rãi trong mọi khía cạnh tính toán. Dưới đây là một số phép tính toán MATLAB được sử dụng phổ biến nhất: Giải quyết các vấn đề ma trận và mảng.
Đại số tuyến tính. Phương trình đại số. Các hàm phi tuyến tính. Số liệu thống kê.
Phân tích dữ liệu. Giải tích và phương trình vi phân. Tính toán số, tích phân, chuyển đổi, hồi quy, các hàm đặc biệt khác. Hệ thống Matlab gồm 5 phần chính: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 do an CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT Ngôn ngữ Matlab: Cho phép lập trình từ các ứng dụng nhỏ đến phức tạp. Đó là các ngôn ngữ cao về ma trận và mảng, các dòng lệnh, các hàm, cấu trúc dữ liệu vào. Môi trường làm việc: Bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập dữ liệu. Nó cũng bao gồm các công cụ phát triển, quản lý, gỡ rối và định hình M-file.
Xử lý đồ họa: Bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động. Cung cấp các giao diện tương tác giữa người sử dụng và máy tính. Thư viện toán học: Các hàm cơ bản như cộng, trừ, nhân, chia, sin, cos, …và các hàm phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library. Giao diện người dùng (Application Program Interface): Cho phép viết chương trình tương tác với các ngôn ngữ khác C, Fortran,.
Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các hệ thống động phi tuyến, mô phỏng mạch.3 GIỚI THIỆU LỊCH SỬ HÌNH THÀNH ARDUINO. Arduino là một bo mạch vi xử lý được dung để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình và điều hiển làm nên hiện tượng Arduino chính là mức giá thấy với tính chấ nguồn mở từ phần cứng tới phần mềm chỉ với khoảng $30, người dung đã có thể sở hữu board Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị. Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduino, Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Interaction Design Instistute Ivrea (IDII).
Mặt dù hầu như không được tiếp thị gì cả, tin tức về arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên. Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nói đã sản sinh ra Arduino. Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây. Ngay cả những sinh viên và nhà nghiên cứu tại các trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng; hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK dùng để phát triển các ứng dụng Android tương tác với cảm biến và các thiết bị khác.
Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp. Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp. Sau đây là một số ứng dụng nổi bật của Arduino[4]. Máy in 3D Makerbot điều khiển bằng Arduino Mega 2560.
Xe tự hành. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2. Xe tự hành.
Ambilight dùng Arduino uno.4 GIỚI THIỆU PHẦN CỨNG.1 Kit Arduino Mega 2560. Trong mô hình này, những người thực hiện dùng Board Arduino Mega 2560 được tích hợp sẵn Vi điều khiển Atmega2560 cho số ngoại vi, các chuẩn giao tiếp và số chân nhiều nhất, bộ nhớ rất lớn (256KB), dễ dàng kết nối với Module Arduino Motor Shield, nếu có những ứng dụng cần mở rộng thêm nhiều chân, nhiều ngoại vi thì đây là một sự lựa chọn đáng giá, board hoàn toàn có cấu trúc chân tương thích với các board như Uno và chạy điện áp 5VDC. Tất cả các Shield của Arduino Uno đều chạy được với Arduino Mega và Adruino Mega không dùng được thư viện SoftwareSerial vì đã có sẵn 4 bộ UART[4]. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10 do an CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT Hình 2. Sơ đồ và chức năng chân Arduino Mega 2560. Một vài thông số của Arduino Mega: Arduino Mega sử dụng vi điều khiển Atmega2560. Điện áp hoạt động: 5V - DC.
Tần số hoạt động: 16 MHz. Dòng điện áp: 30 mA. Điện áp giới hạn: 7-9V - DC. Số chân Analog: 16.
Số chân Digital: 54 (15 chân PWM). Giao tiếp UART: 4 bộ UART. Giao tiếp SPI: 1 bộ (chân 50 -> 53) dùng với thư viện SPI của Arduino. Giao tiếp I2C: 1 bộ.
Ngắt ngoài: 6 chân. Dòng tối đa trên mỗi chân I/O: 30 mA. Các chân năng lượng: GND (Ground): cực âm của nguồn điện cấp cho Arduino Mega. 5V: cấp điện áp 5V đầu ra.
Dòng tối đa cho phép ở chân này là 500mA. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11 do an CHƯƠNG 2. Dòng tối đa cho phép ở chân này là 50mA. Vin (Voltage Input): để cấp nguồn ngoài cho Arduino Mega.
Bộ nhớ của Arduino mega 2560: 256KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng thường thì ít khi nào phải sử dụng quá 20kb bộ nhớ này.