1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3

67 380 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Camera Giám Sát Và Xử Lý Ảnh Trên Nền Tảng Raspberry Pi 3
Tác giả Hồ Sỹ Quân
Người hướng dẫn TS. Đặng Thái Sơn
Trường học Trường Đại Học Vinh
Chuyên ngành Kỹ Thuật Công Nghệ
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2017
Thành phố Nghệ An
Định dạng
Số trang 67
Dung lượng 1,78 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU MÁY TÍNH NHÚNG VÀ NGÔN NGỮ LẬP TRÌNH CHO HỆ THỐNG (2)
    • 1.1. Tổng quan về máy tính nhúng (8)
      • 1.1.1. Sự ra đời của hệ thống nhúng (8)
      • 1.1.2. Đặc điểm và ứng dụng của hệ thống nhúng (10)
      • 1.1.3. Kiến trúc hệ nhúng (12)
      • 1.1.4. Tình hình phát triển và các thiết bị nhúng (13)
      • 1.1.5. Các ngôn ngữ cho lập trình hệ nhúng (14)
    • 1.2. Tổng quan về Python và thƣ viện OpenCV (18)
      • 1.2.1. Ngôn ngữ lập trình Python (18)
      • 1.2.2. Thƣ viện OpenCV (22)
    • 1.3. Giới thiệu về phần mềm Qt Creator (25)
    • 1.4. Kết luận chương (26)
  • CHƯƠNG 2. TỔNG QUAN VỀ KIT RASPBERRY PI3 (2)
    • 2.1. Giới thiệu chương (27)
    • 2.2. Giới thiệu về Kit Raspberry Pi 3 (27)
    • 2.3. Cấu tạo phần cứng của Raspberry Pi 3 (27)
      • 2.3.1. Cấu hình Raspberry Pi 3 Model B (28)
      • 2.3.2. Cấu trúc phần cứng (29)
      • 2.3.3. Ngôn ngữ lập trình trên Pi (31)
      • 2.3.4. Các hệ điều hành cho Raspberry pi 3 (31)
      • 2.3.5. Phụ kiện hỗ trợ kèm theo (33)
      • 2.3.6. Cài đặt hệ điều hành cho Raspberry pi (34)
      • 2.3.7. Làm việc với Raspberry pi qua máy tính (36)
    • 2.4. Camera (40)
    • 2.5. Kết luận chương (42)
  • CHƯƠNG 3. L THUYẾT VỀ XỬ L ẢNH BẰNG PYTHON VÀ OPENCV (8)
    • 3.1. Phương pháp nội suy (43)
      • 3.1.1. Nội suy tuyến tính (43)
      • 3.1.2. Nội suy song tuyến tính (43)
    • 3.2. Thay đổi v ng màu (0)
    • 3.3. Chuyển đổi hình học của hình ảnh (44)
      • 3.3.1. Chuyển đổi (44)
      • 3.3.2. Nhân rộng (44)
      • 3.3.3. Dịch (44)
      • 3.3.4. Vòng xoay (0)
    • 3.4. Phương pháp lọc số trong ảnh (45)
      • 3.4.1. Lọc hình ảnh (45)
      • 3.4.2. Lọc Gaussian (46)
      • 3.4.3. Lọc song phương (46)
      • 3.4.4. Lọc Blur (47)
      • 3.4.5. Lọc Sobel (47)
      • 3.4.6. Lọc Laplace (48)
      • 3.4.7. Tìm biên ảnh dựa trên bộ lọc Canny (48)
    • 3.5. Kết luận chương (50)
  • CHƯƠNG 4. PHÂN TÍCH, THIẾT KẾ HỆ THỐNG CAMERA GIÁM SÁT (2)
    • 4.1. Giới thiệu chương (51)
    • 4.2. Cài đặt môi trường làm việc cho Kit Raspberry Pi 3 (51)
      • 4.2.1. Cài đặt hệ điều hành Raspbian (51)
      • 4.2.2. Cài đặt ngôn ngữ python (51)
      • 4.2.3. Import thƣ viện OpenCV (52)
      • 4.2.4. Gắn camera vào Kit (52)
    • 4.3. Lưu đồ thuật toán (52)
    • 4.4. Yêu cầu và mục tiêu thiết kế (52)
    • 4.5. Phương pháp nghiên cứu (52)
    • 4.6. Thiết kế hệ thống (53)
    • 4.7. Đánh giá kết quả và thảo luận (53)
    • 4.8. Những kết quả đạt đƣợc qua xử lý ảnh (54)
    • 4.9. Kết luận chương (59)
  • PHỤ LỤC (61)
  • TÀI LIỆU THAM KHẢO (67)

Nội dung

GIỚI THIỆU MÁY TÍNH NHÚNG VÀ NGÔN NGỮ LẬP TRÌNH CHO HỆ THỐNG

Tổng quan về máy tính nhúng

1.1.1 Sự ra đời của hệ thống nhúng

Hệ thống nhúng (Embedded System) là một hệ thống tự trị được tích hợp vào môi trường hoặc hệ thống mẹ, bao gồm cả phần cứng và phần mềm Chúng phục vụ cho các ứng dụng chuyên dụng trong nhiều lĩnh vực như công nghiệp, tự động hóa điều khiển, quan trắc và truyền tin Đặc điểm nổi bật của hệ thống nhúng là tính ổn định trong hoạt động và khả năng tự động hóa cao.

