Môi trường lập trình của Arduino

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, thiết kế mạch điều khiển động cơ ứng dụng cho robot rhex luận văn ths kỹ thuật điện, điện tử và viễn thông 85103 (Trang 41)

2.5. Lựa chọn mạch Driver

IC L298 là mạch tích hợp đơn chíp có kiểu vỏ công suất 15 chân và linh kiện dán công suất. Là IC mạch cầu đôi có khả năng hoạt động ở điện thế cao, dòng cao. Nó được thiết kế tương thích chuẩn TTL và lái tải cảm kháng như relay, cuộn solenoid, động cơ DC và động cơ bước. Nó có 2 chân enable (cho phép) để cho phép/ không cho phép IC hoạt động, độc lập với các chân tín hiệu vào. Cực phát (emitter) của transistor dưới mỗi mạch cầu được nối với nhau và nối ra chân ngoài để nối với điện trở cảm ứng dòng khi cần.

Nó có thêm chân cấp nguồn giúp mạch logic có thể hoạt động ở điện thế thấp.

Module L298 có thể điều khiển 2 động cơ DC hoặc 1 động cơ bước, có 4 lỗ nằm ở 4 góc thuận tiện cho người sử dụng cố định vị trí của module.

+ Có gắn tản nhiệt chống nóng cho IC, giúp IC có thể điều khiển với dòng đỉnh đạt 2A.

IC L298N được gắn với các đi ốt trên board giúp bảo vệ vi xử lý chống lại các dòng điện cảm ứng từ việc khởi động/ tắt động cơ.

Sơ đồ khối

Hình 2.13. Sơ đồ khối IC LM 298

Hình 2.14. IC LM 298

* Thông số kĩ thuật:

Driver: L298N tích hợp hai mạch cầu H

Điện áp điều khiển: +5V ~ +12 V Dòng tối đa cho mỗi cầu H là: 2A

Điện áp của tín hiệu điều khiển: +5 V ~ +7 V Dòng của tín hiệu điều khiển: 0 ~ 36Ma

Công suất hao phí: 20W (khi nhiệt độ T = 75 °C)

Nhiệt độ bảo quản: -25°C ~ +130

IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với điện áp làm tăng công suất nhỏ như động cơ DC loại vừa…

Tóm tắt chức năng các chân của LM298

- 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của L298. Đây là các chân nhận tín hiệu điều khiển.

- 4 chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3,13,14 của L298. Các chân này sẽ được nối với động cơ.

- Hai chân ENA và ENB dùng để điều khiển mạch cầu H trong L298. Nếu ở mức logic “1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động.

Với bài toán trên, cần lưu ý đến cách điều khiển chiều quay với L298:

- Khi ENA = 0: Động cơ không quay với mọi đầu vào.

- Khi ENA = 1:

INT1 = 1; INT2 = 0: Động cơ quay thuận. INT1 = 0; INT2 = 1: Động cơ quay nghịch. INT1 = INT2: Động cơ dùng ngay tức thì. Với ENB cũng tương tự với INT3, INT4

2.6. Lựa chọn động cơ DC

Chọn động cơ Planet 20W có encoder 12 xung, 2 kênh AB

Khối lượng: 450 gam

Điện áp: 24 VDC Tỉ số truyền 19.2:1

Tốc độ động cơ: 9000 vòng/phút

Tốc độ qua giảm tốc: 469 vòng/phút

Encoder: 12 xung, 2 kênh A B, nguồn 5VDC

Công suất: 20 W

Động cơ planet cao cấp, bền bỉ với thời gian.

Hộp số mạnh mẽ với bộ nhông ăn khớp trong chính xác, giảm tiếng ồn.

Chiều dài hộp số L: 32 mm

Hình 2.16. Hình ảnh thực tế động cơ

Encoder gắn trên động cơ:

Dùng incremental optical encoder để đọc số vòng quay và hồi tiếp về cho Arduino. Bộ điều khiển PID sẽ được dùng và vận hành bởi Arduino.

