ứng dụng arduino trên matlab
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
LỜI GIỚI THIỆU
Từ thuở còn học cấp 1 tôi luôn mong ước có một chiếc xe điều khiển từ xa hoặc
một chiếc máy bay trực thăng.khi mà giấc mơ đó thành hiện thực tôi lại thích tìm hiểu
cấu tạo của nó, nhiều câu hỏi trong đầu tôi đặt ra :” sao nó có thể chạy được, cấu tạo
của nó ra sao” máu công nghệ dường như đã ăn vào con người tôi ngay từ nhỏ và rồi
khi lớn tôi quyết tâm theo chuyên ngành điện tử.
Và rồi sau sự tìm tòi và hướng dẫn của giáo viên tôi biết tới arduino.
bây giờ, nếu bạn muốn bật tắt một bóng đèn một cách tự động, đảo hướng một mô tơ
một cách dễ dàng, đọc tín hiệu của các cảm biến thì bạn cần một mạch arduino. hãy
nghĩ một cách đơn giản, bạn muốn điều khiển, quản lý, ... thứ gì liên quan đến điện tử
thì arduino sẽ giúp bạn rất nhiều! arduino ra đời tại thị trấn ivrea, nước ý và được đặt
theo tên một vị vua vào thế kỷ thứ 9 là king arduin. nó chính thức được đưa ra giới
thiệu vào năm 2005 như là một công cụ cho sinh viên học tập của giáo sư massimo
banzi, một trong những người phát triển arduino tại trường interaction design
instistute ivrea (idii). dù hầu như không có một sự tiếp thị hay quảng cáo nào nhưng tin
tức về arduino vẫn lan truyền với tốc độ chóng mặt nhờ vô vàn lời truyền miệng tốt
đẹp của những người dùng đầu tiên. arduino hiện nay đã được biết đến một cách rộng
rãi tại việt nam, và trên thế giới thì nó đã quá phổ biến! sức mạnh của chúng ngày càng
được chứng tỏ theo thời gian với vô vàn các ứng dụng mở (open source) độc đáo được
chia sẻ rộng rãi. với arduino bạn có thể ứng dụng vào những mạch đơn giản như mạch
cảm biến ánh sáng bật tắt đèn, mạch điều khiển động cơ,... hoặc cao hơn nữa bạn có
thể làm những sản phẩm như: máy in 3d, robot, khinh khí cầu, máy bay không người
lái,...
Hiện nay arduino nổi tiếng trên toàn thế giới đến nỗi có người đã tìm đến thị
trấn ivrea chỉ để tham quan nơi đã sản sinh ra nền tảng thú vị này. nếu bạn là một fan
cuồng của arduino như tôi, bạn nên tới đây một lần trong đời.
SINH VIÊN
LÊ ĐỨC TÀI
SVTH : Lê Đức Tài 3002140029
Page 1
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
--- --...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
..............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
..............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
...............................................................................................................
ngày
tháng
năm
Giáo Viên Hướng Dẫn
SVTH : Lê Đức Tài 3002140029
Page 2
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
MỤC LỤC
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Contents
A PHẦN MỞ ĐẦU.............................................................................................................................3
1 Đặt Vấn Đề....................................................................................................................................3
2 Giải Quyết Vấn Đề........................................................................................................................3
3 Giới Hạn Đề Tài............................................................................................................................3
B.PHẦN NỘI DUNG............................................................................................................................5
CHƯƠNG 1 : GIỚI THIỆU CHUNG...............................................................................................5
Hướng Dẫn Cài Đặt Arduino Cho Matlab................................................................................5
Sữ Dụng Help Để Xem Ví Dụ.................................................................................................8
Viết Một Chương Trình Đơn Giản......................................................................................10
1.1
Matlab Là Gì ?....................................................................................................................10
1.2. Giới Thiệu Chung Về Arduino..............................................................................................11
1.3. Arduino Là Gì ?.....................................................................................................................12
a. Giới Thiệu Về Board Arduino Uno......................................................................................14
b. Giới Thiệu Về Board Arduino Nano...................................................................................15
1.4 ví dụ điều khiển tốc độ động cơ một chiều bằng xung pwm:..............................................17
1.5. thư viện arduinoio....................................................................................................................17
CHƯƠNG 2: HƯỚNG DẪN VỀ MATLAB/SIMULINK..............................................................20
2.1 Sử Dụng Matlab......................................................................................................................21
a/ Định Nghĩa Biến:...................................................................................................................21
b/ Làm Việc Với Mảng..............................................................................................................22
C/ M-File....................................................................................................................................24
2.2 Simulink....................................................................................................................................25
CHƯƠNG 3: SỬ DỤNG BO MẠCH ARDUINOUNO VÀ THƯ VIỆN ARDUINOIO ĐIỀU
KHIỂN TỐC ĐỘ ĐỘNG CƠ MỘT CHIỀU..................................................................................31
SVTH : Lê Đức Tài 3002140029
Page 3
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
3.1. Thông Số Động Cơ.................................................................................................................31
3.2. Sơ Đồ Nguyên Lý Hệ Thống.................................................................................................31
3.3
Xây Dựng Cấu Trúc Điều Khiển Hệ Thống Sử Dụng Matlab/Simulink.......................32
3.4
đáp ứng tốc độ của động cơ............................................................................................32
C . Phần Kết Luận...............................................................................................................................34
I.
Kết Luận.................................................................................................................................34
I.
Những Hạn Chế Của Đề Tài.................................................................................................34
II.
Hướng Phát Triển...............................................................................................................34
tài liệu tham khảo.....................................................................................................................34
SVTH : Lê Đức Tài 3002140029
Page 4
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
A PHẦN MỞ ĐẦU
1 Đặt Vấn Đề
Ngày nay, ngành điều khiển đang trên đà phát triển mạnh và đạt được nhiều thành tựu
lớn trong công nghiệp, những con robot làm việc nhà, những chiếc xe điều khiển từ xa mà
khi bé ta thường chơi hay những chiếc xe lớn hơn mà trong các công ty hay sử dụng. để là
được điều đó chúng ta cần nhắc tới arduino. thiết bị điều khiển cũng giống như là một bộ
nào của con người. và hiện nay matlab đã hỗ trợ phần cứng khá là nhiều ( mặc dù vẫn thua
xa labview). điểm sơ qua thì thấy nó đã hỗ trợ arduino, stm32, robot mindstorm của lego,
fpga của xilinx hay máy tính nhúng,etc. việc kết nối phần cứng sẽ làm đơn giản hóa việc xây
dựng, tính toán thuật toán , xây dựng hàm truyền rồi chạy trên phần cứng nếu làm theo
truyền thống thì sẽ phải dùng matlab xây dựng hàm truyền, tính toán các hệ số rồi lại vào
arduino ide code như truyền thống. nhưng việc hỗ trợ này sẽ giúp chúng ta có thể viết thuật
toán và code arduino trên matlab. tất nhiên là cú pháp câu lệnh sẽ khác một chút xíu và thư
viện trên matlab cũng sẽ ít hơn nhiều, nhưng sẽ cập nhật nhiều trong thời gian gần.
Vì vậy nhóm chúng em đã chọn đề tài “ tìm hiểu ứng dụng arduino trên matlab” .
2 Giải Quyếết Vấến Đếề
Giới thiệu về matlab và arduino nêu lên những ứng dụng cũng như là giới thiệu về thư
việc arduino và matlab. cho ví dụ nhằm mô phông cách sử dụng bo mạch arduinouno và thư
viện arduinoio điều khiển tốc độ động cơ một chiều
3 Giới Hạn Đề Tài
Hiện nay hầu hết tất cà trường đào tạo về kĩ thuật đa số đều không hướng dẫn về arduino
việc tự học arduino còn là nhiều khó khăn. thư viện matlab và arduino chưa đầy đủ so với
kiến thư rộng lớn do arduino mang lại.
SVTH : Lê Đức Tài 3002140029
Page 5
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
hình1
SVTH : Lê Đức Tài 3002140029
Page 6
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
B.PHẦN NỘI DUNG
CHƯƠNG 1 : GIỚI THIỆU CHUNG
Hướng Dẫn Cài Đặt Arduino Cho Matlab
cài đặt arduino ide như bình thường ( download từ trang chủ arduino.cc )
cài đặt hardware support từ matlab
hình 2b
SVTH: Lê Đức Tài
Page 7
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
hình 2b
SVTH: Lê Đức Tài
Page 8
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
hình 2c
hình 2d
SVTH: Lê Đức Tài
Page 9
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
Sữ Dụng Help Để Xem Ví Dụ
hinh2e
SVTH: Lê Đức Tài
Page 10
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
hình 2g
SVTH: Lê Đức Tài
Page 11
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
Viết Một Chương Trình Đơn Giản
khi cắm arduino vào máy tính, xác định loại board, port thì viết như sau (tham khảo help
phía trên)
hình2h
I.1 Matlab
Hiện tại matlab đã hỗ trợ phần cứng khá là nhiều ( mặc dù vẫn thua xa labview). điểm sơ
qua thì thấy nó đã hỗ trợ arduino, stm32, robot mindstorm của lego, fpga của xilinx hay máy
tính nhúng,etc. việc kết nối phần cứng sẽ làm đơn giản hóa việc xây dựng, tính toán thuật
toán , xây dựng hàm truyền rồi chạy trên phần cứng
Nếu làm theo truyền thống thì sẽ phải dùng matlab xây dựng hàm truyền, tính toán các
hệ số rồi lại vào arduino ide code như truyền thống. nhưng việc hỗ trợ này sẽ giúp chúng ta
có thể viết thuật toán và code arduino trên matlab. tất nhiên là cú pháp câu lệnh sẽ khác một
SVTH: Lê Đức Tài
Page 12
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
chút xíu và thư viện trên matlab cũng sẽ ít hơn nhiều, nhưng sẽ cập nhật nhiều trong thời
gian gần.
matlab hỗ trợ 2 kiểu code cho arduino:
Code trên command window
Code theo graphics language trên simulink
Matlab là một môi trường tính toán số và lập trình, được thiết kế bởi công ty
mathworks. matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông
tin, thực hiện thuật toán, tạo các giao diện người dung, liên kết với những chương trình máy
tính viết trên nhiều ngôn ngữ lập trình khác và truyền thông kết nối thiết bị thực qua các
cổng kết nối nối tiếp, song song của máy tính. với thư viện toolbox, matlab cho phép mô
phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật. đặc biệt khi kết hợp
với các bo mạch thu thập dữ liệu, matlab có thể đóng vai trò là trung tâm điều khiển trong hệ
thống điều khiển số. arduino là một hệ thống sản xuất các bo mạch mã nguồn mở được hình
thành và phát triển từ năm 2005. do các bo mạch là mã nguồn mở nên đến nay hệ thống này
đã phát triển rất mạnh mẽ và có thư viện hỗ trợ cho người sử dụng rất đa dạng, phong phú. là
một thiết bị phần cứng, arduino có thể hoạt động độc lập với chức năng thực hiện các luật
điều khiển, kết nối với máy tính, hoặc một thiết bị arduino khác, các thiết bị điện tử khác...
thư viện arduinoio là một thư viện trong bộ công cụ simulink hỗ trợ các bo mạch arduino
làm việc với matlabsimulink. kết hợp các bo mạch arduino và thư viện arduinoio, matlab có
thể tiến hành thu thập dữ liệu, thực hiện thuật toán điều khiển dễ dàng để điều khiên đối
tượng thực.
1.2. Giới Thiệu Chung Về Arduino
Arduino thực sự đã gây sóng gió trên thị trường người dùng diy (là những người tự chế
ra sản phẩm của mình) 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 phải ngạc nhiên về mức độ phổ biến.
SVTH: Lê Đức Tài
Page 13
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
hình 3 : những thành viên khởi xướng arduino.
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 $30, 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 ra đời tại thị trấn ivrea thuộc nước ý và
được đặt theo tên một vị vua vào thế kỷ thứ 9 là king arduin. arduino chính thức được
đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của
giáo sư massimo banzi, là một trong những người phát triển arduino, tại trường
interaction design instistute ivrea (idii). 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 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. Arduino
SVTH: Lê Đức Tài
Page 14
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
Arduino là một nền tảng mà mọi thiết bị phần cứng đều được làm sẵn và chuẩn
hóa, người dùng chỉ việc chọn những thứ mình cần, ráp lại là có thể chạy được. bạn
muốn làm xe điều khiển từ xa ? arduino cung cấp cho bạn module điều khiển động cơ có
sẵn, mạch điều khiển có sẵn, mạch thu phát sóng không dây có sẵn,… bạn sẽ không cần
phải động não thiết kế mạch điện cho chiếc xe bởi đơn giản là mọi thứ đều có sẵn.
giống như một con người với “thể xác” đã được xây dựng sẵn, một hệ thống arduino phải
có “tâm hồn” để có thể “sống”. và tôi gọi việc tạo ra “tâm hồn” ấy là “lập trình”. tuy
nhiên bạn sẽ không phải lập trình từ a đến z. mỗi thứ phần cứng gắn mác “arduino” đều
có những đoạn lệnh đã được viết sẵn (gọi là thư viện) do cộng đồng người dùng arduino
cùng phát triển. bạn chỉ việc bưng vào và xào nấu lại theo ý muốn của mình. tới đây, bạn
đã giải quyết được vấn đề thứ 2. đừng lo nếu bạn không biết gì về lập trình bởi chúng chỉ
giống như những bài tập tin học lớp 11 lặt vặt ở trường thôi.
chính vì tính tiện lợi và đơn giản cho người sử dụng mà arduino đã trở thành một hiện
tượng trong làng điện tử thế giới. những sản phẩm của cộng đồng người dùng arduino
cũng như những thiết bị hỗ trợ arduino lớn đến mức không thể thống kê được. nó phát
triển đến mức mà ta có thể gọi nó là một hệ sinh thái đa dạng như tiêu đề - giống như
windows hay android. tôi tin rằng nếu bạn học chữ bằng những quyển vở tập viết thì bạn
sẽ cần tới arduino để đến với điện tử.
SVTH: Lê Đức Tài
Page 15
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
SVTH: Lê Đức Tài
Page 16
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
a. Giới Thiệu Về Board Arduino Uno
arduino uno là 1 bo mạch thiết kế với bộ xử lý trung tâm là vi điểu khiển avr atmega328.
cấu tạo chính của arduino uno bao gồm các phần sau:
hình 1.3a . board arduino uno.
- cổng usb: đây là loại cổng giao tiếp để ta upload code từ pc lên vi điều khiển. đồng
thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính.
- jack nguồn: để chạy arduino thỉ có thể lấy nguồn từ cổng usb ở trên, nhưng không
phải lúc nào cũng có thể cắm với máy tính được . lúc đó ta cần một nguồn từ 9v đến
12v.
- có 14 chân vào/ra số đánh số thứ tự từ 0 đến 13, ngoài ra có một chân nối đất (gnd) và
một chân điện áp tham chiếu (aref).
- vi điều khiển avr: đây là bộ xử lí trung tâm của toàn bo mạch. với mỗi mẫu arduino
khác nhau thì con chip là khác nhau. ở con arduino uno này thì sử dụng atmega328.
- Các thông số chi tiết của arduino uno:
Vi xử lý: atmega328
SVTH: Lê Đức Tài
Page 17
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
Điện áp hoạt động: 5v
Điện áp đầu vào: 7-12v
Điện áp đầu vào (giới hạn): 6-20v
Chân vào/ra (i/o) số: 14 ( 6 chân có thể cho đầu ra pwm)
Chân vào tương tự: 6
Dòng điện trong mỗi chân i/o: 40ma
Dòng điện chân nguồn 3.3v: 50ma
Bộ nhớ trong: 32 kb (atmega328)
Sram: 2 kb (atmega328)
Eeprom: 1 kb (atmega328)
Xung nhịp: 16mhz
b. Giới Thiệu Về Board Arduino Nano
Board arduino nano có cấu tạo, số lượng chân vào ra là tương tự như board arduino
uno tuy nhiên đã được tối giản về kích thước cho tiện sử dụng hơn. do được tối giản rất
nhiều về kích thước nên arduino nano chỉ được nạp code và cung cấp điện bằng duy nhất
1 cổng mini usb.
SVTH: Lê Đức Tài
Page 18
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
hình 1.3b : board arduino nano.
thông số kĩ thuật chi tiết:
+ Vi Xử lý atmega328 (phiên bản v3.0)
+ Điện Áp Hoạt Động
5V
+ Điện Áp Đầu Vào
(Khuyến Nghị)
7-12 V
+ Điện Áp Đầu Vào
(Giới Hạn)
6-20 V
+ Chân Vào/Ra Số 14
(6 Chân Có Khả Năng Xuất Ra Tín Hiệu Pwm)
+ Chân Vào Tương Tự 8
+ Dòng Điện Mỗi Chân
Vào/Ra
+ bộ nhớ
SVTH: Lê Đức Tài
40 Ma
16 kb (atmega168), 32 kb (atmega328)
kb dùng để nạp bootloader
Page 19
Đồồ án 1 : Tìm hiểu ứng dụng arduino trên matlab
1.4 Ví Dụ Điều Khiển Tốc Độ Động Cơ Một Chiều Bằng Xung Pwm:
hình 1.4 : sơ đồ mạch
mã nguồn:
int potpin = 0;
int transistorpin = 9;
int potvalue = 0;
void setup() { pinmode(transistorpin, output);} void
analogread(potpin) / 4; analogwrite(transistorpin, potvalue); }
loop()
{
potvalue
=
1.5. Thư Viện Arduinoio
Thư viện arduinoio gồm hai gói phần mềm mã nguồn mở: gói mã lập trình ngôn ngữ
cho bo mạch arduino và gói mã lập trình .m cho các khối trong môi trường simulink. để
sử dụng được thư viện này, matworks khuyến cáo sử dụng phiên bản matlab 2012a trở
lên.
các bước cài đặt thư viện arduinoio:
- Tải và giải nén thư viện arduinoio từ trang web http://mathworks.com.
- Tải gói phần mềm xuống bo mạch arduinouno. gói phần mềm trong thư mục
arduinoio/pde.
- Thêm thư viện arduinoio cho matlab/simulink: đưa thư mục làm việc của matlab đến
thư mục arduinoio. chạy tệp install_arduino.m để thêm thư viện arduinoio cho simulink.
SVTH: Lê Đức Tài
Page 20
- Xem thêm -