1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo THực hành ghép nối máy tính với arduino

63 404 3

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 1,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

báo cáo thực hành ghép nối máy tính với arduino, ghép nối vi xữ lý arduino với máy tính để điều khiển các thiết bị ngoại vi, như cảm biến nhiệt độ, sensor, động cơ 1 chiều DC, màn hình LCD

Trang 1

ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA ĐIỆN TỬ - VIỄN THÔNG

 -BÁO CÁO TOÀN VĂN THỰC HÀNH

CƠ SỞ ĐIỆN TỬ - VIỄN THÔNG II

SINH VIÊN THỰC HIỆN :

1- Trần Minh Giang

2- Lê Nguyên Đạt

3- Lê Gia Thạnh

4- Trần Văn Thành Đạt

GIÁO VIÊN HƯỚNG DẪN :

Thầy : HOÀNG LÊ HÀ

Trang 2

Huế -2016

2

Trang 3

MỤC LỤ

MỤC LỤC i

DANH SÁCH CÁC HÌNH VẼ iv

DANH MỤC CÁC TỪ VIẾT TẮT v

MỞ ĐẦU vii

BÀI 01: ĐIỀU KHIỂN LED HOẠT ĐỘNG BẰNG MÁY TÍNH 1

1.1 Lưu đồ thuật toán điều khiển 1

1.1.1 Bằng phần mềm Arduino IDE ( Integrated Development Environment ) 1

1.1.2 Bằng phần mềm Visual Studio 2

1.2 Hình ảnh cửa sổ điều khiển chụp màn hình PC ( Personal Computer ) 3

1.3 Kết quả thực hiện trong thực tế và nhận xét 3

1.3.1 Kết quả thực hiện trong thực tế 3

1.3.2 Nhận xét 3

1.4 Hai đoạn code tương ứng với hai chương trình viết trên Arduino Integrated Development Environment hay Visual Studio 4

1.4.1 Code trên Arduino Intel Galileo Gen 2 4

1.4.2 Code trong Visual Studio 20

BÀI 02: HIỂN THỊ LCD 16x2 THEO NỘI DUNG NHẬP TỪ BÀN PHÍM 25

2.1 Lưu đồ thuật toán điều khiển 25

2.1.1 Bằng phần mềm Arduino IDE ( Integrated Development Environment ) 25

2.1.2 Bằng phần mềm Visual Studio 26

2.2 Hình ảnh cửa sổ điều khiển chụp từ màn hình PC ( Personal Computer ) 27

2.3 Kết quả thực hiện trong thực tế và nhận xét 27

2.3.1 Kết quả thực hiện trong thực tế 27

Trang 4

2.3.2 Nhận xét 27

2.4 Hai đoạn code tương ứng với hai chương trình viết trên Arduino Integrated Development Environment hay Visual Studio 28

2.4.1 Code trên Arduino Intel Galileo Gen 2 28

2.4.2 Code trong Visual Studio 30

BÀI 03: ĐIỀU KHIỂN HOẠT ĐỘNG ĐỘNG CƠ ĐIỆN MỘT CHIỀU VÀ ĐỘNG CƠ BƯỚC BẰNG MÁY TÍNH 32

3.1 Lưu đồ thuật toán điều khiển 32

3.1.1 Bằng phần mềm Arduino IDE ( Integrated Development Environment ) 32

3.1.2 Bằng phần mềm Visual Studio 33

3.2 Hình ảnh điều khiển chụp từ màn hình PC ( Personal Computer ) 34

3.3 Kết quả thực hiện trong thực tế và nhận xét 34

3.3.1 Kết quả thực hiện 34

3.3.2 Nhận xét 34

3.4 Hai đoạn code ứng với hai chương trình viết trên Arduino Integrated Development Environment hay Visual Studio 35

3.4.1 Code trên Arduino Intel Galileo Gen 2 35

3.4.2 Code trong Visual Studio 40

BÀI 04: GIAO TIẾP GIỮA CẢM BIẾN ĐÓ NHIỆT ĐỘ - ĐỘ ẨM VÀ MÁY TÍNH .41

4.1 Lưu đồ thuật toán điều khiển 42

4.1.1 Bằng phần mềm Arduino IDE ( Integrated Development Environment) 42

