1. Trang chủ
  2. » Luận Văn - Báo Cáo

MOBILE ROBOT LẬP TRÌNH CƠ BẢN SỬ DỤNG ARDUINO IDE

15 701 2

Đ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 15
Dung lượng 137 KB

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

Nội dung

+Tạo thư mục tên là “MobileRobot” trong “My document/arduino/..”, lưu chương trình này với tên là “Worksheet1” trong thư mục vừa lập +Xuât chương trình đến mobile robot.. Lưu chương trìn

Trang 1

Mobile Robot

Lập trình cơ bản sử dụng Arduino IDE

Trình bày bởi: Nguyễn Xuân Hiếu

Giảng viên Bộ môn Hệ thống điện

Đại học Nông nghiệp Hà Nội

Tháng 11-2013

Trang 2

First Arduino Program

1.Mục tiêu:

Kết thúc phần này, học viên có thể:

+Định nghĩa các chân số là đầu vào hay đầu ra

+Đưa tín hiệu số đầu ra lên cao hay xuống thấp

+Nhận dữ liệu đầu vào số

+Nạp xuất chương trình bởi Arduino

2.Bước lập trình

+Chạy chương trình Arduino IDE, theo mã lệnh sau:

void setup() {

//put your setup code here, to run once:

pinMode(13,OUTPUT); // configure pin 13 as output, LED5 (LED on the right) pinMode(2,INPUT); //configure pin 2 as input, SW2 (push button on the right) }

void loop() {

//put your main code here, to run repeatedly:

if (digitalRead(2)==HIGH) {//if push button is not pressed, button read as high digitalWrite(13,HIGH); //turn off LED5 if push button is not pressed

}

else { //else, button is pressed

digitalWrite(13,LOW); //turn on LED5

}

}

Trang 3

+Tạo thư mục tên là “MobileRobot” trong “My document/arduino/ ”, lưu chương trình này với tên là “Worksheet1” trong thư mục vừa

lập

+Xuât chương trình đến mobile robot Quan sát tín hiệu của đèn LED bên phải

+Kiểm tra đèn LED của bạn bằng cách bật tât cả các đèn LED lên (nhớ định nghĩa các chân là đầu ra)

3.Luyện tập

+Thay đổi chương trình; bật đèn LED2 khi bấm nút SW3 Lưu chương trình này với tên “Worksheet1_EX1” trong thư mục

MobileRobot

+ Viết chương trình mới, LED2 sẽ tắt khoảng 5 lần trong thời gian 200 mili giây nếu bấm nút SW3 Lưu chương trình này với tên

“Worksheet1_EX2” trong thư mục MobileRobot

Trang 4

Đọc dữ liệu sensor

1.Mục tiêu:

Kết thúc phần này, học sinh có thể:

+Mô tả đầu tín hiệu tương tự làm đầu vào

+Đọc dữ liệu tương tự và bật đèn LED căn cứ vào tín hiệu tương tự +Xuất chương trình vào Arduino

2.Bước thực hiện:

+Chạy chương trình trong Arduino theo các câu lệnh sau:

int sensepin = A6;

int LED2=A3, LED3=A1, LED4=4, LED5=13;

void setup() {

//put your setup code here, to run once:

pinMode(LED2,OUTPUT); // configure pin A3 as output, LED2

pinMode(LED3,OUTPUT); //configure pin A1 as output, LED3

pinMode(LED4,OUTPUT); // configure pin 4 as output, LED4

pinMode(LED5,OUTPUT); //configure pin 13 as output, LED5

pinMode(sensepin,INPUT); //configure pin A6 as input, sensor1

}

void loop() {

//put your main code here, to run repeatedly:

int sensorData=analogRead(sensepin); //read sensor1 (pin A6) and store

//then in variable name "SensorData"

int ledLevel=map(sensorData, 0, 512, 0, 4); //map the sensorData then store

// in ledLevel

//turn on Led according to sensor level

if (ledLevel==0) {

digitalWrite(LED2,HIGH);

digitalWrite(LED3,HIGH);

digitalWrite(LED4,HIGH);

digitalWrite(LED5,HIGH);

}

Trang 5

+Lưu chương trình này với tên “Worksheet2” trong thư mục MobileRobot

+Xuât chương trình sang mobile robot Chạm vào Sensor SEN1 và quan sát các đèn LED

+Lặp lại chương trình bằng cách sử dụng các sensor SEN2, SEN3 và SEN4

3.Luyện tập:

+Viết chương trình để bật đèn LED5 nếu sensor SEN1 lớn hơn 128 Lưu chương trình với tên “Worksheet2_Ex1” trong thư mục MobileRobot +Thay đổi chương trình trên, bật đèn LED2, LED3 và LED4 bằng cách sử dụng các sensor SEN2, SEN3, và SEN4 Lưu chương trình với tên

“Worksheet2_Ex2” trong thư mục MobileRobot

digitalWrite(LED2,LOW);

digitalWrite(LED3,HIGH);

digitalWrite(LED4,HIGH);

digitalWrite(LED5,HIGH);

}

else if (ledLevel==2) {

digitalWrite(LED2,HIGH);

digitalWrite(LED3,LOW);

digitalWrite(LED4,HIGH);

digitalWrite(LED5,HIGH);

}

else if (ledLevel==3) {

digitalWrite(LED2,HIGH);

digitalWrite(LED3,HIGH);

digitalWrite(LED4,LOW);

digitalWrite(LED5,HIGH);

}

else if (ledLevel==4) {

digitalWrite(LED2,HIGH);

digitalWrite(LED3,HIGH);

digitalWrite(LED4,HIGH);

digitalWrite(LED5,LOW);

}

}