Hình 1.1 Mô hình một hệ thống mạch nhúng

Hệ thống nhúng được thiết kế để thực hiện các chức năng chuyên biệt, khác với máy tính đa chức năng như máy tính cá nhân Chúng chỉ thực hiện một hoặc một vài nhiệm vụ nhất định, đi kèm với yêu cầu cụ thể và bao gồm phần cứng chuyên dụng không có trong máy tính thông thường Nhờ vào việc tập trung vào các nhiệm vụ cụ thể, các nhà thiết kế có thể tối ưu hóa hệ thống để giảm kích thước và chi phí sản xuất.

Hệ thống nhúng hiện nay rất đa dạng và phong phú, từ các thiết bị cầm tay nhỏ gọn như đồng hồ kỹ thuật số và máy chơi nhạc MP3 đến các sản phẩm lớn như đèn giao thông và bộ kiểm soát trong nhà máy Độ phức tạp của hệ thống nhúng cũng rất đa dạng, có thể chỉ đơn giản với một vi điều khiển hoặc phức tạp với nhiều đơn vị, thiết bị ngoại vi và mạng lưới được tích hợp trong một lớp vỏ máy lớn.

Các thiết bị PDA và máy tính cầm tay có một số đặc điểm giống với hệ thống nhúng, như hệ điều hành và vi xử lý điều khiển Tuy nhiên, chúng không phải là hệ thống nhúng thực sự vì là thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối với nhiều thiết bị ngoại vi.

Hệ thống nhúng đầu tiên, Apollo Guidance Computer, được phát triển bởi Charles Stark Draper tại MIT, đánh dấu bước khởi đầu quan trọng trong công nghệ Năm 1961, máy hướng dẫn Autonetics D-17, hệ thống nhúng sản xuất hàng loạt đầu tiên, sử dụng bóng bán dẫn và đĩa cứng để duy trì bộ nhớ Khi Minuteman II được sản xuất vào năm 1996, D-17 đã được thay thế bằng một máy tính mới sử dụng mạch tích hợp, với tính năng thiết kế cho phép lập trình lại thuật toán, cải thiện độ chính xác của tên lửa và giảm trọng lượng cáp điện và đầu nối.

Từ những năm 1960, hệ thống nhúng đã trải qua sự phát triển mạnh mẽ về khả năng xử lý và giá cả Bộ vi xử lý Intel 4004, ra đời nhằm phục vụ cho máy tính điện tử và các hệ thống nhỏ, là bộ vi xử lý đầu tiên dành cho người tiêu dùng, mặc dù vẫn cần chip nhớ ngoài và các hỗ trợ khác Đến cuối những năm 1970, các bộ xử lý 8 bit đã được sản xuất, nhưng vẫn phụ thuộc vào chip nhớ bên ngoài.

Vào giữa thập niên 80, kỹ thuật mạch tích hợp phát triển mạnh mẽ, cho phép tích hợp nhiều thành phần vào một chip xử lý Các vi xử lý, hay còn gọi là vi điều khiển, trở nên phổ biến nhờ giá thành thấp, thu hút sự quan tâm trong việc xây dựng các hệ thống chuyên dụng Sự bùng nổ về số lượng vi điều khiển đã diễn ra trong giai đoạn này.

Các hệ thống nhúng đã trở thành một phần quan trọng trong nhiều lĩnh vực thị trường, thu hút sự quan tâm từ các nhà đầu tư sản xuất Nhiều chip xử lý đặc biệt đã được phát triển với nhiều giao diện lập trình, thay thế cho kiểu song song truyền thống để kết nối các vi xử lý Kể từ cuối những năm 80, các hệ thống nhúng đã trở nên phổ biến trong hầu hết các thiết bị điện tử, và xu hướng này vẫn tiếp tục phát triển mạnh mẽ cho đến nay.

Hệ thống nhúng được định nghĩa là hệ thống thực hiện các chức năng đặc biệt nhờ vào vi xử lý, và không tồn tại hệ thống nhúng nào chỉ bao gồm phần mềm.

1.1.2 Đặc điểm và ứng dụng của hệ thống nhúng Đặc điểm của hệ thống nhúng

Hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống phức tạp nằm trong thiết bị mà nó điều khiển

Các hệ thống nhúng có giới hạn hơn về phần cứng và phần mềm so với máy tính cá nhân, với các hạn chế về khả năng xử lý, tiêu thụ điện năng, bộ nhớ và tính năng phần cứng Phần mềm của chúng thường hỗ trợ ít ứng dụng, có tính năng bị thu gọn hoặc không có hệ điều hành Tuy nhiên, hiện nay, những giới hạn này đã được cải thiện nhờ vào sự phát triển của các hệ thống nhúng phức tạp và đầy đủ tính năng hơn Phần mềm trong các hệ thống này được lưu trữ trên bộ nhớ ROM, Flash và được gọi là Firmware.

Hệ thống nhúng được thiết kế để thực hiện chức năng chuyên biệt, khác biệt với máy tính cá nhân hay siêu máy tính có khả năng thực hiện nhiều chức năng phức tạp Sự chuyên dụng này không chỉ nâng cao tính dễ sử dụng mà còn giúp tiết kiệm tài nguyên Các hệ thống này có khả năng cảm nhận môi trường thông qua các cảm biến như nhiệt độ, độ ẩm, ánh sáng và trọng lượng, sử dụng tín hiệu điện để phát hiện các yếu tố như nhiễu điện từ.

