Tải bản đầy đủ (.doc) (86 trang)

Nghiên cứu, thiết kế, chế tạo robot di động điều khiển bằng công nghệ TET

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.42 MB, 86 trang )

CHƯƠNG 1 GIỚI THIỆU CHUNG
1.1

Giới thiệu chung
Chúng ta không thể phủ nhận rằng mắt là cơ quan có cấu tạo tinh vi nhất của con

người. Nó lưu giữ mọi hình ảnh và gửi về não bộ để xử lý thông tin.
Mắt gồm có nhãn cầu, dây thần kinh và những bộ phận phụ thuộc như mí mắt,
lông mi, các cơ mắt, các gân mạc, tuyến lệ và màng tiếp hợp.
Nhãn cầu là phần chính yếu nhất, thường được so sánh với chiếc máy ảnh vì đặc
tính chính xác quang học của nó.
Nhãn cầu gồm 3 lớp màng tên gọi là:
- Màng ngoài gồm củng mạc và phía trước biến đổi thành giác mạc.
- Màng giữa là màng bồ đào, thân bè và mạch mạc, chứa nhiều mạch máu, phía
trước dày lên thành cơ thể mi và mống mắt.
- Màng trong là võng mạc, chứa các tế bào nhậy cảm ánh sáng là tế bào gậy và tế
bào nón.
Công nghệ “TET” (Tracking eye technology) là công nghệ theo dõi chuyển động
của mắt, sử dụng máy tính để xác định vị trí của mống mắt ( iris). Từ đó giúp chúng ta
có thể điều khiển được các thiết bị bằng máy tính. Công nghệ điều khiển bằng mắt vẫn
còn rất mới mẻ tại Việt Nam. chúng ta chỉ biết công nghệ đó qua những chiếc điện
thoại smatphone với những tiện ích như cuộn trang, dừng video...Dựa trên công nghệ
đó nhóm đã phát triển đề tài: “Nghiên cứu, thiết kế, chế tạo robot di động điều khiển
bằng công nghệ TET”. Nhiệm vụ cụ thể của nhóm là thiết kế chế tạo một mô hình
robot dưới sự điều khiển trực tiếp của mắt người. Robot có khả năng di chuyển linh
hoạt.
1.2

Các vấn đề đặt ra
Với đề tài : “Nghiên cứu, thiết kế, chế tạo robot di động điều khiển bằng công


nghệ TET “ việc thiết kế và chế tạo nhóm có một số vấn đề cần giải quyết:
- Trong việc thiết kế và chế tạo hệ thống cơ khí cho robot phải chính xác đảm
bảo tính thẩm mỹ, sự chắc chắn và hoạt động ổn định của robot.
- Vấn đề giám sát và xử lý ảnh: trên thị trường có nhiều loại webcam ( hay
camera) với giá cả, độ tin cậy, độ phân giải, tốc độ xử lý… khác nhau. Việc chọn lựa

1


cũng là vấn đề khó khăn. Việc thiết kế webcam cũng là một vấn đề khó khăn trong
việc xử lý: webcam thiết kế phải nhỏ gọn, linh động, phù hợp với điều kiện của đề tài.
- Việc xây dựng thuật toán và phương pháp điều khiển gặp nhiều khó khăn:
Thuật toán xử lý ảnh vừa phải dò tìm chính xác, giảm được nhiễu trong quá trình xử lý
và tính toán xác xuất được tín hiệu điều khiển, giảm độ trễ đảm bảo tốc độ đáp ứng và
phải dự phòng được các lỗi xảy ra trong quá trình hoạt động.
- Lập trình điều khiển và thu phát dữ liệu: Xây dựng thuật toán điều khiển động
cơ DC sử dụng vi điều khiển PIC 16F877A. Xây dựng thuật toán thực hiện việc thu
phát tín hiệu không dây sử dụng module NRF24L01 2.4Ghz với vi điều khiển PIC
16F877A.
1.3

Phương pháp nghiên cứu
Điều khiển bằng phương pháp truyền tín hiệu không dây là một phương pháp

điều khiển tiên tiến ngày càng được ứng dụng nhiều và trên thị trường cũng có nhiều
sản phẩm thông minh áp dụng phương pháp truyền tin này. Điều khiển robot tự động
đã có trên thế giới nhưng vẫn còn mới lạ tại việt nam. Với việc nghiên cứu đồ án này
sẽ mở ra nhiều điều mới lạ trong lĩnh vực điều khiển robot bằng xử lý ảnh. Từ đó áp
dụng thiết kế trong giới hạn đề tài.
- Kết hợp giữa việc thiết kế tuần tự và đồng thời: Cụ thể là bước đầu tiên xây

dựng một mô hình chứa đầy đủ các thành phần dự định sẽ có trong thiết kế (xây dựng
khối điều khiển, khối nguồn, hệ thống cơ khí, khối xử lí ảnh, thuật toán điều khiển
chung toàn hệ thống) qua đó có cái nhìn tổng quan về hệ thống chung và xác định
thông số cơ bản. Tiếp theo dựa vào bước đầu tiên nhóm tiến tới xây dựng chi tiết từng
khối đối với mỗi khối lại tiến hành xây dựng thuật toán trước khi đi vào phần lập trình
dựa trên nguyên tắc phải phù hợp với khả năng của phần cứng đã xây dựng. Sau khi đã
hoàn chỉnh từng khối tiến hành ghép nối các khối với nhau để đi tới bước tiếp theo.
- Quá trình thử nghiệm: Nhóm dựa trên kết quả thực tế để đánh giá, so sánh rồi
đưa ra kết quả hiệu chỉnh và tìm ra phương pháp tối ưu nhất.
1.4

Phạm vi và giới hạn đề tài
Do thời gian, tài chính và tầm hiểu biết nhóm chỉ chế tạo mô hình robot với

những đặc điểm sau:
- Robot sử dụng trong đề tài là mô hình xe đơn giản với vật liệu là inox.
- Sử dụng module thu phát sóng 2.4GHz có khả năng truyền phát sóng không
dây trong bán kính <100m.
- Sử dụng vi điều khiển Pic 16f877a trong việc điều khiển.
- Một webcam gắn với máy tính điều khiển trực tiếp robot.

2


- Đối tượng xử lý là mắt.
- Robot có khả năng di chuyển linh hoạt trên địa hình phẳng không có phản hồi
tốc độ.
- Lập trình truyền thông nối tiếp RS232.
- Giao diện điều khiển thông qua phần mềm visual studio 2010 .


3


CHƯƠNG 2 TỔNG QUAN ROBOT DI ĐỘNG ĐIỀU KHIỂN BẰNG
MẮT
2.1

Lịch sử phát triển

