Tải bản đầy đủ (.docx) (70 trang)

BÁO CÁO XE TỰ TRÁNH VẬT CẢN (ĐATN)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.28 MB, 70 trang )

PHẦN I
GIỚI THIỆU
TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC
KHOA ĐIỆN-ĐIỆN TỬ
Tp. HCM, ngày tháng năm 2014
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Phạm Hoàng Anh MSSV: 12341005
Trần Hoàng Đạt MSSV: 12341026
Chuyên ngành: CNKT Điện Tử và Truyền Thông
Hệ đào tạo: Đại học chính quy
Khóa: 2012 Lớp: 123411
1
I. TÊN ĐỀ TÀI: THIẾT KẾ XE TỰ TRÁNH VẬT CẢN
TRÊN NỀN BOARD RASPBERRY PI
II. NHIỆM VỤ
1. Các yêu cầu thực hiện, thông số của đề tài:





2. Các vấn đề tồn tại của ĐATN có liên quan đã thực hiện ở các khóa trước:



3. ĐATN giải quyết được vấn đề gì, tính mới, tính cải tiến, tính tối ưu:






4. Kết quả đạt được của ĐATN sau khi thực hiện:




2
2

III. NGÀY GIAO NHIỆM VỤ: 10/10/2013
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2014
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Ths. Đậu Trọng Hiển
CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP
Ths. Đậu Trọng Hiển THS.GV. NGUYỄN ĐÌNH PHÚ
TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Khoa Điện - Điện Tử Độc lập - Tự do - Hạnh phúc
Bộ Môn Điện Tử Viễn Thông
Tp. Hồ Chí Minh, ngày tháng năm 2014
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên 1: Trần Hoàng Đạt
Lớp: 123411C MSSV: 12341026
Họ tên sinh viên 2: Phạm Hoàng Anh
Lớp: 123411B MSSV: 12341005
Tên đề tài: THIẾT KẾ XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARD
RASPBERRY PI
Tuần/ngày Nội dung
Xác nhận
GVHD
3

3
GV HƯỚNG DẪN
(Ký và ghi rõ họ và tên)
Ths. Đậu Trọng Hiển
Trường ĐH Sư Phạm Kỹ Thuật
Khoa Điện – Điện Tử
BM Điện Tử Công Nghiệp
PHIẾU CHẤM ĐỒ ÁN TỐT NGHIỆP
(Dành cho cán bộ hướng dẫn)
Ngày tháng năm 2014
1. Tên đề tài tốt nghiệp:
THIẾT KẾ XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARD RASPBERRY PI
2. Cán bộ hướng dẫn:
GV.Ths. Đậu Trọng Hiển
3. Nhận xét: ……………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
………………………………………………………………………………………
…………………………………………………………………………………………
………………………………………………………………………………………
4
4
…………………………………………………………………………………………
…………………………………………………………………………………………
4. Đề nghị : Được bảo vệ:  Bổ sung để được bảo vệ:  Không được bảo
vệ:

5. Các câu hỏi sinh viên phải trả lời trước hội đồng : (dành cho cán bộ phản biện)
Câu 1:.


Câu 2:.


6. Đánh giá chung (bằng chữ: giỏi, khá, TB, yếu): ………………… Điểm:
……/10.
7. Xin mời GV hướng dẫn và GV phản biện tham gia hội đồng bảo vệ của thư
mời đính kèm.
Cán bộ hướng dẫn
GV.Ths. Đậu Trọng Hiển
Trường ĐH Sư Phạm Kỹ Thuật
Khoa Điện – Điện Tử
BM Điện Tử Công Nghiệp
PHIẾU CHẤM ĐỒ ÁN TỐT NGHIỆP
(Dành cho cán bộ phản biện)
Ngày tháng năm 2014
1. Tên đề tài tốt nghiệp:
THIẾT KẾ XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARD RASPBERRY PI
2. Cán bộ phản biện:
GV.Ths. Lê Minh Thành
3. Nhận xét: ………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………

…………………………………………………………………………………………
…………………………………………………………………………………………
5
5
…………………………………………………………………………………………
………………………………………………………………………………………. .
………………………………………………………………………………………. .
4. Đề nghị : Được bảo vệ:  Bổ sung để được bảo vệ:  Không được bảo
vệ:
5. Các câu hỏi sinh viên phải trả lời trước hội đồng : (dành cho cán bộ phản biện)
Câu 1:.