- Động cơ DC mà chúng ta sử dụng có tích hợp sẵn một encoder 2 ngõ ra, chúng ta sẽ dùng Aduino để đọc số xung (hay số vòng quay) và tính ra vận tốc của Motor. Việc đọc encoder sẽ được thực hiện bằng ngắt ngoài.

- Một giải thuật PID được xây dựng trong Aduino để hiệu chỉnh vận tốc động cơ.

- Người dùng sẽ nhập vận tốc cần điều khiển vào Aduino thông qua máy tính. Vận tốc mong muốn và vận tốc thực của động cơ được hiển thị trên màn hình.

Hình 2.17. Optical Encoder

Encoder thường có 3 kênh (3 ngõ ra) bao gồm kênh A, kênh B và kênh I (Index). Trong hình 2.15 encoder gồm một cặp phát và một cặp thu dành riêng cho lỗ nhỏ này. Đó là kênh I của encoder. Cữ mỗi lần motor quay được một vòng, lỗ nhỏ xuất hiện tại vị trí của cặp phát-thu, hồng ngoại từ nguồn phát sẽ xuyên qua lỗ nhỏ đến cảm biến quang, một tín hiệu xuất hiện trên cảm biến. Như thế kênh I xuất hiện một “xung” mỗi vòng quay của motor. Bên ngoài đĩa quay được chia thành các rãnh nhỏ và một cặp thu-phát khác dành cho các rãnh này. Đây là kênh A của encoder, hoạt động của kênh A cũng tương tự kênh I, điểm khác nhau là trong 1 vòng quay của motor, có N “xung” xuất hiện trên kênh A. N là số rãnh trên đĩa và được gọi là độ phân giải (resolution) của encoder. Mỗi loại encoder có độ phân giải khác nhau, có khi trên mỗi đĩa chỉ có vài rãnh nhưng cũng có trường hợp đến hàng nghìn rãnh được chia. Để điều khiển động cơ, phải biết độ phân giải của encoder đang dùng. Độ phân giải ảnh hưởng đến độ chính xác điều khiển và cả phương pháp điều khiển. Không được vẽ trong hình 2.15, tuy nhiên trên các encoder còn có một cặp thu phát khác được đặt trên cùng đường tròn với kênh A nhưng lệch một chút (lệch M+0,5 rãnh), đây là kênh B của encoder. Tín hiệu xung từ kênh B có cùng tần số với

kênh A nhưng lệch pha 900. Bằng cách phối hợp kênh A và B sẽ biết chiều quay của động cơ.

Hình 2.18. Hai kênh A và B lệch pha trong encoder

Hình trên cùng trong hình 2.15 thể hiện sự bố trí của 2 cảm biến kênh A và B lệch pha nhau. Khi cảm biến A bắt đầu bị che thì cảm biến B hoàn toàn nhận được hồng ngoại xuyên qua, và ngược lại. Hình thấp là dạng xung ngõ ra trên 2 kênh. Xét trường hợp motor quay cùng chiều kim đồng hồ, tín hiệu “đi” từ trái sang phải. Lúc này tín hiệu A chuyển từ mức cao xuống thấp (cạnh xuống) thì kênh B đang ở mức thấp. Ngược lại, nếu động cơ quay ngược chiều kim đồng hồ, tín hiệu “đi” từ phải qua trái. Lúc này, tại cạnh xuống của kênh A thì kênh B đang ở mức cao. Như vậy, bằng cách phối hợp 2 kênh A và B chúng ta không những xác định được góc quay (thông qua số xung) mà còn biết được chiều quay của động cơ (thông qua mức của kênh B ở cạnh xuống của kênh A).

Cuối cùng là sử dụng ngắt ngoài: đây là phương pháp dễ nhưng chính xác để đọc encoder và cũng là phương pháp được dùng trong luận văn này. Ý tưởng của phương pháp rất đơn giản, chúng ta nối kênh A của encoder với 1 ngắt ngoài

