Điều khiển nhận bằng cử chỉ và giọng nói (có code)............................. Điều khiển nhận bằng cử chỉ và giọng nói (có code)............................. Điều khiển nhận bằng cử chỉ và giọng nói (có code)............................. Điều khiển nhận bằng cử chỉ và giọng nói (có code)............................. Điều khiển nhận bằng cử chỉ và giọng nói (có code).............................
Trang 1ĐIỀU KHIỂN NHỆN BẰNG CỬ CHỈ VÀ
GIỌNG NÓI
Trang 2DANH MỤC CÁC HÌNH VẼ
Trang 6CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu
- Trong những năm trở lại đây, việc nghiên cứu các chuyển động của các robot
di chuyển bằng chân thu hút được nhiều người quan tâm bởi vì khả năng dichuyển của nó linh hoạt hơn trên các địa hình phức tạp như địa hình lồi lỡm,sỏi, đá,…
Hình 1-1: Bộ điều khiển và nhện 4 chân
- Robot nhện có 4 chân và mỗi chân gồm 3 bậc tự do Do đó việc di chuyểntrở nên linh hoạt, tuy nhiên quá trình tính toán chuyển động giữa các khớp cóchút phức tạp
- Bộ điều khiển có thể điều khiển nhện bằng nhiều lệnh như: giọng nói, cử chỉ
và nút nhấn
- Robot nhện có thể đi tiến, đi lùi, qua trái, qua phải, đứng, ngồi
- Đề tài sử dụng vi điều khiển ATmega328p, module nhận diện giọng nói,module nhận dạng cử chỉ APDS-9960, điều khiển truyền lệnh qua sóng RF
Trang 7- Thiết kế mạch vi điều khiển, hiểu được cảm biến nhận dạng cử chỉ APDS-9960, cảm biến nhận dạng giọng nói.
- Biết được cách di chuyển của nhện
- Hoàn thành phần cứng nhện
1.3 Hướng nghiên cứu
- Hiểu được cách hoạt động của các module nhận dạng cử chỉ, nhận dạnggiọng nói
- Tìm hiểu thuật toán di chuyển của nhện 4 chân
CHƯƠNG 2 THIẾT KẾ HỆ THỐNG
Trang 8NRF24L01
Nguồn (Pin)
Chức năng của các khối phát:
- Nguồn: dùng để cấp nguồn chỉ vi điều khiển và các module khác
- Voice, Gesture, Button: là các tín hiệu đầu vào để điều khiển nhện
Trang 9NRF24L01 MCU Servo
Nguồn (Pin)
- MCU: là vi điều khiển ATmega328p
- Màn hình hiển thị: là LCD16x2
- NRF24L01: để truyền tín hiệu điều khiển tới khối thu
1.1.2 Khối thu
Hình 2-3: Sơ đồ khối thu
Chức năng của các khối thu:
- Nguồn: là pin dùng để cấp nguồn cho vi điều khiển và servo và các module khác
- NRF24L01: là module nhận tín hiệu từ phía phát
- MCU: là vi điều khiển ATmega328p
- Servo: là dùng để điều khiển các chân của robot nhện
1.5 Các linh kiện module
SPI
Trang 101.1.3 Voice Recognition RV3 [1]
Hình 2-4: Module Voice Recognition RV3 [2]
Sơ đồ chân module Voice Recognition RV3
- VCC: Chân cấp nguồn 5V
- GND: Chân GND
- TX, RX: transmitter/receiver
Đặc tính module Voice Recognition RV3
- Module hỗ trợ tối đa 80 lệnh, mỗi lệnh tối đa 1.5s
- Điều khiển dễ dàng qua UART/GPIO
- Hỗ trợ thư viện arduino
1.1.4 APDS-9960 [3]
Trang 11Hình 2-5: APDS-9960 [3]
Sơ đồ chân module APDS-9960
- VL: nguồn cho led hồng ngoại
Trang 12Hình 2-6: LCD 16x2 [4]
- Tổng quan: Màn hình LCD 16x2 sử dụng driver HD44780, có thể hiển thị 2
dòng với mỗi dòng 16 kí tự, LCD16x2 có độ phổ biến cao, bền, giá thành rẻ
- Sơ đồ chân:
• VSS: Chân đất
• VO:Chân tùy biến độ tương phản của LCD
• VDD: Chân cấp nguồn 5V DC
• R/W: Chân chọn chế độ đọc/ghi (Read/Write) của LCD
• D0 - D7: tám đường của bus dữ liệu của LCD
• Enable pin: Cho phép ghi vào LCD
• Backlight: Tắt bật đèn nền LCD
• RS: Chân chọn thanh ghi (Register select)
1.1.6 Vi điều khiển ATmega328p [7]
Trang 13Hình 2-7: ATmega328p [8]
ATmega328p là một chíp vi điều khiển được sản xuất bới hãng Atmel ATmega328p
là vi điều khiển 8 bit, được sử dụng rộng rãi trong những dự án nhỏ của sinh viên
Thông số kỹ thuật của ATmega328p:
- Điện áp hoạt động 5V DC.
- Vi điều khiển có 14 chân I/O
- Dòng tối đa trên mỗi chân I/O của vi điều khiển là 30mA.
- Vi điều khiển hoạt động ở tần số 16Mhz.
- Vi điều khiển có 6 chân analog.
- Dòng ra tối đa 5V là 500mA.
- Bộ nhớ Flash của vi điều khiển là 32Kb.
1.1.7 Servo S9G
Hình 2-8: Servo [5]
Trang 14Hình 2-9: Bên trong động cơ servo [5]
Servo là một loại động cơ đặc biệt, nó chỉ quay khi được điều khiển bằng PPM vớigóc quay từ 0->1800 Mỗi servo có kích thước và khối lượng khác nhau
Động cơ servo là một hệ thống hồi tiếp, khi servo quay nó sẽ hồi tiếp tín hiệu vềcho vi điều khiển để biết vị trí góc đã đạt được hay chưa, nếu chưa nó sẽ tiếp tụcquay tiếp
1.1.8 NRF24L01
Hình 2-10: Module NRF24L01 [6]
Giới thiệu: Module nRF24l01 hoạt động ở tần số ngắn 2.4GHz nên có tốc độ truyềnnhận dữ liệu cao Module có 126 kênh truyền giúp ta có thể giao tiếp với nhiềumodule nRF khác Có thể điều chỉnh được công suất phát để tiết kiệm năng lượng
Sử dụng giao tiếp SPI
Sơ đồ chân của module nRF24l01:
- VCC: chân cấp nguồn 3.6V.
- GND: chân đất.
- CE: chọn chế độ nhận hoặc truyền của module.
- SCK: chân serial clock.
- MISO: Master Input Slave Output.
Trang 15Xử lý Phát Start
Trang 16Hình 3-1: Lưu đồ thuật toán bên phát
Trang 17lùi Lệnh đi lùi
Trang 18- Mạch gồm có 2 phần chính: Bên phát và bên thu, những thành phần linh kiện
đã được trình bày ở trên
Hình 3-3: tổng quát bên phát và bên thu
Bộ điều khiển (bên phát): gồm có 3 chức năng điều khiển nhện, nhận dạnggiọng nói, cử chỉ và nút nhấn
o Khi ta nói thì module voice recognition sẽ nhận dạng giọng nói, xử lýcoi đúng câu lệnh không, sau đó gửi tín hiệu cho vi điều khiển, sau đó
vi điều khiển sẽ truyền lệnh qua RF để điều khiển nhện
o Module nhận dạng cử chỉ cũng vậy, khi ta đưa tay lên xuống, qua trái,qua phải thì module sẽ nhận dạng và xử lí để đưa tín hiệu cho vi điềukhiển
o Ngoài ra chúng ta còn có thể điều khiển nhện qua nút nhấn
Nhện (bên thu): module RF thu sẽ nhận tín hiệu từ RF phát và đưa tín hiệutới vi điều khiển để điều khiển nhện đi tiến, lùi, qua trái , qua phải…
- Sau đây là bảng tổng hợp các lệnh để điều khiển nhện:
Voice recognition Gesture Nút nhấn Nhện thực hiện
Trang 19Hình 3-4: Sơ đồ nguyên lý bên thu
Hình 3-5: Mạch in bên thu
Hình 3-6: Mạch in bên thu
1.1.12 Bên phát
Trang 20Hình 3-7: Sơ đồ nguyên lý bên phát
Hình 3-8: Mạch in bên phát
Hình 3-9: Mạch in bên phát
1.1.13 Hoàn thành nhện và tay điều khiển
Trang 21Hình 3-10: Hoàn thành nhện
Hình 3-11:Hoàn thành tay điều khiển
1.9 Sơ đồ di chuyển của nhện 4 chân
Trang 24Bảng 3-4: Bảng kết quả thử nghiệm của Button
Dựa vào bảng số liệu trên thì ta có thể rút ra được các ưu điểm và nhược điểm củamạch:
Ưu điểm
- Robot nhện có thể kết hợp với 12 động cơ servo để di chuyển các tác vụ đơn
giản như qua trái, qua phải, tiến lùi, đứng, ngồi
- Robot nhện có thể di chuyển được trên các địa hình phức tạp như sỏi nhỏ, đá
nhỏ, các bậc thang với chiều cao khoảng 1 cm…
Nhược điểm
Trang 25- Giọng nói chỉ hoạt động được trong môi trường yên tĩnh, khó nhận dạng
trong môi trường hơi ồn ào, nói sai giọng đôi lúc nhận sai lệnh vì giọng nóikhông chuẩn
- Cử chỉ cũng đôi lúc nhận nhầm.
- Nút nhấn hoạt động tốt.
1.11 Hướng phát triển
Hướng phát triển thêm sau này:
- Lắp thêm camera quan sát, việc truyền tín hiệu hình ảnh xuống cho người
dùng thì sẽ dễ dàng điều khiển từ xa những nơi con người không nhìn thấy
- Thêm cảm biến tránh vật cản để nhện di chuyển tốt hơn,…
TÀI LIỆU THAM KHẢO
http://arduino.vn/bai-viet/181-gioi-thieu-servo-va-cach-dieu-khien-bang-[6] http://hshop.vn/products/mach-thu-phat-nrf24l01-2-4ghz
Trang 26Tiếng Anh:
[7] Datasheet ATmega328p
[8] with-arduino-uno-bootloader-usa/
Trang 30int nutnhan5 = A0;
int nutnhan6 = A1;
int nutnhan7 = A2;
int nutnhan8 = A3;
Trang 31// Initialize interrupt service routine
attachInterrupt(0, interruptRoutine, FALLING);
// Initialize APDS-9960 (configure I2C and initial values)
Trang 40// create servo object to control a servo
// twelve servo objects can be created on most boards//int pos = 0; // variable to store the servo position
void setup() {