1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu phương pháp xử lý ảnh và ứng dụng vào quá trình điều khiển robot nhện 6 chân

63 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

TOM TAT KHÓA LUẬNSản phẩm của khóa luận là một robot nhện 6 chân được tạo nên từ 18 động cơ servokết hợp với một bộ nhận diện màu sắc - đóng vai trò là “một bộ não” giúp robot cóthê tự đ

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN NHAT LONG NGHIEM XUAN NHAT QUANG

KHOA LUAN TOT NGHIEP

NGHIEN CUU PHUONG PHAP XU LY ANH VA UNG DUNG VAO QUA TRINH DIEU KHIEN ROBOT

NHEN 6 CHAN

RESEARCH INTO THE DIGITAL IMAGE PROCESSING IN

PROCESS OF CONTROLLING THE 6 LEGS SPIDER

ROBOT

KY SU KY THUAT MAY TINH

TP HO CHi MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN NHAT LONG - 16520690

NGHIEM XUAN NHAT QUANG - 16520994

KHOA LUAN TOT NGHIEP

NGHIEN CUU PHUONG PHAP XU LY ANH VA UNG

DUNG VAO QUA TRINH DIEU KHIEN ROBOT

NHEN 6 CHAN

RESEARCH INTO THE DIGITAL IMAGE PROCESSING IN

PROCESS OF CONTROLLING THE 6 LEGS SPIDER

ROBOT

KY SU KY THUAT MAY TINH

GIANG VIEN HUONG DAN

PHAN ĐÌNH DUY

TP HÒ CHÍ MINH, 2021

Trang 3

THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số Quyết định số

64/QD-DHCNTT ngày 26 tháng 01 năm 2021 của Hiệu trưởng Trường Dai học

Công nghệ Thông tin.

Trang 4

LỜI CẢM ƠN

Quá trình thực hiện luận văn tốt nghiệp là giai đoạn quan trọng nhất trong quãngđời mỗi sinh viên Khóa luận tốt nghiệp là tiền đề nhằm trang bị cho chúng emnhững kỹ năng nghiên cứu, những kiến thức quý báu trước khi lập nghiệp

Trước hết, chúng em xin chân thành cảm ơn quý Thay, Cô khoa Kỹ thuật máy tính.Thay, Cô trong bộ môn khoa đã tận tình chỉ dạy và trang bi cho em những kiến thức

cần thiết trong suốt thời gian ngồi trên ghế giảng đường, Làm nền tang cho em có

thể hoàn thành được báo cáo khóa luận này

Em xin trân trọng cảm ơn thầy Phan Đình Duy đã tận tình giúp đỡ, định hướng cách

tư duy và cách làm việc khoa học Đó là những góp ý hết sức quý báu không chỉ

trong quá trình thực hiện luận văn này mà còn là hành trang tiếp bước cho em trong

quá trình học tập và lập nghiệp sau này.

Và cuối cùng, xin gửi lời cảm ơn đến gia đình, bạn bè, tập thé lớp KTMT2016,những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập và cuộc sống Mongrằng, chúng ta sẽ mãi mãi gắn bó với nhau

Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người

Trang 5

MỤC LỤC

Chương 1 TỐNG QUAN 2-52 522 2EEEEEEEEE1E21211212121 11111 xe 13

1.1 Nội dung - Ăn TH TH HH Hành ngư 13

1.2 Mục tiÊU ĂẶ ng KH key 15

1.3 Phương pháp thực hiỆn c3 32.11211111 EEkrrrrrree 15

1.4 _ Các nội dung chính và gi6t hạn 5 s11 Eisrerseeereeeree 15

Chương2 CO SỞ LÝ THUYÊT 2 £+E+SE+EE+EE£EE+EEEEEEEeEEerEerkrrkrree 18

2.3.4 Không gian màu HSV - . ch ngư 27

2.3.5 Lọc ảnh số (Filter) & COntOUTS - - 556 +SvEE‡E+EvEEEeEeEerxzxerers 28

2.3.6 Phương pháp xói mòn hình anh (Erosion) -.- - 5s «5s <+++ 30

Chương 3 | PHAN TICH VA THIET KE HE THÓNG - 5+ 31

3.1 CAC KNOP ececcescsscessessesssessessesssssessessessesssessessessessusssessessesssssessessesssesseeseesess 31

3.2 LAP PAP veeeccecessesssessessesseessessessesssessessessessuessessessessusssessessesssssessessessessseeseesess 323.3 Mô tả di chuyển Robot nhện 6 Chan w cecececscescsessesesesssseeseesessesseseesees 35

3.3.1 Nguyên lí thăng bằng -¿ 2¿©2+c22ccExSrkrrrxrrrrerkrerxee 35

Trang 6

3.3.2 Nguyên lí đứỨng - SG nS S3 HH ng rệt 36

3.3.3 Nguyên lítiến tới ©-¿©c++ckeEkeEEEEEEEEEkErkrrrrrrkerkerkee 37

3.3.4 Nguyên lí xoay trái, phảI - . sgk re, 38

3.4 Mạch nguÖn -S2-5222<+EE2EEEEEEEEEE1021211211211211 21.11111111, 39

3.5 co n4 403.6 Tạo App Android kết nối Bluetooth HC-06 -¿-2- 2525: 44

