1.2 Nhiệm vụ đề tài Nhiệm vụ chính của đồ án là thiết kế một mô hình robot nhện bốn chân hoànchỉnh có thể hoạt động được, đồng thời lập trình để điều khiển mô hình... Bộ vi xử lý ARM Co
Trang 1ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC ỨNG DỤNG
-o0o -BÁO CÁO BÀI TẬP LỚN
XÁC ĐỊNH QUỸ ĐẠO CHUYỂN ĐỘNG NÉM XIÊN TRONG TRỌNG TRƯỜNG CÓ LỰC CẢN MÔI TRƯỜNG
LỚP: L38
GVHD: Cô Nguyễn Thị Minh Hương GVHD: Thầy Nguyễn Hoàng Giang
SINH VIÊN THỰC HIỆN
Trang 2ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC ỨNG DỤNG
-o0o -BÁO CÁO BÀI TẬP LỚN
XÁC ĐỊNH QUỸ ĐẠO CHUYỂN ĐỘNG NÉM XIÊN TRONG TRỌNG TRƯỜNG CÓ LỰC CẢN MÔI TRƯỜNG
LỚP: L38
GVHD: Cô Nguyễn Thị Minh Hương GVHD: Thầy Nguyễn Hoàng Giang
SINH VIÊN THỰC HIỆN
Thành phố Hồ Chí Minh, ngày 31 tháng 10 năm 2024
Trang 3LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép nhóm được bày tỏlòng biết ơn đến thầy đã giúp đỡ đỡ nhóm trong suốt quá trình học tập và nghiên cứu đềtài này Với lòng biết ơn sâu sắc nhất, em xin gửi đến Thầy Nguyễn Phan Hải Phú đãtruyền đạt vốn kiến thức quý báu nhóm trong suốt thời gian học tập nhờ có những lờihướng dẫn, dạy bảo của thầy nên đề tài nghiên cứu của em mới có thể hoàn thiện tốt đẹp
Một lần nữa, em xin chân thành cảm ơn thầy – Người đã trực tiếp giúp đỡ, quantâm, hướng dẫn nhóm em hoàn thành tốt bài báo cáo này trong thời gian qua
Bài báo cáo thực tập thực hiện trong khoảng thời gian gần 4 tuần Bước đầu đi vàothực tế của nhóm còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những thiếu sót,nhóm rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy để kiến thứccủa nhóm trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện bổ sung, nângcao ý thức của mình
Nhóm 9 xin chân thành cảm ơn!
Trang 4MỤC LỤC
I GIỚI THIỆU 6
1.1 Tổng quan 6
1.2 Nhiệm vụ đề tài 6
II LÝ THUYẾT 7
III THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 18
3.1 Mô hình robot 18
3.1.1 Thiết kế mô hình 3D SolidWorks 18
3.1.2 Hoàn thiện mô hình robot thực tế 19
3.2 Các thiết kế phần cứng 19
3.2.1 Sơ đồ nguồn đi 19
3.2.2 Sơ đồ hệ thống 20
3.2.3 Thiết kế schematic 20
3.2.4 Thiết kế PCB 21
3.2.5 Hoàn thiện sản phẩm 22
3.3 Lựa chọn linh kiện 23
3.3.1 Board điều khiển (STM32F407 Discovery) 23
3.3.2 Động cơ (MG996R) 24
3.3.3 Nguồn điện (Pin 7.4V 2800mAh) 25
3.3.4 Module chuyển đổi điện áp (Buck DC-DC LM2596) 25
3.3.5 Mạch điều khiển PWM (PCA9685) 26
3.3.6 Cảm biến 9DOF IMU MPU9250 27
3.3.7 Module giao tiếp không dây (NRF24L01) 27
IV THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 29
V KẾT QUẢ THỰC HIỆN 29
VI KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 30
6.1 Kết luận 30
6.2 Định hướng phát triển 30
TÀI LIỆU THAM KHẢO 31
Trang 5DANH SÁCH HÌNH MINH HỌA
Hình 1 : Cấu trúc vi xử lí ARM Cortex-M4 7
Hình 2 : Sơ đồ chân kit STM32F407VGT6 9
Hình 3 : Cấu hình trên STMCubeMX 10
Hình 4 : Lập trình cho STM32 trên STM32 IDE 11
Hình 5 : Module LM2596 11
Hình 6 : Cảm biến MPU9250 12
Hình 7 : Module PWM PCA9685 13
Hình 8 : Module giao tiếp không dây nRF24L01 14
Hình 9 : Giao tiếp UART giữa hai thiết bị 15
Hình 10 : UART packet 15
Hình 11 : Giao tiếp I2C giữa các thiết bị 16
Hình 12 : Giao tiếp SPI giữa các thiết bị 17
Hình 13 : Servo mgr996 18
Hình 14 : Thân Robot 18
Hình 15 : Một mặt của thân Robot 19
Hình 16 : Chân trái của Robot 19
Hình 17 : Chân phải của Robot 20
Hình 18 : Toàn bộ mô hình Robot 20
Hình 19 : Sơ đồ mô tả nguồn điện qua các thiết bị 21
Hình 20 : Sơ đồ kết nối hệ thống 22
Hình 21 : Khối Vi xử lí STM32F407 Hình 22: Các khối chức năng 23
Hình 23 : 2D hình vẽ PCB mạch điện 23
Hình 24 : 3D hình vẽ PCB mạch điện 24
Hình 25 : Mạch thực tế mạch điện Robot 24
Hình 26 : Kit STM32F407 Discovery 25
Hình 27 : Động cơ MG996R 26
Hình 28 : Chu kì xung PWM của MG996R 26
Hình 29 : Pin 7.4V 2800mAh 27
Hình 30 : Mạch giảm áp DC-DC Buck LM2596 3A 27
Hình 31 : Mạch điều khiển PWM (PCA9685) 28
Trang 6Hình 34 : Lưu đồ phần mềm tổng quát hoạt động của robot 32
Hình 35 : Lưu đồ Control Thread 33
Hình 36 : Lưu đồ giải thuật cho bộ phát tín hiệu 34
Hình 37 : Lưu đồ giải thuật củ giao diện điều khiển (GUI) 35
Hình 38 : Một vài hình ảnh thực tế mô hình Robot hoạt động 36
Trang 7DANH SÁCH BẢNG
Table 1 : Thông số kỹ thuật cơ bản STM32F4 đáp ứng yêu cầu robot 23
Table 2 : Thông số kỹ thuật MG996R 24
Table 3 : Thông số kỹ thuật Mạch giảm áp DC-DC Buck 26
Table 4 : Thông số kỹ thuật PCA9685 26
Table 5 : Thông số kỹ thuật IMU MPU9250 27
Table 6 : Thông số kỹ thuật NRF24L01 28
Table 7 : Thông số kỹ thuật ESP32-S 29
Table 8 : Thông số kỹ thuật Camera OV2640 29
Trang 8I GIỚI THIỆU
1.1 Tổng quan
Bài tập lớn trình bày quá trình thiết kế và điều khiển một mô hình robot nhện bốnchân đa năng, có khả năng thực hiện các động tác cơ bản như tiến, lùi, xoay trái, xoayphải và cân bằng Mô hình robot nhện này được phát triển với mục tiêu tối ưu hóa tínhlinh hoạt và ổn định trong việc di chuyển trên các bề mặt địa hình phức tạp
Ứng dụng của đề tài trong các lĩnh vực khác nhau do khả năng thích ứng và tính diđộng độc đáo của chúng Có khả năng bắt chước chuyển động và chức năng của động vậtbốn chân, những robot này có thể điều hướng các địa hình đa dạng và thực hiện một loạtcác nhiệm vụ Trong lĩnh vực quân sự và quốc phòng, robot bốn chân có thể thực hiệnmột số hoạt động Các hệ thống vũ khí tự động và điều khiển từ xa một phần là công cụquân sự phổ biến và một số lực lượng vũ trang đang thử nghiệm robot bốn chân để mangthiết bị
Robot bốn chân, nổi bật bởi tính ổn định và tính cơ động đáng chú ý của chúng,thể hiện một sự thay thế vượt trội cho các phương tiện có bánh xe hoặc bánh xích truyềnthống khi phải đối mặt với địa hình đầy thách thức Không giống như các đối tác củachúng, robot bốn chân vượt trội trong việc điều hướng hiệu quả, khiến chúng đặc biệtphù hợp cho các nhiệm vụ trinh sát Khả năng đặc biệt của họ để vượt qua các môi trường
đa dạng lặng lẽ tăng cường khả năng thu thập thông tin tình báo một cách liền mạch
Tổng kết, đồ án này đề xuất và thực hiện một mô hình robot nhện bốn chân có khảnăng điều khiển linh hoạt và đáng tin cậy Nghiên cứu này góp phần nâng cao hiểu biết
về robot học và điều khiển tự động, đồng thời cung cấp tiềm năng ứng dụng trong cáclĩnh vực như nghiên cứu cứu hộ, khám phá môi trường nguy hiểm và các ứng dụng côngnghiệp có tính phức tạp
1.2 Nhiệm vụ đề tài
Nhiệm vụ chính của đồ án là thiết kế một mô hình robot nhện bốn chân hoànchỉnh có thể hoạt động được, đồng thời lập trình để điều khiển mô hình
Trang 9Tìm hiểu sâu hơn về robot, đặc biệt là những loại robot có chân Những yếu tốgiúp một mô hình robot có chân có thể hoạt động được: kết cấu cơ khí, cách điều khiển,thuật toán điều khiển,…
Thiết kế cơ khí một mô hình robot hoàn chỉnh có thể hoạt động được Học thêmnhững kiến thức về cơ khí
Thiết kế giải thuật điều khiển nhằm điều khiển robot hạot động một cách hiệu quả
II LÝ THUYẾT
2.1 Tổng quan về vi xử lí lõi ARM và ARM Cortex-M3
Kiến trúc ARM là một kiến trúc dạng RISC cho các vi xử lý, được cấu hình chocác môi trường khác nhau Arm Holdings phát triển kiến trúc và cấp phép cho các công
ty khác Các công ty này sẽ thiết kế các sản phẩm của riêng họ bao gồm các SoC (System
on Chip) và các module hệ thống SoM (System on Module) kết hợp với các ngoại vi và
bộ nhớ
Vi xử lý lõi ARM Cortex dựa trên 3 cấu hình của kiến trúc ARMv7:
•Cấu hình A: cho các ứng dụng Application, yêu cầu cao chạy trên các hệđiều hành mở và phức tạp như Linux, Android…
•Cấu hình R: cho các ứng dụng thời gian thực Real Time
•Cấu hình M: cho các ứng dụng vi điều khiển Microcontroller
Bộ vi xử lý ARM Cortex-M4 là bộ vi xử lý ARM dựa trên kiến trúc ARMv7-M
và được thiết kế đặc biệt để đạt được hiệu suất cao trong các ứng dụng nhúng cần tiếtkiệm năng lượng và chi phí, chẳng hạn như các vi điều khiển, hệ thống cơ ô tô, hệ thốngkiểm soát công nghiệp và hệ thống mạng không dây Thêm vào đó là việc lập trình đượcđơn giản hóa đáng kể giúp kiến trúc ARM trở thành một lựa chọn tốt cho ngay cả nhữngứng dụng đơn giản nhất
Trang 10Hình 1: Cấu trúc vi xử lí ARM Cortex-M4
Lõi ARM Cortex có cấu trúc đường ống gồm 3 tầng: Instruction Fetch,Instruction Decode và Instruction Execute Khi gặp một lệnh nhánh, tầng decode chứamột chỉ thị nạp lệnh suy đoán có thể dẫn đến việc thực thi nhanh hơn Bộ xử lý nạp lệnh
dự định rẽ nhánh trong giai đoạn giải mã Sau đó, trong giai đoạn thực thi, việc rẽ nhánhđược giải quyết và bộ vi xử lý sẽ phân tích xem đâu là lệnh thực thi kế tiếp Nếu việc rẽnhánh không được chọn thì lệnh tiếp theo đã sẵn sàng Còn nếu việc rẽ nhánh được chọnthì lệnh rẽ nhánh đó cũng đã sẵn sàng ngay lập tức, hạn chế thời gian rỗi chỉ còn một chukỳ
Bộ xử lý ARM Cortex-M4 32-bit có tính năng hiệu quả đặc biệt, mang lại hiệusuất cao được mong đợi từ lõi ARM trong kích thước bộ nhớ thường được kết hợp vớicác thiết bị 8 bit và 16 bit
2.2 Tổng quan về vi điều khiển STM32 và STM32F407VGT6
STM32 là một trong những dòng chip phổ biến của ST với nhiều họ thông dụngnhư F0, F1, F2, F3, F4… STM32F103 thuộc họ F1 với lõi là ARM Cotex M3
STM32F103 là vi điều khiển 32 bit, tốc độ tối đa là 72MHz Giá thành cũng khá rẻ sovới các loại vi điều khiển có chức năng tương tự Mạch nạp cũng như công cụ lập trìnhkhá đa dạng và dễ sử dụng
Một số ứng dụng chính: dùng cho driver để điều khiển ứng dụng, điều khiển ứng
Trang 11dụng thông thường, thiết bị cầm tay và thuốc, máy tính và thiết bị ngoại vi chơi game,GPS cơ bản, các ứng dụng trong công nghiệp, thiết bị lập trình PLC, biến tần, máy in,máy quét, hệ thống cảnh báo, thiết bị liên lạc nội bộ…
Cấu hình chi tiết của vi điều khiển STM32F407VGT6:
- Lõi: ARM ® 32-bit Cortex ® -M4, xung clock tối đa lên đến 168 MHz
- Điện áp hoạt động: 1.8v ~ 3.6v
- Bộ nhớ Flash lên tới 512kB Flash, 192+4kB SRAM
- Giao diện truyền thông MCU:
+ 3xSPI, 3xUSART,2 x UART, 2xI2S, 3xI2C, 1 x FSMC, 1 x SDIO,2 x CAN
+ 1 x thiết bị FS, HS / máy chủ / bộ điều khiển OTG / USB 2.0 với DMA chuyên dụng, PHY tốc độ tối đa trên chip
+ 1 x giao diện camera song song 8-12bit
- Bộ chuyển đổi AD/DA: 3 x AD (12 bit, 1μs, cho 24 kênh), 2 x DA (12 bit)
- Gỡ lỗi / Lập trình: hỗ trợ giao diện JTAG / SWD (gỡ lỗi dây nối tiếp), hỗ trợ IAP
- Bộ điều khiển bộ nhớ tĩnh linh hoạt hỗ trợ các ký ức Compact Flash, SRAM, PSRAM,NOR và NAND
- 17 timers
- Nhiệt độ hoạt động: -40°C ~ 85°C
Trang 12Hình 2: Sơ đồ chân kit STM32F407VGT6
2.3 Tổng quan về vi điều khiển STM32 và STM32F407VGT6
STMicroelectronics đã giới thiệu một công cụ có tên STM32CubeMX, tạo code
cơ bản theo các thiết bị ngoại vi và board STM32 được chọn Vì vậy, chúng ta không cầnphải lo lắng về việc code hóa cho các trình điều khiển và thiết bị ngoại vi cơ bản Hơnnữa code được tạo này có thể được sử dụng trong Keil uVision để chỉnh sửa theo yêu cầu
Và cuối cùng, code được ghi vào STM32 bằng lập trình ST-Link từ STMicroelectronics.Công cụ STM32CubeMX là một phần của STMicroelectronics STMCube Công cụphần mềm này giúp cho việc phát triển dễ dàng bằng cách giảm giai đoạn phát triển, thờigian và chi phí STM32Cube bao gồm STM32CubeMX là một công cụ cấu hình phầnmềm đồ họa cho phép tạo code C bằng cách sử dụng trình hướng dẫn đồ họa Code đó cóthể được sử dụng trong các môi trường phát triển khác nhau như keil uVision, GCC,IAR, v.v
STM32CubeMX có các tính năng sau:
Trang 13− Chân gỡ lỗi
− Trợ giúp thiết lập xung
− Một nguồn
− Một tiện ích thực hiện cấu hình ngoại vi MCU như chân GPIO, USART, v.v
− Một tiện ích thực hiện cấu hình ngoại vi MCU cho các ngăn xếp phần mềmtrung gian như USB, TCP / IP, v.v.Keil C, STM32 IDE là phần mềm hỗ trợ người dungtrong việc lập trình các dòng vi điều khiển khác nhau Keil C giúp người dung soạn thảo
và biên dịch chương trình C hay Assembly thành ngôn ngữ máy để nạp vào vi điều khiểngiúp tương tác giữa vi điều khiển và người lập trình
Quy trình sẽ là cấu hình cơ bản trên CubeMX:
Hình 3: Cấu hình trên STMCubeMX
Sau đó sẽ lập trình trên:
Trang 14Hình 4: Lập trình cho STM32 trên STM32 IDE
2.4 Module chuyển đổi điện áp (Buck DC-DC LM2596)
Hình 5: Module LM2596
Mạch hạ áp DC LM2596S 3A nhỏ gọn có khả năng giảm áp từ 30V xuống
1.5V mà vẫn đạt hiệu suất cao (92%) Thích hợp cho các ứng dụng chia nguồn, hạ áp,cấp cho các thiết bị như camera, motor, robot,
Thông số kỹ thuật:
- Điện áp đầu vào: Từ 3V đến 30V
- Điện áp đầu ra: Điều chỉnh được trong khoảng 1.5V đến 30V
- Dòng đáp ứng tối đa là 3A
- Hiệu suất : 92%
- Công suất : 15W
Trang 15- Kích thước: 45 (dài) * 20 (rộng) * 14 (cao) mm
2.5 Cảm biến gia tốc, la bàn số (MPU9250)
Hình 6: Cảm biến MPU9250
Cảm biến GY-9250 9DOF IMU MPU9250 có khả năng đo 9 thông số: 3 trục Gócquay (Gyro), 3 trục gia tốc hướng (Accelerometer) và 3 trục từ trường (Magnetometer)chỉ bằng một cảm biến duy nhất là MPU9250 (phiên bản upgrade của MPU6050) đangrất phổ biến hiện nay, cảm biến có code mẫu đầy đủ và rất nhiều tài liệu từ cộng đồng,thích hợp cho các ứng dụng: con lắc động, xe tự cân bằng, máy bay,
Thông số kỹ thuật:
- Điện áp sử dụng: 3~5VDC
- Điện áp giao tiếp: 3~5VDC
- Chuẩn giao tiếp: I2C / SPI
- Three 16-bit analog-to-digital converters (ADCs) for digitizing the gyroscopeoutputs
- Three 16-bit ADCs for digitizing the accelerometer outputs
- Three 16-bit ADCs for digitizing the magnetometer outputs
- Gyroscope full-scale range of ±250, ±500, ±1000, and ±2000°/sec (dps)
- Accelerometer full-scale range of ±2g, ±4g, ±8g, and ±16g
- Magnetometer full-scale range of ±4800μT
- Kích thước: 15 x 25mm, khoảng cách chân 2.54mm
Trang 162.6 Mạch điều khiển động cơ (PCA9685)
Hình 7: Module PWM PCA9685
Mạch điều khiển 16 Chanel PWM PCA9685 được sử dụng để có thể xuất ra
đồng thời 16 xung PWM từ 16 cổng khác nhau thông qua giao tiếp I2C sử dụng IC
PCA9685, giúp bạn có thể điều khiển đồng thời 16 RC Servo hoặc Dimmer 16 thiết bị đồng thời,
Mạch điều khiển 16 Chanel PWM PCA9685 có cấu trúc phần cứng phần cứng
đơn giản cũng như bộ thư viện có sẵn trên Arduino nên rất dễ dàng sử dụng và kết nối
Mạch điều khiển 16 Chanel PWM PCA9685 có chất lượng phần cứng, gia côngtốt, độ bền cao, phù hợp cho các nhu cầu cần điều khiển nhiều xung PWM như Robot
cánh tay máy, Robot nhện,
Thông số kỹ thuật:
- Mạch điều khiển 16 Chanel PWM PCA9685
- IC chính: PCA9685
- Điện áp sử dụng: 2.3 ~ 5.5VDC
- Số kênh PWM: 16 kênh, tần số: 40~1000Hz
- Độ phân giải PWM: 12bit
- Giao tiếp: I2C (chấp nhận mức Logic TTL 3 ~ 5VDC)
- Kích thước: 62.5mm x 25.4mm x 3mm
Trang 172.7 Module giao tiếp không dây (NRF24L01)
Hình 8: Module giao tiếp không dây nRF24L01
Mạch thu phát RF 2.4GHz NRF24L01+ sử dụng chip truyền sóng NRF24L01+mới nhất từ hãng Nordic với nhiều cải tiến so với chip NRF24L01 cũ về tốc độ truyền,khoảng cách, độ nhạy, bổ sung thêm pipelines, buffers, và tính năng auto-retransmitnhưng vẫn tương thích ngược với phiên bản cũ về cách sử dụng , NRF24L01+ hoạtđộng trên dải tần 2.4GHz và sử dụng giao tiếp SPI, khoảng cách tối đa trong điều khiệnkhông vật cản lên đến 100m
Thông số kỹ thuật:
- Điện thế hoạt động: 1.9~3.6VDC
- Tần số thu phát: 2.4GHz
- Truyền được 100m trong môi trường mở với 250kbps baud
- Tốc độ truyền dữ liệu qua sóng: 250kbps to 2Mbps
- Tự động bắt tay (Auto Acknowledge)
- Tự động truyền lại khi bị lỗi (auto Re-Transmit)
- Multiceiver - 6 Data Pipes
- Bộ đệm dữ liệu riêng cho từng kênh truyền nhận: 32 Byte separate TX and RXFIFOs
- Các chân IO đều chịu được điện áp vào 5VDC
Trang 18- Lập trình được kênh truyền sóng trong khoảng 2400MHz đến 2525MHz (chọn được
125 kênh)
- Thứ tự chân giao tiếp : GND,VCC,CS,CSN,SCK,MOSI,MISO,IQR
- Kích thước: 15 x 29mm
2.8 Chuẩn giao tiếp UART
UART (Universal Asynchronous Receiver-Transmitter – Bộ truyền nhận dữ
liệu không đồng bộ) là một giao thức truyền thông phần cứng dùng giao tiếp nối
tiếp không đồng bộ và có thể cấu hình được tốc độ
Dữ liệu truyền đến và đi từ Uart song song với thiết bị điều khiển Khi tín
hiệu gửi trên chân Tx (truyền), bộ giao tiếp Uart đầu tiên sẽ dịch thông tin song
song này thành dạng nối tiếp và sau đó truyền tới thiết bị nhận Chân Rx (nhận)
của Uart thứ 2 sẽ biến đổi nó trở lại thành dạng song song để giao tiếp với các
thiết bị điều khiển
Hình 9: Giao tiếp UART giữa hai thiết bị
Dữ liệu truyền qua Uart sẽ đóng thành các gói (packet) được truyền và nhận
qua các đường truyền này dưới dạng các khung dữ liệu (data frame) có cấu trúc
chuẩn, với một bit bắt đầu (start bit), 5 – 9 bit dữ liệu (tùy thuộc vào bộ Uart), mộtbit kiểm tra chẵn lẻ (parity bit) và một hoặc nhiều bit dừng (stop bit)
Hình 10: UART packet
Giao tiếp UART được sử dụng rộng rãi trong nhiều ứng dụng khác nhau, bao gồm giao tiếp nối tiếp giữa các vi điều khiển, giao tiếp với các thiết bị ngoại vi, và
Trang 19trao đổi dữ liệu giữa máy tính và các hệ thống nhúng Nó được biết đến với tính
đơn giản, chi phí thấp và sự hỗ trợ rộng rãi trên các nền tảng và thiết bị khác nhau
2.9 Chuẩn giao tiếp I2C
I2C hay IIC (Inter – Integrated Circuit) là 1 giao thức giao tiếp nối tiếp đồng bộ,
sử dụng để truyền nhận dữ liệu giữa các IC với nhau chỉ sử dụng hai đường truyền tínhiệu
Hình 11: Giao tiếp I2C giữa các thiết bị
I2C chỉ sử dụng hai dây để truyền dữ liệu giữa các thiết bị:
- SDA (Serial Data) - đường truyền cho master và slave để gửi và nhận dữ liệu
- SCL (Serial Clock) - đường mang tín hiệu xung nhịp
Các bit dữ liệu sẽ được truyền từng bit một dọc theo một đường duy nhất (SDA)theo các khoảng thời gian đều đặn được thiết lập bởi 1 tín hiệu đồng hồ (SCL)
Với I2C, dữ liệu được truyền trong các tin nhắn Tin nhắn được chia thành cáckhung dữ liệu Mỗi tin nhắn có một khung địa chỉ chứa địa chỉ nhị phân của địa chỉ slave
và một hoặc nhiều khung dữ liệu chứa dữ liệu đang được truyền Thông điệp cũng baogồm điều kiện khởi động và điều kiện dừng, các bit đọc / ghi và các bit ACK / NACKgiữa mỗi khung dữ liệu
2.10 Chuẩn giao tiếp SPI
SPI (Serial Peripheral Interface) là một giao thức truyền thông đồng bộ được sửdụng phổ biến trong các hệ thống nhúng để kết nối các vi điều khiển, vi xử lý và các
Trang 20thiết bị ngoại vi Giao thức này cho phép truyền dữ liệu giữa các thiết bị theo cách
đồng bộ, nhanh chóng và hiệu quả
Cấu trúc cơ bản của SPI bao gồm một thiết bị chủ (master) và một hoặc nhiều
thiết bị nô lệ (slave) Thiết bị chủ điều khiển quá trình truyền thông bằng cách phát tín hiệu đồng hồ và lựa chọn thiết bị muốn truyền dữ liệu tới Mỗi thiết bị nô lệ được gắn với một dây MOSI (Master Out Slave In) để nhận dữ liệu từ thiết bị chủ, một dây
MISO (Master In Slave Out) để truyền dữ liệu đến thiết bị chủ, và một dây đồng hồ
(CLK) để đồng bộ hóa truyền thông
Hình 12: Giao tiếp SPI giữa các thiết bị
Mỗi thiết bị Master và Slave đều có một thanh ghi dịch 8 bits (Shift Register),
một bộ tạo xung nhịp (Clock Generator)
Khi Master truyền dữ liệu, Master truyền đi 8 bits dữ liệu vào thanh ghi dịch của
nó, sau đó 8 bits dữ liệu được truyền theo đường tín hiệu MOSI sang thiết bị Slave
Tương tự khi Slave truyền dữ liệu, các bits trên thanh ghi dịch của Slave truyền đến
Master thông qua đường tín hiệu MISO
Bằng cách này, dữ liệu của hai thanh ghi sẽ được trao đổi với nhau Việc đọc và
ghi dữ liệu vào Slave diễn ra cùng một lúc nên tốc độ trao đổi dữ liệu diễn ra rất
nhanh Do đó, giao thức SPI là một giao thức rất có hiệu quả
Trang 21III THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG
Trong phần này, chúng ta sẽ bước vào quá trình thi công các thành phần cơ khí vàđiện tử, gắn kết chúng lại thành một mô hình robot nhện thực sự Tìm cách đảm bảo tính
ổn định, độ chính xác và khả năng hoạt động một cách hiệu quả
3.1 Mô hình robot
3.1.1 Thiết kế mô hình 3D SolidWorks
Hình 13: Servo mgr996
Trang 22Hình 15: Một mặt của thân Robot
Hình 16: Chân trái của Robot