Tải bản đầy đủ (.pdf) (84 trang)

NGHIÊN cứu, xây DỰNG hệ THỐNG GIÁM sát và điều KHIỂN QUA MẠNG môi TRƯỜNG NUÔI TRỒNG cây CẢNH TRONG vườn

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 (4.52 MB, 84 trang )

PHẠM NHẬT QUANG

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SỸ
CÔNG NGHỆ THÔNG TIN

CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN

NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ
ĐIỀU KHIỂN QUA MẠNG MÔI TRƯỜNG NUÔI
TRỒNG CÂY CẢNH TRONG VƯỜN.

PHẠM NHẬT QUANG

2016 - 2018

HÀ NỘI – 2019


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SỸ
NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ
ĐIỀU KHIỂN QUA MẠNG MÔI TRƯỜNG NUÔI
TRỒNG CÂY CẢNH TRONG VƯỜN.

PHẠM NHẬT QUANG
CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN


MÃ SỐ: 8.48.02.018

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. VŨ CHẤN HƯNG

HÀ NỘI – 2019


LỜI CAM ĐOAN
Những nội dung trình bày trong luận văn là những kiến thức các nhân tôi tích
lũy trong quá trình học tập, nghiên cứu, không sao chép lại công trình nghiên cứu
hay luận văn của bất cứ tác giả khác
Các số liệu, hình ảnh, thông tin trong luận văn đều trung thực, do tôi tìm
hiểu, tham khảo từ nhiều nguồn tƣ liệu, các nôi dung trích dẫn đều đƣợc nêu trong
phần tài liệu tham khảo, có nguồn gốc xuất xứ, tên của các tác giả, nhà xuất bản rõ
rang.
Những điều tôi cam đoan hoàn toàn là sự thật, nếu sai, tôi xin chịu mọi hình
thức kỷ luật theo quy định.
Tác giả luận văn

Phạm Nhật Quang

i


LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn chân thành và sâu sắc đến PGS.TS. Vũ Chấn
Hƣng, thầy đã dành nhiều thời gian tận tình truyền đạt kiến thức cũng nhƣ giúp đỡ
hƣớng dẫn em trong suốt quá trình tìm hiểu và nghiên cứu đề tài. Thầy là ngƣời đã
định hƣớng và đƣa ra nhiều góp ý quý báu trong suốt quá trình em thực hiện luận

văn này.
Em xin chân thành cảm ơn tới toàn thể các thầy, cô giảng viên trong khoa
Sau Đại học – Trƣờng Đại học Mở Hà Nội đã dạy bảo tận tình, trang bị cho em
những kiến thức quý báu, bổ ích và tạo điều kiện thuận lợi trong suốt quá trình em
học tập tại trƣờng.
Do có nhiều hạn chế về thời gian và kiến thức nên luận văn không tránh khỏi
những thiếu sót, rất mong nhận đƣợc những ý kiến đóng góp quý báu của các thầy,
cô giảng viên và của các bạn quan tâm.
Cuối cùng, em xin gửi lời chúc sức khỏe và hạnh phúc tới tất cả các quý thầy
cô, quý đồng nghiệp cùng toàn thể gia đình, bạn bè.
Xin chân thành cảm ơn!

ii


MỤC LỤC
Trang
LỜI CAM ĐOAN ........................................................................................................ i
LỜI CẢM ƠN .............................................................................................................ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ............................................... vi
DANH MỤC CÁC HÌNH VẼ................................................................................. viii
MỞ ĐẦU ..................................................................................................................... 1
CHƢƠNG 1.HỆ THỐNG NHÚNG GIÁM SÁT VÀ ĐIỀU KHIỂN QUA MẠNG . 3
1.1. Tổng quan về hệ thống nhúng .......................................................................... 3
1.1.1. Lịch sử phát triển hệ thống nhúng ............................................................ 4
1.1.2. Đặc điểm của hệ thống nhúng ................................................................... 4
1.1.3. Các kiến trúc phần mềm hệ thống nhúng .................................................. 8
1.2. Phân tích hệ thống giám sát và điều khiển qua mạng .................................... 10
1.2.1. Hệ thống giám sát và điều khiển ............................................................. 10
1.2.2. Cấu trúc một hệ thống giám sát và điều khiển qua mạng ....................... 11

1.3. Giới thiệu công nghệ Arduino........................................................................ 13
1.3.1. Lịch sử ra đời .......................................................................................... 13
1.3.2. Phần cứng ................................................................................................ 15
1.3.3. Bo mạch in mở rộng (Shield) .................................................................. 17
1.3.4. Phần mềm ................................................................................................ 17
1.4. Giới thiệu Blynk – hệ thống điều khiển qua mạng ........................................ 19
1.4.1. Thành phần chính trong nền tảng Blynk ................................................. 19
1.4.2. Tính năng, đặc điểm của Blynk .............................................................. 20
1.4.3. Blynk Server............................................................................................ 21
1.5. Lý do lựa chọn giải pháp công nghệ Arduino và Blynk ................................ 24
1.6. Kết luận chƣơng 1 .......................................................................................... 27
CHƢƠNG 2.THIẾT KẾ HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN QUA
MẠNG MÔI TRƢỜNG NUÔI TRỒNG CÂY CẢNH TRONG VƢỜN................. 29
2.1. Khảo sát và phân tích yêu cầu bài toán giám sát và điều khiển qua mạng .... 29
2.1.1. Khảo sát hiện trạng vƣờn cây.................................................................. 29

iii