Trang 6

Giao tiếp nối tiếp

1.Mục tiêu:

+Cho giá trị ban đầu của giao thức nối tiếp

+Đưa văn bản và hiển thị lên màn hình nối tiếp

+Xuất chương trình trên Arduino

2.Thứ tự thực hiện:

+Chạy chương trình trên Arduino theo mã lệnh sau:

void setup() {

//put your setup code here, to run once:

Serial.begin(9600); // initialize serial comm at 9600 baud rate }

int number=0;

void loop() {

//put your main code here, to run repeatedly:

Serial.print("The number is"); //print on screen

Serial.println(number); //print the number with line feed delay(500); //delay 500 ms

number++; //increment by 1

}

Trang 7

+Lưu chương trình trên với tên “Worksheet3” trong thư mục MobileRobot

+Xuất chương trình này ra Robot

+Chọn Tools > Serial Monitor

+Quan sát đoạn văn bản được hiển thị trên cổng nối tiếp (màn hình)

3.Luyện tập:

+Viết chương trình thực hiện việc đếm từ 0 đến 100 và hiển thị trên cổng nối tiếp Ví dụ:

Lưu chương trình này với tên “Worksheet3_Ex1” trong thư mục MobileRobot

One

Two

Three

Trang 8

Điều khiển Mobile Robot từ máy tính

1.Mục tiêu

Kết thúc phần này, học sinh có thể:

+Chọn giá trị ban đầu cho giao tiếp nối tiếp

+Điều khiển LED2 từ máy tính

+Xuất chương trình ra Arduino

2.Thứ tự

+Chạy Arduino IDE theo mã lệnh sau:

//this program use computer keyboard to turn on or off LED

//press number 1 to turn on LED

//press number 0 to turn off LED

int ledPin=A3;

void setup() {

//put your setup code here, to run once:

pinMode(ledPin,OUTPUT); // configure pin A3 as output

Serial.begin(9600);

}

void loop() {

//put your main code here, to run repeatedly:

while (Serial.available()==0); //wait for keyboard press

int val=Serial.read()-'0'; //get the number being pressed

Trang 9

+Lưu chương trình trên dưới tên “Worksheet4” trong thư mục MobileRobot +Xuất chương trình ra mobile robot

+Chọn Tools > Serial Monitor

+Gửi ký tự “1” và quan sát LED2, gửi ký tự “0” và lại quan sát LED2 3.Luyện tập

Thay đổi chương trình ở trên sử dụng các giả thiết sau:

a.Bật LED2 nếu nhận được ký tự “1”

b.Bật LED3 nếu nhận được ký tự “2”

c.Bật LED4 nếu nhận được ký tự “3”

d.Bật LED5 nếu nhận được ký tự “4”

e.Tắt tất cả các đèn nếu nhận được ký tự “0”

Lưu chương trình với tên “Worksheet4_Ex1” trong thư mục MobileRobot

if (val==1) { //if key '1' is pressed, tunr on LED

digitalWrite(ledPin,LOW);

Serial.println("The LED is ON");

}

else if (val==0) { //if key '0' is pressed, turn off LED

digitalWrite(ledPin,HIGH);

Serial.println("The LED is OFF");

}

else {

Serial.println("Invalid input"); //if any other key press, ignore

Serial.flush(); //Flushes the buffer of incoming serial data

}

}

Trang 10

Hiển thị dữ liệu sensor trên màn hình

1.Mục tiêu

Kết thúc phần này, học viên có thể:

+Chọn giá trị ban đầu cho giao tiếp nối tiếp

+Gửi đoạn văn bản và hiển thị nó trên màn hình nối tiếp

Xuất chương trình trên Arrduino

2.Thứ tự

+Chạy chương trình trên Arduino theo mã lệnh sau:

void setup() {

//put your main code here, to run once:

Serial.begin(9600); //initialize serial comm at 9600 baudrate

pinMode(A6,INPUT); //configure pin A6 as input, sensor1 (sensor on the right) }

void loop() {

//put your main code here, to run repeatedly:

int val=analogRead(A6); //read sensor (pin A6) and store then in val;

Serial.println(val); //print the sensor data on computer screen

delay(250); //delay for 0.25 second

}

Trang 11

+Lưu chương trình với tên “Worksheet5” trong thư mục MobileRobot

+Xuất chương trình ra mobile robot

+Chọn Tools > Serial Monitor

+Đặt robot lên rãnh, di chuyển nó quanh đường trắng và quan sát đoạn văn bản hiển thị trên cổng nối tiếp

+Cũng có thể hiển thị thông tin với dữ liệu của sensor khác

3.Luyện tập

+Viết chương trình hiển thị dữ liệu của tất cả các sensor trên màn hình Lưu chương trình này với tên “Worksheet5_Ex1” trong thư mục MobileRobot

Trang 12

Ngắt 1 mili giây

1.Mục tiêu

Kết thúc phần này, học viên có thể:

+Chọn giá trị ban đầu cho giao tiếp nối tiếp

+Chọn ngắt trong thời gian là 1 mili giây

+Xuất chương trình trên Arduino

+Hiển thị đoạn văn bản trên cổng nối tiếp (màn hình)

2.Thứ tự

+Download Timer1.zip từ trang “ ”

+Giải nén và lưu vào thư mục trong “My document/arduino/libraries/ ” (Cần khởi động lại chương trình arduino ide để thư viện cập nhật

thêm file dữ liệu)

+Chạy Arduino IDE Chọn File > Examples > 01.Basics > BareMinimum

Chọn Sketch>Import Library >TimerOne_v9

+Sử dụng mã lệnh sau:

//this is a test program on interrupt

//and display counter on terminal

#include <TimerOne.h>

void setup() {

//put your setup code here, to run once:

Serial.begin(9600); //initialize serial comm at 9600 baudrate

int frequency=1000000/1000; //running at 1000 Hz

Timer1.initialize(frequency); //set a timer of length 100000 microseconds

//attach the service routine here

Trang 13

Ngắt 1 mili giây

+Lưu chương trình trên với tên “Worksheet6” trong thư mục MobileRobot

+Xuất chương trình ra mobile robot

+Chọn Tools > Serial Monitor

+Quan sát đoạn văn bản hiển thị trên cổng nối tiếp

3.Luyện tập

+Viết chương trình đếm từ 0 đến 100 và hiển thị trên cổng nối tiếp (màn hình) nhưng cần hiển thị từ tiếng anh, ví dụ: One

Two

Three

Lưu chương trình này với tên “Worksheet6_Ex1” trong thư mục MobileRobot

Timer1.attachInterrupt(oneMilisecondInterrupt);

}

void loop() {

//put your main code here, to run repeatedly:

}

int counter=0, oneMillisecondCnt=0;

void oneMilisecondInterrupt() {

oneMillisecondCnt++;

counter++;

Serial.println(counter);

}

}

Trang 14

Sử dụng dãy

1.Mục tiêu

Kết thúc phần này, học viên có thể:

+Chọn giá trị ban đầu cho tất cả các chân đầu ra cho đèn LED sử dụng dãy +Xuất chương trình trên arduino

2.Thứ tự

+Chạy Arduino IDE, theo mã lệnh sau đây:

byte LED[ ]={A3, A1, 4, 13}; //led pin

void setup() {

//put your setup code here, to run once:

for (int i=0; i<4 ; i++) {

pinMode(LED[i],OUTPUT); //configure all LED pins as output

digitalWrite(LED[i],HIGH); //turn off all LED

}

}

void loop() {

//put your main code here, to run repeatedly:

for (int i=0; i<4; i++) {

digitalWrite(LED[i],LOW); //turn on all LED

delay(200); //delay for 0.2 second

digitalWrite(LED[i],HIGH); // turn off all LED

delay(200); // delay for 0.2 second

}

}

Trang 15

+Lưu chương trình lại dưới tên “Worksheet7” trong thư mục MobileRobot

+Xuất chương trình đến mobile robot

3.Luyện tập

+Sử dụng dãy để cài đặt thông số ban đầu cho chân sensor Lưu chương trình dưới tên “Worksheet7_Ex1” trong thư mục MobileRobot +Thay đổi chương trình trên để hiển thị dữ liệu của tất cả các sensor trên màn hình nối tiếp Lưu chương trình lại dưới tên

“Worksheet7_Ex2” trong thư mục MobileRobot

Ngày đăng: 12/04/2015, 14:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w