Năm 1936, bác sỹ nhãn khoa Frank Burch đã đề xuất khái niệm nhận dạng bằng
mống mắt. Nhưng phải mãi đến năm 1985, hai giáo sư Leonard Florn (Đại học New
York) và Aran Safir (Đại học Connecticut) mới được cấp bằng sáng chế liên quan đến
“Công nghệ nhận diện mống mắt”. Ngay sau đó, tiến sỹ John Daugman (Đại học
Harvard) đã được thuê để viết thuật toán nhận diện mống mắt. Với sự nỗ lực của cả ba,
thử nghiệm nhận diện mống mắt được thực hiện đã thành công tốt đẹp.
Trong khi đó, ý tưởng về công nghệ nhận diện võng mạc đã được đưa ra trên một cuốn
tạp chí Y học vào năm 1935. Khi công nghệ bắt kịp thời đại, ý tưởng này mới có cơ
hội được triển khai và đến năm 1976, tập đoàn EyeDentify mới bắt đầu phát triển công
nghệ này. Hiện tại, các bằng sáng chế liên quan đến hai công nghệ này đã được cấp
cho nhiều công ty, tập đoàn với mục đích thương mại hóa.
Hiện nay tại các trường đại học trên thế giới, công nghệ xử lý mắt đã được phát
triển và mở rộng rất nhiều. Nhiều phương pháp đã được áp dụng, nhiều ý tưởng đã
được phát triển nhờ sự ra đời của công nghệ này. Chúng ta có thể nhắc đến sản phẩm
của hãng “tobii technology” với những chiếc máy tính có thể điều khiển bằng mắt,
cùng với điều đó là những trò chơi giành riêng cho công nghệ thú vị này. Ngoài ra
chúng ta không thể không nhắc đến sản phẩm điện thoại của hãng samsung
(SamSungGalaxy S3), chúng ta có thể cuộn thanh trượt, dừng video, phóng to nhỏ
màn hình bằng chuyển động của mắt.
Chúng ta có thể nói rằng công nghệ này thật sự rất thú vị và có khả năng phát
triển rất rộng. Sẽ còn rất nhiều ứng dụng nữa chúng ta có thể nói đến khi nhắc đến

công nghệ này.

4


Hình 2.1 Máy tính của hãng tobii technology được điều khiển bằng mắt

Hình 2.2 Công nghệ “SideWays” của trường đại học Lancaster

Hình 2.3 Cảm biến cử chỉ mắt của Samsung galaxy S5

5


2.2

Tổng quan về xử lý ảnh

2.2.1 Giới thiệu về hệ thống xử lý ảnh
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một nghành
khoa học mới mẻ so với nghành khoa học khác nhưng tốc độ phất triển rất nhanh, kích
thích các trung tâm nghiên cứu ứng dụng, đặc biệt là máy tính chuyên dụng cho nó.
Ta xét các bước trong hệ thống xử lý ảnh số. Đầu tiên ảnh từ thế giới bên ngoài
được thu nhận qua các thiết bị thu ảnh như camera, máy chụp ảnh. Hình dưới đây mô
tả các bước quan trọng trong xử lý ảnh:

Thu
nhận

Tiền xử

lý ảnh

Phân
đoạn ảnh

Biểu
diễn

Nhận dạng và
nội suy


Cơ sở tri thức

Hình 2.4 Các bước cơ bản trong xử lý ảnh
a. Quá trình thu nhận ảnh:
- Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua
camera là ảnh tương tự, cũng có loại camera đã số hoá (như loại CCD – Change
Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh. Camera
thường dùng là loại quét dòng ; ảnh tạo ra có dạng hai chiều. Chất lượng một ảnh thu
nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh) .
- Cảm biến: Biến đổi năng lượng quang học thành năng lượng điện (lấy mẫu).
Sử dụng bộ cảm biến hoặc máy quét để biến tín hiệu quang của ảnh thành tín hiệu điện
liên tục. Máy quét sẽ quét theo chiều ngang để tạo ra tín hiệu điện của ảnh kết quả cho
ra tín hiệu điện hai chiều f(x, y) liên tục.
b. Quá trình tiền xử lý ảnh: Do chất lượng hay đặc tính của thiết bị thu hình ảnh mà độ
tương phản, độ sáng, nhiễu có thể bị thay đổi. Quá trình tiền xử lý có tác dụng nâng
cao chất lượng, giảm nhiễu của ảnh.

6



c. Phân đoạn ảnh: Đây là quá trình khoanh vùng các vùng cần nhận biết nằm trên ảnh
(nhận biết biên của ảnh). Biên là vấn đề quan trọng trong trích chọn đặc điểm nhằm
tiến tới hiểu ảnh. Cho đến nay chưa có định nghĩa chính xác về biên, trong mỗi ứng
dụng người ta đưa ra các độ đo khác nhau về biên, một trong các độ đo đó là độ đo về
sự thay đổi đột ngột về cấp xám. Ví dụ: Đối với ảnh đen trắng, một điểm được gọi là
điểm biên nếu nó là điểm đen có ít nhất một điểm trắng bên cạnh. Tập hợp các điểm
biên tạo nên biên hay đường bao của đối tượng. Xuất phát từ cơ sở này người ta
thường sử dụng hai phương pháp phát hiện biên cơ bản sau:
- Phát hiện biên trực tiếp: Phương pháp này làm nổi biên dựa vào sự biến thiên
mức xám của ảnh. Kỹ thuật chủ yếu dùng để phát hiện biên ở đây là dựa vào sự biến
đổi cấp xám theo hướng. Cách tiếp cận theo đạo hàm bậc nhất của ảnh dựa trên kỹ
thuật Gradient, nếu lấy đạo hàm bậc hai của ảnh dựa trên biến đổi gia ta có kỹ thuật
Laplace.
- Phát hiện biên gián tiếp: Ảnh số là một mảng số thực 2 chiều (I ij) có kích thước
(M×N), trong đó mỗi phần tử Iij(i = 1,...,M; j = 1,...,N) biểu thị mức xám của ảnh tại (i,
j) tương ứng. Ảnh được gọi là ảnh nhị phân nếu các giá trị Iij chỉ nhận giá trị 0 hoặc 1.
Ở đây ta chỉ xét tới ảnh nhị phân vì ảnh bất kỳ có thể đưa về dạng nhị phân bằng kỹ
thuật phân ngưỡng. Ta ký hiệu D là tập các điểm vùng (điểm đen) và T là tập các điểm
nền (điểm trắng). Giả sử (i, j) là một điểm ảnh, các điểm 4-láng giềng là các điểm kề
trên, dưới, trái, phải của (i, j):
N4 (i, j) = {(i’, j’) : |i - i’| + |j - j’| = 1}
Những điểm 8-láng giềng gồm:
N8 (i, j) = {(i’, j’) : max(|i - i’|, | j- j’|) =1}.
Trong hình 2 biểu diễn ma trận 8 láng giềng kề nhau, các điểm P0, P2, P4, P6 là
các điểm 4-láng giềng của điểm P, còn các điểm P0, P1, P2, P3, P4, P5, P6, P7 là các
điểm 8-láng giềng của P.
P3