Tác động trở lại môi trường (hú còi báo động khi phát hiện khói trong tòa nhà…)

Tốc độ tương tác phải đáp ứng thời gian thực (hệ thống còi báo hỏa, hệ thống chống trộm trên ô tô…)

Hệ thống nhúng có thể không cần giao diện giao tiếp trực tiếp với người dùng như máy tính cá nhân Đối với các hệ thống đơn giản, thiết bị thường sử dụng LCD nhỏ, joystick, LED, nút bấm và hiển thị thông tin bằng chữ hoặc số, kèm theo menu đơn giản Hiện nay, việc kết nối đến hệ thống nhúng qua giao diện Web giúp giảm chi phí cho màn hình, đồng thời vẫn cung cấp khả năng hiển thị và nhập liệu thuận tiện qua mạng và các máy tính khác.

Nhiều thiết bị nhúng đòi hỏi chất lượng, tính ổn định và độ tin cậy cao, vì lỗi trong hệ thống này có thể dẫn đến tai nạn nghiêm trọng, như trong các hệ thống điều khiển máy bay, tên lửa và ô tô Một số lỗi có thể không khắc phục được, như trong trường hợp vệ tinh nhân tạo, trong khi những lỗi khác có thể tốn kém chi phí sửa chữa hoặc thiết kế lại Do đó, việc phát triển hệ thống nhúng cần tuân thủ quy trình kiểm tra và kiểm thử nghiêm ngặt.

Thông thường với những hệ thống yêu cầu độ ACTIVE cao thì việc trang bị 1 hệ thống dự phòng, backup là điều chắc chắn

Các ứng dụng của hệ thống nhúng

Với những ƣu điểm vƣợt trội của mình thì hệ thống nhúng đƣợc ứng dụng rất rộng rãi trong các lĩnh vực nghiên cứu và tự động

Một số ví dụ điển hình về hệ thống nhúng:

Hệ thống dẫn đường trong không lưu và hệ thống định vị toàn cầu sử dụng công nghệ vệ tinh để cải thiện độ chính xác Trong đời sống hàng ngày, các thiết bị gia dụng như tủ lạnh, lò vi sóng và lò nướng giúp nâng cao tiện nghi Các thiết bị kết nối mạng như router, hub và gateway đóng vai trò quan trọng trong việc duy trì kết nối Internet Trong môi trường văn phòng, máy photocopy, máy fax, máy in và máy scan là những công cụ thiết yếu cho công việc Ngành y tế cũng được hỗ trợ bởi các thiết bị như máy thẩm thấu và máy điều hòa nhịp tim Cuối cùng, công nghiệp hiện đại sử dụng dây chuyền sản xuất tự động và robot để tăng hiệu suất và giảm chi phí.

Hình 1.2 Một số thiết bị nhúng thông dụng 1.1.3 Kiến trúc hệ nhúng

Mỗi hệ thống nhúng đều có một kiến trúc thổng thể nhƣ sau:

Hình 1.3 Kiến trúc tổng thể của hệ thống nhúng Phần mềm hệ thống

Phần này bao gồm các thành phần như driver thiết bị (UATR, Ethernet, ADC), hệ điều hành nhúng (eCos, ucLinux, VxWorks, Monta Vista Linux, BIOS, QNX), cùng với các chức năng quản lý bộ nhớ, quản lý tiến trình và quản lý chia sẻ tài nguyên.

Phần mềm hệ thống có ƣu điểm là có thể tái sử dụng trên một hệ thống nhúng khác

Quyết định hành vi (chức năng) của một hệ thống nhúng Nhƣng lại khó tái sử dụng trên một hệ thống nhúng khác

Tổng quan về Python và thƣ viện OpenCV

1.2.1 Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình bậc cao, thông dịch, hướng đối tượng, đa mục đích và cũng là một ngôn ngữ lập trình động

Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum phát triển vào năm 1990, nổi bật với kiểu dữ liệu động và cơ chế cấp phát bộ nhớ tự động, tương tự như Perl, Ruby, Scheme, Smalltalk và Tcl Được quản lý bởi tổ chức phi lợi nhuận Python Software Foundation, Python đã trở thành một dự án mã mở Theo Eric S Raymond, ngôn ngữ này có cú pháp rõ ràng và dễ hiểu, rất phù hợp cho người mới học lập trình Cấu trúc của Python cho phép người dùng viết mã với số lần gõ phím tối thiểu, điều này được Guido van Rossum nhấn mạnh trong một cuộc phỏng vấn.

Ban đầu, Python đƣợc phát triển để chạy trên nền Unix Nhƣng rồi theo thời gian, nó đã “bành trướng” sang mọi hệ điều hành từ MS-

Python là một ngôn ngữ lập trình có sự phát triển nhờ vào nhiều cá nhân, nhưng Guido van Rossum vẫn là tác giả chính và giữ vai trò quan trọng trong việc định hướng phát triển của nó.

Cú pháp của Python dễ học và ngôn ngữ này mạnh mẽ, linh hoạt như các ngôn ngữ khác trong phát triển ứng dụng Python hỗ trợ nhiều mẫu lập trình, bao gồm lập trình hướng đối tượng, lập trình hàm, lập trình mệnh lệnh và lập trình theo thủ tục.

