Lưu đồ giải thuật

Một phần của tài liệu Mẫu báo cáo Đồ án tốt nghiệp Cánh tay Robot (Trang 35)

Hình 2. 22: Lưu đồ giải thuật

Trong lưu đồ giải thuật nay dữ liệu sẽ được lấy từ hệ thông tức lấy từ dữ liệu mong muốn từ người dùng sau đó lấy dữ liệu đật được từ encoder sau đó tính toán sai số rồi đưa vào bộ PID rồi quay lại vị trí lấy tín hiệu cứ như vậy cho đến khi sai số là nhỏ nhất(~0).

ĐỒ ÁN TỐT NGHỆP

---

2.4 Kết luận chương

Trong chương này em đã thực hiện tìm hiểu linh kiện, vẽ sơ đồ nguyên lý của hệ thống, xây dựng chương trình cho hệ thống mô hình cánh tay hỗ trợ ăn uống cho người khuyết tật và tìm hiểu thuật toán PID điều khiển vị trí và tốc độ động cơ encoder. Sang chương 3 em sẽ trình bày các bước thiết kế mô hình và thiết kế sản phẩm hoàn chỉnh và thông số đo đạt của thiết bị.

CHƯƠNG 3. HOÀN THIỆN HỆ THỐNG VÀ THÔNG SỐ ĐO ĐƯỢC 3.1 Các bước thực hiện

Bước 1: Chế tạo

- Cấp nguồn 12V cho Arduino và L298 qua 2 chân V-in và GND - Cấp nguồn 5V cho Module nhận dạng giọng nói VR3 qua chân 5V

và GND của Arduino Uno.

- Nối dây Arduino Uno R3với Module VR3:

ARUDINO VOICE RECOGNITION

MODULE V3

5V 5V

8 TX

9 RX

GND GND

Bảng 3: Ghép nối Arduino Uno R3 với Module VR3

- Nối dây Arduino Uno R3 với Module L298:

ARDUINO L298 4 IN1 5 IN2 6 IN3 7 IN4 GND GND

Bảng 4: Ghép nối Arduino Uno R3 với Module L298

- Nối dây Arduino Uno R3 với động cơ DC Encoder:

ARDUINO DC encoder

2 A

7 B

VCC VCC

GND GND

ĐỒ ÁN TỐT NGHỆP

--- Bước 2: Hoàn thiện sản phẩm

ĐỒ ÁN TỐT NGHỆP

---

Hình 3. 2: Thiết kế hoàn thiện phần cánh tay in 3D

Ở đây cánh tay robot đút thức ăn được thiết kế 3 bậc tự do, với 3 động cơ DC encoder tại mỗi khớp và 1 động cơ encoder tại trục xoay

Bước 3: Kiểm thử

 Hoàn thiện phần cứng, cấp nguồn cho thiết bị chạy thử không xảy ra hiện tượng chập cháy.

 Tiến hành nạp chương trình điều khiển cho thiết bị:

 Bước 1: Chọn Tools -> board:”Arduino/Genuino uno’’

ĐỒ ÁN TỐT NGHỆP

--- Bước 2: Chọn Tools -> Port :”COM3”

 Bước 3: Nạp chương trình bằng phần mềm Arduino IDE

Hình 3. 6: Nạp code chương trình cho hệ thống

 Để có thể thực hiện việc nhân giọng nói và lưu giọng nói ta thực hiện như sau:

Các bước tiến hành điều khiển:

1.Add thư viện Voice Recognition V3 library trên Arduino IDE. 2.Mở filevr_sample_train và chạy chương trình để cài đặt giọng nó.

ĐỒ ÁN TỐT NGHỆP

---

Hình 3. 7: Cửa sổ Serial Monitor

4.Gõ setting và click Send

5. Sau đó gõ sigtrain 0 On và click Send. Trong đó: sigtrain là cú pháp cài đặt giọng nói.

0 là số thứ tự giọng nói(tăng dần theo số âm, tối đa là 6) On là tên âm(có thể thay đổi tùy vào âm phát ra).

