Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn tóm tắt ngành kĩ thuật tự động hóa với đề tài: Xây dựng mạng truyền thông công nghiệp Modbus Rtu bằng ngôn ngữ Python trên máy tính nhúng Linux, cho các bạn làm luận văn tham khảo
Đồ Án Tốt Nghiệp Đại Học Hệ Chính Quy Tìm Hiểu Mạng Riêng Ảo Và Ứng Dụng.docsividocz
Luận văn Đồ Án Tốt Nghiệp Đại Học Hệ Chính Quy Tìm Hiểu Mạng Riêng Ảo Và Ứng Dụng.các bạn có thể tham khảo thêm nhiều tài liệu và luận văn ,bài mẫu điểm cao tại luanvanmaster.com
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn tóm tắt ngành kĩ thuật tự động hóa với đề tài: Xây dựng mạng truyền thông công nghiệp Modbus Rtu bằng ngôn ngữ Python trên máy tính nhúng Linux, cho các bạn làm luận văn tham khảo
Đồ Án Tốt Nghiệp Đại Học Hệ Chính Quy Tìm Hiểu Mạng Riêng Ảo Và Ứng Dụng.docsividocz
Luận văn Đồ Án Tốt Nghiệp Đại Học Hệ Chính Quy Tìm Hiểu Mạng Riêng Ảo Và Ứng Dụng.các bạn có thể tham khảo thêm nhiều tài liệu và luận văn ,bài mẫu điểm cao tại luanvanmaster.com
Similar to ĐỒ ÁN GƯƠNG THÔNG MINH BẬT TẮT THIẾT BỊ QUA WEBSERVER MINI (20)
Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...
ĐỒ ÁN GƯƠNG THÔNG MINH BẬT TẮT THIẾT BỊ QUA WEBSERVER MINI
1. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
KHOA KỸ THUẬT ĐIỆN TỬ 2
_____________
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
GƯƠNG THÔNG MINH BẬT TẮT THIẾT
BỊ QUA WEBSERVER MINI
Mã số đề tài: 18 – N13DCDT090
Sinh viên thực hiện: ĐẶNG TRANG NHẬT TẢO
MSSV: N13DCDT090
Lớp: D13CQKD02-N
Giáo viên hướng dẫn: TS. CHUNG TẤN LÂM
TP.HCM – 2017
2. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
MỤC LỤC
LỜI NÓI ĐẦU ............................................................................................................... 1
CHƯƠNG 1 : TỔNG QUAN VỀ ĐỒ ÁN ................................................................... 2
1. Tổng quan ............................................................................................................... 2
2. Nguyên lý ............................................................................................................... 2
3. Ứng dụng ................................................................................................................ 2
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG............. 3
1. RASPBERRY PI .................................................................................................... 3
1.1. Giới thiệu RASPBERRY PI............................................................................... 3
1.2. PHẦN CỨNG .................................................................................................... 4
1.3 HỆ ĐIỀU HÀNH ............................................................................................. 16
1.3.1. Cài đặt hệ điều hành Raspbian: ................................................................. 17
1.4 Python (ngôn ngữ lập trình): ............................................................................ 19
1.5 Các mô đun được sử dụng:............................................................................... 32
2. STM8S003F3P6 ................................................................................................... 34
2.1. Giới thiệu vi điều khiển STM8 ........................................................................ 34
2.2. Trình biên dịch (compiler) và debugger:.......................................................... 36
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG ...................................... 41
3.1 Sơ đồ nguyên lý: .............................................................................................. 41
3.2 Mạch in PCB: ................................................................................................... 41
CHƯƠNG 4: GIẢI THUẬT VÀ CHƯƠNG TRÌNH............................................... 42
1. THIẾT KẾ WEBSERVER ................................................................................... 42
1.1. Webserver .................................................................................................. 42
1.2. Tiến hành tạo Webserver ........................................................................... 43
1.3. Điều khiển RASPBERRY PI với FLASK................................................. 45
2. Truyền nhận Serial trên STM8S ........................................................................... 48
3. Code Thực Tế đã thực hiện .................................................................................. 49
3.1. Code python............................................................................................... 49
3.2. Code UART ............................................................................................... 52
3.3. Ứng dụng gương thông minh (MagicMirror):............................................. 56
i
3. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 5: KẾT QUẢ & HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ........................... 57
1. ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN ĐỀ TÀI.................................................................. 57
2. HƯỚNG PHÁT TRIỂN................................................................................................................ 57
TÀI LIỆU THAM KHẢO ................................................................................................................... 58
ii
4. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
DANH MỤC HÌNH
Hình 2.1: Bo mạch Raspberry Pi..................................................................................... 3
Hình 2.2: Sơ đồ cấu tạo Raspberry Pi ............................................................................. 4
Hình 2.3: Nguyên hộp máy tính Raspberry Pi ................................................................ 5
Hình 2.4: Raspberry Pi đang được sử dụng .................................................................... 5
Hình 2.5: Vị trí của các kết nối và các IC chính trên Raspberry Pi 1 model A+ phiên
bản 1.1 ............................................................................................................................. 8
Hình 2.6: Vị trí của các kết nối và các IC chính trên Raspberry Pi 1 model B phiên bản 2
.......................................................................................................................................9
Hình 2.7: Vị trí của các kết nối và các IC chính trên Raspberry Pi 1 model B+ phiên
bản 1.2, và Raspberry Pi 2 model.................................................................................... 9
Hình 2.8: Ảnh Raspberry Pi Model B ........................................................................... 15
Hình 2.9: Các hệ điều hành hỗ trợ Raspberry Pi........................................................... 16
Hình 2.10: Giao diện Raspbian ..................................................................................... 17
Hình 2.11: Format thẻ nhớ SDHC................................................................................. 18
Hình 2.12: Phần mềm Win32DiskImager ..................................................................... 18
Hình 2.13: Flask ............................................................................................................ 32
Hình 2.14. Chip STM8S................................................................................................ 34
Hình 2.15: Mạch nguyên lí kit STM8S103F3P6........................................................... 35
Hình 2.16: Kit STM8S103F3P6.................................................................................... 36
Hình 2.17: Biểu tượng trình biên dịch IAR................................................................... 36
Hình 2.18: Create New Workspace............................................................................... 37
Hình 2.19: Create New Project ..................................................................................... 37
Hình 2.20: Chọn main C ............................................................................................... 38
Hình 2.22: Chọn Option ................................................................................................ 39
Hình 3.1: Mạch nguyên lý của mô hình ........................................................................ 41
Hình 3.2: PCB của mô hình .......................................................................................... 41
Hình 4.1: Webserver ..................................................................................................... 42
Hình 4.2: Truy cập localhost ......................................................................................... 44
iii
5. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
LỜI NÓI ĐẦU
LỜI NÓI ĐẦU
Internet of Things ( IoT) đang là xu hướng hot nhất ở thời điểm hiện tại. Đây cũng
là động lực để em quyết định tìm hiểu về mảng điều khiển các thiết bị trong gia đình
thông qua một webserver mini, dựa trên cơ sở phần cứng là máy tính nhúng Raspberry
Pi 3. Mục đích của đề tài này là tìm hiểu cách một webserver hoạt động và cách nó
trao đổi thông tin giữa người sử dụng ( client) và máy tính nhúng (server) qua đó sử
dụng giao thức UART để điều khiển một vi điều khiển STM khác.
Chúng em xin cảm ơn sự giúp đỡ của thầy TS. Chung Tấn Lâm đã giúp chúng em
giải đáp các thắc mắc trong suốt quá trình thực hiện đề tài. Kinh chúc thầy sức khỏe và
thành công trong công việc.
6. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 1
7. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 1 : TỔNG QUAN VỀ ĐỒ ÁN
CHƯƠNG 1 : TỔNG QUAN VỀ ĐỒ ÁN
1. Tổng quan
Thiết kế phần mềm webserver để tiến hành gửi nhận thông tin giữa người dùng
(client) và máy tính nhúng (server) qua đó điều khiển máy tính nhúng trao đổi dữ liệu
với vi điều khiển STM qua giao tiếp UART.
2. Nguyên lý
Máy tính nhúng Raspberry sử dụng Flask python làm back-end để tạo một
webserver. Webserver này sẽ trả về một trang web dạng HTML khi có người truy cập
tới nó.
Khi máy tính nhúng nhận được các lệnh điều khiển từ webserver sẽ tiến hành chạy
các thư viện Javascript liên quan tới Serial Port để gửi tín hiệu tới vi điều khiển STM.
Qua đó điều khiển các ngoại vi có trên vi điều khiển STM này.
3. Ứng dụng
Đề tài này có thể sử áp dụng trực tiếp vào các mô hình smarthome, automation
home giúp người sử dụng có thể điều khiển các thiết bị trong nhà của mình ngay trên
máy tính hay điện thoại di động. Hay thậm chí có thể mở PORT FORWARDING để
điều khiển từ mạng internet.
8. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 2
9. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
1. RASPBERRY PI
1.1. Giới thiệu RASPBERRY PI
Raspberry Pi là một seri các máy tính chỉ có board mạch, kích thước chỉ bẳng một thẻ
tín dụng, được phát triển tại Anh bởi Raspberry Pi Foundation với mục đích thúc đẩy
việc giảng dạy về khoa học máy tính cơ bản trong các trường học và các nước đang
phát triển.
Hình 2.1: Bo mạch Raspberry Pi
Raspberry Pi gốc và Raspberry Pi gốc 2 được sản xuất theo nhiều cấu hình khác
nhau thông qua các thỏa thuận cấp phép sản xuất với Newark element14 (Premier
Farnell), RS Components và Egoman. Các công ty này bán Raspberry Pi trực tuyến.
Egoman sản xuất một phiên bản phân phối duy nhất tại Đài Loan, có thể được phân
biệt với Pis khác bởi màu đỏ của chúng và thiếudấu FCC/CE. Phần cứng là như nhau
đối với tất cả các nhà sản xuất.
Raspberry Pi ban đầu được dựa trên hệ thống trên một vi mạch(SoC)BCM2835
của Broadcom, bao gồm một vi xử lý ARM1176JZF-S 700 MHz, VideoCore IV GPU,
và ban đầu được xuất xưởng với 256 MB RAM, sau đó được nâng cấp (model B và B
+) lên đến 512 MB. Board này cũng có socket Secure Digital (SD) (model A và B)
hoặc MicroSD (model A + và B +) dùng làm thiết bị khởi động và bộ lưu trữ liên tục.
10. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 3
11. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Trong năm 2014, Raspberry Pi Foundation đã phát hành Compute Module, đóng
gói một BCM2835 với 512 MB RAM và một flash chip eMMC vào một module để sử
dụng như một phần của hệ thống nhúng.
Foundation này cung cấp Debian và Arch Linux ARM để người dùng download
về. Các công cụ có sẵn cho Python như là ngôn ngữ lập trình chính, hỗ trợ cho BBC
BASIC (thông qua RISC OS image hoặc Brandy Basic clone cho Linux), C, C++,
Java, Perl và Ruby.
Tính đến ngày 08 Tháng Sáu năm 2015, khoảng 5-6.000.000 board Raspberry Pi
đã được bán. Trong khi đã trở thành máy tính cá nhân bán chạy nhanh nhất của Anh,
nó cũng đã được vận chuyển số lượng đơn vị lớn thứ hai phía sau Amstrad PCW,
"Personal Computer Word-processor", bán được tám triệu chiếc.
Vào đầu tháng 2 năm 2015, thế hệ tiếp theo của Raspberry Pi, Raspberry Pi 2, đã
được phát hành. Board máy tính mới này đầu tiên chỉ có một cấu hình (model B) và
trang bị SoC Broadcom BCM2836, với một nhân ARM Cortex-A7 CPU lõi tứ và một
VideoCore IV dual-core GPU; 1 GB bộ nhớ RAM với thông số kỹ thuật còn lại tương
tự như của các thế hệ model B+ trước đó. Raspberry Pi 2 vẫn giữ nguyên giá US$35 so
với model B, với model A+ giá US$20 vẫn còn được bán.
1.2. PHẦN CỨNG
Phần cứng Raspberry Pi qua nhiều phiên bản được trang bị nhiều cấu hình khác
nhau, dung lượng bộ nhớ, thiết bị ngoại vi...
Hình 2.2: Sơ đồ cấu tạo Raspberry Pi
Sơ đồ khối trên mô tả model A, B, A+, B+ và. Model A và A+ thiếu cổng
Ethernet và USB. Bộ chuyển đổi Ethernet được kết nối với một cổng USB bổ sung.
Trong model A và A+ cổng USB được kết nối trực tiếp đến SoC. Trên model B+ chip
12. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 4
13. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
này có chứa một hub USB năm đầu ra, trong đó có bốn cổng có sẵn, trong khi model B
chỉ cung cấp có hai cổng mà thôi.
Hình 2.3: Nguyên hộp máy tính Raspberry Pi
Hình 2.4: Raspberry Pi đang được sử dụng
Bộ vi xử lý
SoC được sử dụng trong Raspberry Pi thế hệ đầu tiên hơi tương đương với chip
được sử dụng trong các điện thoại thông minh đời cũ (chẳng hạn như iPhone / 3G /
3GS). Raspberry Pi dựa trên SoC BCM2835 của Broadcom, trong đó bao gồm một bộ
xử lý ARM1176JZF-S 700 MHz, GPU VideoCore IV,và RAM. Nó có một bộ nhớ
cache cấp 1 16 KB và một bộ nhớ cache cấp 2 128 KB. Cache cấp 2 này được sử dụng
14. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 5
15. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
chủ yếu bởi GPU. SoC được xếp chồng lên nhau dưới chip RAM, vì vậy chỉ cạnh của
nó là nhìn thấy được.
Hiệu suất của các model thế hệ đầu tiên
Trong khi hoạt động tại 700 MHz theo mặc định, thế hệ đầu tiên của Raspberry
Pi cung cấp một hiệu suất thực tế tương đương với 0,041 GFLOPS. Ở cấp độ CPU
hiệu suất tương đương một Pentium II 300 MHz của những năm 1997-1999. GPU
cung cấp khả năng xử lý đồ họa 1 GPixel/s hoặc 1,5 Gtexel/s hoặc 24 GFLOPS của
hiệu suất máy tính mục đích chung. Khả năng đồ họa của Raspberry Pi là tương đương
với mức độ hoạt động của Xbox của năm 2001.
Kết quả benchmark tính toán đơn nút LINPACK trong một hiệu suất chính xác
đơn trung bình là 0.065 GFLOPS và một hiệu suất chính xác kép là 0,041 GFLOPS
cho một board Raspberry Pi Model-B. Một nhóm 64 máy tính Raspberry Pi Model-B,
có nhãn "Iridis-pi", đạt được một kết quả LINPACK HPLlà 1,14 GFLOPS (n =
10.240) tại 216 watt cho c. US $ 4,000.
Raspberry Pi 2 được dựa trên Broadcom BCM2836 SoC, trong đó bao gồm một
quad-core Cortex-A7 CPU chạy ở 900 MHz và 1 GB RAM. Nó được mô tả là mạnh
hơn từ 4-6 lần so với board tiền nhiệm trước nó. GPU là giống hệt nhau.
Ép xung
Thế con chip của Raspberry Pi hệ đầu tiên hoạt động ở 700 MHz theo mặc định
và không đủ nóng để cần một miếng tản nhiệt hoặc biện pháp làm mát đặc biệt nào
khác, trừ khi con chip này được ép xung. Thế hệ thứ hai chạy ở 900 MHz theo mặc
định, và cũng không đủ nóng để cần một miếng tản nhiệt hoặc biện pháp làm mát đặc
biệt. Một lần nữa ép xung có thể làm SoC này nóng lên nhiều hơn mức bình thường.
Hầu hết các chip Raspberry Pi có thể được ép xung tới 800 MHz và một số thậm
chí còn cao hơn đến 1000 MHz. Có những báo cáo là thế hệ thứ hai có thể được ép
xung cũng tương tự như vậy, thậm chí đến 1500 MHz (loại bỏ tất cả các tính năng an
toàn và vượt quá giới hạn điện áp). Trong Raspbian Linux distrocác tùy chọn ép xung
khi khởi độngcó thể được thực hiện bởi một lệnh phần mềm "sudo raspi-config" mà
không làm vô hiệu chế độ bảo hành. Trong những trường hợp Pi tự động tắt ép xung
xuống trong trường hợp chip đạt đến 85 °C (185 °F), nhưng nó có thể bỏ qua tự động
quá điện áp và các thiết lập ép xung (làm vô hiệu chế độ bảo hành). Trong trường hợp
đó, người ta có thể thử đặt một tản nhiệt có kích thước thích hợp vào nó để giữ cho các
chip không bị nóng lên đến quá 85 °C.
Phiên bản firmware mới hơn có chứa tùy chọn để lựa chọn giữa năm chế độ
overclock ("turbo") để khi bật lên sẽ thử để có được hiệu suất tối đa của SoC mà
16. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 6
17. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
không làm giảim tuổi thọ của Raspberry Pi. Điều này được thực hiện bằng cách theo
dõi nhiệt độ bên trong lõi của chip, và tải CPU, và điều chỉnh động tốc độ đồng hồ và
điện áp lõi. Khi nhu cầu trên CPU thấp, hoặc nó đang chạy quá nóng, hiệu suất sẽ
được can thiệp, nhưng nếu CPU có nhiều việc phải làm, và nhiệt độ của chip là chấp
nhận được, hiệu suất sẽ được tạm thời gia tăng, với tốc độ xung nhịp lên đến 1 GHz,
tùy thuộc vào từng loại board, và trên đó các thiết lập Turbo được sử dụng. Năm thiết
lập này là:
• không (none); 700 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0 volt
quá áp,
• khiêm tốn (modest); 800 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0
volt quá áp,
• trung bình (medium); 900 MHz ARM, 250 MHz core, 450 MHz SDRAM,
2 volt quá áp,
• cao (high); 950 MHz ARM, 250 MHz core, 450 MHz SDRAM, 6 volt quá áp,
• turbo; 1000 MHz ARM, 500 MHz core, 600 MHz SDRAM, 6 volt quá áp.
Trong chế độ cao nhất (turbo) xung SDRAM ban đầu 500 MHz, nhưng sau đó đã
được thay đổi đến 600 MHz vì 500 MHz đôi khi gây hư thẻ nhớ SD. Đồng thời trong
chế độ cao tốc độ xung lõi đã được hạ xuống 450-250 MHz, và ở chế độ trung bình
333-250 MHz.
RAM
Trên các board model B beta cũ, mặc định phân bổ 128 MB cho GPU, còn lại
128 MB cho CPU. Trên các board model B mới, 512 MB RAM được chia lần lượt 256
MB, 384 MB và 496 MB CPU RAM (tương ứng 256 MB, 128 MB và 16 MB video
RAM).
Mạng
Mặc dù model A và A+ không có cổng 8P8C ("RJ45") Ethernet, chúng có thể sử
dụng một bộ adapter USB Ethernet hoặc Wi-Fi ngoại vi do người dùng cung cấp để
kết nối với một mạng. Trên model B và B+ cổng Ethernet được cung cấp sẵn adapter
USB Ethernet.
Thiết bị ngoại vi
Raspberry Pi có thể hoạt động với bất kỳ bàn phím máy tính và chuột thông qua
kết nối USB.
Video
Bộ điều khiển video có khả năng phân giải chuẩn truyền hình hiện đại, chẳng hạn
như HD và Full HD, và các độ phân giải màn hình và cao hơn hoặc thấp hơn và độ
18. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 7
19. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
phân giải TV CRT chuẩn cũ hơn. Khi không có tùy chỉnh ép xung, nó có khả năng
phát: 640 × 350 EGA; 640 × 480 VGA; 800 × 600 SVGA; 1024 × 768 XGA; 1280 ×
720 720p HDTV; 1280 × 768 WXGA ; 1280 × 800 WXGA; 1280 × 1024 SXGA;
1366 × 768 WXGA; 1400 × 1050 SXGA +; 1600 × 1200 UXGA; 1680 × 1050
WXGA +; 1920 × 1080 1080p HDTV; 1920 × 1200 WUXGA. Nó có thể tạo ra các tín
hiệu video hỗn hợp 576i và 480i cho PAL-BGHID, PAL-M, PAL-N, NTSC và NTSC-
J.
Đồng hồ thời gian thực
Raspberry Pi không được trang bị đồng hồ thời gian thực, có nghĩa là nó không
thể theo dõi thời gian trong ngày, khi nó không hoạt động.
Thay vào đó, một chương trình chạy trên Pi có thể lấy thời gian từ một máy chủ
thời gian mạng hoặc do người dùng nhập vào lúc khởi động.
Một đồng hồ thời gian thực (như DS1307) với pin dự phòng có thể được thêm
vào (thường thông qua giao tiếp I²C).
Hình 2.5: Vị trí của các kết nối và các IC chính trên Raspberry Pi 1 model A+ phiên
bản 1.1
20. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 8
21. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Hình 2.6: Vị trí của các kết nối và các IC chính trên Raspberry Pi 1 model B phiên
bản 2
Hình 2.7: Vị trí của các kết nối và các IC chính trên Raspberry Pi 1 model B+ phiên
bản 1.2, và Raspberry Pi 2 model
22. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 9
23. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Cổng GPIO
RPi A+, B+ và 2B GPIO J8 có 40-chân pinout. Model A và B chỉ có 26 chân.
GPIO# Chức năng thứ 2 pin# pin# Chức năng thứ 2 GPIO#
N/A +3V3 1 2 +5V N/A
GPIO2 SDA1 (I2C) 3 4 +5V N/A
GPIO3 SCL1 (I2C) 5 6 GND N/A
GPIO4 GCLK 7 8 TXD0 (UART) GPIO14
N/A GND 9 10 RXD0 (UART) GPIO15
GPIO17 GEN0 11 12 GEN1 GPIO18
GPIO27 GEN2 13 14 GND N/A
GPIO22 GEN3 15 16 GEN4 GPIO23
N/A +3V3 17 18 GEN5 GPIO24
GPIO10 MOSI (SPI) 19 20 GND N/A
GPIO9 MISO (SPI) 21 22 GEN6 GPIO25
GPIO11 SCLK (SPI) 23 24 CE0_N (SPI) GPIO8
N/A GND 25 26 CE1_N (SPI) GPIO7
(Models A and B stop here)
EEPROM ID_SD 27 28 ID_SC EEPROM
GPIO5 N/A 29 30 GND N/A
GPIO6 N/A 31 32 - GPIO12
GPIO13 N/A 33 34 GND N/A
GPIO19 N/A 35 36 N/A GPIO16
GPIO26 N/A 37 38 Digital IN GPIO20
N/A GND 39 40 Digital OUT GPIO21
24. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 10
25. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Chức năng chức năng thứ 2 chân# chân# Chức năng thứ 2 Chức năng
N/A +5V 1 2 +3V3 N/A
GPIO28 GPIO_GEN7 3 4 GPIO_GEN8 GPIO29
GPIO30 GPIO_GEN9 5 6 GPIO_GEN10 GPIO31
N/A GND 7 8 GND N/A
Model A và B quy định GPIO truy cập vào LED trạng thái ACT sử dụng GPIO
16. Model A+ và B+ và quy định GPIO truy cập vào các LED trạng thái ACT sử dụng
GPIO 47, và LED trạng thái nguồn sử dụng GPIO 35.
Phụ kiện
Camera - Ngày 14 tháng 5 năm 2013, the Foundation và các nhà phân phối RS
Components & Premier Farnell / Element 14 đã ra mắt board camera Raspberry Pi với
một bản cập nhật firmware kèm theo. Board camera được vận chuyển đi kèm với một
cáp phẳng linh hoạt để cắm vào đầu nối CSI nằm giữa cổng Ethernet và HDMI. Trong
Raspbian, ta kích hoạt hệ thống sử dụng board camera này bằng cách cài đặt hoặc nâng
cấp lên phiên bản mới nhất của hệ điều hành (OS) và sau đó chạy Raspi-config và
chọn tùy chọn camera. Giá của mô-đun camera này là €20 ở châu Âu (09 Tháng 9 năm
2013).
Gertboard – một thiết bị được Raspberry Pi Foundation khuyến khích, được thiết
kế cho mục đích giáo dục, nó sẽ giúp mở rộng các chân GPIO của Raspberry Pi để cho
phép giao tiếp với và điều khiển các đèn LED, tiếp điểm, tín hiệu analog, cảm biến và
các thiết bị khác. Nó cũng bao gồm một trình điều khiển tương thích với Arduino theo
tùy chọn để giao tiếp với Pi.
Infrared Camera – Vào tháng 10 năm 2013, tổ chức này đã tuyên bố rằng họ sẽ
bắt đầu sản xuất một module camera không có bộ lọc hồng ngoại, được gọi là Pi NoIR.
Các board mở rộng HAT (Hardware Attached on Top-Phần cứng đính kèm ở mặt
trên) – Cùng với model B+, được lấy cảm hứng bởi các board Arduino shield, giao
diện cho các board HAT được trang bị bởi Raspberry Pi Foundation. Mỗi board HAT
mang theo một EEPROM nhỏ (điển hình là một CAT24C32WI-GT3) chứa các chi tiết
có liên quan tới board này, do đó hệ điều hành của Raspberry Pi được sẽ được thông
báo về HAT, và chi tiết kỹ thuật của nó, liên quan tới hệ điều hành sử dụng HAT.
Board HAT có 4 lỗ định vị ở 4 góc hình chữ nhật của nó.
Các hệ điều hành
Raspberry Pi chủ yếu sử dụng các hệ điều hành dựa trên nhân Linux.
26. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 11
27. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Chip ARM11 tại trung tâm của Pi (mô hình thế hệ đầu tiên) được dựa trên phiên
bản 6 của ARM. Các phiên bản hiện tại của một số phân nhánh phổ biến của Linux,
bao gồm Ubuntu, sẽ không chạy trên ARM11. Không thể chạy Windows trên
Raspberry Pi gốc, mặc dù Raspberry Pi 2 mới có thể chạy trên hệ điều hành Windows
10 IoT Core. Raspberry Pi 2 hiện tại chỉ hỗ trợ Ubuntu Snappy Core, Raspbian,
OpenELEC và RISC OS.
Trình quản lý cài đặt cho Raspberry Pi là NOOBS. Các hệ điều hành đi kèm với
NOOOBS là:
Arch Linux ARM
OpenELEC
Pidora (biến thể của Fedora)
Puppy Linux
Raspbmc và trung tâm truyền thông số mã nguồn mở XBMC
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.
Raspbian (được đề xuất dùng cho Raspberry Pi 1) – được bảo trì độc lập bởi the
Foundation; dựa trên cổng kiến trúc Debian ARM hard-float (armhf) được thiết kế ban
đầu cho ARMv7 và các bộ xử lý kế tiếp (với Jazelle RCT/ThumbEE và VFPv3), biên
dịch cho các tập lệnh hạn chế hơn ARMv6 của Raspberry Pi 1. Một thẻ SD có kích
thước tối thiểu là 4 GB là cần thiết cho những Raspbian image được cung cấp bởi
Raspberry Pi Foundation. Có một Pi Store (Kho) dùng để trao đổi chương trình.
Raspbian Server Edition là một phiên bản rút gọn với các gói phần mềm đi kèm
ít hơn so với phiên bản Raspbian dành cho máy tính để bàn thông thường.
Giao thức máy chủ hiển thị Wayland cho phép sử dụng hiệu quả GPU để tăng tốc
phần cứng chức năng vẽ GUI. Vào ngay 16 Tháng 4 năm 2014, một GUI shell dành
cho Weston gọi Maynard đã được phát hành.
PiBang Linux – là một biến thể từ Raspbian.
Raspbian for Robots – là một biến thểcủa Raspbian dành cho các dự án robot với
LEGO, Grove, và Arduino.
Các hệ điều hành khác
Q4os
Xbian – sử dụng Kodi (mã cũ là XBMC)
openSUSE
Raspberry Pi Fedora Remix
Slackware ARM – kể từ phiên bản 13.37 trở đi chạy trên Raspberry Pi mà cần
phải không sửa đổi. 128-496 MB bộ nhớ có sẵn trên Raspberry Pi ít nhất phải bằng hai
28. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 12
29. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
lần yêu cầu tối thiểu là 64 MB cần thiết để chạy Slackware Linux trên ARM hoặc hệ
thống i386. (Trong khi phần chính của các hệ thống Linux boot vào một giao diện đồ
họa người dùng, Slackware theo mặc định lại sử dụng môi trường shell/dòng lệnh.)
Trình quản lý cửa sổ Fluxbox chạy dưới X Window System yêu cầu bổ sung thêm 48
MB RAM.
FreeBSD và NetBSD là các hệ điều hành nền (general).
Plan 9 from Bell Labs and Inferno (in beta)
Moebius – là một bản phân phối rút gọn của ARM HF dựa trên Debian. Nó sử
dụng Raspbian repository, nhưng được chứa trong một thẻ nhớ SD Card 128 MB. Nó
chỉ có các dịch vụ tối thiểu và bộ nhớ được tối ưu hóa để giảm thiểu kích thước của
thiết bị.
OpenWrt.
Kali Linux – là một biến thể của Debian-được thiết kế cho phân tích mã nguồn và
kiểm tra bảo mật.
Pardus ARM – là một hệ điều hành dựa trên nền tảng Debian là một phiên bản
rút gọn của Pardus (hệ điều hành).
Instant WebKiosk – là một hệ điều hành dùng cho mục đích hiển thị kỹ thuật số
(web và media).
Ark OS – được thiết kế cho is website và email self-hosting.
Minepion – là một hệ điều hành dùng riêng cho "đào" tiền số (giống như bitcoin).
Kano OS.
Nard SDK – là một kit phát triển phần mềm (SDK) dùng cho các hệ thống nhúng
công nghiệp.
Sailfish OS với Raspberry Pi 2 (do sử dụng ARM Cortex-A7 CPU; Raspberry Pi
1 sử dụng kiến trúc ARMv6 khác và Sailfish yêu cầu ARMv7).
Tiny Core Linux – một hệ điều hành Linux nhỏ gọn sử dụng BusyBox và FLTK,
được thiết kế để chạy ưu tiên trên RAM.
"Windows 10 IoT Core" – Bản Windows 10 miễn phí do Microsoft phát hành,
chạy trên Raspberry Pi 2.
WTware fo Raspberry Pi 2.
IPFire – là một bản phân phối chuyên dùng cho firewall/router; chỉ chạy trên
Raspberry Pi 1; hiện tại họ không có kế hoạch thiết kế sang Raspberry Pi 2.
xv6 – là một phiên bản hiện đại của hệ điều hành Unix Sixth Edition dành cho
mục đích giảng dạy; nó được chuyển sang Raspberry Pi từ MIT xv6; cổng xv6 này có
thể khởi động từ NOOBS.
30. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 13
31. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Các hệ điều hành dự kiến
Haiku – là nhân bản mã nguồn mở BeOS nhắm vào Raspberry Pi và các board
ARM khác. Công việc bắt đầu vào năm 2011 cho model 1, nhưng chỉ model 2 mới
được hỗ trợ.
Arch Linux ARM
OpenELEC
Pidora (Fedora Remix)
Puppy Linux
Raspbmc và trung tâm đa phương tiện số mã nguồn mở XBMC
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.
Raspbian (khuyến cáo sử dụng cho Raspberry Pi 1) – Bảo trì độc lập bởi
Foundation; dựa trên kiến trúc Debian ARM hard-float (armhf) cổng được thiết kế ban
đầu cho ARMv7 và các bộ xử lý sau này (với Jazelle RCT/ThumbEE và VFPv3), được
biên dịch cho tập lệnh bị giới hạn nhiều hơn ARMv6 của Raspberry Pi 1. Yêu cầu ít
nhất 4 GB SD card cho các Raspbian image được cung cấp bởi Raspberry Pi
Foundation. Có một kho Pi Store dùng để trao đổi các chương trình với nhau.
Raspbian Server Edition là một phiên bản rút gọn với các gói phần mềm đi kèm
ít hơn so với các bản Raspbian dùng cho máy tính để bàn truyền thống.
Giao thức máy chủ hiển thị Wayland cho phép sử dụng hiệu quả GPU dành cho chức
năng tăng tốc phần cứng GUI. Vào 16 Tháng 4 năm 2014, một shell GUI dành cho
Weston được gọi là Maynard đã được phát hành. PiBang Linux được dẫn xuất từ
Raspbian.
Raspbian for Robots – là một nhánh của Raspbian dành cho các dự án robot với
LEGO, Grove, và Arduino.
Driver APIs
Phần mềm ứng dụng của bên thứ ba
AstroPrint – Kể từ tháng 8 năm 2014, phần mềm máy in 3D không dây
AstroPrint có thể chạy được trên Pi 2
Mathematica – Kể từ ngày 21 tháng 11 năm 2013, Raspbian bao gồm một cài đặt
đầy đủ của phần mềm độc quyền này cho dùng miễn phí. Tính đến ngày 24 tháng 8
năm 2015, là phiên bản Mathematica 10.2.
Minecraft – Phát hành 11 Tháng 2 năm 2013, một phiên bản dành cho Raspberry
Pi, trong đó bạn có thể thay đổi thế giới trò chơi với code.
UserGate Web Filter – Ngày 20 tháng 9 năm 2013, hãng bảo mật có trụ sở tại
Florida Entensys công bố UserGate Web Filter cho nền tảng Raspberry Pi.
32. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 14
33. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Julia –Kể từ tháng 5 năm 2015, ngôn ngữ lập trình Julia biên dịch và chạy trên Pi
2, và bản gốc, trong trạng thái alpha (bản thử nghiệm).
R POS - Phát hành tháng 5 năm 2016, phần mềm bán hàng POS cho ngành Ăn
Uống và Bán Lẻ do Young POS phát triển.
Hình 2.8: Ảnh Raspberry Pi Model B
Đề tài sử dụng Raspberry Pi 3 model B, có thông số như sau:
• Quad Core 1.2GHz Broadcom BCM2837 64bit CPU.
• Vi xử lý hình ảnh VideoCore IV 3D.
• Tích hợp wireless LAN chuẩn 802.11 b / g / n.
• Tích hợp Bluetooth 4.1 (BLE - Bluetooth Low Energy).
• Ram 1GB LPDDR2.
• 1 cổng Ethernet.
• 1 cổng HDMI, hỗ trợ Full HDMI.
• 1 Jack cắm 3.5mm.
• 1 cổng kết nối camera qua CSI.
• 1 cổng kết nối màn hình cảm ứng qua DSI.
• 4 cổng USB 2.0
34. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 15
35. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
• 40 chân GPIO.
• Chip antena.
• Khe cắm thẻ nhớ microSD.
• Kích thước: 85 x 56 x 17 mm
• Đầu nối microUSB cho nguồn điện 2,5 A.
• Hỗ trợ tất cả các bản phân phối ARM GNU / Linux mới nhất và Windows 10 IoT.
1.3 HỆ ĐIỀU HÀNH
Về cơ bản, chỉ cần hệ điều hành hỗ trợ CPU ARM v6 là có thể chạy được trên
Raspberry Pi như: Ubuntu Mate, OSMC, RISC OS, Windows 10 IOT …
Hình 2.9: Các hệ điều hành hỗ trợ Raspberry
Pi Trong đề tài sử dụng hệ điều hành Raspbian.
Đây là hệ điều hành cơ bản, phổ biến nhất và do chính Raspberry Pi Foundation
cung cấp. Nó cũng được hãng khuyến cáo sử dụng, nhất là cho người mới bắt đầu làm
quen với Raspberry Pi (RPi).
36. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 16
37. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Raspbian có dung lượng sau khi giải nén là khoảng gần 4GB, vì vậy cần tối thiểu
1 cái thẻ nhớ 4GB để có thể sử dụng Raspbian. Tuy nhiên, nên sử dụng thẻ tối thiểu
8GB bởi vì cần cài thêm các ứng dụng khác nữa. Để Raspbian hoạt động ổn định, tốc
độ nhanh, ta nên sử dụng thẻ nhớ Class 10.
Nhược điểm của Raspbian là giao diện đơn giản, cổ điển.
Hình 2.10: Giao diện Raspbian
Raspbian được hướng đến người dùng có mục đích:
• Sử dụng Raspberry Pi như máy tính văn phòng để lướt web, soạn văn bản,
check mail và thi thoảng nghe nhạc/xem phim.
• Nghiên cứu phát triển các thiết bị điều khiển tự động.
• Sử dụng như một máy chủ cung cấp các dịch vụ như web, file server, printer
server, …
1.3.1. Cài đặt hệ điều hành Raspbian:
Để cài đặt hệ điều hành cho Raspberry Pi, cần có:
• Phần mềm Win32 Disk Imager (WDI) để giải nén. Có thể download
tại: http://sourceforge.net/projects/win32diskimager/
38. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 17
39. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
• Một thẻ nhớ MicroSD tối thiểu 4GB. Khuyến cáo sử dụng thẻ 8GB class 10
trở lên để có dung lượng đảm bảo và tốc độ tốt nhất.
• File nén Raspbian, có thể download tại:
https://www.raspberrypi.org/downloads/raspbian/
Các bước thực hiện:
Bước 1: Ta tiến hành download SD Formatter 4.0 rồi làm theo từng bước để cài
đặt phần mềm này.
Sau đó, hãy bật SD Formater. Trong cửa sổ chương trình, lựa chọn ổ đĩa đang cần
format và bấm Format để chương trình thực hiện.
Hình 2.11: Format thẻ nhớ SDHC
Bước 2: Mở phần mềm Win32DiskImager, phần mềm này chỉ cần download về rồi
chạy mà không cần cài đặt.
Bước 3: Thông thường, hệ điều hành của RPi được nén dưới dạng .zip hoặc .tar.gz, …
Khi tải về cần giải nén nó ra để có file hệ điều hành dạng .img. Sau đó lựa chọn ổ thẻ
nhớ cần ghi. Cuối cùng bạn bấm Write và chờ đợi quá trình ghi hoàn tất.
Hình 2.12: Phần mềm Win32DiskImager
Một vài lưu ý:
• Sau khi giải nén, cắm thẻ nhớ vào Raspberry Pi và khởi động, sau đó dùng chuột và
bàn phím để cấu hình.
• Sau khi khởi động xong, gõ lệnh raspi-config để truy cập các phần cấu hình hệ
thống cho Raspbian. Tại đây có thể thiết lập rất nhiều thông số như ngày giờ, cấu
40. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 18
41. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
hình mạng, …
• Raspbian có user mặc định là: pi, password: raspberry.
• Cần chú ý bộ nguồn Raspberry Pi. Ta cần phân biệt nguồn và sạc, vì bộ nguồn sẽ
cung cấp điện ổn định 24/7 và ít nóng so với bộ sạc hơn. Chống chỉ định sạc tàu,
sạc lô, và dòng phải trên 1A. Điện áp phải trong biên độ 3% ở mức 5v (các bạn có
đồng hồ VOM cắm chân đen vào TP1 và chân đỏ vào TP2 là đo được).
• Nên mua thêm ít nhất 2 cái heatsink dán vào con SoC và LAN Controller. Thêm cái
quạt tản nhiệt thì càng tốt. Đừng để nhiệt độ quá
80*C. Một số ưu nhược điểm của Raspberry Pi. Ưu
điểm:
• Giá rẻ.
• Nhỏ gọn.
• Siêu tiết kiệm điện.
• GPU mạnh.
• Phục vụ cho nhiều mục đích.
• Khả năng hoạt động liên tục 24/7.
Nhược điểm:
• CPU cấu hình thấp .
• Lan 100.
• Yêu cầu phải có kiến thức cơ bản về Linux, điện tử.
1.4 Python (ngôn ngữ lập trình):
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
42. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 19
43. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
hướng phát triển của Python.
Lịch sử
Sự phát triển Python đến nay có thể chia làm các giai đoạn:
• Python 1: bao gồm các bản phát hành 1.x. Giai đoạn này, kéo dài từ đầu đến cuối
thập niên 1990. Từ năm 1990 đến 1995, Guido làm việc tại CWI(Centrum voor
Wiskunde en Informatica - Trung tâm Toán-Tin học tại Amsterdam, Hà Lan). Vì
vậy, các phiên bản Python đầu tiên đều do CWI phát hành. Phiên bản cuối cùng
phát hành tại CWI là 1.2.
• Vào năm 1995, Guido chuyển sang CNRI (Corporation for National Research
Initiatives) ở Reston, Virginia. Tại đây, ông phát hành một số phiên bản khác.
Python 1.6 là phiên bản cuối cùng phát hành tại CNRI.
• Sau bản phát hành 1.6, Guido rời bỏ CNRI để làm việc với các lập trình viên
chuyên viết phần mềm thương mại. Tại đây, ông có ý tưởng sử dụng Python
với các phần mềm tuân theo chuẩn GPL. Sau đó, CNRI và FSF (Free Software
Foundation - Tổ chức phần mềm tự do) đã cùng nhau hợp tác để làm bản quyền
Python phù hợp với GPL. Cùng năm đó, Guido được nhận Giải thưởng FSF vì
Sự phát triển Phần mềm tự do (Award for the Advancement of Free Software).
• Phiên bản 1.6.1 ra đời sau đó là phiên bản đầu tiên tuân theo bản quyền GPL.
Tuy nhiên, bản này hoàn toàn giống bản 1.6, trừ một số sửa lỗi cần thiết.
• Python 2: vào năm 2000, Guido và nhóm phát triển Python dời đến BeOpen.com
và thành lập BeOpen PythonLabs team. Phiên bản Python 2.0 được phát hành tại
đây. Sau khi phát hành Python 2.0, Guido và các thành viên PythonLabs gia nhập
Digital Creations.
• Python 2.1 ra đời kế thừa từ Python 1.6.1 và Python 2.0. Bản quyền của phiên
bản này được đổi thành Python Software Foundation License. Từ thời điểm này
trở đi, Python thuộc sở hữu của Python Software Foundation (PSF), một tổ
chức phi lợi nhuận được thành lập theo mẫu Apache Software Foundation.
• Python 3, còn gọi là Python 3000 hoặc Py3K: Dòng 3.x sẽ không hoàn toàn tương
thích với dòng 2.x, tuy vậy có công cụ hỗ trợ chuyển đổi từ các phiên bản
2.x sang 3.x. Nguyên tắc chủ đạo để phát triển Python 3.x là "bỏ cách làm việc cũ
nhằm hạn chế trùng lặp về mặt chức năng của Python". Trong PEP (Python
Enhancement Proposal) có mô tả chi tiết các thay đổi trong Python . Các đặc điểm
mới của Python 3.0 sẽ được trình bày phần cuối bài này.
44. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 20
45. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Đặc điểm
Triết lý căn bản của ngôn ngữ Python được trình bày trong tài liệuThe Zen of
Python (PEP 20), có dạng thơ Haiku, tóm gọn như sau:
• Đẹp đẽ tốt hơn xấu xí
• Minh bạch tốt hơn che đậy
• Đơn giản tốt hơn phức tạp
• Phức tạp tốt hơn rắc rối
• Dễ đọc
Dễ học, dễ đọc
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.
and del for is raise
assert elif from lambda return
break else global not try
class except if or while
continue exec import pass yield
def finally in print
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í dụ,
giả sử có đoạn mã sau trong C/C++:
46. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 21
47. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
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 }
7 x1 = (- b + sqrt(delta)) / (2 * a);
8 x2 = (- b - sqrt(delta)) / (2 * a);
9 printf("Phuong trinh co hai nghiem phan biet:n");
10 printf("x1 = %f; x2 = %f", x1, x2);
11 }
Đ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
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.
Các bản hiện thực
Python được viết từ những ngôn ngữ khác, tạo ra những bản hiện thực khác nhau. Bản
hiện thực Python chính, còn gọi là CPython, được viết bằng C, và được phân phối
kèm một thư viện chuẩn lớn được viết hỗn hợp bằng C và Python. CPython có thể
chạy trên nhiều nền và khả chuyển trên nhiều nền khác. Dưới đây là các nền trên đó,
CPython có thể chạy.
• Các hệ điều hành họ Unix: AIX, Darwin, FreeBSD, Mac
OS X, NetBSD, Linux, OpenBSD, Solaris,…
• Các hệ điều hành dành cho máy desktop: Amiga, AROS, BeOS, Mac
OS 9, Microsoft Windows, OS/2, RISC OS.
• Các hệ thống nhúng và các hệ đặc biệt: GP2X, Máy ảo Java, Nokia 770 Internet
Tablet, Palm OS, PlayStation 2, PlayStation Portable, Psion, QNX, Sharp Zaurus,
Symbian OS, Windows CE/Pocket PC, Xbox/XBMC, VxWorks.
• Các hệ máy tính lớn và các hệ khác: AS/400, OS/390, Plan 9 from Bell Labs,
VMS, z/OS.
48. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 22
49. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Ngoài CPython, còn có hai hiện thực Python khác: Jython cho môi trường Java và
IronPython cho môi trường .NET và Mono.
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 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ể.
• Cấu trúc lặp, bao gồm:
• Lệnh while : chạy một khối mã cụ thể cho đến khi điều kiện lặp có giá
trị false .
• Vòng lặp for : lặp qua từng phần tử của một dãy, mỗi phần tử sẽ được đưa
vào biến cục bộ để sử dụng với khối mã trong vòng lặp.
• 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
50. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 23
51. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
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 : số nguyên (trong phiên bản 3.x long được nhập vào trong kiểu
int). Độ dài của kiểu số nguyên là tùy ý, chỉ bị giới hạn bởi bộ nhớ máy tính.
float : số thực
complex : số phức, chẳng hạn 5+4j
list : dãy trong đó các phần tử của nó có thể được thay đổi, chẳng hạn [8, 2,
'b', -1.5] . Kiểu dãy khác với kiểu mảng (array) thường gặp trong các ngôn
ngữ lập trình ở chỗ các phần tử của dãy không nhất thiết có kiểu giống nhau.
Ngoài ra phần tử của dãy còn có thể là một dãy khác.
tuple : dãy trong đó các phần tử của nó không thể thay đổi.
str : chuỗi ký tự. Từng ký tự trong chuỗi không thể thay đổi. Chuỗi ký tự
được đặt trong dấu nháy đơn, hoặc nháy kép.
dict : từ điển, còn gọi là "hashtable": là một cặp các dữ liệu được gắn theo
kiểu {từ khóa: giá trị}, trong đó các từ khóa trong một từ điển nhất thiết
phải khác nhau. Chẳng hạn {1: "Python", 2: "Pascal"}
set : một tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một lần.
Ngoài ra, Python còn có nhiều kiểu dữ liệu khác. Xem thêm trong phần "Các
kiểu dữ liệu" bên dưới.
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ả.
• So với Unix shell, Python hỗ trợ các chương trình lớn hơn và cung cấp
nhiều cấu trúc hơn.
52. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 24
53. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
• So với C, Python cung cấp nhiều cơ chế kiểm tra lỗi hơn. Nó cũng có sẵn
nhiều kiểu dữ liệu cấp cao, ví dụ như các mảng (array) linh hoạt và từ điển
(dictionary) mà ta sẽ phải mất nhiều thời gian nếu viết bằng C.
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:
• Python thích hợp với các chương trình lớn hơn cả AWK và Perl.
• Python được sử dụng để lập trình Web. Nó có thể được sử dụng như một
ngôn ngữ kịch bản.
• Python được thiết kế để có thể nhúng và phục vụ như một ngôn ngữ kịch
bản để tuỳ biến và mở rộng các ứng dụng lớn hơn.
• Python được tích hợp sẵn nhiều công cụ và có một thư viện chuẩn phong
phú, Python cho phép người dùng dễ dàng tạo ra các dịch vụ Web, sử dụng
các thành phần COM hay CORBA, hỗ trợ các loại định dạng dữ liệu
Internet như email, HTML, XML và các ngôn ngữ đánh dấu khác. Python
cũng được cung cấp các thư viện xử lý các giao thức Internet thông dụng
như HTTP, FTP,…
• Python có khả năng giao tiếp đến hầu hết các loại cơ sở dữ liệu, có khả
năng xử lý văn bản, tài liệu hiệu quả, và có thể làm việc tốt với các công
nghệ Web khác.
• Python đặc biệt hiệu quả trong lập trình tính toán khoa học nhờ các
công cụ Python Imaging Library, pyVTK, MayaVi 3D Visualization
Toolkits, Numeric Python, ScientificPython,…
• Python có thể được sử dụng để phát triển các ứng dụng desktop. Lập
trình viên có thể dùng wxPython, PyQt, PyGtk để phát triển các ứng dụng
giao diện đồ họa (GUI) chất lượng cao. Python còn hỗ trợ các nền tảng
phát triển phần mềm khác
như MFC, Carbon, Delphi, X11, Motif, Tk, Fox, FLTK, …
• Python cũng có sẵn một unit testing framework để tạo ra các bộ test (test
suites).
Multiple paradigms (đa biến hóa)
Python là một ngôn ngữ đa biến hóa (multiple paradigms). Có nghĩa là, thay vì
ép buộc mọi người phải sử dụng duy nhất một phương pháp lập trình, Python
lại cho phép sử dụng nhiều phương pháp lập trình khác nhau: hướng đối tượng,
có cấu trúc, chức năng, hoặc chỉ hướng đến một khía cạnh. Python kiểu kiểu
động và sử dụng bộ thu gom rác để quản lý bộ nhớ. Một đặc điểm quan trọng
nữa của Python là giải pháp tên động, kết nối tên biến và tên phương thức lại
với nhau trong suốt thực thi của chương trình.
Sự tương đương giữa true và một giá trị khác 0
Cũng như C/C++, bất kì một giá trị khác 0 nào cũng tương đương với true và
ngược lại, một giá trị 0 tương đương với false . Như vậy:
54. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 25
55. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
if a != 0:
tương đương với
if a:
Cú pháp
Sau đây là cú pháp cơ bản nhất của ngôn ngữ Python:
Khối lệnh
Khác với đa số ngôn ngữ họ C sử dụng cặp ngoặc ngọn { } để phân chia
khối lệnh, Python sử dụng lùi đầu dòng (indentation) như dấu cách hay
tab để biểu thị khối lệnh. Các lệnh nằm cùng mức lùi đầu dòng sẽ cùng
thuộc một khối. Để biểu thị một khối rỗng Python có từ khoá "pass".
Toán tử
+ - * / // (chia làm tròn) % (phần dư) ** (lũy thừa)
~ (not) & (and) | (or) ^ (xor)
<< (left shift) >> (right shift)
== (bằng) <= >= != (khác)
Python sử dụng ký pháp trung tố thường gặp trong các ngôn ngữ lập
trình khác.
Các kiểu dữ liệu
• Kiểu số
• 1234585396326 (số nguyên dài vô hạn) -86.12 7.84E-04
• 2j 3 + 8j
• Kiểu chuỗi (string)
• Kiểu bộ (tuple)
• (1, 2.0, 3) (1,) ("Hello",1,())
• Kiểu danh sách (list)
• [4.8, -6] ['a','b']
• Kiểu từ điển (dictionary)
56. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 26
57. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
• {"Hanoi":"Vietnam", "Haiphong":"Vietnam",
"Hochiminh":"Vietnam",
"Netherlands":"Amsterdam", "France":"Paris"}
Chú thích
1 # dòng chú thích
1 "" " đa chú thích
2 đa chú thích
3 đa chú thích " ""
Lệnh gán
1 tên biến = biểu thức
2 x = 23.8
3 y = -x ** 2
4 z1 = z2 = x + y
5 loiChao = "Hello!"
6
7 i += 1 # tăng biến i thêm 1 đơn vị
In giá trị
1 print biểu thức
2 print (7 + 8) / 2.0
3 print (2 + 3j) * (4 - 6j)
Nội suy chuỗi (string interpolation)
1 print "Hello %s" %("world!")
2 print "i = %d" %i
3 print "a = %.2f and b = %.3f" %(a,b)
Cấu trúc rẽ nhánh
• Dạng 1:
• if biểu_thức_điều_kiện:
• # lệnh...
• Dạng 2:
58. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 27
59. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
• if biểu_thức_điều_kiện:
• # lệnh...
• else:
• # lệnh...
• Dạng 3:
• if biểu_thức_điều_kiện_1:
• # lệnh... (được thực hiện nếu biểu_thức_điều_kiện_1 là đúng/true)
• elif biểu_thức_điều_kiện_2:
• # lệnh... (được thực hiện nếu biểu_thức_điều_kiện_1 là sai/false,
nhưng biểu_thức_điều_kiện_2 là đúng/true)
• else:
• # lệnh... (được thực hiện nếu tất cả các biểu thức điều kiện đi kèm
if và elif đều sai)
Cấu trúc lặp
1 while biểu_thức_đúng:
2 # lệnh...
1 for phần_tử in dãy:
2 # lệnh...
1 L = ["Ha Noi", "Hai Phong", "TP Ho Chi Minh"]
2 for thanhPho in L:
3 print thanhPho
4
5 for i in range(10):
6 print i
Hàm
1 def tên_hàm (tham_biến_1, tham_biến_2, tham_biến_n):
2 # lệnh...
3 return giá_trị_hàm
1 def binhPhuong(x):
2 return x*x
Hàm với tham số mặc định:
1 def luyThua(x, n=2):
2 """Lũy thừa với số mũ mặc định là 2"""
60. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 28
61. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
3 return x**n
4
5 print luyThua(3) # 9
6 print luyThua(2,3) # 8
Lớp
1 class Tên_Lớp_1:
2 #...
3
4 class Tên_Lớp_2(Tên_Lớp_1):
5 """Lớp 2 kế thừa lớp 1"""
6 x = 3 # biến thành viên của lớp
7 #
8 def phương_thức(self, tham_biến):
9 #...
10
11 # khởi tạo
12 a = Tên_Lớp_2()
13 print a.x
14 print a.phương_thức(m) # m là giá trị gán cho tham biến
List Comprehension
List Comprehension là dạng cú pháp đặc biệt (syntactic sugar) (mới có
từ Python 2.x) cho phép thao tác trên toàn bộ dãy (list) mà không cần
viết rõ vòng lặp. Chẳng hạn y là một dãy mà mỗi phần tử của nó bằng
bình phương của từng phần tử trong dãy x :
y = [xi**2 for xi in x]
Xử lý ngoại lệ
try:
câu_lệnh
except Loại_Lỗi:
thông báo lỗi
62. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 29
63. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Tốc độ thực hiện
Là một ngôn ngữ thông dịch, Python có tốc độ thực hiện chậm hơn
nhiều lần so với các ngôn ngữ biên dịch như Fortran, C, v.v... Trong số
các ngôn ngữ thông dịch, Python được đánh giá nhanh hơn Ruby và
Tcl, nhưng chậm hơn Lua.
Các đặc điểm mới trong Python 3.x
Nội dung phần này được trích từ tài liệu của Guido van Rossum. Phần
này không liệt kê đầy đủ tất cả các đặc điểm; chi tiết xin xem tài liệu
nói trên.
Một số thay đổi cần lưu ý nhất
• Lệnh print trở thành hàm print() . Theo đó sau print() ta cần nhớ gõ
vào cặp ngoặc () :
• print("Hello")
• print(2+3)
• Trả lại kết quả không còn là list trong một số trường hợp.
• dict.keys(), dict.items(), dict.values() kết quả cho ra các "view"
thay vì list.
• map và filter trả lại các iterator.
• range bây giờ có tác dụng như xrange , và không trả lại list.
• So sánh
Không còn hàm cmp , và cmp(a, b) có thể được thay bằng (a > b) - (a
< b)
• Số nguyên
• Kiểu long được đổi tên thành int .
• 1/2 cho ta kết quả là số thực chứ không phải số nguyên.
• Không còn hằng số sys.maxint
• Kiểu bát phân được ký hiệu bằng 0o thay vì 0 , chẳng
hạn 0o26 .
• Phân biệt văn bản - dữ liệu nhị phân thay vì Unicode - chuỗi 8-bit
• Tất cả chuỗi văn bản đều dưới dạng Unicode, nhưng chuỗi
Unicode mã hóa lại là dạng dữ liệu nhị phân. Dạng mặc định
là UTF-8.
• Không thể viết u"a string" để biểu diễn chuỗi như trong các
phiên bản 2.x
64. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 30
65. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Các thay đổi về cú pháp
Cú pháp mới
• Các tham biến chỉ chấp nhận keyword: Các tham biến phía
sau *args phải được gọi theo dạng keyword.
• Từ khóa mới nonlocal . Muốn khai báo một biến x với có phạm vi
ảnh hưởng rộng hơn, nhưng chưa đến mức toàn cục, ta
dùng nonlocal x .
• Gán giá trị vào các phần tử tuple một cách thông minh, chẳng hạn
có thể viết (a, *rest, b) = range(5) để có được a = 0; b = [1,2,3]; c =
4 .
• Dictionary comprehension, chẳng hạn {k: v for k, v in stuff} thay
vì dict(stuff) .
• Kiểu nhị phân, chẳng hạn b110001 .
Cú pháp được thay đổi
• raise [biểu_thức [from biểu_thức]]
• except lệnh as biến
• Sử dụng metaclass trong đối tượng:
• class C(metaclass=M):
• pass
Cách dùng biến __metaclass__ không còn được hỗ trợ.
Cú pháp bị loại bỏ
• Không còn dấu `` , thay vì đó, dùng repr .
• Không còn so sánh <> (dùng != ).
• Không còn các lớp kiểu classic.
66. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 31
67. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
1.5 Các mô đun được sử dụng:
FLASK
Hình 2.13: Flask
Website: flask.pocoo.org
Flask là một micro framework Python cho ứng dụng web, dựa trên 2 utility
libraries là Werkzeug, Jinja 2. Điểm mạnh của Flask là sự nhỏ gọn, và là một phần
mềm mã nguồn mở, dựa trên giấy phép BSD.
Flask rất thích hợp với những người mới bắt đầu tìm hiểu viết web app bằng ngôn
ngữ Python. Tại sao lại gọi đó là một "micro" framework? Trang chủ của Flask nói
rằng: "micro" ở đây không có nghĩa là toàn bộ code của ứng dụng mà bạn viết phải
nằm gọn trong một file Python duy nhất, "micro" cũng không có nghĩa là Flask thiếu
một vài tính năng nào đó.
"Micro" nghĩa là phần core của Flask rất gọn nhẹ, nhưng lại có khả năng mở rộng
tốt. Flask sẽ không ép buộc bạn dùng cái gì trong quá trình phát triển. Ví dụ bạn có thể
tùy ý chọn database nào mà bạn thích và quen dùng. Thứ duy nhất mà Flask chọn để
sử dụng mặc định cho bạn là Template Engine, tuy nhiên bạn vẫn có thể dùng một
template engine khác một cách dễ dàng.
BlueZ
Tính năng:
BlueZ hỗ trợ các lớp và giao thức cho core Bluetooth raspberry. Nó linh hoạt,
hiệu quả và có một mô đun đầy đủ. Nó có các tính năng như:
• Complete modular implementation – Bộ mô đun hoàn chỉnh.
• Symmetric multi processing safe – Đa xử lý đối xứng (Là kiến trúc máy tính bao
gồm nhiều bộ vi xử lý cùng sử dụng chung bộ nhớ, một hệ điều hành, một phiên bản
của ứng dụng bất kỳ và chung một dữ liệu. Hệ điều hành có thể chia công việc ra
thành nhiều việc nhỏ và giao cho một bộ xử lý bất kỳ còn rỗi. Nhờ vậy tốc độ xử lý
dữ liệu tăng lên.)
68. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 32
69. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
• Multithreaded data processing – Xử lý dữ liệu đa luồng
• Support for multiple Bluetooth devices – Hỗ trợ nhiều thiết bị Bluetooth.
• Real hardware abstraction – tách biệt phần cứng.
• Standard socket interface to all layers – socket tiêu chuẩn cho các lớp.
• Device and service level security support – Hỗ trợ bảo mật.
Hiện tại BlueZ bao gồm các mô đun sau:
• Kernel Bluetooth.
• Kernel âm thanh L2CAP và SCO.
• Giao thức RFCOMM, BNEP, CMTP và HIDP.
• Trình điều khiển thiết bị ảo HCI UART, USB, PCMCIA.
• General Bluetooth and SDP libraries and daemons
• Các công cụ cấu hình và thử nghiệm khác.
• Các công cụ giãi mã và phân tích.
Nền tảng
Các công cụ, thư viện và mô đun BlueZ làm việc tốt với nhiều kiến trúc vi xử lý
có hỗ trợ Linux, bao gồm các nền tảng đơn và đa xử lý cũng như các hệ thống siêu
phân luồng:
• Intel and AMD x86
• AMD64 and EM64T (x86-64)
• SUN SPARC 32/64bit
• PowerPC 32/64bit
• Intel StrongARM and XScale
• Hitachi/Renesas SH processors
• Motorola DragonBall
Hỗ trợ
BlueZ có mặt và tương thích ở hầu hết các phiên bản Linux:
• Debian GNU/Linux
• Ubuntu Linux
• Fedora Core / Red Hat Linux
• OpenSuSE / SuSE Linux
• Mandrake Linux
• Gentoo Linux
• Chrome OS
Giải thưởng
• TuxMobil GNU/Linux Award 2005
70. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 33
71. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
2. STM8S003F3P6
2.1. Giới thiệu vi điều khiển STM8
STM8 là một nền tảng lõi vi điều khiển 8 bit mạch mẽ của ST với rất nhiều ngoại
vi phổ biến. Nó được sản xuất trên công nghệ 130 nm, được nhúng sẵn bộ nhớ để lưu
dữ liệu khi không cung cấp điện (non-volatile memory). Nền tảng STM8 có 4 dòng
chip như sau:
• STM8S là dòng vi điều khiển chính, đáp ứng với các nhu cầu thông dụng.
• STM8L là dòng vi điều khiển tiết kiệm năng lượng, thích hợp cho các ứng dụng dùng
PIN, IoT,...
• STM8AF và STM8AL là dòng vi điều khiển dành cho các ứng dụng trong ngành
công nghiệp ô tô. Mức độ ổn định cao nhất trong các dòng STM8.
Hình 2.14. Chip STM8S
Dòng vi điều khiển STM8 thông dụng ở Việt Nam là STM8S với các đại diện
tiêu biểu là các chip STM8S003F3P6, STM8S103K3T6,... Sở dĩ có điều đó bởi giá
thành của chúng rất thấp so với mặt bằng chung, nhưng sức mạnh lẫn như ngoại vi đều
không hề thua kém, hơn nữa hãng cũng hỗ trợ rất nhiều.
Ví dụ đối với STM8S103F3P6, thông số cấu hình cơ bản như sau:
- Dãy điện áp làm việc: 2.95v - 5.5v.
- STM8S103 là loại chíp theo chuẩn S của ST (S : standard) ,mỗi chu kỳ dao
động thực hiện được 1 lệnh 8 bit, gọi là vi điều khiển 8 bit.
- Hỗ trợ tốc độ đến 16MHz ; Mỗi giây thực hiện được 16 triệu phép tính, hỗ trợ dao
động thạch anh và dao động nội RC .
- Flash: 8KB.
72. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 34
73. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
- Ram: 1KB.
- EEPROM: 128 Byte ( đây là bộ nhớ Data, Data không bị mất sau khi mất điện).
- ADC: 10 bit ( bộ chuyển đổi tương tự sang số độ phân giả 10 bít).
- Timer: 3 ( timer 1, timer 2, timer 4).
- Bộ định thời giám sát watchdog timer.
- UART, SPI, I2C.
Hình 2.15: Mạch nguyên lí kit STM8S103F3P6
74. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 35
75. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
Hình 2.16: Kit STM8S103F3P6
2.2. Trình biên dịch (compiler) và debugger:
Hiện nay có hai trình biên dịch phổ biến cho dòng STM8 là Cosmic và IAR, đồ
án sử dụng trình biên dịch IAR.
IAR Embedded Workbench – là công cụ mạnh mẽ và thuận tiện cho lập trình vi
điều khiển. Đây là một phương tiện debug STM8 chạy trong Windows. Nó bao gồm
các trình biên soạn, biên dịch C, assembly, debug, với sự tương tác tốt với các chương
trình bên ngoài. Được xây dựng trong trình soạn thảo cấu hình đặc biệt với cú pháp C,
và các công cụ bổ sung.
Hướng dẫn sử dụng IAR tham khảo tại hocarm.net:
- Cài đặt IAR embedded Workbench. Tải phần mềm tại:
https://www.iar.com/iar-embedded-workbench/
- Kết nối USB STM8S vào máy tính.
- Mở IAR Embedded
Hình 2.17: Biểu tượng trình biên dịch IAR
76. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 36
77. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
- Tạo một dự án mới bằng cách đi vào File -> New -> Workspace
Hình 2.18: Create New Workspace
- Sau đó, Project -> Create New Project
Hình 2.19: Create New Project
78. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 37
79. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
- Chọn ngôn ngữ C rồi nhấn OK
Hình 2.20: Chọn main C
-Chọn nơi lưu Project rồi chờ một lát ta được như hình.
Hình 2.21: Chọn nơi lưu
80. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 38
81. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
-Chuột phải vào tên Project đã lưu, chọn Options
Hình 2.22: Chọn Option
-Chọn loại chip STM8 cần sử dụng
Hình 2.23: Chọn chip
82. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 39
83. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ SỬ DỤNG TRONG HỆ THỐNG
-Chọn như hình:
Hình 2.24: Cửa sổ Debugger
-Nhấn OK để hoàn tất quá trình thiết lập
Hình 2.25: Hoàn tất
84. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 40
85. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG
3.1Sơ đồ nguyên lý:
Hình 3.1: Mạch nguyên lý của mô hình
3.2 Mạch in PCB:
Hình 3.2: PCB của mô hình
86. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 41
87. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 4: GIẢI THUẬT VÀ CHƯƠNG TRÌNH
CHƯƠNG 4: GIẢI THUẬT VÀ CHƯƠNG TRÌNH
1. THIẾT KẾ WEBSERVER
1.1. Webserver
Hình 4.1: Webserver
Web Server là máy tính mà trên đó cài đặt phần mềm phục vụ Web, đôi khi người
ta cũng gọi chính phần mềm đó là Web Server. Tất cả các Web Server đều hiểu và
chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu
file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx...; Apache
dành cho *.php...; Sun Java System Web Server của SUN dành cho *p...
Đề tài sử dụng RPi để lưu trữ thông tin như một ngân hàng dữ liệu, chứa những
website đã được thiết kế cùng với những thông tin liên quan khác như các mã Script,
các chương trình, và các file Multimedia…
Web Server có khả năng gửi đến máy khách những trang Web thông qua môi
trường Internet (hoặc Intranet) qua giao thức HTTP - giao thức được thiết kế để gửi
các file đến trình duyệt Web (Web Browser), và các giao thức khác.
Web Server trên RPi có một địa chỉ IP (ví dụ: 192.168.99.100:8000). Khi gõ vào
thanh Address trên trình duyệt dòng 192.168.99.100:8000, sau đó Enter. Server trên
RPi sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt máy khách.
Khi máy tính kết nối đến Web Server và gửi đến yêu cầu truy cập các thông tin từ
một trang Web dựng sẵn trên RPi, Web Server Software sẽ nhận yêu cầu và gửi lại
những thông tin cho máy khách.
Giống như những phần mềm khác, Web Server Software cũng chỉ là một ứng dụng
phần mềm. Nó được cài đặt và chạy trên máy tính nhúng RPi, nhờ có chương trình này
mà người sử dụng có thể truy cập đến các thông tin của trang Web trên RPi.
Cần lưu ý những điều sau:
88. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 42
89. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 4: GIẢI THUẬT VÀ CHƯƠNG TRÌNH
• Chỉ có khách được phép gửi request tới server và chỉ có server mới có
quyền trả lời các request của khách
• Khi yêu cầu một file thông qua HTTP, khách phải cung cấp url của file
• Web server phải trả lời mọi yêu cầu HTTP, ít nhất với thông báo lỗi.
Trên web server, máy chủ HTTP có trách nhiệm xử lý và trả lời các yêu cầu đến
• Khi nhận yêu cầu, máy chủ HTTP đầu tiên sẽ kiểm tra xem URL yêu cầu có khớp
với tệp hiện có hay không.
• Nếu vậy, máy chủ web gửi nội dung tệp tin về trình duyệt. Nếu không, máy chủ
ứng dụng sẽ tạo tệp cần thiết.
• Nếu không thể xử lý được, máy chủ web trả lại thông báo lỗi cho trình duyệt,
thông thường là "404 Not Found.
1.2. Tiến hành tạo Webserver
Đầu tiên, ta cần phải cài đặt Flask với trình quản lý gói pip:
Sudo pip install flask
Sau đó, tạo file hello.py và viết đoạn code sau:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8000, debug=True)
Mở terminal, chạy file hello.py bằng python, ta được:
pi@raspberrypi ~ $ sudo python hello-flask.py
* Running on http://0.0.0.0:8000/
* Restarting with reloader
90. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 43
91. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 4: GIẢI THUẬT VÀ CHƯƠNG TRÌNH
Truy cập vào địa chỉ: http://127.0.0.1:8000/ bằng trình duyệt trên RPi, hoặc dùng thiết
bị khác truy cập vào địa chỉ IP của RPi trong cùng mạng nội bộ, trên trình duyệt sẽ
xuất hiện dòng “Hello World” .
Hình 4.2: Truy cập localhost
Để render một template từ file HTML, ta sử dụng hàm render_template() của Flask, và
việc đầu tiên phải làm là import hàm này vào trong hello-flask.py.
from flask import Flask, render_template
Tiếp theo, tạo thư mục templates, bên trong sẽ chứa các file html muốn render, ví dụ
main.html.
<!DOCTYPE html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>Hello, World!</h1>
<h2>The date and time on the server is: {{ time }}</h2>
</body>
</html>
92. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 44
93. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 4: GIẢI THUẬT VÀ CHƯƠNG TRÌNH
Viết lại file hello-flask.py để render trang html vừa tạo:
from flask import Flask, render_template
import datetime
app = Flask(__name__)
@app.route("/")
def hello():
now = datetime.datetime.now()
timeString = now.strftime("%Y-%m-%d %H:%M")
templateData = {
'title' : 'HELLO!',
'time': timeString
}
return render_template('main.html', **templateData)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8000, debug=True)
Chạy file .py vừa tạo, mở trình duyệt trên RPi và truy cập địa chỉ
http://127.0.0.1:8000/ , trên trình duyệt sẽ xuất hiện dòng “Hello World” kèm theo thời
gian hiện tại trên RPi.
1.3. Điều khiển RASPBERRY PI với FLASK
Raspberry Pi là máy tính nhúng chạy hệ điều hành Raspian được nhà phát triển hỗ
trợ điều khiển các ngoại vi như (GPIO, PWM, I2C, UART,… ) qua ngôn ngữ Python.
Ta sẽ sử dụng thư viện RPi.GPIO của python kết hợp với Flask để điều khiển các
chân 23, 24, 25 của Raspberry Pi.
Tạo một file mới tên hello-gpio.py, để dùng được thư viện RPi.GPIO, cần phải
import nó:
import RPi.GPIO as GPIO
Toàn bộ file hello-gpio.py:
from flask import Flask, render_template
import datetime
import RPi.GPIO as GPIO
app = Flask(__name__)
94. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 45
95. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
CHƯƠNG 4: GIẢI THUẬT VÀ CHƯƠNG TRÌNH
GPIO.setmode(GPIO.BCM)
@app.route("/")
def hello():
now = datetime.datetime.now()
timeString = now.strftime("%Y-%m-%d %H:%M")
templateData = {
'title' : 'HELLO!',
'time': timeString
}
return render_template('main.html', **templateData)
@app.route("/readPin/<pin>")
def readPin(pin):
try:
GPIO.setup(int(pin), GPIO.IN)
if GPIO.input(int(pin)) == True:
response = "Pin number " + pin + " is high!"
else:
response = "Pin number " + pin + " is low!"
except:
response = "There was an error reading pin " + pin + "."
96. Luận Văn Group viết luận văn thạc sĩ,chuyên đề,khóa luận tốt nghiệp, báo cáo thực tập,
Assignment, Essay
Zalo/Sdt 0967 538 624/ 0886 091 915 Website:lamluanvan.net
SVTH: ĐẶNG TRANG NHẬT TẢO LỚP: D13CQKD02-N 46