Đồ án Thiết kế xe điều khiển từ xa có live stream camera

pdf 75 trang phuongvu95 3961
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Thiết kế xe điều khiển từ xa có live stream camera", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_thiet_ke_xe_dieu_khien_tu_xa_co_live_stream_camera.pdf

Nội dung text: Đồ án Thiết kế xe điều khiển từ xa có live stream camera

  1. TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHƯC BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH o0o Tp. HCM, ngày 06 tháng 07 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Văn Lập MSSV: 11141113 Hà Đăng Lộc MSSV: 11141123 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 01 Hệ đào tạo: Đại học chính quy Mã hệ: 1 Khĩa: 2011 Lớp: 11141DT1A I. TÊN ĐỀ TÀI: THIẾT KẾ XE ĐIỀU KHIỂN TỪ XA CĨ LIVE STREAM CAMERA. 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 HỒN THÀNH NHIỆM VỤ: 06/07/2018 V. HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN: TS. Nguyễn Thị Lƣỡng CÁN BỘ HƢỚNG DẪN BM. ĐIỆN TỬ CƠNG NGHIỆP – Y SINH ii
  2. TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHƯC BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH o0o 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 Xác nhận Tuần/ngày Nội dung GVHD TUẦN 1 Gặp GVHD nhận đề tài TUẦN 2 Viết đề cƣơng chi tiết Tìm hiểu các đề tài đã nghiên cứu lien quan đến TUẦN 3 điều khiển tự động TUẦN 4 Gặp GVHD để báo cáo về hƣớng thực hiện đề tài Tìm hiểu về Rasberry, camera, động cơ servo, TUẦN 5 module điều khiển động cơ Lập trình giao tiếp Rasberry với camera và điều TUẦN 6 khiển động cơ Tìm hiểu về web server và các giao thức truyền TUẦN 7 dữ liệu Truyền hình ảnh trực tiếp từ camera lên web TUẦN 8 server TUẦN 9 Điều khiển xe tiến lùi trái phải từ web server TUẦN 10 Hồn thành mơ hình, cân chỉnh hệ thống TUẦN 11 Viết báo cáo đồ án TUẦN 12 Chỉnh sửa và hồn thiện báo cáo GV HƢỚNG DẪN (Ký và ghi rõ họ và tên) iii
  3. LỜI CAM ĐOAN Đề 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 đĩ. Ngƣời thực hiện đề tài SVTH1: NGUYỄN VĂN LẬP SVTH2: HÀ ĐĂNG LỘC iv
  4. LỜI CẢM ƠN Sau khi hồ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ơ. Một lần nữa chúng em xin chân thành cảm ơn ! Tp. Hồ Chí Minh,ngày 3 tháng 7 năm 2018 . Sinh viên Sinh viên Nguyễn Văn Lập Hà Đăng Lộc iviv
  5. 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 2.2.2. Module camera 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 TỐN VÀ THIẾT KẾ 15 3.1. GIỚI THIỆU 15 3.2. TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 15 3.2.1. Thiết kế sơ đồ khối hệ thống .15 3.2.2. Tính tốn và thiết kế mạch 16 3.2.3. Sơ đồ nguyên lý của tồ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
  6. 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 BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH vi
  7. 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ý tồ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
  8. 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 BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH viii
  9. 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
  10. 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 khiển động cơ. Camera sẽ nhận lệnh stream và phản hồi lại Raspberry Pi rồi truyền lên webserver để cho ngƣời điều khiển biết thơng tin hoạt động. Kết quả mong muốn của nhĩm sinh viên sẽ thiết kế đƣợc mơ hình xe hồ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
  11. 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
  12. CHƢƠNG 1. TỔNG QUAN quy mơ tồ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 thố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 tồ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 tồ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 hồ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
  13. 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 tố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ạn chế của đề tài Hƣớng phát triển đề tài BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 3
  14. 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 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 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ơ tồ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 thố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 tồ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 tồ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
  15. 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 hồn tồ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
  16. 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 ngồi sức tƣởng tƣợng của Raspberry Pi ? BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 6
  17. 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
  18. 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 Video outputs Composite RCA hoặc HDMI Audio outputs 3.5 mm jack , HDMI SD/MMC/SDIO Card Slot Lƣu trữ Mạng 802.11 b/g/n Wireless LAN Xuất nhập 40 GPIO pins Nguồn 5v , 2.5A Kích thƣớc 85 x 56 x 17 mm Trọng lƣợng 45g 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 USB 2.0 ports 4x USP port 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
  19. 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 ngồi. Bảng 2.2 Trạng thái của kit khi hoạt động Led Màu Trạng thái ACT Xanh Sáng khi SD card đƣợc truy cập PWR Đỏ Đèn nguồn ( luơn sáng khi cĩ nguồn) FDX Xanh Sáng nếu mạng truyền song cơng LNK Xanh Hoạt động của mạng 100 Vàng Sáng nếu kết nối mạng 100Mps - 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
  20. 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
  21. 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
  22. 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 IEEE 802.11b, IEEE 802.11g, IEEE 802.11n Tần số 2.400-2.4835 GHz 11b: lên tới 11 Mbps (động) Tốc độ tín hiệu 11g: lên tới 54 Mbps (động) EIRP 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 Độ nhạy tiếp nhận 11M: -85 dBm@10% PER 6M: -88 dBm@10% PER 1M: -90 dBm@10% PER Chế độ khơng dây Chế độ Ad-Hoc / Infrastructure 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
  23. 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
  24. CHƢƠNG 3. TÍNH TỐN VÀ THIẾT KẾ CHƢƠNG 3. TÍNH TỐ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 TỐN VÀ THIẾT KẾ HỆ THỐNG 3.2.1 Thiết kế sơ đồ khối hệ thống KHỐI WEB CƠNG SERVER SUẤT KHỐI XỬ LÝ TRUNG TÂM CAMERA KHỐI NGUỒN H nh 3.1. Sơ khối của hệ thống Mạch gồm các khối chính: BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 14
  25. CHƢƠNG 3. TÍNH TỐN VÀ THIẾT KẾ Khối nguồn: Cung cấp nguồn cho tồ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 tố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 ngồ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
  26. CHƢƠNG 3. TÍNH TỐ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
  27. CHƢƠNG 3. TÍNH TỐN VÀ THIẾT KẾ lên tới 1.8kg/cm. Ngồ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ể hồn tồ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
  28. CHƢƠNG 3. TÍNH TỐ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
  29. CHƢƠNG 3. TÍNH TỐ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 tồn mạch H nh 3.10 Sơ đồ nguyên lý tồn mạch Sơ đồ nguyên lý tồ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
  30. 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 hồn tồ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
  31. 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 tố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 tố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
  32. 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
  33. 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). Ngồ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
  34. CHƢƠNG 4. THI CƠNG HỆ THỐNG Hình 4.4 SETUP Request. Sau khi hồ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ì tồ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
  35. 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
  36. 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
  37. 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 tố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 tố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
  38. 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
  39. 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
  40. 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, ffplay và ffprobe. Các gĩi thƣ viện của ffmpeg 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 tố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 tồn và linh hoạt đặc biệt là hồn tồ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
  41. 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
  42. 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: Tên nút 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
  43. 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
  44. 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
  45. 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
  46. 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à thốt trình soạn thảo. BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 36
  47. 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
  48. 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: 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 ngồ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 My Spy PiCam BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 38
  49. 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
  50. 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 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
  51. 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
  52. 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  Kết nối bằng SSH Hình 4.18 Giao diện Putty . 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
  53. 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 cùng với port kết nối để laptop nhận đƣợc Raspberry và điều khiển. Hình 4.19 Địa chỉ hostname và port thơng qua SSH  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
  54. 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
  55. 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
  56. 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
  57. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ > > 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
  58. 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) Rõ ràng, sắc nét, độ 15 >=4 thị đƣợc. (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 (m) (Mbps) khiển chính xác khơng chính suất robot xác \ 15 (Hình 5.1c) 100 20 80 20% BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 48
  59. 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 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 ngồ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
  60. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ > 15 > 15 > 15 Mbps Mbps Mbps Hình 5.2a 3 - 15 3 - 15 3 - 15 Mbps Mbps Mbps Hình 5.2b < 3 < 3 < 3 Mbps Mbps 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
  61. 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 (Mbps) cách khi stream Video (m) (s) Rõ ràng, sắc nét, độ >= 15 0.35 – 0.4 phân giải cao (Hình 5.2a) 5 30 Rõ ràng, sắc nét, độ 3 – 15 phân giải cao (Hình 5.2b) 0.45 – 0.6 Bị mờ, khơng rõ nét, =5 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 (Mbps) cách điều khiển robot khiển robot Hiệu (m) khiển chính xác khơng chính suất robot xác \ >= 15 (Hình 5.2a) 100 100 0 100% 3 – 15 (Hình 5.2b) 5 100 100 0 100% < 3 (Hình 5.2c) 100 70 30 20% BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 51
  62. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Nhƣ bảng 5.3 cho ta thấy khi tốc độ mạng giảm thì độ trễ khi stream video sẽ 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 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
  63. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 15 15 15 fps fps fps Hình 5.3a 30 30 30 fps fps fps Hình 5.3b 60 60 60 fps fps 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
  64. 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 (m) (Mbps) khi stream(s) video Độ mƣợt thấp, rõ 15 0.6 – 0.7 ràng, sắc nét, độ phân giải cao (Hình 5.3a) Độ mƣợt cao, rõ 30 0.35 – 0.4 ràng, sắc nét, độ 5 15 phân giải cao (Hình 5.3b) Độ mƣợt rất cao, 60 0.25 – 0.3 độ phân giải 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 100 100 0 100% (Hình 5.3a) 30 15 5 100 100 0 100% (Hình 5.3b) 60 100 100 0 100% (Hình 5.3c) BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 54
  65. 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
  66. 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 hồ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
  67. 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, 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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