Tải bản đầy đủ (.docx) (26 trang)

ROBOT NHỆN (có code và sơ đồ mạch)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.29 MB, 26 trang )

ROBOT NHỆN

1


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ............................................................................................IV
DANH MỤC CÁC BẢNG BIỂU........................................................................................V
DANH MỤC CÁC TỪ VIẾT TẮT...................................................................................VI
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI...........................................................................1
1.1

GIỚI THIỆU VỀ ĐỀ TÀI.................................................................................................1

1.2

MỤC ĐÍCH CỦA ĐỀ TÀI...............................................................................................1

1.3

KẾT QUẢ.....................................................................................................................1

CHƯƠNG 2. MỘT SỐ LINH KIỆN ĐƯỢC DÙNG TRONG ĐỀ TÀI........................2
2.1

MODULE BLUETOOTH HC-06.....................................................................................2

2.2

IC ATMEGA328..........................................................................................................3


2.3

MODULE PCA9685....................................................................................................3

CHƯƠNG 3. NỘI DUNG ĐỀ TÀI......................................................................................5
3.1

THIẾT KẾ VÀ GIA CÔNG ROBOT NHỆN.......................................................................5

3.2

ĐIỀU KHIỂN ROBOT....................................................................................................6

3.2.1

Nguyên lý hoạt động của Robot..........................................................................6

3.2.2

Sơ đồ giải thuật...................................................................................................7

3.3

MẠCH ĐIỀU KHIỂN......................................................................................................8

CHƯƠNG 4. KẾT LUẬN.....................................................................................................9
4.1

KẾT LUẬN...................................................................................................................9


4.2

ƯU ĐIỂM.....................................................................................................................9

4.3

NHƯỢC ĐIỂM..............................................................................................................9

4.4

HƯỚNG PHÁT TRIỂN.................................................................................................10

TÀI LIỆU THAM KHẢO...................................................................................................11
PHỤ LỤC

12

2


3


DANH MỤC CÁC HÌNH VẼ
HÌNH 2-1: MODULE BLUETOOTH HC-06 [1]..............................................................2
HÌNH 2-2: SƠ ĐỒ CHÂN CỦA IC ATMEGA328 [2]......................................................3
HÌNH 2-3: MODULE PCA9685 [3]....................................................................................4
HÌNH 3-1: CÁC CHI TIẾT KHUNG ROBOT ĐƯỢC THIẾT KẾ TRÊN AUTOCAD
..........................................................................................................................5
HÌNH 3-2: KHUNG ROBOT SAU KHI ĐƯỢC LẮP RẮP............................................6

HÌNH 3-3: NGUYÊN LÝ CỦA MẠCH ĐIỀU KHIỂN....................................................8
HÌNH 3-4: MẠCH IN............................................................................................................9

4


DANH MỤC CÁC BẢNG BIỂU
BẢNG 2-1: ĐẶC ĐIỂM KĨ THUẬT CỦA MODULE BLUETOOTH HC-06.............2

5


DANH MỤC CÁC TỪ VIẾT TẮT

IC

Integrated Circuit

6


Trang 1/20

CHƯƠNG 1.

TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu về đề tài
Với sự phát triển của công nghệ nên các loại Robot ngày càng xuất hiện phổ biến
trọng cuộc sống của chúng ta. Robot giúp ích cho chúng ta trong rất nhiều lĩnh vực

có thể kể đến như Robot vật chuyển hang hóa, vật liệu trong các sân bay, nhà ga,
nhà máy; Robot do thám; Robot khám phá không gian; Robot xe lăn giúp đỡ những
người khuyết tật, Robot phụ giúp trong sinh hoạt gia đình v.v . Trong đồ an này sẽ
tìm hiểu, thiết kế lắp rắp, và điều khiển Robot 6 chân thông qua Bluetooth dùng
Arduino làm mạch điều khiển.
1.2 Mục đích của đề tài
Sau khi hoàn thành đề tài, ta có thể thiết kế một Robot 6 chân và điều khiển Robot
di chuyển theo các hướng đi tới, đi lùi, di chuyển qua trái, qua phải và một số hiệu
ứng khác thông qua Bluetooth trên điện thoại Android.
1.3 Kết quả
Đã thiết kế board mạch Arduino, thiết kế các chi tiết khung của Robot và điều khiển
Robot thông qua Bluetooth.

