Phần mềm lập trình Arduino IDE

Một phần của tài liệu Tài liệu thực tập lập trình ứng dụng trong kỹ thuật PAPE311426 (Trang 73 - 81)

LẬP TRÌNH GIAO DIỆN CƠ BẢN

2.4. Phần mềm lập trình Arduino IDE

Đầu tiên, bạn cần phải hiểu được rằng, mạch Intel Galileo là một máy tính được xây dựng trên cấu trúc x86, vì vậy nó khác hoàn toàn so với cấu trúc của mạch Arduino khác. Vì vậy, nó cần một chương trình Arduino riêng để lập trình. Nhấp vào địa chỉ dưới để download phần mềm Arduino Galileo-ized IDE:

Download Arduino IDE

Bạn hãy lựa chọn phiên bản phù hợp với hệ điều hành và cấu trúc máy tính của bạn. Có các phiên bản dành cho hệ điều hành Linux, MAC OS và Windows; các cấu trúc x86 (32 bit) và x64 (64 bit).

Bản Arduino được tải về có dung lượng trên 100mb (khoảng 5 phút tải) được nén dưới dạng zip hoặc tgz. Bước cuối cùng là cài đặt, thực chất là việc giải nén file nén này ra thôi!

Bạn chỉ cần giải nén nó bằng phần mềm (7-Zip hoặc WinRar,...) vào thƣ mục gốccủa các ổ đĩa (ví dụ C:\ hay là D:\ ,...). Sau đó bạn có thể đổi tên thư mục (ví dụarduino-1.5.3) thành tên bạn muốn. Nhưng hãy chắc chắn rằng trong tên đó không có khoảng trống. Ví dụ tên như sau là không được: arduino galileo.

Sau đó, bạn chỉ việc truy cập vào thư mục vừa được giải nén và kích đúp chuột vào file Arduino.exe thôi!

Đầu tiên hãy tải thử một chương trình mẫu có sẵn lên Board Intel và quan sát hoạt động:

Hãy mở Galileo IDE, chọn ví dụ Blink bằng cách vào menu File -> Examples -> 01.Basics -

> Blink.

int ledPin = 13; // chân led 13 int inPin = 2; // button tại chân 2

int val = 0; // biến "val" dùng để lưu tín hiệu từ digitalRead