4.1.2 Bằng phần mềm Visual Studio 42

4.2 Hình ảnh cửa sổ điều khiển chụp từ màn hình PC ( Personal Computer ) 43

4.3 Kết quả thực hiện trong thực tế và nhận xét 43

4.3.1 Kết quả thực hiện trong thực tế 44

4.3.2 Nhận xét 43

ii

Trang 5

4.4 Hai đoạn code ứng với hai chương trình viết trên Arduino Integrated Development

Environment hay Visual Studio 44

4.4.1 Code trên Arduino Intel Galileo Gen 2 44

4.4.2 Code trong Visual Studio 45

KẾT LUẬN 47

TÀI LIỆU THAM KHẢO 47

Trang 6

DANH SÁCH CÁC HÌNH V

Hình I.1: Minh họa sơ đồ khối board Intel Galileo Gen 2 viii

Hình I.2: Minh họa hình ảnh thực tế board Intel Galileo Gen 2 viii

Hình II.1: Minh họa giao diện lập trình Arduino IDE ( Integrated Development Environment ) xii

Hình II.2: Minh họa vùng ToolBar trên giao diện Arduino IDE ( Integrated Development Environment ) xii

Hình II.3: Minh họa chọn board Arduino phù hợp xiii

Hình II.4: Minh họa chọn cổng COM giao tiếp phù hợp xiv

Hình II.5: Minh họa vùng viết chương trình xiv

Hình II.6: Minh họa vùng thông báo xv

Hình 1: Giao diện chương trình điều khiển LED và bảng Morse 3

Hình 2: Giao diện chương trình hiển thị LCD (Liquid Crystal Display) 27

Hình 3: Giao diện chương trình điều khiển động cơ một chiều và động cơ bước 34

Hình 4: Giao diện chương trình đo nhiệt độ 43

iv

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

COM Computer Output on Micro Cổng COM nối thiết bị

chơi game,máy in…

Environment Môi trường phát triển tíchhợp

SPI Serial Peripheral Interface Giao diện ngoại vi nối tiếp

Reveiver - Transmitter Bộ truyền nhận khôngđồng bộ

ICSP In-Circuit Serial Programming Các chân giao tiếp SPI

USB Universal Serial Bus Bộ kết nối các thiết bị

ngoại vi

PWM Pulse Width Modulation Kỹ thuật điều chế độ rộng

xung

Interconnect Các thành phần cấu hìnhnên cổng giao tiếp ngoại

vi theo chuẩn nối tiếp

SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu

nhiên tĩnh

Memory

Bộ nhớ truy cập ngẫunhiên động

Programmable Read Only

Memory

Bộ nhớ xóa được bằngđiện trường

ACPI Advanced Configuration and

Power Interface Cấu hình cao cấp và giaodiện nguồn

SPI Serial Peripheral Interface Giao diện giao tiếp ngoại

vi

ADC Analog digital convert Chuyển đổi tín hiệu tương

Trang 8

tự qua tín hiệu số

nhịp đồng hồ

tự

JTAG Joint Test Action Group Nhóm hoạt động đo thử

liên hợp

LCD Liquid Crystal Display Màn hình tinh thể lỏng

vi

Trang 9

trên nền tảng Intel Pentium x86 với bộ nhớ L1 cache 16Kb Galileo được thiết kế thíchvới chuẩn board Arduino Uno R3.

Tương tự như những board Arduino khác, board Intel Galileo tuân theo những tiêu chuẩnnhất định của nền tảng Arduino Các chân Digital được đánh số từ chân 0 tới 13 (kề cận

là chân AREF và GND), các chân Analog từ chân 0 tới 5, header nguồn, header ICSP và

2 chân truyền UART là tất cả những điểm giống nhau với Arduino Uno R3 Tất cả cácchân của Galileo đều tuân theo chuẩn Arduino pinout 1.0

Hình I.1: Minh họa sơ đồ khối board Intel Galileo Gen 2.

Sức mạnh của board Galileo tạo ra chủ yếu từ vi xử lý Intel Quark Soc X1000, ngoài khảnăng tương thích với chuẩn Arduino thì việc nhận được sự hỗ trợ từ nhà sản xuất vi xử lýlớn nhất thế giới Intel cũng góp phần nào tạo ra một board phát triển đầy tiềm năng Vi

