Chương 1: Tổng quan. - Chương 2: Cơ sở lý thuyết. - Chương 3: Thiết kế phần cứng. - Chương 4: Thiết kế phần mềm.
- Chương 5: Kết quả thực nghiệm. - Chương 6: Kết luận và hướng phát triển. SVTH: TẠ MINH TRÍ 2 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN Chương 2 CƠ SỞ LÝ THUYẾT 2.
Raspberry Pi 3 Model B+ 2. Giới thiệu về Board Raspberry Pi 3 Model B+ Raspberry Pi là một chiếc máy tính tí hon giá chỉ từ 35$ chạy hệ điều hành Linux ra mắt vào tháng 2 năm 2012. Ban đầu Raspberry Pi được phát triển dựa trên ý tưởng tiến sĩ Eben Upton tại đại học Cambridge muốn tạo ra một chiếc máy tính giá rẻ để học sinh có thể dễ dàng tiếp cận và khám phá thế giới tin học. Dự định khiêm tốn của ông đến cuối đời là có thể bán được tổng cộng 1000 bo mạch cho các trường học.
Vậy thì điều gì đã làm nên thành công ngoài sức tưởng tượng của Raspberry Pi khi đã bán được hơn một triệu bo mạch chỉ trong vòng chưa đầy một năm. Raspberry Pi (RPi) là một máy tính siêu nhỏ, chỉ có kích thước như 1 chiếc thẻ ATM rút tiền. Bạn chỉ cần 1 bàn phím, 1 tivi hoặc 1 màn hình có cổng HDMI/DVI, 1 nguồn USB 5V và 1 dây micro USB là đã có thể sử dụng RPi như 1 máy tính bình thường. Với RPi, bạn có thể sử dụng các ứng dụng văn phòng, nghe nhạc, xem phim độ nét cao (tới 1024p).
Raspberry Pi 3 Model B+ là sản phẩm mới nhất trong gia đình Raspberry Pi, nổi bật với chip 4 nhân 64-bit có tốc độ 1.4GHz – nhanh nhất từ trước đến nay. Phiên bản này hỗ trợ Wifi Dual-band 2.4GHz và 5GHz, Bluetooth 4.2/Bluetooth Low Energy, cổng Ethernet tốc độ cao (300Mbps) và Power over Ethernet (PoE) thông qua PoE HAT. SVTH: TẠ MINH TRÍ 3 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN Hình 2.
Board Raspberry Pi 3 Model B+ Bên cạnh những thay đổi đó, kích thước bề ngoài cũng như phần mềm của Raspberry Pi 3 Model B+ vẫn được giữ nguyên, vì vậy hoàn toàn có thể sử dụng lại các phụ kiện cũ như vỏ, thẻ nhớ, adapter (nguồn điện) hoặc các phần mềm đang chạy trên Raspbian/Ubuntu hiện tại. Tuy nhiên, về hệ điều hành thì cần tải bản mới nhất để có thể hỗ trợ được bo mạch mới nhất này. SVTH: TẠ MINH TRÍ 4 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN 2.
Cấu hình của Board Raspberry Pi 3 B+. Vi xử lý: Broadcom BCM2837B0, quad-core A53 (ARMv8) 64-bit SoC @1. RAM: 1GB LPDDR2 SDRAM.4GHz and 5GHz IEEE 802.11 b/g/n/ac wireless LAN, Bluetooth 4.2, BLE, Gigabit Ethernet over USB 2. 4 cổng USB dùng để kết nối với chuột, bàn phím, usb, usb 3g, usb wifi và các thiết bị có hổ trợ cổng USB.
Những thông số sơ lược về Raspberry Pi 3 B+ Raspberry Pi 3 B+ cung cấp nhiều 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 SPI, I2C, Serial có thể được dùng để kết nối trực tiếp với các vi điều khiển khác. Đặc biệt phù hợp cho những ai cần điều khiển các thiết bị điện tử ngoại vi.
SVTH: TẠ MINH TRÍ 5 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN Hình 2. Raspberry Pi và các thiết bị kết nối với nó. - Video và âm thanh: 1 cổng full-sized HDMI, Cổng MIPI DSI Display, cổng MIPI CSI Camera, cổng stereo output và composite video 4 chân.264 encode (1080p30); OpenGL ES 1.
- Nguồn điện sử dụng: 5V/2.5A DC cổng microUSB, 5V DC trên chân GPIO, Power over Ethernet (PoE) (yêu cầu thêm PoE HAT). SVTH: TẠ MINH TRÍ 6 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN Hình 2. Sơ đồ các chân của board Raspberry Pi 3 B+ 2.
Giới thiệu hệ điều hành cho Raspberry Pi Sau phần giới thiệu Raspberry Pi và cấu tạo của nó, ta sang phần thực hành với Pi. Khác với vi điều khiển có thể chạy ngay sau khi load chương trình điều khiển, Pi cần có hệ điều hành để hoạt động. Đây cũng là ưu điểm của Pi vì nó cho phép người dùng tận dụng rất nhiều phần mềm và thiết bị ngoại vi để lập trình ứng dụng phức tạp một cách nhanh chóng. Các hệ điều hành hiện tại mà Raspberry Pi hỗ trợ: - NOOBS (New Out Of Box Software): đây là hệ điều hành cơ bản nhất của R- Pi, không hổ trợ giao diện mà chỉ dùng giao diện dòng lệnh.
- Raspbian: được tạo nên từ hệ điều hành Debian của linux chuyên dùng cho các dòng máy tính, có giao diện như 1 máy tính, hổ trợ cả về mạng, và giao tiếp vào ra. - Pidora: tạo nên từ phiên bản hệ điều hành Fedora của linux, cũng hổ trợ tốt về giao diện, mạng và giao tiếp vào ra. - RaspBMC: tạo ra để chuyên dùng giải trí, sử dụng giao diện XBMC media center, giao diện thường thấy trong các TIVI internet hiện nay. - OpenELEC: một phiên bản dùng giao diện XBMC Mediacenter khác, hổ trợ nhanh và thân thiện cho người sử dụng.
SVTH: TẠ MINH TRÍ 7 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN - RISC OS: phiên bản hệ điều hành rút gọn với tính năng hoạt động nhanh nhất trong các hệ điều hành. - Arch: phiên bản hệ điều hành phát triển riêng cho các dòng kít dùng chip ARM. Ngôn ngữ lập trình Python 2.
Giới thiệu 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 Rossumtrong 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. Đặc điểm của ngôn ngữ lập trình 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. Python có thể được mở rộng: chúng 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 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 đó. 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õ SVTH: TẠ MINH TRÍ 8 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN Enter, và kết quả thực thi sẽ được hiển thị ngay lập tức. Đặc điểm này rất hữu ích cho người mới học, giúp họ nghiên cứu tính năng của ngôn ngữ; hoặc để các lập trình viên chạy thử mã lệnh trong suốt quá trình phát triển phần mềm.
Ngoài ra, cũng có thể tận dụng đặc điểm này để thực hiện các phép tính như với máy tính bỏ túi. 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ự. 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),… 2. Cảm biến siêu âm HY-SRF05. Giới thiệu HY-SRF05. Cảm biến siêu âm HY-SRF05 được sử dụng để thu các thông tin về khoảng cách một cách khá chính xác trong dải từ 2cm đến 450cm.
Sensor này gồm bộ thu phát siêu âm tách biệt, sensor có 5 chân nối trong đó hai chân cho nguồn nuôi, hai chân còn lại một cho xung tín hiệu vào (Trigger Pulse Input), SRF05 có thêm 1 chân Out so với phiên bản cũ SRF04, theo nhà sản xuất thì có thể chỉ dùng chân này mà không cần đến chân trigger và echo, nó sẽ tự nhận và phản hồi lại xung luôn.5 Cảm biến siêu âm HY-SRF05. SVTH: TẠ MINH TRÍ 9 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN Hình 2. Sơ đồ nguyên lý cảm biến siêu âm HY-SRF05.
Thông số kỹ thuật. Điện áp hoạt động 5VDC Khoảng cách phát hiện 2cm – 450cm Độ chính xác ± 0.2cm Tín hiệu kích hoạt đầu vào: 10us xung TTL Tín hiệu đầu ra xung HIGH(5V) và LOW(0V) Kích thước 43mm x 20mm x 17mm Dòng tiêu thụ <2mA. Góc cảm biến <15 độ Tầng số sử dụng 40 Khz Bảng 2. Thông số kỹ thuật của cảm biến siêu âm HY- SRF05.
SVTH: TẠ MINH TRÍ 10 do an ĐỒ ÁN TỐT NGHIỆP GVHD: TS. TRƯƠNG NGỌC SƠN 2. Nguyên lý hoạt động. Ở chế độ 1: Tách biệt, kích hoạt và phản hồi.
- Để đo khoảng cách, ta phát 1 xung rất ngắn (5 microSeconds) từ chân TRIG.