CHƯƠNG 2.

MỘT SỐ LINH KIỆN ĐƯỢC DÙNG TRONG ĐỀ TÀI

1.4 Module Bluetooth HC-06

Robot Nhện


Trang 2/20

Hình 2-1: Module Bluetooth HC-06 [1]

Bluetooth là chuẩn giao tiếp không dây có tốc độ truyền dữ liệu có thể lên đến 1
Mb/s. Bluetooth cho phép truyền tải dữ liệu lên đến 720 Kbps trong phạm vi 10 m 100 m. Kết nối Bluetooth là vô hướng và sử dụng giải tần 2,4 GHz.
Bảng 2-1: Đặc điểm kĩ thuật của module Bluetooth HC-06
Chuẩn

Tốc độ Baudrate mặc định
Tốc độ Baudrate hổ trợ
Tần số
Điện áp hoạt động
Nhiệt độ làm việc
Độ nhạy

V2.0+ EDR
9600
9600, 19200, 38400, 57600, 115200,
230400, 460800
2.4 GHz
từ 3.3 V đến 5 V
-20 ~ 75 độ C
-80 dBm

1.5 IC Atmega328
Atmega328 là chip vi điều khiển 8 bit được sản xuất bỡi hang Atmel. Atmega328 có
bộ nhớ chương trình 32KB ISP flash, 1KB EEPROM, 2KB SPAM. Atmega có 23
chân I/O, 3 bộ timer/counter có thể lập trình, 32 thanh ghi, và có hổ trợ các giao
thức truyền thống nối tiếp USART, SPI, I2C.

Robot Nhện


Trang 3/20

Hình 2-2: Sơ đồ chân của IC Atmega328 [2]
Vi điều khiển Atmega328 được dùng trong dự án mã nguồn mở Arduino giúp chúng
ta có thể dể dàng lập trình hơn.

1.6 Module PCA9685
Module PCA9685 được dùng đề có thể tạo ra đồng thời 16 chân PWM thông qua
giao tiếp I2C, từ đó có thể điều khiển đồng thời 16 RC Servo.

Robot Nhện


Trang 4/20

Robot Nhện


Trang 5/20

Hình 2-3: Module PCA9685 [3]
Module hoạt động tốt với điện áp 5V, tần số PWM có thể điều chỉnh lên khoảng 1.6
KHz. Độ phân giải 12 bit cho mỗi ngõ ra servo.

Robot Nhện


Trang 6/20

CHƯƠNG 3.

NỘI DUNG ĐỀ TÀI

1.7 Thiết kế và gia công Robot Nhện
Để Robot có thể hoạt động trơn tru thì ta cần phải thiết kế một khung Robot cưng
cáp. Các chi tiết của Robot được thiết kế trên AutoCAD và được cắt CNC để đạt độ

chính xác giúp khung Robot cứng cáp hơn.

Hình 3-1: Các chi tiết khung Robot được thiết kế trên AutoCAD

Robot Nhện


Trang 7/20

Hình 3-2: Khung Robot sau khi được lắp rắp
1.8 Điều khiển Robot
1.1.1 Nguyên lý hoạt động của Robot
Để Robot có thể di chuyển thì các chân phải chuyển động đồng bộ với nhau. Để
diển ta chuyển động của Robot các chân của Robot được đánh số như hình 2-2.
Để Robot có thể di chuyển về phía trước thì các chân 1, 3, 5 cùng nhắc lên, các chân
2, 4, 6 đồng thời dịch về sau đẩy thân Robot tiến về phía trước, sau đó các chân 1,
3, 5 dịch về phía trước và hạ xuống, kế đó các chân 2, 4, 6 cùng nhắc lên, các chân
1, 3, 5 dịch về sau đẩy thân Robot tiến về phía trước, sau đó các chân 2, 4, 6 dịch về
trước và hạ xuống, quá trình cứ tiếp tục như thế Robot sẽ di chuyển về phía trước.
Và áp dụng tương tự để Robot có thể di chuyển lùi. Để Robot có thể di chuyển

Robot Nhện


Trang 8/20

