CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT
3.5.6. Khối hiển thị và cảnh báo
2.2.1.15. Màn hình led LCD 16x2
Hình 2.24 Màn hình LCD 16×2
Thơng số kỹ thuật LCD 16×2:
LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số.
LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN).
5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.
Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.
Chúng cịn giúp ta cấu hình ở chế độ đọc hoặc ghi.
LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.
41
2.2.1.16. Module I2C Arduino
Hình 2.25 Module I2C LCD 16×2
LCD có q nhiều nhiều chân gây khó khăn trong q trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển.
Module I2C LCD ra đời và giải quyết vấn để này cho bạn.
Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.
Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.
Ưu điểm:
Tiết kiệm chân cho vi điều khiển.
Dễ dàng kết nối với LCD.
Thông số kĩ thuật:
Điện áp hoạt động: 2.5-6V DC.
Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).
Giao tiếp: I2C.
Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).
Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.
Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.
42
2.2.1.17. Giao tiếp I2C Module I2C LCD 16×2 GND VCC SDA SCL
Bảng 2.3 Đấu nối chân
Hình 2.26 Sơ đồ đấu nối giao tiếp IC2 với LCD 16×2.
2.2.1.18. Hệ thống cảnh báo bằng còi
Trong thực tế trong nhà xưởng khi Robot tự hành AGV hoạt động thường gặp công nhân đi lại qua các đường đi của Robot khi Robot phát hiện nhờ hệ thống cảm biến và Camera thì cần phải có cảnh báo.
Hình 2.27 Sơ đồ nguyên lý hệ thống cảnh báo
43
Hình 2.28 Cịi piezo buzzer Chức năng: Chức năng: Còi hú báo động đỏ Thông số kỹ thuật: Điện áp hoạt động: 2-6V DC Tích hợp để gắn lên PCB Đường kính: 1.2cm 2.3. Nguyên lý hoạt động
Robot được điều khiển theo 2 chế độ là bằng tay và tự động. Ở chế độ điều khiển bằng tay, người dùng có thể dùng điện thoại để điều khiển robot trên màn hình. Việc này địi hỏi robot phải được kết nối với điện thoại thông qua internet. Trong chế độ này, hệ thống cảm biến phát hiện vật cản có thể được bật hay tắt là tùy ý người dùng.
Ở chế độ điều khiển thứ 2, chế độ vận hành tự động, người dùng sẽ gửi một mã lệnh yêu cầu robot đến các vị trí đã đánh dấu sẵn trước đó. Dựa trên vị trí hiện tại và vị trí cần đến, robot sẽ tính tốn và xoay một góc phù hợp, sau đó di chuyển theo đường thẳng tới vị trí đích mong muốn.
Đối với chế độ tự động, trước khi cho robot tự vận hành, người dùng cần nhập địa đỉa nhận hàng và trả hàng trên bộ điều khiển hoặc trên điện thoại.
Sau khi đã có vị trí hiện tại và các vị trí cần đi đến, robot sẽ thực hiện chế độ chạy tự động. Việc di chuyển từ điểm này đến điểm kia, ví dụ, từ điểm A đến điểm B, được thực hiện theo 2 bước: Bước 1, robot sẽ tính tốn và quay một góc sao cho hướng đi tới của robot trùng với hướng của véc tơ AB. Bước 2, robot sẽ căn cứ vào khoảng cách từ vị trí hiện tại đến B để thực hiện việc tăng giảm tốc độ. Theo đó, nếu khoảng cách từ vị trí hiện tại đến B lớn, robot sẽ di chuyển nhanh. Ngược lại, nếu khoảng cách này ngắn, robot sẽ di chuyển chậm lại. Đồng thời, trên đường đi, robot cũng sẽ điều chỉnh vận tốc của 2 bánh sao cho mũi của robot ln hướng về điểm B.
44
Hình 2.28 Lưu đồ điều khiển tổng quát của robot
2.4. Thiết kế chương trình cho robot
2.4.1. Sơ đồ khối của chương trình
Robot muốn hoạt động ổn định thì khơng những phụ thuộc vào thiết kế cơ khí mà chương trình cho các robot phải thực sự ổn định dựa trên sự ổn định về mạch điều khiển.
45
Các chương trình cho Robot cịn phải mềm dẻo, dễ quản lý để cho người lập trình có thể thay đồi cho robot hoạt động một cách linh hoạt.
Để làm được như vậy, chương trình phải quản lý theo cách từ lớn đến nhỏ, từ tổng quát đến cụ thể. Trước khi lập trình thì người lập trình phải viết một khung chương trình chính, sau đó mới phát triển các chương trình con dựa trên chương trình chính này. Trên thực tế, việc viết các chương trình con và kiểm tra hoạt động của các chương trình con, sau đó ghép nối lại cũng mất rất nhiều thời gian. Các chương trình con thường dùng để điều khiển các hoạt động của robot nên nó phải được kiểm tra thực tế.
Khối khởi tạo
Vịng lặp chính của chương trình Các chương trình con phục vụ ngắt Các chương trình con xử lý hoạt động
Hình 2.29 Sơ đồ khối của chương trình cho một robot
Một chương trình cho robot sẽ bao gồm các khối:
Khối khởi tạo:
Khối này có nhiệm vụ thiết lập các giá trị ban đầu cho các thanh ghi, các biến, các ô nhớ, khởi tạo các ngắt. Ngồi ra trong khối này sẽ có chương trình con qt phím, qt led từ chương trình con này sẽ cho phép robot hoạt động và lựa chọn lộ trình cho robot.
Vịng lặp chính:
Nhận dữ liệu từ điện thoại.
Tính vị trí
Khối các chương trình con xử lý hoạt động:
Khối này sẽ chứa các chương trình con quản lý các hoạt động, các thao tác của robot.
Các chương trình con phục vụ ngắt sẽ hỗ trợ việc chống nhiễu cho robot, và hoạt động chính xác hơn. Các chương trình con phục vụ ngắt được dùng là các ngắt ngoài, các ngắt timer.
2.4.2. Lưu đồ thuật tốn của các chương trình
2.3.2.1. Lưu đồ thuật tốn chương trình chính.
Chương trình sẽ bắt đầu khởi tạo rồi nhận tín hiệu điều khiển từ điện thoại từ đó hiển thị và xử lý dữ liệu để điều khiển robot.
Hình 2.30 Sơ đồ khối của chương trình chính
47
2.3.2.2. Lưu đồ chương trình điều khiển bằng tay trên di động
Chương trình được chọn ở chế độ bằng tay trên thiết bị di động sau đó gửi dữ liệu tới robot và tiến hành thực hiện các chức năng điều khiển.
Hình 2.31 Lưu đồ chương trình điều khiển bằng tay
2.3.2.3. Lưu đồ chương trình tự động
Chương trình chọn ở chế độ tự động trên thiết bị di động sau đó gửi dữ liệu đến robot và tiến hành chạy chế độ tự động đã thiết lập trước.
48
Hình 2.32 Lưu đồ chương trình tự động
2.5. Kết luận Chương 2
Chương 2 đã nêu rõ nguyên lý hoạt động, chức năng, nhiệm vụ của robot, tính tốn và thiết kế các khối trên robot một cách chi tiết. Khi đã tính tốn để chọn linh kiện cho các khối ta vẽ sơ đồ nguyên lý. Sau đó ta tiến hành ủi mạch, hàn linh kiện, dùng các dây bus để cấp nguồn cho các khối mạch, kết nối các khối với nhau. Khi đã kết nối xong các khối mạch với nhau ta cho Robot chạy thử, nếu Robot chạy đúng theo yêu cầu thì ta tiếp tục thực hiện các yêu cầu khác. Nếu Robot chưa hoạt động đúng theo yêu cầu hay trong các khối mạch có mạch nào đó khơng hoạt động hoặc linh kiện bị hư hỏng thì ta kiểm tra lại mạch, thay thế linh kiện, test mạch để Robot hoạt động đúng theo yêu cầu của đề tài.
49
Chương 2 còn giới thiệu một cách tổng quát chương trình cho robot, các thuật tốn để xây dựng chương trình cho robot từ đó viết code để điều khiển robot hoạt động cũng như phần mền giao diện để điều khiển robot từ xa. Sau khi nạp chương trình vào chip và chạy chương trình giao diện robot đã hoạt động một cách ổn định.
50
CHƯƠNG 3: THỰC NGHIỆM
3.1. Thi công phần cứng
3.1.1. Thi công mạch điện tử
Mạch điện tử của robot được thiết kế bằng phần mềm Altium.
Altium Designer là một phần mềm thiết kế tích hợp được phát triển bởi Altium Limited – Canada. Nó bao gồm tất các những cơng cụ cần thiết cho một bản thiết kế điện tử hồn thiện, ví dụ như cơng cụ thiết kế bản vẽ nguyên lý, bản vẽ mạch in, mô phỏng mạch điện, phân tích tín hiệu, mơi trường lập trình VHDL, mơi trường thiết kế và phát triển hệ thống nhúng FPGA, …
Các phiên bản trước đây của Altium Designer gồm có: DXP2002, DXP2004, Summer 08, Winter 09, Summer10, và mới đây nhất là Altium Designer 10. Phiên bản Altium Designer Winter 09 có các chức năng cơ bản như:
Vẽ mạch nguyên lý (Schematic Design) Vẽ mạch in (PCB Design)
Vẽ và thiết kế thư viện nguyên lý (Schematic Library) Vẽ và thiết kế thư viện chân linh kiện (PCB Library)
Hình 3.1 Giao diện phần mềm Altium Designer
Thực nghiệm vẽ mạch trên Altium Designer:
51
Hình 3.2 Thiết kế mạch dị line
Hình 3.3 Thiết kế mạch bộ xử lý trung tâm
3.1.2. Phân tích động lực học
Bằng các kiến thức động lực học tìm hiểu được khi thực hiện đồ án, em đã áp dụng và sử dụng phần mềm SOLIDWORKS Simulation. Được tích hợp chặt chẽ với SOLIDWORKS 3D CAD, phân tích chuyển động bằng cách sử dụng SOLIDWORKS Simulation có thể là một phần thường xuyên trong quy trình thiết kế của bạn, giúp giảm
52
nhu cầu về các nguyên mẫu tốn kém, loại bỏ việc làm lại hoặc trì hỗn, tiết kiệm thời gian và chi phí phát triển.
Phân tích chuyển động được giải quyết bằng cách sử dụng phương pháp cơ sở thời gian cho các vấn đề động học và động lực học khối rắn. SOLIDWORKS Motion đưa nhà thiết kế vượt ra ngồi chuyển động kéo tự do có sẵn trong mơi trường CAD và tính tốn vật lý thực sự các lực và chuyển động của một tổ hợp khi nó di chuyển dưới tải trọng môi trường (ngoại lực) và / hoặc tải trọng bên trong (động cơ, lò xo, và giảm chấn).
Hình 3.4 Mơ phỏng động học
Mơ phỏng SOLIDWORKS Motion có thể tính tốn hiệu ứng của:
Tải trọng Lị xo Bộ giảm chấn Trọng lực Liên hệ giữa các thành phần Bushings 53
Một khi chuyển động lắp ráp đã được tính tốn, có thể dễ dàng phân tích cấu trúc của các bộ phận dưới tải trọng gây ra chuyển động (gia tốc và lực khớp), trong nghiên cứu chuyển động hoặc xuất sang nghiên cứu phân tích kết cấu.
3.2. Chức năng di chuyển và tải trọng thực tế
3.2.1. Chức năng di chuyển
Mục tiêu:
Chế độ điều khiển bằng tay: Robot di chuyển đúng theo tín hiệu điều khiển phát ra từ thiết bị di động, q trình di chuyển khơng có lỗi.
Chế độ tự động: Robot di chuyển đúng theo line, robot di chuyển theo đúng vị trí đã chỉ định trước.
Vận tốc tối thiểu: 5km/h. Thực nghiệm:
Chế độ điều khiển bằng tay:
Hình 3.5 Kết quả thực nghiệm vận tốc của 2 bánh xe. Hình a: Vận tốc 25 vịng/phút khi khơng tải. Hình b: Vận tốc 50 vịng/phút khi khơng tải.
54
Hình 3.6 Kết quả thực nghiệm vận tốc của 2 bánh xe. Hình c: Vận tốc 25 vịng/phút khi có tải. Hình b: Vận tốc 50 vịng/phút khi có tải.
Ở chế độ điều khiển bằng tay, robot được thử nghiệm cho di chuyển thẳng với vận tốc 2 bánh xe lần lượt là 25 vịng/phút và 50 vịng/phút, khi khơng tải và khi có tải. Việc lấy mẫu dữ liệu vận tốc được tiến hành mỗi 50 mili giây.
Dữ liệu đáp ứng vận tốc của 2 bánh xe được mô tả trên Hình 3.5 và Hình 3.6, với đường xanh lá và xanh dương là vận tố của mỗi bánh xe, trong khi đường đỏ là vận tốc thiết lập (setpoint). Với các hệ số PID đã được thiết lập cố định, cả 2 bánh xe đều cho đáp ứng vận tốc khá giống nhau và đều khá ổn định quanh vận tốc thiết lập.
So sánh 2 trường hợp khi khơng tải và khi có tải nặng 20kg, đáp ứng của cả 2 bánh xe khơng có sự khác biệt nào đáng kể. Nếu so sánh giữa 2 vận tốc thiết lập khác nhau, có thể thấy với vận tốc 50 vòng/phút, đáp ứng của các động cơ chậm hơn, tuy nhiên thời gian xác lập cũng chỉ khoảng 4 giây trước khi đạt đến mức ổn định, so với khoảng khoảng 3 giây ở vận tốc 25 vòng/phút.
55
Chế độ tự động: Robot di chuyển ổn định, khả năng đọc line tốt, khơng có lỗi trong q trình vận hành. Kết quả thực nghiệm cho thấy robot có thể chạy tự hành theo các điểm trên bản đồ với độ chính xác lặp lại cao.
Vận tốc đạt từ 6-7 km/h
3.2.2. Tốc độ di chuyển và tải trọng thực tế
Sau 4 lần thực nghiệm kết quả như sau:
Bảng 3.1 Kết quả thực nghiệm tốc độ và tải trọng của robot
3.3. Thực nghiệm chức năng hệ thống
3.3.1. Chức năng phát hiện vật cản
Mục tiêu:
Chức năng phát hiện vật cản hoạt động ổn định, khơng có lỗi trong q trình vận hành, tốc độ phản hồi nhanh.
Khoảng cách phát hiện vật cản là 10 cm.
Chức năng cảnh báo hoạt động ổn định, tốc độ phản hồi khi gặp vật cản nhanh, âm thanh phát ra đủ lớn.
Thực nghiệm:
Chức năng phát hiện vật cản phản hồi nhanh, hoạt động ổn định, robot lập tức dung lại khi gặp vật cản.
56
Khoảng cách phát hiện vật cản là 10 cm
Chức năng cảnh báo: hoạt động ổn định, phản hồi nhanh chóng khi gặp vật cản, tín hiệu phát ra đủ lớn để cảnh báo người sử dụng
3.3.2. Chức năng điều khiển robot bằng thiết bị di động
Mục tiêu:
Chức năng hoạt động ổn định
Ứng dụng điều khiển trên điện thoại hoạt động ổn định, dễ sử dụng
Khoảng cách điều khiển đảm bảo Thực nghiệm:
Chức năng hoạt đông tốt
Ứng dụng trên điện thoại hoạt động ổn định, thiết kế dễ sử dụng
Tầm hoạt động tốt, theo tín hiệu wifi
3.3.3. Chức năng nâng hàng hóa
Theo tính tốn dự theo lí thuyết của hệ thống nâng thủy lực thì robot có thể nâng hang hóa lên đến 20kg.
Nhưng do hạn chế về phần cứng cũng như thời gian làm đồ án trong lúc dịch bệnh căng thẳng nên khơng thể tìm được linh kiện tốt nhất. Vì vậy robot khi thực nghiệm nâng được tải trọng khoảng 15 kg.
3.3.4. Chức năng nhận và trả hàng
Mục tiêu:
Chức năng nhận hàng: Chức năng hoạt động ổn định, nhận hàng đúng vị trí được chọn trước.
Chức năng trả hàng: Chức nang hoạt động ổn định, nhận hàng đúng vị trí được chọn trước.
Robot quay lại ví trí ban đầu sau khi hoang thành q trình nhận và trả hang Thực nghiệm:
Robot nhận và trả hàng chính xác vị trí được chọn trước.
Robot trở về vị trí ban đầu sau khi hồn thành q trình nhận và trả hàng.
3.3.5. Giao diện chương trình
Giao diện được thiết kế bằng phần mềm Blynk:
Hình 3.7 Giao diện điều khiển robot
2.3.2.4. Chức năng
MOVE: Di chuyển robot.
LEN: Nâng hàng.
XUONG: Hạ hàng.
FROM: Nơi nhận hàng.
TO: Nơi trả hàng.