P2

P1

P4

P

P0

P5

P6

P7

Hình 2.5 Ma trận 8 điểm ảnh liền kề nhau

7


Hai điểm Ps, Pe ∈ E, E ⊆ D hoặc T được gọi là 8-liên thông (hoặc 4- liên thông)
trong E nếu tồn tại tập các điểm được gọi là đường đi (io,jo)...(in, jn) sao cho (io, jo)=
Ps, (in, jn)= Pe, (ir, jr) ∈ E và (ir, jr) là 8-liên thông (hoặc 4-liên thông tương ứng) của
(ir-1, jr-1) với r = 1,2,...,n. Quan hệ k-liên thông trong E (k=4,8) là một quan hệ phản
xạ, đối xứng và bắc cầu. Bởi vậy đó là một quan hệ tương đương. Mỗi lớp được gọi là
một thành phần k-liên thông của ảnh. Về sau ta sẽ gọi mỗi thành phần k-liên thông của
ảnh là một đối tượng ảnh.Sau khi đã xây dựng được biên của ảnh ta tiến hành bước
tiếp theo là phân vùng của ảnh. Một số phương pháp phân vùng ảnh
- Phân vùng ảnh theo ngưỡng biên độ: Các đặc tính đơn giản, cần thiết nhất của

ảnh là biên độ và các tính chất vật lý như độ tương phản, độ truyền sáng, màu sắc hoặc
đáp ứng phổ. Như vậy, có thể dùng ngưỡng biên độ để phân vùng khi biên độ đủ lớn
đặc trưng cho ảnh. Kỹ thuật phân ngưỡng theo biên độ rất có lợi đối với ảnh nhị phân
như văn bản in, đồ họa, ảnh màu hay ảnh X-quang.
- Phân vùng ảnh theo miền đồng nhất: Kỹ thuật phân vùng ảnh thành các miền
đồng nhất dựa vào các tính chất quan trọng nào đó của miền ảnh. Việc lựa chọn các
tính chất của miền sẽ xác định tiêu chuẩn phân vùng. Tính đồng nhất của một miền
ảnh là điểm chủ yếu xác định tính hiệu quả của việc phân vùng. Các tiêu chuẩn hay
được dùng là sự thuần nhất về mức xám, màu sắc đối với ảnh màu, kết cấu sợi và
chuyển động. Một số phương pháp của kỹ thuật phân vùng này:
+ Phương pháp tách cây tứ phân: Về nguyên tắc, phương pháp này kiểm tra
tính đúng đắn của tiêu chuẩn đề ra một cách tổng thể trên miền lớn của ảnh. Nếu tiêu
chuẩn được thỏa mãn, việc phân đoạn coi như kết thúc. Trong trường hợp ngược lại,
chia miền đang xét thành 4 miền nhỏ hơn. Với mỗi miền nhỏ, áp dụng một cách đệ
quy phương pháp trên cho đến khi tất cả các miền đều thỏa mãn điều kiện. Tiêu chuẩn
xét miền đồng nhất ở đây có thể dựa vào mức xám. Ngoài ra, có thể dựa vào độ lệch
chuẩn hay độ chênh giữa giá trị mức xám lớn nhất và giá trị mức xám nhỏ nhất. Giả sử
Max và Min là giá trị mức xám lớn nhất và nhỏ nhất trong miền đang xét. Nếu :
|Max – Min| < T (ngưỡng)
Ta coi miền đang xét là đồng nhất. Trường hợp ngược lại, miền đang xét
không là miền đồng nhất và sẽ được chia làm bốn phần. Giá trị trung bình được tính
bởi:
Tổng giá trị mức xám / tổng số điểm ảnh trong vùng.
+ Phương pháp cục bộ: Ý tưởng của phương pháp là xét ảnh từ các miền nhỏ
nhất rồi nối chúng lại nếu thỏa mãn tiêu chuẩn để được một miền đồng nhất lớn hơn.

8


Tiếp tục với các miền thu được cho đến khi không thể nối thêm được nữa. Số miền

còn lại cho ta kết quả phân đoạn. Như vậy, miền nhỏ nhất của bước xuất phát là điểm
ảnh. Phương pháp này hoàn toàn ngược với phương pháp tách. Song điều quan trọng ở
đây là nguyên lý nối hai vùng. Việc nối hai vùng được thực hiện theo nguyên tắc hai
vùng phải đáp ứng tiêu chuẩn, thí dụ như cùng màu hay cùng mức xám, hai vùng phải
kế cận nhau.
+ Khái niệm kế cận: trong xử lý ảnh, người ta dùng khái niệm liên thông để
xác định tính chất kế cận. Có hai khái niệm về liên thông là 4 liên thông và 8 liên
thông. Với 4 liên thông một điểm ảnh I (x, y) sẽ có 4 kế cận theo 2 hướng x và y ;
trong khi đó với 8 liên thông, điểm I (x, y) sẽ có 4 liên thông theo 2 hướng x, y và 4
liên thông khác theo hướng chéo 45 độ (hình 3).

Hình 2.6 Mô hình 4 liên thông và 8 liên thông điểm ảnh
d. Biểu diễn ảnh: Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã
phân đoạn) cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này
thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính
chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách
các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sởđể phân biệt
lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được. Ví dụ: trong nhận
dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân
biệt ký tự này với ký tự khác.
e. Nhận dạng và nội suy ảnh: Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này
thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước.
Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt chữ số và nét
gạch ngang trên phong bì thư có thểđược nội suy thành mã điện thoại. Có nhiều cách
phân loai ảnh khác nhau về ảnh.
f. Cơ sở tri thức (Knowledge Base) :Như đã nói ở trên, ảnh là một đối tượng khá phức
tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú
kéo theo nhiễu. Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các
phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy


9


trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý đó, nhiều
khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người. Vì vậy, ở đây các cơ
sở tri thức được phát huy.
2.2.2 Những vấn đề cơ bản trong xử lý ảnh
a. Điểm ảnh (Picture Element):
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng. Để xử lý
bằng máy tính (số), ảnh cần phải được số hoá. Số hoá ảnh là sự biến đổi gần đúng một
ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng
(mức xám). Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người
không phân biệt được ranh giới giữa c, Độ phân giải chúng. Mỗi một điểm như vậy
gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel. Trong khuôn khổ ảnh hai
chiều, mỗi pixel ứng với cặp tọa độ (x, y).
Định nghĩa:
Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc
màu nhất định. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp
sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của
ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh.
b. Độ phân giải của ảnh :
Định nghĩa: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định
trên một ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải
được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng
cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố
theo trục x và y trong không gian hai chiều.
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một
lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200).
Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân
giải 320*200. Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng

hơn thì độ mịn (liên tục của các điểm) kém hơn.
c. Mức xám của ảnh:
Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số
tại điểm đó.

10


- Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là
mức phổ dụng. Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám:
Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255).
- Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức
xám ở các điểm ảnh có thể khác nhau.
- Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô tả 21
mức khác nhau. Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1.
- Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên thế
giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu: 28 *
3 = 224 ≈ 16,7 triệu màu.
2.2.3 Tổng quan về thư viện Opencv
Opencv(Open computer vision library) do Intel phát triển, được giới thiệu năm
1999 và hoàn thiện thành phiên bản 1.0 năm 2006. Thư viện opencv- gồm khoảng 500
hảm được viết bằng ngôn ngữ lập trình C và tương thích với hệ điều hành windows,
linux, maxOS… đóng vai trò xác lập chuẩn giao tiếp, dữ liệu , thuật toán lĩnh vực CV
và tạo điều kiện cho mọi người tham gia nghiên cứ và phát triển .
Trước Opencv không có một công cụ chuẩn nào cho lĩnh vực xử lý ảnh. Các
đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không ổn
định. Các bộ công cụ thương mại như Matlab, simulink, Halcon,… lại còn giá cao chỉ
thích hợp cho các công ty phát triển các ứng dụng lớn. Ngoài ra còn các giải pháp kèm
theo thiết bị phần cứng mà phần lớn là mã đóng và được thiết kế riêng cho từng thiết
bị, rất khó khăn cho việc mở rộng ứng dụng.

Opencv là công cụ hữu ích cho những người bước đầu làm quen với xử lý ảnh số
vì các ưu điểm sau:
- Opencv là công cụ chuyên dụng: được Intel phát triển theo hướng tối ưu hòa
cho các ứng dụng xử lý và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thu viện tạo giao
diện, truy xuất thiết bị phần cứng được tích hợp sẵn. Opencv thích hợp để phất triển
nhanh ứng dung.
- Opencv là công cụ mã nguồn mở: không chỉ là công cụ miễn phí( với BSD
license), việc được xây dựng trên mã nguồn mở giúp opencv trở thành công cụ thích
hợp cho nghiên cứu và phát triển với khả năng thay đổi và mở rộng các mô hình, thuật
toán.
11


- Opencv đã được sử dụng rộng rãi: từ năm 1999 đến nay, opencv đã thu hút số
lượng lopens người dùng, trong đó có các công ty lớn như microsoft, IBM, Sonny,
Siemens, Google và các nhóm nghiên cứu ở Standford, MIT, CMU, Cambidge.. nhiều
forum hỗ trợ và cộng đồng người dùng đã được thành lập tạo nên kênh thông tin rộng
lớn hữu ích cho việc tham khảo tra cứu.
Samples/Demos

Hỗ trợ các chức năng
cấp cao (nhận dạng
khuôn mặt, hiệu chỉnh
camera), xử lí ảnh,
phân tích chuyển
động...

MILL
Cung cấp khả năng tự
học của thuật toán với

chức năng thống kê
phân loại và các thuật
toán phân nhóm

HighGUI
Giúp tạo nhanh giao
diện đơn giản và hỗ
trợ truy xuất ảnh/phim
từ file hoặc thiết bị
ngoại vi.

CXCORE
Tổ chức dữ liệu cơ sở, thực hiện các thuật toán (phép tính ma trận, tính
toán), hỗ trợ chuẩn dữ liệu XML, các thao tác vẽ chú thích.

IPP
module thương mại cung cấp các đoạn mã mở rộng đã được tối ưu hóa cho
phần cứng của Intel giúp tăng tốc các ứng dụng lớn.

Hình 2.7 Tổ chức thư viện Opencv
2.3

Một số phương pháp xử lý ảnh với thư viện Opencv

2.3.1 Giới hạn vùng xử lý
Khung ảnh bắt đầu xử lý luôn có khung cố định 640x480, chúng ta cần lựa chọn
được vùng nhận diện để giảm ảnh hưởng không cần có trong quá trình xử lý. Trong
thuật toán xử lý ảnh, chúng ta sẽ nhắc đến khái niệm ROI ( region of interest) hay
chúng ta có thể nói là vùng được chọn. Phương pháp này cho phép chúng ta loại bỏ
khung hình không cần thiết và chỉ xử lý trong vùng được chọn. Và trong đề tài này

vùng được chọn là mắt phải. Việc thực hiện lệnh ROI sẽ cho phép chúng ta dễ dàng

12


căn chỉnh vị trí của mắt và giảm được nhiễu từ tóc và lông mày. Sau khi thực hiện quá
trình này, vấn đề chúng ta còn lại chỉ là xử lý mắt với vùng xử lý đã được giới hạn.
2.3.2 Chuyển ảnh từ RGB sang GRAY
Đối với phương pháp nhận diện bằng đặc trưng về màu sắc như thế này, thì việc
quan trong nhất là nhận biết xem không gian màu nào là dễ dàng xử lý. Đối với ảnh
ban đầu khi thu nhận qua webcam là ở không gian màu là RGB thì quá trình xử lý trở
nên rất khó khăn. Đối với đặc trưng màu đen của đồng tử, chúng ta chọn không gian
màu xám để xử lý.
- Không gian màu RGB: RGB là không gian màu rất phổ biến được dùng trong
đồ họa máy tính và nhiều thiết bị kĩ thuật số khác. Ý tưởng chính của không gian màu
này là sự kết hợp của 3 màu sắc cơ bản : màu đỏ (R, Red), xanh lục (G, Green) và
xanh lơ (B,Blue)để mô tả tất cả các màu sắc khác. Nếu như một ảnh số được mã hóa
bằng 24bit, nghĩa là 8bit cho kênh R, 8bit cho kênh G, 8bit cho kênh B, thì mỗi kênh
màu này sẽ nhận giá trị từ 0-255. Với mỗi giá trị khác nhau của các kênh màu kết hợp
với nhau ta sẽ được một màu khác nhau, như vậy ta sẽ có tổng cộng 255x255x255 =
1.66 triệu màu sắc. Ví dụ: màu đen là sự kết hợp của các kênh màu (R, G, B) với giá
trị tương ứng (0, 0, 0) màu trắng có giá trị (255, 255, 255), màu vàng có giá trị (255,
255, 0), màu tím đậm có giá trị (64, 0, 128) ...Nếu ta dùng 16bit để mã hóa một kênh
màu (48bit cho toàn bộ 3 kênh màu) thì dải màu sẽ trải rộng lên tới 3*2^16 Một con số
rất lớn.