Python là một ngôn ngữ lập trình đa mục đích, không chỉ giới hạn trong lĩnh vực lập trình web mà còn được ứng dụng rộng rãi trong nhiều lĩnh vực khác như doanh nghiệp, CAD 3D, và nhiều lĩnh vực khác.

Trong Python, bạn không cần khai báo kiểu dữ liệu cho biến vì nó hỗ trợ kiểu động, cho phép bạn gán giá trị nguyên cho một biến chỉ bằng cách sử dụng tên biến Điều này giúp quá trình phát triển ứng dụng và gỡ lỗi trở nên nhanh chóng hơn, do không cần bước biên dịch và chu trình edit-test-debug diễn ra rất nhanh.

Python được phát triển vào cuối những năm 1980, bắt đầu từ tháng 12/1989 bởi Guido van Rossum tại CWI, Hà Lan Ngôn ngữ này là sự kế thừa của ngôn ngữ ABC, được lấy cảm hứng từ SETL, với khả năng xử lý ngoại lệ và giao tiếp hiệu quả.

Guido van Rossum, tác giả chính của ngôn ngữ Python, tiếp tục đóng vai trò quan trọng trong định hướng phát triển của ngôn ngữ này, được cộng đồng gọi là "Độc tài nhân từ cho cuộc sống" (BDFL) Python kế thừa nhiều tính năng từ các ngôn ngữ khác như ABC, Module-3, C, C++ và Unix Shell.

Python 2.0, phát hành vào ngày 16/10/2000, mang đến nhiều tính năng mới nổi bật như bộ dọn rác đầy đủ và hỗ trợ Unicode Phiên bản này đã làm thay đổi quy trình phát triển, trở nên minh bạch hơn và nhận được sự ủng hộ từ cộng đồng.

Ngôn ngữ Python 3.0, còn được biết đến với tên gọi Python 3000 hoặc Py3k, là một bản phát hành lớn không tương thích ngược, được phát hành vào ngày 03/12/2008 sau quá trình thử nghiệm kéo dài Nhiều tính năng quan trọng của phiên bản này đã được điều chỉnh để tương thích với Python 2.6 và 2.7.

Ngôn ngữ Python thường xuyên được cập nhật để cải tiến tính năng và hỗ trợ mới Phiên bản mới nhất hiện nay là Python 3.3, được công bố vào ngày 29/9/2012, với nguyên tắc chủ đạo là loại bỏ các phương pháp cũ nhằm giảm thiểu sự trùng lặp trong chức năng của Python.

Các tí h ă g v triết phát triể

Python là một ngôn ngữ lập trình đa hình, hỗ trợ đầy đủ lập trình hướng đối tượng và lập trình cấu trúc Ngoài ra, Python còn tích hợp một số tính năng của lập trình chức năng và lập trình hướng khía cạnh Các mô hình lập trình khác cũng được hỗ trợ thông qua các phần mở rộng, bao gồm thiết kế theo hợp đồng và lập trình luận lý.

Python sử dụng quản lý bộ nhớ thông qua kiểu động và kết hợp giữa tính toán tham khảo với bộ dọn rác phát hiện theo chu kỳ Một trong những tính năng nổi bật của Python là phân giải tên động (late binding), cho phép liên kết các tên phương thức và biến trong thời gian thực thi.

Python hỗ trợ lập trình chức năng một cách hạn chế, tương tự như ngôn ngữ Lisp truyền thống Ngôn ngữ này cung cấp các hàm như map(), reduce() và filter() để xử lý dữ liệu hiệu quả.

Thư viện chuẩn trong Python bao gồm hai module quan trọng là itertools và functools, cung cấp các công cụ hữu ích cho việc làm việc với danh sách, từ điển và các tập hợp Những module này hỗ trợ việc khởi tạo biểu thức và tối ưu hóa các thao tác lập trình.

Ngôn ngữ Python nổi bật với việc sử dụng từ khóa tiếng Anh và hạn chế ký hiệu, điển hình là việc phân biệt chữ hoa và chữ thường, trong khi tất cả từ khóa đều ở dạng chữ thường Khối lệnh trong Python được xác định bằng cách thụt lề các câu lệnh, khác với các ngôn ngữ như C/C++ sử dụng cặp ngoặc nhọn {} Python là một ngôn ngữ lập trình đơn giản nhưng hiệu quả, hỗ trợ các chương trình lớn hơn và cung cấp nhiều cấu trúc hơn so với Unix shell Đồng thời, Python cũng có nhiều cơ chế kiểm tra lỗi hơn so với ngôn ngữ C, cùng với các kiểu dữ liệu cấp cao như mảng linh hoạt và từ điển, giúp tiết kiệm thời gian lập trình.

Ngôn ngữ Python là một ngôn ngữ lập trình cấp cao có thể đáp ứng phần lớn yêu cầu của lập trình viên:

- Ngôn ngữ Python thích hợp với các chương trình lớn hơn cả AWK và Perl

- Ngôn ngữ Python đƣợc sử dụng để lập trình Web Nó có thể đƣợc sử dụng nhƣ một ngôn ngữ kịch bản

Giới thiệu về phần mềm Qt Creator

Qt Creator là một IDE đa nền tảng giúp nhà phát triển tạo ứng dụng cho cả thiết bị di động và desktop Phần mềm này cung cấp các công cụ hỗ trợ chỉnh sửa mã nguồn và gỡ lỗi, mang lại hiệu quả cao trong quá trình phát triển ứng dụng.