2.1.2. Yêu cầu bài toán ...................................................................................... 32
2.2. Thiết kế hệ thống tổng quát ............................................................................ 32
2.3. Tính năng các Module thiết bị trong hệ thống ............................................... 34
2.3.1. Board Arduino - UNO ............................................................................. 34
2.3.2. Module ESP8266-01 ............................................................................... 36
2.3.3. Cảm biến độ ẩm đất................................................................................. 37
2.3.4. Quang trở................................................................................................. 39
2.3.5. Cảm biến nhiệt độ - độ ẩm DHT11 ......................................................... 40
2.3.6. Màn hình hiển thị LCD ........................................................................... 42
2.3.7. Relay ....................................................................................................... 43
2.3.8. Module điều khiển và động cơ DC điều khiển mái che .......................... 45

2.3.9. Máy bơm ................................................................................................. 46
2.4. Thiết kế thuật toán giám sát và điều khiển tự động ....................................... 48
2.4.1. Nguyên lý hoạt động hệ thống tƣới tự động ........................................... 48
2.4.2. Nguyên lý hoạt động hệ thống mái che tự động .................................... 49
2.5. Thiết kế hệ thống truyền dữ liệu qua mạng. .................................................. 50
2.6. Kết luận chƣơng 2 .......................................................................................... 51
CHƢƠNG 3.XÂY DỰNG, CÀI ĐẶT VÀ HOÀN THIỆN HỆ THỐNG ................ 52
3.1. Xây dựng hệ thống phần cứng. ...................................................................... 52
3.1.1. Sơ đồ tổng quát hệ thống ........................................................................ 52
3.1.2. Lƣu đồ hệ thống tƣới tự động ................................................................. 53
3.1.3. Lƣu đồ hệ thống mái che tự động ........................................................... 54
3.2. Xây dựng hệ thống phần mềm. ...................................................................... 55
3.2.1. Chƣơng trình hệ thống điều khiển – Arduino UNO ............................... 55
3.2.2. Giao diện ngƣời sử dụng ......................................................................... 55
3.3. Chạy thử và hoàn thiện .................................................................................. 58
3.4. Mạch hoàn thiện ............................................................................................ 60
3.5. Kết luận chƣơng 3 .......................................................................................... 61
KẾT LUẬN ............................................................................................................... 63
DANH MỤC CÁC TÀI LIỆU THAM KHẢO ......................................................... 65
iv


PHỤ LỤC 1 Chƣơng trình hệ thống giám sát và điều khiển qua mạng ................. 66
PHỤ LỤC 2 Chƣơng trình hệ thống điều khiển – Arduino UNO .......................... 69

v


DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
STT


Từ viết tắt

1

API

2

Tiếng Anh

Tiếng Việt

Application P

Giao diện lập trình ứng dụng

ARM

rogramming Interface
Advanced RISC Machine

Một loại cấu trúc vi xử lý kiểu

3

CPU

Central Processing Unit


Bộ xử lý trung tâm

4

CRC

Cyclic Redundancy Check

Kiểm dƣ chu trình

5

DIY

Do it yourself

Tự tay làm lấy

6

EEPROM

Chip nhớ không bay hơi

7

GPS

Electrically Erasable
Programmable Read-Only

Memory
Global Positioning System

8

I/O

Input/Output

Vào/ra

9

IDE

Integrated Development

Môi trƣờng phát triển tích hợp

10

IoT

Internet of Things

11

ISP

Internet Service Provide


12

LCD

Liquid crystal display

Màn hình tinh thể lỏng

13

LED

Light Emitting Diode

Điốt phát quang

14

MIPS

Microprocessor without
Interlocked Pipeline Stages

Kiến trúc bộ tập lệnh RISC

15

PC


Personal Computer

Máy tính cá nhân

16

PDA

Personal Digital Assistant

Thiết bị kỹ thuật số cá nhân

Environment

vi

RISC

Hệ thống Định vị Toàn cầu

Mạng lƣới vạn vật kết nối
Internet
Nhà cung cấp dịch vụ nối
mạng


STT

Từ viết tắt


Tiếng Anh

17

RISC

Reduced Instructions Set
Computer

Máy tính với tập lệnh đơn
giản hóa

18

ROM

Read-Only Memory

Bộ nhớ chỉ đọc

19

SRAM

Static Random Access
Memory

Bộ nhớ truy cập ngẫu nhiên
tĩnh


vii

Tiếng Việt


DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Hệ thống giám sát và điều khiển qua mạng .......................................... 12
Hình 1.2 Những thành viên khởi xƣớng Arduino. ............................................... 13
Hình 1.3 Các board Arduino mẫu ........................................................................ 16
Hình 1.4 Các shield Arduino điển hình................................................................ 17
Hình 1.5 Arduino software IDE ........................................................................... 17
Hình 1.6 Phần mềm Blynk trên thiết bị di động .................................................. 20
Hình 1.7 Mô hình của Blynk ................................................................................ 21
Hình 1.8 Sử dụng Blynk....................................................................................... 23
Hình 1.9 Virtual Pins............................................................................................ 24
Hình 2.1 Khung cảnh tổng quan khu vƣờn .......................................................... 29
Hình 2.2 Sơ đồ tổng quát của hệ thống giám sát và điều khiển qua mạng
môi trƣờng nuôi trồng cây cảnh trong vƣờn ........................................................ 33
Hình 2.3 Board Arduino UNO ............................................................................. 34
Hình 2.4 Module ESP8266-01 ............................................................................. 36
Hình 2.5 Module cảm biến độ ẩm đất .................................................................. 38
Hình 2.6 Quang trở............................................................................................... 39
Hình 2.7 Mạch đọc quang trở bằng Arduino UNO .............................................. 40
Hình 2.8 Cảm biến nhiệt độ - độ ẩm DHT11 ....................................................... 41
Hình 2.9 LCD ....................................................................................................... 42
Hình 2.10 Relay 12V............................................................................................ 44
Hình 2.11 Relay 5V.............................................................................................. 44
Hình 2.12 Modul L9110 ....................................................................................... 45
Hình 2.13 Động cơ bƣớc DC 12V ....................................................................... 46
Hình 2.14 Máy bơm phun sƣơng Fog – 2106 và phụ kiện .................................. 47

