1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

MÔ PHỎNG CHUYỂN ĐỘNG CÁNH TAY DÙNG cảm BIẾN GIA tốc (có code và sơ đồ mạch)

22 898 5

Đ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 22
Dung lượng 292,22 KB

Nội dung

MÔ PHỎNG CHUYỂN ĐỘNG CÁNH TAY DÙNG cảm BIẾN GIA tốc (có code và sơ đồ mạch) MÔ PHỎNG CHUYỂN ĐỘNG CÁNH TAY DÙNG cảm BIẾN GIA tốc (có code và sơ đồ mạch) MÔ PHỎNG CHUYỂN ĐỘNG CÁNH TAY DÙNG cảm BIẾN GIA tốc (có code và sơ đồ mạch)

MÔ PHỎNG CHUYỂN ĐỘNG CÁNH TAY DÙNG CẢM BIẾN GIA TỐC MỤC LỤC DANH MỤC CÁC HÌNH VẼ VII DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX CHƯƠNG GIỚI THIỆU CHUNG 1.1 GIỚI THIỆU 1.2 GIỚI THIỆU ĐỀ TÀI CHƯƠNG LINH KIỆN SỬ DỤNG VÀ PHẦN MỀM .2 2.1 ARDUINO UNO R3 2.2 CẢM BIẾN GIA TỐC MPU-6050 2.3 MODULE BLUETOOTH CH-05 2.4 MODULE BLUETOOTH CH-05 2.5 USB TO TTL PL2303 CHƯƠNG THIẾT KẾ MẠCH 10 3.1 SƠ ĐỒ KHỐI .10 3.2 NGUYÊN LÝ HOẠT ĐỘNG 11 CHƯƠNG KẾT QUẢ MÔ PHỎNG 12 4.1 MÔ PHỎNG TRÊN IDE: 12 4.2 MÔ PHỎNG TRÊN UNITY 3D: .22 CHƯƠNG KẾT LUẬN 22 4.1 KẾT LUẬN: 22 4.1.1 Ưu điểm: 22 4.1.2 Nhược điểm: 22 4.2 HƯỚNG PHÁT TRIỂN: 22 TÀI LIỆU THAM KHẢO PHỤ LỤC A DANH MỤC CÁC HÌNH VẼ HÌNH 2-1: ARDUINO UNO R3 HÌNH 2-2: MPU-6050 HÌNH 2-3: MODULE BLUETOOTH HC-05 HÌNH 2-4: MODULE BLUETOOTH HC-06 HÌNH 2-5: USBE TO TLL PL2303 DANH MỤC CÁC B BẢNG 2-1: THÔNG SỐ KĨ THUẬT CỦA ARDUINO UNO YBẢNG 2-2: THÔNG SỐ KĨ THUẬT CỦA MPU-6050 .5 YBẢNG 2-3: HƯỚNG DẪN NỐI DÂY HC-05 .2 YBẢNG 2-4: HƯỚNG DẪN NỐI DÂY HC-06 .8 YBẢNG 2-5: HƯỚNG DẪN NỐI DÂY PL2303 .9 DANH MỤC CÁC TỪ VIẾT TẮT BDT Broadband Digital Terminal FFT Fast Fourier Transform MIMO Multi-Input Multi-Output Trang 1/17 CHƯƠNG GIỚI THIỆU CHUNG 1.1 Giới thiệu Ngày nay, việc mô lại chuyển động thể người ngày phổ biến ứng dụng vào nhiều lĩnh vực khác : phim ảnh 3D, trò chơi tương tác thực tế ảo, ý tế…từ đưa phương án tác chiến, phương pháp chữa trị phù hợp 1.2 Giới thiệu đề tài Đề tài ‘’MÔ PHỎNG CHUYỂN ĐỘNG CÁNH TAY BẰNG CẢM BIẾN GIA TỐC’’ thực cách lắp cảm biến lên nhiều vị trí khác cánh tay để mô hoạt động cánh tay mơ hình 3D Kết đề tài áp dụng vào y tế để điều trị chấn thương cánh tay sai tư q trình tập thể thao Mơ Phỏng Chuyển Động Cánh Tay Trang 2/17 CHƯƠNG LINH KIỆN SỬ DỤNG VÀ PHẦN MỀM 1.3 Arduino UNO R3 Arduino Uno xây dựng với nhân vi điều khiển ATmega328P sử dụng thạch anh có chu kì dao động 16 MHz Với vi điều khiển này, ta có tổng cộng 14 pin (ngõ) / vào đánh số từ tới 13 (trong có pin PWM, đánh dấu ~ trước mã số pin) Song song đó, ta có thêm pin nhận tín hiệu analog đánh kí hiệu từ A0 - A5, pin sử dụng pin / vào bình thường (như pin - 13) Ở pin đề cập, pin 13 pin đặc biệt nối trực tiếp với LED trạng thái board Trên board có nút reset, ngõ kết nối với máy tính qua cổng USB ngõ cấp nguồn sử dụng jack 2.1mm lấy lượng trực tiếp từ AC-DC adapter hay thông qua ắc-quy nguồn Khi làm việc với Arduino board, số thuật ngữ sau cần lưu ý:  Flash Memory: nhớ ghi được, liệu khơng bị tắt điện Về vai trò, ta hình dung nhớ ổ cứng để chứa liệu board Chương trình viết cho Arduino lưu Kích thước vùng nhớ thông thường dựa vào vi điều khiển sử dụng, ví dụ ATmega8 có 8KB flash memory Loại nhớ chịu khoảng 10,000 lần ghi / xoá  RAM: tương tự RAM máy tính, bị liệu ngắt điện bù lại tốc độ đọc ghi xoá nhanh Kích thước nhỏ Flash Memory nhiều lần  EEPROM: dạng nhớ tương tự Flash Memory có chu kì ghi / xố cao - khoảng 100,000 lần có kích thước nhỏ Để đọc / ghi liệu ta dùng thư viện EEPROM Arduino Ngồi ra, board Arduino cung cấp cho ta pin khác pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND Dòng tối đa chân I/0 30mA, dòng tối đa ( 5V ) 500mA dòng tối đa ( 3V ) 50mA Vi điều khiển ATmega328 có nhớ sau: -32KB cho flash memory: để lưu đoạn lệnh lập trình Mơ Phỏng Chuyển Động Cánh Tay Trang 3/17 -2KB cho SRAM: để lưu giá trị biến lập trình Khi điện, liệu SRAM bị -1KB cho EEPROM: đọc ghi liệu mà không lo bị xảy điện Hình 2-1 : Arduino UNO [1] Mô Phỏng Chuyển Động Cánh Tay Trang 4/17 Bảng 2-1 : Thông số kĩ thuật Arduino UNO Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog (độ phân giải 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500 mA Dòng tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) SRAM KB (ATmega328) EEPROM KB (ATmega328) 1.4 Cảm biến gia tốc góc MPU-6050 - MPU6050 cảm biến trục, có chứa gia tốc trục quay hồi chuyển trục Cảm biến hoạt động điện áp 3.3V sử dụng giao tiếp I2C với tốc độ tối đa 400kHz Các cảm biến bên MPU-6050 sử dụng chuyển đổi tương tự - số ( Analog to Digital Converter – ADC ) 16-bit cho kết chi tiết góc quay, toạ độ… Với 16-bit có giá trị cho cảm biến Mô Phỏng Chuyển Động Cánh Tay Trang 5/17 - Tuỳ thuộc vào yêu cầu sử dụng mà cảm biến MPU-6050 hoạt động chế độ xử lý cao chế độ đo góc quay xác MPU-6050 có khả - đo phạm vị :  Con quay hồi chuyển :  Gia tốc : Hơn nữa, MPU-6050 có sẵn đệm liệu 1024 byte cho phép vi điều khiển phát lệnh cho cảm biến, nhận liệu sau mpu-6050 tính tốn xong Hình 2-2 : MPU-6050 [2] Bảng 2-2 : Thông số kỹ thuật MPU6050 VCC 5V/3V3 GN D 0V SCL Chân SCL giao tiếp I2C SDA Chân SDA giao tiếp I2C XDA Chân liệu (kết nối với cảm biến khác) XCL Chân xung (kết nối với cảm biến khác) AD0 Bit0 địa I2C2 INT Chân ngắt 1.5 Module Bluetooth HC05 Module Bluetooth HC-5 master/slave dùng để thiết lập kết nối thiết bị sóng bluetooth Đặc biệt module HC-05 có thẻ hoạt động chế độ master slave Module bluetooth HC-05 điều khiển tập lệnh AT để thực tác vụ mong muốn Để module bluetooth chuyển từ chế độ thông thường sang điều khiển AT, ta có cách sau : Mô Phỏng Chuyển Động Cánh Tay Trang 6/17 - Cấp nguồn cho HC-05 ( Vcc Gnd ) đồng thời cấp mức điện áp cao ( Vcc ) cho chân Key module bluetooth Khi giao tiếp tập lệnh AT với - modulebangwf² oongcr Serial ( Tx Rx ) với baud rate 38400 Cấp nguồn cho HC-05 trước sau cấp mức điện áp cao cho chân Key module Bây giờ, giao tiếp với module tập lệnh AT với baud rate 9600 Sau pari thành công với thiết bị khác, đèn module nhấp nháy chậm, cho thấy kết nối Serial thiết lập Module HC-05 dùng nguồn cấp từ 3.6 V đến V Ngoài ra, module tương thích với vi điều khiển V mà không cần chuyển đổi mức điện áp giao tiếp V 3.3 V nhiều loại module Hình 2-3 : Module Bluetooth HC-05 [3] 1.6 Module Bluetootth HC-06 Bluetooth module SLAVE HC-06 cho phép vi điều khiển kết nối với thiết bị ngoại vi : smartphone, laptop, usb bluetooth thông qua giao tiếp Serial gửi nhận tín hiệu chiều Mơ Phỏng Chuyển Động Cánh Tay Trang 7/17 Module bluetooth HC-06 sử dụng nguồn từ 3.5V đến 6V cung cấp cho board mà không cần lo lắng chênh lệch điện áp 3V - 5V gây hỏng board Bluetooth module gồm chân theo thứ tự: KEY, VCC, GND, TX, RX, STATE Đây module bluetooth SLAVE nghĩa bạn chủ động kết nối vi điều khiển, mà cần sử dụng smartphone, laptop, bluetooth usb để dò tín hiệu kết nối (pair) từ smartphone, laptop, bluetooth usb Sau pair thành cơng, bạn gửi nhận tín hiệu từ vi điều khiển đến thiết bị Hình 2-4 : Module Bluetooth HC-06 [4] Bảng 2-3 : Hướng dẫn nối dây HC-06 Mô Phỏng Chuyển Động Cánh Tay ARDUINO UNO Trang 8/17 Vcc 5V Gnd Gnd Tx A4 Rx A5 1.7 USB To TTL PL2303 USB to TTL Serial PL2303HX sử dụng IC chuyển đổi USB to COM PL2303HX với nhiều cải tiến hiệu hãng Prolific Module USB to TTL Serial PL2303HX có sẵn thành phần cần thiết, bạn cần cắm vào cổng USB máy tính có cổng COM mức 5V giao tiếp với vi điều khiển Module USB to TTL Serial có LED gồm LED nguồn, LED báo tín hiệu Tx LED báo tín hiệu Rx Hình 2-5 : USB To TTL PL2303 [5] Bảng 2-4 : Hướng dẫn nối dây PL2303 Gnd Tx Mô Phỏng Chuyển Động Cánh Tay Chân vi điều khiển Gnd Rx Trang 9/17 Rx 5V 3.3 V Tx Vcc CHƯƠNG THIẾT KẾ MẠCH 1.8 Sơ đồ khối Khối mô 3D Arduino Uno MPU-6050 PL2303 HC-05 1.9 Nguyên lý làm việc Mô Phỏng Chuyển Động Cánh Tay HC-06 Trang 10/17 Khi xoay cảm biến gia tốc MPU-6050 thơng số giá trị cảm biến gia tốc quay hồi chuyển thay đổi, sau thơng số gởi Arduino truyền đến Module Bluetooth HC-06 Module HC-06 đóng vai trò Slave gửi data thu từ cảm biến gia tốc MPU6050 đến module HC-05 Module Bluetooth HC-05 hoạt động chế độ Master, giao tiếp tập lệnh AT kết nối với máy tính thơng qua USB Serial PL2303 Phần mềm mô Unity 3D đọc data thu từ Module Bluetooth HC-05 tiến hành mô chuyển động mơ hình 3D Mơ Phỏng Chuyển Động Cánh Tay Trang 11/17 CHƯƠNG 1.10 Mô IDE 1.11 Mô Unity 3D Mô Phỏng Chuyển Động Cánh Tay KẾT QUẢ MÔ PHỎNG Trang 12/17 CHƯƠNG 1.12 KẾT LUẬN Kết luận 1.1.1 Ưu điểm Mạch chạy tốt, mơ với chuyển động thể, bị trôi Mạch đơn giản, dễ thực hiện, ứng dụng nhiều lĩnh vực sống 1.1.2 Nhược điểm Chương trình đơn giản, thơ sơ Chưa điều khiển nhiều cảm biến Arduino 1.13 Hướng phát triển Đây đề tài hay mẻ, tương lai phát triển thêm cách ứng dụng vào điều khiển robot cảm biến gia tốc Mô Phỏng Chuyển Động Cánh Tay Trang 13/17 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] http://dientuquangtruong.com/arduino-uno-r3-atmega328.html [2] http://blog.bitify.co.uk/2013/11/interfacing-raspberry-pi-and-mpu-6050.html [3] http://machtudong.vn/sanpham/module-bluetooth-hc05-master-slave.html [4] http://machtudong.vn/sanpham/bluetooth-module-3v-55v-ket-noi-serial-slave- hc-06.html [5] http://machtudong.vn/sanpham/usb-to-ttl-serial-pl2303hx.html Mô Phỏng Chuyển Động Cánh Tay Trang 14/17 PHỤ LỤC A Code chương trình : #include #include #include const int MPU2=0x69, MPU1=0x68; int16_t AcX1,AcY1,AcZ1,Tmp1,GyX1,GyY1,GyZ1; int16_t AcX2,AcY2,AcZ2,Tmp2,GyX2,GyY2,GyZ2; int data; void setup() { // put your setup code here, to run once: Wire.begin(); Serial.begin(9600); Wire.beginTransmission(MPU1); Wire.write(0x6B); //PWR_MDMT_1 register Wire.write(0); // set to zero (wake up MPU6050) Wire.endTransmission(true); Wire.begin(); Wire.beginTransmission(MPU2); Wire.write(0x6B); //PWR_MGMT_1 register Wire.write(0); // set to zero (wake up MPU6050) Wire.endTransmission(true); } void loop() { Mô Phỏng Chuyển Động Cánh Tay Trang 15/17 // put your main code here, to run repeatedly: // get value for first MPU having address of 0x68 GetMPUvalue1(MPU1); //get value for second MPU having address of 0x69 GetMPUvalue2(MPU2); //print data to unity } void GetMPUvalue1(const int MPU1) { Wire.beginTransmission(MPU1); Wire.write(0x3B); // starting with register 0x3B Wire.endTransmission(false); Wire.requestFrom(MPU1,14,true); AcX1=Wire.read()

Ngày đăng: 21/01/2018, 16:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w