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