Hình 2.15 Máy bơm HF-8379 24V DC ............................................................... 48
Hình 3.1 Sơ đồ tổng quát ..................................................................................... 52
Hình 3.2 Blynk App ............................................................................................. 55
Hình 3.3 Mạch Arduino UNO hoàn thiện ............................................................ 60
Hình 3.4 Hệ thống phần cứng hoàn thiện ............................................................ 61
viii


MỞ ĐẦU
Trong sự phát triển mạnh mẽ của khoa học kĩ thuật với nền kinh tế trí thức và
xu hướng hội nhập toàn cầu như hiện nay, thế giới và Việt Nam đang thực hiện việc
kết hợp giữa các ngành thuộc lĩnh vực công nghệ cao, đó là lĩnh vực khoa học dưới
3 ngọn cờ: Máy tính, Điện tử - Viễn thông và Điều khiển tự động mà ta thường gọi
là “3C” (Computer – Communication – Control). Có thể nói, các quá trình sản xuất
và quản lí hiện nay như các hệ thống đo lường điều khiển tự động trong sản xuất
công nghiệp; các hệ thống di động và không dây tiên tiến, các hệ thống thông tin vệ
tinh, các hệ thống thông tin dựa trên web, chính phủ điện tử, thương mại điện tử,
các cơ sở dữ liệu ngành kinh tế và của quốc gia, các hệ thống thiết bị y tế hiện đại,
các thiết bị điện tử dân dụng… đều là sản phẩm của sự kết hợp giữa các lĩnh vực
khoa học trên.
Cuộc cách mạng công nghiệp 4.0 tác động mạnh mẽ đến việc hình thành các
dự án nghiên cứu, đầu tư và xây dựng nhằm phát triển nhiều lĩnh vực như: kỹ thuật,
công nghiệp, nông nghiệp, xử lý tác động môi trường, chống biến đổi khí hậu, phát
triển năng lượng xanh… Ở các nước phát triển như Anh, Pháp, Mỹ…, việc ứng
dụng tự động hóa vào hoạt động sản xuất đã rất phát triển, góp phần đưa các nước
đó trở thành các cường quốc giàu mạnh có vị thế cao trên trường quốc tế. Các hệ
thống tự động hóa đã được chế tạo trên nhiều công nghệ khác nhau. Ta có thể thấy
các máy móc thiết bị tự động bằng các cam chốt cơ khí, các hệ thống tự động hoạt
động bằng nguyên lý khí nén, rơle cơ điện, mạch điện tử tương tự, mạch điện tử
số… Các hệ thống này có chức năng xử lý và mức tự động thấp so với các hệ thống

tự động hiện đại được xây dựng trên nền tảng của công nghệ thông tin. Và sự phát
triển như vũ bão của công nghệ thông tin kéo theo sự phát triển không ngừng của
lĩnh vực tự động hóa, các thành tựu của công nghệ phần cứng, công nghệ phần mềm
được áp dụng, phát triển có hiệu quả cho các hệ thống điều khiển tự động,
Ngành nông nghiệp là xương sống của nền văn minh nhân loại nhưng nó lại
là một trong những lĩnh vực cuối cùng tiến vào nền kinh tế kết nối – Internet vạn
vật (Internet of things – IoT). Những thách thức trong vấn đề lương thực toàn cầu
đòi hỏi người làm nông nghiệp phải tìm kiếm những phương thức tốt hơn, điều đó
khiến cho công nghệ IoT trở nên có ý nghĩa hơn bao giờ hết. Theo dự đoán được
đưa ra trong báo cáo của Beecham Research (BRL) - công ty có trụ sở tại Anh
chuyên tư vấn, phân tích và nghiên cứu thị trường công nghệ - thì việc ứng dụng
IoT vào nông nghiệp sẽ đẩy năng suất của ngành vào năm 2050 lên 70%. Tuy

1


nhiên, IoT không chỉ mang lại những khoản lợi nhuận tăng thêm từ việc cắt giảm
được một số khoản chi và đẩy mạnh năng suất mà những cảm biến được sử dụng
trong sản xuất còn có khả năng cải thiện môi trường sống của các loài gia súc và cắt
giảm sự tiêu thụ các tài nguyên thiên nhiên, điển hình nhất là nước sạch. Những cải
tiến về cảm biến, big data, hạ tầng mạng… sẽ mang tới một cuộc cách mạng trong
nông nghiệp. Dữ liệu cảm biến trở nên đặc biệt hữu dụng trong nông nghiệp hiện
đại, bởi khả năng cung cấp những thông tin cụ thể cho người nông dân biết chính
xác điều một mảnh vườn, trang trại cần gì vào bất cứ thời điểm nào.
Ví dụ trong việc trồng cây cảnh, đặt một cảm biến đo độ ẩm đất tại một điểm
nào đó trong vườn có thể cho người nông dân biết chính xác khi nào khu vực đó cần
được tưới nước. Với hệ thống này, người nông dân sẽ tránh được tình trạng lãng phí
nước cũng như gây hại cho cây do không kịp thời phát hiện tình trạng khô hạn. Bên
cạnh đó cảm biến có thể được kết nối với một ứng dụng cảnh báo, có thể kết nối
trực tiếp tới một hệ thống thủy lợi để quá trình có thể hoàn toàn trở nên tự động.