(INT2 chẳng hạn) và kênh B với một chân nào đó bất kỳ (không phải chân ngắt). Cứ mỗi lần ngắt ngoài xảy ra, tức có 1 xung xuất hiện trên ở kênh A thì trình phục vụ ngắt ngoài tự động được gọi. Trong trình phục vụ ngắt này chúng ta kiểm tra mức của kênh B, tùy theo mức của kênh B chúng ta sẽ tăng biến đếm xung lên 1 hoặc giảm đi 1. Tuy nhiên, cần phải tính toán rất cẩn thận khi sử dụng phương pháp này. Ví dụ trường hợp encoder có độ phân giải 2000 xung/vòng, motor quay với vận tốc 100 vòng/s thì tần số xung trên kênh A của encode là 2000x100=200KHz, nghĩa là cứ mỗi 5 us ngắt ngoài xảy ra một lần.

2.7. Lựa chọn cảm biến

Để robot hoạt động ổn định, chính xác ngoài hệ thống camera trước và sau được truyền về máy tính, robot cần hệ thống cảm biến, robot tiến, lùi, quay trái, phải với các góc 450, 900, 1800 thông qua cảm biến la bàn số và hệ thống encoder gắn trên động cơ.

Trong khuôn khổ đề tài, lựa chọn cảm biến la bàn số QMC5883L có kích thước nhỏ gọn sử dụng giao tiếp I2C, được dùng để đo từ trường của trái đất nhằm xác định phương hướng với độ chính xác lên đến 1 hoặc 2 độ, cảm biến có cách đo riêng biệt cho từng trục và có thể kết hợp lại để tính toán 3D.

Cảm biến la bàn số QMC5883L còn có thể dùng để đo từ trường thô hoặc các nguồn từ trường mạnh hơn gần nó, cảm biến có thể cảm nhận được nguồn từ trường xung quanh nó như của nam châm hoặc điện trường, khi phát hiện được từ trường từ bên ngoài, nó có thể xác định được khoảng cách tương đối hoặc chiều đến vật phát ra từ trường đó.

Thông số kỹ thuật:

Nguồn cung cấp: 3÷5 VDC

Chuẩn truyền thông: Standard IIC communication protocol

Dải đo: ± 1.3 ÷ 8 Gauss

Điện áp điều chỉnh mức thấp nhất: 3.3V

Kích thước (D x R x C): 14.35 mm x 13.16 mm x 3.40 mm Kết nối đến Arduino:

Arduino GND -> QMC5883L GND

Arduino 3.3V -> QMC5883L VCC

Arduino A4 (SDA) -> QMC5883L SDA

Arduino A5 (SCL) -> QMC5883L SCL

Hình 2.19. Cảm biến la bàn số QMC5883L

La bàn chỉ xác định hướng, muốn xác định tọa độ của robot cần có 2 hướng, 2 hướng này giao nhau tại 1 điểm đó là tọa độ của robot.

Robot hoạt động bằng la bàn thường kèm theo encoder để xác định tọa độ của nó. Muốn robot hoạt động, người ta phải lập bản đồ hoạt động. Thí dụ robot đi từ điểm A đến điểm B, giữa A và B có chướng ngại, robot cần phải tránh.

Trước tiên phải vẽ bản đồ hoạt động. Từ A đến B có hướng thí dụ là 330 độ Nam, từ A đến chướng ngại là 1m, bề dài chướng ngại là 1m. Từ chướng ngại đến B là 2m. Bánh xe robot có chu vi là 0,1 m.

Như vậy robot bắt đầu hoạt động từ điểm A đi về hướng 330 độ Nam, encoder gắn trên trục bánh xe đếm được 10 vòng là phải tránh chướng ngại. Robot quẹo phải tức là ở hướng: 330 + 90 = 420 - 360 = 60 độ Bắc. Cứ thế robot sẽ tiếp tục đi thẳng 10 encoder rồi quẹo trái, đi thẳng, quẹo trái, đi thẳng, quẹo phải đi thẳng đến mục tiêu.