3.7 Linh kiện -© 2E EkSEEEEEEEEEE2112112211221.211 211.1 xe 45Chương 4 CẤU HÌNH VA GIAO TIẾP 2-2-2 2+EE+EE+£EczErrxrrxerkerex 48

4.1 Phan mềm sử dụng - + 2 2+S£+E+E£EEEEEEEEEEEEEEEEE2EEEEEEEEEEEErrer 484.2 Cau hình xung Clock, Timer ¿- 2-5 s ESEEE+EE+EE£E£EerEerkerkrrszrs 514.3 Điều KHIM ee cecceccccsecseessesseesecsscsscessesscssessecsecsecsscsseesecssessesseeseessesseeseesees 534.4 Giao tiếp UART với HO-06 coccceccecccccccccsscsssessesssessessessessesssessessessesseeseesess 54Chương 5 KÉT QUA THUC NGHIỆM -2- 2 +2xc2x+z+rxerxezes 55

5.1 Hoan thành phần khung RoObot - 2- 2 s2 +££+E£+E£+E££EerEerxerxreee 555.2 Mạch PCB và nguồn cho toàn hệ thống 2-2 2+ s+£sz£E+£x+zz 565.3 _ Các di chuyển căn bản - 2 2+2 +E+EEeEEEEEEEEEEE2E12112121 21212 xe, 565.4 Kết nối Bluetooth HCO6 2¿©2¿©5£+2++EEt£E2EEEEEeExerkrrrerrerxerkeee 57

5.5 Phần mềm điều khiển - ¿2© £+E£+EEt2EEEEEESEEEEECEEErrkeerkrrrreee 57

5.6 Giao tiếp giữa Smartphone và STÌM32 - 2 ¿se xecke£xerxerxereee 585.7 Leo bậc thang (đã biết trước kích thước) - 2 2 z+s++x+zx+zx+rxxeee 585.8 _ Nhận diện màu sắc -¿- + +©E++E++EE£EEEEEEEEEEEEEEEErrkrrrkrrkerrees 585.9 Di chuyền tự động theo màu đã chọn từ App điều khiến 59

Chương 6 KÉTLUẬN ©-22222EESEESEEEEEEEEEEEEEEEEkrrkerkrrex 60

Trang 8

DANH MỤC HÌNH

Hình 1.1 Robot nhện 6 chân -«-+©+++EEEketEEEEEEEEEEELEEHHHH Hà 14

Hình 2.1 Các khớp chân của RObOI -«-c<cc+++cxekkeEkttkrekrtrirkrtrirkrirkrrrrrrrkee 18

Hình 2.2 Kit STM32F411 Discovery [ Í-4] e-c-s«sccsxeeresreekeerserrrekrrerrrrrkee 19

Hình 2.3 Sơ đồ thực hiện của Timer [1 5] -++icceceevevvErErrrrrreessvveerrrrrrrrree 19

Hình 2.4 Mô tả quá trình Count Up của Timer [ I] e -s<cccssscscreerxxx 21

Hình 2.5 Điều chế độ rộng xung (PWM) [1 5] - iecceerreeceerrreeerrrrreeee 21Hình 2.6 Khung truyền (frame) tín hiệu UART [16] -ccesrreccee 22

Hình 2.7 Camera Pi V2 [17] s-cscessccs+evrEestkerErEtstterstrsttsttersrtsrkrrsttsrkrrsrtsrtrrsrrsrke 24

Hình 2.8 Hình ảnh được số hóa [18] ccccccsvevvvvvvvvvvEEEESEEEEEEEEEEEEEEttttttterrrrrrrree 24Hình 2.9 Điểm ảnh (Pixel) [1Ñ] e-iieeceerreeccerrreeerrrreerrrrrrerrrrrrrerrrrrrrere 25

Hình 2.10 Độ phân giải [ Í 8] 5<<55+ccEEkkcSkkkEkHH Hà 25

Hình 2.11 Chiều sâu của 1 điểm ảnh RGB [3] -eecccereerrerrrrre 26Hình 2.12 Ảnh xám và ảnh màu RGB Jal 8 | , Š Ất, ccceesrerrsrestsrrrresrsrrsrrsrsrrsrre 26

Hình 2.13 Không gian màu HSV [IO] -©c<ccxesxcekeeritkrrttirtrirkirrrrrrrkes 27

Hình 2.14 Ảnh màu sau khi quét (bên phải) -ccccccrrceeecverrrreesevrrrrrrcee 28

Hình 2.15 Bộ loc Kernel tỉ lệ 1:1 [20|] -.c<-5cccsccrxeeerkeerrrtrkrerrieerrke 29

Hình 2.16 Phương pháp xói mòn Erosion [21] - « -««-cseecseeerserersesrrrserrrke 30

Hình 3.1 Servo MG996R [22] cc 555-SS+ tt HE này 32 Hình 3.2 Khớp chân RObOI s s< xe nh Hà HH Hành 32

