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

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

Đ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

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

ROBOT NHỆN 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 TỔNG QUAN VỀ ĐỀ TÀI 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Ả CHƯƠNG MỘT SỐ LINH KIỆN ĐƯỢC DÙNG TRONG ĐỀ TÀI 2.1 MODULE BLUETOOTH HC-06 2.2 IC ATMEGA328 2.3 MODULE PCA9685 CHƯƠNG NỘI DUNG ĐỀ TÀI 3.1 THIẾT KẾ VÀ GIA CÔNG ROBOT NHỆN .5 3.2 ĐIỀU KHIỂN ROBOT 3.2.1 Nguyên lý hoạt động Robot 3.2.2 Sơ đồ giải thuật 3.3 MẠCH ĐIỀU KHIỂN CHƯƠNG KẾT LUẬN 4.1 KẾT LUẬN 4.2 ƯU ĐIỂM 4.3 NHƯỢC ĐIỂM 4.4 HƯỚNG PHÁT TRIỂN .10 TÀI LIỆU THAM KHẢO 11 PHỤ LỤC 12 DANH MỤC CÁC HÌNH VẼ HÌNH 2-1: MODULE BLUETOOTH HC-06 [1] HÌNH 2-2: SƠ ĐỒ CHÂN CỦA IC ATMEGA328 [2] HÌNH 2-3: MODULE PCA9685 [3] HÌNH 3-1: CÁC CHI TIẾT KHUNG ROBOT ĐƯỢC THIẾT KẾ TRÊN AUTOCAD HÌNH 3-2: KHUNG ROBOT SAU KHI ĐƯỢC LẮP RẮP HÌNH 3-3: NGUYÊN LÝ CỦA MẠCH ĐIỀU KHIỂN HÌNH 3-4: MẠCH IN 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 DANH MỤC CÁC TỪ VIẾT TẮT IC Integrated Circuit Trang 1/20 CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài Với phát triển công nghệ nên loại Robot ngày xuất phổ biến trọng sống Robot giúp ích cho nhiều lĩnh vực kể đến Robot vật chuyển hang hóa, vật liệu sân bay, nhà ga, nhà máy; Robot thám; Robot khám phá không gian; Robot xe lăn giúp đỡ người khuyết tật, Robot phụ giúp sinh hoạt gia đình v.v Trong đồ an tìm hiểu, thiết kế lắp rắp, điều khiển Robot chân thông qua Bluetooth dùng Arduino làm mạch điều khiển 1.2 Mục đích đề tài Sau hoàn thành đề tài, ta thiết kế Robot chân điều khiển Robot di chuyển theo hướng tới, lùi, di chuyển qua trái, qua phải số hiệu ứng khác thông qua Bluetooth điện thoại Android 1.3 Kết Đã thiết kế board mạch Arduino, thiết kế chi tiết khung Robot điều khiển Robot thông qua Bluetooth CHƯƠNG 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 chuẩn giao tiếp khơng dây có tốc độ truyền liệu lên đến Mb/s Bluetooth cho phép truyền tải liệu lên đến 720 Kbps phạm vi 10 m 100 m Kết nối Bluetooth vô hướng sử dụng giải tần 2,4 GHz Bảng 2-1: Đặc điểm kĩ thuật 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 V -20 ~ 75 độ C -80 dBm 1.5 IC Atmega328 Atmega328 chip vi điều khiển bit sản xuất bỡi hang Atmel Atmega328 có nhớ chương trình 32KB ISP flash, 1KB EEPROM, 2KB SPAM Atmega có 23 chân I/O, timer/counter lập trình, 32 ghi, có hổ trợ 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 IC Atmega328 [2] Vi điều khiển Atmega328 dùng dự án mã nguồn mở Arduino giúp dể dàng lập trình 1.6 Module PCA9685 Module PCA9685 dùng đề tạo đồng thời 16 chân PWM thơng qua giao tiếp I2C, từ điều khiển đồng thời 16 RC Servo Robot Nhện Trang 4/20 Robot Nhện Trang 6/20 CHƯƠNG NỘI DUNG ĐỀ TÀI 1.7 Thiết kế gia cơng Robot Nhện Để Robot hoạt động trơn tru ta cần phải thiết kế khung Robot cưng cáp Các chi tiết Robot thiết kế AutoCAD cắt CNC để đạt độ xác giúp khung Robot cứng cáp Hình 3-1: Các chi tiết khung Robot thiết kế AutoCAD Robot Nhện Trang 7/20 Hình 3-2: Khung Robot sau lắp rắp 1.8 Điều khiển Robot 1.1.1 Nguyên lý hoạt động Robot Để Robot di chuyển chân phải chuyển động đồng với Để diển ta chuyển động Robot chân Robot đánh số hình 2-2 Để Robot di chuyển phía trước chân 1, 3, nhắc lên, chân 2, 4, đồng thời dịch sau đẩy thân Robot tiến phía trước, sau chân 1, 3, dịch phía trước hạ xuống, kế chân 2, 4, nhắc lên, chân 1, 3, dịch sau đẩy thân Robot tiến phía trước, sau chân 2, 4, dịch trước hạ xuống, trình tiếp tục Robot di chuyển phía trước Và áp dụng tương tự để Robot di chuyển lùi Để Robot di chuyển Robot Nhện Trang 8/20 ngang qua phải chân 1, 3, nhắc lên, chân 2, 4, co phía trái đẩy than Robot phía phải, sau chân 1, 3, dãn phải hạ xuống, kế chân 2, 4, nhắc lên, chân 1, 3, co trái đẩy than Robot phía phải, sau chân 2, 4, dãn phải hạ xuống, trình diễn nhu Robot di chuyển ngang 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 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 lập trình để điều khiển Servo thông qua Module PCA 9685 Robot Nhện Trang 9/20 Hình 3-3: Nguyên lý mạch điều khiển Hình 3-4: Mạch in Robot Nhện Trang 10/20 CHƯƠNG 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ị tốt, mạch điều khiển đơn giản, chi tiết Robot cắt CNC nên nhau, Robot di chuyển đia hình phẳng 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 khối lượng nặng - 1.13 Chỉ di chuyển địa hình phẳng chướng ngại vật Hướng phát triển - Thay động Servo sg90 động Servo khác mạnh để giúp Robot cứng cáp - Điểu khiển qua thu phát RF để điều khiển xa - Kết hợp thêm cảm biển nâng cao phần lập trình để Robot di chuyển địa hình phức tạp hơp Robot Nhện Trang 11/20 TÀI LIỆU THAM KHẢO [1] http://www.hshop.vn [2] http://www.arduino.vn [3] https://www.hshop.vn Robot Nhện Trang 12/20 PHỤ LỤC Code nạp cho Arduino mạch: #include #include #include 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 Trang 20/20 pwm.setPWM(9,0,pulseWidth(x)); pwm.setPWM(10,0,pulseWidth(y)); pwm.setPWM(11,0,pulseWidth(z)); } void chan5(int a, int b, int c){ int x; int y; int z; x=100+(a-90); y=100+(b-90); z=70+(c-90); pwm.setPWM(12,0,pulseWidth(x)); pwm.setPWM(13,0,pulseWidth(y)); pwm.setPWM(14,0,pulseWidth(z)); } void chan6(int a,int b,int c){ int x; int y; int z; x=90-(a-90); y=100-(b-90); z=110-(c-90); pwm.setPWM(15,0,pulseWidth(x)); K2.write(y); K3.write(z); } Robot Nhện ... khung Robot cứng cáp Hình 3-1: Các chi tiết khung Robot thiết kế AutoCAD Robot Nhện Trang 7/20 Hình 3-2: Khung Robot sau lắp rắp 1.8 Điều khiển Robot 1.1.1 Nguyên lý hoạt động Robot Để Robot. .. bit cho ngõ servo Robot Nhện Trang 6/20 CHƯƠNG NỘI DUNG ĐỀ TÀI 1.7 Thiết kế gia công Robot Nhện Để Robot hoạt động trơn tru ta cần phải thiết kế khung Robot cưng cáp Các chi tiết Robot thiết kế... NỘI DUNG ĐỀ TÀI 3.1 THIẾT KẾ VÀ GIA CÔNG ROBOT NHỆN .5 3.2 ĐIỀU KHIỂN ROBOT 3.2.1 Nguyên lý hoạt động Robot 3.2.2 Sơ đồ giải thuật 3.3 MẠCH ĐIỀU

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

Từ khóa liên quan

Mục lục

  • DANH MỤC CÁC HÌNH VẼ

  • DANH MỤC CÁC BẢNG BIỂU

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

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI

    • 1.1 Giới thiệu về đề tài

    • 1.2 Mục đích của đề tài

    • 1.3 Kết quả

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

      • 1.4 Module Bluetooth HC-06

      • 1.5 IC Atmega328

      • 1.6 Module PCA9685

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

        • 1.7 Thiết kế và gia công Robot Nhện

        • 1.8 Điều khiển Robot

          • 1.1.1 Nguyên lý hoạt động của Robot

          • 1.1.2 Sơ đồ giải thuật

          • 1.9 Mạch điều khiển

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

            • 1.10 Kết luận

            • 1.11 Ưu điểm

            • 1.12 Nhược điểm

            • 1.13 Hướng phát triển

            • TÀI LIỆU THAM KHẢO

            • PHỤ LỤC

Tài liệu cùng người dùng

Tài liệu liên quan