Qt Creator là phần mềm thiết kế ứng dụng với giao diện gọn gàng và dễ nhìn, cung cấp nhiều thông số chuyên sâu Người dùng có thể tạo dự án mới theo từng bước, điều này đặc biệt hữu ích cho những người mới bắt đầu, vì họ sẽ nhận được hỗ trợ trong suốt quá trình thực hiện.

Phần mềm Qt Creator cung cấp nhiều công cụ hữu ích cho việc tùy chỉnh giao diện ứng dụng, giúp lập trình viên dễ dàng phát triển sản phẩm của mình Ngoài ra, nó còn tích hợp trình chỉnh sửa văn bản hỗ trợ ngôn ngữ lập trình C++ và QML, với tính năng bôi đậm cú pháp, hoàn thành mã và kiểm tra cú pháp hiệu quả.

Các tính năng chính của phần mềm hỗ trợ lập trình Qt Creator cho máy tính

- Trình chỉnh sửa code tối tân: Hỗ trợ cho việc chỉnh sửa C++ và QML, hoàn thành code, điều hướng

- Quản lý phiên bản: Phần mềm này đƣợc tích hợp với các hệ thống quản lý phiên bản phổ biến nhất

Quản lý build và dự án đảm bảo rằng tất cả các tập tin cần thiết được tạo ra, hỗ trợ hiệu quả cho việc nhập các dự án hiện có hoặc khởi tạo các dự án mới từ đầu.

- Đa nền tảng Qt có thể chạy trên mọi hệ điều hành nhƣ Linux, Windows, Mac

- Các trình editor thân thiện và dễ sử dụng

- Hỗ trợ vim editor (vim editor là một advance editor và có thể lập trình đƣợc các key, và xài hotkey rất nhanh)

- Sử dụng miễn phí: chúng ta không phải trả bất cứ một phí nào để download và sử dụng nó

Phần mềm Qt Creator hỗ trợ lập trình cho máy tính, cho phép người dùng dễ dàng tạo ra, chạy và phân phối các ứng dụng QT trên nhiều môi trường khác nhau.

Qt Creator là một ứng dụng lập trình mạnh mẽ cho máy tính, hỗ trợ gỡ lỗi trên cả desktop và thiết bị di động Nó tích hợp nhiều trình gỡ lỗi hiệu quả như GNU Symbolic Debugger, Microsoft Console Debugger và JavaScript Ngoài ra, Qt Creator còn cho phép phát hành các gói cài đặt thiết kế qua nhiều kênh và cửa hàng ứng dụng khác nhau.

Khi bắt đầu một dự án mới, người dùng có thể tùy chỉnh các thiết lập như chọn loại tiện ích (Qt Quick, HTML5 hoặc Qt widget), thiết lập ngôn ngữ lập trình, sử dụng hệ thống quản lý phiên bản và thiết kế các phiên bản riêng biệt của tập tin dự án Để phát triển ứng dụng QT Quick và các tiện ích dựa trên widget, người dùng có thể sử dụng hai trình chỉnh sửa đồ họa tích hợp là Qt Quick Designer và Qt Designer.

Qt Creator là phần mềm hỗ trợ lập trình mạnh mẽ, cung cấp nhiều công cụ hữu ích giúp người dùng dễ dàng viết và chỉnh sửa mã code Với tính năng tìm kiếm nâng cao, người dùng có thể nhanh chóng tìm kiếm và thực hiện các thao tác tái cấu trúc mã, bao gồm việc đặt lại tên cho các ký hiệu Ngoài ra, phần mềm cho phép người dùng tùy chỉnh trình chỉnh sửa mã nguồn với các lựa chọn về phông chữ, màu sắc và định dạng thụt đầu dòng, tạo điều kiện thuận lợi cho quá trình lập trình.

Qt Creator là ứng dụng lập trình cho PC tích hợp công cụ phân tích mã Valgrind, giúp người dùng phát hiện lỗi và rò rỉ bộ nhớ Ngoài ra, nó còn hỗ trợ xác định các hệ thống build như qmake và CMake, cùng với các thao tác dòng lệnh, phím tắt và công cụ bên ngoài.

TỔNG QUAN VỀ KIT RASPBERRY PI3

Giới thiệu chương

Chương 2 đi sau vào tìm hiểu tổng quan về cấu hình, cấu trúc phần cứng, các phụ kiện hỗ trợ kèm theo của Kit Raspberry Pi3 c ng với camera Chọn và cài đặt hệ điều hành và ngôn ngữ lập trình cho Kit.

Giới thiệu về Kit Raspberry Pi 3

Raspberry Pi là một máy tính nhỏ gọn, kích thước chỉ bằng lòng bàn tay, hoạt động trên hệ điều hành Linux Sản phẩm này được phát triển bởi Raspberry Pi Foundation, một tổ chức phi lợi nhuận, với mục tiêu tạo ra một hệ thống dễ tiếp cận cho nhiều người, phục vụ cho các công việc sáng tạo đa dạng.

Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman Đƣợc phân phối chính bởi Element14, RS Components và Egoman