xử lý 400Mhz tương thích với tập lệnh 32 bit Intel Pentium với các đặc điểm như sau:

- Bộ nhớ cache L1 16Kb

- Đơn lõi, đơn luồng, tốc độ không đổi

Trang 10

Hình I.2: Minh họa hình ảnh thực tế board Intel Galileo Gen 2.

- Hỗ trợ trạng thái ngủ ACPI

- Một đồng hồ thời gian thực được tích hợp, sử dụng một pin 3V không có sẵn trên board,cấp nguồn thông qua header

- 11 Kb EEPROM có thể được lập trình thông qua thư viện EEPROM

- Bộ nhớ flash Legacy SPI 8Mb để lưu trữ firmware (hay bộ nạp khởi động) hoặc Sketchmới nhất Ở giữa 256 Kb và 512 Kb được dành riêng cho việc lưu chương trình Sketch.Việc upload diễn ra một cách tự động trừ khi có một bản nâng cấp được thêm vàofirmware

- 512 Kb SRAM và 256 Mb DRAM được cho phép bởi firmware mặc định

- Tùy chọn thêm vào thẻ nhớ micro SD cho phép không gian lưu trữ lên tới 32 Gb

- Lưu trữ thông qua USB tương thích với chuẩn USB 2.0

Galileo được thiết kế để hỗ trợ các Shield có điện áp hoạt động 3,3V hoặc 5V Điện áphoạt động lõi của Galileo là 3,3V Tuy nhiên, 1 jumper trên board cho phép chuyển đổithành 5V trên các chân I/O Sự cung cấp này hỗ trợ cho các Shield Uno 5V và đây là thiếtlập mặc định Nếu jumper bị chuyển vị trí, bộ chuyển đổi điện áp có thể không hoạt động

và cung cấp điện áp 3,3V ở các chân I/O Những đầu vào Analog còn lại có điện áp từ 0Vtới 5V bất kể vị trí của jumper Sự đa năng trong cách sử dụng các chân trên boardGalileo như sau:

- Chức năng vào/ra dữ liệu số/tương tự:

viii

Trang 11

+ 14 chân vào ra kỹ thuật số được đánh số từ D0 đến D13, trong đó có 6 chân có thể được

sử dụng như đầu ra PWM với độ phẩn giải 8/12 bit Mỗi chân trong số đó đều có thểđược sử dụng như input hay là output Điều đó thực hiện được nhờ vào các hàmpinMode(), digitalWrite() và digitalRead() trong quá trình lập trình.Các chân hoạt động ởmức điện áp 3.3V hoặc 5V Mỗi chân chịu được dòng vào 10mA hoặc tối đa là 25mA và

có điện trở kéo bên trong ( không kết nối theo mặc định ) từ 5,6kOhm tới 10kOhm

+ 6 chân đầu vào analog là A0 tới A5, thông qua một IC chuyển đổi Analog to DigitalAD7298 Mỗi chân trong số chúng được cung cấp một độ phân giải ADC 10 bit hoặc 12bit và điện áp đầu vào từ 0V tới 5V, điện áp tham chiếu là 5V

- Chức năng hỗ trợ chuẩn giao tiếp:

+ Bus I2C, TWI với chân SDA và SCL, cạnh đó là chân AREF

+ TWI: Chân A4 hay là chân SDA và chân A5 hay là chân SCL Hỗ trợ giao tiếp TWIvới thư viện hỗ trợ là Wire Library

Hình I.3: Minh họa các chân đầu vào/ra của Intel Galileo.

+ SPI mặc định ở 4MHz, có thể lập trình lên đến 25MHz Galileo sẽ không làm một SPIslave mà chỉ có thể là SPI master, nó có thể hoạt động như một slave nhưng phải thôngqua kết nối USB client

+ Giao tiếp UART có thể cấu hình tốc độ baud, và giao tiếp thông qua 3 chân là 0 (RX)

và 1(TX)

Trang 12

+ ICSP: 6 chân trong mạch, phần cứng là 6 header có thể cắm vào.

- Chân Vin: khi sử dụng nguồn bên ngoài thì có thể cung cấp cho Galileo thông qua chânnày

