Professional Documents
Culture Documents
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG
CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ
ĐỀ TÀI:
THIẾT KẾ HỆ THỐNG IORT CHO CÁNH TAY
ROBOT CÓ XỬ LÝ ẢNH
Đà Nẵng, 07/2023
TÓM TẮT ĐỀ TÀI
Tên đề tài: “Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh”
Cùng với sự phát triển của nền khoa học và công nghệ đã tác động tích cực đến nền công
nghiệp hiện nay, việc nâng cao chất lượng của các loại sản phẩm cũng như nâng cao chất
lượng cuộc sống đang trở nên cần thiết hơn bao giờ hết. Thế nên, việc đưa các công cụ tự
hành vào đời sống và sản xuất đã trở thành xu thế hiện nay.
Đề tài của chúng tôi nói công nghệ IoRT cho việc điều khiển 1 cánh tay Robot. Cánh tay
này giúp cho việc vận chuyển các sản phẩm một cách nhanh chóng và chính xác hơn.
Cánh tay tự động hoạt động trong các dây chuyền lớn, sản xuất hàng loạt kết hợp một hệ
thống nhận dữ liệu và giám sát các thiết bị từ xa thông qua camera và cảm biến.
Đề tài: “Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh” gồm các chương:
Trong chương này, ta sẽ tìm hiểu về các khái niệm cơ bản về hệ thống IoRT, kiến trúc hệ
thống, công nghệ và ứng dụng nó. Khái niệm cánh tay Robot cũng như ưu điểm và nhược
điểm của 1 hệ thống điều khiển cánh tay Robot và các phương pháp lập trình cho nó.
Chương này sẽ nói chi tiết về hệ thống IoRT cho cánh tay robot gồm những mà chúng
tôi sẽ làm và các thành phần sẽ xuất hiện trong hệ thống cũng như sự liên kết giữa các
thành phần đó.
Chương này tập trung chủ yếu vào việc thiết kế cũng như tính toán phần cứng cho hệ
thống.
Ta sẽ thấy được kết quả đạt được sau khi đồ án hoàn thành.
ii
ĐẠI HỌC ĐÀ NẴNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
1.Tên đề tài đồ án: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh.
2. Đề tài thuộc diện: ☐Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện.
- Một cánh tay robot phân loại sản phẩm dựa theo màu sắc gồm tối đa 60 màu vào các ô
chứa sản phẩm. Trong hệ thống này sử dụng 4 màu.
- Khoảng cách gắp từ vị trí có sản phẩm đến vị trí ô chứa sản phẩm là 15- 20cm( sai số ±
2%).
- Gắp được sản phẩm có đường kính từ 2 – 4 cm và chiều cao từ 3,5 – 7 cm (sai số ± 2%).
- Sản phẩm là hình trụ có kích thước gồm chiều cao là 5 cm và đường kính 3 cm (sai số
±1%).
- Khối lượng để cánh tay có khả năng gắp được từ 10 – 150g (sai số ±5% ).
- Băng tải với chiều cao từ 8-10 cm và chiều rộng băng tải là 10 cm, chiều dài 60 cm.
Khối lượng tối đa là 3 kg (sai số ±5% ).
iii
4. Nội dung các phần thuyết minh và tính toán:
a. Phần chung:
b. Phần riêng:
iv
5. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
v
LỜI NÓI ĐẦU
Trong quá trình công nghiệp hóa và hiện đại hóa đất nước, tự động hóa đóng vai trò
ngày càng quan trọng. Với tốc độ phát triển hiện nay, chúng ta không chỉ cần lượng lao
động lớn mà còn yêu cầu trình độ chuyên môn cao, chất lượng tay nghề, kỹ thuật lao động
và thiết bị sản xuất. Khi khoa học kỹ thuật ngày càng tiến bộ, vấn đề tự động hóa trở nên
ngày càng được chú trọng.
Trong cuộc cách mạng công nghiệp 4.0, việc áp dụng tự động hóa và trí tuệ nhân tạo vào
sản xuất, kinh doanh trở thành một xu hướng không thể tránh để tạo ra năng suất lao động
cao hơn. Trên khắp thế giới, có nhiều nhà máy sử dụng hệ thống dây chuyền sản xuất tự
động hoàn toàn, sử dụng robot thay thế lao động con người để tạo ra sản phẩm chất lượng
cao với độ chính xác tuyệt vời. Nhờ vào robot, cuộc sống của chúng ta ngày càng tiện
nghi và an toàn hơn. Thực tế là robot đang dần thay thế con người trong những công việc
nguy hiểm như cứu nạn, cứu hộ và kiểm tra các môi trường độc hại, nơi ảnh hưởng đến
sức khỏe và tính mạng con người. Không chỉ thế, trong các gia đình, robot đã và đang
giúp chúng ta thực hiện những công việc hàng ngày và tốn nhiều thời gian như lau nhà và
hút bụi... điều này đồng nghĩa với việc chất lượng cuộc sống ngày càng được nâng cao.
Kết hợp với xu thế phát triển của thời đại cùng với kiến thức đã học, nhóm chúng tôi đã
chọn đề tài " Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh ". Trong quá trình
làm đồ án, chúng tôi đã được hướng dẫn tận tình từ thầy cùng với sự nỗ lực của cả hai
thành viên trong nhóm. Hiện tại, đồ án đã hoàn thành. Tuy nhiên, do kiến thức và kinh
nghiệm còn hạn chế, cũng như kỹ năng chưa hoàn thiện, nhóm chúng tôi vẫn còn nhiều
thiếu sót cần bổ sung và hoàn thiện. Chúng tôi kính mong được các thầy cô thông cảm và
góp ý để đề tài của chúng tôi hoàn thiện hơn và có thể được phát triển và áp dụng trong
tương lai gần.
vi
LỜI CẢM ƠN
Để có thể hoàn thành đề tài đồ án tốt nghiệp một cách hoàn chỉnh, bên cạnh sự nỗ lực cố
gắng của bản thân các thành viên trong nhóm còn có sự hướng dẫn nhiệt tình của KS. Lê
Hồng Nam và TS. Nguyễn Duy Nhật Viễn trong suốt thời gian học tập nghiên cứu và
thực hiện đồ án.
Lời đầu tiên nhóm tôi xin chân thành cảm ơn đến KS. Lê Hồng Nam và TS. Nguyễn
Duy Nhật Viễn đã giúp đỡ và tạo mọi điều kiện tốt nhất cho nhóm em hoàn thiện đồ án
này. Xin chân thành bày tỏ lòng biết ơn đến toàn thể quý thầy cô trong khoa Điện tử Viễn
thông đã tận tình truyền đạt những kiến thức quý báu cũng như tạo mọi điều kiện thuận
lợi nhất cho nhóm em trong suốt quá trình học tập, nghiên cứu và cho đến khi hoàn thành
đồ án.
Nhóm em cũng gửi lời đồng cảm ơn đến các bạn lớp 19DTCLC3 đã chia sẻ trao đổi kiến
thức cũng như kinh nghiệm quý báu trong thời gian thực hiện đề tài.
Cuối cùng nhóm tôi xin kính chúc quý Thầy, Cô và gia đình dồi dào sức khỏe, luôn
thành công trong sự nghiệp cao quý của mình.
vii
LỜI CAM ĐOAN
Kính gửi: Hội đồng bảo vệ đồ án tốt nghiệp khoa Điện tử - Viễn thông, trường Đại học
Bách khoa - Đại học Đà Nẵng.
Chúng tôi xin cam đoan đồ án trên là công trình nghiên cứu của riêng bản thân mình
dưới sự hướng dẫn của giảng viên KS.Lê Hồng Nam và TS. Nguyễn Duy Nhật Viễn.
Những nhận định được nêu ra trong đồ án cũng là kết quả từ sự nghiên cứu trực tiếp,
nghiêm túc, độc lập của bản thân tác giả dựa vào các cơ sở tìm kiếm, hiểu biết và nghiên
cứu tài liệu khoa học hay bản dịch khác đã được công bố. Đồ án vẫn sẽ giúp đảm bảo
được tính khách quan, trung thực và khoa học.
Nếu như sai chúng tôi xin chịu hoàn toàn trách nhiệm và chịu tất cả các kỷ luật của bộ
môn cũng như nhà trường đề ra.
viii
MỞ ĐẦU
Mục đích thực hiện đề tài: Thiết kế chế tạo một hệ thống phân loại sản phẩm tự động
trên băng tải động bằng cánh tay robot ứng dụng công nghệ xử lí ảnh. Với việc áp dụng
công nghệ xử lí ảnh, nó sẽ làm tăng năng suất và tránh những sai sót có thể xảy ra trong
quá trình sản xuất.
Mục tiêu đề tài: Củng cố lại những kiến thức đã học vào thực tế từ thiết kế mạch điện,
lập trình, nghiên cứu và đưa vào ứng dụng thực tế …. Qua đó hiểu rõ hơn về ngành học
cũng như những công việc trong tương lai, để từ đó bổ sung thêm kiếm và rút kinh
nghiệm sau này.
Phạm vi: Hệ thống bao gồm những phần chính như: Hệ thống công nghệ IoRT kết hợp 1
cánh tay robot 4 bậc tự do, 1 hệ thống băng tải động, 1 camera xử lý ảnh, máy tính. Phạm
vi ở dạng mô hình nhỏ gọn, phù hợp với việc thực hành và nghiên cứu.
Đối tượng: Hệ thống công nghệ IoRT kết hợp Robot 4 bậc tự do, hệ thống băng tải,
camera xử lý ảnh, máy tính. Phương pháp nghiên cứu: Vận dụng các kiến thức đã học từ
các môn liên quan trong suốt quá trình học từ điện tử và lập trình để tiến hành làm mô
hình. Đồng thời nghiên cứu, học hỏi từ các nguồn khác nhau, (internet, sách, bài chia
sẻ….).
Nghiên cứu lý thuyết: Nghiên cứu kiến trúc ưu điểm và ứng dụng của hệ thống công
nghệ IoRT, đặc điểm động học và động lực học robot, bộ truyền cho băng tải, lập trình
cho robot và xử lý ảnh để nhận diện sản phẩm.
Nghiên cứu thiết kế: Tính toán và vẽ kết cấu robot, băng tải.
Chế tạo: Dựa vào kết quả tính toán và thiết kế sau đó tiến hành thi công chế tạo.
ix
MỤC LỤC
TÓM TẮT ĐỀ TÀI.............................................................................................................i
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP................................................................................iii
LỜI NÓI ĐẦU...................................................................................................................vi
LỜI CẢM ƠN...................................................................................................................vii
LỜI CAM ĐOAN............................................................................................................viii
MỞ ĐẦU............................................................................................................................ix
CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG IORT......................................................1
1.1. Giới thiệu Công nghệ IoRT........................................................................................1
1.1.1. Kiến trúc IoRT............................................................................................................2
1.1.2. Các lĩnh vực ứng dụng đáng chú ý của IoRT.............................................................3
1.1.3. Ưu điểm của IoRT......................................................................................................5
1.1.4. Những thách thức chính.............................................................................................5
1.2. Cánh tay Robot công nghiệp......................................................................................6
1.3. Phân tích đề tài............................................................................................................6
1.4. Ưu điểm, nhược điểm của hệ thống...........................................................................6
1.5. Giải pháp......................................................................................................................7
1.6. Kết luận chương..........................................................................................................8
CHƯƠNG II: PHÂN TÍCH HỆ THỐNG IORT CHO CÁNH TAY ROBOT............9
2.1. Giới thiệu chương........................................................................................................9
2.2. Hệ thống IoRT cho cánh tay robot............................................................................9
2.3. Nhiệm vụ....................................................................................................................11
2.4. Sơ đồ khối của hệ thống............................................................................................12
2.5. Chi tiết các khối.........................................................................................................13
2.5.1. Khối điều khiển trung tâm........................................................................................13
2.5.2 Khối tín hiệu..............................................................................................................14
2.5.2.1. Tổng quan về cảm biến quang...............................................................................14
2.5.2.2. Camera...................................................................................................................17
2.5.3. Khối điều khiển robot...............................................................................................17
2.5.4. Khối điều khiển băng chuyền...................................................................................20
x
2.5.5. Khối máy tính (Webserver)......................................................................................20
2.6. Tổng quan về xử lý ảnh.............................................................................................20
2.6.1. Phương pháp thu nhận ảnh.......................................................................................22
2.6.2. Giới thiệu về thư viện OpenCV................................................................................22
2.7. Xử Lý Ảnh Cơ Bản Với OpenCV............................................................................29
2.8. Kết luận chương........................................................................................................34
CHƯƠNG III: THIẾT KẾ PHẦN CỨNG.....................................................................35
3.1. Giới thiệu chương......................................................................................................35
3.2. Tổng quan về cánh tay robot....................................................................................35
3.3. Sơ đồ mạch.................................................................................................................37
3.4. Sơ đồ mạch in.............................................................................................................38
3.5. Kết luận chương........................................................................................................41
CHƯƠNG IV: THIẾT KẾ PHẦN MỀM.......................................................................42
4.1. Giới thiệu chương......................................................................................................42
4.2. Lưu đồ thuật toán ở mạch điều khiển cánh tay......................................................42
4.2.1.Lưu đồ thuật toán con khối đọc cảm biến và điều khiển băng tải.............................43
4.2.2. Lưu đồ thuật toán con khối điều khiển cánh tay robot.............................................44
4.3. Lưu đồ thuật toán ở trên Webserver.......................................................................45
4.3.1.Lưu đồ thuật toán con chương trình xử lý ảnh..........................................................46
4.4. Phần mềm sử dụng....................................................................................................47
4.4.1. Phần mềm Arduino IDE...........................................................................................47
4.4.2. Phần mềm Pycharm..................................................................................................49
4.5. Các bước quá trình xử lý ảnh...................................................................................51
4.6. Truyền thông dữ liệu giữa ESP32 và máy tính.......................................................53
4.6.1. Giới thiệu truyền thông UART.................................................................................53
4.7. Giao thức truyền nhận giữa Python và Webserver................................................57
4.7.1. Giới thiệu truyền thông HTTP................................................................................57
4.8. Thiết kế Web..............................................................................................................58
4.9. Kết luận chương........................................................................................................59
CHƯƠNG V: KẾT QUẢ VÀ ĐÁNH GIÁ.....................................................................60
5.1. Giới thiệu chương......................................................................................................60
xi
5.2. Phần cứng...................................................................................................................60
5.2.1. Sơ đồ mạch...............................................................................................................60
5.2.2. PCB..........................................................................................................................61
5.2.3. Mạch in thực tế.........................................................................................................62
5.2.4. Hệ thống thực tế.......................................................................................................63
5.3. Đánh giá quá trình thực nghiệm..............................................................................64
5.4. Phần mềm...................................................................................................................66
5.5.Hướng phát triển của cánh tay robot có thể thực hiện...........................................66
5.6. Kết luận chương........................................................................................................67
TÀI LIỆU THAM KHẢO...............................................................................................68
PHỤ LỤC 1.......................................................................................................................70
PHỤ LỤC 2.......................................................................................................................83
PHỤ LỤC 3.......................................................................................................................92
xii
MỤC LỤC HÌNH ẢNH
CHƯƠNG I
Hình 1.1 Hệ thống công nghệ IoRT.....................................................................................1
Hình 1.2 Kiến trúc IoRT.......................................................................................................2
Hình 1.3 Ứng dụng UAV trong bón phân, phun thuốc trên đồng ruộng..............................4
Hình 1.4 Cánh tay Robot trong công nghiệp........................................................................6
CHƯƠNG II
Hình 2.1 Sơ đồ khối............................................................................................................12
Hình 2.2 ESP32..................................................................................................................13
Hình 2.3 Cấu tạo tổng quát.................................................................................................16
Hình 2.4 Mạch nguyên lý cảm biến quang.........................................................................16
Hình 2.5 Webcam Logitech C270......................................................................................17
Hình 2.6 Servo MG996R....................................................................................................18
Hình 2.7 Thông số servo MG996R....................................................................................19
Hình 2.8 Xử lý ảnh.............................................................................................................21
Hình 2.9 Lọc nhiễu ảnh......................................................................................................23
Hình 2.10 Nhiễu độc lập với dữ liệu ảnh...........................................................................24
CHƯƠNG III
Hình 3.1 Tổng thể cánh tay robot.......................................................................................35
Hình 3.2 Hình ảnh cánh tay robot thực tế..........................................................................36
Hình 3.3 Sơ đồ mạch..........................................................................................................37
Hình 3.4 Sơ đồ mạch..........................................................................................................38
Hình 3.5 Nguồn tổ ong 5V-4A...........................................................................................39
Hình 3.6 Mạch relay...........................................................................................................40
CHƯƠNG IV
Hình 4.1 Lưu đồ thuật toán ở mạch điều khiển cánh tay....................................................42
Hình 4.2 Lưu đồ thuật toán con đọc cảm biến và điều khiển băng tải...............................43
Hình 4.3 Lưu đồ thuật toán con khối điều khiển cánh tay Robot.......................................44
Hình 4.4 Lưu đồ thuật toán ở trên Webserver....................................................................45
Hình 4.5 Lưu đồ thuật toán con chương trình xử lý ảnh....................................................46
Hình 4.6 Arduino IDE........................................................................................................47
Hình 4.7 Giao diện của Arduino IDE.................................................................................47
Hình 4.8 Các nút lệnh trong Arduino IDE.........................................................................48
Hình 4.9 Vùng thông báo trong Arduino IDE....................................................................48
Hình 4.10 Chọn cổng kết nối cho Arduino.........................................................................49
Hình 4.11 Giao diện phần mềm..........................................................................................50
Hình 4.12 Hình ảnh 4 sản phẩm.........................................................................................51
Hình 4.13 Giao thức UART...............................................................................................53
xiii
Hình 4.14 Kết nối HTTP....................................................................................................58
CHƯƠNG V
Hình 5.1 Sơ đồ mạch tổng thể............................................................................................60
Hình 5.2 PCB.....................................................................................................................61
Hình 5.3 Mạch in thực tế....................................................................................................62
Hình 5.4 Hệ thống mô hình thực tế....................................................................................63
Hình 5.5 Giao diện Web đơn giản......................................................................................66
xiv
MỤC LỤC BẢNG
Bảng 1.1 Datasheet C1815.................................................................................................40
Bảng 1.2 Sản phẩm màu xanh............................................................................................64
Bảng 1.3 Sản phẩm màu đỏ................................................................................................64
Bảng 1.4 Sản phẩm màu vàng............................................................................................65
Bảng 1.5 Sản phẩm màu tím...............................................................................................65
DANH MỤC KÝ TỰ
xv
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Khái niệm nêu trên cho thấy một số đặc điểm cơ bản của một hệ thống IoRT: Khả năng
khai thác dữ liệu; Ra quyết định dựa trên dữ liệu; Khả năng tác động vào thế giới vật lý
[2].
1
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Robot thỏa mãn các đặc điểm trên có thể bao trùm nhiều loại hình như robot hình người,
các tay máy công nghiệp, các loại xe tự hành, các robot tương tác với người qua giọng
nói,…
- Robot là các đối tượng thông minh có thể chuyển động trong thế giới vật lý và tác
động vào thế giới vật lý. Robot có thể liên lạc và cộng tác với nhau tạo thành những hệ
đa robot để cùng thực hiện những tác vụ phức tạp.
- Cảm biến là những thiết bị theo dõi các thông số của môi trường và cảm nhận, theo
dõi các sự kiện diễn ra trong môi trường, chẳng hạn như sự hiện diện và các hoạt động
2
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
của robot, sự di chuyển của các đồ vật,… Trong một số trường hợp robot có thể kết
nối trực tiếp với các cảm biến. Nhưng thông thường việc kết nối đó được thực hiện
thông qua lớp mạng và điều khiển.
- Lớp vật lý còn bao gồm cả các thiết bị đơn giản như các công tắc bật tắt, núm điều
chỉnh và các cơ cấu chấp hành khác, có thể thực hiện các tác vụ đơn giản.
Lớp mạng và điều khiển (Network & Control): bao gồm các thiết bị định tuyến, bộ
điều khiển, kho lưu trữ dữ liệu tại chỗ hay điện toán đám mây, các giao thức liên
lạc và điều khiển,…
Lớp dịch vụ và ứng dụng (Service & Application): bao gồm các chương trình phần
mềm nhằm giám sát, xử lý và điều khiển các thông số môi trường và các đối tượng
của hệ thống IoRT (robot, cảm biến, các cơ cấu chấp hành) nhằm đạt được các mục
tiêu của hệ thống. Nhiều thuật toán, công nghệ hiện đại được áp dụng vào lớp này
để xử lý dữ liệu tập hợp từ các cảm biến như Trí tuệ nhân tạo (AI) để khai thác và
tối ưu hoạt động của các robot.
1.1.2. Các lĩnh vực ứng dụng đáng chú ý của IoRT
IoRT tuy khá mới mẻ, nhưng đang được ứng dụng rộng rãi và tương đối mạnh mẽ
trên nhiều lĩnh vực như công nghiệp, nông nghiệp chính xác, logistics, y tế và
nhiều lĩnh vực đời sống khác.
Công nghiệp là miền ứng dụng quan trọng của IoRT. Đáng chú ý là xu hướng
robot hoạt động cộng tác (cobot) cùng với con người trong các dây chuyền sản
xuất. Ở đó robot hỗ trợ công nhân thực hiện các công việc nặng nhọc, nguy hiểm,
lặp đi lặp lại với cường độ cao… còn con người bao quát môi trường và giám sát
và hướng dẫn hoạt động của robot. Một ví dụ điển hình là việc triển khai cobot
KUKA lắp ráp đèn xe trong nhà máy của Ford [3]. Robot hiệu chỉnh ở các vị trí
khó mà trước kia người công nhân phải cúi thấp dưới sàn để làm, còn người công
nhân hướng dẫn robot tới khu vực cần thực hiện thao tác. Tính phức tạp của các
giải pháp như vậy cũng thấp hơn so với việc phải tự động hóa hoàn toàn, cho phép
triển khai các ứng dụng linh động, nhanh chóng hơn.
Logistics là lĩnh vực mà ứng dụng IoRT diễn ra sôi nổi. Với các ứng dụng phân
loại, xếp dỡ hàng hóa ở các nhà kho của Amazon, Alibaba, Ocado… Robot làm
3
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
việc suốt ngày đêm với tốc độ cao và hạn chế được các sai sót con người giúp
mang lại hiệu quả lớn về việc đáp ứng thời gian sắp xếp, phân loại hàng hóa, tối ưu
chi phí vận hành. Nhiều nhà phân phối cũng đã đưa vào khai thác các giải pháp
IoRT cho giao hàng tự động đến người dùng cuối, mang lại hiệu quả vượt trội về
tốc độ và khả năng tiếp cận những khu vực khó khăn, mang lại hình thức phân phối
an toàn trong bối cảnh dịch bệnh Covid.
Nông nghiệp thông minh cũng rất hứa hẹn với IoRT. Robot có thể tham gia vào
nhiều công đoạn trong sản xuất nông nghiệp thông minh như các hệ thống thu
hoạch tự động, cắt cỏ, xén cành, gieo hạt, phun thuốc…; hoạt động trong vườn
ươm; dây chuyền phân loại và đóng gói hàng hóa nông sản… Các robot tham gia
hoạt động trên đồng ruộng được kết nối với dữ liệu từ các cảm biến về các thông
số môi trường, thời tiết và quy trình canh tác để quyết định các hoạt động như tưới
nước, bón phân… mang lại hiệu quả canh tác tốt nhất.
Hình1.3 Ứng dụng UAV trong bón phân, phun thuốc trên đồng ruộng.
Robot cũng có thể thu thập hình ảnh sinh trưởng của cây trồng gửi về trung tâm dữ
liệu để phân tích. Các UAV có thể theo dõi diện tích canh tác lớn từ trên không,
cảnh báo dịch bệnh hay những bất thường trong sinh trưởng của cây cối, phun
thuốc hay bón phân trên diện tích rộng một cách nhanh chóng [2].
Ngoài ra còn nhiều lĩnh vực ứng dụng quan trọng khác của IoRT như trong y tế
(các giải pháp sử dụng tay máy cho phẫu thuật từ xa, robot chăm sóc cho người cao
tuổi…), giao thông vận tải (xe tự lái), dịch vụ (robot lễ tân, hướng dẫn thông
tin…).
4
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
- Vấn đề tính toán: Các khung kiến trúc hoàn toàn khác nhau và cần thiết có thể xử lý các
vấn đề phức tạp và một lượng lớn dữ liệu.
- Tối ưu hóa: Các chiến lược khác nhau phải được hình thành để tính toán hiệu quả như
tính toán cá nhân, tính toán cộng tác, tính toán cloud hoặc mô hình lai.
5
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
- Vấn đề bảo mật: Với kết nối mạng và robot tại nơi làm việc cho các nhiệm vụ quan
trọng, bảo mật trở nên quan trọng và các phương pháp phát triển phải được thực hiện cho
việc này. [4]
Cánh tay Robot công nghiệp là robot được sử dụng trong sản xuất công nghiệp. Cánh tay
Robot công nghiệp là loại tự động, có thể lập trình và có khả năng di chuyển trên hai hoặc
nhiều trục. [5]
Việt Nam hiện cũng được các chuyên gia đánh giá là thị trường tiềm năng của Robot
công nghiệp với nhiều các nhà máy sản xuất sử dụng Robot như: Vinfast, Thaco... [5]
Với ý tưởng thiết kế một hệ thống gồm cánh tay robot phân loại sản phẩm trên băng tải
động trong các nhà máy công nghiệp ứng dụng công nghệ xử lý ảnh. Các sản phẩm
chuyển động trên băng tải với màu sắc khác nhau, sau khi được một camera chụp hình,
qua quá trình xử lý tín hiệu trên máy tính sẽ gửi tính hiệu cho cánh tay robot sẽ thực hiện
công việc gắp và phân loại các sản phẩm vào các nơi khác nhau.
6
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Ưu điểm:
- Năng suất làm việc: Robot công nghiệp có thể hoạt động 24/24 trong một ngày, 1 tuần
và thậm chí một tháng và cả năm. Nhờ đó, năng suất sản xuất tăng cao vượt trội.
- Độ an toàn cao: Robot công nghiệp có thể thay thế con người trong những môi trường
nguy hiểm, làm các công việc nặng nhọc và đòi hỏi tính chuẩn xác cao, ít sai số.
- Chất lượng sản phẩm tốt: Robot công nghiệp giúp giảm các sai sót và đảm bảo chất
lượng hàng hóa sẽ đồng đều hơn.
- Giảm chi phí vận hành: Robot công nghiệp giúp giảm thiểu nguồn nhân lực, chi phí vận
hành, giảm được các chi phí liên quan đến chi phí vận hành và nguồn lao động.
Nhược điểm:
- Vì được vận hành theo cơ chế tự động, hệ thống được điều khiển bằng máy tính nên
nguy cơ bị hack rất cao. Khi hệ thống bị tấn công sẽ bị đình trệ và gây ra những thiệt hại
nghiêm trọng.
- Khó vận hành, chi phí bảo dưỡng cao: Để vận hành hiệu quả robot công nghiệp, đòi hỏi
bạn phải trải qua một khóa học và có những hiểu biết nhất định về thiết bị hiện đại này.
Bên cạnh đó, robot công nghiệp khá tốn chi phí để bảo dưỡng hay bảo hành.
- Không có khả năng nâng hạ vật theo chiều dọc trục như chuyển động tịnh tiến.
- Chi phí đầu vào cao: Việc ứng dụng robot tự động đòi hỏi chi phí đầu tư ban đầu rất cao.
Ngoài ra, cũng cần có chi phí cho việc đào tạo nhân công vận hành các loại thiết bị, máy
móc hiện đại và phức tạp.
Với những ứng dụng và ưu điểm trên của hệ thống công nghệ IoRT đã tìm hiểu. Chúng
tôi đã đưa ra đề tài với việc ứng dụng thực tiễn trong sản xuất phân loại sản phẩm nên
nhóm tôi đã chọn nghiên cứu mô hình: Một hệ thống robot thực hiện nhiệm vụ phân loại
sản phẩm, dùng xử lý ảnh, điều khiển từ xa qua Webserver. Chúng tôi đã chọn đề tài:”
Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh”.
Trong phạm vi đề tài với mô hình nhỏ gọn và có tải trọng nhẹ nên chúng tôi lựa chọn
cánh tay robot 4 bậc tự do. Robot bao gồm: khớp đầu tiên là khớp xoay giúp cánh tay
7
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
xoay sang hai bên, tiếp đó là 2 khớp xoay giúp cánh tay gập lên xuống để nâng hạ vật thể,
một khớp xoay tay kẹp dùng để gắp vật.
Cánh tay Robot từng bước xuất hiện trong mọi công việc của con người. Nhờ vào cấu
tạo đa dạng cùng với sự bền bỉ và linh hoạt mà cánh tay Robot có thể đảm nhận nhiều
công việc của con người, những công việc yêu cầu sức khỏe đồng thời những công việc
nguy hiểm.
Cùng với công nghệ 4.0 mà việc phát triển các cánh tay Robot này đang là một xu thế
nhằm thay thế hoàn toàn con người trong các hoạt động cũng như giúp đỡ cuộc sống hằng
ngày của con người, nâng cao chất lượng cuộc sống.
8
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
CHƯƠNG II: PHÂN TÍCH HỆ THỐNG IORT CHO CÁNH TAY ROBOT
Chương này giới thiệu về hệ thống IoRT điều khiển cánh tay robot, cùng với đó là các
linh kiện và thiết bị cần thiết để hoàn thành các khối có mặt trong hệ thống.
Công nghệ IoRT (Internet of Robotic Things) là một hệ thống kết nối giữa các robot
với nhau và với môi trường xung quanh thông qua internet. Nó cho phép các robot hoạt
động một cách độc lập và cùng nhau tương tác và hợp tác để thực hiện các nhiệm vụ
phức tạp. Công nghệ IoRT kết hợp giữa Internet of Things (IoT) và Robot để tạo ra một
mạng lưới robot thông minh.
Cánh tay robot là một phần quan trọng trong các hệ thống robot. Cánh tay robot
thường được thiết kế để thực hiện các nhiệm vụ như cầm và di chuyển các đối tượng,
thực hiện các thao tác chính xác và linh hoạt. Các cánh tay robot hiện đại thường được
trang bị cảm biến và khả năng điều khiển để thích ứng với môi trường và tương tác với
các đối tượng xung quanh.
Công nghệ IoRT có thể được áp dụng vào các hệ thống cánh tay robot để nâng cao
hiệu suất và khả năng tương tác. Việc kết nối các cánh tay robot với mạng lưới IoRT
giúp chúng có thể nhận thông tin từ các nguồn khác nhau, như cảm biến, hệ thống quản
lý, hoặc robot khác, và thích ứng với tình huống và điều kiện mới. Điều này cho phép
cánh tay robot hoạt động một cách linh hoạt và hiệu quả hơn, đồng thời tăng khả năng
tương tác và hợp tác với các robot khác để thực hiện các nhiệm vụ phức tạp.
Cánh tay robot thông minh kết hợp với công nghệ IoRT mang lại nhiều lợi ích trong
các lĩnh vực như công nghiệp, sản xuất, y tế và dịch vụ. Chúng có khả năng tăng năng
suất, giảm thiểu lỗi và tăng tính an toàn trong quá trình làm việc. Ngoài ra, sự tương tác
9
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
và hợp tác giữa các cánh tay robot thông minh cũng mở ra cơ hội cho ứng dụng mới và
sáng tạo trong việc giải quyết các vấn đề phức tạp.
Trong lĩnh vực sản xuất, công nghệ IoRT và cánh tay robot đóng vai trò quan trọng
trong việc tăng cường hiệu suất và linh hoạt của quy trình sản xuất. Sự kết hợp giữa
IoRT và cánh tay robot giúp tạo ra các hệ thống tự động hoá thông minh và hiệu quả.
Một ứng dụng phổ biến của công nghệ IoRT và cánh tay robot trong sản xuất là trong
quá trình lắp ráp và vận chuyển sản phẩm. Các cánh tay robot thông minh có thể được
lắp đặt trên các dây chuyền sản xuất và kết nối với mạng lưới IoRT. Chúng có khả năng
nhận dữ liệu từ các cảm biến để xác định vị trí và tình trạng của các bộ phận. Sau đó,
cánh tay robot có thể thực hiện các thao tác lắp ráp, kiểm tra chất lượng và đóng gói
sản phẩm tự động.
Qua việc kết nối với IoRT, các cánh tay robot trong quá trình sản xuất có thể trao đổi
thông tin với nhau và với hệ thống quản lý. Điều này cho phép tối ưu hoá quy trình sản
xuất, điều chỉnh lịch trình và tăng cường khả năng đáp ứng theo nhu cầu. Ngoài ra,
công nghệ IoRT còn giúp thu thập dữ liệu về hiệu suất sản xuất, từ đó phân tích và đưa
ra các cải tiến để tối ưu hoá quy trình và giảm thiểu lãng phí.
Công nghệ IoRT và cánh tay robot cũng đóng vai trò quan trọng trong việc đảm bảo
an toàn trong môi trường sản xuất. Các cảm biến và hệ thống giám sát trên cánh tay
robot giúp phát hiện các tình huống nguy hiểm và ngăn chặn sự cố xảy ra. Nếu cảm
biến phát hiện một vật cản hoặc sự tiềm ẩn nguy hiểm, cánh tay robot có thể tạm dừng
hoặc thay đổi hướng di chuyển để tránh va chạm và gây thương tổn.
Tóm lại, sự kết hợp giữa công nghệ IoRT và cánh tay robot mang lại nhiều lợi ích
trong lĩnh vực sản xuất. Chúng giúp tăng cường hiệu suất, linh hoạt và an toàn trong
quy trình sản xuất, đồng thời tạo ra cơ hội để áp dụng công nghệ tiên tiến và nâng cao
năng suất của doanh nghiệp.
10
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
2.3. Nhiệm vụ
Nhiệm vụ hệ thống:
Với hệ thống phân loại sản phẩm cần tốc độ xử lí nhanh, các sản phẩm nằm trên băng tải
động nên cánh tay robot đòi hỏi khả năng xử lí linh hoạt, đồng thời đạt độ chính xác cao
nên với yêu cầu đề bài, cánh tay robot cần số bậc tự do đủ lớn để có thể đáp ứng được
việc xử lí. Tuy nhiên số bậc tự do càng cao thì độ phức tạp trong quá trình thiết kế cũng
như chi phí đầu tư sẽ tăng lên. Trong phạm vi đề tài với mô hình nhỏ gọn và có tải trọng
nhẹ nên ta lựa chọn cánh tay robot 4 bậc tự do. Robot bao gồm: khớp đầu tiên là khớp
xoay giúp cánh tay xoay sang hai bên, tiếp đó là 3 khớp xoay giúp cánh tay gập lên xuống
để nâng hạ vật thể, một khớp xoay tay kẹp dùng để gắp vật.
Thiết kế và thi công một dây chuyền có thể phân loại sản phẩm ứng dụng xử lý ảnh dùng
thư viện OpenCV, viết trên ngôn ngữ python. Dây chuyền có thể phân loại các sản phẩm
dựa theo từng màu sắc.
Phát triển thêm về công nghệ xử lý ảnh nhằm giải quyết vấn đề về sản phẩm trong các
nhà máy sản xuất. Khai thác các tài liệu mới để hoàn thiện hơn mô hình.
Hệ thống bao gồm những phần chính như: 1 cánh tay robot 4 bậc tự do, 1 hệ thống băng
tải động, 1 camera xử lý ảnh, máy tính. Phạm vi ở dạng mô hình nhỏ gọn, phù hợp với
việc thực hành và nghiên cứu.
Giới hạn:
- Sử dụng Camera để thu nhận ảnh và dùng ESP32 để xử lý điều khiển cánh tay
robot.
- Dây chuyền phân loại sản phẩm có thể dừng đột xuất.
11
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
12
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Khối máy tính gửi dữ liệu xuống điều khiển khối băng tải hoạt động, sản phẩm vào
khối băng tải đến khối tín hiệu cảm biến báo lên khối máy tính có sản phẩm nằm đó.
Sau đó nhận dữ liệu lên khối máy tính so sánh ảnh của sản phẩm. Nếu đúng hình ảnh
màu xanh thì báo sản phẩm màu xanh, hình ảnh màu đỏ báo sản phẩm màu đỏ, hình
ảnh màu vàng thì báo sản phẩm màu vàng, hình ảnh màu tím thì báo sản phẩm màu tím.
Đồng thời hiển thị số lượng sản phẩm ở khối máy tính. Rồi nhận dữ liệu từ máy tính
xuống khối điều khiển cánh tay robot gắp sản phẩm màu xanh bỏ vào hộp chứa sản
phẩm màu xanh, gắp sản phẩm màu đỏ bỏ vào hộp chứa sản phẩm màu đỏ, gắp sản
phẩm màu vàng bỏ vào hộp chứa sản phẩm màu vàng, gắp sản phẩm màu tím bỏ vào
hộp chứa sản phẩm màu tím. Nếu không đúng hình ảnh màu đang xét thì khối băng tải
tiếp tục chạy loại sản phẩm.
Khối này đảm nhận xử lý thông tin và điều khiển của toàn bộ hệ thống. Nhận thông tin
từ khối cảm biến đó gửi tín hiệu điều khiển tới khối điều khiển cánh tay robot và khối
điều khiển băng chuyền để các khối này vận hành. Sử dụng ESP32 để xử lý các thông tin
này.
13
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp có hỗ trợ
WiFi và dual-mode Bluetooth
Cấu hình:
ESP32 là một hệ thống vi điều khiển trên chip (SoC) giá rẻ của Espressif Systems, nhà
phát triển của ESP8266 SoC. Nó là sự kế thừa của SoC ESP8266 và có cả hai biến thể lõi
đơn và lõi kép của bộ vi xử lý 32-bit Xtensa LX6 của Tensilica với Wi-Fi và Bluetooth
tích hợp.
Điểm tốt về ESP32, giống như ESP8266 là các thành phần RF tích hợp của nó như bộ
khuếch đại công suất, bộ khuếch đại nhận tiếng ồn thấp, công tắc ăng-ten, bộ lọc và Balun
RF. Điều này làm cho việc thiết kế phần cứng xung quanh ESP32 rất dễ dàng vì bạn cần
rất ít thành phần bên ngoài.
14
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Khối này đảm nhận nhiệm vụ kiểm tra xem có sự xuất hiện của sản phẩm hay không để
tiến hành điều khiển cánh tay Robot. Khối này sử dụng cảm biến quang để phát hiện sản
phẩm.
Cảm biến vật cản hồng ngoại OMDHON E18-D80NK Adjustable IR Infrared Proximity
Sensor sử dụng ánh sáng hồng ngoại để xác định vật cản phía trước cảm biến, cảm biến
phát ra tia hồng ngoại với dải tần số chuyên biệt cho khả năng chống nhiễu tốt kể cả ở
điều khiện ánh sáng ngoài trời.
Có thể chỉnh khoảng cách phát hiện vật cản mong muốn thông qua biến trở trên cảm
biến, cảm biến có ngõ ra tín hiệu là cấu trúc cực thu hở Transistor NPN - Open Collector
nên sẽ cần phải có trở kéo (khoảng 1~10K) lên chân nguồn dương VCC để tạo thành tín
hiệu mức cao (High).
- Cảm biến có khoảng cách điều chỉnh chính xác từ 3~80cm với thấu kính hồng ngoại
chất lượng tốt.
- Xác định khoảng cách đến vật cản bằng hồng ngoại cho phản hồi nhanh chóng, chính
xác và ít bị nhiễu do sử dụng mắt nhận và phát tia hồng ngoại theo tần số riêng biệt.
- Cảm biến có thể chỉnh khoảng cách hoạt động thông qua biến trở ở phần cuối thân cảm
biến. Ngõ ra cảm biến ở dạng cực thu hở nên cần thêm 1 trở kéo lên nguồn ở chân Tín
hiệu khi sử dụng.
Thông số kỹ thuật:
- Nguồn cấp: 5VDC.
- Khoảng cách: 100 – 1000mm.
- Thời gian đáp ứng: nhỏ hơn 1ms.
- Ngõ ra: NPN, No và NC.
- Nhiệt độ làm việc: -25 đến 60 độ C.
- Vật liệu thân: nhựa ABS.
- Kích thước: 18 x 70mm
- Tần số hoạt động: 500Hz
15
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
16
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
- Tín hiệu ra có dòng rất nhỏ nên KHÔNG ĐƯỢC kích trực tiếp vào relay (rơ le) sẽ
gây CHÁY cảm biến, có thể tham khảo các Module relay đã được thiết kế bảo vệ.
- Chân tín hiệu đầu ra SIGNAL của cảm biến có cấu trúc cực thu hở Transistor NPN -
Open Collector nên khi phát hiện vật cản sẽ được kính hoạt và kéo xuống mức thấp (Low)
GND (0VDC), để tạo thành tín hiệu mức cao (High) ta nối điện trở kéo Rx (1~10k) lên
chân nguồn VCC để tạo thành tín hiệu mức cao mong muốn (như với Arduino là 5VDC).
2.5.2.2. Camera
17
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Bộ cảm biến ảnh HD (1280 x 720 pixels). Chụp ảnh tĩnh 3 megapixels. Tốc độ hình bắt
hình lên đến 30 hình/giây.
Tích hợp 1 Micro ứng dụng công nghệ RightSound cho âm thanh rõ ràng và trong veo.
Ứng dụng công nghệ Righ Light - tự động điều chỉnh để lấy được ánh sáng tối ưu, và
cho ảnh tốt ngay cả trong điều kiện ánh sáng mập mờ.
Khối này sử dụng để điều khiển một loạt các servo cấu thành lên cánh tay Robot. Thông
qua các tín hiệu nhận được từ ESP32 sẽ điều khiển các servo này hoạt động theo một trình
tự được thiết lập.
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ừ 0°-180°. 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 vải chục Newton/m, hoặc có
loại thì khỏe và nhông sắc chắc chắn...
Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín. Tín hiệu ra của
động cơ được nối với một mạch điều khiển. Nếu có bắt kỳ lý do nào ngăn cản
chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt
được vị trí mong muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt
được điểm chính xác. Các động cơ servo điều khiển bằng liên lạc vô tuyến được
gọi là động cơ servo RC (radio-controlled).
Trong thực tế, bản thân động cơ servo không phải được điều khiển bằng vô tuyến,
nó chỉ nối với máy thu vô tuyến trên máy bay hay xe hơi. Động cơ servo nhận tín
hiệu từ máy thu.
18
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Servo MG996R:
MG996R về cơ bản là phiên bản nâng cấp của servo MG995 nổi tiếng và có tính
năng chống sốc được nâng cấp và PCB và IC được thiết kế lại hệ thống điều khiển
làm cho nó chính xác hơn nhiều so với người tiền nhiệm của nó. Bánh răng và
động cơ cũng đã được nâng cấp để cải thiện băng tần chết và căn giữa.
Đơn vị đã hoàn thành với dây dài 30cm và đầu nối đầu cái loại 3 chân 'S' phù hợp
với hầu hết các máy thu, bao gồm Futaba, JR, GWS, Cirrus, Blue Bird, Blue
Arrow, Corona, Berg, Spektrum và Hitec. Servo tiêu chuẩn mô-men xoắn cao này
có thể quay khoảng 120 độ (60 theo mỗi hướng).
Bạn có thể sử dụng bất kỳ mã servo, phần cứng hoặc thư viện nào để điều khiển
các servo này, vì vậy nó rất tốt cho những người mới bắt đầu muốn làm cho mọi
thứ di chuyển mà không cần xây dựng một bộ điều khiển động cơ với phản hồi và
hộp số, đặc biệt là vì nó sẽ phù hợp với những nơi nhỏ. MG996R Metal Gear
Servo cũng đi kèm với nhiều lựa chọn phần cứng để giúp bạn thiết lập nhanh
chóng và đẹp mắt.
Thông số kỹ thuật của servo MG996R
19
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Khối này sử dụng băng chuyền để vận chuyển các sản phẩm. Băng chuyền được điều
khiển bằng mạch sử dụng để vận hành. Thông qua tín hiệu từ Website sẽ điều khiển băng
chuyền theo mong muốn.
20
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Khối này được sử dụng để điều khiển cánh tay robot, đồng thời nhận các thông tin được
gửi từ ESP32.
Trang Web được lập trình bằng ngôn ngữ HTML, đồng thời sử dụng Pycharm để lập
trình cho việc truyền dẫn thông tin.
Xử lý ảnh là quá trình xử lý số tín hiệu ở đây là tín hiệu hình ảnh. Hiện nay xử lý ảnh
đang phát triển rất mạnh mẽ, vì ứng dụng của nó rất rộng và hữu ích bao gồm ở rất nhiều
lĩnh vực: sản xuất, kinh tế, đời sống, y tế, quân sự… Chúng tôi có thể chia xử lý ảnh
thành bốn nhóm ứng với bốn lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng
ảnh, truy vấn ảnh và nén ảnh. Trong đề tài này sẽ tìm hiểu về lĩnh vực nhận dạng ảnh. Các
bước cơ bản của xử lý ảnh. [6]
Ảnh số là tập hợp các điểm ảnh (Pixel) có giá trị mức xám xác định dùng để mô tả ảnh
gần với ảnh thật, trong đề tài này chỉ xét đến ảnh 2 chiều, một ảnh sau khi được số hóa có
thể được mô tả như một ma trận điểm A[M, N] trong không gian hai chiều trong đó M và
N là số cột và số hàng của các điểm ảnh. Một điểm ảnh bất kì lúc này sẽ có tọa độ A(x, y)
với 0=<x<=M-1 và 0=<y<=N-1. Số điểm ảnh xác định độ phân giải của ảnh. Ảnh có độ
phân giải càng cao thì ảnh càng trở nên chân thực và sắc nét hơn. Giá trị của mỗi điểm
ảnh sẽ quyết định màu sắc của ảnh ta gọi là mức xám của điểm ảnh, giá trị này có thể là
21
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
một số (ảnh nhị phân, ảnh xám) hoặc một tập hợp các giá trị (ảnh màu). Xử lý ảnh là ta xử
lý các giá trị này trong ma trận ảnh để được một kết quả mong muốn. Số bit của một bức
ảnh chính là số các giá trị mức xám có thể có, ví dụ một ảnh 8bit sẽ có 28=256 giá trị mức
xám từ 0 đến 255 tương tự ảnh 16bit thì sẽ có 216 giá trị.
Tùy theo giá trị dùng để biểu diễn điểm ảnh mà ta có thể phân ra 3 loại ảnh chính thông
dụng:
+ Ảnh nhị phân: giá trị mỗi điểm ảnh là 0 hoặc 1, nghĩa là trắng hoặc đen. Chính vì
vậy mà còn gọi là ảnh đen trắng.
+ Ảnh xám: giá trị mỗi điểm ảnh nằm trong giải giá trị từ 0 đến 255, nghĩa là cần 8
bits hay 1 byte để biểu diễn mỗi điểm ảnh này.
+ Ảnh màu RGB: mỗi điểm ảnh có giá trị gồm 3 màu đỏ (Red) + xanh lục (Green)
+Ảnh xanh dương (Blue). Mỗi màu có giá trị từ 0 đến 255, nghĩa là mỗi điểm ảnh
cần 24bits hay 3bytes để biểu diễn. Ngoài hệ màu RGB còn có nhiều hệ màu khác phù
hợp với những mục đích khác nhau như hệ CMYK, hệ HSV…
2.6.1. Phương pháp thu nhận ảnh
Ả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). Trước đây, ảnh được thu qua Camera là các ảnh tương tự. Giờ đây, với sự phát
triển của khoa học công nghệ ảnh được thu nhận từ cảm biến và chuyển trực tiếp thành
ảnh số nên không cần bước chuyển đổi từ tương tự sang số. Có nhiều thiết bị cho phép thu
ảnh ví dụ điện thoại di động, máy chụp hình, máy scan, webcam…Các thiết bị này đều
cho ra ảnh với những định dạng ảnh đã được quy định phù hợp cho máy tính như JPG,
PNG, JPEG… chính vì vậy việc đọc chúng trên máy tính là rất dễ dàng. Trong đề tài này
sử dụng camera loại webcam để thu nhận hình ảnh thực tế.
OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở hàng đầu
cho xử lý về thị giác máy tính, machine learning, xử lý ảnh. OpenCV đươc viết bằng
C/C++, vì vậy có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan
đến thời gian thực. Opencv có các interface cho C/C++, Python Java vì vậy hỗ trợ được
22
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
cho Window, Linux, MacOs lẫn Android, iOS OpenCV có cộng đồng hơn 47 nghìn người
dùng và số lượng download vượt quá 6 triệu lần.
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.
OpenCV vẫn đang được đóng góp và phát triển liên tục, nó đặc biệt phù hợp cho
những ứng dụng xử lý hình ảnh đơn giản vì thư viện dễ sử dụng và nhiều hỗ trợ từ cộng
đồng. [7]
Độ sáng của ảnh phụ thuộc vào giá trị của mỗi pixel tạo nên ảnh. Vì vậy để thay đổi độ
sáng ảnh ta thay đổi giá trị mức sáng các pixel. Với g và f là ảnh trước và sau khi biến đổi
ta có công thức điều chỉnh độ sáng như sau:
a, b: hằng số tự chọn.
23
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
g(x,y) = a*f(x,y)+b
f(x,y): mức sáng của pixel trong ảnh tại điểm có tọa độ (x,y).
g(x,y): mức sáng của pixel trong ảnh tại điểm có toạ độ (x,y) sau khi biến đổi.
Ngoài việc thay đổi bằng phần mềm ta có thể tăng độ sáng ảnh bằng phần cứng như lắp
thêm đèn rọi, dùng tấm nền màu sáng…
Lọc nhiễu ảnh
24
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
G=M*I
I: Là ảnh gốc được sử dụng để lọc số ảnh.
G: Là ảnh ra sau khi thực hiện xong phép lọc số ảnh.
M: Là ma trận lọc (Mask, kernel).
Với mỗi phép lọc ta có những ma trận lọc (Kernel) khác nhau, không có một quy
định cụ thể nào cho việc xác định M. Tổng các phẩn tử trong ma trận M thường là 1.
Tpt > 1: Ảnh sau khi thực hiện xong phép lọc số ảnh (G) có độ sáng lớn hơn so với
ảnh ban đầu (F).
Tpt < 1: Ảnh sau khi thực hiện xong phép lọc số ảnh (G) có độ sáng nhỏ hơn so với
ảnh ban đầu (F).
Một số phương pháp lọc phù hợp để xử lý một loại nhiễu nhất định. Một số bộ lọc
thông dụng như lọc trung vị, lọc trung bình, lọc thông thấp, lọc thông cao…
Lọc trung vị
Lọc trung vị là một kĩ thuật lọc phi tuyến (non-linear), bộ lọc này được sử dụng rất phổ
biến trong xử lý ảnh, lọc trung vị còn được gọi là bộ lọc hạng. Ý tưởng chính của thuật
toán lọc trung vị là sử dụng một cửa sổ lọc (thường là ma trận 3x3) quét qua lần lượt từng
điểm ảnh của ảnh đầu vào input. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh
tương ứng trong vùng 3x3 của ảnh gốc "lấp" vào ma trận lọc. Sau đó sắp xếp các điểm
ảnh trong cửa sổ này theo thứ tự (tăng dần hoặc giảm dần tùy ý). Cuối cùng, gán điểm ảnh
nằm chính giữa (trung vị) của dãy giá trị điểm ảnh đã được sắp xếp ở trên cho giá trị điểm
ảnh đang xét của ảnh đầu ra output.
Cho một dãy số 𝑋1, 𝑋2, 𝑋3, ..., 𝑋𝑛 được sắp xếp theo thứ tự tăng dần hoặc giảm
dần.
Khi đó 𝑋𝑡𝑣 được tính bởi công thức sau:
Nếu n lẻ:
Nếu n chẵn:
26
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Các giá trị sau khi sắp xếp từ thấp tới cao:
Kết quả 3 chính là giá trị trung vị cần tìm, lúc này ta gán giá trị 3 cho pixel tại vị trí
I(3,3) trong ảnh.
Vì phải sắp xếp lại mỗi khi ma trận lọc di chuyển đến một pixel nên bộ lọc này có
tốc độ không cao, hiệu quả giảm nếu ảnh có kích thước lớn. Tuy nhiên bộ lọc trung vị có
27
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
nhiều ưu điểm như giúp loại bỏ nhiễu nhưng vẫn đảm bảo độ phân giải, nó khá hiệu quả
đối với hai loại nhiễu: nhiễu đốm (speckle noise) và nhiễu muối tiêu (salt- pepper noise).
Lọc trung bình
Lọc trung bình là loại lọc tuyến tính, với phương pháp thay thế giá trị mỗi điểm ảnh
bằng trung bình trọng số của các điểm trong vùng lân cận. Giả sử rằng dùng một ma trận
lọc (3x3) quét qua từng điểm ảnh của ảnh đầu vào. Tại vị trí mỗi điểm ảnh lấy giá trị của
các điểm ảnh tương ứng trong vùng (3x3) của ảnh gốc đặt vào ma trận lọc. Giá trị điểm
ảnh của ảnh đầu ra là giá trị trung bình của tất cả các điểm trong ảnh trong ma trận lọc.
Các bước thực hiện lọc trung bình với ảnh đầu vào I và I(x,y) là điểm ảnh đang xét,
mộ ngưỡng α:
Bước 1: Quét ma trận lọc lên các thành phần của ảnh gốc, điền các giá trị được quét
vào ma trận lọc
Bước 2: Tính tổng các thành phần trong ma trận lọc, chia tổng này với số lượng các
phần tử của cửa sổ lọc ra một giá trị Itb = (x, y).
Bước 3: Hiệu chỉnh:
+Nếu I(x, y) - Itb(x, y) > α thì I(x,y) = Itb(x, y).
+Nếu I(x, y) - Itb(x, y) ≤ α thì I(x,y) = I(x,y).
Giá trị ngưỡng α có thể có hoặc không tùy vào mục đích sử dụng. Ví dụ I là một ma
trận kích thước 5x5:
Sử dụng ma trận lọc kích thước 3x3 xét tại I(3,3), không sử dụng ngưỡng:
28
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
29
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
có một thuộc tính khá đặc biệt, đó là biến đổi Fourier của nó là một hàm Gaussian, điều
đó rất thuận tiện cho việc phân tích miền tần số của bộ lọc.
Chắc hẳn các bạn thường hay nghe đến OpenCV để xử lý hình ảnh và được sử dụng rất
phổ biến. Trong bài viết hôm nay, mình sẽ chia sẻ cho các bạn các sử dụng OpenCV cho
người mới bắt đầu chưa có chút kinh nghiệm nào liên quan để xử lý ảnh nhé.
1. Cài đặt môi trường
Trong bài viết này mình sử dụng python 3 với thư viện opencv-python phiên bản
4.2.0.34.
Ở đây để đơn giản cho việc cài đặt thì chúng tôi sử dụng một thư viện có sẵn trên kho
quản lý gói của python là opencv-python. Đây là một thư viện không phải của tổ chức
OpenCV tuy nhiên nó có tính năng y hệt và được cập nhật thường xuyên theo sự thay đổi
của OpenCV. Hay nói cách khác đây là một đóng gói cho OpenCV trên kho thư viện của
python. Nếu bạn muốn sử dụng opencv phiên bản gốc thì lên trang sourceforge.net chọn
phiên bản rồi tải xuống. Tiếp theo là giải nén và cài đặt bằng tay theo hướng dẫn. Vì cách
cài đặt này để cái đặt cho nhiều ngôn ngữ khác nhau nên cách này không khuyến khích
cho người vừa bắt đầu sử dụng OpenCV [8].
Sử dụng đoạn lênh sau để cài đặt gói từ kho thư viện pip
Để kiểm tra cài đặt thành công hay không ta thực hiện đoạn lênh sau để kiểm tra
phiên bản của opencv-python. Tùy từng thời điểm thì phiên bản của gói sẽ khác nhau. Các
phiên bản mới là cập nhật cho opencv mới hơn.
30
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Đầu tiên ta tạo một đối tượng chứa thông tin ảnh được tải lên từ file. Sau đó hiện thị
hình ảnh lên cửa sổ giao diện.
Ở đây digital-neon.jpg là file hình ảnh để test, hàm waitKey(0) là hàm chờ không cho
thoát cửa sổ lập tức mà phải người dùng nhấn phím bất kỳ để thoát.
Ở đây biến img là một đối tượng của Numpy array chứa giá trị màu của từng điểm ảnh
trên các không gian màu khác nhau. Lệnh img.shape để lấy ra kích thước của mảng này
với h, w, d lần lượt là chiều cao, chiều rộng, độ sâu của bước ảnh. Với ảnh có màu thì độ
sau thường là 3, ảnh đen trắng là 1.
31
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
5. Cắt ảnh
Đoạn lệnh sau cắt ảnh có tọa độ điểm trên cùng bên trái là (50, 60) và tọa độ điểm dưới
cùng bên phải là (350, 360).
32
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Để thay đổi kích thước của ảnh trong opencv thì chúng tôi sẽ dùng hàm resize. Hàm này
cần xác định rõ chiều cao, chiều rộng ảnh sau khi biến đổi. Tuy nhiên ảnh sau khi thay đổi
thường cùng tỷ lệ chiều cao, chiều rộng với ảnh gốc. Đoạn lệnh sau biến đối ảnh gốc có
chiều rộng 580 pixel sang ảnh có chiều rộng là 300 pixel.
7. Xoay ảnh
Để xoay được ảnh đầu tiên ta cần xác định gốc xoay và hướng xoay. Sau khi xác định
xong tiếp theo ta tính ma trận xoay bằng hàm getRotationMatrix2D trong opencv. Cuối
cùng ta nhân ma trận này với ma trận ảnh gốc ta được ảnh sau khi xoay.
Đoạn lệnh dưới đây xoay ảnh một góc 45 theo chiều ngược kim đồng hồ với gốc xoay là
điểm chính giữa hình ảnh.
8.Tìm đường biên của ảnh
Bộ lọc Canny là sự kết hợp của nhiều bước khác nhau để tìm và tối ưu đường biên, kết
quả là cho ra một đường biên khá mảnh và chính xác. Quá trình tìm biên sử dụng phương
pháp Canny có thể được thực hiện qua 4 bước sau: [9]
1. Loại bớt nhiễu trong ảnh
Người ta loại nhiễu trong ảnh, làm mờ ảnh đi bằng cách nhân chập ảnh với một bộ lọc
Gauss, chẳng hạn bộ lọc Gauss 5x5 với hệ số δ = 1.4:
33
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
dụng bộ lọc Sobel, hoặc trực tiếp nhân chập ma trận ảnh với các mặt nạ theo hướng x và
y, chẳng hạn:
Trong đó, Gx và Gy chính là đạo hàm theo hướng x, y của ảnh ta đang xét. Góc θ sẽ được
làm tròn theo các hướng thẳng đứng, nằm ngang và theo hướng chéo. nghĩa là nó sẽ được
làm tròn để nhận các giá trị trong 0, 45, 90 và 135 độ.
3. Loại bỏ các giá trị không phải cực đại
Bước này sẽ tìm ra những điểm ảnh có khả năng là biên ảnh nhất bằng cách loại đi những
giá trị không phải là cực đại trong bước tìm gradien ảnh ở trên. Ta thấy rằng, với giá trị
của góc θ ở trên thì biên của đối tượng có thể tuân theo bốn hướng, và ta có bốn khả năng
sau:
Nếu θ = 0 , khi đó điểm A sẽ được xem xét là một điêm trên biên độ nếu độ lớn gradien
tại A lớn hơn gradien của các điểm tại A3, A7.
Nếu θ = 45, khi đó điểm A được xem là một điểm trên biên độ nếu độ lớn gradien tại A
lớn hơn độ lớn gradien của các điểm tại A4, A8
Nếu θ = 90, khi đó điểm A sẽ được coi là một điểm nằm trên biên độ nếu độ lớn gradien
tại A lớn hơn độ lớn gradien của các điểm tại A1, A5.
Nếu θ = 135, khi đó điểm A được xem là một điểm nằm trên biên độ nếu độ lớn gradien
tại A lớn hơn độ lớn gradien của các điểm tại A2, A6
34
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
35
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Chương này nói về tính toán và thiết kế các mạch của hệ thống. Xây dựng được sơ đồ
mạch, thông qua đó tính toán các số liệu cần thiết để mạch chạy một cách ổn định và đạt
hiệu quả cao nhất.
Khung cánh tay máy bao gồm: chân đế được lắp trục quay cánh tay máy, trên trục quay
là cánh tay với 2 khớp quay. Cuối cánh tay máy là một mặt bích có thể xoay lắp cơ cấu
gắp, kẹp.
Khung cánh tay robot 4 bậc tự do kích thước:
Chiều cao: 300mm Chiều dài tay: 230mm Độ rộng của đế: 250mm.
Các khung chân đế, cánh tay đều được làm bằng nhôm dập hình và khoan lỗ sẵn.
Tổng thể của cánh tay robot được miêu tả như hình dưới đây.
36
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
37
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
3.3. Sơ đồ mạch
38
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
3.4. Sơ đồ mạch in
Chế độ hoạt động: Tất cả tính năng hoạt động. Dòng chip yêu cầu là 0,24A, đôi khi nếu
sử dụng cả Bluetooth và Wifi có thể lên tới 0,79A.
Điện áp sử dụng là 5V, dòng ra của cánh tay robot (4 servo): 0,315x 4 = 1,26A
Dòng ra của động cơ băng tải băng tải: 0,3A
39
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Thông số :
40
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Mạch Relay 5V
41
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Thông qua chương này, ta thiết kế và tính toán được các mạch cần thiết để hệ thống hoạt
động. Từ phần cứng này, kết hợp với phần mềm sẽ được nhắc đến ở chương sau để hoàn
thành hệ thống.
42
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Chương này ta tìm hiểu cách chương trình điều khiển hoạt động. Ta sẽ thấy được cách
nhận và gửi thông tin qua ESP32 và gửi lên Website như thế nào, từ đó thấy được cách
thức vận hành hệ thống lớn.
43
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Hình 4.1 Lưu đồ thuật toán ở mạch điều khiển cánh tay
Nhận dữ liệu trên Webserver xuống điều khiển băng tải chạy, từ cảm biến kiểm tra có
sản phẩm không. Nếu có sản phẩm thì băng tải dừng lại và gửi dữ liệu lên trên web xuống
kiểm tra xem sản phẩm thuộc màu nào. Cánh tay robot gắp sản phẩm màu xanh bỏ vào
hộp chứa sản phẩm màu xanh, robot gắp sản phẩm màu đỏ bỏ vào hộp chứa sản phẩm
màu đỏ, robot gắp sản phẩm màu vàng bỏ vào hộp chứa sản phẩm màu vàng, robot gắp
44
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
sản phẩm màu tím bỏ vào hộp chứa sản phẩm màu tím. Nếu không đúng màu băng tải tiếp
tục chạy loại sản phẩm.
4.2.1.Lưu đồ thuật toán con khối đọc cảm biến và điều khiển băng tải
Hình 4.2 Lưu đồ thuật toán con đọc cảm biến và điều khiển băng tải
45
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
4.2.2. Lưu đồ thuật toán con khối điều khiển cánh tay robot
Hình 4.3 Lưu đồ thuật toán con khối điều khiển cánh tay Robot
46
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
47
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Gửi dữ liệu xuống điều khiển băng tải. Kiểm tra nhận dữ liệu từ mạch điều khiển cánh
tay robot xem có sản phẩm không. Sản phẩm đến cảm biến tiến hành xử lý ảnh. Đúng
màu xanh thì báo sản phẩm màu xanh, đúng màu đỏ thì báo sản phẩm màu đỏ, đúng
màu vàng thì báo sản phẩm màu vàng, đúng màu tím thì báo sản phẩm màu tím. Đồng
thời hiển thị số lượng và hình ảnh của sản phẩm.
Arduino IDE là một phần mềm với một mã nguồn mở, được sử dụng chủ yếu để viết và
biên dịch mã vào module Arduino. Phần mềm giúp sử dụng các cảm biến, linh kiện một
cách linh hoạt phù hợp với mục đích sử dụng. Đây là một phần mềm Arduino chính
thống, giúp cho việc biên dịch mã trở nên dễ dàng, ngay cả một người bình thường không
có kiến thức kỹ thuật cũng có thể làm được.
49
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Vùng lệnh:
Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía dưới là các icon cho
phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như sau:
Những thông báo từ IDE sẽ được hiển thị tại đây. Để ý rằng góc dưới cùng bên phải hiển
hị loại board Arduino và cổng COM được sử dụng. Luôn chú ý tới mục này bởi nếu chọn
sai loại board hoặc cổng COM sẽ không thể upload được code.
Khi lập trình cần chọn port (cổng kết nối khi gắn board vào) và board (tên board sử
dụng). Giả sử đang dùng mạch Arduino Atmega 2560 và khi gắn board vào máy tính bằng
cáp USB nó dược nhận là COM4 thì chỉnh như thế này là cỏ thể lập trình được.
50
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Pycharm là một nền tảng kết kết hợp được JetBrains phát triển như một để phát triển các
ứng dụng cho lập trình trong Python. Một số ứng dụng lớn như Tweeter, Facebook,
Amazon và Pinterest sử dụng Pycharm để làm IDE Python của họ. Bài viết dưới đây sẽ
giới thiệu chi tiết cho bạn về Pycharm cũng như hướng dẫn cách cài đặt và sử dụng
Pycharm.
Các tính năng của pycharm
Pycharm có thể chạy trên Windows, Linux, hoặc Mac OS. Ngoài ra, nó cũng chứa các
Mô đun và các gói giúp các lập trình viên phát triển phần mềm bằng Python trong thời
gian ngắn với ít công sức hơn. Hơn nữa, nó cũng có khả năng tùy chỉnh theo yêu cầu của
nhà phát triển.
51
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Khi cài đặt Pycharm, LTV có thể sử dụng một số tính năng sau:
Trình chỉnh sửa mã thông minh:
- Giúp các lập trình viên viết mã chất lượng cao
- Bao gồm các lược đồ màu cho các từ khóa, lớp và hàm. Điều này giúp tăng khả
năng đọc và hiểu mã
- Xác định lỗi một cách dễ dàng
- Cung cấp tính năng tự động hoàn thiện và hướng dẫn hoàn thiện mã.
Điều hướng mã
- Giúp các nhà phát triển trong việc chỉnh sửa và nâng cao mã với ít nỗ lực và thời
gian hơn.
- Với việc điều hướng mã, nhà phát triển có thể dễ dàng điều hướng một lớp,hàm
hoặc tệp.
- LTV có thể xác định vị trí của một phần tử, một ký hiệu hoặc một biến trong mã
nguồn trong thời gian ngắn khi sử dụng Pycharm.
- Bằng việc sử dụng chế độ thấu kính, nhà phát triển có thể kiểm tra và gỡ lỗi toàn
bộ mã nguồn.
Tái cấu trúc
- Sử dụng Pycharm có lợi thế là thực hiện các thay đổi hiệu quả và nhanh chóng đối
với cả biến cục bộ và biến toàn cục.
- Tái cấu trúc trong Pycharm cho phép các nhà phát triển cải thiện cấu trúc bên trong
mà không thay đổi hiệu suất bên ngoài của mã.
- Nó cũng cho phép phân chia các lớp với các chức năng mở rộng hơn
52
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Bước 2: Chuyển hình ảnh màu của vật từ RGB sang HSV
Chuyển từ RGB sang HSV là chuyển đổi ảnh RGB sang ảnh HSV, chúng tôi có thể sử
dụng nó để trích xuất một đối tượng có màu. Trong HSV, việc biểu diễn một màu dễ dàng
hơn so với không gian màu RGB.
Không gian màu HSB, còn gọi là không gian màu HSV, là một không gian màu dựa trên
ba số liệu: H: (Hue) Vùng màu. S: (Saturation) Độ bão hòa màu. B (hay V): (Bright hay
Value) độ sáng.
Không gian màu HSV được sử dụng khi chọn màu cho sơn hoặc mực vì HSV thể hiện rõ
hơn không gian màu RGB.
Quá trình trích xuất một đối tượng có hình ảnh theo các bước:
53
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
- Chọn ngưỡng hình ảnh HSV cho một dải màu xác định.
- Tách ra phần đối tượng màu xác định, sau đó có thể làm bất cứ điều gì trên hình ảnh đó.
Bước 3: Xác định ngưỡng của các màu cụ thể bằng cách thay đổi giá trị của ảnh sang
ngưỡng màu HSV
a. Màu xanh:
b. Màu đỏ:
c. Màu vàng:
d. Màu tím:
54
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
UART là viết tắt của "Universal Asynchronous Receiver/Transmitter", là một giao thức
truyền thông không đồng bộ (Asynchronous) được sử dụng để truyền dữ liệu giữa các
thiết bị điện tử, chẳng hạn như vi điều khiển (microcontroller), cảm biến, module truyền
thông và các thiết bị khác. [10]
Giao thức UART là một giao thức đơn giản và phổ biến, bao gồm hai đường truyền dữ
liệu độc lập là TX (truyền) và RX (nhận). Dữ liệu được truyền và nhận qua các đường
truyền này dưới dạng các khung dữ liệu (data frame) có cấu trúc chuẩn, với một bit bắt
đầu (start bit), một số bit dữ liệu (data bits), một bit kiểm tra chẵn lẻ (parity bit) và một
hoặc nhiều bit dừng (stop bit).
Thông thường, tốc độ truyền của UART được đặt ở một số chuẩn, chẳng hạn như 9600,
19200, 38400, 57600, 115200 baud và các tốc độ khác. Tốc độ truyền này định nghĩa số
lượng bit được truyền qua mỗi giây. Các tốc độ truyền khác nhau thường được sử dụng
tùy thuộc vào ứng dụng và hệ thống sử dụng.
UART hoạt động theo cơ chế truyền và nhận thông tin dữ liệu dưới dạng các chuỗi bít
(bits) qua các đường truyền tương tự (UART chỉ được sử dụng trên kênh truyền tương
tự). Cụ thể, khi một thiết bị gửi một tin nhắn, nó sẽ chuyển đổi dữ liệu thành một chuỗi bít
và gửi qua đường truyền. Thiết bị nhận sẽ tiếp nhận các chuỗi bít đó, tách nó thành các ký
tự (nếu được gửi với ký tự), và sau đó xử lý thông tin được gửi.
55
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
UART sử dụng một tín hiệu đồng hồ chung giữa thiết bị gửi và thiết bị nhận để đồng bộ
hóa quá trình truyền và nhận dữ liệu. Khi các thiết bị không đồng bộ, ví dụ như khi
chuyển từ trạng thái gửi sang trạng thái nhận, UART sử dụng một tín hiệu đặc biệt gọi là
"start bit" để đồng bộ hóa quá trình. Sau khi nhận được "start bit", thiết bị nhận sẽ đọc các
bit tiếp theo và đảm bảo chúng tuân theo định dạng được xác định trước (bao gồm số bit
dữ liệu, bit stop và các tham số khác).
Khi truyền dữ liệu, thiết bị gửi sẽ đợi cho tín hiệu đồng hồ phát sinh, sau đó chuyển đổi
các bit dữ liệu thành các mức tín hiệu điện tương ứng trên đường truyền. Khi gửi xong
các bit, thiết bị gửi sẽ đặt tín hiệu trên đường truyền ở trạng thái cao (hoặc thấp, tuỳ thuộc
vào thiết kế), và thiết bị nhận sẽ đọc bit stop này để xác định kết thúc quá trình truyền.
Trong UART, tốc độ truyền dữ liệu được đo bằng baud rate, tức là số lần mỗi giây tín
hiệu được thay đổi trên đường truyền. Baud rate càng cao thì tốc độ truyền dữ liệu càng
nhanh, nhưng cũng đòi hỏi nhiều tài nguyên hệ thống hơn. [10]
1. Chế độ đồng bộ (Synchronous mode): Trong chế độ này, các thiết bị truyền và nhận
dữ liệu phải được đồng bộ hóa với nhau. Điều này đòi hỏi sự trao đổi thông tin trước đó
để các bên có thể điều chỉnh tốc độ truyền và đồng bộ hóa với nhau.
2. Chế độ không đồng bộ (Asynchronous mode): Đây là chế độ được sử dụng phổ biến
nhất trong giao thức UART. Trong chế độ này, mỗi khung dữ liệu được gửi với một
khoảng thời gian cố định giữa các bit, được gọi là bit đồng bộ hóa. Không cần trao đổi
trước đó giữa các thiết bị để điều chỉnh tốc độ truyền.
3. Chế độ đa chủ (Multi-drop mode): Trong chế độ này, nhiều thiết bị có thể chia sẻ
cùng một đường truyền và truyền thông với nhau. Mỗi thiết bị được định danh bằng một
địa chỉ duy nhất, và các thiết bị khác sẽ bỏ qua các khung dữ liệu được gửi đến địa chỉ
không phù hợp.
Mỗi chế độ truyền dữ liệu có ưu điểm và hạn chế riêng, và sẽ phù hợp hơn với các ứng
dụng khác nhau. Chế độ không đồng bộ được sử dụng rộng rãi trong các ứng dụng như
truyền thông dữ liệu với các thiết bị nhúng và cảm biến, trong khi chế độ đồng bộ được sử
dụng trong các ứng dụng truyền tải dữ liệu trên khoảng cách xa hơn và đòi hỏi độ chính
56
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
xác cao hơn. Chế độ đa chủ được sử dụng trong các ứng dụng liên lạc truyền thông giữa
nhiều thiết bị trên một mạng.
Khung dữ liệu
Trong giao thức UART, khung dữ liệu (data frame) là một chuỗi các bit dữ liệu được
truyền qua kết nối UART giữa bộ truyền và bộ nhận. Khung dữ liệu bao gồm các thành
phần sau:
1. Bit bắt đầu (start bit): Đây là một bit có giá trị logic 0 được gửi trước khi truyền
khung dữ liệu để báo hiệu bắt đầu của khung dữ liệu.
2. Bit dữ liệu: Các bit này chứa thông tin dữ liệu được truyền qua kết nối UART,
3. Bit chẵn lẻ (parity bit): Đây là một bit được sử dụng để kiểm tra lỗi dữ liệu. Bit này
có thể có giá trị logic 0 hoặc 1, tùy thuộc vào cách xác định lỗi được chọn.
4. Bit dừng (stop bit): Đây là một hoặc hai bit có giá trị logic 1 được gửi sau khi truyền
khung dữ liệu để đồng bộ hóa tín hiệu trên mạch giữa bộ truyền và bộ nhận.
Kích thước của khung dữ liệu UART phụ thuộc vào cài đặt UART cụ thể được sử dụng.
Các kích thước phổ biến bao gồm 7 bit dữ liệu và một bit chẵn lẻ hoặc lẻ, hoặc 8 bit dữ
liệu và không có bit chẵn lẻ hoặc lẻ. [10]
Tính tương thích cao: UART được sử dụng rộng rãi trong vi mạch điện tử bởi vì nó có
tính tương thích cao với các giao thức truyền thông khác. Nó có thể hoạt động trên các tốc
độ truyền khác nhau và có thể được sử dụng để truyền dữ liệu giữa các thiết bị khác nhau.
Tiết kiệm chi phí: UART là một thành phần điện tử đơn giản và rẻ tiền. Nó có thể được
tích hợp vào nhiều loại vi mạch khác nhau và không đòi hỏi nhiều tài nguyên tính toán.
57
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Độ tin cậy cao: UART được sử dụng phổ biến trong các ứng dụng điện tử bởi vì nó đơn
giản và có độ tin cậy cao. Nó thường được sử dụng trong các ứng dụng như đọc cảm biến,
điều khiển máy in, máy tính và các thiết bị điện tử khác.
Tính năng điều khiển lỗi: UART có thể xử lý các lỗi truyền thông như lỗi ngắt kết nối,
lỗi dữ liệu, lỗi đồng bộ và lỗi kiểm soát.
Tốc độ truyền tải chậm: UART không thể truyền dữ liệu với tốc độ cao như các giao
thức truyền thông khác như SPI hoặc I2C.
Độ dài tối đa của đường truyền giới hạn: Độ dài tối đa của đường truyền UART là giới
hạn về khoảng cách truyền tải dữ liệu và không thể được sử dụng cho các khoảng cách
truyền dài.
Không hỗ trợ nhiều thiết bị: UART là giao thức truyền thông hai chiều và chỉ hỗ trợ kết
nối đến một thiết bị duy nhất một cách trực tiếp.
Không hỗ trợ phát hiện xung đột: UART không hỗ trợ phát hiện xung đột và không thể
phát hiện xung đột khi có nhiều thiết bị cố gắng truyền dữ liệu đến cùng một thời điểm.
[10]
Giao tiếp UART được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau. Dưới đây là
một số ứng dụng phổ biến của giao tiếp UART:
1. Truyền thông giữa các vi điều khiển (MCUs): UART được sử dụng để truyền dữ liệu
giữa các vi điều khiến trong hệ thống nhúng, cho phép các vi điều khiển giao tiếp với
nhau hoặc với các module ngoại vi.
2. Giao tiếp giữa máy tính và các thiết bị ngoại vi: UART được sử dụng để kết nối máy
tính với các thiết bị ngoại vi như cảm biến, màn hình LCD, đầu đọc thẻ nhớ, module điều
khiển motor, và nhiều thiết bị khác.
3. Giao tiếp giữa các module trong hệ thống nhúng: UART được sử dụng để truyền dữ
liệu giữa các module trong hệ thống nhúng, cho phép chúng giao tiếp với nhau và thực
hiện các chức năng như đọc dữ liệu, điều khiển, hoặc truyền thông tin điều kiện làm việc.
58
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
4. Giao tiếp với các thiết bị ngoại vi không có giao diện khác: UART được sử dụng để
giao tiếp với các thiết bị ngoại vi không có giao diện khác, chẳng hạn các module RF
(radio frequency), GPS (Global Positioning System), hoặc các thiết bị điều khiển từ xa.
5. Giao tiếp trong các ứng dụng loT (Internet of Things): UART được sử dụng trong
các ứng dụng loT để truyền dữ liệu giữa các thiết bị thông minh, máy chủ và nền tảng
đám mây, cho phép giao tiếp và kiểm soát các thiết bị từ xa.
6. Giao tiếp trong các ứng dụng viên thông: UART được sử dụng trong các ứng dụng
viên thông, chẳng hạn trong việc truyền dữ liệu giữa các thiết bị mạng, truyền dữ liệu qua
đường dây điện thoại hoặc cáp quang. [10]
HTTP là từ viết tắt của Hyper Text Transfer Protocol nghĩa là Giao thức Truyền tải
Siêu Văn Bản được sử dụng trong www. HTTP là 1 giao thức cho phép tìm nạp tài
nguyên. Nó là nền tảng của bất kỳ sự trao đổi dữ liệu nào trên Website và cũng là giao
thức giữa client (thường là các trình duyệt hay bất kỳ loại thiết bị, chương trình nào) và
server (thường là các máy tính trên đám mây). [11]
HTTP hoạt động theo mô hình Client (máy khách) – Server (máy chủ). Việc truy cập
website được tiến hành dựa trên các giao tiếp giữa 2 đối tượng trên. Khi bạn truy cập một
trang web qua giao thức HTTP, trình duyệt sẽ thực hiện các phiên kết nối đến server của
trang web đó thông qua địa chỉ IP do hệ thống phân giải tên miền DNS cung cấp. Máy
chủ sau khi nhận lệnh, sẽ trả về lệnh tương ứng giúp hiển thị website, bao gồm các nội
dung như: văn bản, ảnh, video, âm thanh…
Trong quá trình kết nối và trao đổi thông tin, trình duyệt của bạn sẽ mặc nhiên thừa nhận
địa chỉ IP đó đến từ server của chính website mà bạn muốn truy cập mà không hề có biện
pháp xác thực nào. Các thông tin được gửi đi qua giao thức HTTP (bao gồm địa chỉ IP,
các thông tin mà bạn nhập vào website…) cũng không hề được mã hóa và bảo mật.
59
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
HTML là viết tắt của Hyper Text Markup Language (ngôn ngữ đánh dấu siêu văn bản).
HTML cho phép người dùng tạo và cấu trúc hóa các thành phần trên một trang web như
đoạn văn, tiêu đề, liên kết, trích dẫn, bảng biểu...
Các phần tử trong HTML là các khối của trang Website HTML, được đại diện bằng
những thẻ đánh dấu (tag).
Thẻ đánh dấu HTML chứa các nội dung như ‘paragraph’, ‘heading’, ‘table’...
Trình duyệt không hiển thị thẻ HTML nhưng dùng chúng để hiển thị nội dung của trang.
Có nhiều tài nguyên hỗ trợ với cộng đồng người dùng vô cùng lớn.
Có thể hoạt động mượt mà trên hầu hết mọi trình duyệt hiện nay.
Học HTML khá đơn giản.
Các markup sử dụng trong HTML thường ngắn gọn, có độ đồng nhất cao.
Sử dụng mã nguồn mở, hoàn toàn miễn phí.
60
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Thông qua chương này ta biết được nguyên lý hoạt động của thuật toán, cách nhận thông
tin cũng như truyền thông tin qua ESP32 và Website. Từ đó có thể biết được cách thức
mà hệ thống sẽ vận hành khi gặp các trường hợp khác nhau. Kết quả thực tế sẽ được nhắc
đến trong chương sau.
61
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Chương này cho ta thấy sản phẩm thực tế sau khi đã hoàn thành, đồng thời đánh giá hiệu
quả thực tế của nó so với dự định, bao gồm mạch và trang Website.
5.2.1. Sơ đồ mạch
62
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
5.2.2. PCB
63
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Sau thời
gian tìm
hiểu, thiết
kế và
thi công
hệ đã
hoàn
Đề tài đã thực hiện thành công các yêu cầu đặt ra với một hệ thống sản xuất thực tế:
- Khả năng phân loại sản phẩm ổn định và độ chính xác rất cao.
- Giao diện trực quan, đảm bảo đầy đủ các chức năng cơ bản của một hệ thống.
65
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
- Mô hình được thi công chắc chắn, đảm bảo các yêu cầu làm việc và giữ nguyên các
nguyên tắc, phân tích của phần thiết kế trước đó.
- Thiết lập đầy đủ các bản vẽ và tài liệu liên quan giúp việc đọc hiểu, thi công các thiết kế
dễ dàng, thuận tiện.
- Độ cứng vững của cánh tay Robot chưa cao. Momen quán tính của đế xoay còn lớn,
nhiều trường hợp bị lệch vị trí trở về ban đầu.
- Khi làm việc ở tốc độ cao, cánh tay vẫn còn nhiều sai sót, khả năng gắp vật chưa được
chính xác.
- Nhiều lần bị dừng hoạt động trong quá trình xử lí ảnh và gắp vật.
- Độ chính xác thả vật còn hạn chế khi trong nhiều trường hợp cánh tay xử lí lỗi.
- Hệ thống băng tải hoạt động chưa được tốt, hiện tượng băng tải bị lệch dẫn đến vật thể
bị thay đổi góc xoay, dẫn đến cánh tay robot xác định sai vị trí.
STT Nhận diện màu Độ gắp chính xác Độ sai lệch gắp
của cánh tay sản phẩm
1 98% 98% 2%
66
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
2 98% 96% 4%
3 97% 95% 5%
4 97% 95% 5%
5 95% 95% 5%
Bảng 1.3 Sản phẩm màu đỏ
Nhận xét:
Từ bảng số liệu trên có thể thấy việc nhận diện màu sắc, độ gắp chính xác của cánh tay
và độ sai lệch gắp sản phẩm của các màu tương đối tốt. Kết quả cho thấy sản phẩm màu
đỏ có hoạt động tốt nhất, lần lượt đến sản phẩm màu xanh, tím và vàng.
Hệ thống có thể xác định được nhiều màu sắc sản phẩm khác nhau, tuy nhiên trong
phạm vi bài báo này nhóm chỉ thực hiện bốn màu cơ bản là: Xanh, đỏ, vàng và tím.
Nhận dạng màu sản phẩm với tốc độ xử lý nhanh và chính xác khi điều kiện ánh
67
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
sáng ổn định.
Có thể sử dụng mô hình để phát triển cho sau này.
Tính ứng dụng thực tế cao.
Kết quả:
- Tạo được trang Webserver đơn giản để điều khiển cánh tay robot.
- Gửi và nhận thông tin được nhưng vẫn còn độ trễ do tín hiệu mạng yếu, cần được khắc
phục.
5.5.Hướng phát triển của cánh tay robot có thể thực hiện
Giảm độ trễ và độ phản hồi của cánh tay robot làm nâng cao tốc độ cũng như độ chính
xác, làm cho việc vận hành đơn giản hơn cũng như giảm bớt các tình trạng hư hỏng cũng
như sự cố khi vận chuyển do sự rung lắc quá mạnh của cánh tay robot.
Thêm tính năng nhận diện hàng hóa để có thể vận chuyển và sắp xếp nhiều loại mặt
hàng cũng như phân biệt các mặt hàng không đạt đủ chất lượng.
68
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Đề tài: Thiết kế hệ thống IoRT cho cánh tay robot có xử lý ảnh
Mở rộng điều khiển cánh tay robot. Thêm các chức năng như khả năng vận hành theo
những yêu cầu cụ thể, làm đa dạng phương pháp vận chuyển, phù hợp với trường hợp.
Xây dựng thành 1 hệ thống IoRT hoàn chỉnh.
Một hệ thống đầy đủ đầu tiên xem hệ thống Iot trong nhà máy rồi tích hợp cánh tay
robot vào hệ thống.
Đồng thời bố trí trí thêm camera để ở nhiều khu vực trọng điểm để chương trình phần
mềm nhằm giám sát, xử lý và điều khiển các thông số môi trường và các đối tượng của hệ
thống IoRT (robot, cảm biến) nhằm đạt được các mục tiêu của hệ thống.
5.6. Kết luận chương
Đề tài mang tính ứng dụng cao, ứng dụng nhiều trong các hệ thống sản xuất tự động.
Có thể phát triển hơn khả năng xử lí ảnh về nhận diện vật thể với nhiều màu sắc, kích
thước, hình dạng. Ứng dụng trong lĩnh vực Nông nghiệp như phân loại trái cây. Trong
công nghiệp xử lí rác thải và các lĩnh vực nghiên cứu giáo dục trong các trường học.
Chúng tôi đã thấy được kết quả thực tế của sản phẩm, do thời gian làm làm đồ án có giới
hạn nên vẫn còn nhiều thiếu sót. Nếu đủ khả năng thì sẽ tiếp tục phát triển đồ án này trở
nên hoàn thiện và chất lượng hơn.
69
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
TÀI LIỆU THAM KHẢO
[2] H. X. Sơn, "Công nghệ IoRT và tiềm năng ứng dụng," Viện Công nghệ Thông
tin và Truyền thông CDIT, 24 /11/ 2021. [Online]. Available:
https://vnautomate.net/cong-nghe-iort-va-tiem-nang-ung-dung.html. [Accessed
6 /6/ 2023].
[3] KUKA, "Cộng tác con người – robot trong điều chỉnh đèn pha," [Online].
Available: https://www.kuka.com/vi-vn/ng%C3%A0nh-c%C3%B4ng-nghi
%E1%BB%87p/c%C6%A1-s%E1%BB%9F-d%E1%BB%AF-li%E1%BB
%87u-gi%E1%BA%A3i-ph%C3%A1p/2019/01/%C4%91i%E1%BB%81u-ch
%E1%BB%89nh-%C4%91%C3%A8n-pha-hrc. [Accessed 6/ 7/ 2023].
[5] "Robot công nghiệp là gì và có lợi ích như thế nào trong sản xuất," CÔNG TY
CỔ PHẦN GIẢI PHÁP TỰ ĐỘNG HÓA ETEK, 30/ 5/ 2023. [Online].
Available: https://tpa-fas.com.vn/Tin/robot-cong-nghiep-la-gi-va-co-loi-ich-
nhu-the-nao-trong-san-xuat. [Accessed 23/ 6/ 2023].
[6] "Xử lý dữ liệu ảnh: Một số kiến thức căn bản," 3 /6 /2022. [Online]. Available:
https://vinbigdata.com/kham-pha/xu-ly-du-lieu-anh-mot-so-kien-thuc-can-
ban.html. [Accessed 25 /6 /2023].
[8] Codelearn, "Xử Lý Ảnh Cơ Bản Với OpenCV Trong Python," 15/ 6/ 2020.
[Online]. Available: https://codelearn.io/sharing/xu-ly-anh-voi-opencv-phan-1.
[Accessed 2023 /6 /7].
[9] Codelearn, "Tìm Biên Ảnh Dễ Dàng Với Bộ Lọc Canny," 7 /8 /2020.
[Online]. Available: https://codelearn.io/sharing/tim-bien-anh-de-dang-voi-bo-
loc-canny. [Accessed 15/ 6/ 2023].
[10] Đ. t. số, "Giao tiếp URAT là gì? Cách thức hoạt động, ưu nhược điểm và các
ứng dụng," 3/ 6/ 2023. [Online]. Available: https://dientuso.net/giao-tiep-uart.
[Accessed 25/ 6/ 2023].
[11 TopDEV, "HTTP là gì? Các khía cạnh cơ bản của HTTP," [Online].
Available: https://topdev.vn/blog/http-la-gi/?fbclid=IwAR2rVJzjWkAG-
D8otv8SifFAYf5TUEseiLPJaCP5nHrXFPNdM-Tnv5YLmfM. [Accessed 15/
6/ 2023].
[12 "Nhận dạng thẻ số sử dụng thư viện OpenCV," 12 /10 /2018. [Online].
Available: https://viblo.asia/p/nhan-dang-the-so-su-dung-thu-vien-opencv-
1VgZvozmlAw?
fbclid=IwAR02lyNE0Dgm9Y2Ob379QqRjagbsiDRRnsdc6HVqvjn7c3BUs1sI
NIi5Lw4. [Accessed 15/ 6/ 2023].
71
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
PHỤ LỤC 1
Chương trình phần mềm Arduino IDE:
#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
void setup ()
myservo1.attach(26);
myservo2.attach(27);
myservo3.attach(32);
myservo4.attach(33);
myservo1.write(90);
myservo2.write(150);
myservo3.write(0);
myservo4.write(50);
72
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
pinMode(CB,INPUT);
pinMode(RL,OUTPUT);
int Run = 1;
int Vat1=0;
int Vat2=0;
int Vat3=0;
int Vat4=0;
int XL=0;
char k;
int CV=0;
void loop ()
if(digitalRead(CB)==HIGH)
CV=CV+1;
delay(10);
else
CV = 0;
73
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
if(XL==0 && millis() - myTime > 100)
myTime = millis();
Serial.print("z");
if(Run == 1)
digitalWrite(RL,HIGH);
else
digitalWrite(RL,LOW);
digitalWrite(RL,LOW);
delay(1000);
VT1();
digitalWrite(RL,HIGH);
Vat1=0;
XL=0;
k=0;
74
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
else if(Vat2==1 && CV==5)
digitalWrite(RL,LOW);
delay(1000);
VT2();
digitalWrite(RL,HIGH);
Vat2=0;
XL=0;
k=0;
digitalWrite(RL,LOW);
delay(1000);
VT3();
digitalWrite(RL,HIGH);
Vat3=0;
XL=0;
k=0;
75
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
{
digitalWrite(RL,LOW);
delay(1000);
VT4();
digitalWrite(RL,HIGH);
Vat4=0;
XL=0;
k=0;
if(Serial.available()>0)
k = Serial.read();
if(k=='a')
Vat1=1;
k=0;
XL=1;
else if(k=='b')
Vat2=1;
k=0;
76
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
XL=1;
else if(k=='e')
Vat3=1;
k=0;
XL=1;
else if(k=='f')
Vat4=1;
k=0;
XL=1;
else if(k=='c')
Run=1;
else if(k=='d')
Run = 0;
void VT1()
77
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
{
myservo1.write(110);
delay(500);
myservo2.write(80);
myservo3.write(70);
myservo4.write(50);
delay(2000);
// /////////////Kep
delay(1000); // sau khi kep xong dung lai 1s để thực hiện phần tiếp theo
// vi tri tha
myservo2.write(150);
myservo3.write(0);
delay(1000);
myservo1.write(180);
myservo4.write(90);
delay(1000);
myservo2.write(120);
78
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
delay(1000);
// /////////////Kep
delay(1000);
// di ve home
myservo1.write(90);
myservo2.write(150);
myservo3.write(0);
myservo4.write(50);
void VT2()
// ///////VTVat
myservo1.write(110);
delay(500);
myservo2.write(80);
myservo3.write(70);
myservo4.write(50);
delay(2000);
// /////////////Kep
79
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Kep(20);
delay(1000);
// VTri tha
myservo2.write(150);
myservo3.write(10);
delay(1000);
myservo1.write(150);
myservo4.write(90);
delay(1000);
myservo2.write(110);
//VTTha
// myservo1.write(140);
// myservo2.write(110);
// myservo3.write(10);
// myservo4.write(90);
delay(2000);
myservo4.write(50);
delay(1000);
myservo1.write(90);
80
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
myservo2.write(150);
myservo3.write(0);
myservo4.write(50);
void VT3()
// ///////VTVat
myservo1.write(110);
delay(500);
myservo2.write(80);
myservo3.write(70);
myservo4.write(50);
delay(2000);
// /////////////Kep
Kep(20);
delay(1000);
myservo2.write(150);
myservo3.write(10);
delay(1000);
myservo1.write(30);
myservo4.write(90);
81
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
delay(1000);
myservo2.write(110);
delay(2000);
// /////////////Kep
myservo4.write(50);
delay(1000);
myservo1.write(90);
myservo2.write(150);
myservo3.write(0);
myservo4.write(50);
void VT4()
// ///////VTVat
myservo1.write(110);
delay(500);
myservo2.write(80);
myservo3.write(70);
myservo4.write(50);
delay(2000);
// /////////////Kep
82
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
Kep(20);
delay(1000);
//VTTha
myservo2.write(150);
myservo3.write(0);
delay(1000);
myservo1.write(0);
myservo4.write(90);
delay(1000);
myservo2.write(120);
delay(1000);
// /////////////Kep
myservo4.write(50);
delay(1000);
myservo1.write(90);
myservo2.write(150);
myservo3.write(0);
myservo4.write(50);
83
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
void Kep(int a)
for(int i=0;i<a;i++)
myservo4.write(90);
delay(10);
84
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
PHỤ LỤC 2
Chương trình phần mềm Pycharm:
import time
import cv2
import numpy as np
import serial
app = Flask(__name__,template_folder='venv/templates')
camera = None
s1 = 0
s2 = 0
s3 = 0
s4 = 0
loai = 0
@app.route('/')
def index():
global m
@app.route('/get_sp1', methods=['GET'])
85
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
def get_sp1():
global s1
return jsonify(s1)
@app.route('/get_sp2', methods=['GET'])
def get_sp2():
global s2
return jsonify(s2)
@app.route('/get_sp3', methods=['GET'])
def get_sp3():
global s3
return jsonify(s3)
@app.route('/get_sp4', methods=['GET'])
def get_sp4():
global s4
return jsonify(s4)
def generate_frames():
global camera
while True:
86
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
success, frame = camera.read()
if not success:
break
else:
loai = 0
x, y, w, h = cv2.boundingRect(contour)
loai=1
cv2.putText(
img=frame,
text="MauXanh",
org=(100, 100),
fontFace=cv2.FONT_HERSHEY_DUPLEX,
87
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
fontScale=2,
color=(255, 0, 0),
thickness=1
if (ESP32.read() == b'z'):
ESP32.write(b'a')
global s1
s1= s1 + 1
time.sleep(1)
ESP32.close()
if loai == 0 :
loai = 2
if loai == 2:
88
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
x, y, w, h = cv2.boundingRect(contour)
print(w, h)
print(loai)
loai=0
cv2.putText(
img=frame,
text="MauDo",
org=(100, 100),
fontFace=cv2.FONT_HERSHEY_DUPLEX,
fontScale=2,
color=(0, 0, 255),
thickness=1
if (ESP32.read() == b'z'):
ESP32.write(b'b')
global s2
s2 = s2 + 1
time.sleep(1)
ESP32.close()
if loai==2:
loai = 3
89
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
if loai == 3:
x, y, w, h = cv2.boundingRect(contour)
print(w, h)
print(loai)
loai=0
cv2.putText(
img=frame,
text="MauVang",
org=(100, 100),
fontFace=cv2.FONT_HERSHEY_DUPLEX,
fontScale=2,
thickness=1
90
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
ESP32 = serial.Serial(port='COM3', baudrate=9600, timeout=.1)
if (ESP32.read() == b'z'):
ESP32.write(b'e')
global s3
s3 = s3 + 1
time.sleep(1)
ESP32.close()
if loai == 3:
loai = 4
if loai == 4:
x, y, w, h = cv2.boundingRect(contour)
print(w, h)
loai = 0
cv2.putText(
91
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
img=frame,
text="MauTim",
org=(100, 100),
fontFace=cv2.FONT_HERSHEY_DUPLEX,
fontScale=2,
color=(128, 0, 128),
thickness=1
if (ESP32.read() == b'z'):
ESP32.write(b'f')
global s4
s4 = s4 + 1
time.sleep(1)
ESP32.close()
frame = buffer.tobytes()
yield (b'--frame\r\n'
@app.route('/video')
def video():
92
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
return Response(generate_frames(), mimetype='multipart/x-mixed-replace;
boundary=frame')
def result():
ESP32.write(b'c')
time.sleep(1)
ESP32.close()
print(1)
return render_template('index.html')
def result1():
ESP32.write(b'd')
time.sleep(1)
ESP32.close()
print(0)
return render_template('index.html')
if __name__ == "__main__":
camera = cv2.VideoCapture(0)
93
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
app.run(debug=True)
PHỤ LỤC 3
Chương trình hiển thị Webserver:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
function updateSP1() {
$.ajax({
type: "GET",
success: function(data) {
$('#sp1-value').text(data);
94
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
});
function updateSP2() {
$.ajax({
type: "GET",
success: function(data) {
$('#sp2-value').text(data);
});
function updateSP3() {
$.ajax({
type: "GET",
success: function(data) {
$('#sp3-value').text(data);
});
function updateSP4() {
95
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
$.ajax({
type: "GET",
success: function(data) {
$('#sp4-value').text(data);
});
setInterval(function() {
updateSP1();
updateSP2();
updateSP3();
updateSP4();
}, 1000);
});
</script>
<style>
.h1 {
position: absolute;
top: 0px;
left: 450px;
96
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
.h2 {
position: absolute;
top: 50px;
left: 650px;
.h3 {
font-weight: bold;
font-size: 40px;
position: absolute;
top: 200px;
left: 1150px;
.circle1 {
position: absolute;
top: 350px;
left: 1150px;
width: 100px;
height: 100px;
border-radius: 50%;
background-color: green;
display: flex;
justify-content: center;
align-items: center;
97
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
color: #fff;
font-size: 24px;
font-weight: bold;
.circle2 {
position: absolute;
top: 350px;
left: 1400px;
width: 100px;
height: 100px;
border-radius: 50%;
background-color: red;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
font-size: 24px;
font-weight: bold;
.h6 {
font-weight: bold;
font-size: 24px;
position: absolute;
98
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
top: 480px;
left: 1150px;
.h7 {
font-weight: bold;
font-size: 24px;
position: absolute;
top: 580px;
left: 1150px;
.h8 {
font-weight: bold;
font-size: 24px;
position: absolute;
top: 800px;
left: 400px;
.cam {
position: absolute;
top: 100px;
left: 100px;
.SP1 {
99
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
font-weight: bold;
font-size: 24px;
position: absolute;
top: 510px;
left: 1150px;
.SP2 {
font-weight: bold;
font-size: 24px;
position: absolute;
top:560px;
left: 1150px;
.SP3 {
font-weight: bold;
font-size: 24px;
position: absolute;
top: 610px;
left: 1150px;
.SP4 {
font-weight: bold;
font-size: 24px;
100
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
position: absolute;
top:660px;
left: 1150px;
</style>
</head>
<body>
<div>
</div>
</form>
</form>
101
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam
<h3 style="color: blue;" class="SP2">Số Lượng Sản phẩm 2: <span id="sp2-value">{{
SP2 }}</span> Vật</h3>
</body>
</html>
102
Sinh viên thực hiện: Huỳnh Võ Thiện Tuấn Người hướng dẫn: TS. Nguyễn Duy Nhật
Viễn
Trần Minh Hùng KS. Lê Hồng Nam