Dự án Raspberry Pi ban đầu được thiết kế để tạo ra máy tính lập trình giá rẻ cho sinh viên, nhưng đã thu hút sự chú ý từ nhiều đối tượng khác nhau Raspberry Pi sử dụng bộ xử lý SoC Broadcom BCM2835, một chip xử lý di động mạnh mẽ và nhỏ gọn, tích hợp CPU, GPU, bộ xử lý âm thanh và video, cùng nhiều tính năng khác, tất cả đều hoạt động với mức tiêu thụ điện năng thấp.

Raspberry Pi không thể thay thế hoàn toàn máy tính để bàn hoặc laptop, vì nó không hỗ trợ Windows do sử dụng cấu trúc ARM Tuy nhiên, thiết bị này có thể chạy Linux, cho phép thực hiện các tác vụ như lướt web và sử dụng môi trường Desktop Raspberry Pi là một thiết bị đa năng với phần cứng giá rẻ, lý tưởng cho các dự án điện tử, DIY và thiết lập hệ thống tính toán tiết kiệm cho việc học lập trình.

Cấu tạo phần cứng của Raspberry Pi 3

Raspberry Pi có hai phiên bản, Model A và Model B Trong đề tài này em sử dụng Raspberry Pi 3 phiên bản Model B

2.3.1 Cấu hình Raspberry Pi 3 Model B

Raspberry Pi 3 Model B là phiên bản thứ ba và mới nhất của dòng sản phẩm Raspberry Pi, được ra mắt vào tháng 2 năm 2016 Thiết bị này có nhiều cải tiến đáng kể về cấu hình so với các phiên bản trước.

- CPU 64 bit quad-core bộ vi xử lý ARM Cortex A53, tốc độ 1.2GHz gấp 10 lần so với thế hệ đầu tiên

- Tích hợp Bluetooth 4.1 (sở hữu tính năng tiết kiệm năng lƣợng BLE)

Broadcom là nhà sản xuất chip SoC BCM2837 cho Raspberry Pi 3, được hiển thị trên board mạch Raspberry Pi 3 kế thừa tất cả các tính năng của Raspberry Pi 2, đồng thời mang đến nhiều cải tiến đáng kể.

- Cổng HDMI, hỗ trợ Full HDMI

- Cổng Ethernet (hay là cổng mạng LAN)

- Giao tiếp Camera qua CSI

- Hỗ trợ hiển thị DSI

Khe gắn thẻ Micro SD được hàn chết trên bo mạch theo kiểu Push-Pull, cho phép người dùng dễ dàng đẩy thẻ vào và kéo ra khi cần Theo giải thích của nhà sản xuất, thiết kế này mang lại hiệu suất tốt hơn so với kiểu Push-Push trước đây.

- Vi xử lý hình ảnh VideoCore IV 3D

Hình 2.1 Kit Raspberry Pi 3 mode B

Dưới đây là hình ảnh mặt trước và mặt sau của Kit Raspberry Pi3:

Hình 2.2 Mặt trước của Kit Raspberry Pi 3 mode B

Hình 2.3 Mặt sau của Kit Raspberry Pi 3 mode B 2.3.2 Cấu trúc phần cứng

Hình 2.4 Cấu trúc phần cứng Raspberry Pi 3

Hình ảnh mô tả chi tiết các cổng kết nối của Raspberry Pi

Hình 2.5 Sơ đồ chân kết nối Raspberry Pi 3

Hình 2.6 Sơ đồ 40 chân GPIO của Raspberry Pi 3

Trong 40 chân GPIO bao gồm:

- 26 chân GPIO Khi thiết lập là input, GPIO có thể đƣợc sử dụng nhƣ chân interupt, GPIO 14 & 15 đƣợc thiết lập sẵn là chân input

- 2 chân nguồn 5V, 2 chân nguồn 3.3V, 8 chân GND

- Vi xử lý ARMv7 32bit quad core 900Mhz, dung lƣợng Ram 1G, và bộ nhớ kiểu micro SD dung lƣợng t y chọn (nên >=4G)

- Khi một chân GPIO lên mức cao sẽ đạt điện áp 3.3V, dòng ra Imax=5mA

2.3.3 Ngôn ngữ lập trình trên Pi

Có nhiều lựa chọn lập trình trên Raspberry Pi, bao gồm việc lập trình trực tiếp từ bash-shell của Linux, sử dụng ngôn ngữ C đơn giản, hoặc các ngôn ngữ lập trình khác như Python, Perl và Ruby.

Trong đề tài này em sử dụng ngôn ngữ lập trình Python trên hệ điều hành Raspbian

2.3.4 Các hệ điều hành cho Raspberry pi 3

Raspberry Pi 3 hiện nay hỗ trợ nhiều hệ điều hành khác nhau, cho phép người dùng lựa chọn phù hợp với mục đích và tính chất công việc của mình.

Raspbian là hệ điều hành cơ bản và phổ biến nhất do Raspberry Pi Foundation cung cấp, được khuyến cáo sử dụng, đặc biệt cho những người mới bắt đầu làm quen với Raspberry Pi.

Raspbian sau khi giải nén có dung lượng gần 4GB, vì vậy cần tối thiểu thẻ nhớ 4GB để sử dụng Tuy nhiên, để cài đặt thêm các ứng dụng khác, nên sử dụng thẻ nhớ tối thiểu 8GB.

Raspbian được hướng đến người d ng có mục đích:

Sử dụng Raspberry Pi như máy tính văn phòng để lướt web, soạn văn bản, check mail và thi thoảng nghe nhạc/xem phim

Nghiên cứu phát triển các thiết bị điều khiển tự động