Bắt đầu cài đặt âm khi có tín hiệu Speak now và kết thúc khi có tín hiệu SIG:

On

Hình 3. 9: Sigtrain 0

ĐỒ ÁN TỐT NGHỆP

---

Hình 3. 10: Sigtrain 1

6. Gõ load 0 1 và click Send để lưu âm phát ra từ giọng nói.

Hình 3. 11: Load

Vậy là việc cài đặt âm phát ra từ giọng nói đã thành công.

7. Tiếp theo ta mở file vr_sample_control_led ra, dựa vào code trong file điều khiển led này ta thực hiện code điều khiển động cơ .

3.2 Thông số đọc được khi sử dụng thuật toán PID để điều khiểnVị trí đặt Kp Ki Kd Vị trí đạt được Sai số Vị trí đặt Kp Ki Kd Vị trí đạt được Sai số Lần 1 1000 0.5 0.05 4 952 48 Lần 2 1000 1 0.05 4 994 6 Lần 3 1000 1 0.1 4 1000 0 Lần 4 1000 2 0.1 4 1003 3

Bảng 6:Thông số đọc bộ điều khiển PID trên Động cơ DC encoder

 Nhận xét:

Hình 3. 12: Biểu đồ thông số tăng giảm Kp, Ki, Kd

Sau khi diều chỉnh các thông số PID thì bộ thông số Kp=1, Ki=0.05, Kd=4 là hoàn hảo nhất.

Dù hiệu chỉnh các thông số Kp, Ki, Kd trong chương trình PID điều khiển vị trí động cơ DC đã hoạt động ổn định nhưng việc xảy ra sai số là điều không thể tránh khỏi.

ĐỒ ÁN TỐT NGHỆP

---

3.3 Kiểm tra và hiệu chỉnh

Sau khi nạp chương trình cho thiết bị xảy ra hiện tượng khối nhận lệnh giọng nói không nhận được lệnh của người sử dụng. Đèn báo tín hiệu trên module nhận dạng giọng nói không báo có tín hiệu.

Hình 3. 13: Sản phẩm kiểm tra bị lỗi

Đánh giá lại hệ thống, em nhận thấy module nhận dạng giọng nói có thể đấu nối sai giữa 2 chân TX và RX. Sau khi kiểm tra và khắc phục lỗi, thiết bị đã hoạt động ổn định.

3.4 Kết luân chương

Trong chương 3 em đã “thiết kế mô hình cánh tay gắp thức ăn hỗ trợ người khuyết tật”, sản phẩm dù chưa được hoàn thiện như mong muốn những đã được đánh giá chất lượng, kiểm tra và khắc phục những lỗi còn mắc phải. Sản phẩm hoàn thiện có tính ứng dụng cao, hỗ trợ tốt cho người khuyết tật.

ĐỒ ÁN TỐT NGHỆP

---

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận

Tuy thời gian có hạn hẹp nhưng được sự hướng dẫn tận tình của thầy giáo Ts Nguyễn Hoài Giang cùng với sự cố gắng của bản thân, em đã hoàn thành tương đối phần động cơ của đề tài đúng thời gian quy định.

Sau khi hoàn thành đề tài, em đã tìm hiểu và nắm vững kiến thức như:

- Tìm hiểu và nắm bắt nguyên lý cấu tạo của board Arduino Uno R3.

- Tìm hiểu và nắm bắt nguyên lý hoạt động của Module nhận dạng giọng nói Voice recognition V3.

- Hiểu được cấu tạo và phương pháp điều khiển vị trí và tốc độ động cơ giảm tốc DC Encoder.

- Sử dụng phần mềm mô phỏng, lập trình để thiết kế hệ thống.

Hướng phát triển trong tương lai