Hình 2.8 Không gian màu RGB
- Ảnh xám : Ảnh xám còn được gọi là ảnh đen trắng với giá trị biến thiên từ đen
với cường độ yếu nhất đến trắng với cường độ cao nhất. Ảnh xám thu được nhờ việc
đo cường độ ảnh sáng tại một tần số nhất định trong dãy quang phổ ánh sáng nên nó


13


còn được gọi là ảnh đơn sắc. Ảnh xám được mã hóa bởi n bit sẽ có là 2 n, đi từ mức đen
( mức 0) tới trắng (mức 2n-1) . Các mức từ 1 đến 2n-2 biễu diễn các sắc độ xám khác
nhau.

Hình 2.9 Thanh mức xám
Chuyển RGB sang ảnh xám:
- Bước 1 : tạo một ảnh trắng(chưa có dữ liệu) định dạng tại ảnh đa mức xám.
IplImage *grayimage = cvCreateImage( cvSize( colorimg->width, colorimg>height ), IPL_DEPTH_8U, 1 );
- Bước 2: Chuyển đổi ảnh màu sang ảnh đa mức xám.
cvCvtColor( img, grayimage, CV_RGB2GRAY );
2.3.3 Nhị phân hóa với ngưỡng
Nhị phân hóa là quá trình biến đổi ảnh xám thành ảnh nhị phân. Ảnh nhị phân chỉ
chứa hai giá trị 0 hoặc 1 ( 0 hoặc 255 tùy theo quy định cấu trúc ảnh) theo đó giá trị 0
tương ứng với điểm đen trên ảnh và giá trị 1 hoặc 255 tương ứng với giá trị điểm
trắng. Công thức nhị phân hóa ảnh là đặt tất cả giá trị điểm ảnh về 0 nếu chúng bé hơn
điểm ngưỡng T cho trước và về giá trị 1( hoặc 255) nếu chúng lớn hơn giá trị ngưỡng
T đó. Vấn đề ở đây là xác định ngưỡng T là rất khó vì chúng phụ thuộc vào điều kiện
ánh sáng của môi trường.
Trong Opencv việc lấy ngưỡng được thực hiện bằng cách gọi hàm:
cvThreshold(const CvArr *src, CvArr *dst, double threshold, double max_value, int
threshold_type).
Trong đó, src là ảnh gốc, và phải là ảnh xám, dst là ảnh đích một kênh màu, có
cùng kích thước với ảnh đầu. Threshold là giá trị ngưỡng ta đặt cho việc nhị phân,
max_value là giá trị lớn nhất của ảnh xám, thông thường là 255. threshold_type là kiểu
threshold mà ta muốn thực hiện, Thông thường là CV_THRESH_BINARY, còn muốn
nhị phân ngược ta dùng CV_THRESH_BINARY_INV.

Nhị phân hóa với ngưỡng mục đích để giúp máy tính có thể phân biệt được vùng
được chọn và vùng không được chọn. Đối với ảnh xám chúng ta sẽ chỉ có một ngưỡng
T với một giá trị trong khoảng từ [0…255] đặc trưng cho giá trị mình cần phân biệt.

14


2.3.4 Các phép toán hình thái học trong ảnh
Sau khi chuyển thành ảnh nhị phân máy tính đã có thể phân biệt được rõ ràng
vùng xử lý nhưng việc theo dõi mắt sẽ không được diễn ra vì vùng xử lý nhỏ, diện tích
ít không thể phân biệt được với nhiễu do lông mi. Để thực hiện được quá trình bám
theo chuyển động của đồng tử, chúng ta cần phải tăng diện tích màu trắng nhận diện
đồng tử tăng lên. Quá trình đó chúng ta áp dụng phép toán đóng, có thể hiểu đơn giản
thuật toán này nhằm mục đích thay thế mọi lân cận màu đen của các điểm ảnh thành
màu trắng.
- Phép dịch chuyển A của điểm ảnh x(hàng, cột):
(A)x = {c | c = a+x, a ∈ A}
- Phép đối của tập A được định nghĩa như sau:
(A)x={c | c = -a, a ∈ A}
Đó là phép quay A 180o quanh gốc tọa độ
- Phần bù của điểm A là các đối tượng không phụ thuộc vào đối tượng A. Theo lý
thuyết tập hợp thì :
Ac = { c | c∉ A }
- Giao của 2 tập hợp của A và B là tập hợp các phần tử thuộc cả tập hợp A lẫn B ký
hiệu:
A ∩ B = {c | ( c ∈ A) ∧ ( c ∈ B) }
- Hợp của 2 tập hợp A và B là tập của phần tử A hoặc / và B ký hiệu:
A ∪ B = {c | ( c ∈ A) ∨ ( c ∈ B) }
- Hiệu của 2 tập hợp A và B :
A - B = { c | ( c ∈ A) ∧ ( c ∉ B) }

- Phép dãn A bởi cấu trúc B được ký hiệu :
A ⊕ B = {c | c = a + b, a ∈ A, b ∈ B}
Trong đó C được gọi là kết quả của phép dãn A sử dụng phần tử cấu trúc B, tuy nhiên
vài điểm trong số chúng có thể trùng nhau.

A=
15


Trong đó
- hình a. Tập A ban đầu.
- Hình b. Tập A cộng phần tử (0,0).
- Hình c. Tập A cộng phần tử (0,1).
- Hình d. hợp (b) và (c) kết quả phép dãn
Phần tử cấu trúc:
Hình 2.10 Dãn A bởi B
Ta có thể nhìn thấy rằng việc xác định gốc của ảnh là rất quan trọng nó sẽ các
định hướng dãn của ảnh. Nếu gốc nằm bên trái thì xu hướng dãn của ảnh nằm bên
phải. nếu gốc nằm bên phải thì xu hướng dãn về bên trái. Nếu gốc nằm ở giữa thì xu
hướng dãn đều.
- Phép giãn nở (dilation) là tập hợp tất cả các phép dịch chuyển của cấu trúc, ký hiệu:

Tuy nhiên với vai trò bình đẳng của A và B, ta có thể coi là A là cấu trúc và B
là ảnh thì khi đó:

Từ những điều trên có thể giúp ta tiếp cận đến một thao tác giãn ảnh có thể được
“ máy tính hóa”. Ta có thể xem những phần tử cấu trúc như là một mẫu và dịch
chuyển nó trên ảnh. Khi gốc của phần tử cấu trúc hay mẫu khớp với ảnh đen trên ảnh,
thì tất cả nhưng điểm ảnh tương ứng trên cấu trúc sẽ được đánh dấu và thay thế sau.
Sau khi toàn bộ ảnh đã được quét qua bởi mẫu, thao tác dãn ảnh xem như hoàn chỉnh.

Thông thường máy tính sẽ làm như sau:

16