Sử dụng nhƣ một máy chủ cung cấp các dịch vụ nhƣ web, file server, printer server

Raspbian được đánh giá là hệ điều hành ổn định và nhanh chóng, đặc biệt trên Raspberry Pi 3, với thời gian khởi động chỉ 7 giây khi sử dụng thẻ Toshiba Exceria 48MB/s Mặc dù giao diện của Raspbian khá đơn giản và không bắt mắt, nhưng nếu bạn ưu tiên hiệu năng hơn hình thức, thì Raspbian là lựa chọn lý tưởng cho bạn.

Tương tự như Raspbian, Ubuntu Mate cũng hướng đến người d ng sử dụng Raspberry Pi nhƣ máy tính văn phòng Tuy nhiên Ubuntu Mate có giao diện đẹp

25 hơn rất nhiều so với Raspbian Đƣợc phát triển từ Ubuntu – hệ điều hành đƣợc xem là đối đầu trực tiếp với Windows

Martin Wimpress và Rohith Madhavan là những người sáng lập Ubuntu Mate, một hệ điều hành được phát triển từ nền tảng Ubuntu gốc Hệ điều hành này được tối ưu hóa tốt cho Raspberry Pi2 và Raspberry Pi3, với khuyến nghị sử dụng thẻ MicroSD từ class 6 trở lên để đạt tốc độ tối ưu Phiên bản mới nhất của Ubuntu Mate (15.04) nhận được nhiều đánh giá tích cực từ người dùng nhờ tốc độ nhanh, giao diện đẹp mắt và hỗ trợ đầy đủ các phần mềm phổ biến cho nhu cầu văn phòng.

Giao diện làm việc với Ubuntu Mate cũng đƣợc thiết kế rất đẹp mắt

Canonical đã không ngừng mở rộng hệ điều hành Ubuntu và mới đây đã giới thiệu một phiên bản rút gọn, nhằm hỗ trợ các ứng dụng đám mây Phiên bản này đóng vai trò quan trọng trong IoT (Internet of Things), giúp kết nối hoàn hảo các thiết bị trong đời sống như điện thoại, tivi, đèn, quạt, đồng hồ và nồi cơm điện.

Snappy Ubuntu Core là một phần quan trọng trong dự án Ubuntu Core, được xây dựng trên nền tảng của hệ điều hành Ubuntu Mặc dù có thiết kế tối giản, Snappy Ubuntu Core có khả năng hoạt động hiệu quả trong môi trường hạn chế, cho phép chạy nhiều ứng dụng mà không cần đến một hệ điều hành Ubuntu đầy đủ.

Windows 10 IoT Core, giống như Snappy Core Ubuntu, chỉ bao gồm nhân của Windows mà không có giao diện đồ họa hay các phần mềm thông dụng như Office Hệ điều hành này được thiết kế đặc biệt cho việc phát triển các ứng dụng IoT Microsoft cho biết IoT Core hỗ trợ nhiều ngôn ngữ mã nguồn mở, giúp các nhà sản xuất dễ dàng cài đặt trên thiết bị của họ và phát triển ứng dụng riêng.

OSMC và OpenELEC là hai hệ điều hành nổi bật dành cho nhu cầu giải trí trên Raspberry Pi OSMC được phát triển từ RaspBMC, trong khi OpenELEC được xây dựng dựa trên Xbian Cả hai hệ điều hành này đều mang đến trải nghiệm giải trí đa dạng và tiện ích cho người dùng.

OpenELEC được thiết kế đặc biệt để chạy KODI, trong khi OSMC được xây dựng trên nền tảng Debian, cho phép OSMC thực hiện nhiều chức năng hơn OpenELEC Cả hai hệ điều hành này đều phù hợp cho việc biến Raspberry Pi thành một trung tâm giải trí đa phương tiện.

Pi thành một Media Center trong nhà của bạn hoặc làm một thiết bị chơi Video/Audio trên xe ô tô

Về giao diện, OpenELEC giữ nguyên thiết kế đẹp mắt của Koidi, trong khi OSMC có giao diện mới với menu đơn giản và nền chữ trắng Mặc dù OSMC có vẻ không bắt mắt ban đầu, nhưng sự đơn giản của nó lại mang lại trải nghiệm tốt hơn khi sử dụng lâu dài Hơn nữa, OSMC cung cấp nhiều tùy chọn hơn so với OpenELEC Tuy nhiên, nếu bạn chỉ cần một hệ điều hành để phát Video/Audio, cả hai đều đáp ứng nhu cầu này.

2.3.5 Phụ kiện hỗ trợ kèm theo

Camera

Sử dụng Raspberry Pi camera là module camera đƣợc chính Raspberry Pi Foundation thiết kế

Trước khi có camera, để nâng cao khả năng nhận diện hình ảnh và quay phim cho Raspberry Pi, bạn chỉ có thể sử dụng webcam kết nối qua cổng USB Các webcam Logitech với định dạng xuất mjpeg giúp Raspberry Pi xử lý nhanh hơn, nhưng giá thành của chúng lại khá cao.

Webcam có độ phân giải lớn, đặc biệt là camera Raspberry Pi với độ phân giải 5 Megapixel, mang lại khả năng chụp hình xuất sắc trong nhiều điều kiện ánh sáng khác nhau, cả trong nhà lẫn ngoài trời Điểm nổi bật của camera này là khả năng chụp ảnh độ nét cao trong khi quay phim.

