Theo định luật Newton , phương trình chuyển động của Robot như sau : trong đó ∑F→ là tổng các lực tác động lên Robot , m là khối lượng của Robot và a là gia tốc chuyển động của Robot.. P
Trang 1CHƯƠNG 7 : THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG
7.1 Mô hình của Robot :
7.1.1 Cấu tạo của Robot :
Cấu tạo của Robot gồm 3 bánh : 2 bánh sau được điều khiển bởi 2 động cơ bước thông qua bộ giảm tốc có tỷ số bánh răng 68/18 ; bánh trước có thể xoay tự
do để có thể rẽ trái hay rẽ phải nhờ vào sự điều khiển ở 2 bánh sau
Khi Robot di chuyển trên một mặt phẳng nằm ngang thì nó chịu các lực tác động sau : lực do motor sinh ra F, trọng lực P , phản lực N và lự ma sát Fm Theo phương ngang trọng lực P và phản lực Fm triệt tiêu lẫn nhau ; vì vậy để robot có thể di chuyển được thì lực do motor sinh ra F phải cân bằng với lực ma sát Fm Theo định luật Newton , phương trình chuyển động của Robot như sau :
trong đó ∑F→ là tổng các lực tác động lên Robot , m là khối lượng của Robot và a là gia tốc chuyển động của Robot
Phân tích phương trình trên theo phương ngang ta có :
Nếu Robot chuyển động với vận tốc không đổi thì a=0 , điều này có nghĩa là
F cân bằng với lực ma sát Fm Nếu ta thay đổi vận tốc của Robot thì gia tốc a>0 , ( giả sử rằng Fm là không đổi ) thì lực F tăng lên
Khi Robot di chuyển trên mặt phẳng nghiêng có góc nghiêng là a như hình vẽ sau :
Trang 2Trong trường hợp này , phương trình chuyển động của Robot có dạng như sau :
F T = F − Fm − P1 = ma
với P1 = mg sin a
Để Robot có thể di chuyển được lên dốc thì lực đẩy F do motor sinh ra phải lớn để cân bằng với Fm và P1
Một cách tổng quát thì phương trình chuyển động của Robot có dạng như sau :
F T = ma
hay ta có thể viết :
d 2
F T = m 2 y
dt
Suy ra d2 y = 1 F T dt2m (7.2)
Hay dv = 1 F T
với y là khoảng cách mà Robot di chuyển được và v là vận tốc của Robot
Các cảm biến dùng cho Robot :
o Ba công tắc hành trình được bố trí ở phần trước của Robot để xử lý va chạm như được mô tả ở hình vẽ sau :
o Hai quang trở dùng để xác định nguồn sáng được đặt ở phía trước và bên dưới 2 công tắc bên trái và bên phải Các giá trị điện áp thu được
a
Thân robot Cảm biến lực
Trang 3từ 2 quang trở là tín hiệu Analog sẽ được đưa về bộ ADC0809 để biến đổi thành tín hiệu số
o Cảm biến hồng ngoại đo tầm : trong luận văn này chúng em dùng cảm biến GP2D12 Đây là loại cảm biến có thể phát hiện được vật thể trong tầm từ 10cm đến hơn 1m , và cảm biến này tương đối không nhạy cảm với màu sắc và bản chất của vật thể phản xạ Tín hiệu nhận được từ cảm biến này cũng là Analog và nó được đưa về tín hiệu số để xử lý thông qua bộ biến đổi A/D Trong khoảng từ 10cm đến 1m thì giá trị điện áp thu được từ cảm biến ( sau khi biến đổi A/D là từ khoảng 128 đến 10 ) không tuyến tính với khoảng cách , quan hệ giữa điện áp và khoảng cách là một đường cong , và điện áp tỉ lệ nghịch với khoảng cách ( tức là khi khoảng cách xa thì điện áp thu được nhỏ và ngược lại )
Một số thông số của Robot và động cơ :
Đường kính bánh xe : 44mm Tốc độ của Robot : trong luận văn này Robot được điều khiển chạy với 5 vận tốc khác nhau là : 20cm/s ; 10cm/s ; 6.8cm/s ; 5cm/s và 4cm/s
Hai động cơ được dùng để điều khiển Robot là 2 động cơ bước đơn cực gồm 4 cuộn dây điều khiển , mỗi cuộn có điện trở 100Ω.Độ dài mỗi bước là 7,5 độ Nguồn cấp cho 2 động cơ là nguồn 24VDC , suy ra dòng qua mỗi cuộn dây là 24/100=0.24A=240mA Motor được điều khiển ở chế độ điều khiển nửa bước
Cơ cấu truyền động gồm 2 bánh răng có tỉ lệ giảm tốc là 18/68 Điều này có nghĩa là Moment của bánh xe tăng lên 68/18=3,8 lần
7.1.2 Ứng dụng mạng nuôi tiến và giải thuật truyền lùi để điều khiển tốc độ của Robot :
Trong luận văn , ý tưởng của chúng em là điều khiển Robot sao cho khi Robot còn cách xa đích cần đến thì Robot phải di chuyển với tốc độ nhanh và tốc độ của Robot sẽ giảm dần và dừng lại khi đến đích
Để thay đổi tốc độ của động cơ bước thì ta phải thay đổi tần số xung kích cho mỗi cuộn dây ; tần số xung kích lớn thì thì tốc độ của động cơ lớn và ngược lại ( nhưng tần số xung kích quá lớn thì các cuộn dây stato và phần quay của roto không đáp ứng kịp dễ dẫn đến sót bước và thậm chí motor không xoay được ) .Hay nói cách khác , thay đổi chu kì của xung kích sẽ làm thay đổi tốc độ của motor
Trang 4Dựa trên ý tưởng đó , chúng em xây dựng một mạng nuôi tiến 3 lớp gồm có :
4 Neuron lớp đầu vào , 6 Neuron ở lớp ẩn và 1 Neuron ở lớp đầu ra
Mô hình của mạng được cho như sau :
y(k+1) là đầu ra của mạng tại thời điểm k+1 , đây là đại lượng đặc trưng cho chu kì xung kích cho các cuộn dây ( hay tương ứng với tốc độ quay của motor ) ; y(k) và y(k-1) là đầu ra của mạng tại thời điểm k và k-1 , các đầu ra này được hồi tiếp để trở thành các đầu vào của mạng ; u(k) và u(k-1) là các đầu vào tại thời điểm k và k-1 , các giá trị đầu vào này
được lấy từ cảm biến đo tầm
Huấn luyện cho mạng Neuron : trong luận văn này , chúng em sử dụng giải
thuật học truyền lùi để huấn luyện ,cập nhật trọng số cho mạng nói trên Để mạng có thể hội tụ thì các giá trị đầu vào , đầu ra và trọng số kết nối phải ở trong phạm vi các giá trị rất nhỏ , thông thường các giá trị này thuộc đoạn [-1,+1]
Trong đó :
y(k) y(k-1)
u(k) u(k-1)
y(k+1)
11
2w
12
2w
13 2
w
14
2w
15 2
w
16 2
w
11
1w
64 1
w
Trang 5Vì điện áp lấy từ cảm biến khoảng cách có giá trị từ 10 đến 128 nên ta phải chia giá trị này cho một hệ số tỷ lệ sao cho các giá trị đầu vào thuộc khoảng [ 1,+1 ] để đảm bảo đầu ra của mạng là hội tụ Ở đây chúng em chọn hệ số là 1/200 ,lúc này giá trị đầu vào thay đổi từ 0,05 đến 0,64
Các bước huấn luyện được thực hiện như sau :
Ban đầu , trọng số kết nối giữa các Neuron và giá trị ngưỡng được lấy ngẫu nhiên trong khoảng [-1;+1]
Vì không xác định được hàm truyền giữa khoảng cách của Robot ( so với đích đến ) và chu kì xung kích ( hay tốc độ của Robot ) cho cuộn dây của motor nên ta không thể biết chính xác chu kì xung kích tương ứng với khoảng cách Do đó ta dùng một mạng Neuron để nhận dạng hàm truyền của mô hình này Đầu vào là khoảng cách của Robot so với đích đến và đầu ra mong muốn đặc trưng cho tốc độ của Robot được chọn để huấn luyện cập nhật trọng số kết nối như sau :
Đầu vào :0.00 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 Đầu ra tương ứng : 0.1 0.1 0.1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 ( đầu ra mong muốn )
Hàm tác động của các Neuron ở lớp ẩn được chọn là hàm Hyperbolic tangent có công thức như sau :
a( f ) = e
ff − e −− ff e
+ e
Hàm tác động của Neuron đầu ra là hàm tuyến tính có dạng :
a( f ) = f với f là hàm tổng hợp của Neuron tương ứng
Từ đầu vào của mạng u(k) ta sẽ tính được đầu ra của mạng tương ứng y(k+1) , sai số giữa đầu ra của mạng và đầu ra mong muốn được dùng để cập
trọng số theo công thức của giải thuật học truyền lùi ( Giải thuật học truyền lùi đã
trình bày trong chương 2 ) Quá trình huấn luyện sẽ kết thúc khi đầu ra của mạng
bằng đầu ra mong muốn hay sai số giữa chúng rất nhỏ có thể chấp nhận được Sau khi quá trình huấn luyện kết thúc , mạng Neuron lúc này xấp xỉ hàm truyền giữa khoảng cách và tốc độ của Robot Nghĩa là lúc này ứng với một đầu
Trang 6vào ( là khoảng cách của Robot so với đích ) qua mạng Neuron ta sẽ có được đầu
ra của mạng là tốc độ của Robot tương ứng
Xây dựng mạng Neuron để điều khiển hành vi của Robot :
Chúng ta cũng có thể dùng 1 mạng Neuron để điều khiển hành vi của Robot như chạy thẳng tới ,rẽ trái ,rẽ phải Vì hoạt động của Robot là bám ánh sáng nên
ta có thể xây dựng một mạng Neuron như sau : mạng Neuron gồm có 3 lớp ; lớp đầu vào có 6 Neuron , lớp ẩn có 10 Neuron và lớp đầu ra có 2 Neuron như được mô tả ở hình sau :
với ul(k) , ul(k-1) là đại lượng đặc trưng cho cảm biến quang bên trái tại thời điểm k và k-1 ; ur(k) , ur(k-1) là đại lượng đặc trưng cho cảm biến quang bên phải tại thời điểm k và k-1 ; yl(k+1) , yl(k) là đầu ra của mạng tại thời điểm (k+1) và k Đây là đại
lượng điều khiển Robot rẽ trái ; yr(k+1) , yr(k) là đầu ra của mạng tại thời điểm (k+1) và k Đây là đại
lượng điều khiển Robot rẽ phải Như đã nói ở trên , để mạng dễ hội tụ thì đầu vào và các trọng số của mạng thường được chọn trong khoảng [-1;+1] Vì vậy các đại lượng ul(k) và ur(k) chính là các giá trị của cảm biến quang bên trái và cảm biến quang bên phải nhưng được chia đi 250 lần để đảm bảo ul(k) và ur(k) thuộc khoảng [-1,+1] Đầu ra của mạng yl(k+1) , yr(k+1) chỉ có giá trị là 0 hoặc 1
Hàm tác động của các Neuron ở lớp ẩn được chọn như sau :
a( f ) = e
ff − e −− ff e
+ e
Trang 7Và hàm tác động của các Neuron đầu ra là hàm có dạng :
a( f ) = 10 Nếu f >= 0Nếu f < 0
với f là hàm tổng hợp của Neuron tương ứng Mạng được huấn luyện dùng giải thuật học truyền lùi với các trọng số ban đầu được chọn ngẫu nhiên trong khoảng [-1;+1] Đầu ra mong muốn của mạng được xác định như sau :
1 Nếu ur(k) – ul(k)>= 0 y d l(k +1) =0 Ngược lại
1 Nếu ul(k) – ur(k)>= 0
y d r(k +1) =0 Ngược lại
Sai số giữa đầu ra thật sự của mạng và đầu ra mong muốn sẽ được hồi tiếp cập nhật trọng số cho mạng và quá trình huấn luyện sẽ kết thúc khi đầu ra của mạng xấp xỉ đầu ra mong muốn
Sau khi hoàn thành quá trình huấn luyện , đầu ra thực sự của mạng sẽ quyết định hành vi của Robot , và hành vi của Robot được qui định như sau : khi ul(k+1)
= ur(k+1) thì Robot sẽ chạy thẳng ; khi ul(k+1)=1 và ur(k+1)=0 thì Robot sẽ rẽ trái ; và ngược lại khi ur(k+1)=1 và ul(k+1)=0 thì Robot sẽ rẽ phải
7.2 Thiết kế mạch vi xử lý điều khiển cho Robot :
7.2.1 Các thành phần chính của mạch vi xử lý :
• Vi xử lý AT89C51
• RAM ngoài lưu trữ dữ liệu
• Bộ biến đổi A/D 8 bit
• Khối hiển thị
• Khối truyền thông nối tiếp MAX_232
• Khối mạch công suất điều khiển 2 động cơ bước
• Khối mạch RESET
Trang 8Sơ đồ mạch chi tiết được trình bày ở phần phụ lục
7.2.2 Sơ lược về các linh kiện được sử dụng trong luận văn :
1 Bộ đệm darlington ULN2803 :
Bộ đệm ULN 2803 có chứa 8 tầng đệm với diode bảo vệ đã được tích hợp ,các tầng này có khả năng cung cấp dòng ngõ ra lên đến 500mA Điều đáng lưu ý là ở đây mặc dù vi mạch làm việc như một bộ đảo nhưng mà tải lại được đấu với nguồn nuôi dương của lối ra bộ đệm ,và vì thế khi lối vào ở mức High thì vẫn có dòng đi qua tải
Dưới đây là sơ đồ mạch của một tầng đệm trong số 8 tầng đệm của một bộ đệm ULN-2803 :
Đây là sơ đồ một tầng đệm được cung cấp bởi :
Computer Automation Technology, Inc
Fort Lauderdale, Florida (954) 978-6171
Như trên sơ đồ được cung cấp ,ta không thấy có diode bảo vệ Tuy nhiên trong nhiều tài liệu khác lại mô tả là diode bảo vệ đã được tích hợp ,tuy nhiên nếu không chắc bộ đệm ta đang có trong tay đã có diode bảo vệ chưa thì ta vẫn có thể thêm vào một diode bảo vệ ở bên ngoài và nối nó lên nguồn dương Trong luận văn IC ULN-2803 được dùng để khuếch đại dòng điều khiển 2 motor bước
Trang 92 IC giải mã địa chỉ 74LS138 (phân kênh 3 ->8) :
IC này được dùng để chọn địa chỉ cho RAM ngoài , khối hiển thị LED , khối công suất và bộ biến đổi A/D
Mỗi bộ địa chỉ 3 bit sẽ cho 1 đường ra ở mức thấp, tất cả các chân khác vẫn ở mức cao IC này có 3 chân điều khiển Khi chân G2A và G2B đều ở mức cao thì tất cả chân ra đều ở mức cao Khi chân G1 ở mức thấp, tất cả các chân ra cũng ở mức cao Do đó để IC hoạt động, ta phải giữ hai chân G2A và G2B đều ở mức thấp và chân G1 ở mức cao
Sơ đồ chân linh kiện :
Bảng chân lý :
INPUTS
G1 G2A(B) C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
138 LS 74
1 2 3
6
4 5
15 14 13 12 11 10 9 7
A B C
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
Trang 101 0 1 0 0 1 1 1 1 0 1 1 1
3 IC biến đổi A/D 8 bit ADC 0809 :
ADC 0809 là một bộ biến đổi A/D tác động nhanh, các ngõ ra data song song, tương thích TTL, có 8 kênh biến đổi làm việc hoàn toàn độc lập nhau Qua một ngõ vào điều khiển OE, các ngõ ra có thể chuyển sang trạng thái điện trở cao, và nhờ thế mà vi mạch ADC 0809 có thể được đệm vào một Bus dữ liệu Các ngõ vào Analog được so sánh với GND, sự tiêu thụ dòng điện của vi mạch không đáng kể (chỉ cỡ 300µA), thời gian biến đổi cỡ 100µs Các thông số kỹ thuật của bộ biến đổi ADC 0809 được kể ra như sau :
Không cần đòi hỏi điều chỉnh điểm 0 Quét động 8 kênh bằng logic địa chỉ
Dải tín hiệu lối vào Analog khi điện áp nuôi là +5V Tất cả các tín hiệu tương thích TTL
Độ phân giải: 8 bit
Trang 11Thời gian biến đổi 100µs Dòng điện tiêu thụ (bình thường): 0.3 mA Chức năng các chân của vi mạch:
IN0->IN7: 8 ngõ vào Analog tầm 0-> 5V ALE: tích cực mức 1, chốt địa chỉ chọn kênh D0->D7: 8 ngõ ra data, mức TTL
START: tích cực mức 1, khởi động bộ chuyển đổi EOC: kết thúc chuyển đổi
OE: tíh cực mức 1, cho phép xuất data CLK: xung nhịp đồng bộ, fckmax=1280KHz REF(+), REF(-):điện áp tham chiếu đặt thang biến đổi C, B, A: địa chỉ chọn kênh ngõ vào theo mã nhị phân:
C B A Kênh nối vào được kích hoạt
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 Nguồn Vcc=5V và GND
Độ phân giải : N = V in − V REF(−) (Volts)
VREF(+) − VREF(−)
Trang 12TEOCMAX = 8CLK+2µs
TC ≈ 120µs Nguyên tắc làm việc của bộ biến đổi ADC 0809 là: Một xung dương ở chân START kích hoạt sự biến đổi Qua đó các bit địa chỉ A, B và C cũng đồng thời được chốt và xác định kênh cần đổi bởi mức 1 của chân ALE Trong quá trình biến đổi chân ra EOC ở mức thấp, sau 100µs chân EOC lên mức cao và báo hiệu sự kết thúc quá trình biến đổi Sau đó kết quả của quá trình biến đổi sẽ xếp hàng
ở các đường dẫn dữ liệu D0-> D7 Khi EO=1 các đường dẫn có thể được đọc tiếp
Tóm lại để điều khiển hoạt động của bộ biến đổi ADC 0809 ta phải:
Bước1 : Xuất địa chỉ chọn kênh, xuất ALE chốt địa chỉ chọn kênh
Bước 2: Xuất xung START khởi động bộ chuyển đổi
Bước 3: Chờ EOC tích cực mức 1 báo kết thúc chuển đổi(hoặc có thể chờ trong khoảng thời gian Tc=120µs)
Bước 4: Xuất OE tích cực mức 1, đọc data về
Giản đồ thời gian của quá trình biến đổi như sau:
CLK START ALE ADD CBA ANALOG INPUT
OE OEC
TC
T EOC
Ổn định
Trang 134 IC 74LS573 :
• Đặc điểm: Ngõ ra 3 trạng thái, đường điều khiển chung và đường cho phép chung
• Bảng chức năng:
Output Control
Enable
C
Input
D
Output
Q
Vi mạch chốt 8 bit 74LS 573 (Transparent Latches) : có chức năng giữ byte địa chỉ thấp trong phần còn lại của chu kỳ bộ nhớ và chốt dữ liệu khi dùng chung các đường dữ liệu Đồng thời có đặc tính kéo được dòng lớn hơn, ngõ vào 1 bên và ngõ ra 1 bên, nên rất dễ kiểm tra mạch khi thiết kế
5 Bộ Nhớ RAM 6264 :
-Thuật ngữ RAM ( Random Access Memory), thường được dùng để chỉ các bộ nhớ đọc viết
-Bộ nhớ RAM thường được sử dụng trong các thiết bị tính để cất giữ các kết quả trung gian hay kết quả tạm thời trong khi thực hiện các chương trình điều khiển
D0 D1 D2 D3 D4 D5 D6 D7
OE G
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
74573
Trang 14-Từ A0→A12 : Địa chỉ -Chân /CS1, CS2 : Cho phép RAM xuất nhập DATA -Chân /WE = 0 : Cho phép RAM ghi DATA
-Chân /OE = 0 : Cho phép RAM xuất DATA
6 IC MAX 232 :
Mạch tích hợp MAX 232 là IC chuyển đổi tín hiệu theo chuẩn RS 232 sang tín hiệu chuẩn TTL, gồm có hai đường chuyển tín hiệu từ RS 232 sang TTL và hai đường chuyển tín hiệu từ TTL sang RS485 Tín hiệu ở mức cao (-12V chuẩn RS 232) qua IC sẽ cho ra mức cao (+5V chuẩn TTL) tín hiệu ở mức thấp (+12V) qua
IC sẽ cho ra mức thấp (0V) , tương tự như vậy theo hướng ngược lại Ngoài ra ở các chân 1,2,3,4,5 và 6 cần phải nối thêm các tụ để IC đủ khả năng tăng gấp đôi điện áp khi chuyển tín hiệu từ TTL sang RS 232
RAM 6264
10 9 8 7 6 5 4 3 25 24 21 23 2
20
26
27 22
11
12
13
15
16
17
18
19
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12
CS1
CS2
WE
OE
D0 D1 D2 D3 D4 D5 D6 D7
U2
MAX232
1 38 1 11 0
1 3 4 5 2 6
1
2 1
4
R1I N R2I N T1I N T2I N C+
C1 C2 + C2 -V + V
R1OU T R2OU TT1OU T T2OU
T