Hướng dẫn làm game xếp gạch trên glcd với arduino năm 2024

  • 1. & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ----- ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: ĐẾM SỐ LƯỢNG VIÊN THUỐC CÓ TRONG VỈ THUỐC GVHD: ThS. Nguyễn Duy Thảo SVTH: Võ Danh Quân 15141259 Nguyễn Minh Hảo 15141149 Tp. Hồ Chí Minh - 12/2019 https://lop7.net/
  • 2. 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 đó. Nhóm thực hiện Võ Danh Quân Nguyễn Minh Hảo https://lop7.net/
  • 3. thực hiện đồ án xin gửi lời cảm ơn đến thầy GVHD Th.S Nguyễn Duy Thảo đã trực tiếp hướng dẫn, tham gia đóng góp, gợi ý các ý kiến, chia sẽ nhiều những kinh nghiệm và tận tình giúp đỡ cũng như tạo điều kiện tốt và thoải mái nhất để chúng em có thể hoàn thành tốt đề tài này. Em xin gửi lời cảm ơn đến các quý thầy cô khoa Điện – Điện tử đã giúp đỡ và tạo điều kiện tốt cho chúng em thực hiện đề tài. Ngoài ra, chúng em cũng cảm ơn các bạn học ở lớp 15141DT2C cũng như 15141DT1B đã chia sẽ và giúp đỡ chúng em rất nhiều trong đề tài này. Xin chân thành cảm ơn tất cả ! Nhóm thực hiện Võ Danh Quân Nguyễn Minh Hảo https://lop7.net/
  • 4. ĐỒ ÁN TỐT NGHIỆP………………………………………………...i LỊCH TRÌNH LÀM ĐỒ ÁN TỐT NGHIỆP………………………………………..ii LỜI CAM ĐOAN…………………………………………………………………..iii LỜI CẢM ƠN………………………………………………………………………iv MỤC LỤC………………………………………………………………….…….....v LIỆT KÊ HÌNH………………………………………………………...…….……vii LIỆT KÊ BẢNG……………………………………………………..…...…………x Chương 1. TỔNG QUAN ………………………………………………...………...1 1.1. ĐẶT VẤN ĐỀ………………………………………………………...……..2 1.2. MỤC TIÊU……………………………………………………………...…...2 1.3. NỘI DUNG NGHIÊN CỨU…………………………………………………2 1.4. GIỚI HẠN…………………………………………...………………………2 1.5. BỐ CỤC……………………………………………………………………...2 Chương 2. CƠ SỞ LÝ THUYẾT............................................................................... 4 2.1. TỔNG QUAN VỀ XỬ LÍ ẢNH……………………………...……………...4 2.1.1. Giới thiệu về xử lý ảnh……………………………………………………….4 2.1.2. Các bước cơ bản trong xử lý ảnh …………………………...……………….5 2.1.3. Không gian màu ……………………………………………...……………...6 2.1.3.1. Mô hình màu RGB…………………………………...…………...6 2.1.3.2. Không gian màu HSV ………………………………...………….8 2.1.3.3. Cách chuyển từ không gian màu RGB sang không gian màu HSV……………………………………………………………….8 2.1.4.Xử lý hình thái học (Morphology) ……………………………………………9 2.1.4.1. Phép toán giản nở ……………………………………………….10 2.1.4.2. Phép toán co(Erosion)…………………………………………...10 2.1.4.3. Phép toán mở (Opening)…………………………...…………... 10 2.1.4.4. Phép toán đóng (Closing)…………………………...………….. 11 2.1.5. Cách vẽ đường viền……………………………………………...……….. 12 2.2. NGÔN NGỮ PYTHON VÀ THƯ VIỆN OPENCV ……………...………12 2.2.1. Hệ điều hành Raspbian ………………………………………...………….12 2.2.2. Ngôn ngữ Python......................................................................................... 13 https://lop7.net/
  • 5. OpenCV ………………………………………………...……….15 2.2.3.1.Giới thiệu OpenCV ………………………………………………...……...15 2.3. GIỚI THIỆU PHẦN CỨNG ………………………………………………16 2.3.1. Giới thiệu chuẩn giao tiếp UART………………………………………......16 2.3.2.1. Raspberry Pi 3 Model B…………………………………………16 2.3.3. Camera USB Logitech C270 …………………………………………..….20 2.3.4. Lcd 16x2………………………………………………………………...…21 2.3.5. Arduino Uno R3………………………………………………………...….23 2.3.6. Module điều khiển động cơ L298……………………………………...…..25 2.3.7. Servo SG90………………………………………………………………...27 2.3.8. Băng chuyền và Step motor …………………………………….……..…..28 2.3.9. Cảm biến siêu âm SRF 04……………………………………………...…..29 Chương 3: TÍNH TOÁN VÀ THIẾT KẾ……………………………….……..…..30 3.1. GIỚI THIỆU………………………………………………………………..30 3.2. TÍNH TOÁN VÀ THIẾT KẾ ………………………………………...……31 3.2.1. Thiết kế sơ đồ khối của hệ thống ……………………………………..……31 3.2.2. Tính toán và thiết kế mạch……………………………………………...…. 32 3.2.2.1. Thiết kế khối thu tín hiệu hình ảnh………………………..…….32 3.2.2.2. Thiết kế khối cảm biến…………………………………………..33 3.2.2.3. Thiết kế khối hiển thị…………………………………...……….34 3.2.2.4. Khối công suất…………………………………………..………35 3.2.2.5. Khối xử lý trung tâm………………………………….…...…….36 3.2.2.6. Sơ đồ nguyên lí mạch điện của hệ thống………………..………38 Chương 4. THI CÔNG HỆ THỐNG………………………………….…..……….41 4.1. GIỚI THIỆU………………………………………………………..………41 4.2. ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH……………………………...……41 4.2.1. Đóng gói bộ điều khiển ………………………………………………...…..41 4.2.2. Thi công mô hình………………………………………………………...…42 4.3. LẬP TRÌNH HỆ THỐNG …………………………………………………42 4.3.1. Lưu đồ giải thuật …………………………………………………………...42 4.3.1.1. Lưu đồ chương trình trên Raspberry …………………………....42 4.3.1.2. Lưu đồ chương trình trên Arduino ……………………………...44 https://lop7.net/
  • 6. chương trình đo khoảng cách của cảm biến siêu âm……46 4.3.1.4. Lưu đồ chương trình của timer2………………………….……...47 4.3.2. Phần mềm lập trình cho vi điểu khiển …………………………………….48 4.4. VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG – THAO TÁC …..………….49 4.4.1. Viết tài liệu hướng dẫn sử dụng ……………………………...…………….49 Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ……………………..……… .51 5.1. KẾT QUẢ ĐẠT ĐƯỢC …………………………………………......……….51 5.2. KẾT QUẢ THỰC NGHIỆM …………………………………………...…….51 5.2.1. Mô hình sản phẩm ……………………………………………………...….51 5.2.2. Kết quả thực nghiệm từ việc nhận diện số thuốc …………………….….…53 5.3. NHẬN XÉT – ĐÁNH GIÁ ………………………………………………..55 5.3.1. Nhận xét ………………………………………………………………......55 5.3.2. Đánh giá ………………………………………………………………......55 Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN……………………….. ..60 6.1. KẾT LUẬN ………………………………………………….……………...60 6.2. HƯỚNG PHÁT TRIỂN …………………………………….……………..61 PHỤC LỤC………………………………………………………………………...62 I. Chương trình trên Raspberry……………………………………………62 II. Chương trình trên Arduino……………………………………………...64 TÀI LIỆU THAM KHẢO…………………………………………………………xv https://lop7.net/
  • 7. Trang Hình 2.1. Các bước cở bản trong xử lí ảnh. ………………...……………………....5 Hình 2.2. Mô hình màu RGB…………………………….…………………..….…..5 Hình 2.3. Ba kênh màu RGB riêng biệt………………….……………………...…. 5 Hình 2.4. Hình tròn màu sắc HSV…………………………..…………………..…..8 Hình 2.5. Ảnh gốc và ảnh sau khi dùng phép giản nở ……..……………………...10 Hình 2.6. Ảnh gốc và ảnh sau khi dùng phép co …………...……………………..10 Hình 2.7. Ảnh gốc và ảnh sau khi dùng phép mở …………...…………………….11 Hình 2.8. Ảnh gốc và ảnh sau khi dùng phép đóng ……….………………………11 Hình 2.9. Giao diện của Raspberry chạy hệ điều hành Raspbian …………………13 Hình 2.10. Cửa sổ cho phép hoạt động các chuẩn giao tiếp.………………………13 Hình 2.11. Phần mềm Python…………….……………………………………......14 Hình 2.12. Raspberry Pi 1 Model B………….…………………………………….17 Hình 2.13. Raspberry Pi 2………………………………………………………….17 Hình 2.14. Raspberry Pi 3 Model B ……………………………………………….18 Hình 2.15. Sơ đồ chân Raspberry Pi 3……………………………………………..19 Hình 2.16. Cấu trúc phần cứng của Raspberry Pi 3………………………………..19 Hình 2.17. Camera Logitech C270………..……………………………………….20 Hình 2.18. Lcd 16x2…………………….…………………………………………21 Hình 2.19. Sơ đồ chân Lcd 16x2………….……………………………………….22 Hình 2.20. Arduino Uno R3…………………………………………………..……23 Hình 2.21. Module điều khiển động cơ L298……………………………..….……25 Hình 2.22. Sơ đồ chân của module L298…………………………………….…….26 Hình 2.23. Mạch nguyên lý của module L298……………………………….…….26 Hình 2.24. Hình ảnh của servo SG90………………………...………………….....27 Hình 2.25. Băng chuyền ………………….………………...…………...………....28 Hình 2.26. Step motor………………….………………...………………………...28 Hình 2.27 biến siêu âm SRF04…………….…………..…………………………..29 Hình 3.1. Sơ đồ khối của hệ thống…………………………………………………31 Hình 3.2. Sơ đồ nguyên lý kết nối khối thu tín hiệu hình ảnh với Raspberry Pi 3+ ……………………………………………………………………………………...33 https://lop7.net/
  • 8. đồ nguyên lý kết nối cảm biến siêu âm SRF05 với arduino UNO R3…………………………………………………………………………………..33 Hình 3.4. Sơ đồ nguyên lý kết nối LCD 16x2 với Arduino R3…………………....34 Hình 3.5. Sơ đồ nguyên lý kết nối servo SG90 với Arduino R3…………………..35 Hình 3.6. Sơ đồ nguyên lý kết nối Step motor với Arduino R3……………….......35 Hình 3.7. Sơ đồ nguyên lý ngoại vi sử dụng……………………………………....36 Hình 3.8. Sơ đồ kết nối thẻ nhớ với Raspberry…………………………………....37 Hình 3.9. Sơ đồ chân Raspberry Pi 3+………………………………………….....38 Hình 3.10. Sơ đồ nguyên lí toàn hệ thống…………………………………………39 Hình 4.1. Sơ đồ bố trí thiết bị được đóng gói trong mô hình …………………......41 Hình 4.2. Hình ảnh vị trí các thiết bị được bố trí trên mô hình hệ thống………….42 Hình 4.3. Lưu đồ chương trình trên Raspberry…………………………………....42 Hình 4.4. Lưu đồ chương trình trên Arduino………………………………….......44 Hình 4.5. Lưu đồ chương trình đo khoảng cách của cảm biến siêu âm…………...46 Hình 4.6. Lưu đồ chương trình của timer2………………………………………...47 Hình 4.7. Phần mềm lập trình Arduino IDE…………………………………….....48 Hình 4.8. Giao diện chính của phần mềm Arduino IDE……………………….......49 Hình 4.9. Một đoạn code của chương trình Arduino………………………………49 Hình 4.10. Giao diện của Terminal khi thực hiện dòng lệnh………………………50 Hình 4.11. Giao diện output khi chưa có vỉ thuốc…………………………………50 Hình 5.1. Mô hình hệ thống mặt trên………………………………………………51 Hình 5.2: Mô hình của hệ thống mặt bên phải…………………………………......52 Hình 5.3: Mô hình của hệ thống mặt bên trái………………………………….......52 Hình 5.4. Đếm số thuốc con nhộng đúng chuẩn ( 2 viên)……………………...…..53 Hình 5.5. Đếm số thuốc màu gạch đúng chuẩn ( 6 viên) …………………….……53 Hình 5.6. Đếm số thuốc con nhộng đúng chuẩn ( 8 viên)……………………...…..53 Hình 5.7. Đếm số thuốc màu gạch đúng chuẩn ( 4 viên)……………………...…...54 Hình 5.8. Đếm số thuốc màu gạch đúng chuẩn ( 9 viên)..........................................54 Hình 5.9. Đếm đúng tại trường hợp không có viên thuốc nào trên vỉ……………..54 Hình 5.10. Đếm sai tại trường hợp thuốc nhộng có 3 viên thuốc……………...…..55 Hình 5.11. Đếm sai tại trường hợp thuốc gạch có 8 viên thuốc……………………55 https://lop7.net/
  • 9. Trang Bảng 3.1. Bảng thống kê dòng tiêu thụ của các thiết bị……………………………38 Bảng 5.1. Bảng giám sát đánh giá đếm số lượng viên thuốc ( thuốc tròn màu cam)………………………………………………………………………………...57 Bảng 5.2. Bảng giám sát đánh giá đếm số lượng viên thuốc ( thuốc nhộng)…………………………………………………………………………..….58 https://lop7.net/
  • 10. QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1 Chương 1. TỔNG QUAN 1.1. ĐẶT VẤN ĐỀ Thế giới đang trong làn sóng của cuộc cách mạng công nghiệp 4.0. Công nghệ về điều khiển thông minh và điều khiển tự động cũng phát triển theo, chúng được ứng dụng trong nhiều lĩnh vực trong công nghiệp và đời sống. Tự động hóa là một nhân tố quan trọng trong quá trình công nghiệp hóa và hiện đại hóa. Nhờ có tự động hóa trong công nghiệp, các nhà máy đã và đang trở nên hiệu quả hơn trong việc sử dụng năng lượng, nguyên vật liệu và nguồn nhân lực. Tự động hóa trong công nghiệp là việc sử dụng các hệ thống quản lý như máy tính, robot và công nghệ thông tin để điều khiển các loại máy móc và quy trình sản xuất khác nhau trong công nghiệp. Bên cạch đó Hệ Thống Nhúng là một phần không thể thiếu, đặc biệt trong các hệ thống điều khiển, với những tính năng thích ứng với môi trường công nghiệp và giá thành rẻ. Do đó, nhóm chúng tôi chọn hướng nghiên cứu, ứng dụng Xử lí ảnh trong hệ thống nhúng vào dây chuyền sản xuất trong Dược. Ứng dụng tự động hóa vào sản xuất Dược là một lĩnh vực còn khá mới mẻ, một trong những yêu cầu nghiêm ngặt trong một mô hình sản xuất Dược là môi trường vô trùng nên việc giảm sự có mặt của con người tham gia vào dây chuyền sản xuất là một trong những bài toán đang được giải quyết. Nhận thấy điều đó thì nhóm chúng tôi đã nghiên cứu và thi công hệ thống có thể tự động loại bỏ những vỉ thuốc lỗi sau khi ép vỉ để giảm bớt nhân công phải phân loại sau khi thành phẩm. Để giải quyết vấn đề đó một trong những giải pháp tối ưu nhất là dùng công nghệ xử lý ảnh, với công nghệ xử lý ảnh hiện nay và tốc độ xử lý cao là thể đáp ứng được. Để đáp ứng nhu cầu thực tế trên giúp cho hệ thống của nhà máy ngày càng được tối ưu và muốn ứng dụng những kiến thức đã học vào thực tiễn. Được sự giới thiệu của bộ môn và cùng với sự hỗ trợ từ GVHD. Nhận thấy sự mới mẻ và cần thiết của mô hình nên nhóm chúng tôi quyết định chọn đề tài “ĐẾM SỐ LƯỢNG VIÊN THUỐC CÓ TRONG VỈ THUỐC” để nghiên cứu và thực hiện đề tài tốt nghiệp. https://lop7.net/
  • 11. QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 1.2. MỤC TIÊU Mục tiêu của đề tài là thực hiện đếm chính xác số viên thuốc có trong vỉ thuốc để phân loại vỉ thuốc lỗi dùng Board Raspberry Pi 3B+. Dùng phương pháp xử lí ảnh với dữ liệu được lấy từ camera. Từ đó những mục tiêu được đặt ra trong đề tài là:  Thiết kế được mô hình băng chuyền.  Thiết kế buồng sáng.  Thiết kế giao tiếp giữa Arduino với Raspberry.  Thiết kế được cần gạt thuốc lỗi. 1.3. NỘI DUNG NGHIÊN CỨU  Thiết kế và thi công hệ thống gồm băng chuyền, buồng sáng, cần gạt...  Lắp rắp các khối điều khiển vào hệ thống.  Chạy thử nghiệm hệ thống.  Cân chỉnh hệ thống.  Viết sách đồ án.  Báo cáo đề tài tốt nghiệp. 1.4. GIỚI HẠN  Hệ thống gồm băng chuyền, camera, cảm biến, cần gạt, lcd hiển thị.  Trong môi trường có ánh sáng cố định, phụ thuộc vào tốc độ băng chuyền.  Đếm được 2 – 4 loại thuốc nhất định.  Mô hình chỉ đếm được 1 loại thuốc trước khi đếm loại tiếp theo ở một khoảng thời gian nhất định. 1.5. BỐ CỤC Chương 1: Tổng Quan Chương này trình bày lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn và bố cục đồ án. Chương 2: Cơ Sở Lý Thuyết. Chương này trình bày về xử lý ảnh, giới thiệu ngôn ngữ Python và thư viện OpenCv, nguyên lý hoạt động của hệ thống qua hai phương pháp, giới thiệu các chuẩn giao tiếp được sử dụng trong hệ thống, giới thiệu phần cứng. Chương 3: Thiết Kế và Tính toán https://lop7.net/
  • 12. QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 Ở chương này chúng em trình bày về: thiết kế sơ đồ khối cho hệ thống, tính toán thiết kế cho từng khối, sơ đồ nguyên lý của toàn mạch, thiết kế buồng sáng. Chương 4: Thi công hệ thống Chương này trình bày sơ đồ: mạch in, các linh kiện sử dụng trong mạch, thi công mô hình, lập trình hệ thống, viết lưu đồ giải thuật, viết tài liệu hướng dẫn sử dụng thao tác. Chương 5: Kết Quả, Nhận Xét và Đánh Giá Chương này trình bày kết quả của quá trình nghiên cứu, nếu ra những khó khăn trong quá trình làm và cách khắc phục, nhận xét mô hình đã làm có đạt hay không. Chương 6: Kết Luận và Hướng Phát Triển Chương này trình bày: đánh giá mô hình hoạt động ổn hay không, đạt bao nhiêu phần trăm so với ban đầu đặt ra. https://lop7.net/
  • 13. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4 Chương 2. CƠ SỞ LÝ THUYẾT 2.1. TỔNG QUAN VỀ XỬ LÍ ẢNH 2.1.4. Giới thiệu về xử lý ảnh Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học mới so với nhiều ngành khoa học khác nhưng tốc độ phát triển đang rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó. Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân Đôn đến New York từ những năm 1920. Hiện nay xử lý ảnh được ứng dụng trong nhiều lĩnh vực: Chính trị, y tế, giáo dục... Xử lý tín hiệu là một môn học trong kỹ thuật điện tử, viễn thông và trong toán học. Nghiên cứu và xử lý tín hiệu kỹ thuật số và analog, giải quyết các vấn đề về lưu trữ, các thành phần bộ lọc, các hoạt động khác trên tín hiệu… Các tín hiệu này bao gồm truyền dẫn tín hiệu, âm thanh hoặc giọng nói, hình ảnh, và các tín hiệu khác. Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin học ứng dụng. Xử lý dữ liệu bằng đồ họa đề cập đến những ảnh nhân tạo, các ảnh này được xem xét như là một cấu trúc dữ liệu và được tạo bởi các chương trình. Xử lý ảnh số bao gồm các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên. Mục đích của xử lý ảnh gồm:  Biến đổi ảnh làm tăng chất lượng ảnh.  Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh. Trong số các phương pháp xử lý tín hiệu kể trên, lĩnh vực giải quyết với các loại tín hiệu mà đầu vào là một hình ảnh và đầu ra cũng là một hình ảnh, sản phẩm đầu ra được thực hiện trong một quá trình xử lý, đó chính là quá trình xử lý ảnh. Nó có thể được chia thành xử lý hình ảnh tương tự và xử lý hình ảnh kỹ thuật số. Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh) sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo.[1] https://lop7.net/
  • 14. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5 Thu nhận ảnh Biểu diễn ảnh Phân đoạn ảnh Tiền xử lý ảnh Nhận dạng ảnh 2.1.5. Các bước cơ bản trong xử lý ảnh Hình 2.1. Các bước cơ bản trong xử lí ảnh. Phần thu nhận ảnh (Image Acquisition): Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng có loại camera đã số hoá (như loại CCD – Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh. Camera thường dùng là loại quét dòng; ảnh tạo ra có dạng hai chiều. Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh). Tiền xử lý (Image Processing): Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn. Phân đoạn ảnh: Phân đoạn ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh. Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này. Biểu diễn ảnh: Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được. Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác. Nhận dạng và nội suy ảnh: Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thể được nội suy thành mã điện thoại. Có nhiều cách phân loại ảnh khác nhau về ảnh. Theo lý thuyết về nhận dạng, các https://lop7.net/
  • 15. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6 mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:  Nhận dạng theo tham số.  Nhận dạng theo cấu trúc. Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người… Cơ sở tri thức: Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người. Vì vậy, ở đây các cơ sở tri thức được phát huy. 2.1.6. Không gian màu Không gian màu là một mô hình toán học dùng để mô tả các màu sắc trong thực tế được biểu diễn dưới dạng số học. Trên thực tế có rất nhiều không gian màu khác nhau được mô hình để sử dụng vào những mục đích khác nhau. Trong bài này ta sẽ tìm hiểu qua về ba không gian màu cơ bản hay được nhắc tới và ứng dụng nhiều, đó là hệ không gian màu RGB và HSV. 2.1.6.1. Mô hình màu RGB Mô hình màu RGB sử dụng mô hình bổ sung trong đó ánh sáng đỏ, xanh lá cây và xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau. Hình 2.2. Mô hình màu RGB https://lop7.net/
  • 16. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 để tạo thành các màu khác. Từ viết tắt RGB trong tiếng Anh có nghĩa là đỏ (red), xanh lá cây (green) và xanh lam (blue), là ba màu gốc trong các mô hình ánh sáng bổ sung. Cũng lưu ý rằng mô hình màu RGB tự bản thân nó không định nghĩa thế nào là “đỏ”, “xanh lá cây” và “xanh lam” một cách chính xác, vì thế với cùng các giá trị như nhau của RGB có thể mô tả các màu tương đối khác nhau trên các thiết bị khác nhau có cùng một mô hình màu. Trong khi chúng cùng chia sẻ một mô hình màu chung, không gian màu thực sự của chúng là dao động một cách đáng kể. Hình 2.3. Ba kênh màu RGB riêng biệt RGB là không gian màu rất phổ biến được dùng trong đồ họa máy tính và nhiều thiết bị kĩ thuật số khác. Ý tưởng chính của không gian màu này là sự kết hợp của 3 màu sắc cơ bản : màu đỏ (R, Red), xanh lục (G, Green) và xanh lơ (B, Blue) để mô tả tất cả các màu sắc khác. Nếu như một ảnh số được mã hóa bằng 24bit, nghĩa là 8bit cho kênh R, 8bit cho kênh G, 8bit cho kênh B, thì mỗ kênh này màu này sẽ nhận giá trị từ 0-255. Với mỗi giá trị khác nhau của các kênh màu kết hợp với nhau ta sẽ được một màu khác nhau, như vậy ta sẽ có tổng cộng 255x255x255 = 1.66 triệu màu sắc. Ví dụ: màu đen là sự kết hợp của các kênh màu (R, G, B) với giá trị tương https://lop7.net/
  • 17. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8 ứng (0, 0, 0) màu trắng có giá trị (255, 255, 255), màu vàng có giá trị (255, 255, 0), màu tím đậm có giá trị (64, 0, 128) ...Nếu ta dùng 16bit để mã hóa một kênh màu (48bit cho toàn bộ 3 kênh màu) thì dãi màu sẽ trãi rộng lên tới 3×216 = ... Một con số rất lớn. 2.1.6.2. Không gian màu HSV Hình 2.4. Hình tròn màu sắc HSV HSV là không gian màu được dùng nhiều trong việc chỉnh sửa ảnh, phân tích ảnh và một phần của lĩnh vực thị giác máy tính. Hệ không gian này dựa vào 3 thông số sau để mô tả màu sắc H = Hue: màu sắc. S = Saturation: độ đậm đặc, sự bảo hòa. V = value: giá trị cường độ sáng. 2.1.6.3. Cách chuyển từ không gian màu RGB sang không gian màu HSV. Các giá trị R, G, B được chia cho 255 để thay đổi phạm vi từ 0..255 thành 0..1: R' = R/255 G' = G/255 B' = B/255 Cmax = max(R', G', B') Cmin = min(R', G', B') https://lop7.net/
  • 18. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9 Δ = Cmax – Cmin Cách tính Hue: Cách tính Saturation: Cách tính value: V = Cmax 2.1.7. Xử lý hình thái học (Morphology) Hình thái học toán học (Mathematical morphology) là một lý thuyết và kỹ thuật để phân tích và xử lý cấu trúc hình học, dựa trên lý thuyết tập hợp, lý thuyết lưới, cấu trúc liên kết và chức năng ngẫu nhiên. Hình thái học toán học phổ biến nhất được áp dụng cho hình ảnh kỹ thuật số. Ngoài ra hình thái học toán học nó có thể được sử dụng là tốt trên đồ thị, bề mặt mắt lưới, chất rắn, và nhiều các cấu trúc không gian khác. Hình thái học toán học đã được phát triển cho hình ảnh nhị phân, và sau đó được mở rộng cho ảnh đa mức xám (Image Grayscale), Đây là một trong những kỹ thuật được áp dụng trong giai đoạn tiền xử lý. Hai phép toán thường dùng là phép giãn nở (Dilation) và phép co (Erosion) .Từ hai phép toán cơ bản này người ta phát triển thành một số phép toán như phép đóng (Closing) và phép mở (Opening).  Dilation gọi là D(i): giãn nở.  Erosion gọi là E(i): co.  Một chu trình E(i)-D(i) gọi là phép mở (Opening).  Một chu trình D(i)-E(i) gọi là phép đóng (Closing). https://lop7.net/
  • 19. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10 2.1.7.1. Phép toán giản nở Hình 2.5. Ảnh gốc và ảnh sau khi dùng phép giản nở Công thức: 𝐀 ⊕ 𝐁 = {𝐜|𝐜 = 𝐚 + 𝐛, 𝐚 ∈ 𝐀, 𝐛 ∈ 𝐁 Là một trong các hoạt động cơ bản trong hình thái toán học. Phép toàn này có tác dụng làm cho đối tượng ban đầu trong ảnh tăng lên về kích thước (Giãn nở ra). 2.1.7.2. Phép toán co(Erosion) Hình 2.6. Ảnh gốc và ảnh sau khi dùng phép co Công thức: 𝐀 ⊖ 𝐁 = {𝐜|(𝐁)𝐜 ⊆ 𝐀} Phép toán co (Erosion) là một trong hai hoạt động cơ bản (khác phép giãn nở) trong hình thái học có ứng dụng trong việc giảm kích thước của đối tượng, tách rời các đối tượng gần nhau, làm mảnh và tìm xương của đối tượng. 2.1.7.3. Phép toán mở (Opening) Phép toán mở (Opening) và phép toán đóng (Closing) là sự kết hợp của phép co (Erosion) và phép giãn nở (Dilation) như trên. https://lop7.net/
  • 20. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11 Hình 2.7. Ảnh gốc và ảnh sau khi dùng phép mở Công thức: 𝐀 𝚶 𝐁 = (𝐀 ⊝ 𝐁)⨁𝐁 Thực hiện phép co (Erosion) trước sau đó mới thực hiện phép giãn nở (Dilation). Phép toán mở (Opening) được ứng dụng trong việc loại bỏ các phần lồi lõm và làm cho đường bao các đối tượng trong ảnh trở nên mượt mà hơn. 2.1.7.4. Phép toán đóng (Closing) Hình 2.8. Ảnh gốc và ảnh sau khi dùng phép đóng Công thức: A∎B = (A⨁𝐁) ⊝ 𝐁 Thực hiện phép giãn nở (Dilation) trước sau đó mới thực hiện phép co (Erosion). Phép toán đóng (Closing) được dùng trong ứng dụng làm trơn đường bao các đối tượng, lấp đầy các khoảng trống biên và loại bỏ những hố nhỏ. https://lop7.net/
  • 21. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12 2.1.8. Cách vẽ đường viền. Đường viền có thể được giải thích đơn giản là một đường cong nối tất cả các điểm liên tục (dọc theo đường biên), có cùng màu hoặc cường độ. Các đường viền là một công cụ hữu ích để phân tích hình dạng và phát hiện và nhận dạng đối tượng. Trong OpenCV, tìm đường viền cũng giống như tìm đối tượng màu trắng từ nền đen. Vì vậy, đối tượng được tìm thấy nên có màu trắng và nền nên có màu đen. 2.2. NGÔN NGỮ PYTHON VÀ THƯ VIỆN OPENCV Trước tiên để Raspberry hoạt động thì ta phải cài hệ điều hành cho nó, chúng em chọn hệ điều hành Raspbian để cài đặt cho Raspberry thông qua thẻ nhở SD 32GB. 2.2.1. Hệ điều hành Raspbian Đây là hệ điều hành cơ bản, phổ biến nhất và do chính Raspberry Pi Foundation cung cấp. Nó cũng được hãng khuyến cáo sử dụng, nhất là cho người mới bắt đầu làm quen với RPI. Raspbian có dung lượng sau khi giải nén là khoảng gần 4GB, bạn cần tối thiểu 1 cái thẻ 4GB để có thể sử dụng Raspbian. Tuy nhiên, chúng tôi nghĩ bạn nên sử dụng thẻ tối thiểu 8GB vì bạn cần cài thêm các ứng dụng khác nữa. Raspbian được hướng đến người dùng có mục đích:  Sử dụng Raspberry Pi như máy tính văn phòng để lướt web, soạn văn bản, check mail và thi thoảng nghe nhạc/xem phim.  Nghiên cứu phát triển các thiết bị điều khiển tự động.  Sử dụng như một máy chủ cung cấp các dịch vụ như web, file server, printer server,... Sau khi cài xong thì giao diện của Raspberry như hình:[5] https://lop7.net/
  • 22. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13 Hình 2.9. Giao diện của Raspberry chạy hệ điều hành Raspbian Hình 2.10. Cửa sổ cho phép hoạt động các chuẩn giao tiếp 2.2.2. Ngôn ngữ Python: Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình https://lop7.net/
  • 23. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14 thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu. Python là một ngôn ngữ lập trình được sử dụng phổ biến ngày nay từ trong môi trường học đường cho tới các dự án lớn. Ngôn ngữ phát triển nhiều loại ứng dụng, phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web... Ngoài ra Python cũng là ngôn ngữ ưa thích trong xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning. Ban đầu, Python được phát triển để chạy trên nền Unix, nhưng sau này, nó đã chạy trên mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Python do Guido van Rossum tạo ra năm 1990. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python. Qua nhiều năm phát triển thì có nhiều phiên bản: Python 1, Python 2, Python 3. Nhóm em sử dụng phiên bản Python 3.5.7 để viết chương trình . Giới thiệu ngôn ngữ Python Hình 2.11. Phần mềm Python Đặc Điểm Nổi Bật Của Python Python là ngôn ngữ có hình thức đơn giản, cú pháp ngắn gọn, sử dụng một số lượng ít các từ khoá, do đó Python là một ngôn ngữ dễ học đối với người mới bắt https://lop7.net/
  • 24. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15 đầu tìm hiểu. Python là ngôn ngữ có mã lệnh (source code hay đơn giản là code) không mấy phức tạp. Cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy đoán được ý nghĩa của từng dònglệnh trong source code. Python có nhiều ứng dụng trên nhiều nền tảng, chương trình phần mềm viết bằng ngôn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau bao gồm Windows, Mac OSX và Linux. 2.2.3. Thư viện OpenCV 2.2.3.1. Giới thiệu OpenCV OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở, nó là miễn phí cho những ai bắt đầu tiếp cận với các học thuật. OpenCV được ứng dụng trong nhiều lĩnh vực như cho thị giác máy tính hay xử lý ảnh và máy học. Thư viện được lập trình trên các ngôn ngữ cấp cao: C++, C, Python, hay Java và hỗ trợ trên các nền tảng Window, Linux, Mac OS, iOS và Android. OpenCV đã được tạo ra tại Intel vào năm 1999 bởi Gary Bradsky, và ra mắt vào năm 2000. Opencv có rất nhiều ứng dụng: Nhận dạng ảnh, xử lý hình ảnh, phục hồi hình ảnh/video, thực tế ảo,… Ở đề tài này thư viện OpenCV được chạy trên ngôn ngữ Python. OpenCV được dùng làm thư viện chính để xử lý hình ảnh đầu vào và sau đó đi nhận dạng ảnh. 2.2.3.2. Đặc điểm OpenCV OpenCV Là một thư viện mở nên sử dụng các thuật toán một cách miễn phí, cùng với việc chúng ta cũng có thể đóng góp thêm các thuật toán giúp Thư viện thêm ngàycàng phát triển. Một số ứng dụng nổi bật Opencv như: Nhận dạng ảnh, Xử lý hình ảnh, Phục hồi hình ảnh/video, Thực tế ảo, ứng dụng trong Machine Learning… Các tính năng của thư viện OpenCV:  Đối với hình ảnh, chúng ta có thể đọc và lưu hay ghi chúng.  Về Video cũng tương tự như hình ảnh cũng có đọc và ghi.  Xử lý hình ảnh có thể lọc nhiễu cho ảnh, hay chuyển đổi ảnh.  Thực hiện nhận dạng đặc điểm của hình dạng trong ảnh.  Phát hiện các đối tượng xác định được xác định trước như khuôn mặt, mắt, xe trong video hoặc hình ảnh.[3] https://lop7.net/
  • 25. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16 2.3. GIỚI THIỆU PHẦN CỨNG  Thiết bị đầu vào: bàn phím, chuột, màn hình Desktop, Camera.  Thiết bị đầu ra: LCD 20x4, step motor 5V, dây led trắng, Arduino Uno R3, servo SG90  Thiết bị điều khiển trung tâm là máy tính.  Các chuẩn truyền dữ liệu UART, SPI, I2C, PWM  Thiết bị lưu trữ bộ nhớ RAM, ROM, thẻ nhớ. 2.3.1. Giới thiệu chuẩn giao tiếp UART Có nhiều kiểu truyền dữ liệu phổ biến tích hợp trong các họ vi điều khiển bao gồm: Truyền dữ liệu nối tiếp đồng bộ và bất đồng bộ (USART Universal Synchronous Asynchronous Receiver and Transmitter). Truyền dữ liệu giữa các vi điều khiển với các thiết bị ngoại vi (SPI Serial Peripheral Interface). Truyền dữ liệu 2 dây (I2C: Inter-Integrated Circuit). Ở kiểu truyền nối tiếp đồng bộ thì có 1 đường dữ liệu và 1 đường xung clock, thiết bị nào cấp xung clock thì thiết bị đóng vai trò là chủ, thiết bị nhận xung clock đóng vai trò là tớ, tốc độ truyền dữ liệu phụ thuộc vào tần số xung clock. Ở kiểu truyền nối tiếp bất đồng bộ thì có 1 đường phát dữ liệu và 1 đường nhận dữ liệu, không còn tín hiệu xung clock nên gọi là bất đồng bộ. Để truyền được dữ liệu thì cả bên phát và bên nhận phải tự tạo xung clock có cùng tần số và thường gọi là tốc độ truyền dữ liệu (baud), ví dụ 2400baud, 4800baud, …, 2400baud có nghĩa là truyền 2400 bit trên 1 giây. Truyền dữ liệu đồng bộ gồm các đường truyền dữ liệu (DT) và tín hiệu xung clock (CK) – chức năng của CK dùng để dịch chuyển dữ liệu, mỗi 1 xung ck là 1 bit dữ liệu được truyền đi. Trong hệ thống truyền dữ liệu đồng bộ, hệ thống nào cung cấp xung CK thì đóng vai trò là master (chủ) – những hệ thống còn lại nhận xung ck đóng vai trò là slave (tớ). Tốc độ truyền dữ liệu chính là tốc độ của xung ck – chính là tần số xung ck. [2] 2.3.2. Raspberry Pi 3 Model B Raspberry Pi là một máy tính mini giá rẻ, một single-board đa chức năng, cho phép những người yêu thích công nghệ trên thế giới xây dựng những ứng dụng của riêng mình một cách dễ dàng hơn bao giờ hết. Raspberry Pi ra đời với mục đích mang kiến thức khoa học máy tính và điện https://lop7.net/
  • 26. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17 tử lập trình đến gần hơn với mọi người. Vậy nên những gì bạn làm được với Pi là gần nhưkhông giới hạn: điện tử, lập trình, Iot, Linux, giải trí đa phương tiện… Từ trẻ em cho đến người lớn tuổi, từ người mới bắt đầu cho đến các chuyên gia về công nghệ ai cũng có thể sử dụng Raspberry Pi để học tập hay tạo nên các ứng dụng công nghệ của riêng mình. Đó chính là điểm đặc biệt của cộng đồng Raspberry Pi. Hình 2.12. Raspberry Pi 1 Model B Hình 2.13. Raspberry Pi 2 Model B Raspberry Pi 1 Model B “huyền thoại” được phát hành vào năm 2012 và làm nêntên tuổi của Raspberry Pi. Về nguồn gốc của cái tên Raspberry Pi, phòng thí nghiệm máy tính của đại học Cambridge thường đặt tên các sản phẩm của mình bằng tên các loại trái cây, “Raspberry” nghĩa là “quả dâu” còn “Pi” là ám chỉ “python” ngôn ngữ lập trình chính thức của Raspberry Pi. Qua nhiều năm Raspberry Pi Foundation ra mắt nhiều phiên bản mới khác nhau và gần nhất là Raspberry Pi 3 Model B+ với một số nâng cấp khá lớn. Do yêu cầu của đề tài còn hạn chế nên nhóm chọn Kit Raspberry Pi 3 Model B làm vi điều khiển trung tâm. Ưu điểm:  Giá rẻ, nhỏ gọn.  Siêu tiết kiệm điện.  GPU mạnh.  Khả năng hoạt động liên tục 24/7. Nhược điểm:  CPU cấu hình thấp . https://lop7.net/
  • 27. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18  Lan 100.  Yêu cầu phải có kiến thức cơ bản về Linux, điện tử. Do yêu cầu của đề tài còn hạn chế nên nhóm chọn Kit Raspberry Pi 3 Model B làm vi điều khiển trung tâm. Giới thiệu Raspberry Pi 3 Hình 2.14. Raspberry Pi 3 Model B Raspberry Pi là một máy tính chỉ có một board mạch kích thước chỉ bằng một cái thẻ ATM. Người ta đã tích hợp mọi thứ cần thiết trong đó để bạn sử dụng như một cái máy vi tính, chạy hệ điều hành Linux, được phát triển tại Anh bởi Raspberry Pi Foundation với mục đích thúc đẩy việc giảng dạy về khoa học máy tính cơ bản trong các trường học và các nước đang phát triển. Raspberry Pi xây dựng xoay quanh bộ xử lí soc Broadcom BCM2835 bao gồm: CPU, GPU, bộ xử lí âm thanh /video, và các tính năng khác... Raspberry Pi có hai phiên bản, Model A và Model B. Ở đề tài này sử dụng Kit Raspberry Pi 3 Model B vì thông dụng hơn. Thông số kỹ thuật Cấu hình Raspberry Pi 3:  Bộ xử lí Broadcom BCM2835 tốc độ xử lí 1.2ghz 64-bit quad-core ARM Cortex- A53  Bộ nhớ Ram 1GB  4 cổng USB  40 GPIO pins  Chip antenna  Giao tiếp Camera qua CSI https://lop7.net/
  • 28. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19  Kích thước: 85 x 56 x 17 mm  Khe cắm thẻ nhớ microsd  Đầu nối microusb cho nguồn điện 2,5A 5VDC  Hỗ trợ tất cả các bản phân phối ARM GNU / Linux mới nhất và Windows 10 iot Sơ đồ chân: Hình 2.15. Sơ đồ chân Raspberry Pi 3 Hình 2.16. Cấu trúc phần cứng của Raspberry Pi 3 https://lop7.net/
  • 29. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20 Ưu điểm: giá rẻ, nhỏ gọn, siêu tiết kiệm điện, GPU mạnh. Nhược điểm:  Máy tính nhúng xử lý vẫn còn chậm so với máy tính để bàn hay laptop.  Không chạy được một số chương trình nặng.  CPU của thiết bị này được coi là bộ não của thiết bị chịu trách nhiệm thực thi các câu lệnh dựa trên hoạt động toán học và logic.  GPU (bộ xử lý đồ họa) là một chip tiên tiến khác được tích hợp trong board mạch có chức năng tính toán hình ảnh. Board mạch được trang bị cáp lõi video Broadcam chủ yếu được sử dụng để chơi các trò chơi video thông qua thiết bị.  Pi 3 đi kèm với các chân GPIO (General Purpose Input Output) rất cần thiết để duy trì kết nối với các thiết bị điện tử khác. Các chân đầu ra đầu vào này nhận lệnh và hoạt động dựa trên chương trình của thiết bị.  Cổng USB được tích hợp trên board mạch được sử dụng để khởi động thiết bị. Vì RPi chạy hệ điều hành Linux, nên chỉ cần cắm bàn phím và chuột vào là có thể sử dụng mà không cần cài thêm driver.  Pi 3 hỗ trợ hai tùy chọn kết nối bao gồm HDMI và RCA Video. Cổng HDMI được sử dụng để kết nối LCD hoặc TV, có thể hỗ trợ cáp phiên bản 1.3 và 1.4. Cổng RCA Video được sử dụng để kết nối các màn hình TV đời cũ sử dụng jack cắm 3,5mm mà không hỗ trợ cổng HDMI. 2.3.3. Camera USB Logitech C270 Hình 2.17 . Camera Logitech C270 https://lop7.net/
  • 30. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21 Giới thiệu Camera Logitech C270: Camera Logitech C270 được hãng Logitech thiết kế và sản xuất với nhiều tính năng nổi trội như:  Gọi video HD 720P màn ảnh rộng. Thực hiện cuộc gọi video có độ phân giảicao trên các nền tảng ưa thích của bạn như Skype™. Ở tốc độ 30 khung hình/giây, chất lượng video trở nên mượt mà, trong khi hình ảnh rõ ràng, đầy màu sắc và có độ tương phản.  Để bạn trong đẹp hơn. Ngay cả khi bạn đang gọi điện video hoặc quay trong bối cảnh mờ tối, C270 sẽ điều chỉnh với điều kiện ánh sáng để tạo ra hình ảnh có độ tương phản, tươi sáng hơn.  Chắc chắn. Webcam đi kèm với một kẹp phổ dụng. Bạn có thể gắn chắc chắn vào màn hình hoặc đặt trên giá.  Độ linh hoạt vượt ngoài mong đợi. Nhỏ gọn, linh hoạt và có thể điều chỉnh, Webcam C270 mang lại góc nhìn hoàn toàn mới cho cuộc gọi video. Thông số kĩ thuật:  Độ phân giải tối đa: 720p/30fps  Loại tiêu cự: Lấy nét cố định  Công nghệ thấu kính: tiêu chuẩn  Micrô tích hợp: đơn âm  Phạm vi quan sát: 60°  Kẹp phổ dụng phù hợp với máy tính xách tay, LCD hoặc màn hình  Độ dài dây cáp: 1,5 m [4] 2.3.4. Lcd 16x2 Hình 2.18. Lcd 16x2 https://lop7.net/
  • 31. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22 Thông số kỹ thuật  Điện áp MAX: 7V.  Điện áp MIN: -0,3V.  Hoạt động ổn định: 2.7-5.5V.  Điện áp ra mức cao: > 2.4V.  Điện áp ra mức thấp: <0.4V.  Dòng điện cấp nguồn: 350uA - 600uA.  Nhiệt độ hoạt động: -30 - 75 độ C. Sơ đồ chân của Lcd 16x2: Hình 2.19. Sơ đồ chân Lcd 16x2  Nguồn: Vcc: 5V, VSS: 0V (CMOS)  Vào: D7-D0: 8 bit dữ liệu – ngõ vào khi ghi LCD  Ra: D7-D0: ngõ ra khi đọc LCD  Điều khiển: RS: Chọn thanh ghi = 0: thanh ghi lệnh = 1: thanh ghi hiển thị  R/W: Chọn chế độ ghi/đọc 0: chế độ ghi 1: chế độ đọc  E: Enable – cho phép ghi/đọc  ADJ: (Dò theo thứ tự chân – số 3) V0 : Điều chỉnh độ tương phản (contrast)  Chân số 15 (A): Nguồn dương cho đèn nền. https://lop7.net/
  • 32. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23  Chân số 16 (K): Nguồn âm cho đèn nền 2.3.5. Arduino Uno R3 Arduino là dự án nguồn mở, làm việc dựa trên bo mạch điện tử bao gồm một vi điều khiển, các đầu vào/đầu ra, một ngôn ngữ lập trình và một IDE (trình soạn thảo trong môi trường phát triển tích hợp). Arduino là một công cụ để thực hiện các ứng dụng tương tác độc lập hoặc có thể được kết nối với phần mềm trên máy tính (chẳng hạn như là Flash, Max/MSP...). Arduino UNO R3 là dòng mạch phổ biến nhất trong các dòng mạch Arduino, phiên bản R3 là phiên bản mới nhất, có độ chính xác và độ bền cao hơn rất nhiều so với Arduino UNO phiên bản cũ. Arduino UNO R3 có thể sử dụng 3 vi điều khiển họ 8bit AVR là Atmega8, Atmega168, Atmega328. Bộ điều khiển này có thể điều khiển led đơn, điều khiển động cơ, xử lí các tín hiệu, thu thập dữ liệu từ cảm biến để hiển thị lên màn hình LCD... [3] Dùng điều khiển ngoại vi Motor để cho mạch chạy không bị delay bới nhiều công việc cùng một lúc. Chân tín hiệu ngõ ra Arduino Uno R3 đi qua L298 để khuếch đại dòng điện ( vì một motor cần ít nhất 500mA để chạy nhưng chân tín hiệu thì cao nhất chỉ xuất 40mA nên cần qua L298 để khuếch đại lên tránh sự cố thiếu dòng dẫn đến hỏng vi điều khiển) . Hình 2.20. Arduino Uno R3 Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dòng Arduino UNO. Hiện dòng mạch này đã phát triển tới https://lop7.net/
  • 33. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24 thế hệ thứ 3 (R3). Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Thông số kỹ thật Một vài thông số của Arduino Uno R3:  Sử dụng vi điều khiển Atmega328 họ 8bit.  Có 6 ngõ ra Analog với độ phân giải 10bit.  Có 14 chân I/O Digital. Trong đó có 6 chân có thể được sử dụng là ngõ ra cấp xung  PWM.  Điện áp hoạt động là 5Vdc được cấp thông qua cổng USB.  Điện áp khuyên dùng là từ 7 đến 12V.  Điện áp vào giới hạn từ 6 đến 20V.  Bộ nhớ Flash: 32kB với 0,5kB được dùng cho Bootloader.  SRAM: 2kB. Arduino UNO R3 có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V và giới hạn là 6-20V. Thông thường nếu không 7 cấp nguồn bằng cáp USB thì nên cấp nguồn bằng pin 9V. Bởi vì nếu cấp nguồn vượt quá ngưỡng giới hạn trên thì Arduino UNO sẽ dễ dàng bị hỏng. Ở đây nhóm em cấp nguồn5V cho Arduino UNO thông qua cổng USB. Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng các thông số sau:  32KB bộ nhớ Flash: những câu lệnh được lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Thường sẽ có vài KB được sử dụng cho Bootlader.  2KB cho SRAM: Giá trị các biến được khai báo khi lập trình sẽ lưu ở đây. Trong chương trình khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM.  1KB cho EEPROM: là nơi có thể đọc và ghi dữ liệu vào mà không lo bị xóa khi mất điện giống như dữ liệu trên SRAM. Các chân năng lượng  GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn https://lop7.net/
  • 34. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25 dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.  5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.  3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.  RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ. 2.3.6. Module điều khiển động cơ L298 Hình 2.21. Module điều khiển động cơ L298 Module sử dụng IC L298 có chức năng điều khiển động cơ, động cơ bước, có thể đảo chiều động cơ, ở đây chúng em sử dụng thông qua Arduino Uno R3. Thông số kỹ thuật:  IC chính: L298 . Dòng tối đa là: 2A  Điện áp đầu vào: DC 5 ~ 30V  Công suất tối đa: 25W 1 cầu (lưu ý công suất = dòng điện x điện áp nên áp cấp vào càng cao, dòng càng nhỏ, công suất có định 25W).  Các chân ngõ vào: IN1, IN2, IN3, IN4, ENA, ENB.  Các chân ngõ ra: OUT1, OUT2, OUT3, OUT4.  Mức điện áp logic: Low -0.3V~1.5V, High: 2.3V~Vss https://lop7.net/
  • 35. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26  Kích thước: 43x43x27mm Sơ đồ chân của module L298: Hình 2.22. Sơ đồ chân của module L298 Hình 2.23. Mạch nguyên lý của module L298 Nguyên lý hoạt động:  Cần cấp nguồn cho mạch để mạch hoạt động. Chân IN1, IN2 và ENA được kết nối tới vi điều khiển. Chân OUT1 và OUT2 được kết nối với động cơ.  Khi IN1 ở mức LOW và IN2 ở mức HIGH: phía IN1 sẽ có transistor Q1 hở và Q3 đóng, phía IN2 sẽ có transistor Q2 đóng và Q4 hở. Do đó có dòng điện từ nguồn qua Q2, sau đó chạy qua động cơ rồi đến Q3 và chạy xuống mass. https://lop7.net/
  • 36. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27 Lúc này động cơ quay thuận.  Khi IN1 ở mức HIGH và IN2 ở mức LOW: phía IN1 sẽ có transistor Q1 đóng  và Q3 hở, phía IN2 sẽ có transistor Q4 đóng và Q2 hở. Do đó dòng điện sẽ chạy từ  nguồn qua Q1, sau đó qua động cơ rồi đến Q4 và xuống mass. Lúc này động cơ quay nghịch.  Khi cả hai IN1 và IN2 cùng ở mức LOW: transistor Q3 và Q4 đóng, Q1 và Q2 hở. Dòng điện từ nguồn không có đường để về mass nên động cơ không quay.  Khi cả hai IN1 và IN2 cùng ở mức HIGH: trasistor Q1 và Q2 cùng đóng, Q3 và Q4 hở. Khi đó dòng điện không thể về mass nên động cơ không quay.  Vậy để động cơ ngừng quay có thể cho IN1 và IN2 cùng ở mức cao hoặc cùng ở mức thấp. Để điều khiển tốc độ động cơ ta còn có thể sử dụng chân ENA. Khi ta cấp nguồn cho ENA càng lớn thì thì tốc độ quay càng nhanh và ngược lại. [2] 2.3.7. Servo SG90 Hình 2.24 . Hình ảnh của servo SG90. Động cơ RC Servo 9G là động phổ biến dùng trong các mô hình điều khiển nhỏ và đơn giản như cánh tay robot. Động cơ có tốc độ phản ứng nhanh, được tích hợp sẵn Driver điều khiển động cơ, dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM. [3] Đặc điểm:  Kích thước: 23mmX12.2mmX29mm https://lop7.net/
  • 37. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28  Trọng lượng: 9 gram  Điện áp hoạt động: 4.2-6V  Nhiệt độ: 0 ℃ --55 ℃  Tốc độ: 0.3 giây / 60 độ. 2.3.8. Băng chuyền và Step motor Băng chuyền được sử dụng trong mô hình là loại mini có kích thước 100cm x 10 cm. Được điều khiển bởi 1 step motor 12VDC thông qua mạch cầu L298. Hình 2.25. Băng chuyền Hình 2.6 Step motor https://lop7.net/
  • 38. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29 2.3.9. Cảm biến siêu âm SRF 04 Hình 2.27 . Cảm biến siêu âm HY-SRF04 Cảm biến siêu âm SRF 05 dùng để xác định khoảng cách trong phạm vi nhỏ. Cảm biến tuy chính xác, nhưng ko tuyệt đối, nhiễu vẫn lớn. Bên cạnh đó cảm biến dễ dàng kết nối với các MCU (Arduino, DSP, AVR, PIC, ARM…) Đặc điểm:  Điện áp hoạt động: 5 VDC  Góc cảm biến: < 15°  Phạm vi: 2cm - 450 cm  Độ chính xác: ~0.5cm  Kích thước: 20 *45 * 15mm  Tín hiệu đầu ra: Digital ( 0V - 5V) https://lop7.net/
  • 39. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30 Chương 3: TÍNH TOÁN VÀ THIẾT KẾ 3.1. GIỚI THIỆU Ngày nay, các thiết bị điện tử phần lớn đều phát triển theo xu hướng tự động, thông minh, chúng giao tiếp được với con người và hoạt động theo ý muốn con người, để làm được điều đó thì các thiết bị cảm biến, thuật toán hỗ trợ ra đời. Trong số đó có bài toán “Đếm số lượng thuốc” và “Lọc ra những vỉ thuốc lỗi” là hai bài toán mà nhóm em sẽ tìm hiểu trong đề tài: “ Đếm số lượng viên thuốc có trong vỉ thuốc”. Đề tài: “Đếm số lượng viên thuốc có trong vỉ thuốc”. Hai bài toán trong đề tài chúng em có thể thay thế những người công nhân trong việc phân loại vỉ thuốc lỗi. Mô hình gồm bộ điều khiển trung tâm là Kit Raspberry Pi 3, khối thu tín hiệu hình ảnh từ bên ngoài là Camera USB Logitech C270, khối Arduino điều khiển ngoại vi, khối hiển thị, khối nguồn. Thiết kế mô hình là băng chuyền, với sự ảnh hưởng từ nhiều yếu tố bên ngoài sẽ làm cho Camera chụp ảnh không chính xác cao nên nhóm đã thiết kế buồng sáng có thêm đèn led trắng để tăng cường độ sáng cho Camera. Tuy nhiên tốc độ xử lý còn chậm, đề tài xây dựng mô hình nhỏ gọn và hiển thị trên LCD 16x2. https://lop7.net/
  • 40. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31 3.2. TÍNH TOÁN VÀ THIẾT KẾ 3.2.1. Thiết kế sơ đồ khối của hệ thống Từ yêu cầu đặt ra của đề tài thì dưới đây là sơ đồ khối của hệ thống: Hình 3.1. Sơ đồ khối của hệ thống Khối xử lý trung tâm sẽ lấy tín hiệu từ hai khối: Khối RFID và khối thu tín hiệu hình ảnh để xử lý rồi gửi tín hiệu qua khối điều khiển ngoại vi và khối hiển thị để điều khiển động cơ và hiển thị thông tin người dùng trên LCD. Chức năng từng khối: Khối xử lý trung tâm: Là bộ xử lý chính, nhận tín hiệu từ hai khối:  Thứ nhất nhận tín hiệu hình ảnh từ khối thu tín hiệu hình ảnh, sau đó xử lý hình ảnh và phân tích nhận dạng, đem so sánh để đưa kết quả.  Thứ hai nhận tín hiệu từ khối cảm biến. Sử dụng kit Raspberry Pi 3 Model B làm bộ xử lý trung tâm. Sử dụng thêm bàn phím và chuột máy cho kit Raspberry. Khối thu tín hiệu hình ảnh: Có chức năng thu nhận tín hiệu hình ảnh từ thực tế chuyển về tín hiệu điện và gửi dữ liệu cho Khối xử lý trung tâm. Ở đây dùng Camera Raspberry Pi làm khối thu tín hiệu hình ảnh. Khối hiển thị: nhận tín hiệu từ khối xử lý trung tâm để hiển thị trên LCD 20x4 Khối điều khiển động cơ: bao gồm Arduino Uno R3, Module điều khiển động cơ L298, step 5V( băng chuyền), servo SG90. Arduino sẽ giao tiếp với khối xử https://lop7.net/
  • 41. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32 lý trung tâm thông qua cổng USB của Raspberry nếu Raspberry truyền số thuốc đếm được qua cho Arduino. Nếu dữ liệu nhận được nhỏ hơn 10 và lớn hơn 0 thì Arduino sẽ tiến hành điều khiển chân tín hiệu của servo SG90 quay 1 góc 45 độ để gạt vỉ thuốc lỗi ra khỏi băng chuyền và servo SG90 sẽ quay lại vị trí ban đầu. Nếu dữ liệu nhận được bằng 10 thì sẽ không làm gì cả. (lúc này vỉ thuốc đủ viên thuốc). Khối nguồn: Dùng nguồn 5V để nuôi khối xử lý trung tâm, dùng nguồn 12V để nuôi khối điều khiển ngoại vi Khối cảm biến: Khi cảm biến siêu âm vị trí 1 phát hiện có vỉ thuốc thì sẽ cho phép truyền nhận Uart giữa Raspberry và Arduino. Khi cảm biến siêu âm ở vị trí 2 phát hiện có thuốc thì sẽ cho phép Servo SG90 hoạt động. 3.2.2. Tính toán và thiết kế mạch 3.2.2.1. Thiết kế khối thu tín hiệu hình ảnh Được xem như là con mắt của mô hình. Có chức năng thu thập tín hiệu hình ảnh từ thực tế rồi gửi dữ liệu cho Khối xử lý trung tâm. Ở đây để có chất lượng hình ảnh tốt để xử lý ảnh dễ dàng ta dùng Camera có độ phân giải từ 5 Megapixels(MP), nên chọn Camera USB Logitech C270 làm Khối thu tín hiệu hình ảnh. Camera này được kết nối trực tiếp với máy tính nhúng Raspberry thông qua cổng giao tiếp USB . Để tăng cường độ sáng cũng như việc tránh ánh sáng nhiễu từ bên ngoài nhóm làm thêm một buồng sáng có một dây led trắng với công suất 1W và điện áp sử dụng là 12V để tăng cường chất lượng hình ảnh. Giá trị MP được tính bằng tích độ rộng với chiều cao số lượng điểm ảnh. Có thể hiểu ngắn gọn megapixel sẽ quy định kích thước bức ảnh chụp. Một MP tương ứng với một triệu điểm ảnh (1.000 x 1.000 pixel). Như vậy 5 MP tương ứng với 5 triệu điểm ảnh. https://lop7.net/
  • 42. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33 Hình 3.2. Sơ đồ nguyên lý kết nối khối thu tín hiệu hình ảnh với Raspberry Pi 3+  Điện áp hoạt động: 4.85V – 5.15V  Dòng điện tiêu thụ: 250mA Với kích thướt nhỏ gọn và có thể nối trực tiếp qua cổng giao tiếp USB 2.0. Với việc độ sáng cần phải đảm bảo cho mọi trường hợp nên nhóm quyết định làm thêm một buồng sáng có thêm dây led trắng 12V để chiếu sáng. 3.2.2.2. Thiết kế khối cảm biến Hình 3.3. Sơ đồ nguyên lý kết nối cảm biến siêu âm SRF05 với arduino UNO R3 Cảm biến thứ nhất: có chức năng phát hiện khi có vỉ thuốc chạy qua thì sẽ https://lop7.net/
  • 43. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34 cho phép truyền gửi dữ liệu là số thuốc đọc được về Arduino. Cảm biến thứ hai: có chức năng phát hiện khi số thuốc chạy qua và dữ liệu được nhận thì sẽ điều khiển servo SG90 gạt hay không gạt. 3.2.2.3. Thiết kế khối hiển thị Khối hiển thị có chức năng giao tiếp với người dùng, hiển thị những thông tin cần xuất ra bên ngoài để người dùng kiểm soát. Trên thực tế có rất nhiều modulde dùng để hiển thị như: LED 7 đoạn trực tiếp, LED 7 đoạn quét, LCD, GLCD…  LED 7 đoạn chỉ hiển thị được số và một vài ký tự đặc biệt.  LCD hiển thị được chuỗi ký tự và số.  GLCD có thể hiện thị ở chế độ văn bản và chế độ hình ảnh.  Căn cứ vào yêu cầu, giới hạn của đề tài vì vậy LCD 20x4 là lựa chọn phù hợp. LCD 20x4 có nghĩa là có 4 hàng, mỗi hàng có 20 ký tự. Hình 3.4. Sơ đồ nguyên lý kết nối LCD 16x2 với Arduino R3 Ở đây nhóm em kết nối LCD theo kiểu 4 dây tín hiệu, dùng biến trở 10kΩ để điều chỉnh độ tương phản cho LCD. Chân RW luôn ở mức 0V để luôn ở chế độ ghi. https://lop7.net/
  • 44. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35 3.2.2.4. Khối công suất Sử dụng Arduino Uno R3 nhận tín hiệu từ Raspberry Pi 3 và điều khiển servo SG90 và step motor 5V và dùng thêm L298 để khuếch đại dòng ngõ ra từ chân Arduino Uno R3. Hình 3.5. Sơ đồ nguyên lý kết nối servo SG90 với Arduino R3 Hình 3.6. Sơ đồ nguyên lý kết nối Step motor với Arduino R3 Arduino sẽ đóng vai trò là vi xử lý điều khiển riêng cho khối công suất, Arduino sẽ giao tiếp với Raspberry thông qua cáp và truyền dữ liệu theo chuẩn Uart. Raspberry đóngvai trò truyền dữ liệu còn arduino thì nhận dự liệu để điều khiển động cơ. DIGITAL (PWM~) SIMULINO ARDUINO POWER ANALOG IN https://lop7.net/
  • 45. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 Raspberry Pi 3 USB 2.0 HDMI USB 2.0 USB 2.0 Khe nguồn CSI camera 40 PIN GPIO Như đã nói ở chương 2, dòng từ chân Arduino không đủ để cấp cho động cơ ( nếu không khuếch đại thì sẽ dẫn đến hỏng Arduino) nên nhóm có thêm L298 để khuếch đại chân tín hiệu cho Arduino. 3.3.2.5. Khối xử lý trung tâm Khối xử lý trung tâm: Là bộ xử lý chính, nhận tín hiệu từ hai khối:  Thứ nhất nhận tín hiệu hình ảnh từ khối thu tín hiệu hình ảnh, sau đó xử lý hình ảnh và phân tích nhận dạng, đem so sánh để đưa kết quả.  Thứ hai nhận tín hiệu từ khối cảm biến. Sử dụng kit Raspberry Pi 3 Model B làm bộ xử lý trung tâm. Sử dụng thêm bàn phím và chuột máy cho kit Raspberry. Cài hệ điều hành Raspbian cho Raspberry. Vì vấn đề xử lý ảnh cần nhiều tài nguyên và tốc độ xử lý cao, nên ta không sử dụng vi điều khiển thông thường để xử lý. Chính vì vậy, Nhóm đã sử dụng hệ thống nhúng Raspberry Pi 3 Model B làm Khối xử lý trung tâm. Máy tính nhúng Raspberry có CPU tộc độ xử lý lên tới 1.2GHz chính vì vậy việc sử dụng vào mô hình là hợp lý. Máy tính hỗ trợ rất tốt việc giao tiếp các thiết bị ngoại vi và model từ bên ngoài. Raspberry có nhiều cổng giao tiếp nhưng trong mô hình chỉ sử dụng một số cổng sau: Hình 3.7. Sơ đồ nguyên lý ngoại vi sử dụng Cổng USB: Kit Raspberry có 4 cổng USB (Universal Serial Bus) nhưng chỉ sử dụng 3 cổng để kết nối với bàn phím, chuột và cổng USB của Arduino Uno R3. https://lop7.net/
  • 46. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37 Raspberry Pi 3 Micro SD 32GB Khe thẻ nhớ Với chuẩn USB 2.0 tốc độ cao, đường truyền đạt tốc độ tối đa đến 480 Mbps. Chúng em thực hiện kết nối USB camera với cổng USB 2.0 Cổng HDMI: dụng một cổng HDMI (High-Definition Multimedia Interface) để kết nối với màn hình LCD để hiển thị kết quả, Chuyền dữ liệu theo chuẩn Giao Tiếp hình ảnh KTS, hỗ trợ âm thanh KTS 8 kênh. Cổng CSI Camera: Cổng này dung để kết nối với Camera Pi. Nguồn: Dòng hoạt động của Raspberry 500-1000mA, cổng HDMI sử dụng 50mA, module Camera sử dụng 250mA, bàn phím và chuột sử dụng từ 100mA đến 1000mA. Tổng dòng tiêu thụ được khoảng 2300mA. Chính vì vậy ta sử dụng Adapter 5V và 2.5A để cấp cho máy tính nhúng cho Raspberry. Chọn thẻ nhớ lưu dữ liệu: Muốn chạy được chương trình trên máy tính Nhúng ta cần phải có Hệ điều hành được cài sẵn trên thẻ nhớ. Vì hệ điều hành Raspbian chiếm 4GB dung lượng chưa kể các dữ liệu, chương trình, phần mềm liên quan đến chính vì vậy chọn loại thẻ nhớ tối thiểu 8GB, ở đây Nhóm chọn loại thẻ nhớ MicroSD 32GB có tốc độ đọc lên tới 30MB/s, tốc độ đọc cũng ảnh hưởng tới tốc độ xử lý dữ liệu của các chương trình chính vì vậy với tốc đố 30MB/s là tốc độ hợp lý. Hình 3.8. Sơ đồ kết nối thẻ nhớ với Raspberry 40 PIN GPIO: https://lop7.net/
  • 47. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38 Hình 3.9. Sơ đồ chân Raspberry Pi 3+ Bảng 3.1. Bảng thống kê dòng tiêu thụ của các thiết bị Từ bảng thống kê ta thấy thiết bị ngoại vi tốn rất nhiều năng lượng( khoảng 1359mA- 2762mA) . Nhóm quyết định mua nguồn 5V 3A để mạch chạy ổn định. Thiết bị Dòng tiêu thụ Ghi chú Raspberry 500-1000mA Khi Kit hoạt động mình nó Cổng HDMI 50mA Module Camera 250mA Bàn phím và chuột 100mA - 1000mA Arduino Uno R3 30mA Khi Kit hoạt động mình nó Cảm biến Siêu Âm 13mA x 2 Servo SG90 15mA Lcd 16x2 2mA – 5mA L298 36mA Dòng tín hiệu điều khiển Step motor 350mA Tổng 1359 mA – 2762 mA Chọn nguồn 3A https://lop7.net/
  • 48. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39 3.2.2.6. Sơ đồ nguyên lí mạch điện của hệ thống Từ các bước tính toán và thiết kế các khối, chúng ta tổng hợp lại thành một mạch chính hoàn chỉnh có kết nối như hình bên dưới. Hình 3.10. Sơ đồ nguyên lí toàn hệ thống https://lop7.net/
  • 49. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40 Giải thích sơ đồ nguyên lí:  Arduino Uno R3 và Raspberry Pi 3B+: Kết nối với nhau thông qua cổng giao tiếp USB 2.0 ( Raspberry Pi 3B+) và Power Supply ( Arduino Uno R3).  LCD 16x2: Sáu dây tín hiệu ( RS, E ,D7, D6, D5, D4) được nối với (13, 12, 4, 5, 6, 7) của Arduino Uno R3.  Cảm biến SRF 04: 2 dây tín hiệu echo và trig của cảm biến 1 lần lượt kết nối với chân số 5 và chân số 6 của Arduino R3. 2 dây tín hiệu echo và trig của cảm biến 2 lần lượt kết nối với chân số 7 và chân số 8 của Arduino R3.  L298: 4 chân tín hiệu 1A1, 1A2, 2A1, 2A2 lần lượt kết nối với 4 chân ( 8, 9, 10, 11) của Aduino Uno R3.  Servo SG90: 1 dây tín hiệu OUT của servo kết nối với chân số 2 của Arduino Uno R3.  Camera Logitech C270: Kết nối trực tiếp với Raspberry Pi 3B+ qua cổng USB 2.0 https://lop7.net/
  • 50. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 Chương 4. THI CÔNG HỆ THỐNG 4.1. GIỚI THIỆU Đồ án “Đếm số lượng viên thuốc bên trong vỉ thuốc” là sự kết hợp của phương thức lọc màu trong không gian màu HSV. Vì thế việc thi công cần làm việc rất nhiều với các module, các thư viện cũng như các môi trường hỗ trợ xung quanh các module ứng với từng phương thức nhận diện ấy. Ở chương này, chúng em trình bày các vấn đề về phần mềm bao gồm Lập trình cho hệ thống và Viết tài liệu hướng dẫn, thao tác. 4.2. ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 4.2.1. Đóng gói bộ điều khiển Chúng em sử dụng tấm xốp trắng cứng được bán ngoài thì trường để đóng gói bộ vi xử lí trung tâm là Raspberry Pi 3 và Arduino Uno R3, LCD 16x3 và mạch cầu H L298. Hình 4.1. Sơ đồ bố trí thiết bị được đóng gói trong mô hình 4.2.2. Thi công mô hình Mô hình của hệ thống được thi công gồm băng chuyền, buống sáng, camera, cảm biến, servo, đế trượt khi phát hiện thuốc lỗi, đế mô hình. https://lop7.net/
  • 51. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42 Hình 4.2. Hình ảnh vị trí các thiết bị được bố trí trên mô hình hệ thống 4.3. LẬP TRÌNH HỆ THỐNG 4.3.1. Lưu đồ giải thuật 4.3.1.1. Lưu đồ chương trình trên Raspberry https://lop7.net/
  • 52. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43 Hình 4.3. Lưu đồ chương trình trên Raspberry. Giải thích lưu đồ: Khai báo các thư viện, Thiết lập cấu hình cho Serial Port và camera USB: sử dụng những thư viện cần thiết trong chương trình ví dụ như opencv2, serial, numpy,... Cấu hình Serial Port cho Arduino là cổng ttyACM0, tốc độ baud là 115200 bits/s. Kiểm tra dử liệu nhận từ Serial Port: Dữ liệu nhận được ( từ Arduino gửi về) sẽ được gán vào biến data, nếu dữ liệu nhận được là “1” thì sẽ reset biến max = 0, ngược lại thì sẽ bỏ qua và qua bước lấy ảnh đầu vào, tiền xử lí. Lấy ảnh đầu vào, tiền xử lí: Chuyển đổi ảnh từ không gian màu RGB sang HSV. Tìm ra mặt nạ của của từng loại thuốc . Loại bỏ các phần lồi lõm và làm cho đường bao các đối tượng trong ảnh trở nên mượt mà hơn. làm trơn đường bao các đối tượng, lấp đầy các khoảng trống biên và loại bỏ những hố nhỏ. Tìm các đường viền. Khi qua công đoạn tiền xử lí thì ta sẽ được một mặt nạ ảnh trắng đen. Đường viền la đường bao quanh những đối tượng có màu trắng.Sau https://lop7.net/
  • 53. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44 đó chúng ta tìm tọa độ tâm và bán kình của hình trong nhỏ nhất mà bao quanh các đường biên đã tìm trước đó. Nếu mà bán kính nằm trong khoảng giá trị cho phép phát hiện 1 viên thuốc ( 35 - 60) thì sẽ bắt đầu đếm số viên thuốc trên 1 vỉ thuốc. Khi mà tọa độ tâm của các đường tròn nằm ngoài phạm vi tọa độ từ 50 đến 500 ( phạm vi mà camera nhận biết đúng số thuốc) thì sẽ đi tìm giá trị max của count(count là biến lưu giá trị số thuốc). Tiếp theo nếu tọa độ đó vượt ngoài phạm vi 500 thì thì ta tiến hành gửi về cho Arduino xử lí. Hiển thị số thuốc. Sẽ hiển thị đúng số thuốc đếm được ra Output. Nếu quá trình có nhấn phím “q” ( từ bàn phím) thì sẽ thoát khỏi chương trình Hoàn tất một chu trình hoạt động. 4.3.1.2. Lưu đồ chương trình trên Arduino https://lop7.net/
  • 54. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 Hình 4.4. Lưu đồ chương trình trên Arduino Giải thích lưu đồ: Khai báo các thư viện, thiết lập cấu hình cho các chân của cảm biến siêu âm, động cơ bước, servo và LCD. Thiết lập cấu hình Serial Port (115200) và ngắt timer 2 Thiết lập số bước trên 1 vòng của động cơ bước. ( 150) Kiểm tra xem dữ liệu có nhận được ở Serial hay không. Nếu có thì lưu vào biến data, Tiếp theo đọc giá trị khoảng cách của cảm biến siêu âm 1 và 2. Nếu khoảng cách cảm biến 1 nhỏ hơn 10 thì nhận biết là có thuốc ( flag =1). Ngược lại không có vỉ thuốc ( flag = 0 ). Sau đó kiểm tra xem data có nhỏ hơn 10 hay không. Nếu data < 10, biến flag = 1 và khoảng cách cảm biến 2 < 10 thì cho phéo ngắt timer2 hoạt động và timer 2 bắt đầu đếm. Ngược lại nếu data = 10 và giá trị khoảng cách cảm biến 2 lớn 10 thì timer 2 không hoạt động. Ngược lại gửi tín hiệu kết thúc nhận dữ liệu cho Raspberry. https://lop7.net/
  • 55. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 4.3.1.3. Lưu đồ chương trình đo khoảng cách của cảm biến siêu âm. Hình 4.5. Lưu đồ chương trình đo khoảng cách của cảm biến siêu âm. Giải thích lưu đồ: Khởi tạo các biến đo khoảng cách, các biến đo thời gian ( duration1, duration2 distance2, distance2 ). Phát xung từ chân TRIG với độ dài là 10 ms. Tiếp theo sẽ tìm độ rộng xung HIGH ở chân ECHO. Cuối cùng sẽ tính khoản cách đến vật với công thức: distance2 = int(duration2/ 2 / 29.414. https://lop7.net/
  • 56. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47 4.3.1.3. Lưu đồ chương trình của timer 2. Hình 4.6. Lưu đồ chương trình của timer2 Giải thích lưu đồ: Khi cho phép timer2 hoạt động thì bộ đếm ngắt sẽ tăng lên 1. Tiếp theo sẽ kiểm tra bộ đếm ngắt có nằm trong khoảng từ 90 – 105 hay không. Nếu có thì sẽ cho phép servo quay tới vị trí góc 60 độ. Nếu bộ đếm ngắt nhỏ hơn 190 thì cho phép servo quay tới vị trí 0 độ. Ngược lại thì sẽ reset timer2 về vị trí ban đầu lúc khởi tạo. https://lop7.net/
  • 57. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48 4.3.2. Phần mềm lập trình cho vi điểu khiển Phần mềm Arduino IDE Môi trường lập trình Arduino IDE Môi trường phát triển tích hợp Arduino là một nền tảng được viết bằng ngôn ngữ Java, nó được trích xuất từ IDE cho ngôn ngữ lập trình vi xử lý và những dự án khác. Môi trường lập trình Arduino IDE gồm một trình soạn thảo với các tính năng như: cho phép làm nổi bật các cú pháp, các dấu ngoặc nối chương trình, tự đồng thụt đầu dòng, có khả năng biên dịch và tự tải lên các chương trình đã viết lên bo mạch với cú nhấp chuột. Một chương trình hoặc mã viết cho Arduino được gọi là sketch. Arduino IDE cho phép viết chương trình bằng ngôn ngữ C. Người sử dụng cần định nghĩa hai hàm để có thể thực hiện một chương trình là:  Hàm setup (): Hàm này chỉ chạy một lần duy nhất khi bắt đầu chương trình. Trong hàm này chủ yếu được dùng để khởi tạo các thiết lập ban đầu.  Hàm loop (): Hàm này được gọi lặp lại liên tục. Chương trình chỉ ngừng khi ngắt nguồn bo mạch Arduino. Hình 4.7. Phần mềm lập trình Arduino IDE Cách cài đặt: Đầu tiên các bạn vào trang chủ của Arduino: https://www.arduino.cc/ và chọn mục Sofware. Chúng ta tiến hành Download cài đặt.Sau khi cài đặt xong https://lop7.net/
  • 58. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49 Hình 4.8. Giao diện chính của phần mềm Arduino IDE Hình 4.9. Một đoạn code của chương trình Arduino. 4.4. VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG – THAO TÁC 4.4.1.Viết tài liệu hướng dẫn sử dụng Bước 1: Cấp nguồn 12VDC cho Module L298. Cấp nguồn 5V cho Raspberry qua Adapter 5V 2,5A khi bật công tắc nguồn từ OFF sang ON thì led nguồn sẽ sang báo hiệu nguồn đã được bật và hệ thống đã sẵn sàng. Hệ điều hành Raspbian sẽ được khởi động. Bước 2: Mở Terminal và thực hiện các lệnh sau để chạy chương trình https://lop7.net/
  • 59. CÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50 cd Desktop cd doan python3 luanvanfinal.py Hình 4.10. Giao diện của Terminal khi thực hiện dòng lệnh. Bước 3: Sau khi thực hiện xong bước 2, lúc này hệ thống đã hoạt động, ta đặt vỉ thuốc lên băng chuyền thì camera sẽ nhấn biết và đếm số thuốc. Và sao đây là OUTPUT của hệ thống. Hình 4.11. Giao diện output khi chưa có vỉ thuốc. https://lop7.net/
  • 60. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51 Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.1. KẾT QUẢ ĐẠT ĐƯỢC Mục tiêu ban đầu của đề tài “Đếm số lượng viên thuốc có trong vỉ thuốc” là đếm số thuốc có trong vỉ. Dựa trên ngôn ngữ Python với thư viện chính là OpenCV và được thực hiện trên Kit Raspberry. Sau quá trình nghiên cứu và thực hiện đề tài, nhóm đã rút ra được nhiều vấn đề khác nhau, từ việc sử dụng phần mềm, các phương pháp giải thuật, cho tới sử dụng phần cứng. Thời gian thực hiện trong khoảng thời gian 15 tuần. Trong đó, gồm các vấn đề sau: Đối với phần cứng: Biết sử dụng Kit Raspberry, cài đặt hệ điều hành cho raspberry, biết sử dụng Camera Logitech C270, hiểu biết sâu hơn về sử dụng các tính năng của Arduino như giao tiếp giữa Arduino với các module mở rộng, cách lập trình servo SG90, lập trình mạch cầu L298, cảm biến siêu âm SRF-04. Đối với phần mềm: Biết cách lập trình cơ bản trên Python cùng với thư viện OpenCV, và các giải thuật liên quan đến đề tài như: phương pháp nhận dạng vỉ thuốc. 5.2. KẾT QUẢ THỰC NGHIỆM 1.5.1. Mô hình sản phẩm Mô hình sản phẩm hoàn thiện bao gồm băng chuyền, servo SG90, buồng sáng, camera, Hình 5.1. Mô hình hệ thống mặt trên https://lop7.net/
  • 61. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52 Hình 5.2: Mô hình của hệ thống mặt bên phải Hình 5.3: Mô hình của hệ thống mặt bên trái. https://lop7.net/
  • 62. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53 1.5.2. Kết quả thực nghiệm từ việc nhận diện số thuốc Khởi động phần mềm trên máy tính và tiến hành kiểm tra ảnh của nhiều trườnghợp khác nhau Hình 5.4. Đếm số thuốc con nhộng đúng chuẩn ( 2 viên) Hình 5.5. Đếm số thuốc màu gạch đúng chuẩn ( 6 viên) Hình 5.6. Đếm số thuốc con nhộng đúng chuẩn ( 8 viên) https://lop7.net/
  • 63. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54 Hình 5.7. Đếm số thuốc màu gạch đúng chuẩn ( 4 viên) Hình 5.8. Đếm số thuốc màu gạch đúng chuẩn ( 9 viên) Hình 5.9. Đếm đúng tại trường hợp không có viên thuốc nào trên vỉ. https://lop7.net/
  • 64. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55 Hình 5.10. Đếm sai tại trường hợp thuốc nhộng có 3 viên thuốc. Hình 5.11. Đếm sai tại trường hợp thuốc gạch có 8 viên thuốc. Khi vị trí vỉ thuốc nằm trong tầm nhận biết được của camera thì hệ thống sẽ đếm đúng được số lượng viên thuốc có trong vỉ. Đếm sai khi môi trường trong buống sáng bị nhiễu camera đếm luôn cả những đốm ở trên băng chuyền https://lop7.net/
  • 65. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56 1.6. NHẬN XÉT – ĐÁNH GIÁ 1.6.1. Nhận xét Sau 15 tuần nghiên cứu và thực hiện đề tài, hệ thống đã đáp ứng được những mục tiêu và yêu cầu thiết kế. Ưu điểm  Hệ thống nhỏ gọn, dễ sử dụng, dễ thao tác.  Lắp đặt thuận tiện cho việc sử dụng.  Hệ thống có thể phát hiện và đếm chính xác số viên thuốc. Nhược điểm  Cảm biến siêu âm còn bị nhiễu.  Hệ thống hoạt động còn chưa ổn định  Còn phụ thuộc vào điều kiện môi trường: độ sáng, không gian… So sánh với đề tài trước đây Trong công nghiệp hệ thống được sử dụng rộng rãi nên nhóm thực hiện so sánh với những ưu và nhược điểm sau đây. Ưu điểm  Giá thành ít hơn, giá trị đầu tư ít hơn nhưng vẫn đáp ứng đủ tiêu chí cho người tiêu dùng.  Dễ sử dụng Nhược điểm  Hoạt động vẫn chưa ổn định.  Khó thể hoạt động tại một công ty lớn. 1.6.2. Đánh giá Sau khi vận hành hệ thống để tiến hành kiểm tra và giám sát. Quá trình đánh giá được thực hiện ở lúc đếm số lượng viên thuốc, khoảng thời gian thực hiện giữa các lần đánh giá là 1 phút và như nhau. Nhóm thực hiện việc đánh giá đủ loại thuốc và vị trí viên thuốc trong vỉ là ngẫu nhiên. Dưới đây là bảng giám sát quá trình đánh giá đếm số lượng viên thuốc. https://lop7.net/
  • 66. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57 Bảng 5.1. Bảng giám sát đánh giá đếm số lượng viên thuốc ( thuốc tròn màu cam) Sốviên Số lần 0 1 2 3 4 5 6 7 8 9 10 1 X X X X X X X X X X X 2 X X X O X X X X X O X 3 O X X X O X X O X O X 4 X X O X X O X X X X X 5 O X X X X X X X X X X 6 X X X X X X X O O X X 7 X O X X X X X X X X X 8 X X X O X X X X X X X 9 X X X O X O X X X X X 10 X X X X X X O O X X X 11 X X X X X X X X X X X 12 X X X X X O O X X X X 13 X X X X X X X X X X X 14 X X X X X O O X X X X 15 X X X X X X O X X X X Ghi chú: Dấu X: Đếm thành công. Dấu O: Đếm sai.  Lí do là vỉ thuốc bị sao so với không gian chụp hình của Camera  Giao tiếp Uart bị lỗi. https://lop7.net/
  • 67. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 Bảng 5.2. Bảng giám sát đánh giá đếm số lượng viên thuốc ( thuốc nhộng) Sốviên Số lần 0 1 2 3 4 5 6 7 8 9 10 1 X X X X X X X X X X X 2 X X X O X X X X X O X 3 O X X X O X X O X O X 4 X X O X X O X X X X X 5 O X X X O X O O X X X 6 X X O X X X X O O X X 7 X O X X X X X X O X X 8 X X X O X X X X X X X 9 X X X O X O X X X X X 10 X X X X X X O O X X X 11 X X O X X X X X O X X 12 X X X X X X O X X X X 13 X X X X X X X X X X X 14 X X X X X O O X X X X 15 X X X X X X O X X X X Ghi chú: Dấu X: Đếm thành công. Dấu O: Đếm sai.  Lí do là vỉ thuốc bị sao so với không gian chụp hình của Camera  Giao tiếp Uart bị lỗi. Qua bảng giám sát, hệ thống hoạt động tốt. Tỉ lệ nhận dạng thành công lên đến 90%, lý do nhận dạng thất bại chấp nhận được. Thời gian trung bình để hệ thống thực hiện một nhận dạng là 2s. https://lop7.net/
  • 68. QUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59 Đối với hoạt động của servo và hai cảm biến: Sau 20 lần thực hiện thì số lần thất bại là 3. Lí do thất bại là do cảm biến không phát hiện được có vỉ thuốc đi qua. Tổng kết lại, nhóm thực hiện đánh giá hệ thống đạt yêu cầu so với các chỉ tiêu đề ra. Mô hình đơn giản, an toàn, có độ bảo mật đạt yêu cầu, dễ dàng sử dụng và có độ ổn định cao. Tuy nhiên, để mô hình có thể áp dụng vào thực tế, cần có một sự cải tiến cần thiết về kích thước bộ xử lý cũng như sự chắc chắn của bộ điều khiển trước các hành động đột nhập, cố tình gây hư hỏng ngoài ý muốn. https://lop7.net/
  • 69. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60 Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1. KẾT LUẬN Sau hơn 3 tháng thực hiện đề tài, tìm hiểu và đọc các tài liệu chuyên ngành có liên quan ở các trang mạng, diễn đàn, cộng đồng trong nước và quốc tế thông qua mạng Internet, tổng hợp các kiến thức đã được học xuyên suốt 4 năm cũng như được sự hướng dẫn tận hình của thầy GVHD Th.S Nguyễn Duy Thảo, nhóm thực hiện đồ án chúng em cuối cùng cũng đã hoàn thành được đề tài “ĐẾM SỐ LƯỢNG VIÊN THUỐC CÓ BÊN TRONG VỈ THUỐC”. Qua quá trình thực hiện, nhóm cảm thấy đã đúc kết, nâng cao và học được thêm một số kỹ năng như:  Tìm hiểu, nghiên cứu sâu và biết được cách viết chương trình của Python, cũng như kết hợp Python trên môi trường OpenCV để đồng bộ hóa cấu trúc chương trình.  Tìm hiểu và nghiên cứu cách giao tiếp giữa Raspberry với Camera và Arduino, Arduino với L298N và step motor, các giao tiếp với cảm biến siêu âm, LCD, servo,  Hiểu rộng hơn về Raspberry và môi trường làm việc đa dụng của nó.  Nâng cao được các kỹ năng bố trí, sắp xếp, gắn và hoàn thiện một mô hình hoàn thiện.  Cải thiện được các vấn đề về làm việc nhóm, cũng như các kỹ năng có liên quan (Visio, Altium, Word, Power Point,…).  Kết quả cuối cùng nhóm thực hiện được ở đề tài “ĐẾM SỐ LƯỢNG VIÊN THUỐC CÓ BÊN TRONG VỈ THUỐC” này như sau:  Phát hiện và đếm được số thuốc.  So sánh được với ảnh mẫu trong cơ sở dữ liệu để đưa ra quyết định với độ tương thích được đặt trước.  Các cảm biến hoạt động đúng chức năng.  LCD hiển thị được số thuốc Uart truyền về.  Servo hoạt động đúng với hành động mong muốn của người dùng. Nhìn chung, hệ thống hoạt động thật sự ổn định, có thể làm việc liên tục và https://lop7.net/
  • 70. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61 đạt 100% các yêu cầu đã đặt ra ban đầu. Bên cạnh đó hệ thống còn được nâng cao thêm một số tính năng giúp cải thiện trải nghiệm người dùng. Hệ thông sử dụng nguồn 12V-5V trở xuống nên rất an toàn cho người sử dụng nếu có xảy ra các tình trạng chạm vỏ, rò điện,… hoặc các tai nạn về điện của hệ thống. Tuy nhiên, do giới hạn về thời gian và sự hạn chế về mặt kiến thức, cũng như môi trường, nguồn tài liệu tham khảo ở môi trường trong nước không thực sự nhiều, vá lỗi chủ yếu là từ các tài liệu quốc tế, nên hệ thống không tránh khỏi một số hạn chế nhất định: Hạn chế đầu tiên là chưa có nguồn dự trữ cho để duy trì hoạt động cho hệ thống trong trường hợp mất điện. Chưa xử lý được các vấn đề ổn định và cân bằng sáng nên hệ thống vẫn còn phụ thuộc vào buồng sáng để duy trì mức sáng ổn định và việc này khiến cho tổn hao điện năng trên toàn hệ thống cao hơn. Các điều kiện về kinh phí cũng như thời gian thực hiện mà tính thẩm mỹ của hệ thống không cao (mô hình to và cồng kềnh, các đường dán keo thô và không đều). 6.2. HƯỚNG PHÁT TRIỂN Hệ thống có thể phát triển thêm theo hướng đếm được nhiều số thuốc hơn, phát triên them công đoạn ép vỉ, đưa ra thành phẩm,… Ngoài ra cũng có thể nâng cao khả năng nhận dạng viên thuốc bằng phương pháp nhận dạng bằng camera kép, một camera nhận dạng và một camera đo chiều sâu để nâng cao khả năng nhận dạng nhiều góc độ cũng như là tăng độ tin cậy của hệ thống lên cao. https://lop7.net/
  • 71. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62 I. Chương trình trên Raspberry. import numpy as np import argparse import imutils import cv2 import serial # Lay vieo tu webcam cap = cv2.VideoCapture(0) # Thiet lap nguong mau tren va duoi mat la lower = {'type1':(0, 140, 0),'type2':(78, 31, 162)} upper = {'type1':(62,255,255),'type2':(179,255,255)} # define cac mau sac chuan colors = {'red':(0,0,255), 'green':(0,255,0)} count = 0 maxx =0 # Thiet lap cau hinh cho serial port ser = serial.Serial('/dev/ttyACM0',115200) while True: # Kiem tra co du lieu nhan duoc tren serial port khong? if (ser.in_waiting >0): data=ser.readline() print(data) if (data == b'1rn'): maxx=0 # Doc tung frame anh mot tu webcam ret, frame = cap.read() frame = imutils.resize(frame, width=600) # Chuyen anh tu khong gian mau BGR sang HSV hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) for key, value in upper.items(): kernel = np.ones((5,5),np.uint8) mask = cv2.inRange(hsv, lower[key], upper[key]) https://lop7.net/