ngang qua phải thì các chân 1, 3, 5 cùng nhắc lên, các chân 2, 4, 6 co về phía trái
đẩy than Robot về phía phải, sau đó các chân 1, 3, 5 dãn về phải và hạ xuống, kế đó
các chân 2, 4, 5 cùng nhắc lên, các chân 1, 3, 5 co về trái đẩy than Robot về phía
phải, sau đó các chân 2, 4, 6 dãn về phải và hạ xuống, quá trình cứ diễn ra nhu vậy

Robot sẽ di chuyển ngang về bên phải.
1.1.2 Sơ đồ giải thuật
Khởi động
Trạng thái đứng yên
Nhận tín hiệu điều khiển từ
Bluetooth

Sai

Có tín hiệu điều khiển

Thực hiện lệnh điều khiển

Sai

Có tín hiệu kết thúc

Trạng thái đứng yên

1.9 Mạch điều khiển
Mạch điều khiển dùng IC Atmega 328 làm vi điều khiển cho mạch. IC Atmega 328
được lập trình để có thể điều khiển các Servo thông qua Module PCA 9685.

Robot Nhện


Trang 9/20

Hình 3-3: Nguyên lý của mạch điều khiển


Hình 3-4: Mạch in
Robot Nhện


Trang 10/20

CHƯƠNG 4.

KẾT LUẬN

1.10 Kết luận
Module Bluetooth nhận tín hiệu điều khiển từ thiết bị rất tốt, mạch điều khiển đơn
giản, các chi tiết của Robot được cắt CNC nên rất đều nhau, Robot có thể di chuyển
trên đia hình bằng phẳng ít chướng ngại vật.
1.11

1.12

Ưu điểm
- Điều khiển đơn giản.
-

Nhỏ gọn.

-

Lập trình đơn giản.

Nhược điểm
- Servo sg90 yếu nên không mang được khối lượng nặng.

-

1.13

Chỉ di chuyển được trên địa hình bằng phẳng ít chướng ngại vật.

Hướng phát triển
- Thay động cơ Servo sg90 bằng động cơ Servo khác mạnh hơn để giúp
Robot cứng cáp hơn.
-

Điểu khiển qua bộ thu phát RF để có thể điều khiển xa hơn.

-

Kết hợp thêm cảm biển và nâng cao phần lập trình để Robot có thể di
chuyển trên các địa hình phức tạp hơp.

Robot Nhện


Trang 11/20

TÀI LIỆU THAM KHẢO
[1]
[2]
[3]

Robot Nhện



Trang 12/20

PHỤ LỤC
Code nạp cho Arduino trong mạch:
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#include <Servo.h>
String lenh;
String t;
Servo K2;
Servo K3;
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
#define MIN_PULSE_WIDTH
#define MAX_PULSE_WIDTH

544
2400

#define DEFAULT_PULSE_WIDTH 1500
#define FREQUENCY

50

uint8_t servonum = 0;
void setup()
{
Serial.begin(9600);
Serial.println("16 channel Servo test!");
pwm.begin();

pwm.setPWMFreq(FREQUENCY);
K2.attach(3);
K3.attach(5);
}
int pulseWidth(int angle)

Robot Nhện


Trang 13/20

