Tải bản đầy đủ - 27 (trang)
11 Mô phỏng trên Unity 3D

11 Mô phỏng trên Unity 3D

Tải bản đầy đủ - 27trang

ĐỒ ÁN 3

Trang 23/17



CHƯƠNG 5.



KẾT LUẬN



1.12 Kết luận

1.1.1 Ưu điểm

Mạch chạy tốt, mô phỏng đúng với chuyển động cơ thể, ít bị trôi.

Mạch đơn giản, dễ thực hiện, ứng dụng được trong nhiều lĩnh vực cuộc sống.

1.1.2 Nhược điểm

Chương trình còn khá đơn giản, thô sơ. Chưa điều khiển được nhiều cảm biến bằng

1 Arduino.

1.13 Hướng phát triển

Đây là đề tài khá hay và mới mẻ, trong tương lai có thể phát triển thêm bằng cách

ứng dụng vào điều khiển robot bằng cảm biến gia tốc.



Mô Phỏng Chuyển Động Cánh Tay



SVTH : Nguyễn Nhật Quang



ĐỒ ÁN 3

Trang 24/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-mpu6050.html



[3]



http://machtudong.vn/sanpham/module-bluetooth-hc05-master-slave.html



[4]



http://machtudong.vn/sanpham/bluetooth-module-3v-55v-ket-noi-serialslave-hc-06.html



[5]



http://machtudong.vn/sanpham/usb-to-ttl-serial-pl2303hx.html



Mô Phỏng Chuyển Động Cánh Tay



SVTH : Nguyễn Nhật Quang



ĐỒ ÁN 3

Trang 25/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



SVTH : Nguyễn Nhật Quang



ĐỒ ÁN 3

Trang 26/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()<<8| Wire.read();

AcY1=Wire.read()<<8| Wire.read();

AcZ1=Wire.read()<<8| Wire.read();

Tmp1=Wire.read()<<8| Wire.read();

GyX1=Wire.read()<<8| Wire.read();

GyY1=Wire.read()<<8| Wire.read();

GyZ1=Wire.read()<<8| Wire.read();

Serial.print(AcX1);



Serial.print(";");



Serial.print(AcY1);



Serial.print(";");



Serial.print(GyY1);



Serial.print(";");



Serial.print(AcZ1); Serial.print(";");

Serial.print(GyX1);



Serial.print(";");



Serial.print(GyZ1); Serial.println("");

Serial.flush();

}



Mô Phỏng Chuyển Động Cánh Tay



SVTH : Nguyễn Nhật Quang



ĐỒ ÁN 3

Trang 27/17



void GetMPUvalue2(const int MPU2)

{

Wire.beginTransmission(MPU2);

Wire.write(0x3B); // starting with register 0x3B

Wire.endTransmission(false);

Wire.requestFrom(MPU2,14,true);

AcX2=Wire.read()<<8| Wire.read();

AcY2=Wire.read()<<8| Wire.read();

AcZ2=Wire.read()<<8| Wire.read();

Tmp2=Wire.read()<<8| Wire.read();

GyX2=Wire.read()<<8| Wire.read();

GyY2=Wire.read()<<8| Wire.read();

GyZ2=Wire.read()<<8| Wire.read();

Serial.print(AcX2);



Serial.print(";");



Serial.print(AcY2);



Serial.print(";");



Serial.print(GyY2);



Serial.print(";");



Serial.print(AcZ2); Serial.print(";");

Serial.print(GyX2);



Serial.print(";");



Serial.print(GyZ2); Serial.println("");

Serial.flush();

}



Mô Phỏng Chuyển Động Cánh Tay



SVTH : Nguyễn Nhật Quang



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

11 Mô phỏng trên Unity 3D

Tải bản đầy đủ ngay(27 tr)

×