Công nghệ này cho phép người nông dân có thể điều khiển quá trình ở một mức độ
nhất định, nhưng cũng tạo điều kiện cho mô hình canh tác trong nhà, cho phép đạt
đến khả năng quản lý toàn diện các điều kiện canh tác. Vì vậy, việc áp dụng mô
hình hệ thống giám sát và điều khiển qua mạng môi trường nuôi trồng cây cảnh
trong vườn là một công việc hữu ích, hỗ trợ tích cực công việc chăm sóc cây cảnh.

2


CHƢƠNG 1. HỆ THỐNG NHÚNG GIÁM SÁT VÀ ĐIỀU
KHIỂN QUA MẠNG.
1.1.

Tổng quan về hệ thống nhúng.
Hệ thống nhúng (tiếng Anh: embedded system) là một thuật ngữ để chỉ một

hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống
mẹ. Đó là hệ thống máy tính ứng dụng, bao gồm phần cứng và phần mềm cài đặt
trong đó, được thiết kế tích hợp trong một thiết bị hoặc một hệ thống để thực hiện
một hoặc một nhóm chức năng chuyên biệt cụ thể, phục vụ các bài toán chuyên
dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền
tin... Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động
hoá cao.
Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên
biệt nào đó. Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân,
một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi
kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng
chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung. Vì hệ
thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể
tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất. Các hệ thống nhúng

thường được sản xuất hàng loạt với số lượng lớn. Hệ thống nhúng rất đa dạng,
phong phú về chủng loại. Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ
kĩ thuật số và máy chơi nhạc MP3, những sản phẩm lớn như hệ thống điều khiển
động cơ ô tô, điều khiển tàu điện, điều khiển đèn giao thông, bộ kiểm soát trong nhà
máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân... Xét về độ phức tạp, hệ
thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều
đơn vị, các thiết bị ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn.
Dưới sự phát triển mạnh mẽ và nhanh chóng của khoa học và công nghệ, các
hệ thống nhúng như các thiết bị PDA, máy tính cầm tay, điện thoại thông minh…
đã thực hiện được nhiều chức năng hơn ban đầu nên chúng dần tách ra thành các
thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối đến nhiều thiết bị
ngoại vi.
3


1.1.1. Lịch sử phát triển hệ thống nhúng
Hệ thống nhúng đầu tiên là Apollo Guidance Computer (Máy tính Dẫn
đường Apollo) được phát triển bởi Charles Stark Draper tại phòng thí nghiệm của
trường đại học MIT. Hệ thống nhúng được sản xuất hàng loạt đầu tiên là máy
hướng dẫn cho tên lửa quân sự vào năm 1961. Nó là máy hướng dẫn Autonetics D17, được xây dựng sử dụng những bóng bán dẫn và một đĩa cứng để duy trì bộ nhớ.
Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng đã
giảm giá và phát triển mạnh mẽ về khả năng xử lý. Bộ vi xử lý đầu tiên hướng đến
người tiêu dùng là Intel 4004, được phát minh phục vụ máy tính điện tử và những
hệ thống nhỏ khác. Tuy nhiên nó vẫn cần các chip nhớ ngoài và những hỗ trợ khác.
Vào những năm cuối 1970, những bộ xử lý 8 bit đã được sản xuất, nhưng nhìn
chung chúng vẫn cần đến những chip nhớ bên ngoài.
Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn đến
nhiều thành phần có thể đưa vào một chip xử lý. Các bộ vi xử lý được gọi là các vi
điều khiển và được chấp nhận rộng rãi. Với giá cả thấp, các vi điều khiển đã trở nên
rất hấp dẫn để xây dựng các hệ thống chuyên dụng. Đã có một sự bùng nổ về số

lượng các hệ thống nhúng trong tất cả các lĩnh vực thị trường và số các nhà đầu tư
sản xuất theo hướng này. Vào cuối những năm 80, các hệ thống nhúng đã trở nên
phổ biến trong hầu hết các thiết bị điện tử và khuynh hướng này vẫn còn tiếp tục
cho đến nay.[11]
1.1.2. Đặc điểm của hệ thống nhúng
Hệ thống nhúng thường có một số đặc điểm chung như sau:
• Các hệ thống nhúng được thiết kế để thực hiện một số chức năng chuyên
biệt nào đó. Đây là điểm khác biệt so với các hệ thống máy tính khác như máy tính
cá nhân hoặc các siêu máy tính có thể thực hiện nhiều chức năng khác nhau với
những phép tính phức tạp. Tính chuyên dụng giúp nâng cao tính dễ sử dụng và tiết
kiệm tài nguyên.
• Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ
thống phức tạp nằm trong thiết bị mà nó điều khiển.

4


• Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được
lưu trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là trong một
ổ đĩa. Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn
phím, màn hình hoặc có nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp Sau
đây, ta sẽ đi sâu, xem xét cụ thể đặc điểm của các thành phần của hệ thống nhúng.
a) Giao diện:
Các hệ thống nhúng có thể không có giao diện (đối với những hệ thống đơn
nhiệm) hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các hệ điều
hành trong các thiết bị để bàn. Đối với các hệ thống đơn giản, thiết bị nhúng sử
dụng nút bấm, đèn LED và hiển thị chữ cỡ nhỏ hoặc chỉ hiển thị số, thường đi kèm
với một hệ thống menu đơn giản.
Còn trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng hoặc
có các nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp mà tối thiểu