Chương 3

KẾT QUẢ VÀ THỬ NGHIỆM 3.1. Kết quả

Hình 3.1. Bản vẽ mạch in hai lớp

Bo mạch được thiết kế bằng phần mềm Orcad, với mạch in hai lớp, bao gồm arduino điều khiển các khối: Khối điều khiển Motor 1, Motor 2 , Motor 3, Motor 4, Motor 5, Motor 6.

Sau khi đã gia công, lắp ráp hoàn chỉnh các bo mạch, các bo mạch được lắp vào trong các hộp đựng mạch của Robot Rhex, đấu nối các dây dẫn liên quan, đạt được phần cứng điều khiển động cơ hoàn chỉnh.

3.2. Thử nghiệm

3.2.1. Thử nghiệm các thao tác vòng trái, vòng phải với các góc độ khác nhau nhau

Hàm truyền đạt của động cơ DC khi robot thực hiện thao tác vòng trái, vòng phải:

(3.1)

Xác định thông số bộ điều khiển

Bộ điều khiển PID ( KD =0 )

KP = 0,6

TN = 0,5Tcrit = 0,021

TV = 0,125Tcrit = 0,00525

KI = 1318,29

KD = KP.TV = 0,145

Hình 3.2. Đồ thị hiển thị tín hiệu góc quay

Khi Robot đứng (không di chuyển tiến lùi), người sử dụng có thể điều khiển Robot vòng trái, vòng phải với các góc 45 độ, 90 độ, 180 độ. Trong thực tế, các thao tác này thường được sử dụng khi Robot cần phải rẽ hướng tại các địa hình phức tạp (không thể vừa di chuyển tiến, lùi vừa rẽ hướng được).

+ Đánh giá kết quả:

a) Robot đang vòng phải. b) Robot đang vòng trái Hình 3.3. Thử nghiệm cho Robot tại chỗ vòng phải, vòng trái.

t(s) v(cm/s)

- Ưu điểm: Do có phương pháp di chuyển khác với khi di chuyển thông thường, nên quá trình vòng phải, vòng trái cơ bản được linh hoạt; Robot được chuyển hướng ngay lập tức theo hướng đã điều khiển, đặc biệt có thể rẽ vuông góc. Vị trí của Robot sau khi rẽ hướng hầu như không thay đổi so với trước khi rẽ

- Hạn chế: Góc rẽ chưa được chính xác, do phụ thuộc vào địa hình nên chân Robot có thể bị vướng làm sai góc rẽ (thông thường là góc rẽ < góc cần rẽ).

3.2.2. Thử nghiệm Robot di chuyển tại địa hình bằng phẳng

Cho KI = KD = 0, KP = 0,5

Hình 3.4. Đồ thị hiển thị tín hiệu di chuyển bằng phẳng

+ Thử nghiệm tại địa hình tương đối bằng phẳng. Khi di chuyển trên đường bằng phẳng, Robot sử dụng phương pháp di chuyển thông thường (từng cặp 3 chân sẽ thay nhau chuyển động).

Hình 3.5. Thử nghiệm Robot di chuyển trên đường bằng. v (cm/s)

Đây là phương pháp di chuyển chủ yếu, được sử dụng nhiều nhất. Để đảm bảo Robot không bị lệch hướng thì tốc độ, thời điểm chạm đất của các chân phải đồng bộ với nhau.

- Ưu điểm: Việc di chuyển (tiến, lùi; thực hiện vòng trái, vòng phải trong khi tiến) được Robot thực hiên tương đối tốt. Các chân của Robot đồng bộ với nhau, Robot không bị giật khi chuyển bước. Khi đứng lại Robot trở về đúng trạng thái yêu cầu (trạng thái sẵn sàng di chuyển cho bước tiếp theo). Việc điều khiển tiến, lùi, vòng trái, vòng phải, tạm dừng có hiệu quả tức thì (khi kết thúc bước đang thực hiện thì Robot sẽ chuyển trạng thái yêu cầu).

