Chương 1: Tổng quan đề tài. Trình bày ngắn gọn về sự cần thiết đề tài đối với cuộc sống. Đồng thời nêu ra được các phương pháp tiếp cận và thực hiện đề tài theo từng bước. o Chương 2: Cơ sở lý thuyết liên quan.
Giới thiệu các kiến thức lý thuyết cơ bản về công nghệ Internet, giới thiệu Kit Raspberry Pi 3 với hệ điều hành Rasbian. Nêu được các đặc điểm, giao thức truyền nhận dữ liệu, lựa chọn thiết bị thu âm, thiết bị thu hình ảnh, đèn thông minh và các thư viện hỗ trợ thực hiện đề tài. o Chương 3: Giới thiệu công nghệ nhận diện giọng nói, công ngệ nhận dạng hình ảnh và sơ lược về thư viện OPENCV. Giới thiệu sơ lược về các công nghệ nhận diện giọng nói, công nghệ nhận dạng hình ảnh và tóm tắt về thư viện mã nguồn mở OpenCV.
o Chương 4: Tính toán và thiết kế hệ thống. Trình bày về hệ thống gương thông minh gồm xây dựng sơ đồ khối, sơ đồ nguyên lý toàn hệ thống. Đưa ra lưu đồ giải thuật cho ứng dụng và chương trình xử lý. o Chương 5: Kết quả so sánh, thực nghiệm, phân tích, tổng hợp.
Chương này đưa ra các kết quả kiểm ra thực tế vào nhiều thời điểm trong ngày hoặc hoạt động trong các môi trường khác nhau. 2 do an ĐỒ ÁN TỐT NGHIỆP o Chương 6: Kết luận và hướng phát triển. Chương này sẽ đưa ra các kết quả đạt được sau khi thực hiện đồ án, các hướng phát triển và mở rộng đồ án cho nhu cầu sau này. 3 do an ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT 2.
Giới thiệu về module RASPBERRY PI Hiện nay, trên thế giới nói chung và đối với Việt Nam nói riêng, có rất nhiều KIT điện tử được sử dụng phổ biến như Raspberry Pi, Arduino, STM32F103, … Trong đó, Raspberry Pi và Arduino là hai KIT được sử dụng phổ biến nhất với giá thành vừa phải và có thể đáp ứng được hầu hết các yêu cầu đặt ra cho việc thực hiện các đề tài điều khiển các thiết bị và truyền thông tin qua internet. Arduino thường áp dụng với hệ thống linh hoạt với khả năng giao tiếp với các thiết bị, đồng thời cũng là hệ thống để học cho người mới bắt đầu và cho các dự án quy mô nhỏ. Raspberry Pi là một máy tính nhúng có thể làm hầu hết mọi ứng dụng hằng ngày như đọc báo, giải trí, xem phim, học lập trình, hoặc thực hiện các dự án lớn như nhà thông minh, điều khiển Robot, …. Raspberry Pi chạy trên nền tảng hệ điều hành Linux, có các GPIO giúp ta có thể kết nối và điều khiển các thiết bị khác như đèn, camera, ….
Với các ưu điểm và tính năng nổi trội nêu trên, Raspberry Pi đã trở thành thiết bị được sử dụng phổ biến nhất cho các dự án lập trình. Đó là cũng là lý do để nhóm nghiên cứu để thực hiện đề tài “THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GƯƠNG THÔNG MINH (SMART MIRROR)”. Giới thiệu về bo mạch RASPBERRY PI 3 Raspberry Pi 3 là chiếc máy tính giá khoảng 35USD với kích cỡ như một chiếc Iphone và chạy hệ điều hành 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 _một tổ chức phi lợi nhuận với mục đích là 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 khác nhau.
Hình 2-1: Kit Raspberry Pi 3 4 do an ĐỒ ÁN TỐT NGHIỆP Raspberry Pi 3 sản xuất bởi 3 OEM: Sony, Qsida, Egoman. Và được phân phối chính thức bởi Element14, RS Components và Egoman. Nhiệm vụ của dự án là tạo ra máy tính giá thành rẻ có khả năng lập trình cho sinh viên, nhưng Raspberry Pi 3 đã nhận được sự quan tâm từ nhiều đối tượng khác nhau. Đặc tính của Raspberry Pi 3 xây dựng quanh bộ xử lí SoC Broadcom BCM (thường được dùng trong điện thoại di động) bao gồm CPU, GPU, bộ xử lý âm thanh/video và các tính năng đa dạng khác nhau … đều được tích hợp trong chip có điện năng thấp này.
Nhưng Raspberry Pi 3 không thể thay thế hoàn toàn một hệ thống máy để bàn hoặc máy tính xách tay. Không thể chạy hệ điều hành Windows trên Raspberry Pi vì BCM dựa trên cấu trúc ARM không hỗ trợ mã x86/x64, nhưng có thể chạy bằng Linux với các tiện ích như lướt web, môi trường Desktop và các nhiệm vụ cơ bản khác. Tuy nhiên Raspberry Pi 3 vẫn là một thiết bị đa năng có giá thành rẻ nhưng rất hoàn hảo cho những hệ thống điện tử, dự án DIY hoặc hệ thống tính toán cho những bài học trải nghiệm lập trình. Hình 2-2: Kết nối chân Raspberry Pi 3 2.
Cấu hình RASPBERRY PI 3 Phiên bản Raspberry Pi đầu tiên được phát hành tháng 2 năm 2012, tới nay đã có nhiều phiên bản khác nhau, với sự nâng cấp của phần cứng, cũng như phần mềm để hướng tới những mục tiêu khác nhau. 5 do an ĐỒ ÁN TỐT NGHIỆP Bảng 2-1: Cấu hình phần cứng Raspberry Pi 3 STT Chức năng Phần cứng 1 CPU Broadcom BCM 2837 64bit ARMv8 Cortex A53 Quad Core , tốc độ 1.5GH 2 RAM 1GB LPDDR2 ( 900 MHz ) 3 GPU Broadcom Video Core IV 3D 4 Bộ nhớ Thẻ micro SD 5 Kết nối Wifi : hỗ trợ chuẩn 802.0, ngõ ra HDMI , ngõ ra RCA, 1 audio 3.5mm, camera serial Interface (CSI) 40 GPIO , 2 SPI BUS 6 Nguồn 5V qua cổng Micro USB – dòng 2500mA 12.5W Raspberry Pi 3 cung cấp cho người lập trình 40 cổng GPIO, giao tiếp SPI, I2C, Serial. Các cổng GPIO được sử dụng để xuất/ nhận giá trị 0/1 ra/vào từ bên ngoài. Giao tiếp I2C, SPI, Serial được dùng để kết nối trực tiếp với các thiết bị khác.
Hình 2-3: Sơ đồ chân GPIO của Raspberry Pi 3 6 do an ĐỒ ÁN TỐT NGHIỆP Bảng 2-2: Thứ tự tên chân GPIO của Raspberry Pi 3 Pin Tên chân 1 3.3v DC Power 2 5v DC Power 3 GPI002 (SDA1, PC) 4 5v DC Power 5 GPI003 (SCL1, I2C) 6 Ground 7 GPI004 (GPIO_GCLK) 8 (TXDO) GPI014 9 Ground 10 (RXDO)GPI015 11 GPI017 (GPIO_GENO) 12 (GPI0_GEN1) GPI018 13 GPI027 (GPIO_GEN2) 14 Ground 15 GPI022 (GPIO_GEN3) 16 (GPIO_GEN4) GPI023 17 3.3vDCPower 18 (GPIO_GEN5) GPI024 19 GPIOIO (SPI_MOSI) 20 Ground 21 GPI009 (SPI_MISO) 22 (GPIO_GEN6) GPI025 23 GPIO11 (SPI_CLK) 24 (SPI_CE0_N) GPI008 25 Ground 26 (SPI_CE1_N) GPI007 27 ID_SD (I2C ID EEPROM) 28 (PC I2C EEPROM) ID_SC 29 GPI005 30 Ground 31 GPI006 32 GPI012 33 GPI013 34 Ground 35 GPI019 36 GPI016 37 GPI026 38 GPI020 39 Ground 40 GPI021 7 do an ĐỒ ÁN TỐT NGHIỆP Hình 2-4: Kết nối Raspberry Pi 3 với các thiết bị cần thiết 2. Phần mềm Trình quản lý cài đặt cho Raspberry Pi là NOOBS gồm các hệ điều hành đi kèm với đó là: o Puppy Linux. o RISC OS – là hệ điều hành của máy tính dựa trên nền tảng ARM đầu tiên. o Raspbian – được bảo trì độc lập bởi Foundation dựa trên cổng kiến trúc Debian ARM được thiết kế ban đầu cho ARMv7, biên dịch các tập lệnh hạn chế hơn ARMv6 của Raspberry Pi 1.
Thẻ nhớ có kích thước tối thiểu 8 GB là cần thiết cho các Raspbian image được cung cấp bởi Raspberry Pi Foundation. o Raspbian for Robots – một biến thể của Raspbian dành cho các dự án robot với Grove, Arduino. Trong các hệ điều hành nêu trên, Raspbian xem là hệ điều hành chính thức của Raspberry, được dùng phổ biến nhất hiện nay. Tổng quan thư viện NODE.js là một hệ thống phần mềm được thiết kế để viết các ứng dụng internet có khả năng mở rộng, đặc biệt là máy chủ Web.
Chương trình được viết bằng JavaScript, sử dụng kỹ thuật điều khiển theo sự kiện, nhập/xuất không đồng bộ để tối thiểu chi phí và tối đại khả năng mở rộng.js gồm có V8 JavaScript engine của Google và một số thư viện khác. Đặc điểm của thư viện NODE.JS o Không đồng bộ và Phát sinh sự kiện (Event Driven): Tất các các APIs của thư viện Node.js đều không đồng bộ, nghĩa là không blocking (khóa). Nó rất cần thiết vì Node.js không bao giờ đợi một API trả về dự liệu. Server chuyển sang 8 do an ĐỒ ÁN TỐT NGHIỆP một API sau khi gọi nó và có cơ chế thông báo về sự kiện của Node.js giúp Server nhận đựa phản hồi từ các API gọi trước đó.
o Chạy rất nhanh: Dựa trên V8 Javascript Engine của Google Chrome, thư viện Node.js giúp tối ưu được code hơn các nền tảng khác. o Các tiến trình đơn giản nhưng hiệu năng cao: Node.js sử dụng một mô hình luồng đơn (single thread) với các sự kiện lặp. Các cơ chế sự kiện giúp Server trả lại các phản hồi với một cách không khóa và tạo cho Server hiệu quả cao ngược lại với các cách truyền thống tạo ra một số lượng luồng hữu hạn để quản lý yêu cầu.js sử dụng các chương trình luồng đơn và các chương trình này cung cấp các dịch vụ cho số lượng yêu cầu nhiều hơn so với các Server truyền thống như Apache HTTP Server. o Không có bộ nhớ đệm: Ứng dụng Node.js không lưu trữ các dữ liệu buffer.
o Có giấy phép: Node.js được phát hành dựa vào MIT License. Các lĩnh vực Node.js được sử dụng phổ biến: o Các ứng dụng về I/O. o Các ứng dụng về luồng dữ liệu. o Các ứng dụng dựa vào JSON APIs.
o Các ứng dụng Single Page Application. Tổng quan thư viện Angular.Js Thư viện Angular.Js là một web framework JavaScript được phát triển bởi Google để giải quyết các vấn đề gặp phải trong việc phát triển ứng dụng đơn trang - Single Page Application (SPA).Js cho phép sử dụng HTML như là ngôn ngữ mẫu và có thể mở rộng cú pháp của HTML để diễn đạt các thành phần ứng dụng. Hai tính năng cốt lỗi: Data binding và Dependency injection. Đặc trưng của Angular.Js o Phát triển dựa trên Javascript.
o Tạo các ứng dụng client-side theo mô hình MVC. o Khả năng tương thích cao, tự động xử lý mã Javascript để phù hợp với mỗi trình duyệt. o Mã nguồn mở, miễn phí hoàn toàn và được sử dụng rộng rãi. 9 do an ĐỒ ÁN TỐT NGHIỆP 2.
Các tính năng cơ bản của Angular.Js o Scope: là đối tượng có nhiệm vụ giao tiếp giữa controller và view của ứng dụng. o Controller: xử lí dữ liệu cho đối tượng $scope, từ đây bên views sẽ sử dụng các dữ liệu trong scope để hiển thị ra tương ứng. o Data-binding: tự động đồng bộ dữ liệu giữa model và view. o Service: là singleton object được khởi tạo 1 lần duy nhất cho mỗi ứng dụng, cung cấp các phương thức lưu trữ dữ liệu có sẵn ($http, $httpBackend, $sce, $controller, $document, $compile, $parse, $rootElement, $rootScope ….
o Filter: Lọc các tập con từ tập item trong các mảng và trả về các mảng mới.