Thông số kỹ thuật của module V1 Camera:

- Độ phân giải hình: 2592 x 1944 pixel

L THUYẾT VỀ XỬ L ẢNH BẰNG PYTHON VÀ OPENCV

PHÂN TÍCH, THIẾT KẾ HỆ THỐNG CAMERA GIÁM SÁT

Ngày đăng: 01/08/2021, 10:53

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Mô hình một hệ thống mạch nhúng - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 1.1 Mô hình một hệ thống mạch nhúng (Trang 8)
Hình 1.3 Kiến trúc tổng thể của hệ thống nhúng Phần mềm hệ thống  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 1.3 Kiến trúc tổng thể của hệ thống nhúng Phần mềm hệ thống (Trang 12)
Hình 1.2 Một số thiết bị nhúng thông dụng 1.1.3.Kiến trúc hệ nhúng  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 1.2 Một số thiết bị nhúng thông dụng 1.1.3.Kiến trúc hệ nhúng (Trang 12)
- Vi xử lý hình ảnh VideoCore IV 3D - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
i xử lý hình ảnh VideoCore IV 3D (Trang 28)
Hình 2.2 Mặt trƣớc của Kit RaspberryP i3 mod eB - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.2 Mặt trƣớc của Kit RaspberryP i3 mod eB (Trang 29)
Dƣới đây là hình ảnh mặt trƣớc và mặt sau của Kit Raspberry Pi3: - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
i đây là hình ảnh mặt trƣớc và mặt sau của Kit Raspberry Pi3: (Trang 29)
Hình 2.5 Sơ đồ chân kết nối RaspberryP i3 - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.5 Sơ đồ chân kết nối RaspberryP i3 (Trang 30)
Hình ảnh mô tả chi tiết các cổng kết nối của RaspberryPi - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
nh ảnh mô tả chi tiết các cổng kết nối của RaspberryPi (Trang 30)
Hình 2.7 Phụ kiện kèm theo với RaspberryPi Phụ kiện mở rộng  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.7 Phụ kiện kèm theo với RaspberryPi Phụ kiện mở rộng (Trang 34)
Hình 2.8 Giao diện của phần mềm SD Formatter 4.0 - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.8 Giao diện của phần mềm SD Formatter 4.0 (Trang 35)
Hình 2.9 Dùng phần mềm Win32 Disk để copy hệ điều hành vào thẻ nhớ 2.3.7. Làm việc với Raspberry pi qua máy tính  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.9 Dùng phần mềm Win32 Disk để copy hệ điều hành vào thẻ nhớ 2.3.7. Làm việc với Raspberry pi qua máy tính (Trang 36)
Sau khi khởi động xong, gõ lệnh raspi-config để truy cập các phần cấu hình hệ thống cho Raspbian - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
au khi khởi động xong, gõ lệnh raspi-config để truy cập các phần cấu hình hệ thống cho Raspbian (Trang 36)
Ở phần eth0, inet add chính là địa chỉ IP. Trong hình minh họa trên, địa chỉ IP chính là 192.168.1.1 - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
ph ần eth0, inet add chính là địa chỉ IP. Trong hình minh họa trên, địa chỉ IP chính là 192.168.1.1 (Trang 37)
Hình 2.12 Giao diện PuTTY trên máy tính - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.12 Giao diện PuTTY trên máy tính (Trang 38)
Hình 2.15 Màn hình điều khiển Pi từ máy tính - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.15 Màn hình điều khiển Pi từ máy tính (Trang 40)
Hình 2.14 Giao diện TightVNC Viewer trên máy tính - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 2.14 Giao diện TightVNC Viewer trên máy tính (Trang 40)
- Độ phân giải hình: 259 2x 1944 pixel - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
ph ân giải hình: 259 2x 1944 pixel (Trang 41)
CHỤP HÌNH - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
CHỤP HÌNH (Trang 52)
Hình 4.2 Hệ thống sau khi hoàn thiện 4.7. Đánh giá kết quả và thảo luận  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 4.2 Hệ thống sau khi hoàn thiện 4.7. Đánh giá kết quả và thảo luận (Trang 53)
Hình 4.3 Những hình ảnh khi chuyển đổi không gian màu - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 4.3 Những hình ảnh khi chuyển đổi không gian màu (Trang 54)
Hình 4.4 Điều chỉnh độ tƣơng phản và độ sáng - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 4.4 Điều chỉnh độ tƣơng phản và độ sáng (Trang 54)
Hình 4.6 Chỉ ra điểm trùng nhau giữa hai bức hình Nhận dạng biển số xe  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 4.6 Chỉ ra điểm trùng nhau giữa hai bức hình Nhận dạng biển số xe (Trang 55)
Hình 4.5 Ảnh đƣợc xử lý qua các phép lọc khác nhau Tìm điểm trùng nhau giữa hai bức ảnh  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 4.5 Ảnh đƣợc xử lý qua các phép lọc khác nhau Tìm điểm trùng nhau giữa hai bức ảnh (Trang 55)
Hình 4.7 Nhận dạng biển số xe Phát hiện vùng chứa biển số xe và cách ly kí tự  - Thiết kế camera giám sát và xử lý ảnh trên nền tảng raspberry pi 3
Hình 4.7 Nhận dạng biển số xe Phát hiện vùng chứa biển số xe và cách ly kí tự (Trang 56)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w