Hình 2.11 Giãn ảnh sử dụng phẩn tử cấu trúc
a. Gốc cấu trúc định vị trên điểm ảnh đầu tiên và những điểm đen cấu trúc được
chép sang ảnh kết quả ở những vị trí tương ứng.
b. Quá trình lặp lại tương đối với những điểm đen tiếp theo của ảnh.
c. Quá trình hoàn chỉnh.
- Phép toán co (erosion) .
Phép toán co trong ảnh được định nghĩa A ⊖ B={ x |(B)x ⊆ A } trong đó A là đối
tượng trong ảnh, B là cấu trúc phần tử ảnh. Ta cũng sẽ xét một ví dụ như trên với phép
co trong ảnh. Đối tượng trong ảnh được biểu diển bởi màu xám, cấu trúc phần tử ảnh
là khối có viền màu đỏ, x là điểm sau phép thỏa mãn phép co ảnh, 0 là điểm không
thỏa mãn.

Hình 2.12 Phép toán co (erosion)
Ta thấy rằng sau phép toán này đối tượng trong ảnh bị co lại, chính vì vậy mà nó
được ứng dụng trong việc giảm kích thước của đối tượng, tách rời các đối tượng gần
nhau và làm mảnh, tìm xương đối tượng.
Phép toán đóng: A ∙ B = ( A ⊕ B ) ⊖ B.

17


Phép toán đóng được ứng dụng trong việc làm trơn đường bao đối tượng, lấp đầy
các khoảng trống trên biên và loại bỏ những hố nhỏ ( một số pixel đứng thành cụm độc
lập ).
Phép toán mở : A o B=( A ⊖ B) ⊕ B.

Phép toán mở dùng để loại bỏ các phần lồi lõm để các đường bao trở nên trơn và
mượt hơn.
2.3.5 Tìm viền(contour)
Đối với phương pháp tìm viền mục đích dùng để xác định được khung giới hạn
bao quanh mắt. Khung này có khả năng thay đổi khi mắt đóng hoặc mở, chúng ta có
thể xác định được việc đóng mở mắt khi diện tích khung thay đổi.
Nguyên lí cơ bản của hàm contours đó là sau khi ảnh được xử lí thành ảnh đen
trắng, tất cả các đối tượng quy định được nhận biết sẽ được vẽ một đường bao bên
ngoài biên dạng của chúng. Một bước tiếp theo đó là xây dựng thuật toán so sánh ảnh
theo các tiêu chuẩn về kích thước cũng như tọa độ tương ứng với vật cần nhận biết.
Sau khi có thuật toán hàm contours sẽ tự động tính toán vật có màu sắc và kích thước
chính xác nhất so với tiêu chuẩn để vẽ biên dạng chính xác và hiển thị duy nhất vật đó.
CvFindContours(img, luutru, &contours, sizeof (CvContour),CV_RETR_LIST,
CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0)) đây là đoạn code sử dụng trực tiếp
trong bài của nhóm, Find contours thực hiện chức năng vẽ đường bao xung quanh các
vật đã được nhận biết về màu sắc với kích thước tương đồng, cùng lúc đó các đường
bao đó sẽ lưu lại giá trị về tọa độ trên ảnh. CV_CHAIN_APPROX_SIMPLE là hàm có
chức năng loại bỏ các đường thừa và nén đường viền qua đó tiết kiệm bộ nhớ. Ví dụ
để nhận biết một hình chữ nhật chúng ta cần vẽ đường viền với 1000 điểm ảnh thế
nhưng với hàm trên chúng ta chỉ sử dụng 4 điểm. (Hình 2.13)

Hình 2.13 Minh họa sử dụng CV_CHAIN_APPROX_SIMPLE

18


2.4

Khối điều khiển trung tâm
Trong hệ thống mạch điện tử vi điều khiển trung tâm đóng vai trò là bộ não, tiếp


nhận, xử lí và đưa ra thông tin cho toàn hệ thống. Dựa trên yêu cầu về chức năng và
tốc độ xử lí nhóm đã lựa chon vi điều khiển PIC 16F877A của hãng Microchip sản
xuất, với một số chức năng và thông số cơ bản sau:
-

Sử dụng công nghệ tích hợp RISC CPU.
Người sử dụng có thể lập trình với 35 câu lệnh cơ bản.
Tất cả câu lệnh thực hiện trong một chu kỳ lệnh, ngoại trừ một số câu lệnh rẽ

-

nhánh thực hiện trong 2 chu kỳ lệnh.
Tốc độ hoạt động xung đồng hồ là 20MHZ.
Bộ nhớ hoạt động là flash 8k x14 words.
Bộ nhớ RAM 368x8 bytes.
Bộ nhớ EFPROM 256x8 bytes.
Khả năng ngắt lên đến 14 ngắt trong và ngắt ngoài.
Ngăn nhớ Stack được phân chia làm 8 mức.
Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.
Nguồn khởi động (POR).
Bộ tạo xung (PWRT) và bộ tạo dao động (OST).
Bộ đếm thời gian (WDT) với nguồn dao động trên chíp (nguồn dao động RC)

-

hoạt động đáng tin cậy.
Có mã chương trình bảo vệ.
Phương thức cất giữ SLEEP.
Có bảng lựa chọn dao động.

Công nghệ CMOS FLASH/EFPRO nguồn mức thấp tốc độ cao.
Thiết kế hoàn toàn tĩnh.
Mạch chương trình nối tiếp có 2 chân.
Mạch xử lý đọc ghi tới bộ nhớ chương trình.
Dải điện thế hoạt động 2.0 đến 5.5V.
Nguồn điện sử dụng 25mA.
Dãy nhiệt độ công nghiệp và thuận lợi.
Công suất tiêu thụ thấp.
TIMER0: 8 bits của bộ định thời, bộ đếm với hệ số tỉ lệ trước.
TIMER1: 16 bits của bộ định thời, bộ đếm với hệ số tỉ lệ trước, có khả năng

-

tăng trong khi ở chế độ sleep qua xung đồng hồ được cung cấp bên ngoài.
TIMER2: 8 bits của bộ định thời, bộ đếm với 8 bits của hệ số tỉ lệ trước, hệ số

-

tỉ lệ sau.
Sơ đồ chân của PIC 16F877A

19


Hình 2.14 Sơ đồ chân của PIC 16F877A
Chân 13, 14 là các chân kết nối với thạch anh tạo dao động cho chip. Ta mắc
thêm vào 2 tụ điện có điện dung =33pF để tăng độ ổn định cho dao động thạch anh.
- PORTB vì PORTB lúc này đóng vai trò là ngõ xuất nên các thanh ghi TRISB
trong chíp phải được đặt giá trị logic 1 (Nếu ta đặt ngõ B là ngõ nhập thì ta phải đặt giá
trị logic 0).