{
int pulse_wide, analog_value;
pulse_wide

=

map(angle,

0,

180,

MIN_PULSE_WIDTH,

MAX_PULSE_WIDTH);
Serial.println(pulse_wide);
analog_value = int(float(pulse_wide) / 1000000 * FREQUENCY * 4096);
Serial.println(analog_value);
return analog_value;

}
void loop() {
if(Serial.available()>0){
delay(10);
char s=Serial.read();
lenh=s;
Serial.println(lenh);
t=lenh;
}
if(t=="W"){
tien();
}
//t=lenh;
Serial.println(t);
if(t=="X"){
dungyen();
}
if(t=="S"){
lui();
}

Robot Nhện


Trang 14/20

if(t=="A"){
trai();
}
if(t=="D"){

phai();
}
if(t=="1"){
hitdat();
}
}
void dungyen(){
chan1(90,90,90);
chan2(90,90,90);
chan3(90,90,90);
chan4(90,90,90);
chan5(90,90,90);
chan6(90,90,90);
}
void tien(){
chan1(90,105,100);
chan4(90,105,100);
chan5(90,105,100);
chan2(90,85,80);
chan3(90,85,80);
chan6(90,85,80);
delay(300);
chan1(90,90,100);
chan4(90,90,100);

Robot Nhện


Trang 15/20


chan5(90,90,100);
delay(300);
chan2(90,105,100);
chan3(90,105,100);
chan6(90,105,100);
chan1(90,85,80);
chan4(90,85,80);
chan5(90,85,80);
delay(300);
chan2(90,90,100);
chan3(90,90,100);
chan6(90,90,100);
delay(300);
}
/////////////////////////////////DONE/////////////////////////////
void lui(){ // chua test
chan1(90,105,80);
chan4(90,105,80);
chan5(90,105,80);
chan2(90,85,100);
chan3(90,85,100);
chan6(90,85,100);
delay(300);
chan1(90,90,80);
chan4(90,90,80);
chan5(90,90,80);
delay(300);
chan2(90,105,80);
chan3(90,105,80);


Robot Nhện


Trang 16/20

chan6(90,105,80);
chan1(90,85,100);
chan4(90,85,100);
chan5(90,85,100);
delay(300);
chan2(90,90,80);
chan3(90,90,80);
chan6(90,90,80);
delay(300);
}
////////////////////////////////////////////////////////////////////////////
void trai(){ //chua test
chan1(100,105,90);
chan4(100,105,90);
chan5(100,105,90);
chan2(80,85,90);
chan3(80,85,90);
chan6(80,85,90);
delay(300);
chan1(100,90,90);
chan4(100,90,90);
chan5(100,90,90);
delay(300);
chan2(100,105,90);
chan3(100,105,90);

chan6(100,105,90);
chan1(80,85,90);
chan4(80,85,90);
chan5(80,85,90);

Robot Nhện


Trang 17/20

delay(300);
chan2(100,90,90);
chan3(100,90,90);
chan6(100,90,90);
delay(300);
}
/////////////////////////////////////////////////
void phai(){ // phai
chan1(80,105,90);
chan4(80,105,90);
chan5(80,105,90);
chan2(100,85,90);
chan3(100,85,90);
chan6(100,85,90);
delay(300);
chan1(80,90,90);
chan4(80,90,90);
chan5(80,90,90);
delay(300);
chan2(80,105,90);

chan3(80,105,90);
chan6(80,105,90);
chan1(100,85,90);
chan4(100,85,90);
chan5(100,85,90);
delay(300);
chan2(80,90,90);
chan3(80,90,90);
chan6(80,90,90);

Robot Nhện


Trang 18/20

delay(300);
}
void hitdat(){
chan1(70,110,90);
chan2(70,110,90);
chan3(70,110,90);
chan4(70,110,90);
chan5(70,110,90);
chan6(70,110,90);
delay(1000);
chan1(110,70,90);
chan2(110,70,90);
chan3(110,70,90);
chan4(110,70,90);
chan5(110,70,90);

chan6(110,70,90);
delay(1000);
}
void chan1(int a, int b, int c){
int x;
int y;
int z;
x=85+(a-90);//80
y=110+(b-90);//75
z=110+(c-90);//90
pwm.setPWM(0,0,pulseWidth(x));
pwm.setPWM(1,0,pulseWidth(y));
pwm.setPWM(2,0,pulseWidth(z));
}

Robot Nhện


Trang 19/20

void chan2(int a, int b, int c){
int x;
int y;
int z;
x=93-(a-90);
y=95-(b-90);
z=70-(c-90);
pwm.setPWM(3,0,pulseWidth(x));
pwm.setPWM(4,0,pulseWidth(y));
pwm.setPWM(5,0,pulseWidth(z));

}
void chan3(int a, int b, int c){
int x;
int y;
int z;
x=95+(a-90);
y=92+(b-90);
z=85+(c-90);
pwm.setPWM(6,0,pulseWidth(x));
pwm.setPWM(7,0,pulseWidth(y));
pwm.setPWM(8,0,pulseWidth(z));
}
void chan4(int a, int b, int c){
int x;
int y;
int z;
x=80-(a-90);
y=100-(b-90);
z=95-(c-90);

Robot Nhện


×