Bộ điều khiển trung tâm sử dụng 2 VĐK Pic 16F877A giao tiếp với nhau bằng chuẩn giao tiếp spi để đảm bảo tốc độ xử lý cho vi điều khiển Nhóm sinh viên thực hiện YÊU CẦU THỰC HIỆN ĐỂ TÀI
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG
@&?
KHOA : CƠ KHÍ BỘ MÔN : CƠ ĐIỆN TỬ
BÀI TẬP LỚN CƠ ĐIỆN TỬ
THIẾT KẾ , THI CÔNG VÀ ĐIỀU KHIỂN MÁY
DỆT KẼM TỰ ĐỘNG
GVHD : Nguyễn Ngọc Thông SVTH :Trần Quang Thái
Trần Quốc Tuấn
Nguyễn Anh Trường
TP.HỒ CHÍ MINH , tháng 12 năm 2010
Trang 2LỜI NÓI ĐẦU
Tuy thời gian cho phép có hạn chúng em cũng đã cố gắng hết sức mình nhưng thiếu sót là không thể tránh khỏi vì vậy kính mong quí thầy bộ môn đóng góp để nhóm hoàn thiện hơn
Cùng với sự giúp đở của thầy Nguyễn Ngọc Thông đã cố vấn và giúp đỡ chúng em rất nhiều trong việc ngiên cứu và chế tao Robotino Em trân thành cảm ơn sự giúp đỡ của thầy
Trân thành cảm ơn sự ủng hộ và giúp đỡ nhiệt tình của các thành viên trong lớp CĐ CĐT 08
Nhóm sinh viên thực hiện
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 3………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Giáo viên hướng dẫn
Phần I : Giới thiệu
Trang 4Tóm tắt đề tài
Đề tài “ Thiết kế , thi công lập trình và điều khiển ROBOTINO dùng cảm biến tránh vật cản “.Robo sẽ tự vận hành theo lộ trình đã được quy định và khi gặp vật cản robo sẽ tự mình né tránh để đến được đích.
Phần cơ khí sẽ được thiết kế lại nhằm mục đích thay những cơ cấu cũ thành những cơ cấu mới với kích thước đế được năng lên.
Bộ điều khiển trung tâm sử dụng 2 VĐK Pic 16F877A giao tiếp với nhau bằng chuẩn giao tiếp spi để đảm bảo tốc độ xử lý cho vi điều khiển
Nhóm sinh viên thực hiện
YÊU CẦU THỰC HIỆN ĐỂ TÀI
Để hoàn thành tốt yêu cầu của đề tài các thành viên trong nhóm phải hoàn thành các yêu cầu sau:
1.Thiết kế cơ khí chính xác tính toán để xác định vị trí của ba động cơ và các trục đỡ
2.tìm hiểu về chuẩn giao tiếp SPI, ADC,Encoder,Pic 16F877A
3.TÌm hiểu, thiết kế và thi công mạch càm biến và mạch công suất
4.Tìm hiểu về bánh omni
Nhóm sinh viên thực hiện
Trang 5SƠ LƯỢC MỘT SỐ HÌNH ẢNH VỀ ROBOTINO
Với cấu tạo đơn giản gồm 3 động cơ được gắn với 3 bánh omni tuy nhiên nó lại dễ dàng dịch chuyển theo mọi hướng trên địa hình bằng phằng
Một số loại robotino khác
Với việc sử dụng các loại bánh omni khác nhau và hình dạng khác nhau các robo náy có kiêu di chuyen rất riêng biệt
Trang 6PHẦN II: NỘI DUNG BÁO CÁO
CHƯƠNG I
CÁC PHƯƠNG ÁN THIẾT KẾ
I PHÂN TÍCH YÊU CẦU ĐỀ TÀI
Đề tài: thiết kế mô hình mobile robot 3 bánh 3 motor
Phân tích yêu cầu đề tài:
- Tìm 3 motor cùng công suất và cùng thông số.
- Tìm thông số của 3 motor để cho motor đi thẳng, rẽ trái, rẽ phải.
- Thiết kế sao cho 3 bánh nằm ở 3 đỉnh tam giác đều, đường kính bánh xe vuông góc với trục của motor hướng vào tâm.
- Thiết kế mô hình phù hợp.
II CÁC PHƯƠNG ÁN ĐỀ RA
1 Phương án 1 Lắp trực tiếp 3 bánh xe lên 3 trục của motor Trục 3 motor song song và trục motor dẫn đường vuông góc với đường thẳng nối từ bánh xe vào tâm Đường kính bánh xe trùng với trục hướng vào tâm Như hình vẽ:
Trang 7- không đúng theo yêu cầu.
- khó đáp ứng khi rẽ vì rất dễ gãy trục nối giữa bánh xe
Trang 8Ưu điểm:
- Đúng theo yêu cầu của đề tài.
- Lực phân bố đều trên 3 trục khi rẽ, quay.
Nhược điểm:
- Các bánh xe đa hướng hơi khó tìm.
- Vấn đề đặt trục và giải đồ cho di chuyển rất mới, trong nhóm chưa ai gặp.
III PHƯƠNG ÁN CHỌN LỰA:
Để phù hợp với yêu cầu đề tài, nhóm đã thảo luận và đi tới quyết định chọn phương án 2.
Trang 9ChươngII: THIẾT KẾ VÀ THI CÔNG CƠ KHÍ
A Bánh OMNI
Loại bánh này có tất cả 6 múi được chia làm 2 lớp mỗi lớp có 3 múi được đặt cách điều nhau và vuôn góc với trục của bánh xe vì thế bánh omni có thể dễ dàng dịch chuyển theo mọi hướngMột số loại bánh omni khác
Trang 10B.CƠ KHÍ.
Do đây là mô hình mobile robot không chịu tải trọng nặng nên hầu hết các vật liệu và kết cấu cơ khí đều mang tính gọn nhẹ, dễ gia công và nhóm quyết định chọn nhôm làm vật liệu chính.
Một tấm nhôm mỏng bề dày 2mm, kích thước 350*350mm2, gia công thành hình đĩa tròn, bán kính 150mm làm đế mô hình
và cũng là phần gắn động cơ trực tiếp
Nhôm ống hình vuông, cắt kích thước 20mm làm trụ cho robot.
3 cặp bánh đa hướng lắp trực tiếp trên trục của motor.
Nhôm tấm co be dày 1 mm duoc cắt thành những thnah dài làm phần chi tiết bao quanh đế robot hình trụ tròn
Gia công khoan, bắt trực tiếp motor lên mặt đế của robot kích thước và vị trí theo đúng yêu cầu đề tài.
Nhôm thanh chữ V gia công cắt kích thước 15mm, 14mm làm đế giữ bình acqui.
Các chi tiết cơ khí đều được gia công định vị chặt bằng đinh IV.
Trang 11C: ĐỘNG CƠ DC SERVO :
DC SERVO :
Động cơ servo là thiết bị được điều
khiển bằng chu trình kín Từ tín hiệu hồi tiếp
vận tốc/vị trí, hệ thống điều khiển số sẽ điều
khiển họat động của một động cơ servo Với lý
do nêu trên nên sensor đo vị trí hoặc tốc độ là
các bộ phận cần thiết phải tích hợp cho một
động cơ servo
Đặc tính vận hành của một động cơ
servo phụ thuộc rất nhiều vào đặc tính từ và
phương pháp điều khiển động cơ servo Có 3
loại động cơ servo được sử dụng hiện nay đó
là động cơ servo AC dựa trên nền tảng động
cơ AC lồng sóoc; Động cơ servo DC dựa trên
nền tảng động cơ DC; và động cơ servo AC
không chổi than dựa trên nền tảng động cơ không đồng bộ
Để điều khiển số vòng quay hay vận tốc động cơ thì chúng ta nhất thiết phải đọc được góc quay của motor Một số phương pháp có thể được dùng để xác định góc quay của motor bao gồm tachometer (thật ra tachometer đo vận tốc quay), dùng biến trở xoay, hoặc dung encoder
Ứng dụng của DC servo rất đa dạng :
Động cơ servo có nhiều kiểu dáng và kích thước, được sử dụng trong nhiều máy khác nhau, từ máy tiện điều khiển bằng máy tính cho đến các
mô hình máy bay và xe hơi Ứng dụng mới nhất của động cơ servo là trong các robot, cùng loại với các động cơ dùng trong mô hình máy bay
và xe hơi.
Tuy nhiên các ứng dụng chủ yếu của động cơ servo là điều khiển chuyển động.Những ứng dụng khác bao gồm máy đóng gói bao bì, máy công cụ và thiết bị CNC,dây chuyền lắp ráp và thiết bị vận chuyển vật
tư Những ứng dụng khác chiếm tỷ lệ rất nhỏ,đó là lắp ráp ô tô, thiết bị
in, xử lí bột giấy, giấy, băng giấy,và các hệ thống tự động lắp trên xe.
Trang 12Encoder :
Encoder mục đích dùng để quản lý vị trí góc của một đĩa quay, đĩa quay có thể
là bánh xe, trục động cơ, hoặc bất kỳ thiết bị quay nào cần xác định vị trí góc.
Nguyên lý hoạt động cơ bản của
encoder :
Nguyên lý cơ bản của encoder, đó là một đĩa tròn xoay, quay quanh trục Trên đĩa có các lỗ (rãnh) Người ta dùng một đèn led để chiếu lên mặt đĩa Khi đĩa quay, chỗ không có lỗ (rãnh), đèn led không chiếu xuyên qua được, chỗ có lỗ (rãnh), đèn led sẽ chiếu xuyên qua Khi đó, phía mặt bên kia của đĩa, người ta đặt một con mắt thu Với các tín hiệu có, hoặc không có ánh sáng chiếu qua, người ta ghi nhận được đèn led có chiếu qua hay không
Khi trục quay , giả sử trên đĩa chỉ có 1 lỗ duy nhất , cứ mỗi lần con mắt thu nhận được tín hiệu đèn led thì có nghĩa là đĩa đã qua được 1 vòng
Trang 137 56 1
Trang 14Chương IV : Tìm hiểu vi điều khiển PIC 16F877A ,Chuẩn giao
tiếp SPI và ADC
Trang 152) Cấu trúc tổng quát PIC 16F877A :
- 8 K Flash ROM
- 368 Bytes RAM
- 256 Bytes EEPROM
- 5 ports (A, B, C, D, E) vào ra với tín
hiệu điều khiển độc lập
- 2 bộ định thời 8 bits (Timer 0 và
Timer 2)
- Một bộ định thời 16 bits (Timer 1) có
thể hoạt động trong chế độ tiết kiệm
năng lượng (SLEEP MODE) với
nguồn xung Clock ngoài
- 2 bô CCP( Capture / Compare/
PWM)
- 1 bộ biến đổi AD 10 bits, 8 ngõ vào
- 2 bộ so sánh tương tự (Compartor)
- 1 bộ định thời giám sát (WatchDog Timer)
- Một cổng song song 8 bits với các tín hiệu điều khiển
- Một cổng nối tiếp
- 15 nguồn ngắt
- Có chế độ tiết kiệm năng lượng
- Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)
- Được chế tạo bằng công nghệ CMOS
- 35 tập lệnh có độ dài 14 bits
- Tần số hoạt động tối đa 20MHz
Trang 16Sơ đồ khối vi điều khiển PIC16F877A
Trang 18II)Chuẩn Giao Tiếp SPI
SPI : Serial Perippheral Interface- Giao tiếp ngoại vi nối tiếp
Giao thức SPI do hãng Motorola phát minh và còn được biết đến với tên gọi khác là Microwire(hãng National Semiconductor phát triển) Cả SPI và Microwire đều có chung nguyên tắc hoạtđộng Hiện nay giao thức SPI đã có các phiên bản cải tiến như QSPI (Queue SPI) và
Microwire Plus
Giao thức SPI cung cấp một giao thức nối tiếp đơn giản giữa MCU và thiết bị ngoại vi Giống với các Bus nối tiếp khác như I2C, CAN hoặc USB , chuẩn giao tiếp SPI ngày càng được sử dụng rộng rãi trong lĩnh vực điện tử, đặc biệt là trong giao tiếp trao đổi dữ liệu với các ngoại vi
Giao thức SPI được tích hợp trong một số loại thiết bị như:
+ Các bộ chuyển đổi (ADC và DAC)
+ Các loại bộ nhớ (EEPROM và FLASH)
+ Các loại IC thời gian thực
+ Các loại cảm biến (nhiệt độ, áp suất…)
+ và một số loại khác như: bộ trộn tín hiệu, LCD, Graphic LCD…
I.2.1 BUS SPI
Giao tiếp SPI được thực hiện thông qua BUS 4 dây MISO, MOSI, SCK, SS nên đôi khi SPI còn được gọi là giao thức giao tiếp 4 dây
a MISO: Master Input Slave Output
Trong VĐK PIC, chân MISO được kí hiệu là SDO
Chân MISO dùng để truyền dữ liệu ra khỏi Modun SPI khi đặt cấu hình là Slave và nhận dữ liệu khi đặt cấu hình là Master
b MOSI: Master Output Slave Input
Trong VĐK PIC, chân MOSI được kí hiệu là SDI
Trang 19Chân MOSI dùng để truyền dữ liệu ra khỏi Mođun SPI khi đặt cấu hình là Master và nhận dữ liệu khi đặt cấu hình là Slave.
I.2.2 SPI là giao thức đồng bộ
Modun SPI cho phép giao tiếp nối tiếp đồng bộ kép giữa MCU hoặc MPU với thiết bị ngoại vi
- Tín hiệu SCK được cung cấp bởi Master nhằm tạo xung đồng bộ cho phép dữ liệu được truyền đi hoặc khi đọc dữ liệu nhận được
- Khi tín hiệu SCK được phát ra thì tín hiệu này có thể thay đổi nhưng không làm hỏng dữ liệu Lí do là trong giao thức SPI, tốc độ của dữ liệu truyền đi sẽ thay đổi theo sự thay đổi củaSCK Điều này rất có lợi nếu như MCU hoặc MPU bị cấp xung đồng hồ không chính xác (VD:
bộ dao động RC)
I.2.3 SPI là giao thức chủ-tớ
Giao diện cơ bản của giao tiếp SPI
Trang 20Thiết bị tên ‘Processor’ đóng vai trò Master, thiết bị ‘Peripheral’ là Slave.
Cả Master và Slave đều có thanh ghi dịch nối tiếp ở bên trong Thiết bị Master bắt đầu việc trao đổi dữ liệu bằng cách truyền đi một Byte vào thanh ghi dịch của nó, sau đó Byte dữ liệu
sẽ được đưa sang Slave theo đường tín hiệu MOSI (SDI), Slave sẽ truyền dữ liệu nằm trong thanh ghi dịch của chính nó ngược trở về Master thông qua đường tín hiệu MISO (SDO) Bằngcá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ả
Trong giao thức chủ-tớ, chỉ có thiết bị Master mới có thể điều khiển (phát ra) xung SCK Dữ liệu sẽ không được truyền đi nếu như Master không cung cấp xung SCK và tất cả các thiết bị Slave đều được điều khiển bởi xung nhịp phát ra từ Master trong khi đó, Slave lại không có khả năng phát xung
Có 2 cách kết nối Master-Slave:
a Master và các Slave độc lập
Trang 21Trong cách kết nối này, tín hiệu SCK và SDO từ Master được cung cấp đến từng Slave Đườngtín hiệu SDO của các Slave nối chung lại với nhau và truyền về Master Lúc này, Master sẽ lựachọn Chip Slave nào để trao đổi dữ liệu thông qua các chân SS riêng lẻ.
b Cách nối Daisy-Chained
Hình dưới đây mô tả cách kết nối Daisy-Chained giữa Master và Slave
Trang 22Ví dụ ta thực hiện giao tiếp SPI giữa Master và 3 thiết bị Slave Cách nối dây như hình vẽ, khác với cách kết nối cơ bản, ở phương pháp này ta chỉ sử dụng duy nhất 1 chân SS (Chip Select) Giả sử Master truyền đi 3 Bytes dữ liệu lên Bus SPI Byte đầu tiên được dịch vào Slave A khi byte thứ hai truyền đến A, byte đầu tiên sẽ bị đẩy ra khỏi A và truyền đến B Tương tự, khi byte thứ ba truyền vào A, byte thứ hai sẽ bị dịch sang B và Byte đầu tiên sẽ bị dịch sang C Nếu Master muốn đọc lại dữ liệu trong Slave A, nó phải truyền lại chuỗi 3 Bytes
dữ liệu (giả) lần nữa Khi đó dữ liệu trong A sẽ chuyển sang B rồi chuyển sang C, sau đó về Master Suốt quá trình sử lý, Master luôn nhận được Byte dữ liệu từ Slave B và C
Tuy nhiên, cách nối SPI Daisy-Chained không phải lúc nào cũng áp dụng được cho tất cả các thiết bị Slave Do đó, ta cần phải tham khảo datasheet trước khi tiến hành kết nối
I.2.4 SPI là giao thức trao đổi dữ liệu
Trang 23Dữ liệu lúc nào cũng được truyền qua lại giữa các thiết bị SPI Thật ra, không có khái niệm thiết bị phát hay thiết bị nhận trong giao thức SPI mà mỗi thiết bị có 2 đường dữ liệu, một đường dữ liệu vào và một đường dữ liệu ra.
Dữ liệu truyền đi được điều khiển bởi xung SCK từ Master
Khi được truyền đi, dữ liệu vào cần phải được đọc ngay, nếu không sẽ bị mất đi và khi đó, giao thức SPI có thể sẽ ngưng hoạt động Để tránh tình trạng này, lúc nào ta cũng phải đọc
dữ liệu về ngay sau khi truyền đi cho dù dữ liệu đõ không thực sự cần thiết
Thường thì 1 tín hiệu chọn Slave sẽ tác động mức thấp để chỉ ra Slave nào được truy cập Tínhiệu này phải được sử dụng khi có nhiều hơn 1 Slave trong cùng hệ thống và thường không
sử dụng đến khi trong mạch chỉ có 1 Slave Tuy nhiên, theo nguyên tắc thì ta nên sử dụng tínhiệu này trong cả hai trường hợp trên
Tín hiệu SS sẽ chỉ ra Slave nào mà Master muốn bắt đầu một quá trình trao đổi dữ liệu bằng giao thức SPI giữa thiết bị Slave đó và chính nó Nếu tín hiệu trên đường SS là 0 thì chứng tỏ giao thức SPI đang hoạt động Ngược lại, nếu tín hiệu là mức 1 thì giao thức SPI không hoạt động
Một đặc điểm khác khá quan trọng của tín hiệu SS là nó vó tác dụng làm tăng cường khả năng miễn nhiễm cho hệ thống Lí do là SS sẽ Reset Slave để nó có thể nhận Byte dữ liệu tiếptheo
SPI có 4 mode hoạt động, phụ thuộc vào cực tính và pha của xung đồng hồ Trong trường hợp cực âm của xung đồng hồ, tín hiệu SCK sẽ ở mức thấp trong quá trình nghỉ và chuyển sang mức cao trong quá trình truyền dữ liệu Ngược lại, đối với trường hợp cực dương của xung đồng hồ, tín hiệu SCK ở mức cao trong quá trình nghỉ và chuyển sang mức thấp khi truyền dữ liệu
+ SPI Mode 0:
Mô tả : Xung dương, dữ liệu được chốt trước khi dịch
Giản đồ thời gian:
Trang 25II – SPI TRONG VĐK PIC :
SPI Mode trong PIC cho phép 8 bit dữ liệu được truyền nhận đồng bộ 1 cách simultaneously
Hỗ trợ hoạt động ở cả 4 Mode Để tiến hành hoạt động giao tiếp, về cơ bản, 3 chân sau đây được sử dụng:
+ Serial Data Out – RC5/SDO
+ Serial Data In – RC4/SDI/SDA
+ Serial Clock – RC3/SCK/SCL
Ngoài ra, nếu trong hệ thống có nhiều hơn 1 Slave thì chân Chip Select sẽ được dùng:
+ Slave Select – RA5/AN4/SS/HLVDIN
Sơ đồ nguyên lý của khối SPI tích hợp trong Vi Điều Khiển PIC
Trang 26Để sử dụng Mode SPI ta cần phải thiết lập các giá trị chính xác cho các thanh ghi Control Module MSSP của PIC có 4 thanh ghi dành cho Mode SPI Đó là:
+ MSSP Control Register 1 (SSPCON1)
+ MSSP Status Register (SSPSTAT)
+ Serial Receive/Transmit Buffer Register (SSPBUF)
+ MSSP Shift Register (SSPSR) – Không truy xuất trực tiếp được
Trang 27SSPCON1 và SSPSTAT là các thanh ghi điều khiển và cho biết trạng thái hoạt động của Mode SPI SSPCON1 là thanh ghi có thể đọc hoặc ghi Trong khi đó, 6 bit thấp của SSPSTAT chỉ có thể đọc, còn 2 bit cao ta có thể đọc hoặc ghi.
SSPSR là thanh ghi có chức năng ghi dịch dữ liệu vào hoặc ra
SSPBUF là thanh ghi Buffer, có chức năng lưu dữ liệu tạm thời trước khi ghi vào Slave hoặc sau khi đọc về
Ở hoạt động nhận dữ liệu, SSPSR và SSPBUF kết hợp lại tạo thành bộ nhận dữ liệu được đệmkép Khi SSPSR nhận 1 byte hoàn chỉnh, nó sẽ được chuyển đến SSPBUF và bit SSPIF được Set lên 1
Trong suốt quá trình truyền dữ liệu, SSPBUF không được đệm kép Nếu ta ghi dữ liệu vào SSPBUF thì dữ liệu sẽ được ghi vào cả 2 thanh ghi SSPBUF và SSPSR
Chi tiết về các bit của các thanh ghi SPI Mode
+ SSPSTAT (MSSP Status Register)
Bit7 SMP: bit Lấy Mẫu
SPI Master Mode:
1 = dữ liệu vào được lấy mẫu tại thời điểm cuối của dữ liệu ra
0 = dữ liệu vài được lấy mẫu tại giữa thời điểm dữ liệu ra
SPO Slave Mode:
Bit SMP phải được xóa khi sử dụng ở Slave Mode
Bit6 CKE: SPI Clock Select bit
1 = quá trình truyền diễn ra khi xung clock chuyển từ trạng thái tác động sang trạng thái nghỉ
0 = quá trình truyền diễn ra khi xung clock chuyển từ trạng thái nghỉ sang trạng thái hoạt động