-5-
Xe chở (Unit Load Vehicle)
Xe chở được trang bị các tầng khay chứa có thể là các nâng, hạ chuyền động
bằng băng tải, đai hoặc xích. Loại này có ưu điểm :
- Tải trọng được phân phối và di chuyển theo yêu cầu.
- Thời gian đáp ứng nhanh gọn.
- Giảm hư hại tài sản.
- Đường đi linh hoạt.
- Giảm thiểu các tắc nghẽn giao thông chuyên chở.
- Lập kế hoạch hiệu quả.
Hình 1.3 AGV chở hàng
Xe đẩy (Cart Vehicle)
Xe đẩy được cho là có tính linh hoạt cao và rẻ tiền. Chúng được sử dụng để
chuyên chở vật liệu và các hệ thống lắp ráp.
Xe nâng (Fork Vehicle)
Có khả năng nâng các tải trọng đặt trên sàn hoặc trên các bục cao hay các khối
hàng đặt trên giá.
-6-
Hình 1.4 Mô hình xe nâng
1.3.2 Phân loại theo dạng đƣờng đi
Loại chạy không chạy theo đường dẫn (Free path navigation)
Có thể di chuyển đến các vị trí bất kỳ trong không gian hoạt động. Đây là loại
xe AGV có tính linh hoạt cao được định vị vị trí nhờ các cảm biến con quay hồi
chuyển (Gyroscop sensor) để xác định hướng di chuyển, cảm biến laser để xác định vị
trí các vật thể xung quanh trong quá trình di chuyển, hệ thống định vị cục bộ (Local
navigation Location) để xác định tọa độ tức thời,…Việc thiết kế loại xe này đòi hỏi
công nghệ cao và phức tạp hơn so với các loại AGV khác.
Loại chạy theo đường dẫn (Fixed path navigation)
Xe AGV thuộc loại này được thiết kế chạy theo các đường dẫn định sẵn gồm
các loại đường dẫn như sau:
- Đường dẫn từ: Là loại đường dẫn có cấu tạo là dây từ (Magnetic wire) chôn
ngầm dưới nền sàn. Khi di chuyển, nhờ có các cảm biến cảm ứng từ mà xe có thể di
chuyển theo đường dây dẫn. Loại đường dẫn này không nằm bên trên mặt sàn nên có
mỹ quan tốt, không ảnh hưởng đến các công việc vận hành khác. Tuy nhiên khi sử
dụng phải tiêu tốn năng lượng cho việc tạo từ tính trong dây, đồng thời đường dẫn là
cố định và không thể thay đổi được.
-7-
- Đường ray dẫn: Xe AGV được chạy trên các ray định trước trên mặt sàn. Loại
này chỉ sử dụng đối với những hệ thống chuyên dụng. Nó cho phép thiết kế xe đơn
giản hơn và có thể di chuyển với tốc độ cao nhưng tính linh hoạt thấp.
- Đường băng kẻ trên sàn: Xe AGV di chuyển theo các đường băng kẻ sẵn trên
sàn nhờ các loại cảm biến nhận dạng vạch kẻ. Loại này có tính linh hoạt cao vì trong
quá trình sử dụng người ta có thể thay đổi đường đi một cách dễ dàng nhờ kẻ lại các
vạch dẫn. Tuy nhiên khi sử dụng, các vạch dẫn có thể bị bẩn hay hư hại gây khó khăn
cho việc điều khiển chính xác xe.
1.4 Thành cấu tạo của xe AGV
Các bộ phận chính của AGV bao gồm:
Các bộ phận dẫn động: Động cơ, cơ cấu nâng hạ và giảm tốc, phanh hãm…
Các bộ phận điều khiển: mạch điều khiển, cảm biến, đèn báo tín hiệu.
Bộ phận kết nối tải: Được thiết kế tùy theo loại AGV và yêu cầu sử dụng.
Nguồn năng lượng : Ắc quy, điện một chiều.
Các hệ thống định vị: dẫn đường định vị vị trí và xác định đường đi.
Truyền thông: Truyền phát tín hiệu từ các modul truyền thông điều khiển hoạt
động của xe.
1.4.1 Vi điều khiển Atemega 8:
Những Tính Năng Chính Của ATmega8
Có 8Kbyte bộ nhớ flash.
Có thể xóa lập trình được và có thể chịu được 10000 lần ghi xóa.
Có 32 thanh ghi đa năng 8 bit.
Có 512 byte bộ nhớ EEPROM tích hợp trên chíp,
Có 1 kbyte SRAM nội.
Có hai bộ Timer/counter 8 bit và một bộ timer/counter 16 bit với bộ chia tần lập
trình được.
Có ba kênh điều xung, 6 kênh lối vào chuyển đổi ADC với độ phân giải 10 bit.
Atmega 8 có 28 chân, trong đó có 23 cổng vào ra.
Nguồn nuôi từ 2.7 đến 5.5 đối với Atmega8L và từ 4.5 đến 5.5 đối với
Atmega8, làm việc tiêu thụ dòng 3.6mA.
-8-
Sử dụng mạch dao động ngoài từ 0 đến 8 Mhz với Atmega8L và từ 0 đến 16
Mhz với Atmega8.
Ngoài ra chíp Atmega8 còn có bộ xung nội bên trong có thể lập trình chế độ
xung nhịp.
Bộ Nhớ Dữ Liệu : Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ nhớ
SRAM và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhưng hai bộ nhớ này
lại tách biệt nhau và được đánh địa chỉ riêng.
Dưới đây là sơ đồ khối của Atmega8:
Hình 1.5 Sơ đồ cấu trúc Atmega8
Cấu trúc tổng quát AVR
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình
và dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương
trình được lưu trong bộ nhớ Flash.
ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được
thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia làm 3 loại: đại
số, logic và theo bit.
-9-
Cấu trúc ngắt của atmega 8.
Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng
sẵn sàng cho đổi dữ liệu của mình.
Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu
vị trí đang thực hiện chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phục
vụ ngắt và thực hiện chương trình phục vụ ngắt đó cho tới khi gặp lệnh RETI (return
from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà
trước khi có ngắt nó đang thực hiện. Trong trường hợp mà có nhiều ngắt yêu cầu cùng
một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức
ưu tiên. Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường
hợp. Trường hợp ngắt này có mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà
có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua.
Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy
nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào SRAM
theo kiểu ngăn xếp thì ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16 bit và được
truy nhập như hai thanh ghi 8 bit chung có địa chỉ : SPL: 0x3D/0x5D(IO/SRAM) và
SPH: 0x3E/0x5E.
Khi chương trình phục vụ ngắt hoặc chương trình con thì con trỏ PC được lưu
vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trỏ ngăn xếp sẽ giảm 1
khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng
1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con
trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một
chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp
ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi.
-10-
Hình 1.6 Bảng vecto ngắt
Các ngắt ngoài được kích hoạt bởi 2 chân INT0 và INT1. Chú ý rằng nếu đã
kích hoạt, các ngắt sẽ kích bằng (trigger even) nếu các chân INT0, INT1 được cấu hình
là các ngõ ra.
Cái đặc điểm này cung cấp 1 con đường chung cho ngắt mềm. Các ngắt ngoài
có thể được kích bởi cạnh xuống hoặc lên hoặc mức thấp. Sự cài đặt này được chỉ định
đặc biệt trong thanh ghi điều khiển MCU – MCUCR.
Bộ nhớ chƣơng trình (Bộ nhớ Flash)
Bộ nhớ Flash 16KB của Atmega8 dùng để lưu trữ chương trình. Do các lệnh
của AVR có độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp xếp theo kiểu 8KX16.
Bộ nhớ Flash được chia làm 2 phần, phần dành cho chương trình boot và phần dành
cho chương trình ứng dụng.
-11-
Bộ nhớ dữ liệu SRAM
1120 ô nhớ của bộ nhớ dữ liệu định địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ
nhớ dữ liệu SRAM nội. Trong đó 96 ô nhớ đầu tiên định địa chỉ cho file thanh ghi và
bộ nhớ I/O, và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội.
Bộ nhớ dữ liệu EEPROM
Atmega8 chứa bộ nhớ dữ liệu EEPROM dung lượng 512 byte, và được sắp xếp
theo từng byte, cho phép các thao tác đọc/ghi từng byte một. Đây là bộ nhớ dữ liệu có
thể ghi xóa ngay trong lúc vi điều khiển đang hoạt động và không bị mất dữ liệu khi
nguồn điện cung cấp bị cắt. Có thể ví bộ nhớ dữ liệu EEPROM giống như là ổ cứng (
Hard disk ) của máy vi tính. EEPROM được xem như là một bộ nhớ vào ra được đánh
địa chỉ độc lập với SRAM, điều này có nghĩa là ta cần sử dụng các lệnh in, out … khi
muốn truy xuất tới EEPROM.
Các cổng vào ra (I/O)
Vi điều khiển atmega8 có 23 đường vào ra chia làm 2 nhóm 8 bit, một nhóm 7
bit. Các đường vào ra này có rất nhiều tính năng và có thể lập trình được. Ở đây ta sẽ
xét chúng là các cổng vào ra số. Nếu xét trên mặt này thì các cổng vào ra này là cổng
vào ra hai chiều có thể định hướng theo từng bit. Và chứa cả điện trở pull-up (có thể
lập trình được). Mặc dù mỗi port có các đặc điểm riêng nhưng khi xét chúng là các
cổng vào ra số thì dường như điều khiển vào ra dữ liệu thì hoàn toàn như nhau. Chúng
ta có thanh ghi và một địa chỉ cổng đối với mỗi cổng, đó là : thanh ghi dữ liệu cổng (
PORTB, PORTC, PORTD), thanh ghi dữ liệu điều khiển cổng (DDRB, DDRC,
DDRD) và cuối cùng là địa chỉ chân vào của cổng (PINB, PINC, PIND).
1.4.2 Động cơ DC servo 55ZYTD51
Thông số kĩ thuật:
Động cơ Servo 100w - 24VDC
Current : 5.5 A.
Tốc độ: 2500 rpm
Encoder: 1000 xung
-12-
Động cơ DC servo 55ZYTD51 là động cơ servo nam châm vĩnh cửu có chổi
than. Động cơ được dùng cho các ứng dụng đòi hỏi sự chính xác. Động cơ được gắn
một encoder kèm theo để phản hồi vị trí cho bộ điều khiển.
Các ƣu điểm:
Tính năng kỹ thuật cao.
Chi phí thấp.
Nhiễu tạp nhỏ.
Kèm theo encoder (1000 xung), lỗi vị trí có thể được giới hạn đến một xung.
Hình 1.7 Động cơ Dc servo 55ZYTD51
Các ứng dụng điển hình:
Dùng trong các máy khắc, máy cắt, máy phun mực.
Máy chỉ dẫn và cài đặt thí nghiệm.
Các thiết bị đo lường như các dụng cụ phân tích, mô phỏng…
Sử dụng trong robot cần đạt độ chính xác cao.
1.4.3 Hệ thống điều khiển không dây
Tổng quan về truyền thông nối tiếp không đồng bộ:
Khi một bộ vi xử lý truyền thông với thế giới bên ngoài thì nó cấp dữ liệu dưới
dạng từng khúc 8 byte một. Trong một số trường hợp chẳng hạn như các máy in thì
thông tin đơn giản được lấy từ đường bus dữ liệu 8 bít và được gửi đi tới bus dữ liệu 8
byte của máy in. Điều này có thể làm việc chỉ khi đường cáp bus không quá dài vì các
đường cáp dài làm suy giảm thậm chí làm méo tín hiệu. Ngoài ra, đường dữ liệu 8 byte
giá thường đắt. Vì những lý do này, việc truyền thông nối tiếp được dùng để truyền dữ
-13-
liệu giữa hai hệ thống ở cách xa nhau hàng trăm đến hàng triệu dặm. Hình dưới là sơ
đồ truyền nối tiếp so với sơ đồ truyền song song.
Hình 1.8 Chuẩn truyền song song và nối tiếp
Thực tế là trong truyền thông nối tiếp là một đường dữ liệu duy nhất được dùng
thay cho một đường dữ liệu 8 byte của truyền thông song song làm cho nó không chỉ
rẻ hơn rất nhiều mà nó còn mở ra khả năng để hai máy tính ở cách xa nhau có truyền
thông qua đường thoại.
Một hạn chế rất dễ nhận thấy khi truyền nối tiếp so với song song là tốc độ
truyền và độ chính xác của dữ liệu khi truyền và nhận. Vì dữ liệu cần được “chia nhỏ”
thành từng bit khi truyền/nhận, tốc độ truyền sẽ bị giảm. Mặt khác, để đảm bảo tính
chính xác của dữ liệu, bộ truyền và bộ nhận cần có những “thỏa hiệp” hay những tiêu
chuẩn nhất định. Dưới đây là tiêu chuẩn trong truyền thông nối tiếp không đồng bộ:
Baud rate (tốc độ Baud): để việc truyền và nhận không đồng bộ xảy ra thành
công thì các thiết bị tham gia phải “thống nhất” nhau về khoảng thời dành cho 1 bit
truyền, hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này
gọi là tốc độ Baud. Theo định nghĩa, tốc độ baud là số bit truyền trong 1 giây. Ví dụ
nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là 1/19200 ~
52.083us.
Frame (khung truyền): do truyền thông nối tiếp mà nhất là nối tiếp không
đồng bộ rất dễ mất hoặc sai lệch dữ liệu, quá trình truyền thông theo kiểu này phải
tuân theo một số quy cách nhất định. Bên cạnh tốc độ baud, khung truyền là một yếu
tốc quan trọng tạo nên sự thành công khi truyền và nhận. Khung truyền bao gồm các
quy định về số bit trong mỗi lần truyền, các bit “báo” như bit Start và bit Stop, các bit
kiểm tra như Parity, ngoài ra số lượng các bit trong một data cũng được quy định bởi
khung truyền.
-14-
Start bit: start là bit đầu tiên được truyền trong một frame truyền, bit này có
chức năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền tới. Ở
module USART trong AVR, đường truyền luôn ở trạng thái cao khi nghỉ (Idle), nếu
một chip AVR muốn thực hiện việc truyền dữ liệu nó sẽ gởi một bit start bằng cách
“kéo” đường truyền xuống mức 0. Như vậy, với AVR bit start là mang giá trị 0 và có
giá trị điện áp 0V (với chuẩn RS232 giá trị điện áp của bit start là ngược lại). Start là
bit bắt buộc phải có trong khung truyền.
Data: data hay dữ liệu cần truyền là thông tin chính mà chúng ta cần gởi và
nhận. Data không nhất thiết phải là gói 8 bit, với AVR bạn có thể quy định số lượng
bit của data là 5, 6, 7, 8 hoặc 9 (tương tự cho hầu hết các thiết bị hỗ trợ UART khác).
Trong truyền thông nối tiếp UART, bit có ảnh hưởng nhỏ nhất (LSB – Least
Significant Bit, bit bên phải) của data sẽ được truyền trước và cuối cùng là bit có ảnh
hưởng lớn nhất (MSB – Most Significant Bit, bit bên trái).
Parity bit: parity là bit dùng kiểm tra dữ liệu truyền đúng không (một cách
tương đối). Có 2 loại parity là parity chẵn (even parity) và parity lẻ (odd parity). Parity
chẵn nghĩa là số lượng số 1 trong dữ liệu bao gồm bit parity luôn là số chẵn. Ngược lại
tổng số lượng các số 1 trong parity lẻ luôn là số lẻ. Ví dụ, nếu dữ liệu là 10111011 nhị
phân, có tất cả 6 số 1 trong dữ liệu này, nếu parity chẵn được dùng, bit parity sẽ mang
giá trị 0 để đảm bảo tổng các số 1 là số chẵn (6 số 1). Nếu parity lẻ được yêu cầu thì
giá trị của parity bit là 1.
Stop bits: stop bits là một hoặc các bit báo cho thiết bị nhận rằng một gói dữ
liệu đã được gởi xong. Sau khi nhận được stop bits, thiết bị nhận sẽ tiến hành kiểm tra
khung truyền để đảm bảo tính chính xác của dữ liệu. Stop bits là các bits bắt buộc xuất
hiện trong khung truyền, trong AVR USART có thể là 1 hoặc 2 bits.
Xuất phát từ yêu cầu thực tế của đề tài AGV, nhóm đã nghiên cứu rất kỹ lý
thuyết cũng như thực tế, từ đó quyết định sử dùng RF (Radio frequency) để điều khiển
không dây (wireless) cho xe AGV.
Hệ thống RF control:
Tổng quan về modul thu phát APC220-43(433MHz RF)
Không có nhận xét nào:
Đăng nhận xét