Hiện nay, do hạn chế về mặt thời gian cũng như công nghệ và linh kiện nên sản phẩm chưa thực sự hoàn thiện, chưa đáp ứng được đầy đủ các bài toán do yêu cầu thực tế đặt ra, chính vì vậy trong tương lai em sẽ tiếp tục cải tiến thiết bị, tìm giải pháp để đáp ứng yêu cầu thực tế, hạn chế các nhược điểm của thiết bị, phát triển hệ thống nhận dạng giọng nói không phụ thuộc.. Mong muốn của em là có thể đưa sản phẩm vào ứng dụng thực tế, giúp hỗ trợ người tàn tật trong việc sinh hoạt, đi lại bằng một mô hình tốt nhất.

TÀI LIỆU THAM KHẢO

Tìm hiểu tài liệu về module nhận dạng giọng nói Voice Recognition Module V3

1. http://arduino.vn/bai-viet/955-gioi-thieu-mo-dun-voice-recognition- module-v3-dieu-kien-giong-noi-voi-arduino 2. https://drive.google.com/file/d/0B4vt-olV258teHpPUnJUSG1fRW8/view 3. https://codebender.cc/utilities/download/340601?referrer=thaidinh25 4. http://k2.arduino.vn/img/2016/07/06/0/2621_882450-1467809062-0- thuvienvr3.rar 5. http://arduino.vn/tags/software-serial

Tìm hiểu về Arduino Uno R3

6. http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi

Tìm hiểu về module L298

7. http://tae.vn/mach-dieu-khien-dong-co-l298

Tìm hiểu về động cơ giảm tốc DC

8. http://banlinhkien.vn/category-193-b0-dong-co-dc-giam-toc.html Thuật toán PID điều khiển động cơ DC

9. PID Tutorial

ĐỒ ÁN TỐT NGHỆP

---

PHỤ LỤC

Code PID điều khiển vị trí trên Arduino

#define duong 11// chân In1 #define am 10// chân In2 #define en1 3// chân ngắt

#define en2 12// chân đọc tín hiệu encoder int vitri=0, vitrimm=1000, loi=0;//quán tính void chay() { if(digitalRead(en2)==LOW)// cạnh xuống mức thấp { vitri++; } else{ vitri--; } }

void quay(int nangluong) { if(nangluong>=255) { nangluong=255; } if(nangluong<=-255) { nangluong=-255;

} if(nangluong>0) { analogWrite(am,0); analogWrite(duong,nangluong); } if(nangluong<0) { analogWrite(duong,0); analogWrite(am,-nangluong); } }

double pid(double loi,double kp,double ki, double kd) {

double dloi;//denta lỗi

static double loitr=0, iloi=0;//lỗi trước đó long double temp;

dloi=loi-loitr; iloi+=loi; if(iloi>=100) { iloi=100; } if(iloi<=-100) { iloi=-100;

ĐỒ ÁN TỐT NGHỆP --- } loitr=loi; temp=kp*loi+ki*iloi+kd*dloi; if(temp>=255) { temp=255; } if(temp<=-255) { temp=-255; } return temp; } void setup() {

// put your setup code here, to run once: pinMode(duong,OUTPUT);

pinMode(am,OUTPUT);

attachInterrupt(1,chay,FALLING); //ngắt ngoài cạnh xuống Serial.begin(9600);

}

void loop() {

//quay(-100); loi=vitrimm-vitri; quay(pid(loi,1,0.1,4)); }

Code sử dụng nút nhấn điều khiển động cơ DC

const int buttonPin = 6; const int ledPin = 13; int SoLanNhan = 0;

int TrangThaiHienTai = 0; int TrangThaiTruocDo = 0; #define duong 11

#define am 10

#define en1 3// chân ngắt #define en2 12

int vitri=0, vitrimm=0, loi=0;//quán tính void chay() { if(digitalRead(en2)==LOW)// cạnh xuống { vitri++; } else{ vitri--; } }

ĐỒ ÁN TỐT NGHỆP

---

Một phần của tài liệu Mẫu báo cáo Đồ án tốt nghiệp Cánh tay Robot (Trang 35)

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

(67 trang)
w