hóa được khoảng không gian cần sử dụng; ý nghĩa của các nút bấm có thể thay đổi
theo màn hình và các lựa chọn. Các hệ thống nhúng thường có một màn hình với
một nút bấm dạng cần điểu khiển (joystick button). Sự phát triển mạnh mẽ của
mạng toàn cầu đã mang đến cho những nhà thiết kế hệ nhúng một lựa chọn mới là
sử dụng một giao diện web thông qua việc kết nối mạng. Điều này có thể giúp tránh
được chi phí cho những màn hình phức tạp nhưng đồng thời vẫn cung cấp khả năng
hiển thị và nhập liệu phức tạp khi cần đến, thông qua một máy tính khác. Điều này
là hết sức hữu dụng đối với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn. Ví dụ,
các router là các thiết bị đã ứng dụng tiện ích này.
b) Kiến trúc CPU:
Các bộ xử lý trong hệ thống nhúng có thể được chia thành hai loại: vi xử lý
và vi điều khiển. Các vi điều khiển thường có các thiết bị ngoại vi được tích hợp
trên chip nhằm giảm kích thước của hệ thống. Có rất nhiều loại kiến trúc CPU được
sử dụng trong thiết kế hệ nhúng như ARM, MIPS, Coldfire/68k, PowerPC, x86,
PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều
này trái ngược với các loại máy tính để bàn, thường bị hạn chế với một vài kiến trúc
máy tính nhất định. Các hệ thống nhúng có kích thước nhỏ và được thiết kế để hoạt

5


động trong môi trường công nghiệp thường lựa chọn PC/104 và PC/104++ làm nền
tảng. Những hệ thống này thường sử dụng DOS, Linux, NetBSD hoặc các hệ điều
hành nhúng thời gian thực như QNX hay VxWorks. Còn các hệ thống nhúng có
kích thước rất lớn thường sử dụng một cấu hình thông dụng là hệ thống on chip
(System on a chip – SoC), một bảng mạch tích hợp cho một ứng dụng cụ thể (an
application-specific integrated circuit – ASIC). Sau đó nhân CPU được mua và
thêm vào như một phần của thiết kế chip. Một chiến lược tương tự là sử dụng
FPGA (field-programmable gate array) và lập trình cho nó với những thành phần
nguyên lý thiết kế bao gồm cả CPU.

c) Thiết bị ngoại vi:
Hệ thống nhúng giao tiếp với bên ngoài thông qua các thiết bị ngoại vi, ví dụ
như:
- Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485...
- Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC và
ESSI
- Universal Serial Bus (USB)
- Networks: Controller Area Network, LonWorks...
- Bộ định thời: PLL(s), Capture/Compare và Time Processing Units
- Discrete IO: General Purpose Input/Output (GPIO)
d) Công cụ phát triển:
Tương tự như các sản phẩm phần mềm khác, phần mềm hệ thống nhúng
cũng được phát triển nhờ việc sử dụng các trình biên dịch (compilers), chương trình
dịch hợp ngữ (assembler) hoặc các công cụ gỡ rối (debuggers). Tuy nhiên, các nhà
thiết kế hệ thống nhúng có thể sử dụng một số công cụ chuyên dụng như:
• Bộ gỡ rối mạch hoặc các chương trình mô phỏng (emulator)
• Tiện ích để thêm các giá trị checksum hoặc CRC vào chương trình, giúp hệ
thống nhúng có thể kiểm tra tính hợp lệ của chương trình đó.
• Đối với các hệ thống xử lý tín hiệu số, người phát triển hệ thống có thể sử
dụng phần mềm workbench như MathCad hoặc Mathematica để mô phỏng các phép
toán.

6


• Các trình biên dịch và trình liên kết (linker) chuyên dụng được sử dụng để
tối ưu hóa một thiết bị phần cứng.
• Một hệ thống nhúng có thể có ngôn ngữ lập trình và công cụ thiết kế riêng
của nó hoặc sử dụng và cải tiến từ một ngôn ngữ đã có sẵn.
Các công cụ phần mềm có thể được tạo ra bởi các công ty phần mềm chuyên

dụng về hệ thống nhúng hoặc chuyển đổi từ các công cụ phát triển phần mềm GNU.
Đôi khi, các công cụ phát triển dành cho máy tính cá nhân cũng được sử dụng nếu
bộ xử lý của hệ thống nhúng đó gần giống với bộ xử lý của một máy PC thông
dụng.[11]
e) Tương tác với thế giới thực
Hệ thống nhúng tương tác với thế giới bên ngoài với nhiều cách:
- Cảm nhận môi trường: cảm biến nhiệt độ, độ ẩm, ánh sáng, trọng lượng…,
cảm nhận bằng tín hiệu điện (máy dò nhiễu điện từ)
- Tác động trở lại môi trường (hú còi báo động khi phát hiện khói trong tòa
nhà…)
- Tốc độ tương tác phải đáp ứng thời gian thực (hệ thống còi báo hỏa, hệ
thống chống trộm trên ô tô,…)
- Có thể có hoặc không có giao diện giao tiếp với người dùng như máy tính
cá nhân. Với những hệ thống đơn giản, thiết bị nhúng sử dụng LCD nhỏ, Joystick,
LED, nút bấm, chỉ thị chữ hoặc số và thường đi kèm với một menu đơn giản. Hiện
nay chúng ta cũng có thể kết nối đến hệ thống nhúng thông qua giao diện Web, việc
này cho phép giảm thiểu chi phí cho màn hình nhưng vẫn cung cấp khả năng hiển
thị và nhập liệu thuận tiện thuận tiện thông qua mạng và máy tính khác.
f) Chất lượng và độ tin cậy:
Nhiều loại thiết bị nhúng có những yêu cầu rất cao về chất lượng, tính ổn
định và độ tin cậy. Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng
là sẽ chạy hàng năm trời liên tục mà không bị lỗi hoặc có thể khôi phục hệ thống
khi gặp lỗi. Lỗi của hệ thống nhúng có thể gây ra tai nạn khủng khiếp: Hệ thống
điều khiển máy bay, tên lửa, hệ thống điều khiển động cơ ô tô…Lỗi trên hệ thống
nhúng có thể không sửa được (vd: vệ tinh nhân tạo), nếu sửa được thì chi phí cũng