- Chân output 5V: được cung cấp bởi nguồn bên ngoài hoặc qua cổng USB Dòng tối đacung cấp cho ngoại vi là 800mA

- Chân output 3,3V: Cung cấp 3,3V qua bộ điều chỉnh trên mạch, dòng tối đa cung cấpcho ngoại vi là 800mA

- Chân GND là chân nối đất, sử dụng với mục đích tạo mạch kín khi cấp nguồn cho ngoạivi

- IOREF: Các chân IOREF trên Galileo cho phép 1 shield đính kèm với cấu hình thíchứng với các điện áp cung cấp bởi board Điện áp trên các chân IOREF được điều khiểnbởi một jumper trên board cho phép lựa chọn mức điện áp 3,3V hay 5V

- Chân hay nút RESET, mức tích cực thấp để khởi động chạy lại phần mềm đã nạp từđầu

- Chân AREF không được sử dụng trên board Galileo Việc cung cấp một điện áp thamchiều từ bên ngoài không được hỗ trợ cho Galileo, mặc định điện áp tham chiều củaGalileo là 5V để đo điện áp đầu vào từ các Analog Input

Ngoài ra board này còn hỗ trợ các khối chức năng thể hiện các nhiệm vụ mở rộng nhưsau:

- Kết nối Ethernet 10/100

- Khe cắm PCI Express đầy đủ, với những tính năng PCIe phù hợp

- Kết nối USB Host 2.0 Hỗ trợ lên đến 128 thiết bị kết cuối

- Kết nối USB Client Sử dụng để nạp chương trình Sketch

- 10 chân JTAG tiêu chuẩn sử dụng để gỡ rối (debug)

- Nút Reboot để khởi động lại vi xử lý

x

Trang 13

nén và chạy chương trình không cần cài đặt Môi trường phát triển tích hợp (IDE) củaArduino là một ứng dụng đa nền tảng được viết bằng Java.Nó được thiết kế để dành chocác nhà phát triển và những người mới tập tành làm quen với lĩnh vực phát triển phầnmềm Nó bao gồm một trình biên tập mã nguồn (code editor) với các chức năng như đánhdấu cú pháp, tự động kiểm tra phù hợp dấu ngoặc và tự động canh lề, cũng như biên dịch(complie) và tải (upload) chương trình lên bo Một chương trình hoặc mã nguồn viết choArduino được gọi là một sketch.

Hình II.1: Minh họa giao diện lập trình Arduino IDE ( Integrated Development

Environment ).

Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèm với một thưviện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tácinput/output được dễ dàng hơn Người dùng chỉ cần định nghĩa 2 hàm để tạo ra mộtchương trình vòng thực thi (cyclic executive) có thể chạy được

Arduino IDE là nơi để soạn thảo chương trình, kiểm tra lỗi và nạp chương trình choArduino Giao diện này gồm có 3 vùng rõ ràng

- Vùng Toolbar có chứa các phím lệnh như kiểm tra chương trình, nạp chương trình, lưu,

mở hay tạo mới chương trình

Trang 14

Hình II.2: Minh họa vùng ToolBar trên giao diện Arduino IDE ( Integrated Development

Environment ).

Các nút chức năng có nhiệm vụ như sau

- Kiểm tra chương trình viết có đúng cú pháp hay không- Verify Sketch

- Biên dịch chương trình và nạp vào board Arduino- Complie and upload sketch toarduino

- Tạo một sketch mới- New Sketch

- Mở một sketch đã lưu trước đó- Open Sketch

- Lưu chương trình lại- Save Sketch

- Mở màn hình hiển thị Serial Monitor sử dụng cài này khi trong Sketch có lệnh in ramàn hình hay gửi ký tự thông qua chuẩn RS232 - Open Serial Monitor

- Current tab: Sketch đang được mở hiện tại, có thể đồng thời có nhiều tab tương ứng vớinhiều sketch hiện trên thanh tab

- Tab menu: Vào menu để chọn các chỉ dẫn