Khi di chuyển trên đường bằng, thì tốc độ của Robot có thể được đặt ở mức 1 đến mức 9.

- Hạn chế: Khi đặt tốc độ di chuyển ở mức 9 (mức cao nhất) thì Robot có cảm giác bị giật (do tốc độ nhanh, các cảm biến không cập nhật kịp). [1]

3.2.3. Thử nghiệm Robot lên, xuống bậc cao

Cho KP = KI = 2; KD = 0,01 ta có đồ thị sau:

Hình 3.6. Đồ thị hiển thị tín hiệu lên xuống bậc cao t(s) v (cm/s)

Theo thiết kế, Robot có khả năng lên, xuống bậc thẳng đứng có chiều cao < 2 lần đường kính chân của Robot. Với đường kính chân là 20 cm, do vậy nhóm nghiên cứu đề tài đã thử nghiệm bậc cao 35 cm.

- Ưu điểm: Đối với các bậc cao < 40 cm thì Robot có khả năng leo lên, leo xuống tốt; đồng thời Robot không bị lật. Các bộ cảm biến có phản ứng tốt, khi Robot bắt đầu bước chân lên bậc (tăng tốc độ để tăng lực đẩy); đồng thời Robot tự điều chỉnh để đảm bảo thăng bằng khi lên bậc và xuống bậc. Khi đã hoàn thành việc lên, xuống bậc thì Robot lại trở về trạng thái di chuyển bình thường.

- Hạn chế: Khi Pin yếu hoặc tốc độ đặt ở mức thấp thì việc leo bậc sẽ gặp khó khăn (Robot sẽ phải dừng lại để tăng tốc nhiều lần). Khi leo bậc mà góc chạm của Robot với bề thành đứng của bậc thấp (< 30 độ) thì Robot có thể bị lệch hướng. [1]

KẾT LUẬN 1. Kết quả nghiên cứu của đề tài

Về cơ sở lý thuyết:

- Phân tích và lựa chọn được phương án thiết kế hợp lý.

- Phân tích và tính toán được các thông số kỹ thuật cần thiết.

- Sử dụng được phương pháp điều khiển tối ưu hóa cho robot.

Về mặt thực nghiệm:

- Chế tạo thành công hệ thống điều khiển động cơ cho robot.

Áp dụng thực tiễn:

- Với kết quả đạt được có thể ứng dụng đề tài vào việc điều khiển robot từ xa bằng sóng vô tuyến và thu được các hình ảnh trực quan từ camera trên robot về máy tính.

- Đề tài góp phần làm phát triển thêm các hình thức mô hình, mô phỏng cho các robot địa hình chuyên dụng có khả năng thay thế hoạt động của con người trong các khu vực nguy hiểm.

- Đề tài góp phần phục vụ cho công việc học tập, nghiên cứu của sinh viên các ngành cơ khí, tự động hóa…

2. Hướng phát triển của đề tài:

Đề tài có tính mở, có nhiều vấn đề có thể tiếp tục triển khai nghiên cứu

phát triển đề tài như sau:

- Hoàn thiện kết cấu cơ khí để robot có thể hoạt động hiệu quả ở các địa hình phức tạp hơn.

- Hướng đến phát triển việc điều khiển robot ở khoảng cách xa hơn qua đường truyền Internet.

- Định vị cho robot [13,15].

- Trang bị cho robot các cảm biến đo nhiệt độ, độ ẩm, độ phóng xạ… để gửi tín hiệu các trạng thái ở vùng hoạt động của robot về máy tính, làm tăng thêm khả năng ứng dụng cho robot.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, thiết kế mạch điều khiển động cơ ứng dụng cho robot rhex luận văn ths kỹ thuật điện, điện tử và viễn thông 85103 (Trang 41)

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

(68 trang)