7


rất cao (thu hồi sản phẩm hoặc thiết kế lại toàn bộ…) Vì vậy việc phát triển hệ

thống nhúng yêu cầu quy trình kiểm tra - kiểm thử rất cẩn thận. Ngoài ra, các thiết
bị rời không đáng tin cậy như ổ đĩa, công tắc hoặc nút bấm thường bị hạn chế sử
dụng. Việc khôi phục hệ thống khi gặp lỗi có thể được thực hiện bằng cách sử dụng
các kỹ thuật như watchdog timer – nếu phần mềm không đều đặn nhận được các tín
hiệu watchdog định kì thì hệ thống sẽ bị khởi động lại. Thông thường với những hệ
thống yêu cầu độ ACTIVE cao thì việc trang bị 1 hệ thống dự phòng, backup là
điều chắc chắn.
1.1.3. Các kiến trúc phần mềm hệ thống nhúng
Một số loại kiến trúc phần mềm thông dụng trong các hệ thống nhúng như
sau:
a) Vòng lặp kiểm soát đơn giản
Theo thiết kế này, phần mềm được tổ chức thành một vòng lặp đơn giản.
Vòng lặp gọi đến các chương trình con, mỗi chương trình con quản lý một phần của
hệ thống phần cứng hoặc phần mềm.
b) Hệ thống ngắt điều khiển
Các hệ thống nhúng thường được điểu khiển bằng các ngắt. Có nghĩa là các
tác vụ của hệ thống nhúng được kích hoạt bởi các loại sự kiện khác nhau. Ví dụ,
một ngắt có thể được sinh ra bởi một bộ định thời sau một chu kỳ được định nghĩa
trước, hoặc bởi sự kiện khi cổng nối tiếp nhận được một byte nào đó.
Loại kiến trúc này thường được sử dụng trong các hệ thống có bộ quản lý sự
kiện đơn giản, ngắn gọn và cần độ trễ thấp. Hệ thống này thường thực hiện một tác
vụ đơn giản trong một vòng lặp chính. Đôi khi, các tác vụ phức tạp hơn sẽ được
thêm vào một cấu trúc hàng đợi trong bộ quản lý ngắt để được vòng lặp xử lý sau
đó. Lúc này, hệ thống gần giống với kiểu nhân đa nhiệm với các tiến trình rời rạc.
c) Đa nhiệm tương tác
Một hệ thống đa nhiệm không ưu tiên cũng gần giống với kỹ thuật vòng lặp
kiểm soát đơn giản ngoại trừ việc vòng lặp này được ẩn giấu thông qua một giao
diện lập trình API. Các nhà lập trình định nghĩa một loạt các nhiệm vụ, mỗi nhiệm
vụ chạy trong một môi trường riêng của nó. Khi không cần thực hiện nhiệm vụ đó


8


thì nó gọi đến các tiến trình con tạm nghỉ (bằng cách gọi "pause", "wait", "yield"
…).
Ưu điểm và nhược điểm của loại kiến trúc này cũng giống với kiểm vòng lặp
kiểm soát đơn giản. Tuy nhiên, việc thêm một phần mềm mới được thực hiện dễ
dàng hơn bằng cách lập trình một tác vụ mới hoặc thêm vào hàng đợi thông dịch
(queue-interpreter).
d) Đa nhiệm ưu tiên
Ở loại kiến trúc này, hệ thống thường có một đoạn mã ở mức thấp thực hiện
việc chuyển đổi giữa các tác vụ khác nhau thông qua một bộ định thời. Đoạn mã
này thường nằm ở mức mà hệ thống được coi là có một hệ điều hành và vì thế cũng
gặp phải tất cả những phức tạp trong việc quản lý đa nhiệm.
Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đều cần phải
được tách biệt một cách chính xác. Việc truy cập tới các dữ liệu chia sẻ có thể được
quản lý bằng một số kỹ thuật đồng bộ hóa như hàng đợi thông điệp (message
queues), semaphores … Vì những phức tạp nói trên nên một giải pháp thường được
đưa ra đó là sử dụng một hệ điều hành thời gian thực. Lúc đó, các nhà lập trình có
thể tập trung vào việc phát triển các chức năng của thiết bị chứ không cần quan tâm
đến các dịch vụ của hệ điều hành nữa.
e) Vi nhân (Microkernel) và nhân ngoại (Exokernel)
Khái niệm vi nhân (microkernel) là một bước tiếp cận gần hơn tới khái niệm
hệ điều hành thời gian thực. Lúc này, nhân hệ điều hành thực hiện việc cấp phát bộ
nhớ và chuyển CPU cho các luồng thực thi. Còn các tiến trình người dùng sử dụng
các chức năng chính như hệ thống file, giao diện mạng lưới,… Nói chung, kiến trúc
này thường được áp dụng trong các hệ thống mà việc chuyển đổi và giao tiếp giữa
các tác vụ là nhanh.
Còn nhân ngoại (exokernel) tiến hành giao tiếp hiệu quả bằng cách sử dụng
các lời gọi chương trình con thông thường. Phần cứng và toàn bộ phần mềm trong

hệ thống luôn đáp ứng và có thể được mở rộng bởi các ứng dụng.
f) Nhân khối (monolithic kernels)

9