void setup() {

pinMode(ledPin, OUTPUT); // đặt pin digital 13 là output pinMode(inPin, INPUT); // đặt pin digital 2 là input }

void loop()

{

val = digitalRead(inPin); // đọc tín hiệu từ digital2

digitalWrite(ledPin, val); // thay đổi giá trị của đèn LED là giá trị của digital 2 }

Kết nối máy tính của bạn với Board qua cổng USB Client. Vào menu Tools -> Boards và chọn Arduino Mega 2560. Vào menu Tools -> Serial Port và chọn cổng COM thích hợp.

Bấm tổ hợp phím Ctrl + U để tải chương trình lên Galileo.

Tập lệnh Arduino:

Xuất/Nhập Digital (DI/DO):

--- Lệnh pinMode():

Cấu hình 1 pin quy định hoạt động như là một đầu vào (INPUT) hoặc đầu ra (OUTPUT). Ngoài ra còn có thể kích hoạt các điện trở pullup nội bộ với chế độ INPUT_PULLUP.

INPUT_PULLUP: trên Board các chân DI/DO đã có sẵn điện trở kéo lên (điện trở kết nối với hệ thống điện nội bộ). Nếu không thích mắc thêm một điện trở ở mạch ngoài, có thể dùng tham số INPUT_PULLUP trong pinMode(). Mặc định khi không được kết nối với một mạch ngoài hoặc được kết nối với cực dương thì pin sẽ nhận giá trị là HIGH, khi pin được với GND thì nhận giá trị là LOW.

Cú pháp:

pinMode(pin, mode) Thông số:

 pin: Số của chân digital mà bạn muốn thiết đặt

 mode: INPUT, INPUT_PULLUP hoặc OUTPUT

--- Lệnh digitalWrite():

Xuất tín hiệu ra các chân digital, có 2 giá trị là HIGH hoặc là LOW.

Cú pháp

digitalWrite(pin,value) Thông số

 pin: Số của chân digital mà bạn muốn thiết đặt

 value: HIGH hoặc LOW

--- Lệnh digitalRead():

Đọc tín hiệu điện từ một chân digital (được thiết đặt là INPUT). Trả về 2 giá trị HIGH hoặc LOW.

Cú pháp

digitalRead(pin) Thông số

 pin: giá trị của digital muốn đọc.

 Giá trị trả về HIGH hoặc LOW VD: Điều khiển led nhờ nút nhấn

int ledPin = 13; // chân led 13 int inPin = 2; // button tại chân 2

int val = 0; // biến "val" dùng để lưu tín hiệu từ digitalRead

void setup() {

pinMode(ledPin, OUTPUT); // đặt pin digital 13 là output pinMode(inPin, INPUT); // đặt pin digital 2 là input }

void loop() {

val = digitalRead(inPin); // đọc tín hiệu từ digital2

digitalWrite(ledPin, val); // thay đổi giá trị của đèn LED là giá trị của digital 2 }

b) Ngắt (Interrupt):

Ngắt (interrupt) là những lời gọi hàm tự động khi hệ thống sinh ra một sự kiện. Những sự kiện này được nhà sản xuất vi điều khiển thiết lập bằng phần cứng và được cấu hình trong phần mềm bằng những tên gọi cố định.

Vì ngắt hoạt động độc lập và tự sinh ra khi được cấu hình nên chương trình chính sẽ đơn giản hơn. Một ví dụ điển hình về ngắt là hàm millis(). Hàm này tự động chạy cùng với chương trình và trả về 1 con số tăng dần theo thời gian mặc dù chúng ta không cài đặt nó. Việc cài đặt hàmmillis() sử dụng đến ngắt và được cấu hình tự động bên trong mã chương trình Arduino.

Vì sao cần phải dùng đến ngắt?

Ngắt giúp chương trình gọn nhẹ và xử lý nhanh hơn. Chẳng hạn, khi kiểm tra 1 nút nhấn có được nhấn hay không, thông thường bạn cần kiểm tra trạng thái nút nhấn bằng hàm digitalRead() trong đoạn chương trình loop(). Với việc sử dụng ngắt, bạn chỉ cần nối nút nhấn đến đúng chân có hỗ trợ ngắt, sau đó cài đặt ngắt sẽ sinh ra khi trạng thái nút chuyển từ HIGH->LOW. Thêm 1 tên hàm sẽ gọi khi ngắt sinh ra. Vậy là xong, biến trong đoạn chương trình ngắt sẽ cho ta biết trạng thái nút nhấn.

Số lượng các ngắt phụ thuộc vào từng dòng vi điều khiển. Với Arduino Uno bạn chỉ có 2 ngắt, Mega 2560 có 6 ngắt và Leonardo có 5 ngắt.

Board int.0 int.1 int.2 int.3 int.4 int.5

Uno, Ethernet 2 3

Mega2560 2 3 21 20 19 18

--- Lệnh attachInterrupt():

Cú pháp:

attachInterrupt(interrupt, ISR, mode);

Thông số:

interrupt: Số thứ tự của ngắt. Trên Arduino Uno, bạn có 2 ngắt với số thứ tự là 0 và 1.

Ngắt số 0 nối với chân digital số 2 và ngắt số 1 nối với chân digital số 3. Muốn dùng ngắt bạn phải gắn nút nhấn hoặc cảm biến vào đúng các chân này thì mới sinh ra sự kiện ngắt.

Nếu dùng ngắt số 0 mà gắn nút nhấn ở chân digital 4 thì không chạy được rồi.

ISR: tên hàm sẽ gọi khi có sự kiện ngắt được sinh ra.

mode: kiểu kích hoạt ngắt, bao gồm:

LOW: kích hoạt liên tục khi trạng thái chân digital có mức thấp

HIGH: kích hoạt liên tục khi trạng thái chân digital có mức cao.

RISING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp thấp sang mức điện áp cao.

FALLING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp cao sang mức điện áp thấp.

Lưu ý: với mode LOW và HIGH, chương trình ngắt sẽ được gọi liên tục khi chân digital còn giữ mức điện áp tương ứng.

VD: Viết chương trình sáng đèn led khi không nhấn nút và làm đèn led tắt đi khi người dùng nhấn nút, nếu vẫn giữ nút nhấn thì đèn led vẫn còn tắt. Sau khi thả nút nhấn, đèn led sẽ sáng trở lại.

 Mắc mạch như hình vẽ:

int ledPin = 13;

void tatled() {

digitalWrite(ledPin, LOW); // tắt đèn led }

void setup() {

pinMode(ledPin, OUTPUT);

pinMode(2, INPUT_PULLUP); // sử dụng điện trở kéo lên cho chân số 2, ngắt 0 attachInterrupt(0, tatled, LOW); // gọi hàm tatled liên tục khi còn nhấn nút }

void loop() {

digitalWrite(ledPin, HIGH); // bật đèn led }

III. BÀI TẬP THỰC HÀNH:

Bài 1 :

Viết chương trình điều khiển Led đơn trên board như sau:

Start: Led sáng 1s sau đó tắt 1s.

- Chớp tắt liên tục 3 lần (thời gian 500ms).

- Chớp tắt 10 lần (thời gian tăng dần từ 200ms - 2s, mỗi lần tăng 200ms) Bài 2 :

Viết chương trình điều khiển Led đơn trên board như sau:

- Mạch gồm 2 Nút nhấn (Start, Stop) và 3 Led đơn Start: Led sáng tuần tự 1s, sau đó tắt tuần tự 1s.

Stop: Tắt tất cả các Led.

Bài 3 :

Viết chương trình điều khiển Led đơn trên board như sau:

- Mạch gồm 1 Nút nhấn (Start) và 3 Led đơn Start lần 1: Led sáng tuần tự 2s.

Start lần 2: Led sáng tuần tự 1s.

Start lần 3: Led sáng tuần tự 500ms.

Start lần 4: Reset tắt tất cả các led.

Start lần 5: Giống Start lần 1.

Bài 4 :

Viết chương trình điều khiển Led đơn trên board như sau:

- Xây dựng Form gồm 3 nút nhấn (Connect, Left, Right), 1 ComboBox (hiển thị tên các cổng kết nối).

- trên board Mega 2560, mắc mạch gồm 3 Led đơn Khi nhấn Left: 3 Led sáng tuần tự 1s từ trái qua phải.

Khi nhấn Right: 3 Led sáng tuần tự từ phải qua trái.

Bài 8:

LẬP TRÌNH GIAO DIỆN C# CƠ BẢN: ZedGraph

I. MỤC ĐÍCH YÊU CẦU:

- Phân tích yêu cầu, xây dựng giải thuật và viết code theo yêu cầu.

- Xây dựng những chương trình cơ bản bằng ngôn ngữ C#.

- Hình thành kỹ năng phát hiện và sửa lỗi khi lập trình.

II. HƯỚNG DẪN LÝ THUYẾT:

Một phần của tài liệu Tài liệu thực tập lập trình ứng dụng trong kỹ thuật PAPE311426 (Trang 73 - 81)

Tải bản đầy đủ (PDF)

(92 trang)