- VDD: Là điện áp cấp nguồn cho vi điều khiển, nguồn điện cấp là 5V.
- GND: Là chân nối mass khi sử dụng cần thiết kế một mạch ổn áp để bảo vệ
cho vi điều khiển , thường sử dụng IC ổn áp 7805.
- PORTA: Có 6 pin từ chân 2 đến chân 7.
- PORTB: Có 8 chân từ 34 đến 40, ngoài chức năng làm cổng xuất nhập còn có
thêm một số chức năng phụ khác.
- PORTC, PORTE: Tương tự như PORTB.
- Chân Reset (MCLR): Ngõ vào ở chân 1 dùng để thiết lập điều kiện đầu cho vi
điều khiển.
- OSC1, OSC2: Hai chân này được sử dụng để nhận nguồn xung clock từ bên
ngoài cụ thể là từ thạch anh dao động.
- Các chân RC3, RC4 dùng để kết nối I2C.
- Các chân RC6, RC7 là chân kết nối RS232.
2.4.1 Giao tiếp UART trong PIC 16F877A
Trong PIC16F877A có tất cả năm thanh ghi cho quá trình điều khiển UART: Bao
gồm hai thanh ghi chức năng TXSTA, RCSTA, hai thanh ghi dữ liệu RCREG và

20


TXREG. Thanh ghi tốc độ baund SPBRG .Trong PIC16F877A có hai chế độ truyền
High speed và Low speed được quy định bởi Bit BRGH của thanh ghi TXSTA. Việc
phân chia hai mức tốc độ này để có sự chọn lựa cho trường hợp sai số với tốc độ baud
chuẩn của PC: Mà trong PC có các mức chuẩn: 300, 2400, 9600, 19200, 28800
Trong PIC16F877A có nhiều chế độ truyền nhận khác nhau: Chế độ truyền nhận
dùng bit 9 để định chẵn lẻ, hay cho mạng vi điều khiển một master và nhiều slave. Và
chế độ chuyền đồng bộ ứng dụng cho việc giao tiếp với A/D, D/A hay với các
EEPRO. Các chế độ này sẽ được thiết lập bởi các bit trong thanh ghi TXSTA, và
TCSTA.
- Quá trình nhận dữ liệu: Trong PIC16F877A để nhận biết được dữ liệu truyền

tới người ta dùng bit cờ RCIF trong thanh ghi PIR1. Như vậy khi thanh ghi đệm dữ
liệu chứa dữ liệu thì RCIF sẽ được đưa lên 1 và chính cờ này cho phép PIC16F877A
có hai phương thức để nhận biết lúc nào có dữ liệu truyền tới. Sử dụng ngắt và sử dụng
kiểu Polling (quay vòng).
- Quá trình truyền dữ liệu: Trong quá trình truyền dữ liệu cũng có hai chế độ sử
dụng ngắt và Polling , tuy nhiên quá trình truyền dữ liệu lên PC không phải là thời
diểm bất kỳ mà dặt dưới sự kiểm soát của chương trình cho nên người ta thưòng sử
dụng kiểu polling khi cần truyền thì truyền đi.
2.5

Cơ cấu chấp hành
Động cơ DC cũng là một cơ cấu chấp hành cơ-điện, biến năng lượng điện thành

các chuyển động cơ học. Động cơ DC hoạt động được dựa trên 2 định luật Loren và
Faraday. Cấu tạo của động cơ DC gồm phần ứng, phần kích từ, chổi than và cổ góp.
Có 5 loại động cơ DC là : động cơ kích từ nối tiếp, động cơ kích từ song song, động cơ
kích từ hỗn hợp, động cơ kích từ độc lập và động cơ nam châm vĩnh cửu.

Hình 2.15 Cấu tạo động cơ DC

21


Các trạng hoạt động của động cơ DC khá đơn giản, phân tích dựa trên đường đặc
tính cơ của động cơ. Gồm các trạng thái khởi động và trạng thái hãm. Do đường đặc
tính cơ là một đường thẳng, nên việc phân tích sự phụ thuộc của momen và vận tốc
của động cơ ở các trạng thái đơn giản.
w

w0


wdm

M
Mdm

Mnm

Hình 2.16 Đường đặc tính cơ động cơ DC
2.6

Mạch công suất điều khiển động cơ
Với đề tài này nhóm đã chọn 2 động cơ DC 24v với công suất nhỏ, để thuận lợi

cho việc điều khiển nhóm chọn module L298 để điểu khiển động cơ.
2.6.1 Module L298
Dual H-Bridge Module sử dụng IC ST L298N tích hợp nguyên khối 15-pin kiểu
Multiwatt, điện áp và dòng tải cao, được thiết kế để chấp nhận mức điện áp logic tiêu
chuẩn TTL và tải điện cảm như Solenoids, 2 động cơ DC hoặc 1 động cơ bước dây.
Hai Enable inputs cho phép kích hoạt (enable) hoặc vô hiệu hóa (disable) các thiết bị
độc lập của tín hiệu đầu vào. Cực E của các Transistor dưới của mỗi cầu được nối với
nhau và đưa ra bên ngoài (chân SENSE A và SENSE B) để có thể nối với một điện trở
để có thể cung cấp một nguồn đầu vào bổ sung để logic làm việc với điện áp thấp hơn
Tham số sản phẩm:
- Sử dụng L298 gồm 2 mạch cầu H điều khiển động cơ DC.
- Điện áp cung cấp: +5V đến +35V.
- Dòng điện tối đa: 2A.
- Dòng tiêu thụ 0 ~ 36mA.
- Tin hiệu điều khiển điện áp đầuvào:
- Mức độ thấp: 0,3

- Cao: 2.3V- Điện năng tiêu thụ tối đa: 20W( nhiệt độ T=75oC).
- Nhiệt độ hoạt động: -25oC~130oC.

22


- Kích thước: 55mm * 49 mm *33mm.
- Trọng lượng: 33g.
2.7

Tổng quan về phương thức điều khiển từ xa bằng sóng RF
Trong khi truyền thông tin, vì tận cùng bản chất của dữ liệu là bao gồm các bit 0

