Chương 1 : Tổng quan
1.5. Tổng quan hệ thống phần mềm
1.5.1. Hệ điều hành
Từ những ưu nhược điểm và cân nhắc vấn đề đặt ra của bài toán cần giải, từ một số hệ điều hành phổ biến như Raspbian, Ubuntu, Win 10 Iot CoreOSMC và OpenELEC, chúng em quyết định sử dụng hệ điều hành Raspian Jesse là hệ điều hành chính cho máy tính nhúng Raspberry Pi.
Hệ điều hành Raspberry Jesse có nền tảng xây dựng từ hệ điều hành Ubuntu, là hệ điều hành dể sử dụng, khá phổ biến trong cộng đồng người sử dụng Raspberry Pi nên có thể nhận được sự hỗ trợ từ cộng đồng người sử dụng. Raspbian là một phiên bản khơng chính thức của Debian Wheezy –đây là một phiên bản Linux có tiếng. Raspbian rất đơn giản và quen thuộc. Nó là nền tảng rất tốt cho những người mới bắt đầu làm quen với Raspberry nói riêng và Linux nói chung.
Nhược điểm của nó là giao diện đơn giản, cổ điển và rất khó hào nhống. Nhưng hiệu suất của hệ điều hành đem lại là cực kì cao và được tối ưu rất tốt khi so sánh với các hệ điều hành đang phổ biến trên Pi như Ubuntu Mate hay Win10 IotCore.
Góc chụp
Khay trái cây Cảm biến
hồng ngoại
1.5.2.Thư viện xử lý ảnh
OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở nói về thị giác máy tính với hơn 500 hàm và 2500 thuật tốn đã tối ưu để xử lý ảnh và các vấn đề liên quan đến thị giác máy tính thay cho con người. OpenCV được thiết kế một cách tối ưu, sử dụng tối đa sức mạnh củ dòng chip đa lõi để thực hiện các phép tính tốn trên thời gian thực, tức là tốc độ đáp ứng đủ nhanh cho các phép tính tốn thơng thường và đơn giản. OpenCV là thư viện thiết kế để chạy trên nhiều nền tảng khác nhau (cross – platfrom), nghĩa là nó có thể chạy trên nhiều hệ điều hành Windows, Mac, Ubuntu… việc sử dụng thư viện OpenCV tuân theo những quy định sử dụng mã nguồn mở BSD do đó có thể sử dụng thư viện này vào các mục đích thương mại và phi thương mại. Năm 2005, OpenCV đã được sử dụng trên Stanley, chiếc xe đã giành được giải Grand DARPA 2005[3]. OpenCV hỗ trợ rất nhiều thuật tốn liên quan đến thị giác máy tính và học máy ngày càng mở rộng. Cho đến nay thì OpenCV vẫn là một thư viện mở, được phát triển bởi nguồn quỹ không lợi nhuận và được sử hưởng ứng từ cộng đồng.[4]
1.5.3.Ngơn ngữ lập trình
Ngơn ngữ lập trình là một hệ thống được ký hiệu hóa dùng để miêu tả những phép tính tốn thơng qua máy tính trong một dạng mà cả máy tính lẫn con người đều có thể đọc và miêu tả được. Là một tập con của ngơn ngữ máy tính đã chuẩn hóa và được thiết kế để truyền những chỉ thị cho các thiết bị có bộ xử lý. Ngơn ngữ lập trình được sử dụng để tạo ra các chương trình với mục đích điều khiển máy tính thực hiện các cơng việc nào đó thơng qua các câu lệnh.
Đối với các ngôn ngữ phổ biến, phát triển lâu dài người ta thường có các tiêu chuẩn chính thức do ngơn ngữ đó. Đồng thời, tổ chức các hội thảo để mở rộng, bổ sung các tiêu chuẩn trước đó. Ví dụ như ngơn ngữ C++, các hội đồng tiêu chuẩn ANSI C++ và ISO C++ đã tổ chức đến 13 cuộc hội thảo để điều chỉnh, sửa đổi và nâng cấp ngơn ngữ này.
Ngơn ngữ lập trình bao gồm những chi tiết kỹ thuật sau: • Dữ liệu và cấu trúc dữ liệu.
• Câu lệnh và dịng điều khiển. • Các tên hàm và tham số.
• Các cơ chế tham khảo và sự tái sử dụng. Vai trị của ngơn ngữ lập trình
• Xác định hiểu rõ các yêu cầu cần thiết của khách hàng.
• Xác định và phân tích rõ hệ thống sẽ làm được những gì theo quan điểm của người dùng.
• Đưa ra cách thức giải quyết vấn đề bằng ngơn ngữ lập trình cụ thể.
• Ghép nối các bộ phận của hệ thống và kiểm tra xem có vận hành đúng thiết kế khơng.[5]