Ngoài ra, trong Tool menu ta quan tâm các mục mạch và cổng nối tiếp như mục Board Ởđây việc lựa chọn bo mạch cho phù hợp với loại bo mà chúng ta đang sử dụng đóng vaitrò hết sức quan trọng Nếu sử dụng loại bo mạch khác thì phải chọn đúng loại bo mạch,nếu chọn sai thì nạp chương trình vào chip sẽ bị báo lỗi

xii

Trang 15

Hình II.3: Minh họa chọn board Arduino phù hợp.

Hình II.4: Minh họa chọn cổng COM giao tiếp phù hợp.

Cổng giao tiếp giữa máy tính và Board được thiết lập thông qua tab Serial Port: đây lànơi lựa chọn cổng COM của Arduino Khi chúng ta cài đặt driver thì máy tính sẽ hiệnthông báo tên cổng COM của Arduino là bao nhiêu( xem ở phần Device Manager), tachỉviệc vào Serial Port chọn đúng cổng COM để nạp chương trình, nếu chọn sai thìkhông thể nạp chương trình cho Arduino được

- Vùng viết chương trình được đánh số dòng như hình vẽ Đây là nơi để viết các dònglệnh điều khiển hoạt động của VĐK

Trang 16

Hình II.5: Minh họa vùng viết chương

trình.

Nội dung trong

void setup()

{……} là các

Hình II.6: Minh họa vùng thông báo.

- Current line number: Dòng của con trỏ hiện tại (Ví dụ 33)

- Current arduino model: Dòng board Arduino đang sử dụng (Ví dụ Intel Galileo Gen2)

- Your system’s name for current USB port: Tên cổng giao tiếp giữa máy tính và Vi điềukhiển ( Ví dụ COM1 )

xiv

Trang 17

BÀI 01: ĐIỀU KHIỂN LED HOẠT ĐỘNG BẰNG MÁY TÍNH

1.1 Lưu đồ thuật toán điều khiển

1.1.1 Bằng phần mềm Arduino IDE ( Integrated Development Environment )

Sai Nhận ký tự

A – Z hoặc số Đúng

Tắt nguồn

Đúng

Trang 18

1.1.2 Bằng phần mềm Visual Studio

2

Kết thúc

Bắt đầu

Khai báo chọn cổng COM

Sai Kiểm tra chọn cổng

Đúng Tạo kết nối

Kiểm tra nút nhấn điều khiển LED Sai

Đúng Gữi các kí tự đặc biệt qua cổng COM

Kiểm tra nút nhấn gữi mã morse Sai

Đúng Gữi các kí tự trong ô textbox qua cổng COM

Kết thúc

Trang 19

1.2 Hình ảnh cửa sổ điều khiển chụp màn hình PC ( Personal Computer )

Hình 1: Giao diện chương trình điều khiển LED và bảng Morse.

1.3 Kết quả thực hiện trong thực tế và nhận xét

1.3.1 Kết quả thực hiện trong thực tế

Khi điều khiển phần mềm Arduino Intel Galileo 2 và Visual Studio thì mạch giao tiếp vớicổng COM khá ổn định, chúng ta có thể điều khiển các led1, led 2, led 3, led 4 led 5 bật

và tắt luân phiên hay tất cả đều sang và đều tắt

1.4.1 Code trên Arduino Intel Galileo Gen 2

byte rbg[]={6, 5, 3}; // Khai báo các chân tín hiệu

Trang 21

data = Serial.readString(); // đọc giá trị nhận được.

if(data == "chayvong") // chạy vòng bắt đầu bằng red, green, blue

Trang 27

for(int i=0; i<5;i++)

Trang 30

if( data == "O")

Trang 34

1.4.2 Code trong Visual Studio

PublicClass Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click

If Button1.Text = "KẾT NỐI" Then

Trang 35

Button1.Text = "KÊT NỐI"

Trang 37

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button6.Click

If (ListView5.BackColor = Color.White) Then

Trang 38

PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal

e As System.EventArgs) Handles Timer1.Tick

If (ListView6.BackColor = Color.Red) Then

Trang 39

EndIf

EndSub

Private Sub Button10_Click(ByVal sender AsSystem.Object,ByVale

As System.EventArgs) Handles Button10.Click

SerialPort1.Write(UCase(TextBox1.Text))

EndSub

EndClas

Ngày đăng: 27/12/2017, 14:41

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w