và 1, bên phát dữ liệu cần có một cách thức để gửi các bit 0 và 1 để gửi cho bên nhận.
Một tín hiệu xoay chiều hay một chiều tự nó sẽ không thực hiện tác vụ này. Tuy nhiên,
nếu một tín hiệu có thay đổi và dao động, dù chỉ một ít, sự thay đổi này sẽ giúp phân
biệt bit 0 và bit 1. Lúc đó, dữ liệu cần truyền sẽ có thể gửi và nhận thành công dựa vào
chính sự thay đổi của tín hiệu. Dạng tín hiệu đã điều chế này còn được gọi là sóng
mang (carrier signal). Có ba thành phần của dạng sóng có thể thay đổi để tạo ra sóng
mang, đó là biên độ, tần số và pha. Tất cả các dạng truyền thông dùng sóng vô tuyến
đều dùng vài dạng điều chế để truyền dữ liệu. Để mã hóa dữ liệu vào trong một tín
hiệu gửi qua sóng AM/FM, điện thoại di động, truyền hình vệ tinh, ta phải thực hiện
một vài kiểu điều chế trong sóng vô tuyến đang truyền.
2.7.1 Biên độ và bước sóng
Truyền thông vô tuyến bắt đầu khi các sóng vô tuyến được tạo ra từ một máy
phát và gửi đến máy nhận ở một vị trí khác. Sóng vô tuyến tương tự như các cơn sóng
mà bạn hay gặp ở biển, hồ, sông, suối. Sóng có hai thành phần chính: biên độ và bước
sóng. Biên độ là chiều cao, độ mạnh hoặc công suất của sóng. Bước sóng là khoảng
cách giữa hai điểm tương tự trên hai đỉnh sóng liên tiếp. Biên độ và tần số cả hai đều

là các thuộc tính của sóng.
2.7.2 Bức xạ điện từ
Đầu tiên ta xét đến sóng điện từ. Bức xạ điện từ bao gồm sóng radio, hồng ngoại,
ánh sáng khả kiến, tia cực tím, tia X, và tia gamma. Tất cả chúng đều truyền đi với vận
tốc ánh sáng là (trong chân không) c = 3x108 m/s và tạo ra phổ điện từ. Sự khác nhau
giữa các loại sóng điện từ này phụ thuộc vào bước sóng của mỗi loại liên quan trực
tiếp đến năng lượng của sóng (bước sóng càng nhỏ thì năng lượng càng cao).
2.7.3 Pha
Pha là một thuật ngữ mang tính tương đối. Nó chỉ ra mối quan hệ giữa hai sóng
có cùng tần số. Để xác định pha, bước sóng được chia thành 360 phần, được gọi là độ.

23


2.7.4 Các phương thức điều chế
Để dữ liệu có thể được truyền, tín hiệu phải được xử lý sao cho bên máy nhận có
cách để phân biệt bit 0 và 1. Phương pháp xử lý tín hiệu sao cho nó tượng trưng cho
nhiều mẫu dữ liệu được gọi là điều chế. Phương thức này sẽ biến tín hiệu vào trong
sóng mang. Phương thức này mã hóa dữ liệu sao cho nó có thể truyền. Có ba kiểu điều
chế: điều biên, điều tần và điều pha.
2.7.5 Mã hóa bit
Mã hóa bit là quá trình chuyển đổi dãy bit (1- 0) sang một tín hiệu thích hợp để
có thể truyền dẫn trong môi trường vật lý. Việc chuyển đổi này chính là sử dụng một
tham số thông tin thích hợp để mã hóa dãy bit cần truyền tải. Các tham số thông tin có
thể được chứa đựng trong biên độ, tần số, pha hoặc sườn xung, v.v... Sự thích hợp ở
đây phải được đánh giá dựa theo các yêu cầu kỹ thuật như khả năng chống nhiểu cũng
như gây nhiểu, khả năng đồng bộ hóa và triệt tiêu dòng một chiều.
2.7.6 Các phương pháp mã hóa tín hiệu
Việc tạo mã để có tín hiệu trên các hệ thống số có thể thực hiện một cách đơn
giản là gán một giá trị điện thế cho một trạng thái logic và một giá trị khác cho mức

logic còn lại. Tuy nhiên để sử dụng mã một cách có hiệu quả, việc tạo mã phải dựa
vào một số tính chất sau.(Phổ tần của tín hiệu, sự đồng bộ, khả năng dò sai, tính miễn
nhiễu và giao thoa, mức độ phức tạp và giá thành của hệ thống).
Các dạng mã phổ biến:

Hình 2.17 Một số dạng mã thông dụng
2.7.7 Giới thiệu về mã Manchester
Mã hóa Manchester là một phương pháp mã hóa các bit dữ liệu sử dụng trong
việc truyền các tín hiệu dạng số. Đây là phương pháp mã hóa các bit dữ liệu 1,0 thành
các chuổi tín hiệu có mức tín hiệu thay đổi liên tục dù dãy bit dữ liệu là 1 hoặc 0 liên

24


tiếp. Do đó, ưu điểm của mã hóa Manchester là dễ dàng tạo sự tự đồng bộ giữa bên
phát và bên nhận.
2.7.8 Mạch phát RF
Thường dùng là loại module phát OOK (On/Off keyring) và ASK(Điều biên) để
chuyển các tín hiệu dạng số1-0 thành trạng thái có hoặc không có tín hiệu ở phần
mạch thu.
2.7.9 Mạch thu RF
Sử dụng để thu lại các tín hiệu từ mạch phát, biến các trạng thái phát hay không
phát thành dạng số 1 hoặc 0. Nguyên tắc khi mạch thu rảnh không nhận dữ liệu từ
mạch phát thì mạch vẫn có thể thu các tín hiệu nhiễu môi trường làm cho output của
nó có những tín hiệu 1, 0 không xác định. Hoặc trong quá trình phát có 1 chuỗi dài bit
1 hoặc 0 liên tục. Mỗi mạch thu phát đều có khả năng thu nhận một tín hiệu với tần số
nhất định. Hình sau đây mô tả việc phân loại sóng vô tuyến theo tần số.
Bảng 2.1: Phân loại sóng vô tuyến theo tần số
Sóng dài và cực dài


Tần số 30-300KHz

Bước sóng 10km-1km

Sóng trung

Tần số 0,3-3MHz

Bước sóng 100m-1km

Sóng ngắn

Tần số 3-30MHz

Bước sóng 10m-100m

Sóng cực ngắn

Tần số 30-3000MHz

Bước sóng 10cm-10m

Dựa vào những kiến thức đã tìm hiểu ở trên nhóm đã quyết định sử dụng Module
thu phát sóng NRF24L01 tần số 2.4GHz.
2.8

Ghép nối máy tính với vi điều khiển
Để chuyển tải thông tin về xử lý ảnh từ máy tính xuống vi điều khiển cùng với sự

bất đồng về chuẩn giao tiếp (máy laptop không có cổng COM, vi điều khiển 16F877A

không có khả năng lập trình giao tiếp USB) nhóm đã sử dụng bộ chuyển đổi USB to
COM sử dụng IC CH340.
2.8.1 Giao tiếp nối tiếp dùng UART
Viết tắt của Universal Asynchronous Receiver – Transmitter – thường là một
mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếp giữa máy tính và
thiết bị ngoại vi thông qua cổng nối tiếp. Rất nhiều vi điều khiển hiện nay đã tích hợp
UART. Để bắt đầu việc truyền dữ liệu bằng UART, một start bit được gửi đi, sau đó là
5‐8 bit dữ liệu, sau đó là stop bit. Start bit có trạng thái ngược với trạng thái bình
25


×