Tải bản đầy đủ (.docx) (38 trang)

THIẾT KẾ ROBOT ĐIỀU KHIỂN TỪ XA BẰNG ARDUINO

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 (3.22 MB, 38 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: ĐIỆN TỬ
------

BÁO CÁO THỰC TẬP
ĐỀ TÀI: THIẾT KẾ ROBOT ĐIỀU KHIỂN TỪ XA
BẰNG ARDUINO
Giảng viên hướng dẫn: ThS. Vũ Thị Hoàng Yến
Sinh viên thực hiện: Lê Anh Quân
Mã sinh viên: 1141250051
Lớp: Công nghệ kỹ thuật Máy tính 1
Khóa: 11

HÀ NỘI, tháng 12, năm 2019


1

Mục lục
Danh mục các bảng........................................................................................................3
Danh mục các hình vẽ, đồ thị.........................................................................................4
LỜI NÓI ĐẦU................................................................................................................ 5
CHƯƠNG 1: TỔNG QUAN VỀ ĐIỀU KHIỂN ROBOT..............................................6
1.1 Giới Thiệu................................................................................................................6
1.2 Lịch Sử Phát Triển....................................................................................................6
1.3 Phân Loại Robot Di Động:.......................................................................................9
1.3.1 Một Số Dạng Điều Khiển:.....................................................................................9
1.4 Ứng Dụng............................................................................................................... 10
1.5 Giới Thiệt E ROBOT DI ĐỘNG:...........................................................................11
1.5.1 Ứng dụng:............................................................................................................11


1.5.2 Hoạt động E ROBOT:..........................................................................................12
CHƯƠNG 2: GIỚI THIỆU ARDUINO VÀ CÁC THÀNH PHẦN MẠCH.................13
2.1 Tổng Quan..............................................................................................................13
2.2 ARDUINO UNO R3...............................................................................................13
2.2.1 Thông số kỹ thuật của Arduino Uno R3...............................................................15
2.2.2 Năng lượng..........................................................................................................17
2.2.3 Bộ nhớ.................................................................................................................18
2.2.4 Các cổng vào/ra...................................................................................................18
2.3 MODULE BLUETOOTH HC-06:..........................................................................20
2.3.1 Thông số kỹ thuật................................................................................................20
2.3.2 Sử dụng module Bluetooth HC-06.......................................................................20
2.4 Mạch điều khiển động cơ L298N:..........................................................................22


2
2.4.1 Thông số kỹ thuật................................................................................................22
2.4.2 Nối mạch.............................................................................................................22
CHƯƠNG 3: NGUYÊN LÝ TỔNG QUÁT VÀ LẬP TRÌNH.....................................24
3.1 Nguyên lý...............................................................................................................24
3.1.1 Nối dây................................................................................................................24
3.1.2 Sơ đồ nguyên lý...................................................................................................24
3.2 Phần mềm lập trình.................................................................................................25
3.2.1 Lập trình cho ARDUINO.....................................................................................25
3.2.2 App Inventor........................................................................................................27
3.3 Lưu đồ giải thuật.....................................................................................................31
3.4 Chương trình chạy..................................................................................................31
3.5 Sản phẩm sau khi hoàn thiện..................................................................................34
KẾT LUẬN..................................................................................................................35
TÀI LIỆU THAM KHẢO............................................................................................36



3

Danh mục các bảng
Chương
Bảng 2.1 Thông số kỹ thuật của Arduino Uno..............................................................16
Chương 3:Y
Bảng 3.1 Sơ đồ nối dây.................................................................................................24


4

Danh mục các hình vẽ, đồ thị
Chương
Hình 1.1 iRobot’s PackBot và Military-Robot................................................................9
Hình 1.2 Máy hút bụi Rooma và Friendly....................................................................10
Hình 1.3 Robot Sojourner.............................................................................................11
Hình 1.4 Robot Pioneer và Robot MBARI’s ALTEX AUV..........................................11
Hình 1.5 Giao diện E ROBOT trên android..................................................................12
Chương 2:Y
Hình 2.1 Arduino Uno SMD R3...................................................................................13
Hình 2.2 Arduino Uno R3.............................................................................................14
Hình 2.3 Arduino Nano................................................................................................14
Hình 2.4 Sơ đồ chân của Arduino Uno R3....................................................................17
Hình 2.5 Các cổng vào ra.............................................................................................18
Hình 2.6 Module Bluetooth HC-06..............................................................................21
Hình 2.7 Module L298.................................................................................................22
Hình 2.8 Sơ đồ nối mạch..............................................................................................23
Chương 3
Hình 3.1 Sơ đồ nguyên lý trên proteus.........................................................................24

Hình 3.2 Giao diện Arduino IDE..................................................................................25
Hình 3.3 Cửa sổ Run và Device Manager....................................................................26
Hình 3. 4 Chọn Arduino sử dụng..................................................................................27
Hình 3.5 (a),(b),(c)Giao diện app inventor...................................................................30
Hình 3.6 Lưu đồ giải thuật Robot có điều khiển...........................................................31
Hình 3.7(a),(b) Mặt trên, dưới......................................................................................34


5

LỜI NÓI ĐẦU
Ngày nay, sự phát triển mạnh mẽ của khoa học đời sống, cuộc sống của con
người đã thay đổi ngày một tốt hơn, với những trang thiết bị hiện đại phục vụ trong
công cuộc công nghiệp hóa, hiện đại hóa. Đặc biệt góp phần không nhỏ đó là ngành kĩ
thuật điện – điện tử trong sự nghiệp xây dựng đất nước. Những thiết bị điện, điện tử
được phát triển và ứng dụng rộng rãi trong đời sống hằng ngày. Từ những thời gian đầu
phát triển vi điều khiển đã cho thấy sự ưu việt của nó và cho tới ngày nay tính ưu việt
đó ngày càng được khẳng định thêm. Những thành tựu của nó đã có thể biến được
những cái tưởng chừng như không thể thành những cái có thể, góp phần nâng cao đời
sống vật chất và tinh thần cho con người.
Việc áp dụng các máy móc hiện đại vào sản suất là một yêu cầu không thể thiếu
trong các nhà máy nhằm tăng năng suất, tăng chất lượng và giảm giá thành sản phẩm.
Cùng với sự phát triển đó, công nghệ chế tạo Robot cũng phát triển nhanh chóng đặc
biệt là ở các nước phát triển nhằm đáp các nhu cầu về sản xuất, sinh hoạt, quốc
phòng…Robot có thể thực hiện những công việc mà con người khó thực hiện và thậm
chí không thực hiện được như: làm những công việc đòi hỏi độ chính xác cao, làm việc
trong môi trường nguy hiểm (như lò phản ứng hạt nhân , dò phá mìn trong quân sự),
thám hiểm không gian vũ trụ…
Để góp phần làm sáng tỏ hiệu quả của những ứng dụng trong thực tế của môn vi
điều khiển, sau một thời gian học tập được các thầy cô trong khoa giảng dạy về các

kiến thức chuyên ngành, đồng thời được sự giúp đỡ nhiệt tình của các thầy cô trong
khoa Điện-Điện tử, cùng với sự lỗ lực của bản thân, em đã “ Thiết kế robot điều
khiển từ xa bằng Arduino” nhưng do thời gian, kiến thức và kinh nghiệm của em còn
có hạn nên sẽ không thể tránh khỏi những sai sót. Em rất mong được sự giúp đỡ và
tham khảo ý kiến của thầy cô và các bạn nhằm đóng góp phát triển thêm đề tài.


6

CHƯƠNG 1: TỔNG QUAN VỀ ĐIỀU KHIỂN ROBOT
1.1 Giới Thiệu
Thuật ngữ Robot xuất hiện lần đầu tiên vào năm 1922 trong tác phẩm
“Rossum’s Universal Robot” của Karel Capek. Trong tác phẩm nhân vật Rossum và
con trai đã tạo ra chiếc máy giống con người để phục vụ cho con người.
Robot di động là loại máy tự động có khả năng di chuyển trong một số môi
trường nhất định. Robot di động hiện đang được các nhà nghiên cứu chú trọng và hầu
như các trường đại học lớn đều có phòng thí nghiệm để tập trung nghiêng cứu loại
Robot này. Chúng cũng được sử dụng trong các ngành công nghiệp, quân sự và sinh
hoạt…, như trong sinh hoạt có Robot hút bụi, lau nhà hay cắt cỏ….
1.2 Lịch Sử Phát Triển
Hình dạng Robot xuất hiện đầu tiên ở nước Hoa Kỳ, là loại tay máy chép hình
dung trong phòng thí nghiệm vật liệu phóng xạ. Vào những năm 50 của thế kỷ trước,
bên cạnh các loại tay máy chép hình cơ khí, các loại tay máy chép hình thủy lực điện tử
đã xuất hiện. Tuy nhiên, các tay máy thương mại đều có chung nhược điểm là thiếu sự
di động, các tay máy này hoạt động hạn chế quanh vị trí của nó. Ngược lại, Robot di
động là lại Robot di động có thể di chuyển từ không gian này đến không gian khác một
cách độc lập hay được điều khiển từ xa, do đó tạo không gian hoạt động lớn.
Từ năm 1939 đến năm 1945: Trong cuộc chiến thế giới lần thứ II, những con
Robot di động đầu tiên xuất hiện. Nó là kết quả của những thành tựu công nghệ trong
những lĩnh vực nghiên cứu mới có liên quan như khoa học máy tính và điều khiển học,

hầu hết chúng là những quả bom bay, ví dụ như những quả bom chỉ nổ trong những
dãy mục tiêu nhất định, sử dụng trong hệ thống hướng dẫn rada điều khiển. Tên lửa V 1
và V2 có “ phi công tự động” và hệ thống phát nổ, chúng là tiền thân của đầu đạn hạt
nhân tự điều khiển hiện đại.
Từ năm 1948 đến 1948: W.Gray Walter tạo nên Elmer và Elsie, hai con Robot
trông giống con đồi mồi. Về mặc hành chính, chúng được gọi là Machina Speculatrix
bởi vì những con Robot này hoạt động trong môi trường như những chú chim đồi mồi.
Elmer và Elsie được trang bị một bộ cảm biến sáng. Nếu chúng nhận ra một nguồn


7
sáng, chúng sẽ di chuyển về phía nguồn sáng. Chúng có thể tránh hoặc chuyển những
chướng ngại trên đường di chuyển. Những con Robot này chứng mình rằng những cử
chỉ phức tạp có thể phát sinh từ một thiết kế đơn giản. Elmer và Elsie chỉ được thiết kế
tương đương hai tế bào thần kinh.
Từ năm 1961 đến 1963: Trường đại học Johns Hopkins phát triển “Beast”. Beast
sử dụng hệ thống định vị di chuyển xung quanh. Khi pin yếu nó sẽ tự tìm ổ cắm điện
và cắm vào.
Năm 1969: Mowbot là con Robot đầu tiên cắt cả bãi cỏ một cách tự động. The
Stanford Cart line follower là một con Robot di động có thể di chuyển thông qua nhận
dạng đường kẻ trắng, sử dụng một camera để nhìn. Nó bao gồm một “kênh truyền
thanh” gắn với hệ thống máy tính lớn để tạo ra những tính toán.
Năm 1970: Cùng thời điểm 1969-1972, viện nghiên cứu Stanford đang xây
dựng và nghiên cứu ra Shakey. Shakey có một camera, một dãy kính gắm, một bộ cảm
biến và một bộ truyền thanh. Shakey là con Robot đầu tiên lý giải về những chuyển
động của nó. Điều này có nghĩa là Shakey có thể đưa nhiều mệnh lệnh chung và và
Robot này sẽ tính toán những bước cần thiết để hoàn thiện nhiệm vụ được giao.
Năm 1976: trong chương trình Vikiry, tổ chức NASA đã phóng hai tàu vũ trụ
không người lái lên sao hỏa.
Năm 1977: Bộ phim “Chiến tranh giữa các vì sao” phần I, A new Hope mô tả

R2D2, một con Robot di động hoạt động độc lập và C3P0, một con robot hình người.
Họ đã khiến công chúng biết đến những con Robot.
Năm 1980: Thị hiếu của người tiêu dùng về Robot tăng, robot được bày bán và
mua về để sử dụng trong nhà. Ví dụ RB5X vẫn tồn tại tới ngày nay và một loạt mẫu
robot HERO. Robot The Stanford Cart được phát triển mạnh, nó đã có thể lái tàu biển
vượt qua những trở ngại và tạo lên bản đồ những nơi nó đi qua.
Năm 1989: Mark Tinden phát minh ra BEAM robotics.
Năm 1990: Cha đẻ của nền rôbốt công nghiệp Joseph Engelberger làm việc với
các đồng nghiệp và đã phát minh ra những con rôbốt tự động trong ngành y tế và được


8
bán bởi Helpmate. Sở an ninh Mỹ gây quỹ cho dự án MDARS-I dựa vào robot bảo vệ
trong nhà Cybermotion.
Năm 1993-1994: Dante-I và Dante-II được phát triển bởi trường đại học
Carnegie Mellon, cả hai con Robot dung để thám hiểm núi lửa đang hoạt động. Năm
1995: Robot di động có thể lập trình Pioneer (người tiên phong) được bán sẵn ở một
mức giá chấp nhận được, điều đó dẫn tới sự gia tăng rộng rãi về nghiên cứu Robot và
các trường đại học nghiên cứu về Robot trong suốt các thập sau. Robot di động trở
thành một phần không thể thiếu trong chương trình giảng dạy của các trường đại học.
Năm 1996-1997: NASA phóng con tàu Mars Pathfinder có 2 Robot Rover và
Sojourner lên sao Hoả. The Rover thám hiểm bề mặt sao hoả được điều khiển từ mặt
đất. Sojourner được trang bị với một hệ thống tránh rủi do cao. Hệ thống này làm cho
Sojourner có thể tìm thấy đường đi của nó một cách độc lập trên địa hình của sao Hoả.
Năm 1999: Sony giới thiệu Aibo, một con rôbốt có khả năng đi lại, quan sát và
tác động qua lại tới môi trường. Robot điều khiển từ xa dùng cho quân sự PackBot
cũng được giới thiệu.
Năm 2001: Dự án Swaim-Bots, Swaim-Bots giống những bầy côn trùng được
khởi động. Chúng bao gồm một số lượng lớn các con Robot đơn lẻ, có thể tác động lẫn
nhau và cùng nhau thực hiện những nhiệm vụ phức tạp.

Năm 2002: Roomaba, một con robot di động dung trong gia đình, thực
hiện công việc lau nhà xuất hiện. Tiếp tục phát triển hiện nay có rất nhiều loại
Robot phục vụ cho con người dần xuất hiện ngày càng thân thiện hơn.
Năm 2004: Robosapien, một con rôbốt đồ chơi, thiết kế bởi Mark Tilden được
bán sẵn. Trong dự án “The Centibots Project” 100 con Robot cùng làm việc với nhau
để tạo lên một bản đồ cho một vùng không xác định và tìm những vật thể trong môi
trường đó. Trong cuộc thi đầu tiên DARPA Grand Challenge, các con Robot tự động đã
cùng nhau tranh tài cùng nhau trên sa mạc.
Năm 2006: Sony dừng việc sản xuất Aibo và Helpmate. PatrolBot trở lên phổ
biến khi các Robot di động vẫn tiếp tục cạnh tranh nhau để trở thành mặt hàng độc
quyền. Sở an ninh Mỹ đã bỏ dự án MDARS-I, nhưng lại gây quỹ cho dự án MDARS-E


9
một loại Robot an ninh tự động khác. TALON-Sword, một loạiRobot tự động dùng để
bán sẵn với dàn phóng lựu đạn và những sự lựa chọn về vũ khí hợp thành khác đã ra
đời. Asimo của Honda biết cách chạy và leo cầu thang chỉ với hai chân như con người.
Năm 2007: Hệ thống KiVa, Robot thông minh tăng nhanh về số lượng trong quy
trình phân phối, những Robot thông minh này được phân loại theo mức độ phổ biến
những nội dung của chúng. Robot Tug trở thành phương tiện phổ biến trong các bệnh
viện dùng để vận chuyển đồ trong kho từ nơi này sang nơi khác. ARCSinside SpeciMinder mang máu và các vật mẫu từ trạm y tá tới phòng xét nghiệm. Seekur, Robot
dịch vụ dùng ngoài trời với mục đích phi quân sự có thể kéo một xe qua một bãi đậu
xe, lái một cách độc lập (tự động) vào trong nhà và bắt đầu học cách lái ra ngoài. Trong
khi đó, PatrolBot học cách theo sau con người và nếu cửa mà mở thì đóng lại.
1.3 Phân Loại Robot Di Động:
Có thể phân loại Robot di động theo phương pháp di chuyển:
 Robot có chân, chân giống người hay động vật.
 Robot di chuyển bằng xích, đai…  Robot di chuyển bằng bánh xe.
1.3.1 Một Số Dạng Điều Khiển:
1.3.1.1 Điều khiển bằng tay:

Robot điều khiển từ xa bằng tay được điều khiển thông qua sóng RF, wifi, hồng
ngoại hay Bluetooth… Robot điều khiển từ xa giúp con người tránh khỏi những nguy
hiểm. Ví dụ Robot điều khiển từ xa bằng tay gồm có: Military-Robot và iRobot’s
PackBot,…

Hình 1.1 iRobot’s PackBot và Military-Robot


10
1.3.1.2 Thực thi theo lộ trình:
Một vài Robot tự động đầu tiên là những con Robot theo lộ trình. Chúng có thể
theo những đường được sơn khắc trên sàn trên trần nhà hay một dây điện. Đa số những
Robots này hoạt động theo một thuật toán đơn giản là giữ lộ trình trong bộ cảm biến
trung tâm, chúng không thể vòng qua các chứng ngại vật, chúng chỉ dừng lại khi có vật
nào đó cản đường chúng. Rất nhiều mẫu của loại Robot này vẫn được bán bởi FMC,
Egemin, HK system và một vài công ty khác.
1.3.1.3 Ngẫu nhiên hoạt động độc lâp:
Robot hoạt động độc lập với những chuyển động ngẫu nhiên, về cơ bản đó là
những chuyển động nhảy bật lên tường, những bức tường được cảm nhận do sự cản trở
về mặt vật lý như máy hút bụi Roomba hoặc với bộ cảm biến điện tử của máy cắt cỏ
Friendly Robotics.

Hình 1.2 Máy hút bụi Rooma và Friendly
1.4 Ứng Dụng
Robot di động được dùng phổ biến trong những môi trường độc hại, những nơi
con người không thể đi tới hay đi tới một cách khó khăn và nguy hiểm, Robot di động
cũng được dùng trong lĩnh vực giải trí và phục vụ đời sống.
Các nơi con người không có khả năng đến được như sao Hỏa, đáy biển, núi lửa,
…người ta phải sử dụng Robot tự hành với cấu trúc phù hợp với môi trường. Ví dụ
như:



11
Robot Sojourner trong nhiệm vụ tìm kiếm sự sống trên sao hỏa năm 1997.

Hình
1.3 là
Robot
Robot MBARI’s ALTEX
AUV
robotSojourner
hoạt động dưới đáy biển với nhiêm vụ
thằm dò độ phóng xạ, áp suất, độ sâu,…và Robot Pioneer được thiết kế để dò tìm và
kiểm tra nồng độ trong thảm họa Chernobyl.

Hình 1.4 Robot Pioneer và Robot MBARI’s ALTEX AUV
Robot sử dụng trong quân sự như: Military-Robot ….
Robot sử dụng trong sinh hoạt như: Robot lau nhà Robotking…
1.5 Giới Thiệt E ROBOT DI ĐỘNG:
1.5.1 Ứng dụng:
E ROBOT thuộc họ ROBOT di động nên có những ứng dụng gần giống nhau
vào thực tiễn, Robot được chế tạo và nghiên cứu nhằm vào các lĩnh vực quân sự, dân
dụng…
 Ở lĩnh vực quân sự: Việc sử dụng Robot này để do thám, thám hiểm, tháo bom
hay đánh bom phòng vệ, xác định vị trí kẻ thù, …


12
 Ở lĩnh vực dân dụng: Có thể dùng Robot trong một số công việc như giám sát,
định vị trí, dẫn đường, tìm thiết bị, làm việc nhà, …

1.5.2 Hoạt động E ROBOT:
E ROBOT hoạt động bằng: điều khiển bằng tay thông qua Bluetooth.
E ROBOT được trang bị bởi 3 bánh xe nên có thể chạy theo mọi hướng mà ta
điều khiển gồm:
 Chạy tới, chạy lui, chạy trái, chạy phải.
 Chạy xoay vòng trái, chạy xoay vòng phải.
Điều khiển hướng chạy bởi 1 chiếc Smartphone Android được cài đặt chương
trình E ROBOT, sau đấy kết nối thông qua Bluetooth.
Khi ta mở Smartphone Android và chạy chương trình E ROBOT (giao diện
của chương trình như Hình 1.5). Tiếp theo chúng ta bật Bluetooth kết nối chúng và
tiến hành điều khiển E ROBOT.

Hình 1.5 Giao diện E ROBOT trên android.
Điều khiển Robot rất đơn giản nếu muốn Robot chạy tới, lùi, rẽ trái, rẽ phải hoặc xoay,
chúng ta bấm vào những mũi tên ở trên giao diện thì Robot sẽ chạy theo ý mình muốn.


13

CHƯƠNG 2: GIỚI THIỆU ARDUINO VÀ CÁC THÀNH PHẦN MẠCH
2.1 Tổng Quan
Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên Ý thiết
kế và đưa ra đầu tiên vào năm 2005. Mạch Arduino được sử dụng để cảm nhận và điều
khiển nhiều đối tượng khác nhau. Nó có thể thực hiện nhiều nhiệm vụ từ lấy tín hiệu từ
cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác. Ngoài ra mạch còn có
khả năng liên kết với nhiều module khác nhau như module đọc thẻ từ, ethernet shield,
sim900A, ….để tăng khả ứng dụng của mạch.
Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử
lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit,…. Hiện phần cứng của Arduino có tất cả
6 phiên bản. Tuy nhiên phiên bản thường được sử dụng nhiều nhất là Arduino Uno và

Arduino Mega. Arduino Uno được sử dụng rất rộng rãi trên thế giới, rất nhiều ví dụ
trên youtube hoặc các trang hướng dẫn về Arduino sử dụng mạch này. Vì vậy đối với
những người mới học Arduino, việc chọn Arduino Uno sẽ giúp việc học dễ dàng hơn.
2.2 ARDUINO UNO R3
Arduino board có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác
nhau như: Arduino Mega, Arduino Lilypad... Trong số đó, Arduino Uno R3 là một
trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó.

Hình 2.1 Arduino Uno SMD R3


14
Dựa vào thiết kế này, để giảm giá thành sản xuất nên một số thành phần của
board này được thay đổi lại với chức năng tương đương. Ví dụ như thay vi điều
khiển mặc định của Arduino là Atmega328P với kiểu chân là DIP thành Atmega328 có
kiểu chân SMD. Phiên bản này có tên gọi Arduino Uno SMD R3.

Hình 2.2 Arduino Uno R3
Với các thiết bị cần có kích thước nhỏ gọn, Arduino Nano ra đời nhằm đáp ứng
nhu cầu đó. Arduino Nano vẫn giữ nguyên sức mạnh của Arduino Uno với vi điều
khiển Atmega328P - SMD nhưng toàn bộ board mạch được thu gọn lại và có khả năng
cắm trực tiếp vào breadboard.

Hình 2.3 Arduino Nano


15
Arduino Uno được xây dựng với phân nhân là vi điều khiển Atmega328P sử
dụng thạch anh có chu kì dao động là 16 MHz. Với vi điều khiển này, ta có tổng
cộng 14 pin (ngõ) ra/vào được đánh số từ 0 tới 13 (trong đó có 6 pin PWM, được đánh

dấu ~ trước mã số của pin). Song vào đó, ta có thêm 6 pin nhận tín hiệu analog được
đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình
thường (như pin 0 - 13). Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp
với LED trạng thái trên board.
Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1
ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay
thông qua ắc-quy nguồn.
Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:
Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt
điện. Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board.
Chương trình được viết cho Arduino sẽ được lưu ở đây. Kích thước của vùng nhớ này
thông thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash
memory. Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi / xoá.
SRAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng
bù lại tốc độ đọc ghi xoá rất nhanh. Kích thước nhỏ hơn Flash Memory nhiều lần.
EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì ghi /
xoá cao hơn. Để đọc / ghi dữ liệu ta có thể dùng thư viện EEPROM của Arduino.
Ngoài ra, board Arduino còn cung cấp cho ta các pin khác nhau như pin cấp
nguồn 3.3V, pin cấp nguồn 5V, pin GND...
2.2.1 Thông số kỹ thuật của Arduino Uno R3

Vi điều khiển

Atmega328P

Điện áp hoạt động

5V

Điện áp vào khuyên dùng


7-12V

Điện áp vào giới hạn

6-20V


16
Digital I/O pin

14 (trong đó 6 pin có khả năng băm xung)

PWM Digital I/O Pins

6

Analog Input Pins

6

Cường độ dòng điện trên mỗi I/O pin

20 mA

Cường độ dòng điện trên mỗi 3.3V pin

50 mA

Flash Memory


32 KB (Atmega328P) 0.5 KB được sử dụng bởi
bootloader

SRAM

2 KB (Atmega328P)

EEPROM

1 KB (Atmega328P)

Tốc độ

16 MHz

Chiều dài

68.6 mm

Chiều rộng

53.4 mm

Trọng lượng

25 g

Bảng 2.1 Thông số kỹ thuật của Arduino Uno



17
Hình 2.4 Sơ đồ chân của Arduino Uno R3
2.2.2 Năng lượng
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn
ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp
nguồn bằng pin vuông 9V là hợp lí nhất nếu không có sẵn nguồn từ cổng USB. Cấp
nguồn vượt quá ngưỡng giới hạn trên sẽ làm hỏng Arduino UNO.
 GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi dùng các
thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối
với nhau.
 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
 Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, nối cực dương của
nguồn với chân này và cực âm của nguồn với chân GND.
 IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo
ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy không được lấy nguồn 5V từ
chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.
 RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với
việc chân RESET được nối với GND qua 1 điện trở 10KΩ.
2.2.3 Bộ nhớ
Vi điều khiển Atmega328P tiêu chuẩn cung cấp cho người dùng:
 32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được
dùng cho bootloader nhưng hiếm khi nào cần quá 20KB bộ nhớ này.
 2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi
lập trình sẽ lưu ở đây. Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ
RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ
phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
 1KB cho EEPROM (Electrically Eraseble Programmable Read Only

Memory): đây giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu
của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên
SRAM.


18
2.2.4 Các cổng vào/ra

Hình 2.5 Các cổng vào ra
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2
mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân
đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển Atmega328P (mặc
định thì các điện trở này không được kết nối).
Một số chân digital có các chức năng đặc biệt như sau:
 Chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –
RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông
qua 2 chân này. Kết nối Bluetooth thường thấy nói nôm na chính là kết nối
Serial không dây. Nếu không cần giao tiếp Serial, không nên sử dụng 2 chân này
nếu không cần thiết
 Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phân
giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite().
Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0V
đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.


19
 Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các
chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao
thức SPI với các thiết bị khác.
 LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút

Reset, sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi
chân này được người dùng sử dụng, LED sẽ sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit
(0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board,
có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu cấp điện
áp 2.5V vào chân này thì có thể dùng các chân analog để đo điện áp trong khoảng từ
0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp
I2C/TWI với các thiết bị khác.
2.3 MODULE BLUETOOTH HC-06:
2.3.1 Thông số kỹ thuật
 Điện áp hoạt động: 3.3 ~ 5VDC.
 Điện áp giao tiếp: TTL tương thích 3.3VDC và 5VDC.
 Baud rate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400,
57600, 115200
 Dải tần sóng hoạt động: Bluetooth 2.4GHz
 Sử dụng CSR mainstream Bluetooth chip, Bluetooth V2.0 protocol standards.
 Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền
nhận bình thường 8 mA
 Kích thước của module chính: 28 mm x 15 mm x 2.35 mm
 Thiết lập mặc định:
Baud rate: 9600, N, 8, 1.
Pairing code: 1234.
2.3.2 Sử dụng module Bluetooth HC-06
Module Bluetooth HC06 master/slave dùng để thiết lập kết nối Serial giữa 2
thiết bị bằng sóng Bluetooth. Điểm đặc biệt của module Bluetooth HC-06 là module có
thể hoạt động được ở 2 chế độ: MASTER hoặc SLAVE.


20

Ở chê độ SLAVE: Cần thiết lập kết nối từ smartphone, laptop, USB Bluetooth
để dò tìm module sau đó pair với mã PIN là 1234. Sau khi pair thành công, chúng ta đã
có 1 cổng serial từ xa hoạt động ở baud rate 9600.
Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị Bluetooth khác (1
module Bluetooth HC-06, USB Bluetooth, Bluetooth của laptop...) và tiến hành pair
chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone.
Module Bluetooth HC06 được điều khiển bằng tập lệnh AT để thực hiện các tác
vụ mong muốn. Để Bluetooth module chuyển từ chế độ thông thường qua điều khiển
bằng AT, ta có 2 cách như sau:
Cấp nguồn cho module Bluetooth (VCC và GND) đồng thời cấp mức điện áp
cao (=VCC) cho chân KEY của module Bluetooth. Khi đó giao tiếp bằng tập lệnh AT
với module bằng cổng Serial (Tx và Rx) với baud rate là 38400 (khuyên dùng).
Cấp nguồn cho module Bluetooth trước, sau đó cấp mức điện áp cao cho chân
KEY của module Bluetooth. Lúc này chúng ta có thể giao tiếp với module bằng tập
lệnh AT với baud rate là 9600.Sau khi pair thành công với thiết bị Bluetooth khác, đèn
trên module Bluetooth HC06 sẽ nhấp nháy chậm cho thấy kết nối Serial đã được thiết
lập. Nguồn cung cấp cho module Bluetooth là nguồn từ 3.6V đến 6V. Quá áp sẽ gây
cháy module. Ngoài ra module tương thích với các vi điều khiển 5V mà không cần
chuyển đổi mức giao tiếp 5V về 3.3V như nhiều loại module Bluetooth khác.


21

Hình 2.6 Module Bluetooth HC-06
2.4 Mạch điều khiển động cơ L298N:


22
Hình 2.7 Module L298
2.4.1 Thông số kỹ thuật









Driver: L298N tích hợp hai mạch cầu H.
Điện áp điều khiển: +5 V ~ +12 V
Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)
Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
Dòng của tín hiệu điều khiển: 0 ~ 36mA
Công suất hao phí: 20W (khi nhiệt độ T = 75 )
Nhiệt độ bảo quản: -25 ~ +130

2.4.2 Nối mạch

Hình 2.8 Sơ đồ nối mạch
 Nếu điều khiển 2 Động cơ của robot, cần chú ý bài đấu nối Cực +,- của
động cơ tương ứng với chân +,- của OUTPUT X.
 Tiếp cấp nguồn cho Module L298 như phần giải thích ở trên. Chú ý chọn
Jump cho đúng.
 Nếu dùng 5V và động cơ dưới 1A có thể dùng chân 5V của Arduino, nếu
không nguồn cấp cho động cơ ở L298 phải là nguồn riêng để không làm
hỏng Arduino.
 Các chân số 3,4,5,6 của Arduino sẽ nối tương ứng với IN1, IN2, IN3 và
IN4 của L298.
 Chiều quay của động cơ được điều khiển bằng cách xuất các đầu ra HIGH
hoặc LOW tại các chân INx.



23
Ví dụ: Logic HIGH ở IN1 và IN2 Logic LOW sẽ làm động cơ quay 1 hướng nếu
đặt Logic ngược lại sẽ làm động cơ quay theo hướng khác.
Cần phải nhớ, đây là làm động cơ chỉ quay hết công suất. Nếu muốn thay đổi
tốc độ của nó, cần phải băm xung bằng các chân có hỗ trợ PWM trên Arduino (những
chân có dấu ~).


24

CHƯƠNG 3: NGUYÊN LÝ TỔNG QUÁT VÀ LẬP TRÌNH
3.1 Nguyên lý
3.1.1 Nối dây
Arduino UNO

L298N

3

IN1

4

IN2

5

IN3


6

IN4

HC-06

TX

RX

RX

TX
Bảng 3.1 Sơ đồ nối dây


×