đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nôi dung nghiên cứu, các giới hạn thông số và bố cục đồ án. Chương 2: CƠ SỞ LÝ THUYẾT Nội dung chương này trình bày giới thiệu nội dung chính của các linh kiện, module, phần mềm được sử dụng trong đề tài. Chương 3: THIẾT KẾ VÀ TÍNH TOÁN Chương này trình bày thiết kế phần cứng, yêu cầu phần mềm, thiết kế sơ đồ khối và sơ đồ nguyên lý của đề tài. Chương 4: THI CÔNG HỆ THỐNG Chương này trình bày việc lập trình hệ nội dung của đề tài bao gồm lưu đồ giải thuật, chương trình, phần mềm và ngôn ngữ lập trình của đề tài.
Chương 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ Chương này trình bày kết quả thi công đề tài và đưa ra nhận xét và đánh giá. Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Nội dung trình bày kết luận và hướng phát triển của đề tài. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2: CƠ SỞ LÝ THUYẾT Vấn đề đặt ra của đề tài là xe tự hành sử dụng kit Raspberry, ngôn ngữ lập trình thông dụng dễ dàng sử dụng và hỗ trợ đầy đủ trên kit là ngôn ngữ Python.1 Giới thiệu về board Raspberry Pi Raspberry Pi là một chiếc máy tính tí hon 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. 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. Người dùng chỉ cần 1 bàn phím, 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. Rpi có thể chạy các ứng dụng văn phòng, nghe nhạc, xem phim độ nét cao.
Board Raspberry Pi B+ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3 do an CHƯƠNG 2.2 Cấu hình của Raspberry Pi [1] Trái tim của Pi là vi xử lý Broadcom BCM2835 chạy ở tốc độ 700mHz. Đây là vi xử lý SoC (system-on-chip) tức là hầu hết mọi thành phần của hệ thống gồm CPU, GPU cũng như audio, communication chip đều được tích hợp trong một. Chip SoC này nằm ngay bên dưới chip memory Hynix 512 MB màu đen ở giữa board. Tùy theo model mà Raspberry sử dụng chip khác nhau: Raspberry Pi model A: Broadcom BCM2835 với 256MB RAM.
Raspberry Pi model B v1: Broadcom BCM2835 với 256MB RAM. Raspberry Pi model B v2: Broadcom BCM2835 với 512MB RAM. RAM được tích hợp sẵn trong đế chip nên bạn không thể nâng cấp RAM cho Pi. CPU BMC2835 sử dụng nhân ARM1176JZFS (ARM11) cho hiệu năng cao và giá thành thấp.
SoC này khác với CPU ở trong PC thông thường ở chỗ nó được chế tạo dựa trên kiến trúc tập lệnh (Instruction Set Architect – ISA) là ARM chứ không phải kiến trúc x86 như của Intel. ARM có ISA dạng rút gọn RISC và tiêu thụ điện năng rất thấp nên phù hợp với thiết bị di động. Cắm RPi vào cổng USB của máy tính có thể cấp nguồn cho pi hoạt động ở mức bình thường, không sử dụng các kết nối internet như LAN và wifi. Rpi có nhiều ứng dụng từ đơn giản đến phức tạp có thể kể đến như: dùng RPI làm trung tâm giải trí đa phương tiện, internet tv, ổ đĩa sao lưu dự phòng trên mạng nội bộ, kết hợp với webcam làm hệ thống phát hiện chuyển động, nhận diện khuôn mặt, điều khiển robot, nhận và gửi tin nhắn gsm với usb 3g, điều khiển tắt/mở đèn trong nhà, và còn rất nhiều ứng dụng khác.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2. Những thông số sơ lược về Raspberry Pi B v2 2.3 Kết nối của Raspberry Pi B+ Khe cắm thẻ nhớ: sử dụng loại thẻ SD Card, đây là nơi lưu trữ hệ điều hành và tất cả các dữ liệu hoạt động của Raspberry Pi. Dung lượng của thẻ nhớ phải từ 2GB trở lên để đảm bảo cho hệ thống hoạt động tốt.
Micro USB Power: RPi có thể sử dụng đến 700mA tại mức áp 5V khi bạn sử dụng nhiều thiết bị USB và cổng LAN. Do đó để RPi hoạt động ổn định, chúng tôi khuyến cáo bạn sử dụng bộ nguồn USB 5V 1A. Ngoài việc cấp nguồn cho Pi thông qua cổng micro USB, bạn có thể cấp nguồn trực tiếp vào cổng GPIO (5V và Gnd). Nếu bạn không am hiểu về điện tử thì cách này không được khuyến cáo.
Điện áp quá mức 5V cấp trực tiếp vào GPIO có thể gây hư hỏng các thiết bị cắm vào cổng USB, chip quản lý USB và LAN. Tốt nhất nên sử dụng 1 nguồn switching chuyển về 5V hoặc sử dụng IC LM7805. TFT Touch Screen: nơi đây sẽ giúp cho bạn có thể kết nối Raspberry Pi với màn hình cảm ứng để hiển thị và sử dụng Raspberry một cách trực quan nhất. Chúng ta có thể thực hiện các tác vụ tương đương như khi sử dụng chuột và bàn phím.
Camera expansion: khe cắm này là để cắm modem camera vào Raspberry Pi. Khi sản xuất Raspberry Pi thì nhà sản xuất còn sản xuất thêm một modem camera 5MP nhưng người mua không được hỗ trợ mà phải mua thêm. Chúng ta có thể chụp hình, quay phim,. làm việc tất cả các tác vụ như trên một camera bình thường.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Cổng HDMI: cổng này dùng để kết nối với các thiết bị có hổ trợ chuẩn kết nối HDMI, nếu thiết bị của chúng ta không hổ trợ HDMI mà chỉ hổ trợ VGA thì chúng ta phải sử dụng một dây cáp chuyển đổi từ HDMI sang VGA. Thường thì cổng này dùng để kết nối ra màn hình, tivi, máy chiếu,. để hiển thị giao diện của hệ điều hành.
Cổng kết nối Ethenet: dùng để kết nối internet, mạng Lan, truy cập SSH. 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. STEREO AUDIO: dùng để kết nối với tai nghe, loa, và các thiết bị ân thanh có cổng Jack 3. TV: dùng để kết nối và phát tín hiệu hình ảnh lên Tivi.
GPIO: Raspberry Pi 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. Sơ đồ chân GPIO của Raspberry Pi Model B+ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6 do an CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT Hình 2. Raspberry Pi và các thiết bị kết nối với nó.4 Giới thiệu hệ điều hành cho kit Raspberry Sau phần giới thiệu Raspberry Pi và cấu tạo kế đến là 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. 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.
- 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. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT NGÔN NGỮ LẬP TRÌNH PYTHON 2.1 Khái niệm Python [4] 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à dung cơ chế cấp phát bộ nhớ tự động; do vậy nó tự tự như perl, ruby, scheme, smalltalk, và tcl.
Python được phát triển trong một dự án 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ữ 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, 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. Python, trái lại, 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ó và có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Khả năng mở rộng: Python có thể được mở rộng: nếu biết sử dụng C, người dùng 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.