CHƯƠNG 1: GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI 1 do an ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2: KIT RASPBERRY PI 2.1 Kit Raspberry Pi [6] 2.1 Giới thiệu tổng quan Raspberry Pi là cái máy tính giá 35USD kích cỡ như thẻ ATM và chạy HĐH Linux. Với mục tiêu chính của chương trình là giảng dạy máy tính cho trẻ em. Được phát triển bởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau. Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman.
Và được phân phối chính bởi Element14, RS Components và Egoman. Raspberry Pi ban đầu là một thẻ card được cắm trên bo mạch máy tính được phát triển bởi các nhà phát triển ở Anh. Sau đó Raspberry Pi đã được phát triển thành một bo mạch đơn có chức năng như một máy tính mini dùng để giảng dạy trong môn khoa học máy tính ở các trường trung học. Raspberry Pi được phát triển đầu tiên vào năm 2012 .1 Kit Raspberry Pi CHƯƠNG 2: KIT RASPBERRY PI 2 do an ĐỒ ÁN TỐT NGHIỆP 2.2 Các phiên bản hiện tại của kit raspberry pi Loại thẻ Version CPU Tốc độ RAM GPIO nhớ 26 chân ,1 USB, 1 HDMI Model SD-Card ARM1176JZF-S 700 Mhz 256MB Camera/ display socket A 1 jack audio, 1 jack video ARM1176JZF-S 40 chân,1 USB,1 HDMI Model Micro SoC: Bộ xử lý 700 MHz 256MB Camera/ display socket A+ SD-Card BCM28365 1 jack audio/ video 26 chân,2 USB,1 HDMI ARM1176JZF-S Model 1 LAN SD-Card SoC: Bộ xử lý 700 MHz 512MB B Camera/ display socket BCM28365 1 jack audio,1 jack video 40 chân, 4 USB,1 HDMI ARM1176JZF-S Model Micro 1 LAN,1 micro USB SoC: Bộ xử lý 700 MHz 512MB B+ SD-Card Camera/ display socket BCM28365 1 jack audio/video ARM Cortex 40 chân,4 USB,1 HDMI Model Micro A7(32 bit) 1 LAN,1 micro USB 900 Mhz 1GB Pi 2 SD-Card SoC: Bộ xử lý Camera/display socket BCM2836 1 jack audio/ video Nhân ARM11 Model Micro 40 chân,1 HDMI SoC:Broadcom 1GHz 512MB Pi Zero SD-Card 2 microUSB BCM2835 CHƯƠNG 2: KIT RASPBERRY PI 3 do an ĐỒ ÁN TỐT NGHIỆP 2.3 Các kết nối với Raspberry Pi 2 Hình 2.3 Các cổng giao tiếp ngoại vi CHƯƠNG 2: KIT RASPBERRY PI 4 do an ĐỒ ÁN TỐT NGHIỆP 2.4 Hệ điều hành – phần mềm [5] Có 5 phiên bản hệ điều hành được cung cấp chính thức cho Raspberry Pi: Raspian "wheezy" (khuyên dùng) : Đây là distro dựa trên Debian wheezy, sử dụng hard-float ABI (tính toán dấu chấm động bằng phần cứng) cho thời gian chạy các ứng dụng nhanh hơn.
Có sẵn giao diện đồ họa. Phù hợp với người mới bắt đầu tiếp cận Linux vì tính dễ sử dụng và trực quan. Soft-float "w heezy": Vẫn được xây dựng dựa trên Debian wheezy nhưng việc xử lý dấu chấm động được thực hiện bằng phần mềm. Việc này giúp bạn có thể sử dụng máy ảo Java (Oracle JVM) trên Raspberry.
Arch Linux: Phiên bản giành cho ARM. Đảm bảo thời gian khởi động trong vòng 10 giây. Chỉ khởi động và load các gói cần thiết. Để sử dụng được Arch Linux bạn cần có kiến thức cơ bản về Linux.
Pidora: Là phiên bản của Fedora được tối ưu cho RPi, có sẵn giao diện đồ họa. Giành cho những ai đã quen xài Fedora. RISC OS: Là hệ điều hành do nhóm phát triển ARM thiết kế riêng. Đây không phải là một phiên bản Linux, do vậy bạn cần làm quen với cấu trúc và câu lệnh đặc trưng cho hệ điều hành này.
Ngoài ra còn nhiều hệ điều hành khác bạn có thể cài đặt: Raspbmc, Android.5 Cài đặt phần mềm cho kit Raspberry Pi [5] Chuẩn bị: Board mạch Raspberry Pi với bộ nguồn khoảng 700mA trở lên. Hệ điều hành: Bạn có thể download bất kỳ hệ điều hành nào từ trang chủ Raspberry Pi. Ở đây tôi sẽ sử dụng Raspbian Weezy. Thẻ nhớ: Theo khuyến cáo là 4GB.
Màn hình hỗ trợ HDMI hoặc RCA. Bàn phím USB. Phần mềm Win32DiskImager (chạy trên windows). CHƯƠNG 2: KIT RASPBERRY PI 5 do an ĐỒ ÁN TỐT NGHIỆP Tiến hành: Đầu tiên bạn nối thẻ nhớ với máy tính sau đó dùng phần mềm Win32DiskImager để ghi ảnh hệ điều hành xuống.4 Ghi phần mềm vào thẻ nhớ Chỉ cần chọn file ảnh hệ điều hành (giải nén từ file nén download ở trên.), chú ý chọn đúng ổ USB, nhấn Write và chờ đợi.
Sau khi ảnh hệ điều hành đã được ghi xuống thẻ nhớ, bạn cắm thẻ nhớ vào Raspberry Pi, kết nối bàn phím, màn hình và nối nguồn. Như vậy là ta đã hoàn thành cài hệ điều hành cho Pi. Sau khi đã kết nối màn hình và bàn phím, cấp nguồn và hệ thống sẽ tự động boot, để đăng nhập, bạn dùng username và password mặc định là: pi/raspberry. Hệ thống đã được cài sẵn giao diện XDE, bạn có thể bật giao diện này bằng lệnh startx.
CHƯƠNG 2: KIT RASPBERRY PI 6 do an ĐỒ ÁN TỐT NGHIỆP 2.2 Ngôn ngữ lập trình Python 2.1 Giới thiệu Python Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. 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ý. Theo đánh giá của Eric S.
Raymond, Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định của chính Guido van Rossum trong một bài phỏng vấn ông. 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-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix.
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.2 Đặc điểm của ngôn ngữ Python Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau: Từ Khóa: Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và cấu trúc cú pháp so với các ngôn ngữ khác. Python là một ngôn ngữ phân biệt kiểu chữ HOA, chữ thường. Như C/C++, các từ khóa của Python đều ở dạng chữ thường.
Khối lệnh: Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệu hoặc từ khóa. Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc một khối lệnh.Trái lại Python có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa nó. Ta có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào. Khả năng mở rộng: Python có thể được mở rộng: nếu ta biết sử dụng C, ta có thể dễ dàng viết và tích hợp vào Python nhiều hàm tùy theo nhu cầu.
Các hàm này sẽ trở thành hàm xây dựng sẵn (built-in) của Python. Ta cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng CHƯƠNG 2: KIT RASPBERRY PI 7 do an ĐỒ ÁN TỐT NGHIỆP nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp). Hơn thế nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử dụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó. Trình thông dịch: Python là một ngôn ngữ lập trình dạng thông dịch, do đó có ưu điểm tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịch và liên kết.
Trình thông dịch có thể được sử dụng để chạy file script, ho ặc cũng có thể được sử dụng theo cách tương tác. Ở chế độ tương tác, trình thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào từng biểu thức rồi gõ Enter , và kết quả thực thi sẽ được hiển thị ngay lập tức. Lệnh và cấu trúc điều khiển: Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn. Ta không cần phải kết thúc câu lệnh bằng bất kì kí tự gì.
Các cấu trúc điều khiển chúng bao gồm: if,esif,else,while,for… Python cũng có từ khóa class dùng để khai báo lớp (sử dụng trong lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm. Hệ thống kiểu dữ liệu: Python sử dụng hệ thống kiểu duck typing, còn gọi là latent typing (tự động xác định kiểu). Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữ liệu tại thời điểm dịch, mà là tại thời điểm thực thi. Khi thực thi, nếu một thao tác trên một đối tượng bị thất bại, thì có nghĩa là đối tượng đó không sử dụng một kiểu thích hợp.
Python cũng là một ngôn ngữ định kiểu mạnh. Nó cấm mọi thao tác không hợp lệ, ví dụ cộng một con số vào chuỗi kí tự. Sử dụng Python, ta không cần phải khai báo biến. Biến được xem là đã khai báo nếu nó được gán một giá trị lần đầu tiên.
Căn cứ vào mỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu của biến. Python có một số kiểu dữ liệu thông dụng sau: int,long,float,list,str,dict,set… Module: Python cho phép chia chương trình thành các module để có thể sử dụng lại trong các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ. Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình mạng (socket),.
Đa năng: Python là một ngôn ngữ lập trình đơn giản nhưng rất hiệu quả. 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. CHƯƠNG 2: KIT RASPBERRY PI 8 do an ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 3.1 Hệ thống xử lý ảnh [1] Trong những năm gần đây, mặc dù còn rất mới mẻ trong lĩnh vực khoa học và công nghệ nhưng xử lý ảnh đang được nghiên cứu và phát triển với tốc độ nhanh chóng bởi các trung tâm nghiên c ứu, trường đại học… với rất nhiều ứng dụng trên các lĩnh vực khác nhau.