CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÖC ----o0o----
Tp. HCM, ngày 06 tháng 07 năm 2018
TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
MSSV: 11141113 MSSV: 11141123 Mã ngành: 01 1 Mã hệ: 11141DT1A Lớp: Hà Đăng Lộc Kỹ thuật Điện - Điện tử Đại học chính quy 2011
Họ tên sinh viên: Nguyễn Văn Lập Chuyên ngành: Hệ đào tạo: Khóa: I. TÊN ĐỀ TÀI: THIẾT KẾ XE ĐIỀU KHIỂN TỪ XA CÓ LIVE STREAM
CAMERA.
TS. Nguyễn Thị Lƣỡng
BM. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
II. NHIỆM VỤ 1. Các số liệu ban đầu: - Nguyễn Đình Phú, Giáo trình kỹ thuật số, Trƣờng ĐH Sƣ Phạm Kỹ Thuật, 2014 - Nguyễn Ngọc Hùng, Nguyễn Ngô Lâm, Nguyễn Văn Phúc, Giáo trình Kỹ thuật truyền số liệu, Trƣờng ĐH Sƣ Phạm Kỹ Thuật, 2011 - Nguyễn Mạnh Tiến, Điều khiển robot công nghiệp, Trƣờng ĐH Bách Khoa Hà Nội, 2007 - Võ Minh Huân, Phạm Quang Huy, Lập trình điều khiển với Rasberry, Nhà xuất bản Thanh Niên 2. Nội dung thực hiện: - Điều khiển xe robot chạy tiến ,lùi ,trái và phải - Sử dụng camera để truyền hình ảnh trực tiếp - Viết chƣơng trình điều khiển cho kit raspberry pi 3 - Thiết lập web server và thực hiện truyền dữ liệu - Thi công mô hình xe robot - Sản phẩm cuối cùng và chạy thực tế III. NGÀY GIAO NHIỆM VỤ: 06/04/2018 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 06/07/2018 V. HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN: CÁN BỘ HƢỚNG DẪN
ii
CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÖC ----o0o----
TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Tp. HCM, ngày 06 tháng 07 năm 2018
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: Hà Đăng Lộc Lớp: 11141DT1A MSSV: 11141123 Họ tên sinh viên 2: Nguyễn Văn Lập Lớp: 11141DT1A MSSV: 11141113 Tên đề tài: THIẾT KẾ XE ĐIỀU KHIỂN TỪ XA CÓ LIVE STREAM CAMERA
Tuần/ngày Nội dung Xác nhận GVHD
Gặp GVHD nhận đề tài TUẦN 1
Viết đề cƣơng chi tiết TUẦN 2
TUẦN 3 Tìm hiểu các đề tài đã nghiên cứu lien quan đến điều khiển tự động
Gặp GVHD để báo cáo về hƣớng thực hiện đề tài TUẦN 4
TUẦN 5 Tìm hiểu về Rasberry, camera, động cơ servo, module điều khiển động cơ
TUẦN 6 Lập trình giao tiếp Rasberry với camera và điều khiển động cơ
TUẦN 7 Tìm hiểu về web server và các giao thức truyền dữ liệu
TUẦN 8 Truyền hình ảnh trực tiếp từ camera lên web server
Điều khiển xe tiến lùi trái phải từ web server TUẦN 9
Hoàn thành mô hình, cân chỉnh hệ thống TUẦN 10
Viết báo cáo đồ án TUẦN 11
Chỉnh sửa và hoàn thiện báo cáo TUẦN 12
GV HƢỚNG DẪN (Ký và ghi rõ họ và tên)
iii
LỜI CAM ĐOAN
Ngƣời thực hiện đề tài
Đề tài này là do tôi tự thực hiện dựa vào một số tài liệu trƣớc đó và không sao chép từ tài liệu hay công trình đã có trƣớc đó.
SVTH1: NGUYỄN VĂN LẬP
SVTH2: HÀ ĐĂNG LỘC
iv
LỜI CẢM ƠN
Sau khi hoàn thành luận văn, nhóm em xin chân thành cảm ơn đến:
Cô Nguyễn Thị Lƣỡng, ngƣời đã tận tình giúp đỡ và luôn quan tâm chúng em
trong suốt quá trình thực hiện luận văn. Cô luôn tạo mọi điều kiện và thể hiện sự quan
tâm đến nhóm chúng em. Một lần nữa chúng em xin chân thành cảm ơn cô.
Chúng em xin chân thành gửi lời cảm ơn đến tất cả quý thầy cô trong khoa Điện -
Điện tử, những ngƣời đã truyền đạt cho chúng em những kiến thức vô cùng quý báu làm
hành trang vững chắc cho chúng em bƣớc vào đời. Và cũng cảm ơn trƣờng đã tạo cho
chúng em một môi trƣờng học tập thật tốt trong suốt thời gian qua.
Cuối cùng chúng em xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên và
giúp đỡ chúng em trong thời gian thực hiên luận văn này.
Do hạn chế về thời gian và kinh nghiệm nên chắc chắn rằng luận văn này không
tránh khỏi những sai sót nhất định. Em rất mong đƣợc sự góp ý và hƣớng dẫn thêm ttừ
quý thầy cô.
Tp. Hồ Chí Minh,ngày 3 tháng 7 năm 2018
.
Một lần nữa chúng em xin chân thành cảm ơn !
Sinh viên Sinh viên
Nguyễn Văn Lập
Hà Đăng Lộc
iviv
2.2.2. Module camera
MỤC LỤC Trang bìa ……………………………………………………………………………....i Nhiệm vụ đồ án……………………………………………………………………………ii Lịch trình ……………………………………………………………………………..iii Cam đoan ……………………………………………………………………………..iv Lời cảm ơn ……………………………………………………………………………...v Mục lục ……………………………………………………………………………..vi Liệt kê hình vẽ…….………………………………………………………………...…..viii Liệt kê bảng vẽ …………………………………………………………………………....x Tóm tắt ………………………………………………………………………….….xi CHƢƠNG 1. TỔNG QUAN…………………….………………………………………..1 1.1. ĐẶT VẤN ĐỀ……………………………………………………………………….1 1.2. MỤC TIÊU…………………………………………………………………………..2 1.4. GIỚI HẠN………….……………………………………………………………......2 1.5. BỐ CỤC…………...…………………………………………………………….......4 CHƢƠNG 2. CƠ SỞ LÝ THUYẾT……………………………………………………...4 2.1. TỔNG QUAN VỀ XE ĐIỀU KHIỂN LIVE STREAM CAMERA………………...4 2.1.1. Giới thiệu sơ lƣợc về điều khiển từ xa……………….……………………….4 2.1.2. Giới thiệu và stream video lên trang web…………………………………….4 2.1.3. Định nghĩa…………………………………………………………………….5 2.1.4. Ƣu điểm ….………………………………………………………..………….5 2.2. GIỚI THIỆU PHẦN CỨNG………………………………………………………...6 2.2.1. Giới thiệu Raspberry Pi ..……………………………………………………..6 ……………………………………………………………...10 2.2.3. Module điều khiển động cơ L298……………..…………………………......11 2.2.4. Động cơ servo SG90………………………………………………………....11 2.2.5. Usb Tp-Link Tl-Wn725n………………………………………………….....12 2.2.6. Động cơ giảm tốc DC……………………………………………….…..…...13 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ………………………………………..……15 3.1. GIỚI THIỆU ……………………………………………………………………..15 3.2. TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG ………………………………………..15 ……………………………………………….15 3.2.1. Thiết kế sơ đồ khối hệ thống 3.2.2. Tính toán và thiết kế mạch……………………………………………...……16 3.2.3. Sơ đồ nguyên lý của toàn mạch……………………………………...………19 CHƢƠNG 4. THI CÔNG HỆ THỐNG………………………………………………….20 4.1. GIỚI THIỆU………………………………………………………………………..20 4.2. THI CÔNG HỆ THỐNG…………………………………………………………...20
vi
4.2.1. Tìm hiểu kỹ thuật video streaming theo mô hình server-client………….…..20 4.2.2. Kỹ thuật streaming video………………………….………….…...….……....20 a. Giao thức RTSP……………………...……………….…………………….…....22 b. Giao thức RTP…………………………......…………….…………….………...25 c. Giao thức RTMP - Real Time Messaging Protocol……….…………….….……27 d. FFMPEG - Phầm mềm xử lý audio, video hiệu quả ……….………………..…..29 4.2.3. Thiết lập web server và thực hiện truyền dữ liệu…………………….……….31 4.2.4. Thi công phần cứng của xe robot………………………………….…………32 4.2.5. Giao diện web server nhúng hình ảnh camera………………….……………..33 4.3. LẬP TRÌNH HỆ THỐNG…………………………………………..………….….34 4.3.1. Lƣu đồ giải thật điều khiển động cơ servo………………………………...….34 4.3.2. Lƣu đồ giải thật điều khiển động cơ DC……………………………….……...35 4.4. HƢỚNG DẪN SỬ DỤNG, THAO TÁC……………………………………...…...37 4.4.1 Các bƣớc để tạo một web server cho phép streaming dùng Pi-Camera…….….35 4.4.2 Cài đặt và điều khiển trên mạng Wan………………………………….……....40 a. Kết nối với Website trung gian…………………………………………… ..…40 b.Cài đặt phần mềm cho Raspberry Pi……………………………….……...……41 c.Cách kết nối Raspberry với remot3.it……………………………….…..…...…42 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ……………………….………......46 5.1. KẾT QUẢ………………………………………………………………….…....…46 5.2. NHẬN XÉT VÀ ĐÁNH GIÁ…………………………………………………...…46 5.2.1 Khoảng cách………………………………………………………………........46 5.2.2 Tốc độ mạng...……………………………………………………………...….49 5.2.3 Frame per second…………………………………………………………..…..52 CHƢƠNG 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN…………………………….....56 6.1 KẾT LUẬN ……………………………………………………………………..…56 6.2 HƢỚNG PHÁT TRIỂN…………………………………………………………....56 TÀI LIỆU THAM KHẢO……………………………………………………………….. PHU LỤC..........................................................................................................................
vi BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
LIỆT KÊ HÌNH VẼ
Hình Trang Hình 2.1. Hình ảnh điều khiển từ xa xe robot live stream camera. ................................ 5
Hình 2.2. Raspberry Pi Mode B ...................................................................................... 6
Hình 2.3. Cấu tạo của Raspberry Pi ................................................................................ 8
Hình 2.4. Module Camera ............................................................................................. 10
Hình 2.5. Module mạch cầu H L298 ............................................................................. 10
Hình 2.6. Động cơ SG90 ............................................................................................... 11
Hình 2.7. Usb tp-link tl-wn725n ................................................................................... 12 Hình 2.8. Động cơ giảm tốc DC ................................................................................. 13
Hình 3.1. Sơ khối của hệ thống ..................................................................................... 14
Hình 3.2. Camera kết nối Rasberry qua cáp ribbon ...................................................... 15
Hình 3.3. Khối điều khiển kết nối với động cơ ............................................................. 16
Hình 3.4. Động cơ servo SG90 ..................................................................................... 16
Hình 3.5. Động cơ giảm tốc DC ................................................................................... 17
Hình 3.6. Khối xử lý trung tâm ..................................................................................... 17
Hình 3.7. Web server giao tiếp với kit qua Usb Wifi ................................................... 18
Hình 3.8. Sạc dự phòng cấp nguồn cho kit raspberry pi 3 ............................................ 18
Hình 3.9. Nguồn cấp cho khối điều khiển module L298N ........................................... 19
Hình 3.10. Sơ đồ nguyên lý toàn mạch ......................................................................... 19
Hình 4.1. Streaming Video ........................................................................................... 21
Hình 4.2. OPTIONS Request ........................................................................................ 22
Hình 4.3. DESCRIBE Request ..................................................................................... 23
Hình 4.4. SETUP Request ............................................................................................. 24
Hình 4.5. PLAY Request .............................................................................................. 24
Hình 4.6. PAUSE Request ............................................................................................ 25
Hình 4.7. TEARDOWN Request .................................................................................. 25
Hình 4.8. Header của RTP Packet ................................................................................. 26
Hình 4.9. Giao thức RTMP - Real Time Messaging Protocol ...................................... 28
Hình 4.10. Tổng hợp các máy chủ trên thế giới ............................................................ 31
Hình 4.11. Giao diện tạo nút nhấn điều khiển .............................................................. 32
Hình 4.12. Kết quả phần cứng xe .................................................................................. 32
Hình 4.13. Kết quả streaming video và điều khiển qua Web ....................................... 33
Hình 4.14. Sơ đồ giải thuật điều khiển servo ................................................................ 34
Hình 4.15. Lƣu đồ giải thuật điều khiển động cơ DC ................................................... 35
viii
Hình 4.16. Giao diện sau khi đăng nhập remot3.it ....................................................... 41
Hình 4.17. Tạo kênh cho phần mềm để kết nối ............................................................ 41
Hình 4.18. Giao diện Putty.............................................................................................. 42
Hình 4.19. Địa chỉ hostname và port thông qua SSH ................................................... 43
Hình 4.20. Hostname và port khi kết nối VNC ............................................................. 43
Hình 4.21. Giao diện phần mềm TightVNC ................................................................. 44
Hình 4.22. Giao diện nhập mật khẩu kết nối ................................................................ 44
Hình 4.23. Giao diện Raspberry sau khi đã kết nối ...................................................... 45
Hình 5.1. Ảnh hƣởng khoảng cách đến quá trình stream video .................................... 47
Hình 5.2. Ảnh hƣởng tốc độ mạng đến quá trình stream video .................................... 50
Hình 5.3 Ảnh hƣởng Frame per second đến quá trình stream video ........................... 53
viii BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
LIỆT KÊ BẢNG
Bảng Trang
Bảng 2.1: Tổng quan về thông số của Raspberry Pi .............................................................8
Bảng 2.2: Trạng thái của Led khi kit hoạt động ………………………………………. .....9
Bảng 2.3: Thông số kĩ thuật usb tp-link tl-725n …………………………………… .......12
Bảng 4.1: So sánh giữa hai giao thức HTTP với RTMP …………………………… .......29
Bảng 5.1 Ảnh hƣởng khoảng cách đến quá trình stream video ……………………… ....48
Bảng 5.2 Ảnh hƣởng khoảng cách đến quá trình điều khiển robot …………………… ..48
Bảng 5.3 Ảnh hƣởng tốc độ mạng đến quá trình stream video ……….…………...….....51
Bảng 5.4 Ảnh hƣởng tốc độ mạng đến quá trình điều khiển robot ..……………..……...51
Bảng 5.5 Ảnh hƣởng fps đến quá trình stream video ……………………… ................ ..54
Bảng 5.6 Ảnh hƣởng fps đến quá trình điều khiển robot …………………… .................54
x
TÓM TẮT
Với sự cách mạng của nền công nghiệp 4.0, thế giới đã gần nhƣ
không còn khoảng cách. Chỉ cần một nút nhấn, mọi thiết bị có thể đƣợc
điều khiển ở bất cứ đâu. Để bắt kịp xu hƣớng đó, nhóm sinh viên quyết
định thực hiện đề tài “Điều khiển xe từ xa có live stream camera”.
Đề tài trình bày về lý thuyết của Raspberry Pi và một ứng dụng rất
phổ biến trong cộng đồng từ Raspberry Pi. Một ứng dụng có thể thay thế
con ngƣời vào đƣợc những nơi nguy hiểm đến tính mạng.
Nguyên lý hoạt động cụ thể:
Raspberry Pi sẽ nhận lệnh từ ngƣời điều khiển thông qua
webserver để thực hiện lệnh rồi truyền lệnh để điều
Camera sẽ nhận lệnh stream và phản hồi lại Raspberry
khiển động cơ.
Pi rồi truyền lên webserver để cho ngƣời điều khiển biết
Kết quả mong muốn của nhóm sinh viên sẽ thiết kế đƣợc mô
thông tin hoạt động.
hình xe hoàn chỉnh, điều khiển tiến, lùi, trái, phải ổn đinh và mƣợt mà,
đồng thời, chất lƣợng hình ảnh truyền từ xe lên trình duyệt web rõ nét và có
độ trễ thấp. Qua đó, nhóm sẽ phát triển đề tài và đƣa sản phẩm vào thực
tiễn nhằm phục vụ đời sống nâng cao của con ngƣời.
xi
CHƢƠNG 1. TỔNG QUAN Chƣơng 1. TỔNG QUAN
1.1. ĐẶT VẤN ĐỀ
Thời gian qua chúng ta thƣờng hay nghe nhắc đến nền công nghiệp 4.0 còn
gọi là công nghiệp lần thứ tƣ. Đó là sự tiến bộ công nghệ tạo ra sự kết nối thế giới
thực, thế giới số và thế giới sinh vật hữu cơ tạo ra những công cụ sản xuất giữa thực
và ảo. Những thành phần điển hình của nền công nghiệp 4.0 bao gồm sự xuất hiện
của Internet vạn vật (IoT), thành phố thông minh, trí tuệ nhân tạo, xe tự lái, robot,
máy in 3D, vật liệu mới, công nghệ nano cùng đột phá về nhận thức trong quy trình
sinh học.
Nói về IoT hay còn có tên đầy đủ là “Internet of Things” dịch nôm na là “Vạn
vật kết nối Internet”. Nó là một hệ thống với mọi thiết bị liên quan đến nhau, mọi
vật đƣợc kết nối với nhau qua một giao thức chung đó là mạng truyền thông hay
Internet. Hiểu một cách đơn giản, bạn chỉ cần một thiết bị kết nối mạng là có thể
điều khiển đƣợc nó mà bất cứ bạn đang ở bất kì đâu. Điều khiển thiết bị từ xa với
IoT thật đơn giản khi bây giờ bạn chỉ cần kết nối internet cho thiết bị mình cần điều
khiển phải không nào?.
Dựa vào các ứng dụng thực tiễn của điều khiển từ xa ta có thể chia làm 2 dạng:
Điều khiển từ xa vô tuyến và điều khiển từ xa hữu tuyến.
Điều khiển từ xa vô tuyến:
Có thể điều khiển từ xa bằng tia sáng hồng ngoại hay sóng siêu âm. Môi trƣờng
truyền là không khí. Với tia hồng ngoại ta chỉ có thể điều khiển các thiết bị ở
khoảng cách gần. Vì vậy nó đƣợc ứng dụng nhiều cho các thiết bị dân dụng.
Điều khiển từ xa hữu tuyến:
Với dạng điều khiển này ta lợi dụng vào đƣờng truyền của internet để điều khiển các
thiết bị từ xa.
Đối với hệ thống điều khiển xa bằng mạng không dây thì giới hạn về khoảng
cách là yếu điểm của kỹ thuật này, ngƣợc lại với mạng internet đã đƣợc mở rộng với
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1
CHƢƠNG 1. TỔNG QUAN quy mô toàn thế giới thì giới hạn xa không phụ thuộc vào khoảng cách đã mở ra
một lối thoát mới trong lĩnh vực tự động điều khiển.
Hiện nay, do nhu cầu trao đổi thông tin của ngƣời dân ngày càng tăng đồng
thời việc gắn các thiết bị internet ngày càng phổ biến rộng rãi, do đó việc sử dụng
mạng internet để truyền tín hiệu điều khiển là phƣơng thức thuận tiện nhất, tiết
kiệm nhiều thời gian cho công việc, vừa đảm bảo các tính năng an toàn cho các
thiết bị điện gia dụng vừa tiết kiệm đƣợc chi phí sử dụng và đảm bảo an toàn cho
tính mạng và tài sản của mỗi ngƣời dân.
1.2. MỤC TIÊU
Đề tài có những mục tiêu chính nhƣ sau :
- Thiết kế sản phẩm hoàn chỉnh gồm xe điều khiển từ xa, gắn camera live stream qua
web server sử dụng Raspberry Pi, dùng Wifi.
- Viết chƣơng trình điều khiển cho kit Raspberry Pi, thiết lập web server và thực
hiện truyền dữ liệu
1.3. NỘi DUNG NGHIÊN CỨU
NỘI DUNG 1: Thu thập dữ liệu quy trình thiết kế một hệ thống điều khiển xe có
live stream camera.
NỘI DUNG 2: Các giải pháp thiết kế hệ thống, mô hình điều khiển xe với chức
năng live stream.
NỘI DUNG 3: Lựa chọn các thiết bị trong việc thiết kế mô hình điều khiển xe live
stream camera.
NỘI DUNG 4: Viết chƣơng trình và thiết kế hệ thống điều khiển.
NỘI DUNG 5: Thiết kế mô hình.
NỘI DUNG 6: Đánh giá kết quả thực hiện.
1.4. GIỚI HẠN
Xe kết nối qua wifi nên khoảng cách điều khiển còn hạn chế.
Bị lỗi khi mạng bất ổn định (<3Mbp/s).
Thời gian hoạt động liên tục của xe tƣơng đối ngắn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2
CHƢƠNG 1. TỔNG QUAN
Chất lƣợng video live stream chỉ nhìn rõ trong môi trƣờng ánh sáng đầy đủ.
Tính bảo mật chƣa cao (Các thành viên truy cập cùng một mạng đều điều khiển
đƣợc khi biết IP của Raspberry Pi).
1.5. BỐ CỤC
Nội dung đề tài gồm các phần sau:
Chƣơng 1: Tổng quan
Đặt vấn đề
Mục tiêu của đề tài
Nhiệm vụ của đề tài
Giới hạn
Chƣơng 2: Cơ sở lý thuyết
Giới thiệu hệ điều hành Raspberry Pi
Giới thiệu Board mạch Raspberry Pi
Giới thiệu mạch công suất L298N
Giới thiệu về module camera
Chƣơng 3: Tính toán và thiết kế
Giới thiệu phần mềm lập trình
Viết chƣơng trình giao tiếp
Kết quả lập trình
Chƣơng 4: Thi công hệ thống
Thiết kế phần cứng
Giới thiệu linh kiện sử dụng trong thiết kế
Mô hình xe robot
Giao tiếp các thiết bị và điều khiển mô hình
Chƣơng 5: Kết luận
Những mục tiêu đạt đƣợc
Hƣớng phát triển đề tài
Hạn chế của đề tài
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
Chƣơng 2. CƠ SỞ LÝ THUYẾT
2.1 TỔNG QUAN VỀ XE ĐIỀU KHIỂN LIVE STREAM CAMERA
2.1.1 Giới thiệu sơ lƣợc về điều khiển từ xa
Dựa vào các ứng dụng thực tiễn của điều khiển từ xa, ta có thể chia làm 2
Điều khiển từ xa hữu tuyến:
dạng: Điều khiển từ xa vô tuyến và điều khiển từ xa hữu tuyến.
Có thể điều khiển từ xa bằng tia sáng hồng ngoại hay sóng siêu âm. Môi
trƣờng truyền là không khí. Với tia hồng ngoại ta chỉ có thể điều khiển các thiết bị ở
khoảng cách gần. Vì vậy, nó đƣợc ứng dụng nhiều cho các thiết bị dân dụng.
Điều khiển từ xa hữu tuyến:
Đối với hệ thống điều khiển xa bằng mạng không dây thì giới hạn về khoảng
cách là yếu điểm của kỹ thuật này, ngƣợc lại với mạng internet đã đƣợc mở rộng
với quy mô toàn thế giới thì giới hạn xa không phụ thuộc vào khoảng cách đã mở ra
một lối thoát mới trong lĩnh vực tự động điều khiển.
Hiện nay, do nhu cầu trao đổi thông tin của ngƣời dân ngày càng tang, đồng
thời việc gắn các thiết bị internet ngày càng phổ biến rộng rãi, do đó việc sử dụng
mạng internet để truyền tín hiệu điều khiển là phƣơng thức thuận tiện nhất, tiết kiệm
nhiều thời gian cho công việc, vừa đảm bảo các tính năng an toàn cho các thiết bị
điện gia dụng vừa tiết kiệm đƣợc chi phí sử dụng và đảm bảo an toàn cho tính mạng
và tài sản của mỗi ngƣời dân.
2.1.2 Giới thiệu và stream video lên trang web
Streaming video là một kỹ thuật đƣợc sử dụng khá phổ biến trong các ứng
dụng mạng. Rất nhiều các địa chỉ ứng dụng rộng rãi trong thực tế nhƣ: các phần
mềm (media player, web browser, ...) trên các máy khách truy cập và xem video từ
các máy chủ theo mô hình server/client; các ứng dụng hội họp trực tuyến, đào tạo từ
xa; giám sát, điều khiển từ xa qua hình ảnh thời gian thực, v.v... Trong đó có nhiều
ứng dụng sử dụng hệ thống nhúng triển khai kỹ thuật này.
Streaming video sử dụng cách thức phát lại các đoạn video đƣợc lƣu trữ trên
các máy tính trên mạng tới ngƣời dùng đầu cuối muốn xem đoạn video mà không
cần tải đoạn video đó về trên máy tính. Về bản chất, streaming video là quá trình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
chia nhỏ file video thành các frame, rồi lần lƣợt gửi từng frame tới một bộ đệm trên
máy tính của ngƣời xem và hiển thị nội dung frame đó. Và quá trình này tuân thủ
chặt chẽ về ràng buộc theo thời gian, nói khác là tuân thủ chặt chẽ theo giao thức
RTSP, RTP và RTCP. Với đặc tính nhƣ vậy thì streaming video là kỹ thuật cũng
khá phức tạp để triển khai. Nhƣng với những lợi ích mà kỹ thuật streaming video
đem lại, chúng ta hoàn toàn có thể triển khai đƣợc kỹ thuật này trên thực tế.
2.1.3 Định nghĩa
Điều khiển xe robot từ xa có live stream camera với camera đƣợc tích hợp vào
xe sẽ truyền hình ảnh trực tiếp lên hệ thống mạng internet. Từ hệ thống mạng
internet xem đƣợc hình ảnh trực tiếp từ xe robot truyền lên đồng thời có thể điều
khiển xe di chuyển qua động cơ DC đƣợc gắn trên xe trong phạm vi nhất định.
Một xe robot điều khiển từ xa có live stream camera gồm các tính năng:
Xe có thể chay tới, lui, quay trái, quay phải, dừng.
Điều khiển đƣợc camera quay trái, quay phải.
H nh 2.1. Hình ảnh điều khiển từ xa xe robot live stream camera
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
2.1.4. Ƣu điểm
Với mọi thiết bị kết nối vào mạng internet thì chúng ta có thể điều khiển cũng
nhƣ xem hình ảnh trực tiếp từ xe trong phạm vi nhất định khi chúng ta ở bất cứ đâu.
2.2. GIỚI THIỆU PHẦN CỨNG
2.2.1. Giới thiệu Raspberry Pi
1. Sự ra đời
Raspberry Pi là một máy tính đơn khối có kích thƣớc nhỏ nhƣ chiếc thẻ ATM
đƣợc phát triển bởi Quỹ Raspberry (nƣớc Anh) với mục tiêu khuyến khích học tập
khoa học máy tính trong trƣờng học.
Hình 2.2 Raspberry Pi Mode B
Raspberry Pi đƣợc bắt đầu phát triển từ năm 2006, phiên bản đầu tiên dựa trên
vi điều khiển AVR Atmel ATmega644. Ngày 16 tháng 6 năm 2012, những chiếc
Raspberry Pi đầu tiên đƣợc gửi đến tay ngƣời nhận. Đến ngày 22/5 hơn 20.000 chiếc
đã đƣợc bán ra. Ngày 16/7/2012, Quỹ Raspberry Pi thông báo có 4000 sản phẩm
đƣợc phân phối mỗi ngày và bắt đầu cho phép ngƣời dùng mua “máy tính nhỏ” này
với số lƣợng lớn. Trong vòng 3 năm kể từ khi đƣợc bán ra, đã có hơn 5 triệu chiếc
Pi đã đƣợc bán ra thị trƣờng (theo số liệu thống kê của trang chủ Raspberry Pi). Vậy
điều gì làm nên thành công ngoài sức tƣởng tƣợng của Raspberry Pi ?
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
Raspberry Pi có mức giá quá hấp dẫn: chỉ từ 25$ cho một chiếc bo mạch có
thể làm hầu nhƣ mọi ứng dụng hằng ngày nhƣ lƣớt web, lập trình, xem phim HD
đến những ý tƣởng mà bạn không ngờ đến nhƣ điều khiển robot, nhà thông minh,..
Một điều quan trọng là nó tiết kiệm điện và khả năng chạy liên tục 24/24.
Raspberry Pi chạy hệ điều hành Linux: 99% những thứ mà bạn có thể làm trên
máy tính đều có thể làm trên Window và quan trọng là tất cả đều miễn phí.
Raspberry Pi có kích thƣớc tí hon: chỉ tƣơng đƣơng nhƣ một chiếc thẻ ATM và
nặng chƣa đầy 50 gram. Gắn với chiếc tivi bạn có thể biến nó thành một thiết bị giải
trí thông minh trong phòng khách. Gắn với màn hình và bàn phím, chuột bạn có thể
biến nó thành một chiếc máy tính đúng nghĩa. Nhỏ gọn và tiện lợi.
Cộng đồng Raspberry Pi phát triển rất nhanh trên thế giới: Hầu hết những thắc
mắc của bạn đều đƣợc giải đáp rất nhanh va còn hơn thế nữa: bạn có thể tìm thấy
hàng ngàn dự án đã thực hiện và vố số ý tƣởng độc đáo. Với những ƣu điểm độc
đáo trên, Raspberry đã vƣợt khỏi biên giới vủa trƣờng học và trở thành thiết bị ƣa
thích của rất nhiều ngƣời đam mê điện tử và lập trình. Sự thành công của nó đã mở
đã một bƣớc phát triển mới cho tin học: đem máy tính và cảm hứng lập trình đến
gần mọi ngƣời hơn bao giờ hết.
Raspbery Pi sử dụng chip Broadcom BCM2835 SoC (System on Chip) có chứa
bộ xử lý ARM1176JZF-S 700 Mhz (có thể ép xung lên 1Ghz), GPU Video Core IV,
và bộ nhớ RAM 256 sau nâng cấp lên 512MB. Nó không có ổ cứng hay SSD đi
kèm mà sử dụng thẻ SD để lƣu trữ dữ và khởi động hệ điều hành.
Raspbery Pi sử dụng chip Broadcom BCM2835 SoC (System on Chip) có
chứa bộ xử lý ARM1176JZF-S 700 Mhz (có thể ép xung lên 1Ghz), GPU Video
Core IV, và bộ nhớ RAM 256 sau nâng cấp lên 512MB. Nó không có ổ cứng hay
SSD đi kèm mà sử dụng thẻ SD để lƣu trữ dữ và khởi động hệ điều hành.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
2. Phần cứng
Bảng 2.1 Tổng quan về thông số của Raspberry Pi
Composite RCA hoặc HDMI Video outputs
3.5 mm jack , HDMI Audio outputs
SD/MMC/SDIO Card Slot Lƣu trữ
802.11 b/g/n Wireless LAN Mạng
40 GPIO pins Xuất nhập
5v , 2.5A Nguồn
85 x 56 x 17 mm Kích thƣớc
45g Trọng lƣợng
Hệ điều hành Debian GNU/Linux, Raspian OS, Arch Linux ARM, RIC OS, Free BSD, Plan 9…
Thông số Module B
CPU 1.2Ghz, lõi ARM Cortex-A53
(Soc)Broadcom BCM2837 Chip
GPU Dual core Videocore IV Multimedia co- processor
Bộ nhớ (SDRAM) 1GB
4x USP port USB 2.0 ports
Hình 2.3 Cấu tạo của Raspberry Pi
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
- CPU: “Trái tim “ của Raspberry Pi. Chip của Raspberry Pi là 32 bit, 700 Mhz
System on Chip, đƣợc xây dựng trên kiến trúc ARM11. Model B có 512MB RAM.
- SD Card Slot: Raspberry không có ổ cứng. Vì thế mọi thứ đều đƣợc lƣu trữ trên SD
Card từ hệ điều hành đến dữ liệu.
- Cổng USB: Model B có 2 cổng USB 2.0, có thể sử dụng để cắm các thiết bị ngoại vi
nhƣ bàn phím, con chuột.
- Cổng Ethernet: Model B có cổng Ethernet chuẩn RJ45.
- Cổng HDMI: Cổng HDMI cung cấp âm thanh và video số. Có 14 chuẩn video khác
nhau đƣợc hỗ trợ, và tín hiệu HDMI có thể chuyển đổi về DVI (Digital Video
Interface – Cổng truyền trực tiếp từ video số tới màn hình), cáp Composite (là loại 3
đầu dây ra 2 cho âm thanh và 1 cho hình ảnh) hoặc SCART (chuẩn giao tiếp châu
Âu) với bộ chuyển đổi bên ngoài.
Bảng 2.2 Trạng thái của kit khi hoạt động
Màu Trạng thái Led
Xanh Sáng khi SD card đƣợc truy cập ACT
Đỏ Đèn nguồn ( luôn sáng khi có nguồn) PWR
Xanh Sáng nếu mạng truyền song công FDX
Xanh Hoạt động của mạng LNK
Vàng Sáng nếu kết nối mạng 100Mps 100
- Ngõ ra Audio analog: thiết kế cắm giắc audio chuẩn 3.5mm, hƣớng tới lái tải có trở
kháng cao, tuy nhiên chất lƣợng nhõ ra kém hơn so với cổng HDMI khi bạn kết nối
tới TiVi thông qua HDMI.
- Ngõ ra Composite video: Cổng chuẩn loại RCA cung cấp tín hiệu video NTSC hoặc
PAL. Định dạng video qua cổng này độ phân giải thấp hơn so với cổng HDMI.
- Nguồn ngõ vào: Điều đầu tiên bạn nhận ra là không có cổng chuyển đổi nguồn trên
Pi. Cổng micro USB chỉ đƣợc sử dụng là nguồn cho Pi.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
2.2.2 Module camera
Hình 2.4 Module Camera
Thông số kĩ thuật:
- Ống kính tiêu cự cố định.
- Cảm biến độ phân giải 8megapixel cho khả năng chụp ảnh kích thƣớc
3280x2464.
- Hỗ trợ video 1080p30, 720p60 , 640x480p90.
- Kích thƣớc 25mm x 23mm x 9mm.
- Trọng lƣợng chỉ hơn 3g.
- Kết nối raspberry thông qua cáp ribbon đi kèm dài 15cm.
- Camera Module đƣợc hỗ trợ phiên bản mới nhất của Raspbian.
.
2.2.3 Module điều khiển động cơ L298N
Hình 2.5 Module mạch cầu H L298N
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
Module L298N có thể điều khiển 2 động cơ DC hoặc 1 động cơ bƣớc, có 4 lỗ
nằm ở 4 góc thuận tiện cho ngƣời sử dụng cố định vị trí của module.
+ Có thể gắn tản nhiệt chống nóng cho IC, giúp IC có thể điều khiển với dòng đỉnh
đạt 2A.
+ IC L298N đƣợc gắn với các đi-ốt trên board giúp bảo vệ vi xử lý chống lại các
dòng điện cảm ứng từ việc khởi động/ tắt động cơ.
Thông số kĩ thuật:
- Driver: L298N tích hợp hai mạch cầu H.
- Điện áp điều khiển: +5V ~ +12 V.
- Dòng tối đa cho mỗi cầu H là: 2A.
- Điện áp của tín hiệu điều khiển: +5 V ~ +7 V.
- Dòng của tín hiệu điều khiển: 0 ~ 36 mA.
- Công suất hao phí: 20W (khi nhiệt độ T = 75 °C).
2.2.4. Động cơ servo SG90
Servo là một dạng động cơ điện đặc biệt. Không giống nhƣ động cơ thông
thƣờng cứ cắm điện vào là quay liên tục, servo chỉ quay khi đƣợc điều khiển (bằng xung PWM) với góc quay nằm trong khoảng bất kì từ 0o - 180o. Mỗi loại
servo có kích thƣớc, khối lƣợng và cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ
yếu dùng trên máy bay mô mình), có loại thì sở hữu một momen lực rất lớn (vài
chục Newton/m), hoặc có loại thì khỏe và nhông sắc chắc chắn…
Hình 2.6 Động cơ SG90
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
Thông số kỹ thuật SG90:
- Khối lƣợng : 9g.
- Kích thƣớc: 22.2x11.8.32 mm.
- Momen xoắn: 1.8kg/cm.
- Tốc độ hoạt động: 60 độ trong 0.1 giây.
- Điện áp hoạt động: 4.8V(~5V).
- Nhiệt độ hoạt động: 0 ºC – 55 ºC.
2.2.5. Usb Tp-Link Tl-Wn725n
Bộ chuyển đổi USB Nano chuẩn N không dây tốc độ 150Mbps TL-725N
của TP-LINK cho phép người dùng kết nối một máy tính để bàn hoặc máy tính
xách tay với mạng không dây tốc độ 150Mbps.
H nh 2.7 Usb tp-link tl-wn725n Thông số kĩ thuật
Bảng 2.3 Thông số kĩ thuật usb tp-link tl-725n
Chuẩn không dây Tần số Tốc độ tín hiệu EIRP
Độ nhạy tiếp nhận
IEEE 802.11b, IEEE 802.11g, IEEE 802.11n 2.400-2.4835 GHz 11b: lên tới 11 Mbps (động) 11g: lên tới 54 Mbps (động) 11n: lên tới 150 Mbps (động) < 20 dBm 130M: -68 dBm@10% PER 108M: -68 dBm@10% PER 54M: -68 dBm@10% PER 11M: -85 dBm@10% PER 6M: -88 dBm@10% PER 1M: -90 dBm@10% PER Chế độ Ad-Hoc / Infrastructure Chế độ không dây
Bảo mật không dây Hỗ trợ các mã hóa: 64/128 WEP, WPA/WPA2, WPA-PSK/WPA2-PSK(TKIP/AES), hỗ trợ IEEE 802.1X
Công nghệ không dây BDPSK, DQPSK, CCK, OFDM, 16-QAM, 64-QAM
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
2.2.6. Động cơ giảm tốc DC
Động cơ giảm tốc DC đƣợc sử dụng nhiều để thiết kế các loại robot mô hình.
Với giá thành rẻ, dễ sử dụng và mang tính chất ƣu việt nên đƣợc ứng dụng rất
nhiều.
Hình 2.8 Động cơ giảm tốc DC
Thông số kỹ thuật
- Điện áp hoạt động: 3V~9V (hoạt động tố ở 6V~8V).
- Moment xoắn cực đại: 800gf cm min 1:48 (3V).
- Tốc độ không tải: 125 vòng/ 1 phút (3V) (Với bánh xe 66mm: 26m/1p).
208 vòng/ 1 phút (5V) (Với bánh xe 66mm: 44m/1p).
- Dòng không tải: 70mA (tối đa 250mA).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
3.1. GIỚI THIỆU
Trong đề tài này nhóm thiết kế mô hình xe robot gồm một kit Raspberry Pi
tích hợp camera, thông qua mạch cầu H điều khiển 2 động cơ giảm tốc DC, điều
khiển góc quay camera thông qua động cơ RC Servo 9G.
Mô h nh cần thiết kế nhƣ sau:
Hệ thống điều khiển trung tâm: sử dụng board Raspberry Pi 3.
Hệ thống mạch công xuất điều khiển động cơ: sử dụng module L298N để
điều khiển động cơ DC và Servo.
Hệ thống xe robot: Sử dụng 2 động cơ cho 2 bánh xe và 1 khung xe.
Hệ thống Web Server: Sử dụng giao diện Web để nhận hình ảnh truyền
lên và điều khiển xe
3.2. TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.2.1 Thiết kế sơ đồ khối hệ thống
KHỐI CÔNG SUẤT WEB SERVER
KHỐI XỬ LÝ TRUNG TÂM
H nh 3.1. Sơ khối của hệ thống
CAMERA KHỐI NGUỒN
Mạch gồm các khối chính:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Khối nguồn: Cung cấp nguồn cho toàn bộ mạch hoạt động.
Web Server: Nhận hình ảnh truyền lên và gởi tín hiệu điều khiển động cơ về
khối xử lý trung tâm.
Khối xử lý trung tâm: nhận tín hiệu từ Web Server từ ngõ vào để xử lý tín
hiệu đƣa ra khối điều khiển.
Khối công suất : nhận tín hiệu từ ngõ ra của khối xử lý trung tâm để điều
khiển động cơ.
Camera: Nhận tín hiệu từ khối xử lý trung tâm để xử lý tín hiệu đƣa hình ảnh
về.
3.2.2 Tính toán và thiết kế mạch
a. Camera
Hình 3.2 Camera kết nối Rasberry qua cáp ribbon
Camera đƣợc tích hợp trên kit Rasberry qua cáp ribbon nên sẽ dùng nguồn
trên kit mà không cần sử dụng nguồn bên ngoài.
Module camera có một cảm biến 8-Megapixel sử dụng để quay video với độ
nét cao, cũng nhƣ chụp ảnh tĩnh. Khá là đơn giản để sử dụng cho ngƣời mới bắt đầu
chỉ việc kết nối với kit qua cáp ribbon. Đặc biệt hỗ trợ video 1080p30, 720p60 rất
thích hợp trong việc quay video ứng dụng để live stream chẳng hạn. Nhóm đã khai
thác đặc điểm này để chọn thiết bị ghi hình cho quá trình live stream lên web.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
b. Khối công suất
Hình 3.3 Khối công suất kết nối với động cơ.
Khối công suất dùng module L298N kết nối và điều khiển 2 động cơ DC, 1
động cơ RC Servo 9G.
Động cơ RC Servo 9G sẽ đƣợc kết nối với nguồn 5V trên module L298N.
Động cơ DC sẽ đƣợc kết nối với 4 ngõ ra output của module L298N.
Ngõ vào của module L298N sẽ đƣợc kết nối với 4 ngõ ra của kit Raspberry (Ở
đây là ngõ ra GPIO trên kit).
Trên module L298N còn có một nguồn DC 5V rất tiện lợi cho việc cấp nguồn
cho động cơ RC Servo 9G (Không cấp nguồn 5V từ kit vì gây sụt áp trên kit ảnh
hƣởng đến quá trình hoạt động của kit).
Module L298N tiện lợi, dễ sử dụng, công suất cấp cho mạch khi không tải chỉ
25W nên nhóm chọn module trên để làm mạch công suất điều khiển các động cơ
trong hệ thống xe.
Động cơ servo SG90
Hình 3.4 Động cơ SG90
Chọn động cơ SG90 dùng để điều khiển camera xoay trái, phải hoặc giữa. Vì
module camera kèm phụ kiện đi kèm nặng ~10g trong khi moment xoắn của SG90
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
lên tới 1.8kg/cm. Ngoài ra SG90 chỉ nặng 9g rất nhỏ gọn, tốc độ hoạt động rất
nhanh 60 độ trên 0.1 giây, điều khiển dễ dàng từ kit thông qua việc điều chỉnh độ
rộng xung (PWM) trên GPIO.
Động cơ giảm ốc DC
Hình 3.5 Động cơ giảm tốc DC
Chọn động cơ giảm tốc DC để điều khiển xe chạy tới, lui, xoay trái, xoay phải.
Động cơ giảm tốc DC với tốc độ hoạt động tối đa 44mét/1phút ở điện áp 5V có thể
hoàn toàn đáp ứng đƣợc yêu cầu về hệ thống. Điều khiển tốc độ bằng độ rộng xung
thông qua chân GPIO trên kit rất dễ sử dụng. Với thiết kế đơn giản, nhỏ gọn nên
nhóm đã chọn động cơ trên để thiết kế cho phần di chuyển của xe.
c. Khối xử lý trung tâm
Hình 3.6 Khối xử lý trung tâm
Kit Raspberry Pi sử dụng nguồn cấp qua cổng Micro USB 5V.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
d. Web Server
Web Server
Hình 3.7 Web server giao tiếp với kit qua Usb Wifi
e. Khối nguồn
- Raspberry Pi 2 có điện áp hoạt động ổn định: 5VDC, dòng điện 2A. Nên
nhóm sẽ dùng nguồn từ sạc dự phòng output 5VDC - 2A để cấp cho kit.
Hình 3.8 Sạc dự phòng cấp nguồn cho kit raspberry Pi
- Module điều khiển động cơ L298N có điện áp hoạt động 5V - 12V.
- Động cơ DC hoạt động ở mức điện áp 3V – 9V.
- Động cơ Servo RC 9G hoạt động ở điện áp 5V.
Qua trên nhóm dùng nguồn 12VDC để cấp cho module L298N bằng cách
ghép 3 pin Panasonic ( Li-ion IRC18650 4.2V4200mAh ) nối tiếp với nhau.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.9 Nguồn cấp cho khối điều khiển module L298N
3.2.3. Sơ đồ nguyên lý của toàn mạch
H nh 3.10 Sơ đồ nguyên lý toàn mạch
Sơ đồ nguyên lý toàn mạch gồm:
Camera v2 kết nối với kit qua cáp ribbon.
Usb tp-link tl-725n kết nối với kit qua cổng USB 2.0.
Nguồn 5V – 2A cấp cho kit qua cổng Usb micro.
Nguồn 12V – 4A cấp cho module L298N hoạt động.
2 động cơ motor A, motor B gắn vào ngõ output trên module L298N đƣợc điều
khiển bởi kit thông qua ngõ vào trên module.
Động cơ Servo RC 9G(SG90) đƣợc cấp nguồn 5V từ module L298N và đƣợc điều
khiển trực tiếp từ kit.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19
CHƢƠNG 4. THI CÔNG HỆ THỐNG
CHƢƠNG 4: THI CÔNG HỆ THỐNG
4.1. GIỚI THIỆU
Streaming video là một kỹ thuật đƣợc sử dụng khá phổ biến trong các ứng
dụng mạng. Streaming video sử dụng cách thức phát lại các đoạn video đƣợc lƣu trữ
trên
các máy tính trên mạng tới ngƣời dùng đầu cuối muốn xem đoạn video mà không
cần tải đoạn video đó về trên máy tính. Về bản chất, streaming video là quá trình
chia nhỏ file video thành các frame, rồi lần lƣợt gửi từng frame tới một bộ đệm trên
máy tính của ngƣời xem và hiển thị nội dung frame đó.
4.2. THI CÔNG HỆ THỐNG
4.2.1 Tìm hiểu kỹ thuật video streaming theo mô hình server-client
Tóm tắt cơ bản về kỹ thuật streaming video, các giao thức cần thiết:
Streaming video sử dụng cách thức phát lại các đoạn video đƣợc lƣu trữ trên
các máy tính trên mạng tới ngƣời dùng đầu cuối muốn xem đoạn video mà không cần
tải đoạn video đó về trên máy tính. Về bản chất, streaming video là quá trình chia
nhỏ file video thành các frame, rồi lần lƣợt gửi từng frame tới một bộ đệm trên máy
tính của ngƣời xem và hiển thị nội dung frame đó. Và quá trình này tuân thủ chặt
chẽ về ràng buộc theo thời gian, nói khác là tuân thủ chặt chẽ theo giao thức RTSP,
RTP và RTCP. Với đặc tính nhƣ vậy thì streaming video là kỹ thuật cũng khá phức
tạp để triển khai. Nhƣng với những lợi ích mà kỹ thuật streaming video đem lại,
chúng ta hoàn toàn có thể triển khai đƣợc kỹ thuật này trên thực tế.
4.2.2 Kỹ thuật streaming video
Các bƣớc thực hiện kỹ thuật streaming video:
- Phần mềm máy khách (media player, web browser, ...) cần kết nối đƣợc và xác
định file video trên máy streaming server muốn xem.
- Yêu cầu streaming file video đó sẽ đƣợc gửi tới streaming server để tìm file video
đó.
- Chƣơng trình thực hiện streaming chạy trên máy streaming server sẽ chia file video
thành các frame rồi gửi các frame đó tới máy yêu cầu sử dụng các giao thức
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20
CHƢƠNG 4. THI CÔNG HỆ THỐNG
ràng buộc về thời gian (RTSP, RTP, RTCP,RTMP).
- Khi các frame về máy khách, sẽ đƣợc lƣu trữ trong vùng đệm và nội dung frame sẽ
đƣợc giải mã (decode) và hiển thị thông qua các chƣơng trình chơi video (ví dụ
VLC, Strobe Media …).
Hình 4.1 Streaming Video
Một số khái niệm đƣợc sử dụng trong streaming video:
- Streaming video (luồng video) thực chất là quá trình truyền các frame của file
video tới ngƣời nhận.
- Demand streaming (stream theo yêu cầu) là quá trình streaming một file video có
sẵn (đã đƣợc lƣu trên ổ cứng) tới ngƣời nhận.
- Live streaming (stream từ một nguồn tạo video) là quá trình streaming trực tiếp từ
các frame video đƣợc tạo ra từ các thiết bị thu nhận video (nhƣ camera) tới ngƣời
nhận.
- MPEG, JPEG, H.264 , VP8 là các thuật toán mã hóa cho các luồng video. - Bitstream là khái niệm ám chỉ một luồng video từ máy chủ streaming tới máy
khách nhận các frame video dựa vào giao thức MMS hay RTP.
- Codec: thuật ngữ ám chỉ chung cho các thuật toán mã hóa đƣờng truyền trong quá
trình streaming audio hay video.
- RTSP (Real Time St reaming Protocol) là giao thức mạng điều khiển quá trình
streaming video hay streaming audio.
- RTP (Real-time Transport Protocol) là giao thức chuẩn định dạng cho gói tin
(packet) video hay audio đƣợc truyền trên mạng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21
CHƢƠNG 4. THI CÔNG HỆ THỐNG
a. Giao thức RTSP
RTSP (Real Time Streaming Protocol) là một giao thức điều khiển trên mạng
đƣợc thiết kế để sử dụng giao tiếp giữa máy client và máy streaming server. Giao
thức này đƣợc sử dụng để thiết lập và điều khiển phiên giao dịch giữa các máy tính
(end points).
Về hình thức giao thức RTSP cũng có nét tƣơng đồng với giao thức HTTP,
RTSP định nghĩa một bộ các tín hiệu điều khiển tuần tự, phục vụ cho việc điều
khiển quá trình playback. Trong khi giao thức HTTP là giao thức không có trạng
thái thì RTSP là giao thức có xác định trạng thái. Một định danh sử dụng khi cần thiết
để theo dõi giao thức hiện tại của quá trình streaming video gọi là số hiệu session.
Cũng giống nhƣ HTTP, RTSP sử dụng TCP là giao thức để duy trì một kết nối đầu
cuối tới đầu cuối và các thông điệp điểu khiển của RTSP đƣợc gửi bởi máy client tới
máy server. Nó cũng thực hiện điều khiển lại các đáp trả từ máy server tới máy
client. Cổng mặc định đƣợc sử dụng bởi giao thức này là 554.
Để thực hiện kỹ thuật streaming video theo giao thức RTSP nhất thiết máy
client phải gửi lên máy server (streaming server) những request sau và phải theo một
trình tự nhất định.
Đầu tiên, máy client sẻ gửi yêu cầu OPTIONS kèm với đƣờng link trỏ tới file
video cần xem tới máy server, để máy server chấp nhận đƣờng link này.
Hình 4.2 OPTIONS Request
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Nếu máy server trả về mã chấp nhận đƣờng link trên thì máy client tiếp tục gửi
yêu cầu DESCRIBE tới máy server để máy server phân tích đƣờng link. Một yêu
cầu DESCRIBE bao gồm một đƣờng link RTSP có dạng (rtsp://) và kiểu dữ liệu đáp
trả từ phía server. Cổng mặc định đƣợc sử dụng cho giao thức RTSP là 554 và cổng
này đƣợc sử dụng cho cả giao thức của tầng giao vận UDP và TCP. Thông điệp đáp
lại từ máy server cho yêu cầu DESCRIBE của máy client bao gồm bản tin miêu tả
chi tiết (Session Description Protocol – SDP). Ngoài ra trong thông điệp trả về từ
máy server còn liệt kê các đƣờng link thích hợp hơn tới file video cần chơi khi mà
trong file video đó có trộn lẫn giữa phụ đề và âm thanh. Và điều quan trọng nhất ở
trong bản tin miêu tả phiên giao dịch này là streamid của luồng video và streamid
của luồng âm thanh khi mà đoạn video đó có lồng âm thanh vào trong các frame.
Hình 4.3 DESCRIBE Request
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.4 SETUP Request.
Sau khi hoàn tất yêu cầu SETUP, cấu hình đƣợc các luồng dữ liệu để chuẩn bị
streaming, máy client sẽ gửi yêu cầu PLAY để thực hiện truyền các frame dữ liệu
thật sự từ máy server tới máy client , và các frame dữ liệu này sẽ đƣợc lƣu trong một
bộ đệm của máy client, các frame này sẽ đƣợc giải mã (decode), rồi đƣợc hiển thị
bởi trình chơi file video và âm thanh (VLC). Yêu cầu PLAY bao gồm một đƣờng
dẫn trỏ tới file video cần phát giống nhƣ các yêu cầu trƣớc đó. Đƣờng link này có
thể là đƣờng tổng hợp (để phát các luồng dữ liệu) hoặc là môt đƣờng link đơn lẻ (chi
phí một luồng dữ liệu duy nhất). Trong yêu cầu PLAY, máy client cũng sẽ chỉ ra
một dải (range) chỉ rõ một cách cụ thể số hiệu frame bắt đầu đƣợc gửi và số hiệu
frame kết thúc, Nếu nhƣ không chỉ rõ tham số này, thì toàn bộ các frame sẽ đƣợc
gửi tới máy client. Và nếu nhƣ luồng dữ liệu có bị tạm dừng (pause) thì luồng dữ
liệu này cũng sẽ đƣợc phục hồi ở frame mà nó tạm dừng truyền.
Hình 4.5 PLAY Request.
Trong quá trình streaming video, nếu nhƣ ngƣời dùng muốn tạm dừng quá
trình streaming thì sẽ gửi yêu cầu PAUSE tới máy server, yêu cầu này sẽ làm tạm
dừng một hay nhiều luồng dữ liệu đang truyền các frame về máy client. Máy server
sẽ tạm dừng gửi các frame dữ liệu tới máy client.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.6 PAUSE Request. Trong quá trình streaming video, nếu nhƣ ngƣời dùng muốn dừng hẳn quá
trình streaming thì sẽ gửi yêu cầu TEARDOWN để dừng truyền và kết thúc một
phiên giao dịch của giao thức RTSP. Máy server sẽ đáp trả lại thông điệp xác nhận
cho yêu cầu TEARDOWN và sẽ dừng gửi các frame tới máy client.
Hình 4.7 TEARDOWN Request
b. Giao thức RTP
RTP (Real-time Transport Protocol) định dạng một gói tin RTP đƣợc dùng để
truyền trên luồng dữ liệu video hay audio dựa trên địa chỉ IP. RTP đƣợc sử dụng
trong các hệ thống giải trí hoặc giao tiếp mà có triển khai kỹ thuật streaming video
nhƣ là telephone, ứng dụng hội họp từ xa, hệ thống giám sát bằng hình ảnh dựa
trên IP.
RTP đƣợc sử dụng kết hợp với giao thức RTCP (RTP Control Protocol). Trong
đó, RTP đƣợc sử dụng để đóng gói các frame dữ liệu (audio và video) để truyền trên
luồng dữ liệu thì RTCP đƣợc sử dụng để giám sát chất lƣợng của dịch vụ (QoS)
hoặc để thống kê theo các tiêu chí trong quá trình truyền tải. Thƣờng thì giao thức
RTP sử dụng cổng có số hiệu chẵn còn giao thức RTCP sử dụng cổng có số hiệu lẻ.
RTP đƣợc thiết kế cho quá trình streaming theo thời gian thực từ theo kiểu
điểm tới điểm. Giao thức này cung cấp tiện ích để dò ra những gói tin RTP đã quá
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25
CHƢƠNG 4. THI CÔNG HỆ THỐNG
hạn. Trên thực tế, gói tin RTP sử dụng địa chỉ IP trên mạng để định danh các máy
tính gửi và nhận. RTP cũng hỗ trợ truyền dữ liệu tới nhiều điểm đích thông qua địa
chỉ IP multicast.
RTP đƣợc phát triển bởi tổ chức Audio/Video Transport của tổ chức tiêu
chuẩn IETF. RTP đƣợc sử dụng kết hợp với các giao thức khác nhƣ H.323 và giao
thức RTSP. Chuẩn RTP định nghĩa một cặp giao thức làm việc với nhau đó là RTP
và RTCP. RTP đƣợc sử dụng để truyền tải dữ liệu đa phƣơng tiện và giao thức
RTCP đƣợc sử dụng để gửi các thông tin điều khiển với các tham số QoS.
Các giao thức thành phần: RTP gồm 2 giao thức con là RTP và RTCP.
Giao thức truyền, RTP quy định cách thức truyền dữ liệu theo thời gian thực.
Thông tin đƣợc cung cấp bởi giao thức này bao gồm thời gian đồng bộ
(timestamps), số thứ tự gói tin (phục vụ cho việc tìm gói tin bị lạc) và chi phí cho
việc mã hóa định dạng dữ liệu.
Giao thức điều khiển, RTCP đƣợc sử dụng cho việc kiểm tra chất lƣợng (QoS)
luồng dữ liệu và thực hiện đồng bộ giữa các luồng dữ liệu. So với RTP, thì băng
thông của RTCP sẽ nhỏ hơn, vào cỡ 5%.
Một giao thức cho phép miêu tả dữ liệu đa phƣơng tiện nhƣng không bắt buộc
phải kèm theo là giao thức miêu tả phiên (Session Description Protocol – SDP).
Phiên (Session): Một phiên RTP đƣợc thiết lập cho mỗi luồng dữ liệu. Một
phiên bao gồm một địa chỉ IP với một cặp cổng của giao thức RTP và RTCP. Ví dụ,
các luồng video và audio sẽ có các phiên RTP khác nhau, bên nhận sẽ nhận một
cách riêng biệt giữa dữ liệu video và audio thông qua 2 cổng khác nhau cho 2 giao
thức RTP và RTCP. Thƣờng thì số hiệu cổng của RTP là một số chẵn trong khoảng
1024 tới 65535 và cổng của RTCP là một số lẻ kế tiếp.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.8 Header của RTP Packet
Kích thƣớc nhỏ nhất của một header của gói tin RTP là 12 bytes. Sau phần
header chính, là phần header mở rộng và không cần thiết phải có phần header này.
Chi tiết các trƣờng trong một header nhƣ sau:
Version (2 bits): Cho biết phiên bản của giao thức này. Phiên bản hiện tại là
phiên bản 2.
P (Padding) (1 bit): Cho biết số các byte mở rộng cần thêm vào cuối của gói
tin RTP. Ví dụ trong trƣờng hợp ta muốn sử dụng các thuật toán mã hóa, ta có thể
thêm vào một số byte vào phần kết thúc của gói tin để tiến hành mã hóa frame trên
đƣờng truyền.
X (Extension) (1bit): Cho biết có thêm phần header mở rộng vào sau phần
header chính hay không.
CC (CSRC Count) (4 bit): Chứa con số định danh CSRC cho biết kích thƣớc
cố định của header.
M (Marker) (1 bit): Cho biết mức của ứng dụng và đƣợc định nghĩa bởi một
profile. Nếu đƣợc thiết lập, có nghĩa là dữ liệu hiện tại đã đƣợc tính toán chi phí một
cách thích hợp.
PT (Payload Type) (7 bit): Cho biết định dạng của file video. Đây là một đặc tả
đƣợc định nghĩa bởi một profile RTP.
Sequence Number (16 bits): số hiệu của frame. Và sẽ đƣợc tăng lên 1 đơn vị
cho mỗi gói tin RTP trƣớc khi gửi và đƣợc sử dụng bởi bên nhận để dò ra các gói bị
lạc và có thể phục hồi lại gói có số thứ tự đó.
Timestamp (32 bits): Đƣợc sử dụng thông báo cho bên nhận biết để phát lại
frame này trong khoảng thời gian thích hợp.
SSRC (32 bits): Định danh cho nguồn streaming. Mỗi nguồn cho phép
streaming video sẽ định danh bởi một phiên RTP duy nhất.
c. Giao thức RTMP - Real Time Messaging Protocol
RTMP (Real Time Messaging Protocol) là giao thức không công khai do
Adobe phát triển và giữ bản quyền, đƣợc thiết kế cho ứng dụng thời gian thực, cho
phép ứng dụng sử dụng video và âm thanh với tốc độ nhanh, hạn chế bị giật hình
hoặc méo tiếng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Nhƣ chúng ta thấy, hiện tại có khác nhiều trang web xem film trực tuyến với
chất lƣợng khá cao (Full HD), nhƣng chúng ta lại không thể download các film đó
về với cách thức thông thƣờng (sử dụng các chƣơng trình download IDM …). Tại
sao?
View Source thì sẽ thấy các link phim bắt đầu bằng RTMP chứ không
phải là HTTP thông thƣờng. Đây công nghệ chống đánh cắp bản quyền trên internet
khá hiệu quả dù rằng không phải là tuyệt đối, về mặt công nghệ đƣợc đánh giá là
khá hơn giao thức MMS của Windows.
Hình 4.9 Giao thức RTMP - Real Time Messaging Protocol.
Bởi vậy nên trong giap thức RTMP đã tạo nên sự khác biệt trong cách chuyển
tải dữ liệu media, cho phép ứng dụng sử dụng video và âm thanh với tốc độ nhanh,
hạn chế bị giật hình hoặc méo tiếng. Hiện tại, giao thức này do hãng Adobe giữ bản
quyền.
Chúng ta cùng thử so sánh sự khác biệt giữa 2 giao thức HTTP và RTMP
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Bảng 4.1 So sánh giữa hai giao thức HTTP với RTMP.
Giao thức HTTP Giao thức RTMP
Web server (Apache, Lighttpd, Messaging server (Adobe Flash Media
Nginx...) Server, Wowza Media Server, Red5...)
Sử dụng Web Browser Sử dụng Flash player
Truyền văn bản thời gian ngắn Truyền dữ liệu thời gian thực/dài (Phù
(Phù hợp với web truyền thống) hợp với các file Media: Nhạc, Phim)
SOAP, XML AMF
File .html, .js File .swf, .as, .flv, .mp3
d. FFMPEG - Phầm mềm xử lý audio, video hiệu quả
Tổng quan
FFMPEG là một framework hàng đầu về đa phƣơng tiện (xử lý audio, video).
Nó có thể decode (giải mã), encode (mã hóa), transcode (chuyển mã), mux (ghép
kênh), demux (phân kênh, tách kênh), stream (ví dụ nhƣ livestream trên youtube,
facebook,..), filter (lọc) và play (chạy, phát video) rất nhiều thứ mà con ngƣời hay
máy móc tạo ra. FFMPEG- Phầm mềm xử lý audio, video đơn giản, miễn phí và
hiệu quả.
FFMPEG hỗ trợ hầu hết các định dạng. Và nó khá là linh hoạt, có thể compile, run
và chạy trên nhiều nền tảng nhƣ Linux, Mac OS X, Microsoft Windows, BSD,
Solaris,…và ở trên nhiều môi trƣờng, kiến trúc khác nhau.
Nó chứa các thƣ viện libavcodec, libavutil, libavformat, libavfilter, libavdevice,
libswscale và libswresample. Chúng có thể đƣợc sử dụng bởi ứng dụng. Cũng giống
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29
CHƢƠNG 4. THI CÔNG HỆ THỐNG
nhƣ ffmpeg, ffserver, ffplay và ffprobe đƣợc sử dụng để transcoding, streaming và
playing.
Rõ ràng, FFMPEG là một phần mềm xử lý audio, video đơn giản, miễn phí và
hiệu quả. Dù bạn là lập trình viên hay là một ngƣời sử dụng bình thƣờng thì đều có
thể sử dụng đƣợc FFMPEG cho những mục đích của mình.
FFMPEG cung cấp sẵn cho ngƣời dùng những tiện ích là: ffmpeg, ffserver,
Các gói thƣ viện của ffmpeg
ffplay và ffprobe.
libavutil: là một thƣ viện chứa các hàm cho việc đơn giản chƣơng trình, bao gồm
việc sinh ra số ngẫu nhiên, cấu trúc dữ liệu, chƣơng trình toán học, tiện ích đa
phƣơng tiện cơ bản.
libavcodec: là một thƣ viện chứa bộ encoder (mã hóa) và decoder (giải mã) cho
audio/video.
libavformat: là thƣ viện chứa bộ demuxer (phân kênh) và muxer (ghép kênh) cho
những định dạng đa phƣơng tiện.
libavdevice: là thƣ viện chứa những thiết bị đầu vào và đầu ra cho việc lấy vào hay
xuất ra nội dung đa phƣơng tiện với những phần mềm phổ biến nhƣ Video4Linux,
Video4Linux2, VfW, and ALSA.
libavfilter: là thƣ viện cho việc lọc video libsw
libswscale: là thƣ viện cho việc tối ƣu hóa ảnh về co dãn, màu sắc,…
libswesample: là thƣ viện cho việc tối ƣu hóa về việc lấy mẫu lại audio,…
Lighttpd
Lightgtpd là một phần mềm mã nguồn mở, an toàn và linh hoạt đặc biệt là
hoàn toàn miễn phí và đƣợc phân phối bởi BSD. Lighttpd đƣợc viết bởi Jan
Kneschker.
Lighttpd chiếm ít tài nguyên, memory thấp, CPU nhỏ. Lighttpd đƣợc phát
triển bằng ngôn ngữ C. chạy trên hệ điều hành Linux, Windows, Mac OS,…
Lighttpd hỗ trợ FastCGI, SCGI, CGI cho phép nó chạy đƣợc các ứng dụng
web đƣợc viết bằng bất cứ ngôn ngữ nào. Lighttpd còn có các tính năng nhƣ chứng
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
CHƢƠNG 4. THI CÔNG HỆ THỐNG
thực, hỗ trợ HTTPS, virtual hosting, hỗ trợ Ipv6,… Lighttpd không hỗ trợ ISAPI
(Internet Service Application Programming Interface).
Sau đây chúng ta xem hình chi tiết hơn về một số máy chủ khác trên thế giới.
Hình 4.10 Tổng hợp các máy chủ trên thế giới
4.2.3 Thiết lập web server và thực hiện truyền dữ liệu
Thiết lập webserver:
Đầu tiên ta tiến hành cài đặt apache (một chƣơng trình dành cho máy chủ đối
thoại qua giao thức HTTP).
$sudo apt-get install apache2 –y
Vì ở đây sử dụng chƣơng trình mặc định của Raspberry Pi nên ta có thể lên một trang web bất kỳ nào đó gõ địa chỉ IP của Raspberry Pi để vào giao diện mặc định của apache.
Sau đó ta cài đặt thêm PHP để hỗ trợ tối đa cho HTML.
$sudo apt-get install php5 libapache2-mod-php5 –y
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Thiết lập các nút bấm thực hiện điều khiển :
Sử dụng ngôn ngữ Javascript để lập trình trên nền web với cú pháp tạo nút
nhấn:
nhấn
Ví dụ tạo các nút nhấn di chuyển của xe, camera.
Tƣơng tự cho các nút nhấn khác. Và đây là kết quả sau khi tạo nút
nhấn.
Hình 4.11 Giao diện tạo nút nhấn điều khiển
4.2.4. Thi công phần cứng của xe robot
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.12 Kết quả phần cứng xe
4.2.5. Giao diện web server nhúng h nh ảnh camera
Hình 4.13 Kết quả streaming video và điều khiển qua Web
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33
CHƢƠNG 4. THI CÔNG HỆ THỐNG
4.3. LẬP TRÌNH HỆ THỐNG
4.3.1. Lƣu đồ giải thật điều khiển động cơ servo
Hình 4.14 Sơ đồ giải thuật điều khiển servo
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34
CHƢƠNG 4. THI CÔNG HỆ THỐNG
4.3.2 Lƣu đồ giải thật điều khiển động cơ DC
Hình 4.15 Lƣu đồ giải thuật điều khiển động cơ DC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
CHƢƠNG 4. THI CÔNG HỆ THỐNG
4.4. HƢỚNG DẪN SỬ DỤNG, THAO TÁC
4.4.1. Các bƣớc để tạo một web server cho phép live streaming dùng
Pi-Camera.
- Bƣớc 1: Nâng cấp phiên bản mới nhất sudo apt-get update sudo apt-get upgrade
- Bƣớc 2: Cài đặt phần mềm Lighttpd Web Server
sudo apt-get install lighttpd lighttpd-doc php5-common php5-cgi php5 zip
- Bƣớc 3: Kết nối Server tới các tiến trình dùng ngôn ngữ PHP
sudo lighty-nable-mod fastcgi-php
sudo lighty-enable-mod cgi
sudo lighttpd-enable-mod fastcgi
- Bƣớc 4: Create a PHP WEB Page
sudo nano /var/www/html/php.php
- Bƣớc 5: Restart the Webserver
sudo /etc/init.d/lighttpd restart
- Bƣớc 6 : reboot
sudo reboot
- Bƣớc 7: Cài đặt phần mềm cung cấp giao thức rtmp cho webserver là crtmpserver
sudo aptitude install crtmpserver
- Bƣớc 8: Back up file crtmpserver mặc định
sudo cp /etc/crtmpserver/applications/flvplayback.lua
/etc/crtmpserver/applications/flvplayback.lua.bakORIGINAL
- Bƣớc 9: Chúng ta tiến hành Edit flvplayback.lua file
Mở file trong trình soạn thảo bằng lệnh nano:
sudo nano /etc/crtmpserver/applications/flvplayback.lua
Chỉnh sửa file tại các giá trị:
validateHandshake=false,
keyframeSeek=false,
seekGranularity=0.1,
clientSideBuffer=30,
Lƣu và thoát trình soạn thảo.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36
CHƢƠNG 4. THI CÔNG HỆ THỐNG
- Bƣớc 10: Restart crtmpserver
sudo /etc/init.d/crtmpserver restart
- Bƣớc 11: Cài đặt bản mới nhất git-core để tải phần mềm ffmpeg từ Github( một
thƣ viện mã nguồn mở)
sudo apt-get install git-core
Sau đó vào đƣờng dẫn cd /usr/src rồi tạo file ffmpeg
sudo mkdir ffmpeg
Sau đó dùng lệnh sudo chown `whoami`:users ffmpeg
Rồi chỉ đến nguồn để tải ffmpeg
sudo git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
Chỉ đến file ffmpeg
cd ffmpeg
Cấu hình flie ffmpeg
sudo ./configure
- Bƣớc 12: Bây giờ Make và Install phần mềm này sudo make
sudo make install
- Bƣớc13: Cài đặt phần mềm Samba
Chúng ta cài đặt phần mềm samba để kết nối dễ dàng với windows
sudo apt-get install samba samba-common-bin
- Bƣớc 14: Edit Samba File
cd /etc/samba
sudo nano smb.conf
Bạn thêm vào phần SHARE DEFINITIONS sau phần netlogin part của file
smb.conf
[home]
path= /
public= yes
read only = no
writeable = yes
browseable = yes
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37
CHƢƠNG 4. THI CÔNG HỆ THỐNG
create mask = 0777
directory mask = 0777
Raspberry Pi của bạn sẽ xuất hiện trên Windows Computer Network. Trên
Windows, mở một thƣ mục, bấm vào "Network" ở bên trái, và bạn sẽ thấy Pi
raspberry của bạn hiển thị. Bây giờ bạn có thể di chuyển các tập tin file đến và từ
Raspberry Pi của bạn từ Windows.
- Bƣớc 15: Cài đặt trình chơi video Strobe Software và WEB Page Chúng ta muốn
thấy live stream video trên trình duyêt, chúng ta dùng:
cd /var/www/html
sudo mkdir strobe
sudo chmod -R 777 strobe
Cách đơn giản nhất là tải nó trên Windows , theo đƣờng link sau:
http://sourceforge.net/projects/smp.adobe/files/
Tải phiên bản mới nhất của phần mềm
strobe media playback.
Giải nén và đƣa folder “for Flash Player 10.1” ra ngoài Desktop.
Đƣa nội dung nằm trong của folder “for Flash Player 10.1” vào Raspberry Pi. Đƣa
nội dung nằm trong của folder “for Flash Player 10.1” vào folder strobe theo đƣờng
dẫn /home/var/www/html/strobe. Nếu cài đặt phần mềm Samba thành công,
Raspberry Pi sẽ xuất hiện khi bạn mở một thƣ mục trong Windows và click vào
“Network”.
Bây giờ đã cài đặt phần mềm strobe và cần phải tạo Strobe WEB PAGE để hiển thị
video stream của bạn. Đầu tiên, vào thƣ mục html bằng cách gõ: cd /var/www/html
Mở file index.html để viết những lệnh điều khiển streaming video lên web server
sudo nano index.html
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38
CHƢƠNG 4. THI CÔNG HỆ THỐNG
// Create a StrobeMediaPlayback configuration
var parameters =
{
src:"rtmp://"+window.location.hostname+ "/flvplayback/myStream",
autoPlay: true, controlBarAutoHide: false, playButtonOverlay: true,
showVideoInfoOverlayOnStartUp: false,
optimizeBuffering : false, initialBufferTime : 0.1,
expandedBufferTime : 0.1,
minContinuousPlayback : 0.1, poster: "strobe/images/poster.png"
};
// Embed the player SWF: swfobject.embedSWF
( "strobe/StrobeMediaPlayback.swf"
, "strobeMediaPlayback"
, 1080
, 720
, "10.1.0"
, {}
, parameters
, { allowFullScreen: "true"}
, { name: "strobeMediaPlayback" }
);
Alternative content
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39
CHƢƠNG 4. THI CÔNG HỆ THỐNG
- Bƣớc 17: Bật mô-đun Raspbery Pi Camera
Gõ lệnh trên command window
sudo raspi-config
- Bƣớc 18: Bật camera bắt đầu ghi hình
Sử dụng lệnh điều khiển camera sau đây:
raspivid -t -0 -w 1080 -h 720 -awb auto -fps 30 -rot 90 -b 1200000 -o - |ffmpeg -
loglevel quiet -i - -vcodec copy -an -f flv -metadata streamName=myStream
tcp://0.0.0.0:6666&
Cuối cùng ta vào trình duyêt Web và nhập http://IPAddress/
4.4.2 Cài đặt và điều khiển trên mạng Wan Để giải quyết vẫn đề chỉ điều khiển robot và stream live trong phạm vi nhỏ là
mạng Lan nên nhóm em đã thực hiện một giải pháp: Kết nối và điều khiển robot
trên mạng WAN.
Có nhiều cách để kết nối mở rộng theo cấu trúc mạng WAN cho board mạch
Raspberry Pi điều khiển robot nhƣ là NAT Port cho modem trong nhà, dịch vụ Open
VPN hay là tận dụng một trang website trung gian để tạo liên kết giữa Raspberry Pi
với mọi nơi.
Để kết nối đƣợc trong mạng WAN, chúng ta sử dụng trang website trung gian
đó là remot3.it. Đó là một hệ thống web sever sử dụng giao thức TCP/IP. Khi
Raspberry Pi cài đặt phần mềm kết nối với website thì sẽ tạo ra một kênh điều khiển
trên website trung gian, dựa vào đó ta có thể biết đƣợc hostname của Raspberry Pi
để truy cập qua SSH hoặc TightVNC.
a. Kết nối với Website trung gian
Ta có thể đăng ký tài khoản trên remot3.it và đăng nhập vào nó. Ta sẽ có đƣợc
giao diện nhƣ sau:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.16 Giao diện sau khi đăng nhập remot3.it
b. Cài đặt phần mềm cho Raspberry Pi
Mở Teminal lên và tải phần mềm về
Sudo apt-get install weavedconnected
Sau đó cài đặt phần mềm
Sudo weavedinstaller
Chọn option 1 để đăng nhập. Đăng nhập username và password của tài khoản
đã đăng ký trên remot3.it và đặt một tên cho hệ thống. Ở đây chúng tôi đặt là
Luanvan_RPI.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.17 Tạo kênh cho phần mềm để kết nối
Sau đó ta chọn option 1, ở đây sẽ có 4 kênh mà ta phần mềm có thể cung cấp
cho chúng ta. Nhƣng ta chỉ cần dùng 2 kênh điều khiển là SSH và VNC là đủ: Với 2
kênh đã tạo lần lƣợt là:
SSH: RPI_SSH và VNC: RPI_VNC
Nhƣ vậy chúng ta đã cài đặt xong remot3 và bây giờ chúng ta có thể truy cập và
điều khiển Raspberry Pi bất kì nơi đâu có wifi hoặc 3G.
c. Cách kết nối Raspberry với remot3.it
Hình 4.18 Giao diện Putty
.
Kết nối bằng SSH
Hình 4.18 Giao diện Putty
Chúng ta sử dụng phần mềm putty để hỗ trợ kết nối giữa laptop và Raspberry
Pi một cách nhanh chóng và cùng nhau chia sẻ tài nguyên và dữ liệu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Để có thể kết nối ở mọi nơi, chúng ta cần có host name mà remot3 cấp cho
Hình 4.19 Địa chỉ hostname và port thông qua SSH
cùng với port kết nối để laptop nhận đƣợc Raspberry và điều khiển.
Kết nối bằng VNC
Tƣơng tự SSH ta cũng cần phải có một phần mềm chuyên sử dụng để hiển thị
màn hình điều khiển thiết bị ( Remote Desktop ) đó là TightVNC. Phần mềm này
cần một hotstname và một port để định vị chính xác thiết bị cần kết nối trong nhiều
thiết bị.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.20 Hostname và port khi kết nối VNC
Hình 4.21 Giao diện phần mềm TightVNC Còn đây là giao diện phần mềm TightVNC và khi ta nhập hostname vùng port
để kết nối.
Hình 4.22 Giao diện nhập mật khẩu kết nối
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44
CHƢƠNG 4. THI CÔNG HỆ THỐNG
Sau khi thực hiện, ta đƣợc kết quả
Hình 4.23 Giao diện Raspberry sau khi đã kết nối
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Chƣơng 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.1 KẾT QUẢ
Sau hơn 12 tuần nghiên cứu về đề tài nhóm đã đạt đƣợc:
Hiểu về hệ điều hành Raspian trên Raspberry Pi.
Giao tiếp đƣợc với Module L298N để điều khiển động cơ.
Giao tiếp với Raspberry Pi Camera V2 để đƣa hình ảnh lên Web.
Điều khiển Raspberry Pi thông qua giao diện Web đƣợc thiết kế.
Thực hiện stream video mƣợt, độ trễ thấp lên internet.
Truy cập và điều khiển Raspberry Pi ở mọi nơi có internet.
5.2 NHẬN XÉT VÀ ĐÁNH GIÁ
5.2.1 Khoảng cách
Vì Raspberry Pi kết nối vào mạng bằng USB WiFi nên thời gian đáp ứng
trong quá trình stream video của hệ thống cũng sẽ bị ảnh hƣởng. Sau đây là chi tiết
kết quả thực nghiệm thu đƣợc khi ta thử kết nối xe robot vào mạng với tốc độ mạng
là 15Mbps với số khung hình 30 trên giây và khoảng cách thay đổi. Khoảng cách ở
đây là khoảng cách kết nối internet từ xe đến bộ phát wifi.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
< 5M < 5M < 5M
Hình 5.1a
5– 15M 5– 15M 5– 15M
Hình 5.1b
> 15M > 15M > 15M
Hình 5.1c
Hình 5.1 Ảnh hƣởng khoảng cách đến quá trình stream video.
Theo nhƣ hình trên ta thấy thì thời gian hiện trên Xnote timer bên dƣới là
thời gian thực còn thời gian hiện trên cửa sổ video đó là thời gian ghi lại đƣợc từ
việc stream trực tiếp hình ảnh lên web. So sánh hai kết quả ta dễ dàng thấy đƣợc
thời gian hiện trên Xnote timer lớn hơn 1 khoảng so với trên cửa sổ video trên
web. Cụ thể nhƣ bảng bên dƣới:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Bảng 5.1 Ảnh hƣởng khoảng cách đến quá trình stream video.
Khoảng Tốc độ Fps Thời gian trễ Chất lƣợng
cách mạng khi stream (s) Video
(m) (Mbps)
< 5
Rõ ràng, sắc nét, độ
phân giải cao 0.25 – 0.4 (Hình 5.1a)
15 30 Rõ ràng, sắc nét, độ 5- 15 phân giải cao 0.35 – 0.45 (Hình 5.1b)
Bị mờ, hoặc không hiện > 15 thị đƣợc. >=4 (Hình 5.1c)
Bảng 5.2 Ảnh hƣởng khoảng cách đến quá trình điều khiển robot.
Khoảng Tốc độ Số lần Số lần điều Số lần điều
cách mạng điều khiển robot khiển robot Hiệu
khiển chính xác không chính (m) (Mbps) suất
xác robot
\ < 5
100 100 0 100% (Hình 5.1a)
5- 15
15 100 90 10 90% (Hình 5.1b)
> 15
100 20 80 20% (Hình 5.1c)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Nhƣ bảng 5.1 trên ta xem nhƣ tốc độ mạng ổn định với 15Mbps
(Megabit per second) tức là số Megabit truyền trong một giây và 30 fps (frame per
second) tức số khung hình truyền trong một giây không thay đổi thì khoảng cách
càng xa thì độ trễ video khi stream càng lớn nhƣ hình 5.1a với khoảng cách <5 mét
thì thời gian trễ khi stream là 0.25–0.4s khi khoảng cách 5-15 mét (hình 5.1b) thì
thời gian trễ là 0.35-0.4s và nếu khoảng cách >15 mét (hình 5.1c) thì thời gian trễ là
lớn hơn 4s hoặc vô tận có nghĩa là không đáp ứng . Chất lƣợng hình ảnh tốt ở đây là
hình ảnh rõ ràng, sắc nét, không bị giật lắc.
Bảng 5.2 ta thấy robot sẽ hoạt động rất tốt khi nằm trong phạm vi dƣới 5 mét
với hiệu suất 100%, hoạt động tƣơng đối tốt trong phạm vi từ 5-15 mét và hoạt
động rất kém ngoài phạm vi 15 mét.
Qua trên ta rút ra đƣợc với điều kiện mạng ổn định, tốc độ fps (frame per
second) không thay đổi thì việc điều khiển robot cũng nhƣ chất lƣợng video khi
stream lên web sẽ mƣợt và độ trễ thấp khi robot nằm trong phạm vi bán kính 15m.
5.2.2 Tốc độ mạng
Tốc độ mạng có ảnh hƣởng rất lớn đối với quá trình stream video. Sau đây là
kết quả thực nghiệm của ảnh hƣởng tốc độ mạng đến quá trình stream video bằng
cách giữ nguyên khoảng cách kết nối vào mạng của xe robot và số khung hình trên
giây là 30.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
> 15 Mbps > 15 Mbps > 15 Mbps
Hình 5.2a
3 - 15 Mbps 3 - 15 Mbps 3 - 15 Mbps
Hình 5.2b
< 3 Mbps < 3 Mbps < 3 Mbps
Hình 5.2c
Hình 5.2 Ảnh hƣởng tốc độ mạng đến quá trình stream video.
Khi tốc độ mạng thay đổi thì quá trình stream video cũng sẽ bị ảnh hƣởng cũng
giống nhƣ ảnh hƣởng về khoảng cách. Cụ thể nhƣ bảng sau:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Bảng 5.3 Ảnh hƣởng tốc độ mạng đến quá trình stream video
Tốc độ mạng Khoảng Fps Thời gian trễ Chất lƣợng
cách khi stream Video (Mbps)
(m) (s)
(Hình 5.2a)
Rõ ràng, sắc nét, độ >= 15 phân giải cao 0.35 – 0.4
5 30 Rõ ràng, sắc nét, độ 3 – 15 phân giải cao 0.45 – 0.6 (Hình 5.2b)
Bị mờ, không rõ nét, < 3 không hiển thị đƣợc >=5 (Hình 5.2c)
Bảng 5.4 Ảnh hƣởng tốc độ mạng đến quá trình điều khiển robot
Tốc độ mạng Khoảng Số lần Số lần điều Số lần điều
cách điều khiển robot khiển robot (Mbps) Hiệu
khiển chính xác không chính (m) suất
xác robot
\ >= 15
100 100 100% 0 (Hình 5.2a)
3 – 15
5 100% 0 100 100 (Hình 5.2b)
100 70 30 20% < 3 (Hình 5.2c)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
Nhƣ bảng 5.3 cho ta thấy khi tốc độ mạng giảm thì độ trễ khi stream video sẽ
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
tăng lên nhƣ với tốc độ mạng >15 Mbps (hình 5.2a) thì thời gian trễ khi stream chỉ
từ 0.35-0.4s, khi tốc độ mạng nằm trong khoảng từ 3-15 Mbps (hình 5.2b) thì thời
gian trễ tăng lên từ 0.45-0.6s và với tốc độ mạng < 3 Mbps (hình 5.2c) thì thời gian
trễ tăng lên rõ rệt >5s hoặc vô tận có nghĩa là không thể đáp ứng. Nên không hẵn
nằm trong phạm vi cho phép mà chất lƣợng video khi stream lên web sẽ mƣợt, sắc
nét và độ trễ thấp mà phải đáp ứng thêm đƣợc yếu tố đó là tốc độ mạng phải lớn
hơn 3Mbps. Vì tốc độ mạng kém đồng nghĩa tốc độ đƣờng truyền dữ liệu kém.
Bảng 5.4 cho ta thấy với tốc độ mạng dƣới 3 Mbps thì quá trình stream video
sẽ bị ảnh hƣởng rất lớn nhƣng với quá trình điều khiển robot thì vẫn đáp ứng đƣợc.
5.2.3 Frame per second
Frame per second tức là số khung hình hiển thị trong một giây. Vậy nó có ảnh
hƣởng đến quá trình stream video hay không?. Ta tiến hành một thực nghiệm bằng
cách giữ nguyên giá trị tốc độ mạng và khoảng cách của xe robot kết nối vào mạng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
15 fps 15 fps 15 fps
Hình 5.3a
30 fps 30 fps 30 fps
Hình 5.3b
60 fps 60 fps 60 fps
Hình 5.3c
Hình 5.3 Ảnh hƣởng Frame per second đến quá trình stream video
Khi thay đổi số khung hình trên giây (fps) quá trình stream video cũng thay đổi
giống nhƣ hai yếu tố trƣớc đó đã nêu. Cụ thể:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Bảng 5.5 Ảnh hƣởng Frame per second đến quá trình stream video.
Fps Khoảng cách Tốc độ mạng Thời gian trễ Chất lƣợng
khi stream(s) (m) (Mbps) video
Độ mƣợt thấp, rõ
ràng, sắc nét, độ 0.6 – 0.7 15
phân giải cao (Hình 5.3a)
Độ mƣợt cao, rõ
ràng, sắc nét, độ 0.35 – 0.4 30 5 15 phân giải cao (Hình 5.3b)
Độ mƣợt rất cao,
độ phân giải 0.25 – 0.3 60
giảm, ít sắt nét (Hình 5.3c)
Bảng 5.6 Ảnh hƣởng Frame per second đến quá trình điều khiển robot.
Fps Tốc độ Khoản Số lần Số lần Số lần điều Hiệu
mạng g cách điều khiển điều khiển khiển robot suất
robot không chính (Mbps) (m) robot
chính xác xác
\ 15
0 100 100 100% (Hình 5.3a)
30
15 5 0 100 100 100% (Hình 5.3b)
60
0 100 100 100% (Hình 5.3c)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Ta thấy từ bảng 5.5 ở một khoảng cách cố định với tốc độ mạng ổn định thì
việc thay đổi số khung hình trên giây (fps) làm thay đổi thời gian trễ hay độ mƣợt
của video khi stream lên web nhƣ thế nào. Hình 5.3a với số khung hình trên giây là
15 thì thời gian trễ khi stream là 0.6-0.7s, hình 5.3b với số khung hình trên giây là
30 thì thời gian trễ giảm xuống còn 0.35-0.4s, hình 5.3c với số khung hình trên giây
là 60 thì thời gian trễ cũng giảm xuống chỉ còn 0.25-0.3s. Nhƣng việc thay đổi nhƣ
vậy làm chất lƣợng video bị ảnh hƣởng rất lớn. Hình ảnh không rõ và sắc nét nữa.
Nguyên nhân ở đây là do kit không thể đáp ứng đƣợc.
Qua bảng 5.6 ta thấy việc khung hình trên giây thay đổi thì không ảnh hƣởng
tới việc điều khiển robot.
Qua 3 yếu tố đã nêu ở trên thì để có đƣợc một video rõ, sắc nét và đặc
biệt phải mƣợt khi stream video lên web thì:
Tốc độ mạng phải >= 3Mbps.
Số khung hình trên giây là 30 fps.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55
CHƢƠNG 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Chƣơng 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 6.1 KẾT LUẬN
Đề tài giúp chúng em học đƣợc rất nhiều kiến thức. Tuy rằng sản phẩm chƣa
đƣợc hoàn hảo nhƣng chắc chắn rằng chúng em sẽ cố gắng cải thiện cho tối ƣu hơn
nữa. Chúng em sẽ cố gắng phát triển sản phẩm này với nhiều chức năng hơn, độ
chính xác cao hơn.
Với những ƣu điểm đã kể trên, nhóm sẽ cố gắng khắc phục những nhƣợc
điểm với những ý tƣởng :
+ Sử dụng mật khấu để tăng cƣờng bảo mật.
+ Tạo một webserver dễ dàng điều khiển hơn, thích hợp với nhiều ngƣời
dùng trên các nền web khác nhau
+ Tạo một app store nhằm tạo môi trƣờng thân thiện với ngƣời sử dụng.
6.2 HƢỚNG PHÁT TRIỂN
Hƣớng phát triển dựa trên sự ứng dụng vào cuộc sống . Với ý tƣởng làm
xe stream camera để thăm do tình hình những nơi nguy hiểm cho con ngƣời.
Nhóm em muốn phát triển sản phẩm này thành một loại thiết bị có ích trong
công nghiệp, trong khai thác, và cả trong quân sự. Với khả năng truyền video
trực tiếp nên có thể :
Trong quân sự : Làm xe dò bom, xe thám thính địch….
Trong công nghiệp : Thăm dò tình hình ở những nơi gây nguy hiểm cho con
ngƣời nhƣ : chỗ nhiễm phóng xạ, nhiễm độc,….
Trong khảo cổ: Dò những đƣờng hầm hoặc đƣờng ống trong lòng đất mà con
ngƣời không thể vào đƣợc…
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 56
TÀI LIỆU THAM KHẢO
TÀI LIỆU THAM KHẢO [1] Nguyễn Đình Phú, Giáo trình kỹ thuật số, Trƣờng ĐH Sƣ Phạm Kỹ Thuật,
2011.
[2] Nguyễn Việt Hùng, Nguyễn Ngô Lâm, Nguyễn Văn Phúc, Giáo trình Kỹ thuật
truyền số liệu, Trƣờng ĐH Sƣ Phạm Kỹ Thuật, 9.2011.
[3] SIMCOM, Hardware Design, SIMCOM Datasheet, 12.2009.
[4] SIMCOM, SIM900 AT Commands Set, SIMCOM Datasheet, 1.2010. [5] Kỹ thuật lập trình C cơ bản và nâng cao – Phạm Văn Ất ( NXB GTVT Hà Nội).
[6] Các website tham khảo :
www.instructables.com, www.mjrobot.org,
www.toptechboy.com, http://abyz.me.uk/rpi/pigpio/download.html,
http://alfonsojimenez.net/2018/05/13/problemas-con-los-drivers-wifi-tp-
link-tl-wn725n-rtl8188-en-raspbian/ , …
[7] Các phần mềm hỗ trợ : Win32DiskImager, WinSCP, Putty,..
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 57
PHỤ LỤC
PHỤ LỤC
Code điều khiển xe:
Điều khiển xe xoay trái:
import math
import sys
import RPi.GPIO as GPIO
import time
GPIO.setmode (GPIO.BOARD)
GPIO.setwarnings(False)
ENA = 19
IN1 = 21
IN2 = 23
ENB = 33
IN3 = 29
IN4 = 31
duty = 30
GPIO.setup (ENA,GPIO.OUT)
GPIO.setup (IN1,GPIO.OUT)
GPIO.setup (IN2,GPIO.OUT)
GPIO.setup (ENB,GPIO.OUT)
GPIO.setup (IN3,GPIO.OUT)
GPIO.setup (IN4,GPIO.OUT)
pwm= GPIO.PWM(ENA , 50)
pwm.start(duty)
pwm1 = GPIO.PWM(ENB , 50)
pwm1.start(duty)
pwm.ChangeDutyCycle(duty)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 59
PHỤ LỤC
pwm1.ChangeDutyCycle(duty)
GPIO.output(IN1 , GPIO.LOW)
GPIO.output(IN2 , GPIO.HIGH)
GPIO.output(IN3 , GPIO.HIGH)
GPIO.output(IN4 , GPIO.LOW)
time.sleep(0.5)
****************************** **************
Code điều khiển xe xoay phải:
import math
import sys
import RPi.GPIO as GPIO
import time
GPIO.setmode (GPIO.BOARD)
GPIO.setwarnings(False)
ENA = 19
IN1 = 21
IN2 = 23
ENB = 33
IN3 = 29
IN4 = 31
duty = 30
GPIO.setup (ENA,GPIO.OUT)
GPIO.setup (IN1,GPIO.OUT)
GPIO.setup (IN2,GPIO.OUT)
GPIO.setup (ENB,GPIO.OUT)
GPIO.setup (IN3,GPIO.OUT)
GPIO.setup (IN4,GPIO.OUT)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 60
PHỤ LỤC
pwm= GPIO.PWM(ENA , 50)
pwm.start(duty)
pwm1 = GPIO.PWM(ENB , 50)
pwm1.start(duty)
pwm.ChangeDutyCycle(duty)
pwm1.ChangeDutyCycle(duty)
GPIO.output(IN1 , GPIO.HIGH)
GPIO.output(IN2 , GPIO.LOW)
GPIO.output(IN3 , GPIO.LOW)
GPIO.output(IN4 , GPIO.HIGH)
time.sleep(0.5)
***************************** *************
Code điều khiển xe tiến:
import math
import sys
import RPi.GPIO as GPIO
import time
GPIO.setmode (GPIO.BOARD)
GPIO.setwarnings(False)
ENA = 19
IN1 = 21
IN2 = 23
ENB = 33
IN3 = 29
IN4 = 31
duty = 30
GPIO.setup (ENA,GPIO.OUT)
GPIO.setup (IN1,GPIO.OUT)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 61
PHỤ LỤC
GPIO.setup (IN2,GPIO.OUT)
GPIO.setup (ENB,GPIO.OUT)
GPIO.setup (IN3,GPIO.OUT)
GPIO.setup (IN4,GPIO.OUT)
pwm= GPIO.PWM(ENA , 50)
pwm.start(duty)
pwm1 = GPIO.PWM(ENB , 50)
pwm1.start(duty)
pwm.ChangeDutyCycle(duty)
pwm1.ChangeDutyCycle(duty)
GPIO.output(IN1 , GPIO.HIGH)
GPIO.output(IN2 , GPIO.LOW)
GPIO.output(IN3 , GPIO.HIGH)
GPIO.output(IN4 , GPIO.LOW)
time.sleep(2.5)
***************************** *************
Code điều khiển xe lùi:
import math
import sys
import RPi.GPIO as GPIO
import time
GPIO.setmode (GPIO.BOARD)
GPIO.setwarnings(False)
ENA = 19
IN1 = 21
IN2 = 23
ENB = 33
IN3 = 29
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 62
PHỤ LỤC
IN4 = 31
duty = 30
GPIO.setup (ENA,GPIO.OUT)
GPIO.setup (IN1,GPIO.OUT)
GPIO.setup (IN2,GPIO.OUT)
GPIO.setup (ENB,GPIO.OUT)
GPIO.setup (IN3,GPIO.OUT)
GPIO.setup (IN4,GPIO.OUT)
pwm= GPIO.PWM(ENA , 50)
pwm.start(duty)
pwm1 = GPIO.PWM(ENB , 50)
pwm1.start(duty)
pwm.ChangeDutyCycle(duty)
pwm1.ChangeDutyCycle(duty)
GPIO.output(IN1 , GPIO.LOW)
GPIO.output(IN2 , GPIO.HIGH)
GPIO.output(IN3 , GPIO.LOW)
GPIO.output(IN4 , GPIO.HIGH)
time.sleep(2.5)
***************************** *************
Code điều khiển xe dừng:
import math
import sys
import RPi.GPIO as GPIO
GPIO.setmode (GPIO.BCM)
GPIO.setwarnings(False)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 63
PHỤ LỤC
ENA = 10
IN1 = 9
IN2 = 11
ENB = 13
IN3 = 5
IN4 = 6
duty = 60
GPIO.setup (ENA,GPIO.OUT)
GPIO.setup (IN1,GPIO.OUT)
GPIO.setup (IN2,GPIO.OUT)
GPIO.setup (ENB,GPIO.OUT)
GPIO.setup (IN3,GPIO.OUT)
GPIO.setup (IN4,GPIO.OUT)
pwm= GPIO.PWM(ENA , 50)
pwm.start(duty)
pwm1 = GPIO.PWM(ENB , 50)
pwm1.start(duty)
pwm.ChangeDutyCycle(duty)
pwm1.ChangeDutyCycle(duty)
GPIO.output(IN1 , GPIO.LOW)
GPIO.output(IN2 , GPIO.LOW)
GPIO.output(IN3 , GPIO.LOW)
GPIO.output(IN4 , GPIO.LOW)
###########################################
Code điều khiển Camera:
Code điều khiển Camera xoay trái:
#!/usr/bin/python
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 64
PHỤ LỤC
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(13,GPIO.OUT)
m= GPIO.PWM(13,50)
m.start(7.5)
def trigger():
m.ChangeDutyCycle(12)
time.sleep(0.5)
try:
trigger()
except KeyboardInterrupt:
print ("Quit")
GPIO.cleanup()
***************************** *************
Code điều khiển Camera xoay phải:
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(13,GPIO.OUT)
m= GPIO.PWM(13,50)
m.start(7.5)
def trigger():
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 65
PHỤ LỤC
m.ChangeDutyCycle(2.5)
time.sleep(0.5)
try:
trigger()
except KeyboardInterrupt:
print ("Quit")
GPIO.cleanup()
***************************** *************
Code điều khiển Camera thẳng:
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(13,GPIO.OUT)
m= GPIO.PWM(13,50)
m.start(7.5)
def trigger():
m.ChangeDutyCycle(7.25)
time.sleep(0.5)
try:
trigger()
except KeyboardInterrupt:
print ("Quit")
GPIO.cleanup()
############################################################# #############
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 66