Trong kiến trúc này, một nhân đầy đủ với các khả năng phức tạp được
chuyển đổi để phù hợp với môi trường nhúng. Điều này giúp các nhà lập trình có
được một môi trường giống với hệ điều hành trong các máy để bàn như Linux hay
Microsoft Windows và vì thế rất thuận lợi cho việc phát triển. Tuy nhiên, nó lại đòi
hỏi đáng kể các tài nguyên phần cứng làm tăng chi phí của hệ thống. Một số loại
nhân khối thông dụng là Embedded Linux và Windows CE. Mặc dù chi phí phần
cứng tăng lên nhưng loại hệ thống nhúng này đang tăng trưởng rất mạnh, đặc biệt là
trong các thiết bị nhúng mạnh như Wireless router hoặc hệ thống định vị GPS. Lý
do của điều này là:
• Hệ thống này có cổng để kết nối đến các chip nhúng thông dụng
• Hệ thống cho phép sử dụng lại các đoạn mã sẵn có phổ biến như các trình
điều khiển thiết bị, Web Servers, Firewalls, …
• Việc phát triển hệ thống có thể được tiến hành với một tập nhiều loại đặc
tính, chức năng còn sau đó lúc phân phối sản phẩm, hệ thống có thể được cấu hình
để loại bỏ một số chức năng không cần thiết. Điều này giúp tiết kiệm được những
vùng nhớ mà các chức năng đó chiếm giữ.
• Hệ thống có chế độ người dùng để dễ dàng chạy các ứng dụng và gỡ rối.
Nhờ đó, quy trình phát triển được thực hiện dễ dàng hơn và việc lập trình có tính
linh động hơn.
• Có nhiều hệ thống nhúng thiếu các yêu cầu chặt chẽ về tính thời gian thực
của hệ thống quản lý. Còn một hệ thống như Embedded Linux có tốc độ đủ nhanh
để trả lời cho nhiều ứng dụng. Các chức năng cần đến sự phản ứng nhanh cũng có
thể được đặt vào phần cứng.[11]
1.2.


Hệ thống giám sát và điều khiển qua mạng.

1.2.1. Hệ thống giám sát và điều khiển
Các hệ thống giám sát cho phép các thông tin dữ liệu của các quá trình sản
xuất hoặc các lắp đặt vật lý được theo dõi và giám sát. Ví dụ, các thông tin được thu
thập thông qua các thiết bị thu thập dữ liệu, chúng sẽ xử lý các thông tin, phân tích,
và lưu trữ, và sẽ gửi các thông tin này tới người dùng, nhằm hỗ trợ con người trong
quá trình điều khiển từ xa.

10


Để thực hiện được các tính năng, các hệ thống giám sát và điều khiển nhận
diện các tag thông tin, đó là các biến số hoặc chữ cái liên quan tới các ứng dụng có
thể thực hiện bằng các hàm máy tính (toán học, logic, vector, hoặc các chuỗi ký tự)
hoặc biểu diễn các điểm vào/ra của quá trình điều khiển. Trong trường hợp này,
tương ứng với các biến của quá trình thực tế (ví dụ, nhiệt độ, mức, lưu lượng,…)
thể hiện với một kết nối giữa bộ điều khiển và hệ thống. Các thông tin dựa vào các
giá trị của các tag đã được thu thập và biểu diễn cho người dùng.
Các hệ thống giám sát và điều khiển cũng có thể kiểm tra các điều kiện cảnh
báo, xác định khi nào giá trị tag vượt qua dải hoặc điều kiện đã định trước; chúng ta
có thể lập trình ghi nhận lại các giá trị vào cơ sở dữ liệu, kích hoạt các âm thanh, tin
nhắn, thay đổi màu sắc, gửi tin nhắn, email….
1.2.2. Cấu trúc một hệ thống giám sát và điều khiển qua mạng
Gồm các thành phần cơ bản sau:
1) Các thiết bị cảm biến: gồm một hoặc nhiều bộ cảm biến được kết nối với các
thiết bị được điều khiển và giám sát bởi các hệ thống để chuyển đổi các thông số vật
ý, như tốc độ, mức nhiệt độ và mức nước thành các tín hiệu số và tương tự, có thể
đọc được.

2) Các thiết bị chấp hành là các thiết bị thực thi nhiệm vụ trong hệ thống, thực
hiện đóng/mở các thiết bị.
3) Module điều khiển: là các thiết bị chính của các hệ thống, sẽ chịu trách
nhiệm tổng hợp thông tin thu thập được và hoạt động phù hợp với các sự kiện được
thực hiện; Quá trình thu thập và điều khiển dữ liệu bắt nguồn từ các trạm ở xa, các
khối điều khiển logic khả trình PLC (Programmable Logic Controllers) hoặc các
khối thiết bị vào ra đầu cuối từ xa RTU (Remote Terminal Unit), với việc đọc các
giá trị hiện tại của các thiết bị đang được kết nối tới bộ thu thập PLC/RTU và được
điều khiển tương ứng. PLC và RTU là các thiết bị tính toán riêng, và được sử dụng
với các kiểu bố trí để độc các đầu vào, thực hiện tính toán và điều khiển, và đưa tín
hiệu ra đầu ra. Sự khác nhau giữa PLC và RTU là ở phần ngôn ngữ lập trình và điều
khiển đầu vào/ra mềm dẻo hơn, trong khi cấu trúc phân tán giữa các CPU (Central

11


Process Unit-Thiết bị xử lý trung tâm) và các card vào/ra, độ chính xác hơn và trình
tự các sự kiện.
4) Mạng truyền thông để trao đổi các thông tin giám sát và điều khiển đến giao
diện người dùng; có thể thực hiện bằng cáp Ethernet, cáp quang, các đường truyền
thuê bao hoặc quay số cho dữ liệu, các sóng radio…
5) Giao diện người dùng: hiển thị quá trình xử lý dữ liệu để người vận hành
giám sát và điều khiển các quá trình hoạt động của hệ thống.
Các thiết bị chấp hành sẽ kết nối vào các đầu vào/ra của bộ điều khiển. Bộ
điều khiển này sau đó sẽ kết nối đến bộ định tuyến (router) rồi từ đó kết nối với
Internet. Mỗi bộ điều khiển được xác định bởi cặp địa chỉ IP-Port của router, do đó
các máy tính bất kỳ trên mạng Internet có thể kết nối chính xác tới mỗi bộ điều
khiển này. Người dùng, với phần mềm được cài thêm, khi kết nối với Internet có thể
truy cập vào hệ thống và tương tác điều khiển các thiết bị một cách dễ dàng. Việc
điều khiển ở đây là 2 chiều, trong đó, người dùng không chỉ đơn thuần là gửi lệnh