Câu 2:.


6. Đánh giá chung (bằng chữ: giỏi, khá, TB, yếu): ………………… Điểm:
……/10.
Cán bộ phản biện
GV.Ths. Lê Minh Thành
LỜI MỞ ĐẦU
Cùng với sự tiến bộ của khoa học và công nghệ, các thiết bị điện tử đang và sẽ
tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả cao trong hầu hết các
lĩnh vực kinh tế kỹ thuật cũng như đời sống xã hội.
Raspberry Pi là cái máy tính giá 35USD kích cỡ như iPhone 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.

6
6
Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả năng
lập trình cho những sinh viên, nhưng Pi đã được sự quan tầm từ nhiều đối tượng khác
nhau. Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC Broadcom
BCM2835 ( là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay đượ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 khác
… tất cả được tích hợp bên trong chip có điện năng thấp này. Raspberry Pi là một thiết
bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hoàn hảo
cho những hệ thống điện tử, những dự án DIY, thiết lập hệ thống tính toán rẻ tiền cho
những bài học trải nghiệm lập trình.
Quyển đồ án này giúp người đọc nắm bắt được phần cứng của Board Raspberry
Pi, có cái nhìn tổng quan về ngôn ngữ lập trình Python. Bên cạnh đó nhóm thực hiện
đề tài còn hướng dẫn giúp người đọc có thể thực hành ngôn ngữ lập trình Python để
khai thác những tài nguyên sẵn có trên Board Raspberry Pi qua hệ điều hành Raspbian.
Quyển đồ án này bao gồm 3 phần:
∗ Phần I: Giới thiệu
∗ Phần II: Nội dung
∗ Phần III: Phụ lục
Mặc dù nhóm thực hiện đề tài đã hoàn thiện được quyển đồ án và mô hình xe tự tránh
vật cản, nhưng do còn hạn chế về kiến thức nên chắc chắn còn thiếu sót. Nhóm thực
hiện đề tài mong nhận nhận được sự đóng góp ý kiến của quý thầy cô cùng các bạn
sinh viên.
Người thực hiện đề tài
Phạm Hoàng Anh Trần Hoàng Đạt
LỜI CẢM ƠN
7
7
Nhóm thực hiện đề tài xin chân thành cảm ơn Thầy Đậu Trọng Hiển đã tận
tình hướng dẫn, chỉ bảo, kinh nghiệm quý báu cũng như hỗ trợ phương tiện vật tư

trong suốt quá trình tìm hiểu, nghiên cứu đề tài.
Đồng thời cũng chúng em xin cảm ơn các thầy cô trong Khoa Điện - Điện Tử
đã tạo điều kiện, cung cấp cho nhóm những kiến thức cơ bản, cần thiết để chúng em có
điều kiện và đủ kiến thức để thực hiện quá trình nghiên cứu
Đồng thời, nhóm cũng xin cám ơn các thành viên trong lớp 12341 đã có những
ý kiến đóng góp, bổ sung, giúp nhóm hoàn thành tốt đề tài.
Ngoài ra, nhóm cũng đã nhận được sự chỉ bảo của các anh (chị) đi trước. Các
anh (chị) cũng đã hướng dẫn và giới thiệu tài liệu tham khảo thêm trong việc thực hiện
nghiên cứu.
Trân trọng
Nhóm thực hiện đồ án
Phạm Hoàng Anh Trần Hoàng Đạt
8
8
MỤC LỤC
LIỆT KÊ HÌNH – BẢNG
PHẦN II
NỘI DUNG
ĐỒ ÁN TỐT NGHIỆP 9
ĐỒ ÁN TỐT NGHIỆP 10
CHƯƠNG I
CHƯƠNG I
DẪN NHẬP
1.1 ĐẶT VẤN ĐỀ:
Tự tránh vật cản là một khoa học dẫn hướng xe di chuyển trong không gian làm
việc của nó (đất, nước, không khí ). Trong vấn đề tránh vật cản, bài toán được quan
tâm nhiều nhất là tìm đường về đích mà không chạm vật cản trên đường đi. Môi
trường làm việc của xe hoàn toàn không được biết trước hoặc chỉ biết được một phần,
xe hoàn toàn phải nhờ vào sự cảm nhận môi trường thông qua cảm biến gắn trên nó để
dò đường và tìm ra hướng đi thích hợp nhất để đi. Tuy vậy nó có hạn chế là đòi hỏi

nhiều lệnh tính toán và bộ nhớ, và đặc biệt tình huống xấu có thể xảy ra nếu bản đồ
môi trường làm việc không thích hợp đối với cảm biến gây ra nhiễu cảm biến. Trong
khi đó, xe tự dò đường chỉ biết được thông tin xung quanh qua sensor cảm nhận môi
trường gắn cùng.
Vì thế, xe tự dò đường có thể không hoàn thành việc tới đích (mặc dù thực tế có
đường đi tới đích), khái niệm tối ưu không có ý nghĩa trong bài toán này. Tuy nhiên,
yêu cầu tính toán, dung lượng nhớ thấp cùng tính linh hoạt cao (như tránh được vật
cản ngay cả khi vật đó di động) khiến vấn đề tự động né tránh và tìm kiếm hướng đi
thích hợp là cấp thiết hơn bao giờ hết.

1.2 LÝ DO CHỌN ĐỀ TÀI
Ngày nay với sự phát triển của Khoa Học Kỹ Thuật các thiết bị ngày càng được
thu nhỏ về kích thước nhưng vẫn đáp ứng tốt được các yêu cầu cần có. Raspberry Pi là
một ví dụ điển hình, với kích thước chỉ bằng một chiếc Iphone nhưng nó có quá nhiều
tính năng cực kỳ hấp dẫn hơn thế nữa nó là một chiếc máy tính. Raspberry Pi khác với
các máy tính ở chổ là nó có tích hợp thêm một hệ thống IO giúp cho người sử dụng có
ĐỒ ÁN TỐT NGHIỆP 11
CHƯƠNG I
thể thỏa sức sáng tạo và phát triển các ứng dụng trên nền Raspberry Pi này. Board
Raspberry Pi có giá thành cực kỳ rẽ ( khoảng 35 USD) với bộ vi xử lý SoC Broadcom
BCM2835 ( là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay đượ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 khác
… tất cả được tích hợp bên trong chip có điện năng thấp này.
Với một kích thước cực kỳ nhỏ bé so với các máy tính khác và những tính năng
cực kỳ nỗi trội Board Raspberry Pi là lựa chọn hàng đầu để nhóm nghiên cứu và phát
triển đồ án “ THIẾT KẾ XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARD
RASPBERRY PI”.
1.3 ĐỐI TƯỢNG NGHIÊN CỨU
Board Raspberry Pi.
Ngôn ngữ lập trình Python.

Cảm biến siêu âm SRF-04.
Motor servo mini tower sg90.
1.4 GIỚI HẠN ĐỀ TÀI
Nghiên cứu phần cứng của Board Raspberry Pi, thiết kế đơn giản khoảng cách
phát hiện vật cản tối đa 30cm, xe chỉ là một mô hình đơn giản, nhỏ, mang tính chất thí
nghiệm, chưa có nhiều tính năng phức tạp. Vật cản là những vật không có tính chất
hấp thụ hay phản xạ sóng siêu âm.
Hệ thống chỉ được điều khiển tự động thông qua sóng Wifi cho nên hạn chế về
khoảng cách. Chưa có giao diện trực quan mà mọi việc hoạt động chỉ trên Terminal.
1.5 DÀN Ý NGHIÊN CỨU
1.5.1 Board Raspberry Pi
− Tổng quan về Board Raspberry Pi.
− Thông số kỹ thuật của Board Raspberry Pi.
− So sánh đặc tính của Board Raspberry Pi so với các Board nhúng khác.
− Các kết nối của Raspberry Pi.
1.5.2 Thiết kế XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARD RASPBERRY PI
− Tìm hiểu thiết kế các “xe tự tránh vật cản”.
− Giới thiệu các linh kiện được sử dụng.
ĐỒ ÁN TỐT NGHIỆP 12
CHƯƠNG I
− Phân tích thiết kế cho các Module .
− Tổng hợp các Module riêng biệt thành một hệ thống “xe tự tránh vật cản” hoàn
chỉnh.
− Lập trình ứng dụng cho một số module được thiết kế.
1.6 TÌNH HÌNH NGHIÊN CỨU
Vào thời điểm hiện nay các board linux đã trở nên phổ biến và được sản xuất
nhiều hơn. Có thể kể đến các board: BeagleBone, Arduino Yún, DigiX, UDOO,
pcDuino Sử dụng nhiều loại chip khác nhau và tất nhiên đều có thể chạy được linux.
Có những sản phẩm được hậu thuẫn và PR tốt như BeagleBone (của Texas
Instruments) với cấu hình mạnh hơn (on-board Flash lưu trữ hệ điều hành, chip ARM

Cortex-A8) nhưng vẫn chưa có sức lan toả như RPi. Điều gì khiến cho Raspberry trở
thành 1 hiện tượng.
Để Rasberry hoạt động được bạn chỉ cần cắm nguồn, bàn phím, màn hình. Thực
sự rất đơn giản. Sức mạnh của Linux không đến từ cấu hình mà đến từ phần mềm và
cộng đồng của nó.
Để hệ điều hành chạy được trên 1 (hoặc nhiều) nền tảng phần cứng khác nhau,
lập trình viên cần phải biên dịch nhân hệ điều hành (kernel) tương thích cho phần cứng
đó và các thiết bị ngoại vi khác.
Raspberry làm rất tốt việc này vì khả năng tương thích với nhiều loại USB,
mouse, keyboard, webcam, USB 3G, wifi usb Bạn hoàn toàn có thể gặp trường hợp
1 webcam chạy tốt trên desktop Linux 32bit nhưng lại không hoạt động được với 1
board linux.
Raspberry đã có sự lựa chọn đúng đắn khi phát triển kernel tương thích cho
Debian (Ubuntu là 1 nhánh dựa trên Debian), Arch Linux và Fedora. Đây là các hệ
điều hành Linux cực kì phổ biến, dễ tìm hiểu, có sẵn cộng động sử dụng và phát triển.
Điều này giúp việc sửa lỗi nhanh hơn, cũng như việc tìm kiếm giải pháp cho
việc cài đặt gói của người dùng dễ dàng hơn. Người dùng mới dùng Raspian, Pidora;
người dùng có kinh nghiệm hơn có thể dùng Arch Linux Họ thực hiện các ý tưởng
ĐỒ ÁN TỐT NGHIỆP 13
CHƯƠNG I
của mình với 1 board mạch giá rẻ, chỉ có 35USD. Hàng loạt sản phẩm DIY dùng
Raspberry Pi ra đời, và nhờ đó Raspberry lại càng phổ biến hơn.
1.7 Ý NGHĨA THỰC TIỄN
Xe tự tránh vật cản là một chiếc xe thông minh. Nó sẽ tự phát hiện vật cản và tự
động né tránh vật cản trước nó và đưa ra hướng đi thích hợp (thông thoáng không có
vật cản) mà không cần một tác động vật lý hay tác động khác nào. Giúp xe đi đến
những nơi nguy hiểm để thực hiện một tác vụ quan trọng nào đó mà con người không
thể đi đến đó được nhằm mục đích bảo vệ con người an toàn, nâng cao chất lượng của
công việc
Ngoài ra xe còn có tác dụng phòng tránh những hiểm họa xảy ra trong việc

người điều khiển nhất thời không thể điều khiển xe đến một vị trí an toàn thì hệ thống
sẽ tự động điền khiển xe đến vị trí an toàn đó.
ĐỒ ÁN TỐT NGHIỆP 14
CHƯƠNG II
CHƯƠNG II
RASPBERRY PI
2.1 Giới thiệu về Board Raspberry Pi:
Hình 0.1 Board Raspberry Pi.
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)
ĐỒ ÁN TỐT NGHIỆP 15
CHƯƠNG II
Hình 0.2 Những thông số sơ lược về Raspberry Pi B v2.
2.2 Cấu hình của Raspberry Pi:
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 B v1: Broadcom BCM2835 với 256MB RAM.

• Raspberry Pi model B v2: Broadcom BCM2835 với 512MB RAM.
• Raspberry Pi model A: Broadcom BCM2835 với 256MB RAM.
Bởi vì 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.
ĐỒ ÁN TỐT NGHIỆP 16
CHƯƠNG II
ARM dẫn đầu trong mảng thiết bị di động. Lấy ví dụ như chip ARM trên
Raspberry Pi: toàn bộ mạch hoạt động với nguồn 5V, 700mA tức là chỉ tiêu hao 3.5W
mỗi giờ trong khi một laptop cũng ngốn ít nhất vài chục Watt. Thiết kế này bảo đảm
Raspberry Pi hoạt động với sức mạnh vừa phải trong khi vẫn giữ được hình dáng nhỏ
gọn do không cần quạt tản nhiệt và do đó, ARM có mặt trong hầu hết điện thoại di
động thời nay.
Ngoài ra chip BCM2835 dùng thế hệ ARM11 thuộc phiên bản ARMv6.
ARMv6 hoạt động hiệu quả và tiết kiệm năng lượng nhưng mặc định lại không tương
thích phần mềm với thế hệ ARMv7. Tuy nhiên, điều này có thể giải quyết bằng cách
convert phần mềm để đạt sự tương thích. Nói như vậy không có nghĩa là lập trình
Raspberry Pi sẽ gặp nhiều khó khăn. Ngược lại, cộng đồng Raspberry Pi phát triển rất
nhanh trên thế giới là nguồn tài nguyên còn phong phú hơn nhiều: hàng loạt dự án,
phần mềm được phát triển cho Pi sẽ làm bạn hài lò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.
Raspberry là một máy tính, để máy tính này hoạt động bạn cần cài đặt hệ điều
hành. Trong thế giới nguồn mở linux, có rất nhiều phiên bản hệ điều hành tùy biến
(distro) khác nhau. Tùy theo nhu cầu và mục đích, cũng như khả năng học hỏi mà bạn
sẽ sử dụng distro phù hợp với mình.
Ứng dụng của 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
2.3 Kết nối của Raspberry Pi:
ĐỒ ÁN TỐT NGHIỆP 17
CHƯƠNG II
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.
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,

2 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.
ĐỒ ÁN TỐT NGHIỆP 18
CHƯƠNG II
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.5mm.
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.
Raspberry Pi v1 GPIO
Raspberry Pi v2 GPIO
Hình 0.3 Sơ đồ các chân GPIO của board RPi.
ĐỒ ÁN TỐT NGHIỆP 19
CHƯƠNG II
Hình 0.4 Raspberry Pi và các thiết bị kết nối với nó.
2.4 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.
ĐỒ ÁN TỐT NGHIỆP 20
CHƯƠNG II

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.
ĐỒ ÁN TỐT NGHIỆP 21
CHƯƠNG III
CHƯƠNG III
NGÔN NGỮ LẬP TRÌNH PYTHON
3.1 Python là gì?
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.
3.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:
ĐỒ ÁN TỐT NGHIỆP 22
CHƯƠNG III
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.
and
assert
break
class
continue
def
− 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ó. 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.
Ví dụ, giả sử có đoạn mã sau trong C/C++:
1.
#include <math.h>
2.
//
3.
delta = b * b – 4 * a * c;
4.
if (delta > 0)

5.
{
6.
// Khối lệnh mới bắt đầu từ kí tự { đến }
ĐỒ ÁN TỐT NGHIỆP 23
CHƯƠNG III
7.
8.
x1 = (- b + sqrt(delta)) / (2 * a);
9.
10.
x2 = (- b - sqrt(delta)) / (2 * a);
11.
12.
printf("Phuong trinh co hai nghiem phan biet:\n");
13.
14.
printf("x1 = %f; x2 = %f", x1, x2);
15.
}
16.
Đoạn mã trên có thể được viết lại bằng Python như sau:
1.
import math
2.
#
3.
delta = b * b – 4 * a * c
4.
if delta > 0:

5.
# Khối lệnh mới, thụt vào đầu dòng
6.
x1 = (- b + math.sqrt(delta)) / (2 * a)
7.
x2 = (- b – math.sqrt(delta)) / (2 * a)
8.
print "Phuong trinh co hai nghiem phan biet:"
9.
print "x1 = ", x1, "; ", "x2 = ", x2
10.
− Khả năng mở rộng:
ĐỒ ÁN TỐT NGHIỆP 24
CHƯƠNG III
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
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. Đặ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.
− 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ũng như các ngôn ngữ khác, Python
cũng có các cấu trúc điều khiển. Chúng bao gồm:
Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else ), dùng để
thực thi có điều kiện một khối mã cụ thể.
ĐỒ ÁN TỐT NGHIỆP 25

×