Hình 3.3 Khớp nói thân và chân R.ObOI( -ce+crxserkerrrrtrstrrrrrirrrrrrrrrrrrke 33

Hình 3.4 Chân Robot hoàn chỉÍnh «se +sxsrxskkxtrrtetrketkktrrkttkrrrrkrrkerrkrirkerrke 33

Hình 3.5 Ga chân nhện vào tấm dưới thân nhện -e-ccssccserccszeee 34

Hình 3.6 Khung nhện hoàn chỉnh -+:xetskrkrkkkiitEkiriiiiiiiie 34 Hình 3.7 VỊ trí 6 chân đúng va sai của RODOI c cc«eccvsereekreerteerrrtsrirerrertre 35

Hình 3.8 Hai góc tạo bởi khớp C.1 và C.2 -ccccrrkerrrirtrrirrrriiririirrrrirrrirrie 36

Hình 3.9 Cách tiến lên của Robot -:cccceireecvttreeevtrtrererrrrrererrrrrerrrrrrsrrte 37

Hình 3.10 Nguyên lí xoay trái phải «-csccsescekrEktkrrekrtkitkrrrrirrrirkrrrrrrrikes 38

Hình 3.11 PCB đế cắm STM32F411 cccccc++eieeeeeeverrrrrrrrtrrrrerrrrrrrrrrrrrree 39

Trang 9

Hình 3.18 Layout của App điều khiển -cccc-cccccveeerrrrrrrreerrrrrrrrrrrrrrrrrrer 45

Hình 4.1 STM32CubeMX Development Software [4] -c-e.eeersexee 48

Hình 4.2 Atollic TrueSTUDIO Software [5] cccccscereeeerersersrersrrstrrrrrssee 49 Hình 4.3 Pycharm IDE Software [6] ssssessssssssessssessesssecsssesssecsseesssessessnsesseesseesssessseesssessseess 50 Hình 4.4 Android Studio Software [7 ] -e cccsccsxcerseestterstrsttsttersrtsrtrrrtsrtrrsrtsrkrrsrrsree 50

Hình 4.5 Proteus Design Suite Software [Š ] e-ecccceeekereriikririiirrike 51

Hình 4.6 Cấu hình xung clock bằng STM32CubeMX «-ss ccs+ 51Hình 4.7 Độ rộng xung dé điều khiển góc quay Servo [§] -s +- 53

Hình 4.8 Tín hiệu từ STM32 đến Servo vescesssssssssssssssssssssssesssssssssesessssssssssssssesssssesssusssssseesee 54

Trang 10

DANH MỤC BANG

Bảng 3.1 Linh kiện sử dụng47

Bảng 4.1 Sơ đồ kết nối chân Robot và Timer STM32F452

Trang 11

DANH MỤC TU VIET TAT

VCS : Version Control System

IDE : Integrated Development Environment

GPIO : General Purpose Input-Output

UART : Universal Asynchronous Receiver-Transmitter

PWM : Pulse Width Modulation

11

Trang 12

TOM TAT KHÓA LUẬNSản phẩm của khóa luận là một robot nhện 6 chân được tạo nên từ 18 động cơ servokết hợp với một bộ nhận diện màu sắc - đóng vai trò là “một bộ não” giúp robot cóthê tự động di chuyển theo một màu được xác định trước Đề cải thiện cho việc điềukhiển được dé dang hơn và thuận tiện hơn, nhóm cũng cung cấp một ứng dụng điềukhiến dé thay thé cho những ứng dụng sẵn có ở bên ngoài thị trường hiện nay.

Về phần chức năng của robot, chú nhện này có thê đáp ứng được những thao tác dichuyên căn bản và những động tác giải trí khác Không dừng lại ở đó, ngoài việc di

chuyền trên bề mặt bằng phăng, nhóm cũng quyết định nâng cấp việc di chuyên trở

nên tốt hơn bằng cách hỗ trợ cho robot có khả năng trèo bậc thang (ở một chiều caođược nhóm xác định trước) Về mặt cấu trúc của robot nói chung và hệ thống nóiriêng, sản phẩm chính của khóa luận (robot nhện) được chia ra gồm 2 phần: phầnthân của robot và phần nhận diện màu sắc Đối với phần thân, cấu trúc của hệ thống

bao gồm:

+ Khung robot được tạo nên từ kim loại

r5 18 động cơ servo đóng vai trò chính để tạo nên 6 chân của robot

+ Vi điều khién STM32F411 đảm nhiệm quá trình băm xung cho các động cơ

% Khối mạch nguồn, mạch điều khiển và những linh kiện khác

Đối với khối xử lý màu sắc, hệ thống bao gồm các linh kiện như sau:

+ Jetson Nano được nhúng san hệ điều hành Linux hỗ trợ cho quá trình xử lý

ảnh đóng vai trò là “não bộ”

+ Camera đóng vai trò là “mắt nhện” dé Jetson có thé phát hiện được những

mau sắc ở phía trước và phản hồi lai cho người dùng

Về mặt chức năng, robot nhện có thể đáp ứng cụ như sau:

+ Thao tác căn ban: hướng về phía trước hoặc theo hướng ngược lại, xoay trái

hoặc xoay phải và những động tác giải trí khác

+ Tréo bậc thang với chiều cao được xác định trước

+ Tự động nhận diện được màu sắc ở trước mặt, có khả năng di chuyền theo

màu được chỉ định qua ứng dụng di động được cung cấp

12

Trang 13

Chuong 1 TONG QUAN

1.1 Nội dung

Ngày nay, việc sử dụng robot để thay thế con người khám phá các địa hình khó

khăn trong thực tế đang dần được phát triển (Spider robot, lidar robot, ) Dựa trên

bài báo khoa hoc “Study on hexapod robot manipulation using legs” [1] và dự ánArduino Spider Robot (Quadruped) [2], spider robot vẫn còn nhiều hạn chế và

chưa mang tinh tự động hóa, không thé ứng dụng rộng rãi vào những van dé ở thực

tiễn Việc sử dụng robot vào quá trình này đòi hỏi robot phải đáp ứng được việc

điều khién từ xa, loại bỏ hoàn toàn việc điều khién thủ công như trước Không dừng

lại ở đó, dé robot có thé thực hiện những hành động mang tính chất phức tạp đòi hỏi

chúng cần có khả năng xử lý những tình huống một cách tự động, việc điều khiểnthủ công không thé đáp ứng được tính tỉ mi cũng như còn rất nhiều hạn chế tùythuộc vào tình huống sử dụng robot Giả sử, nếu sử dụng robot trong một khônggian mà tại đó ánh sáng còn hạn chế hoặc tín hiệu điều khiển không 6n định thì việccon người quan sát và điều khién robot gần như là không thé Về năng lượng đượccung cấp cho robot ở thời điểm hiện tại vẫn là những viên pin hoặc cao cấp hơn là

pin năng lượng mặt trời có khả năng tự sạc cho bản thân robot, do đó chưa thể đáp

ứng được việc duy trì năng lượng liên tục cho robot Nếu như con người sử dụngrobot vào việc khai thác hay tìm kiếm những nguồn tài nguyên quan trọng thì việccạn kiệt nguồn năng lượng có thé gây nên tình trạng: không thé lay được những tàinguyên đang trong quá trình vận chuyền, thậm chí không thê thu hồi lại robot saukhi sử dụng Tóm lại, đây chính là những hạn chế mang tính chất quyết định đến

thực trạng ở hiện tai.

13

Trang 14

Từ thực trạng trên, nhóm quyết định thực hiện việc nghiên cứu, tìm hiểu và ứngdụng quá trình xử lý ảnh (nhận diện màu sắc từ các vat thé) điều khiến một robot cókhả năng di chuyền linh hoạt một cách tự động ở các bề mặt hiểm trở mà con ngườikhông thể đặt chân đến.

Hiện nay, Robot nhện ở nước ta chỉ dừng lại ở việc điều khiển thông thường [13](tiến, lùi, xoay, đi nhanh, đi chậm, ) bằng Remote cơ Nhóm đã cải tiến robotthêm những tính năng hữu ích giúp cho nó có khả năng tự động đưa ra quyết định dichuyên theo vật thé, hơn thé nữa có còn có thé thu thập dữ liệu của vật thể trongtầm nhìn và đưa dit liệu đó về cho người dùng quản lí Remote cũng được thay thébang phan mềm với giao diện thân thiện hiển thị trên Smartphone đề thuận tiện, tiếtkiệm chi phí và quan trọng tích hợp xử lí anh dé phát triển phan tự động di chuyển

trong không gian.

14

Trang 15

1.2 Mục tiêu

Mục tiêu chung của đê tài là lắp ráp một robot nhện có 6 chân và điêu khiên được

robot nhện di chuyên theo các hướng, leo bậc thang Đồng thời ứng dụng xử lý ảnh

đê xác định màu sắc các vật thê đê tự động điêu khiên robot di chuyên theo các vật

thê mang mau sac được lựa chọn Cu thê đê tài sẽ:

Tìm hiểu quy trình chế tạo một robot nhện 6 chân

Thực nghiệm lắp ráp robot và điều khiển robot di chuyền theo các hướng đã

Sử dung các bộ ha áp và nguồn tổ ong dé xây dựng nguồn điện thích hợp cho

các động cơ và các kit sử dụng trên robot.

Sử dụng kit STM32F411 Discovery làm bộ điều khiển chính chứa chươngtrình nhúng điều khiến các hoạt động di chuyên căn bản của robot

Sử dung kit Jetson Nano và Camera Raspberry Pi V2 8MP phục vụ cho quá

trình nhận diện, xử lý anh và truyền các tín hiệu điều khiển đến bộ điềukhiển chính

Các nội dung chính và giới hạn

Trong đề tài khóa luận này, những nội dung chính mà nhóm thực hiện bao gồm các

hoạt động chính như sau:

+

+

Tìm hiểu, nghiên cứu và lắp ráp hoàn chỉnh robot nhện 6 chân

Hiện thực việc thăng bằng cũng như các hoạt động di chuyển căn bản cho

robot.

15

Trang 16

+ Tích hợp khả năng leo bậc thang cho robot, giúp nâng cao hiệu quả di

chuyển trên các bề mặt khác nhau (với kích thước bậc thang và bề mặt được

Đối với việc lắp ráp hoàn chỉnh robot, nhóm sử dụng bộ khung mà nhà sản xuất

cung cấp với kích thước sẵn có Cấu trúc mỗi chân của robot được tích hợp với 3

động cơ servo giúp cho chuyền động của mỗi chân được linh động và dé dang hơntrong việc thực hiện các thao tác căn bản Vì mỗi động cơ sẽ có một góc quay cụ thểứng với từng động tác nên chúng cần được tính toán, mô phỏng trước khi được lắpvào bộ khung sẵn có Sau khi quá trình lắp ráp servo vào khung hoàn tat, cần tínhtoán và thiết kế cho robot bộ mạch nguồn có thé đáp ứng đủ cho toàn bộ hệ thốngnhằm mang lại tính ồn định cho toàn bộ động cơ (tránh hiện tượng thiếu hụt áp vàdong) Vì tính chất cô định của khung kim loại từ nhà sản xuất (về kích thước cũngnhư khối lượng của robot) nên nó ảnh hưởng đến việc thu nhỏ kích thước của sảnphẩm thực tế

Dé có thé giúp cho robot hoạt động, có kha năng thực hiện được những thaotác di chuyên căn bản, chúng ta cần xây dựng giao tiếp giữa bộ vi điều khiển

STM32F411 cùng với toàn bộ các động cơ như sau:

% Sử dụng ngôn ngữ C, lập trình trên vi điều khiển để thực hiện việc thiết lập

những thông số căn bản cho hệ thống, điều chế xung (PWM) nhằm mục đíchđiều khiển các động cơ, từ đó phối hợp chúng tạo nên những hành động dichuyên căn ban cho robot

% Xác định các tham số cần thiết cho quá trình điều chế xung cho từng động cơ

dé chúng có thé quay đúng góc mong muốn và tạo thành một hoạt động hoàn

chỉnh cho từng chân

16

Trang 17

Những hành động di chuyên của robot sẽ được mô phỏng dựa trên những hoạt động

thực tế của loài nhện Cụ thể, vì một chân của robot gồm 3 servo ở 3 vị trí: trong,giữa và ngoài nên cần tính toán cho từng động cơ dé tạo nên một hanh động cụ thécho 1 chân như: day, kéo, xoay, đây là một trong những nền tang tạo nên hành

động phức tạp như di chuyển hướng về phía trước hoặc về hướng ngược lại, xoay

trái hoặc xoay phải,

Không dừng lại ở đó, hệ thống cũng cần được xây dựng giao tiếp với ứng dụng diđộng (được viết bằng ngôn ngữ Java) nhằm đáp ứng việc điều khiển thủ công cho

robot Ứng dụng này sẽ có các nút điều hướng căn bản, những nút chức năng cũng

như những khu vực hiền thị trang thái của robot trong lúc quá trình điều khiển được

diễn ra.

Với mục tiêu cải thiện việc di chuyên của robot không những dừng lại ở việc dichuyên trên các bề mặt phẳng, nhóm cũng quyết định xây dựng thêm khả năng trèobậc thang (với chiều cao được xác định trước) giúp cho robot có thé đa dụng hơn.Hành động này được dựa theo hành động thực tế và được hiện thực bằng cách kếthợp quá lực đây ở chi sau và lực kéo từ những chi trước giúp cho robot có thể vượt

qua được bậc thang ở hướng trước mặt.

Điều đặc biệt ở robot này chính là quá trình tự động di chuyên theo các loại màu sắc

được lựa chọn từ ứng dụng điện thoại mà nhóm đã cung cấp Việc nhận diện màu

sắc ở robot được hiện thực bang những bước sau:

% Sử dụng ngôn ngữ Python để hiện thực giải thuật trên kit NVIDIA Jetson

% Sử dụng giao thức UART để truyền thông tin màu sắc đã nhận từ Camera

(Jetson) đến STM32F411, sau đó sẽ chuyển tiếp về cho ứng dụng (điện

thoại) hién thị màu sắc đã phát hiện

17

Trang 18

Chương2 CƠ SỞ LÝ THUYET

Chương này sẽ giới thiệu về các cơ sở lý thuyết mà nhóm đã nghiên cứu và pháttriển dựa trên nhiều nguồn kiến thức khác nhau Những nội dung bao gồm : nghiêncứu và hiện thực mã nguồn trên STM32F411, các ngoại vi được áp dụng vào khóa

luận, các nguyên lí di chuyển cho Robot, tìm và nghiên cứu xử lí ảnh ứng dụng

Trước khi đi vào các phan trên, nhóm đã quy ước cách gọi chân của Robot như sau:

Các chân sẽ đánh số theo ngược chiều kim đồng hồ, các khớp sẽ đánh số từ ngoàivào trong theo kí hiệu:

Chân C.K

trong đó: C là thứ tự chân, K là thứ tự khớp của chân đó.

Hình 2.1 Các khớp chân của Robot

18

Trang 19

2.1 Board STM32F411 Discovery

Kit STM32F411 Discovery sử dung chip ARM Cortex M4 + DSP Core, giúp chúng

ta mau chóng tim hiểu và phát triển ứng dụng trên dòng MCU ARM Cortex M4 từ

STM, kit có tích hợp mạch nạp ST-Link/V2, các ngoại vi như cảm biến gia tốc, từtrường, audio, cùng với tài liệu và code mẫu chính hãng rất tích hợp cho người

Trang 20

Timer là một loại ngoại vi được tích hợp trên STM32F4, cung cấp cho người dùngnhiều ứng dụng như xác định chính xác một khoảng thời gian, đo - đếm xung đầu

vào, điều khiến dạng sóng đầu ra, băm xung PWM

Thành phần chính của timer chính là bộ đếm — counter (CNT), với các ngưỡng trên

được thiết lập bởi thanh ghi Auto Reload (ARR) Counter có thể đếm lên lên hoặc

đếm xuống Clock đưa vào bộ đếm có thé được chia bởi một bộ chia tần —

Prescaler.

Người dùng có thể thực hiện các lệnh đọc, ghi vào các thanh ghi CNT, ARR và

PSC dé cấu hình cho khối cơ sở của mỗi bộ Timer

+ Counter Register (TIMx_CNT): Khi hoạt động, thanh ghi này tăng hoặc

giảm giá trị theo mỗi xung clock đầu vào Tùy vào bộ timer ma counter này

có thể là 16bit hoặc 32bit

+ Prescaler Register (TIMx_PSC): Giá trị của thanh ghi bộ chia tần (16bit)

cho phép người dùng cấu hình chia tần số đầu vào (CK_PSC) cho bắt kì giátrị nào từ [1- 65536] Sử dụng kết hợp bộ chia tan của timer và của RCC giúpchúng ta có thể thay đổi được thời gian của mỗi lần CNT thực hiện đếm,giúp tạo ra được những khoảng thời gian, điều chế được độ rộng xung phùhợp với nhu cầu

+ Auto-Reload Register (TIMx_ARR): Giá trị của ARR được người dùng xác

định sẵn khi cài đặt bộ timer, làm cơ sở cho CNT thực hiện nạp lại giá trị

đếm mỗi khi tràn (overflow khi đếm lên — CNT vượt giá tri ARR, underflowkhi đếm xuống — CNT bé hơn 0) Tùy vào bộ timer mà counter này có thé là

16bit hoặc 32bit.

20

Trang 21

Timerclock = CK_CNT ị : [LI | IU] | | | | PU

Counter register 31 BEECH 01 |02 03 {04 {05 | 06 | o7 |

Counter overflow l

Update interrupt flag (UIF) j

Hình 2.4 Mô tả quá trình Count Up của Timer [15]

Mỗi bộ timer có 4 kênh Capture/Compare độc lập, mỗi kênh này phối hợp

Time-base unit có thé tạo ra xung PWM được xác định bởi giá tri của thanh ghi ARR, va

chu kỳ nhiệm vụ (Duty cycle) được xác định bởi giá trị thanh ghi CCR.

21

Trang 22

2.2.2 UART

UART - Universal asynchronous receiver transmitter là bộ truyền nhận nối tiếp bat

đồng bộ UART là một ngoại vi cơ bản trong chip STM32F4 thường được dùngtrong các quá trình giao tiếp với các loại module như: Bluetooth, Wifi

1 data frame

-Start Parity| Stop

DO | D1 | D2 | D3 | D4 | DS | D6 | D7 | pụ

Hình 2.6 Khung truyền (frame) tín hiệu UART [16]

Một số khái niệm cơ bản của UART :

% Baudrate: Số bit truyền được trong 1s, ở truyền nhận không đồng bộ thì ở

các bên truyền và nhận phải thống nhất Baudrate Các thông số tốc độ

Baudrate thường hay sử dung dé giao tiếp với máy tính là

600, 1200,2400,4800,9600, 14400, 19200,38400,56000,57600, 115200.

+ Frame: Ngoài việc giống nhau của tốc độ baud 2 thiết bị truyền nhận thi

khung truyền của bên cũng được cấu hình giống nhau Khung truyền quy

định số bit trong mỗi lần truyền, bit bắt đầu “Start bit”, các bit kết thúc (Stopbit), bit kiêm tra tính chan lẻ (Parity), ngoài ra số bit quy định trong một gói

dữ liệu cũng được quy định bởi khung truyền Có thé thấy, khung truyềnđóng một vai trò rất quan trọng trong việc truyền thành công dữ liệu

+ Start bit: Bit đầu tiên được truyền trong một frame, bit này có chức năng

báo cho bên nhận rằng sắp có một gói dữ liệu truyền đến Đường truyền

UART luôn ở trạng thái cao mức “1” cho đến khi chip muốn truyền dữ liệu

đi thì nó gởi bit start bằng cách kéo xuống mức “0” Như vậy start bit giá trịđiện áp 0V và phải bắt buộc có bit start trong khung truyền

* Data: Data hay dữ liệu là thông tin mà chúng ta nhận được trong quá trình

truyền và nhận Data trong STM32 có quy định khung truyền là 8bit hoặc9bit Trong quá trình truyền UART, bit có trọng số thấp nhất (LSB — least

22

Trang 23

significant bit — bên phải) sẽ được truyền trước và cuối cùng là bit có ảnh

hưởng cao nhất (MSB — most significant bit — bên trái)

% Parity bit: Parity dùng dé kiểm tra dữ liệu truyền có đúng hay không Có 2

loại Parity đó là Parity chăn (even parity) và parity lẽ (odd parity) Parity

chan nghĩa là số bit 1 trong trong data truyền cùng với bit Parity luôn là sốchan, ngược lại nếu Parity lẽ nghĩa là số bit 1 trong data truyền cùng với bitParity luôn là số lẽ Bit Parity không phải là bit bắt buộc và vì thế chúng ta

có thể loại bỏ bit này ra khỏi khung truyền

% Stop bits: Stop bits là một bit báo cáo dé cho bộ truyền/nhận biết được gói

dữ liệu đã được gởi xong Stop bits là bit bắt buộc phải có trong khungtruyền Stop bits có thé là Ibit, 1.5bit, 2bit, 0.5bit tùy thuộc vào ứng dụng

UART của người sử dụng.

2.2.3 Camera

Camera Raspberry Pi V2 8MP là phiên bản Camera Module dành cho Raspberry Pi

mới nhất sử dung cảm biến ảnh IMX219 8-megapixel từ Sony thay cho cảm biến cũ

là OV5647 Với cảm biến IMX219 8-megapixel từ Sony, Camera Module choRaspberry Pi đã có được sự nâng cấp vượt trội về cả chất lượng hình ảnh, video

cũng như độ bên

Camera Raspberry Pi V2 8MP có thé sử dụng với Raspberry Pi dé chụp hình, quayphim với chất lượng HD 1080p30, 720p60 hoặc VGA90, cách sử dụng cũng nhưlập trình với Camera Module trên Raspberry Pi cũng rat dễ dàng, chỉ cần cắm vào

công Camera trên Raspberry Pi va Config 1 chút là có thể dùng được.

Camera Raspberry Pi V2 8MP có thé sử dụng tương thích với NVIDIA Jetson Nano

có rất nhiều bộ thư viện được cộng đồng phát triển trên Python giúp cho việc tim

hiểu và sử dung trở nên dé dàng hơn rất nhiều.

23

Trang 24

Một hình ảnh có thé được định nghĩa là hàm hai chiều, f (x, y), trong đó x và y là

tọa độ không gian (mặt phẳng) và biên độ của f tại bất kỳ cặp tọa độ (x, y) nào được

gọi là cường độ hoặc mức độ màu xám của hình ảnh tại điểm đó Khi x, y và các giátrị cường độ của f đều là các đại lượng hữu hạn, rời rạc, chúng ta gọi hình ảnh là

Trang 25

2.3.2 Điểm ảnh (pixel) & độ phân giải

Điểm ảnh chính là 1 phan tử tại 1 điểm trong ma trận hàng x và cột y hữu hạn các

phan tử của I hình anh

Digital Image

Real imags (an approximation)

Hinh 2.9 Diém anh (Pixel) [18]

Độ phân giải là tập hợp 1 sô lượng Pixel nhât định vào 1 đơn vi diện tích nhat định.

Chang hạn , độ phân giải 8x8 thì sẽ có 8 hàng va 8 cột, tong cộng có 8x8= 64

Trang 26

2.3.3 Giá trị & chiều sâu

Các định dạng phổ biển của ảnh số bao gồm:

3# 1 giá trị trên diém/pixel (B&W hay Grayscale)

* 3 giá trị trên diém/pixel (Red, Green, Blue)

+ Đi sâu vào RGB, mỗi điểm ảnh sẽ có 3 giá trị là Red, Green và Blue Sự kết

hợp của 3 màu này trên 1 điêm ảnh sẽ tạo nên rat nhiêu màu khác nhau.

Blue component Image Plane

Pixel,

[255, 0, 255]

Green component

image Plane

Red component image Plane

Pixel of an RGB image are formed from the corresponding pixel of the three component images

Hình 2.11 Chiều sâu của 1 điểm anh RGB [3]

26

Trang 27

2.3.4 Không gian màu HSV

Dé có thé nhận diện và phân tích màu sắc, thì điều đầu tiên ta phải làm đó là chọn ramàu sắc cần xác định và nhóm đã tìm ra rất nhiều không gian màu khác nhau chắng

hạn như : RGB (Red-Green-Blue), CMYK (cyan-magenta-yellow-key), HSB

(Hue-Saturation-Brightness) va HSV (Hue-Saturation- Value) Cuối cùng, nhóm đã đưa raquyết định đó là sẽ ứng dụng hệ mau HSV, vì nó đơn giản và dễ tiếp cận Khônggian màu này dùng dé xử lý màu sắc rất thuận tiện, vì mỗi màu sẽ có 1 giá trị năm

trong H[0;360], còn V[0;100] và S[0;100] chỉ thị độ sáng và độ bão hoà của màu.

Hệ màu này được ứng dụng đề theo dõi đối tượng theo màu sắc:

+ H ( Hue ) : Vùng màu là bao gồm tat cả các màu trong hệ màu, mỗi mau sẽ chiếm một cung tròn nhất định trong không gian màu này Chương sau sẽ chỉ ra

mau sắc cụ thé với khoảng giá trị Hue cụ thé

+ S (Saturation) : Độ bão hòa mau sắc thê hiện độ thuần khiết của màu sắc

Khi có độ bão hòa cao, màu sẽ sạch và rực rỡ Khi có độ bão hòa thấp, màu sẽ đục

và xin Độ bão hòa thay đổi từ 0% (xám) đến 100%

+ V (Value) : Giá trị độ sáng của một màu sắc mô tả nó sáng hay tối như thế

nao Độ sáng thay đổi từ 0% đến 100%

27

Trang 28

2.3.5 Lọc ảnh số (Filter) & Contours

Sau khi đã có khoảng màu từ không gian màu ở phan 2.4.4 Ta tiến hành lọc hình

ảnh bằng phương pháp Filter Phương pháp nay sử dụng 1 ma trận loc (Kernel) déquét toàn bộ hình ảnh và thu về 1 hình anh mới tùy theo mục đích lọc là gì, trongngữ cảnh của nhóm đó là lọc hình ảnh đã thu được về 1 màu nhất định Tùy theo

mục đích mà người ta chọn ra các Kernel có kích thước khác nhau (3x3, 5x5,

9x9 ) Tức là khi sử dụng một Kernel có không gian màu đỏ, thì hình ảnh thu vềsau khi quét sẽ chỉ còn lại những điểm ảnh có chứa màu đỏ, những điểm ảnh không

chứa màu đỏ sẽ bị biến thành màu đen Băng cách đó chúng ta có thể nhận dạng

mau sắc, cụ thé thuật toán sẽ được trình bày ở chương sau

Ngoài ra, phương pháp này còn có thể tỉ lệ hình ảnh, nghĩa là hình ảnh sau khi quétbằng Kernel có thể lớn hơn, nhỏ hơn hoặc bằng ảnh ban đầu Nhóm đã sử dụng tỉ lệbằng nhau là bởi vì nhóm đã sử dụng một camera 8MP có khả năng thu video có độphân giải Full HD với 30 khung hình trên giây và mặt khác là để cho việc xử lí ảnh

trở nên dễ dàng hơn.

Hinh 2.14 Anh mau sau khi quét (bén phai)

28

Trang 29

Sau khi đã có đầy đủ lý thuyết về quá trình lọc ảnh màu bằng Kernel, nhóm đãquyết định tìm hiểu va áp dung mô-đun Contours từ OpenCV, 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 Mô-đunnay sử dụng phương pháp lọc ảnh số (filter) dé lọc một giá trị màu cụ thé hoặc cùng

mật độ màu từ một tam hình Sau đó, tập hợp những điểm ảnh gần nhau (liên tục)

dé tạo thành một đường cong (boundary), và không có khoảng hở trong đường cong

đó Ngoài ra còn có các tính năng bé sung như : vẽ đường bao (hình chữ nhật, cham

ở bốn góc, hình tròn, ), tính diện tích Contours từ thư viện OpenCV là một công

cụ hữu ích được dùng dé phan tich hinh dang đối tượng, phát hiện đối tượng, nhận

dạng đối tượng Các giải thuật cho việc xử lí ảnh và phát hiện đối tượng sẽ được

trình bày cụ thể ở chương sau

29

Trang 30

2.3.6 Phương pháp xói mòn hình ảnh (Erosion)

Như kết quả hình 2.18, ta có thé thấy còn rất nhiều điểm ảnh nhỏ rời rac, tạo sựkhông liền mạch, và xuất hiện những hình vuông nhỏ ở hình bên trái Dé loại bỏ các

điểm ảnh rời rạc, ta bắt buộc phải sử dụng phương pháp xói mòn điểm ảnh rời rạc

(Erosion) Phương pháp nảy cũng đến từ thư viện OpenCV.

Mục đích của phương pháp này sẽ giúp:

* Loại bỏ những pixel nhiễu cô lập.

% Loại bỏ những pixel nhiễu xung quanh đối tượng giúp cho phan viền (cạnh)

của đối tượng trở nên mịn hơn

* Loại bỏ lớp viền (cạnh) của đối tượng giúp đối tượng trở nên nhỏ hơn và đặt

những pixel viền đó trở thành lớp nền của đối tượng

% Áp dụng dé tính diện tích của đối tượng bằng cách tinh tổng tất cả các điểm

ảnh đã cấu thành nên vật thé

Như kết qua dat được ở hình 2.20 , ta có thé thấy các điểm rời rac đã bị xóa, chỉ

còn lại đối tượng cụ thê như hình bên trái Bước này hết sức quan trọng trong quátrình phát triển thuật toán xử lí ảnh để có thể phát hiện vật thể

30

Trang 31

Chương3 PHAN TÍCH VÀ THIẾT KE HE THONG

Nội dung của chương này gồm 3 phần chính: cấu tạo hệ thống robot, quá trình nhậndiện màu sắc và quá trình xây dựng các thao tác căn bản cho robot Phần đầu tiêngiúp đọc giả hiểu rõ hơn về cấu trúc của hệ thống robot, cách tính toán và xây dựngmạch nguồn nhằm đáp ứng nguồn năng lượng én định cho nhiều động cơ Nhữngphan còn lại sẽ trình bày cụ thé lần lượt các giải thuật mà nhóm đã áp dụng nhằm

xây dựng nên những động tác căn ban cho việc điều khién

cơ RC Servo MG996 có lực kéo mạnh, các khớp và bánh răng được làm hoàn toàn

bang kim loại nên có độ bền cao, động cơ được tích hợp sẵn driver điều khiển động

cơ bên trong theo cơ chế phát xung - quay góc nên rat dễ sử dụng MG996 có trọnglượng vô cùng nhẹ 55g Mô men xoắn cực mạnh 9.4kg/cm tại 4.8V Tốc độ xoaycủa bánh răng là 0.17 giây cho một cung tròn 60 độ Đầu vào điện áp cũng vô cùnglinh hoạt từ 4.8V cho đến 7.2V Vì mô men xoắn khá cao nên là dòng diện tiêu thụcũng không ít, từ 500mA đến 900mA (dòng tối đa có thể lên đến 2A) Tiếp đến lànhiệt độ hoạt động lúc ôn định là từ 0 đến 55 độ C

Robot mà nhóm phát triển yêu cầu 6 chân, mỗi chân có 3 động cơ Servo, tổng cộng

có 18 động cơ Robot yêu cầu 1 nguồn điện có thé lên đến 12A nếu tải nặng, vì vậy

dé đảm bảo nguồn cung cấp 6n định và an toàn cho robot, nhóm đã sử dụng nguồn

tổ ong 12V-20A và thiết kế một mạch điện tử riêng (sẽ có bản vẽ chi tiết ở phần

3.3) để có thể vừa vặn với khung của robot nhện Như vậy, các linh kiện cần thiết

dé tạo ra hình dáng robot đã đầy đủ, phan tiếp theo sẽ tiến hành lắp ráp và hoàn

thiện robot ở mức độ tạo hình.

31

Ngày đăng: 02/10/2024, 04:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w