điều khiển bật/tắt mà còn có thể giám sát được thiết bị nhờ thông tin phản hồi từ các
thiết bị, cảm biến về trạng thái làm việc hiện tại.

Hình 1.1 Hệ thống giám sát và điều khiển qua mạng
Internet đã được sử dụng ngày càng phổ biến như một các thức truyền thông
trong các hệ thống giám sát và điều khiển qua mạng. Cùng với công nghệ web, và

12


các tiêu chuẩn như Ethernet, TCP/IP, HTTP, và HTML, có thể thực hiện việc truy
cập, chia sẻ dữ liệu trong các khu vực sản xuất cũng như các khu vực giám sát điều khiển khác nhau trong các nhà máy. Thông qua các trình duyệt web (Internet
Browser), chúng ta có thể điều khiển các máy móc được bố trí bất kỳ đâu trên thế
giới theo thời gian thực. Trình duyệt sẽ trao đổi các webserver thông qua giao thức
http, và sau khi có các yêu cầu liên quan tới các hoạt động dự kiến đã được gửi tới
các máy chấp hành, các thiết bị sẽ phản hồi và thể hiện trên các trang HTML.
Một số ưu thế khi sử dụng Internet và trình duyệt web với vai trò là giao diện
mô phỏng của hệ thống giám sát và điều khiển qua mạng với cơ chế tương tác đơn
giản, nhiều người có thể sử dụng, hệ thống yêu cầu bảo trì thấp, và chỉ phải can
thiệp ở mức server (máy chủ).
1.3.

Giới thiệu công nghệ Arduino.

1.3.1. Lịch sử ra đời
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY trên toàn
thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị
trường thiết bị di động. Số lượng người dùng cực lớn và đa dạng với trình độ trải
rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng
(hình 1.1) phải ngạc nhiên về mức độ phổ biến.


`
Hình 1.2 Những thành viên khởi xƣớng Arduino
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác
với nhau hoặc với môi trường được thuận lợi hơn. 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

13


Atmel 32-bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6
chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng
khác nhau.
Arduino là gì mà có thể khiến ngay cả những sinh viên và nhà nghiên cứu tại
các trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng;
hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK
dùng để phát triển các ứng dụng Android tương tác với cảm biến và các thiết bị
khác. Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với
các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm
nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một
ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu
về điện tử và lập trình. Và điều làm nên hiện tượng Arduino chính là mức giá rất
thấp và tính chất nguồn mở từ phần cứng tới phần mềm. Chỉ với khoảng 200 nghìn
đồng, người dùng đã có thể sở hữu một board Arduino có 20 ngõ I/O có thể tương
tác và điều khiển chừng ấy thiết bị.
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên
trại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy.
Vào thời điểm đó các sinh viên sử dụng một "BASIC Stamp" (con tem Cơ Bản) có
giá khoảng $100, xem như giá dành cho sinh viên. Massimo Banzi, một trong
những người sáng lập, giảng dạy tại Ivrea. Cái tên "Arduino" đến từ một quán bar

tại Ivrea, nơi một vài nhà sáng lập của dự án này thường xuyên gặp mặt. Bản thân
quán bar này có được lấy tên là Arduino, Bá tước của Ivrea, và là vua của Italy từ
năm 1002 đến 1014. Lý thuyết phần cứng được đóng góp bởi một sinh viên người
Colombia tên là Hernando Barragan. Sau khi nền tảng Wiring hoàn thành, các nhà
nghiên cứu đã làm việc với nhau để giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với
cộng đồng mã nguồn mở. Trường này cuối cùng bị đóng cửa, vì vậy các nhà nghiên
cứu, một trong số đó là David Cuarlielles, đã phổ biến ý tưởng này. Mặc dù hầu như
không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt
nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên. Hiện nay

14


Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã
sản sinh ra Arduino.
1.3.2. Phần cứng
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ
sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác. Một khía cạnh
quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết
nối với CPU của board với các Module thêm vào có thể dễ dàng chuyển đổi, được
gọi là shield. Vài shield truyền thông với board Arduino trực tiếp thông qua các
chân khách nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²Cnhiều shield có thể được xếp chồng và sử dụng dưới dạng song song. Arduino chính
thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168,
ATmega328, ATmega1280, và ATmega2560. Một vài các bộ vi xử lý khác cũng
được sử dụng bởi các mạch Aquino tương thích. Hầu hết các mạch gồm một bộ điều
chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng
ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8
MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị. Một
vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép
đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác

thường phải cần một bộ nạp bên ngoài. Điều này giúp cho việc sử dụng Arduino
được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp
chương trình.
Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board
được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy
thuộc vào đời phần cứng. Các board Serial Arduino có chứa một mạch chuyển đổi
giữa RS232 sang TTL. Các board Arduino hiện tại được lập trình thông qua cổng
USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232. Vài
biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board
adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các
phương thức khác. (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống
thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)

15


×