Vào những năm đầu thế kỷ 20, “robot” là một khái niệm hết sức mới mẻ. Thuật ngữ “robot” xuất hiện đầu tiên trong một vở kịch khi tác giả mô tả về những cỗ máy có khả năng làm việc thay thế con người. Trải qua nhiều giai đoạn phát triển, ngày nay, hình ảnh của những chú robot đã trở nên quen thuộc và gần gũi với chúng ta hơn bao giờ hết.
Gọi là “chú robot”, chúng ta dễ liên tưởng đến những “con người được làm bằng máy”. Điều này chỉ đúng ở giai đoạn sơ khai khi khái niệm robot vừa mới ra đời bởi các nhà phát minh hầu như chỉ hướng đến những robot mang dáng dấp con người. Kết quả là họ cho ra đời những chú robot giống người và có thể thực hiện những động tác đơn giản. Điểm hạn chế của những robot này là không được thông minh và cũng không được ứng dụng nhiều. càng về sau, con người càng trở nên thực tế hơn. Họ không đặt nặng vấn đề hình dáng nữa. họ cần những robot có thể thực thi một công việc rõ rệt. Chính vì vậy, đa số những robot ngày nay chỉ mang hình dạng một bộ phận nào đó của con người hoặc thậm chí hoàn toàn không giống con người.
117 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3235 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế chế tạo robot tự động tham gia cuộc thi sáng tạo robocon 2010, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ảm biến có độ nhạy cao. Cơ sở vật lý của điện trở quang là hiện tượng quang dẫn do kết quả của hiệu ứng quang điện nội: hiện tượng giải phóng hạt tải điện trong vật liệu dưới tác dụng của ánh sáng làm tăng độ dẫn của vật liệu.
Hình 3.12: Sự phụ thuộc của điện trở vào độ rọi sáng.
b.Nguyên tắc hoạt động.
Khi quang trở không nhận được ánh sáng của led phát thì điện trở của quang trở cao, dòng qua quang trở rất nhỏ, điện áp rơi trên quang trở lớn.
Khi quang trở nhận được ánh sáng do led phát ra thì điện trở của quang trở giảm, dòng qua quang trở lớn điện áp rơi trên đó rất nhỏ.
c.Mạch cảm biến dùng quang trở điển hình.
Hình 3.13: Mạch quang trở điển hình.
Nguyên tắc hoạt động của mạch.
Trước hết ta điều chỉnh biến trở VR để tạo điện áp chuẩn so sánh.
Khi quang trở không nhận được ánh sáng (hay nhận dược rất ít ánh sáng) do Led phát phát ra, tức là không gặp vạch trắng thì điện trở của quang trở lớn nên dòng điện qua quang trở là nhỏ do đó điện áp tại chân 2 là lớn U2 > U3 nên đầu ra của LM324 là mức “0” Ura = 0V, đồng thời đầu ra của LM324 được đưa vào VĐK do đo đầu vào của VĐK lúc này là 0V.
Khi quang trở nhận được ánh sáng do Led phát phát ra thì điện trở của quang trở giảm do đó dòng điện qua quang trở lớn nên điện áp đặt vào chân 2 nhỏ U2 < U3 nên đầu ra của LM324 là “1” khi đó đầu vào VĐK là 5V.
Mạch sử dụng quang trở đơn giản, dễ điều chỉnh, giá thành thấp nhưng cũng có nhược điểm đó là quang trở rất nhạy và phụ thuộc vào ánh sáng môi trường do đó sử dụng quang trở cần phải che chắn tốt, mặt khác đặc tính của quang trở không phải phụ thuộc tuyến tính vào cường độ sáng mà là một đường phi tuyến nên có những điểm làm việc ta rất khó có thể chỉnh được độ nhạy của quang trở để phân biệt được các màu.
3.2.1.2.Mạch cảm biến dùng Led thu phát hồng ngoại.
Hình 3.14: Hình dáng, cấu tạo LED Thu, Phát.
a.Mạch cảm biến hồng ngoại phát thẳng.
Trong cặp thu phát hồng ngoại (IR) này: một linh kiện phát hồng ngoại (IR emitter (IRE)) và một linh kiện nhận (IR receiver (IRS)) tạo thành 1 cặp cảm biến sensor. Led thu là loại phản quang, nghĩa là chỉ nhận được ánh sáng hồng ngoại của Led phát khi ánh sáng đó được phản xạ bởi một vật chắn sáng. Linh kiện phát sẽ tạo tia hồng ngoại và sau khi phản xạ sẽ truyền tới linh kiện nhận.
Hình 3.15: Nguyên lý thu phát của thu phát hồng ngoại.
Dòng điện đi qua linh kiện thu sẽ tỉ lệ với cường độ năng lượng của tia hồng ngoại mà nó nhận được.
Hình 3.16: Sự phụ thuộc của dòng điện vào cường độ tia hồng ngoại.
Trong mạch thu phát thì led phát và led nhận được nối mạch theo sơ đồ hình dưới đây, trong đó:
Hình 3.17: Sơ đồ nguyên lý của cặp thu phát hồng ngoại.
Chân TX là chân cấp mass, nếu cấp thẳng mass vào chân này thì ta sẽ có mạch thu phát hồng ngoại phát thẳng, còn nếu chân TX được cấp bởi bộ dao động với tần số thì ta có mạch phát hồng ngoại điều biến.
Điểm IRSO là điểm phân áp của R9, VR1 và led nhận hồng ngoại (IRS1), dòng sẽ đi qua linh kiện phát và nó sẽ phát ra tia hồng ngoại. Nếu có 1 vật phản xạ mầu trắng thì năng lượng hồng ngoại sẽ phản hồi lại, IRS1 nhận được ánh sáng hồng ngoại do Led phát phát ra, khi đó điện trở của Led thu sẽ giảm và tạo một dòng cao hơn đi qua IRS1, do đó điện áp trên IRS0 sẽ hạ xuống. Nếu vật phản xạ có mầu đen, hoặc mầu sẫm hơn thì ngược lại, do đó điện áp trên IRS0 sẽ nâng lên. IRSO là điểm phân áp để kích mở Transistor.
b.IR Sensor phát xung.
Mức điện áp trên đầu ra của sensor IR không chỉ phụ thuộc vào cường độ ánh sáng phản xạ mà còn bị ảnh hưởng bởi điều kiện ánh sáng môi trường. Trên sân thi đấu có rất nhiều loại đèn với nhiều màu sắc khác nhau do vậy nếu che chắn không cẩn thận thì led thu sẽ nhận được rất nhiều ánh sáng bên ngoài, với những nhiễu của.
môi trường như vậy thì cảm biến sẽ làm việc không chính xác, điều đó sẽ dẫn đến robot hoạt động không như ý muốn.
Để hạn chế sự ảnh hưởng của ánh sáng môi trường, thì bên phát hồng ngoại chỉ cho phát ra 1 tần số nhất định (bước sóng hồng ngoại cố định), rồi điều chỉnh bên thu, chỉ thu được tần số đó (bước sóng đó).
Trong hệ thống sensor IR phát xung thì bên phát được tạo tần số phát bằng NE555 và được đưa vào chân TX.
Như vậy, với những phân tích như ở trên và yêu cầu của cuộc thi năm nay chúng em đã quyết định sử dụng Led thu phát hồng ngoại để thiết kế mạch cảm biến dò đường.
3.2.2.Bố trí cảm biến dò đường.
Trên robot, về nguyên tắc bố trí càng nhiều cảm biến dò đường thì khả năng bám đường càng tốt. Tuy nhiên, trên thực tế ta thường sử dụng 6, hoặc 8 cảm biến, tùy vào đề tài, chất lượng động cơ mà ta bố trí cảm biến. Thường có hai phương pháp bố trí cảm biến.
3.2.2.1.Sử dụng 6 cảm biến xếp thành hàng ngang.
Cách này thích hợp với loại động cơ có khả năng hãm tốt (loại động cơ có hộp giảm tốc), khi quay thường sử dụng quay bằng 1 bánh (1 bánh dừng còn 1 bánh tiến).
Hình 3.18: Bố trí 6 cảm biến theo hàng ngang.
3.2.2.2.Sử dụng 8 cảm biến.
Hình 3.19: Bố trí 8 cảm biến 6 trước 2 sau.
Hoặc theo một đường thẳng như hình vẽ.
Hình 3.20: Bố trí 8 cảm biến theo 1 hàng ngang.
Cách này thích hợp với những loại động cơ có khả năng hãm kém, khi quay thì cho bánh tiến bánh lùi.
3.2.3.Sơ đồ và nguyên lý hoạt động của mạch cảm biến.
Để robot có thể dò đường theo các vạch trắng trên sân thì cần phải có cảm biến để xác định các vạch trên sân, ta sử dụng một dàn gồm 8 cặp thu phát hồng ngoại có sử dụng điều xung để xác định vạch trắng trên sân. Như đã phân tích ở trên để giảm tối đa những ảnh hưởng, nhiễu do môi trường đem lại thì các tín hiệu cảm biến phải được điều chế. Cách điều chế ở đây là tạo ra một tần số để phần phát với tần số đó và ở bên thu muốn thu được tín hiệu thì phải có tần số thu thích hợp với bên phát. Do ta tiến hành điều chế xung phát ra từ phần phát nên trong phần thu ta cũng phải tiến hành lọc và xử lý tín hiệu này.
Phần tử phát (Led phát) trong cặp thu phát hồng ngoại được điều xung để phát ra ánh sáng hồng ngoại với một tần số nhất định. Tần số này được tạo ra từ bộ dao động đa hài dùng NE555 và có thể thay đổi được bằng cách thay đổi giá trị điện trở.
của biến trở mắc giữa chân 6 và chân 7 của NE555 tín hiệu ra ở chân 3 của NE555 được đưa vào đầu vào của IC ULN2003AN, IC ULN 2003AN có tác dụng nâng biên độ của tín hiệu ra, để đảm bảo tín hiệu ra không bị đảo ta lấy phản hồi từ đầu ra của ULN2003 đưa ngược lại vào đầu vào khác. Ở đây tín hiệu đưa ra từ chân số 3 của NE555 (có dạng xung clock) có mức điện áp là 5V còn tín hiệu ra từ chân số 15 của ULN2003AN là 12V.
Ta có sơ đồ nguyên lý của mạch tạo xung Clock cho phần phát của cảm biến như sau:
Hình 3.21: Nguyên lý mạch tạo xung.
Tín hiệu ra khi này (CLK) có dạng xung clock sẽ được đem đi để điều khiển phần phát của cặp thu phát hồng ngoại dò đường.
Hình 3.22: Bộ lọc cảm biến.
Phần thu chính là một photo Diode. Khi gặp vạch trắng cường độ ánh sáng
hồng ngoại phản hồi tới photo Diode lớn, photo Diode dẫn mạnh, tín hiệu thu được khi này sẽ có mức thấp (do phần thu nối với Mass). Tín hiệu thu được ở phần thu được đưa vào một bộ lọc.
Nhìn trên mạch ta thấy chỉ những tín hiệu có tần số bằng với tần số của bộ lọc thì mới có thể đi qua. Tần số đó được tính bằng: f = 1/R.C.
Nguyên lý làm việc của bộ lọc trong mạch như sau:
Khi mà tần số phát và tần số thu không bằng nhau, tín hiệu từ bộ thu không đi được qua tụ lọc vì thế điện áp đầu ra CB1 lúc này đúng bằng với điện áp UCE của T1 (khoảng 0,5V).
Hình 3.23: Nguyên lý mạch so sánh.
Khi tần số tín hiệu phát trùng với bên thu tín hiệu từ bộ thu đi qua được tụ lọc làm cho T1 dẫn, tín hiệu ra CB1 lúc này được san phẳng nhờ tụ 10uF. Và tùy thuộc vào vị trí cảm biến so với vạch trắng trên sân mà giá trị của CB1 thay đổi từ 0.9V – 1,8V.
Sau khi được lọc tín hiệu cảm biến sẽ được đưa vào so sánh trước khi được đưa vào chân của vi điều khiển.
Sơ đồ nguyên lý hoạt động của cặp thu, phát.
Hình 3.24: Sơ đồ nguyên lý hoạt động của 1 bộ thu phát.
3.2.4. Tính toán công suất cho khối cảm biến.
3.2.4.1. IC tạo xung NE555.
NE555 do hãng CMOS sản xuất, đây là một loại linh kiện khá là phổ biến bây giờ với việc dễ dàng tạo được xung vuông và có thể thay đổi tần số tùy thích, với sơ đồ mạch đơn giản, điều chế được độ rộng xung. Nó được ứng dụng hầu hết vào các mạch tạo xung đóng cắt hay là những mạch dao động khác. Thông số của NE555 như sau:
+ Điện áp đầu vào : 2V - 18V ( Tùy từng loại của 555 : LM555, NE555, NE7555..).
+ Dòng điện cung cấp : 6mA - 15mA.
+ Điện áp logic ở mức cao : 0.5V - 15V.
+ Điện áp logic ở mức thấp : 0.03V - 0.06V.
+ Công suất lớn nhất là : 600mW.
Trong mạch NE555 được cung cấp điện áp 5V, dòng cung cấp lúc này là 6mA.
Vậy công suất tiêu thụ của NE555 trong mạch là: P = U.I = 5.6 = 30( mW).
3.2.4.2.IC LM324.
LM324 là loại IC khuếch đại thuật toán dùng để so sánh tín hiệu của cảm biến đưa về đặt ở chân âm với một điện áp chuẩn đặt ở chân dương. Tín hiệu đầu ra được đưa về chân của vi điều khiển. Thông số của LM324 như sau:
+Điện áp làm việc nhỏ nhất: 3V.
+Điện áp đầu vào cực đại: 32V.
+Dòng điện đầu vào (làm việc) cực đại: 100nA.
+Công suất tiêu thụ của IC này ở 25°C là 1310 mW.
Trong mạch LM324 được cung cấp điện áp 5V, dòng cung cấp lúc này là 50nA
Vậy công suất tiêu thụ của LM324 trong mạch là: P = U.I = 5.50 = 250( nW).
3.2.4.3. IC ULN2003AN.
ULN 2003AN là IC đệm dòng có tác dụng nâng biên độ của tín hiệu ra, để đảm bảo tín hiệu ra không bị đảo, ta lấy phản hồi từ đầu ra của ULN2003 đưa ngược lại vào đầu vào khác. Lúc này tín hiệu ra từ chân số 15 của ULN2003AN là 12V. Thông số của ULN2003Annhuw sau:
+Điện áp làm việc: 5V.
+Điện áp ra cực đại: 50V.
+Điện áp đầu vào cực đại: 30V.
+Dòng điện đầu vào cực đại: 25mA.
+Dòng điện đầu ra cực đại: 500mA.
+Công suất tiêu thụ cực đại: 1W.
Trong mạch ULN2003 được cung cấp điện áp 5V, dòng cung cấp lúc này là 25mA.
Vậy công suất tiêu thụ của ULN2003 trong mạch là: P = U.I = 5.25 = 125( mW).
3.2.4.4. Led thu phát hồng ngoại.
Trong cặp thu phát hồng ngoại (IR): một linh kiện phát hồng ngoại (IR emitter (IRE)) và một linh kiện nhận (IR receiver (IRS)) tạo thành 1 cặp cảm biến sensor. Led thu là loại phản quang, nghĩa là chỉ nhận được ánh sáng hồng ngoại của Led phát khi ánh sáng đó được phản xạ bởi một vật chắn sáng. Linh kiện phát sẽ tạo tia hồng ngoại và sau khi phản xạ sẽ truyền tới linh kiện nhận. Thông số của Led thu phát như sau:
+Điện áp làm việc: 5V.
+Dòng điện đầu vào: 25mA.
Trong mạch Led thu pháp hồng ngoại được cung cấp điện áp 5V, dòng cung cấp lúc này là 25mA. Vậy công suất tiêu thụ của 8 cặp Led thu phát trong mạch là:
P = 2.8U.I = 2.8.5.25 = 2000( mW)=2W.
Như vậy, để đảm bảo việc cung cấp đủ công suất cho khối cảm biến chúng em đã sử dụng 2 nguồn riêng biệt: Một nguồn 12V cung cấp cho cảm biến dò đường Led thu phát hồng ngoại, và một nguồn 5V cung cấp cho các khối sử lý tín hiệu khác.
3.2.5.Công tắc hành trình.
Công tắc hành trình được sử dụng rộng rãi trong robot và trong tự động hóa. Công tắc hành trình được sử dụng để phát hiện các giới hạn chuyển động của các cơ cấu trong robot như giới hạn lên, xuống,…
Công tắc hành trình thường có cấu tạo gồm 3 cực tạo thành hai cặp tiếp điểm 1 thường đóng và 1 thường mở. Công tắc hành trình rất đa dạng và phong phú về cấu tạo và chủng loại. Dưới đây là một số công tắc hành trình phổ biến và hay được sử dụng.
Hình 2.35: Một số loại công tắc hành trình thông dụng.
Để robot làm việc chính xác và linh hoạt thì cảm biến hành trình rất quan trọng nó giúp cho các hoạt động của robot được đúng quỹ đạo đã được lập trình trước.
Nguyên lý của mạch cảm biến hành trình rất đơn giản dễ thực hiện:
Tất cả các cảm biến khi tác động đều ở mức tích cực thấp và được đưa và vi điều khiển.
Hình 3.36: Sơ đồ nối công tắc hành trình.
3.2.6.Cảm biến quang.
Cảm biến quang là một trong những cảm biến công nghiệp hay được sử dụng rất nhiều trong robot cũng như trong tự động hóa.
Ưu điểm khi sử dụng loại cảm biến này đó là độ chính xác, độ ổn định cao, khoảng cách phát hiện lớn, sử dụng đơn giản, nhưng giá thành đắt.
Cảm biến quang trên thị trường có rất nhiều loại phong phú về hình dáng và chủng loại, thích hợp cho nhiều yêu cầu sử dụng khác nhau.
Thông số kĩ thuật của một số loại cảm biến quang thông dụng.
Hình 3.37: các loại cảm biến quang thong dụng.
3.3: KHỐI VI XỬ LÝ.
3.3.1.Chức năng.
Đây chính là khối trung tâm, có chức năng điều hành toàn bộ sự hoạt động của robot, nhờ có vi điều khiển thông minh thì robot mới hoạt động hiệu quả. Các dòng vi điều khiển thường được sử dụng như: Vi điều khiển AVR, vi điều khiển PIC, vi điều khiển 8051...
Trong quá trình tìm hiểu chúng em thấy có một loại vi điều khiển thuộc họ 8051 khá mạnh do hãng Philip sản xuất đó là loại 89V51RD2. Qua phân tích các loại dòng vi điều khiển, chúng em đã lựa chọn vi điều khiển loại 89V51RD2 với các ưu điểm nổi bật so với các loại vi điều khiển khác như:
Dung lượng bộ nhớ lớn hơn: 89V51RD2 có 8Kbyte Flash nội trú bên trong, trong khi đó họ 80C51 chỉ có 4Kbyte. Trong bộ nhớ dữ liệu RAM, 89V51 có vùng RAM mở rộng gồm 768 Byte (00h – 2FFh).
89V51 có 3 bộ Timer/Counter.
Đặc biệt 89V51RD2 được lựa chọn bởi nó có 5 kênh điều xung từ (P1.3 đến P1.7) sử dụng rất đơn giản và linh hoạt cho việc điều xung (rất thuận tiện cho mạch điều khiển động cơ sử dụng phương pháp PWM để điều chỉnh tốc độ động cơ.
3.3.2.Giới thiệu VĐK 89V51RD2.
3.3.2.1. Các tính năng chính của 89V51RD2.
Sử dụng CPU 80C51.
Hoạt động ở 5VDC trong tầm tần số dao động đến 40MHZ.
64kB ISP.
SPI (Serial Peripheral Interface) và UART.
5 PCA với chức năng PWM/ capture/ compare 16 bits.
4 cổng xuất nhập.
3 Timers/Couters 16 bits.
Watchdog Timer có thể lập trình được.
nguồn ngắt.
2 thanh ghi DPTR.
Tương thích mức logic TTL và CMOS.
Phát hiện nguồn yếu (Brownout Detect).
Chế độ Low – Power, Power down, Idle.
Có 3 loại: DIP 40, PLC 44 và TQFP44.
Sơ đồ khối của P89V51RD2.
Hình 3.38: Sơ đồ khối của P89V51RD2.
3.3.2.2.Sơ đồ chức năng chân của 89V51RD2.
Hình 3.39: Sơ đồ chân của 89V51RD2BN.
Port 0 (P0.0 – P0.7): Chân 39 – chân 32:
Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu được sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL. Khi mức 1 được viết vào các chân của port 0, các chân này có thể được dùng như là các ngõ nhập tổng trở cao.
Port 0 có thể được định cấu hình để hợp kênh giữa Bus địa chỉ và Bus dữ liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương trình ngoài. Ở chế độ này, P0 có các điện trở pullup bên trong.
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash, và xuất ra các byte code khi kiểm tra chương trình. Cần có các điện trở pullup bên ngoài khi thực hiện việc kiểm tra chương trình.
Port 1 (P1.0 – P1.7): Chân 1 – chân 8:
Port 1 là một port xuất/ nhập song hướng 8 bit có điện trở pullup bên trong. Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập TTL. Khi mức 1 được viết vào các chân của port 1, chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ nhập. Nếu các chân của port 1 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do các điện trở pullup bên trong.
P1.0 (chân 1) – T2: Ngõ vào Counter cho Timer/Counter 2 hoặc ngõ ra cho Counter/Timer 2.
P1.1 (chân 2) – T2EX: Điều khiển hướng và khởi sự chức năng Capture cho Timer/Counter 2.
P1.2 (chân 3) – ECI: Ngõ vào xung nhịp. Tín hiệu này là nguồn xung nhịp ngoài cho chức năng PCA.
P1.3 (chân 4) – CEX0: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 0.
P1.4 (chân 5) – CEX1: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 1.
: Chọn cổng phụ vào cho SPI.
P1.5 (chân 6) – CEX2: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 2.
MOSI: Phục vụ SPI.
P1.6 (chân 7) – CEX3: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 3.
MISO: Phục vụ SPI
P1.7 (chân 8) – CEX4: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 4.
SCK: Phục vụ SPI.
Port 2 (P2.0 – P2.7): Chân 21 – chân 28:
Port 2 là một port xuất ngập song hướng 8 bit có các điện trở pullup bên trong.
Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong.
Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình ngoài và khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX @DPTR). Trong ứng dụng này, nó dùng các điện trở pullup nội “mạnh” khi phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 8 bit (MOVX @RI). Port 2 phát ra các nội dung của thanh ghi chức năng đặc biệt P2. Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển lập trình và kiểm tra Flash.
Port 3 (P3.0 – P3.7): Chân 10 – chân 17:
Port 3 là một port xuất ngập song hướng 8 bit có các điện trở pullup bên trong.
Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ TTL. Khi các mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở.
pullup nội và có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 3 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong.
Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê dưới đây:
Chân
Ký hiệu
Chức năng chuyển đổi
P3.0
RxD
Nhận tín hiệu kiểu nối tiếp
P3.1
TxD
Truyền tín hiệu kiểu nối tiếp
P3.2
/INT0
Ngắt ngoài 0
P3.3
/INT1
Ngắt ngoài 1
P3.4
T0
Chân vào 0 của bộ Timer/Counter 0
P3.5
T1
Chân vào 1 của bộ Timer/ Counter 1
P3.6
/WR
Ghi dữ liệu vào bộ nhớ ngoài
P3.7
/RD
Đọc dữ liệu từ bộ nhớ ngoài
Bảng 3.1. Chức năng cổng P3.
XTAL (XTAL 1 – XTAL 2): Chân 19 – chân 18:
XTALL 1 (chân 19): Là ngõ vào của một bộ khuếch đại dao động nghịch và là ngõ vào của mạch tạo dao động bên trong cho 89V51.
XTALL 2 (chân 18): Là ngõ ra của bộ khuếch đại dao động nghịch.
Hình3.40: Các kết nối của bộ tạo dao động.
VDD: Chân 40.
VSS: Chân 20: Chân nối Mass.
: Chân 29: Cho phép dùng bộ nhớ chương trình ngoài. Khi MCU sử dụng bộ nhớ chương trình trong chip, không tích cực. Khi sử dụng bộ nhớ chương trình ngoài, thường tích cực 2 lần trong mỗi chu kì máy. Sự chuyển mức cao sang thấp trên cưỡng bức từ bên ngoài khi ngõ vào RST đang ở mức cao trong 10 chu kì máy sẽ đưa MCU vào chế độ lập trình host từ bên ngoài.
RST: Chân 9 :Khi nguồn dao động đang hoạt động, mức cao trên chân RST trong ít nhất 2 chu kì máy sẽ Reset lại hệ thống. Nếu chân chuyển mức thaasptrong khi RST vẫn còn ở mức cao, MCU sẽ vào chế độ lập trình host từ bên ngoài, nếu không sẽ hoạt động bình thường.
Hình 3.41: Sơ đồ mạch Reset.
: Chân 31: Cho phép sử dụng bộ nhớ chương trình ngoài.
= ‘0’ thì cho phép sử dụng bộ nhớ chương trình ngoài.
= ‘1’ Thì cho phép sử dụng bộ nhớ trong chip.
: Chân 30: ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ ngoài. Chân này cũng là ngõ nhập xung lập trình () khi lập trình Flash.
Khi hoạt động bình thường. ALE được phát với một tỷ lệ không đổi là 1/6 tần số bộ dao động và có thể được dùng cho các mục đích timing và clocking bên ngoài. Tuy nhiên lưu ý rằng một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài. Nếu muốn, hoạt động ALE có thể cấm được bằng cách set bit 0 của bộ SFR tại địa chỉ 8Eh. Nếu bit này được set, ALE chỉ được hoạt động khi có một lệnh MOVX hoặc MOVC. Ngược lại, chân này được kéo lên cao bởi một điện trở pullup “nhẹ”. Việc set bit cấm ALE không có tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngoài. Ngoài ra, chân này còn được dùng để đưa vào chế độ lập trình Flash.
3.3.2.3.Tổ chức không gian bộ nhớ của 89V51RD2.
MCU 89V51RD2 có 2 bộ nhớ riêng biệt: Bộ nhớ chương trình (ROM, Flash) và bộ nhớ dữ liệu (RAM).
- Bộ nhớ chương trình Flash.
Có 2 vùng nhớ nội flash trong 89V51RD2. Block 0 có 64KB được tổ chức thành 512 khu vực chứa 128 bytes. Block 1 chứa đường truyền ISP/IAP và cho phép 8Kbyte đầu tiên của nó được sử dụng để chứa mã bộ nhớ. Nó được kích hoạt khi chọn kết hợp bit Reset mềm (SWR) ở FCF.1 và bank lựa chọn bit (BSEL) ở FCF.0. Sự kết hợp của các bit này và nguồn của vùng nhớ được chỉ dẫn ở bảng sau:
SWR (FCF.1)
BSEL (FCF.0)
Địa chỉ từ 0000h đến 1FFFh
Địa chỉ trên 1FFFh
0
0
Bootcode (trong Block 1)
Sử dụng mã (trong blok 0)
0
1
Sử dụng mã (trong Block 0)
1
0
1
1
Bảng 3.2. Bộ nhớ Flash.
Vậy, không gian nhớ cực đại của bộ nhớ này chiếm 64Kbyte, được định địa chỉ từ 0000h đến FFFFh. Trong đó, có 8Kbyte Flash nội trú bên trong nó và đươc định địa chỉ từ 0000h đến 1FFFh (khác với 80C51, chỉ có 4Kbyte Flash nội trú bên trong).
Hình 3.42: cấu trúc bộ nhớ chương trình.
- Bộ nhớ dữ liệu Ram.
Bộ nhớ dữ liệu RAM nội trú có 1024Bytes. Bộ nhớ dữ liệu ngoại trú của 89V51 có thể lên tới 64Kbyte. Cấu trúc của bộ nhớ dữ liệu nội trú gồm có 4 phần:
- Vùng nhớ 128 Byte thấp (00h – 7Fh): có thể truy cập bằng địa chỉ trực tiếp hoặc gián tiếp.
- Vùng nhớ 128 Byte cao (80h – FFh): có thể truy cập bằng địa chỉ gián tiếp.
- Các thanh ghi có chức năng đặc biệt (80h – FFh): Chỉ có thể truy cập bằng địa chỉ trực tiếp.
- Vùng RAM mở rộng có 768 Byte (00h – 2FFh): được truy cập bằng địa chỉ gián tiếp bởi lệnh truy xuất dữ liệu ngoài MOVX và xóa bit EXTRAM (trong thanh ghi AUXR).(chú ý: vùng này không có ở 80C51 hay 89C51).
Hình 3.43: Cấu trúc bộ nhớ dữ liệu nội, ngoại trú.
3.3.2.4.Các chức năng đặc biệt khác của 89V51RD2.
Hình 3.44: timer và counter
Chức năng nổi bật của P89V51RD2 là có 5 kênh PCA, các thanh ghi chịu tác động: CMOD, CCON, CCAPMn.
Hình 3.45: Các thanh ghi.
Hệ thống các chức năng PCA. Ta sẽ lợi dụng chức năng PWM của PCA để điều xung. PCA là Timer 16bit đặc biệt, gồm 5 modul. Mỗi modul có thể lập trình để vận hành 1 trong 4 chế độ: capture cạnh lên/xuống, timer, ngõ ra tốc độ cao, hay.
PWM. Timer PCA có thể vận hành nhờ các nguồn xung nhịp: ½OscFreq ; 1/6OscFreq; tốc độ tràn của timer 0; hay từ ngõ vào trên chân ECI(P1.2). Nguồn xung
nhịp của PCA được chọn nhờ các bit CPS1-CPS0 trên thanh ghi đa dụng CMOD. Thanh ghi chức năng đặc biệt CMOD:
Đây là thanh ghi không thể can thiệp vào từng bit.
Bit
Kí hiệu
Chức năng
7
CIDL
Điều khiển trạng thái rỗi của Counter PCA. CIDL=0 sẽ cho Counter PCA tiếp tục hoạt động bất chấp đang trong trạng thái rỗi. CIDL=1 sẽ lập trình cho nó không hoạt động trong trạng thái rỗi.
6
WDTE
Cho phép Watchdog Timer trên modul 4.
5-3
-
Chưa được khai báo
2-1
CPS1-CPSO
Lựa chọn nguồn xung đếm cho PCA (Xem bảng dưới)
0
ECF
Cho phép ngắt khi tràn Counter PCA.
Bảng 3.3: Các bit định nghĩa cho thanh ghi CMOD.
CPS1
CPSO
Chọn xung nhịp cho PCA
0
0
Fosc/6
0
1
Fosc/2
1
0
Tràn từ Timer 0
1
1
Xung nhịp ngoài (ECI) Tốc độ lớn nhất Fosc/4
Bảng 3.4: Quy định cách chọn xung nhịp cho PCA.
3.3.2.5.Thanh ghi chức năng đặc biệt CCON.
Có thể can thiệp vào từng bit.
Bít
Kí hiệu
Chức năng
7
CF
Cờ đếm tràn PAC
6
CR
Bit điều khiển chạy counter PCA
5
-
Chưa định nghĩa
4
CCF4
Cờ ngắt modul PCA 4
3
CCF3
Cờ ngắt modul PCA 3
2
CCF2
Cờ ngắt modul PCA 2
1
CCF1
Cờ ngắt modul PCA 1
0
CCF0
Cờ ngắt modul PCA 0
Bảng 3.5: Các bit định nghĩa của thanh ghi CCON.
Thanh ghi chức năng so sánh/capture cho các modul PCA:CCAPMn.
Không can thiệp được vào từng bit.
Bit
Kí hiệu
Chức năng
7
-
Chưa định nghĩa
6
ECOMN
Cho phép bộ so sánh
5
CAPPN
Cho phép capture cạnh lên
4
CAPNN
Cho phép capture cạnh xuống
3
MATN
Cho phép kết nối với cờ ngắt CCFn ở thanh ghi CCON
2
TOGN
Lật mức ngõ ra, tác động đến chân CEXn
1
PWMN
Chế độ điều xung, tác động đến chân CEXn
0
EXCFN
Cho phép ngắt CCFn
Bảng 3.6: các bit định nghĩa thanh ghi CCAPMn.
3.3.3.Sơ đồ nguyên lý.
Trong khối vi xử lý ngoài chíp vi điều khiển ra còn có các mạch hỗ trợ như: mạch reset, mạch dao động thạch anh, mạch nạp chương trình...
Để nạp chương trình hay thay đổi chương trình cho Vi điều khiển thực hiện một công việc nào đấy thì ta cần viết chương trình cho chip, và nạp chương trình cho chip thông qua 2 chân giao tiếp nối tiếp P3.0 (RXD) và P3.1(TXD). Sử dụng phần mềm nạp Flash Magic và mạch nạp theo nguyên lý sau:
Hình 3.46: Sơ đồ nguyên lý các khối dao động, nạp, Reset.
Hình 3.47: Sơ đồ nguyên lý mạch nạp
Do khối vi xử lý cần một nguồn cung cấp thật ổn định trong suốt quá trình thi đấu, nên chúng em đã thiết kế riêng nguồn 5V cung cấp cho khối này.
3.4: KHỐI LỰA CHỌN CHƯƠNG TRÌNH(CHỌN CHIẾN THUẬT).
Trong robot nút nhấn để lựa chọn chiến thuật là rất quan trọng và cần thiết. Ta có thể nối trực tiếp các chân của vi điều khiển với các nút ấn, với cách này mỗi chân của vi điều khiển sẽ được kết nối với 1 nút nhấn. Đây là cách đơn giản nhất, dễ thực hiện nhưng có một nhược điểm đó là tốn chân vi điều khiển. Một cách khác nữa ta có thể sử dụng đó là dùng ma trận bàn phím. Ở đây ta sử dụng tới MUX 8:1 để mở rộng số nút nhấn.
Sơ đồ chân 74151 Sơ đồ nguyên lý của 74151.
Hình 3.48:Cấu tạo và nguyên lý hoạt động của 74HC151 (MUX 8:1).
Các chân chức năng của 74151:
+ I0(4), I1(3),……I7(12) là các chân dữ liệu ngõ vào.
+ S(chân 7): chân Enable, tích cực mức thấp.
+ Y(5), W(6): ngõ ra, Y = Dx; W = /Dx (với Dx là ngõ vào được chọn nối với ngõ ra).
+ A(11), B(10), C(9) : Các chân chọn Dx nối với Y,W.
Với bảng chân trị sau:
Inputs
outputs
Select
S(7)
Y
W=(/Y)
C
B
A
X
L
L
L
L
H
H
H
H
X
L
L
H
H
L
L
H
H
X
L
H
L
H
L
H
L
H
H
L
L
L
L
L
L
L
L
L
I0
I1
I2
I3
I4
I5
I6
I7
H
/I0
/I1
/I2
/I3
/I4
/I5
/I6
/I7
Bảng 3.7: Chân lý của IC 74151.
Sơ đồ nguyên lý của mạch nút nhấn như hình vẽ.
Hình 3.49: Sơ đồ nguyên lý mạch nút nhấn.
3.5: KHỐI NGUỒN.
Khối nguồn có chức năng vô cùng quan trọng nó quyết định hoạt động và sự ổn định của mạch. Muốn mạch hoạt động ổn định thì điều kiện tiên quyết là phải có một bộ nguồn ổn định.
3.5.1.Cấu tạo, chức năng các phần tử trong khối nguồn.
3.5.1.1.IC LM7805.
Sơ đồ chân và sơ đồ kết nối chân của IC 7805:
Hình 3.50: Hình dạng và sơ đồ chân LM7805.
Nguyên lý hoạt động:
Ngõ ra OUT luôn ổn định ở 5V dù điện áp từ nguồn cung cấp thay đổi. Mạch này dùng để bảo vệ những mạch điện chỉ hoạt động ở điện áp 5V (các loại IC thường hoạt động ở điện áp này). Nếu nguồn điện có sự cố đột ngột: điện áp tăng cao thì mạch điện vẫn hoạt động ổn định nhờ có IC 7805 vẫn giữ được điện áp ở ngõ ra OUT 5V không đổi.
Chú ý: điện áp đặt trước IC78xx phải lớn hơn điện áp cần ổn áp từ 1,5 đến 2V.
Tụ điện đóng vai trò ổn định và chống nhiễu cho nguồn. (có thể bỏ hai tụ điện nếu mạch điện không đòi hỏi).
Một số điểm lưu ý khi sử dụng IC LM7805:
Dòng cực đại có thể duy trì 1A.
Dòng đỉnh 2,2A.
Công suất tiêu tán cực đại nếu không dùng tản nhiệt: 2W.
Công suất tiêu tán nếu dùng tản nhiệt đủ lớn: 15W
Ta nên hạn chế áp lối vào để giảm công suất tiêu tán trên tản nhiệt.
Thực tế áp lối ra có thể đạt giá trị nào đó trong khoảng 4,8 – 5,2 V
3.5.1.2.TIP 2955.
Giới thiệu chung:
Để tạo ra dòng điện lớn, ta sử dụng IC đệm dòng TIP 2955 hoặc TIP 3055.
TIP 2955, TIP 3055 thực chất là một Transitor Silicon bổ xung công suất. TIP 2955 là loại PNP, TIP 3055 là loại NPN.
Các đặc trưng của TIP 2955.
Sơ đồ chân, ký hiệu trên mạch:
Hình 3.51. Sơ đồ chân của TIP 2955.
Các thông số của TIP 2955:
Các giá trị cực đại tuyệt đối đánh giá tại nhiệt độ 250C:
Giá trị danh định
Ký hiệu
Giá trị
Đơn vị
Điện áp collector – base (IE=0)
VCBO
-100
V
Điện áp Collector – emitter (IB=0)
VCER
-70
V
Điện áp emitter – base
VEBO
-7
V
Dòng điện collector liên tục
IC
-15
A
Dòng điện base liên tục
IB
-7
A
Công suất ở 250C
P
90
W
Mức nhiệt độ cho phép
Tstg
-65 đến +150
oC
Bảng 3.8: Bảng thông số của TIP 2955
3.5.2.Sơ đồ nguyên lý.
Khối nguồn gồm có nguồn cho mạch điều khiển, nguồn cho cảm biến và nguồn cho mạch động lực, trong đó nguồn cung cấp cho mạch vi điều khiển và nguồn cho mạch động lực được sử dụng độc lập với nhau và được cấp bởi hai nguồn riêng biệt (hai acquy khác nhau).
Hình 3.52:Khối nguồn điều khiển.
Hình 3.53: Khối nguồn động lực
3.5.3.Nguyên lý làm việc.
-Nguồn điều khiển.
Khối nguồn điều khiển sử dụng nguồn 5V. Nguồn 5V cấp cho VĐK và các phần tử của mạch điều khiển được lấy qua IC ổn áp 7805.
Trong mạch nguồn VDD là nguồn 12V được lấy trực tiếp từ Acquy 12V
Công dụng các phần tử trong mạch nguồn:
+7805: tạo ra điện áp ổn định 5VDC.
+Tụ điện có tác dụng san phẳng và ổn định nguồn khi mà điện áp cung cấp có sự thay đổi đột ngột.
+TIP2955 có tác dụng tạo dòng điện làm việc lớn cho mạch: Trong mạch có modul cảm biến, đây là khối tiêu thụ dòng lớn với dàn led siêu sáng. Do vậy chỉ dòng của 7805 sẽ không đủ nên ta phải cần Tip 2955 để đệm dòng.
+Bộ nguồn cấp cho mạch điều khiển được nuôi từ một Acquy 12VDC.
-Nguồn động lực.
Sử dụng nguồn 12VDC và 24VDC, nguồn 12VDC dùng để cấp cho cuộn hút Rơle làm Rơle đóng, cắt. Nguồn 24VDC dùng để cấp cho động cơ hoạt động hai nguồn này được lấy trực tiếp từ hai acquy 12VDC.
3.6: SƠ ĐỒ NGUYÊN LÝ CỦA MẠCH ROBOT.
Hình 3.54: Mạch sơ đồ nguyên lý
PHẦN 4:LẬP TRÌNH ĐIỀU KHIỂN
4.1.LƯU ĐỒ THUẬT TOÁN ĐIỀU KHIỂN ROBOT TỰ ĐỘNG.
Start
Khai báo phần cứng và thiết lập PWM
I
Program2
Start2=0
Start1=0
Program1
II
4.1.1.Lưu đồ chương trình chiến thuật 1.
2
Dừng đc tầng 4
KT led do đường phải
Robot lắc trái
Robot lắc phải
Delay chiến thuật
Lùi robot
End
4.1.2.Lưu đồ thuật toán của chương trình chiến thuật 2.
4.2.CHƯƠNG TRÌNH ĐIỀU KHIỂN.
INCLUDE 89v51RD2.mc
; = = = = = = = = = DINH NGHIA = = = = = = = = = = = =
; = = = = = dong co
motor3 DATA ccap2h ;p1.5
motor2 DATA ccap3h ;p1.6
motor1 DATA ccap4h ;p1.7
; = = = = = nut bam
START EQU P2.0
k1 EQU p2.1
k2 EQU P2.2
k3 EQU P2.3
ctht4 EQU p2.7
ctht_truoc EQU p2.4
sensor2 EQU p2.5
sensor3 EQU p2.6
SENSOR_T EQU P3.7
dao_chieu3 EQU p1.2
dao_chieu2 EQU p3.3
dao_chieu1 EQU p3.5
; = = = = = gia tri dieu xung
pwm_up1 DATA 20h
pwm_up2 DATA 21h
pwm_up3 DATA 22h
PWM1 DATA 23H
PWM2 DATA 24H
PWM3 DATA 25H
PWM4 DATA 26H
; = = = = = = = = = = MAIN = = = = = = = = = = = = = =
MAIN:
ORG 0000H
MOV P2,#0ffH
MOV P1,#0ffH
MOV R1,#00h
;KHAI BAO PWM
MOV CMOD,#0
SETB CR
MOV CCAPM3,#01000010B
MOV CCAPM4,#01000010B
MOV CCAPM2,#01000010B
MOV pwm_up1,#0ffh
MOV pwm_up2,#0FFH
MOV pwm_up3,#0FFH
MOV PWM1,#200
MOV PWM2,#180
MOV PWM3,#170
MOV PWM4,#160
START:
MOV MOTOR1,#00H
MOV MOTOR2,#00H
CLR K1
CLR K2
CLR K3
JNB START,PROGRAM1
SETB K1
CLR K2
CLR K3
JNB START,PROGRAM2
JMP START
; = = = = = = = = = = = chuong trinh = = = = = = = = =
PROGRAM1:
CALL DI_MU
CALL BAT_VACH1
MOV pwm_up1,#150
MOV pwm_up2,#150
MOV PWM1,#100
MOV PWM2,#80
MOV PWM3,#70
MOV PWM4,#60
CALL DAY2
CALL HAM
CALL TRE10MS
CALL DAY3
CALL TRE10MS
CALL HAM1
call tre10ms
call DAY4
;CALL HAM1
CALL HAM1
CALL LAC
CALL TRE10MS
MOV R1,#5
CALL LUI
JMP START
PROGRAM2:
CALL DI_MU
CALL BAT_VACH
call tre10ms
call ham1
call tre10ms
CALL DAY4
call tre10ms
CALL HAM1
call lac
CALL TRE10MS
CALL LUI
JMP START
; = = = = = = = = = = DAY = = = = = = = = = = = = = = =
DAY2:
JB SENSOR2,$
call tre100ms
JB SENSOR2,day2
CALL BAT_VACH
CALL TRE100MS
RET
DAY3:
JB SENSOR3,$
call tre10ms
JB SENSOR3,day3
CALL BAT_VACH
CALL TRE100MS
RET
DAY4:
MOV MOTOR3,#200
JB CTHT4,$
call tre100ms
JB CTHT4,day4
MOV MOTOR3,#0
call tre500ms
RET
; = = = DI MU
DI_MU:
MOV MOTOR1,#0FFH
MOV MOTOR2,#0FFH
JNB P0.2,DI_MU
JNB P0.3,DI_MU
RET
; = = = = == = = = LUI = = = = = = = = = = = = = =
LUI:
CLR DAO_CHIEU1
CLR DAO_CHIEU2
CALL TRE500MS
MOV MOTOR1,#255
MOV MOTOR2,#255
CALL TRE4S
MOV MOTOR1,#0
MOV MOTOR2,#0
SETB DAO_CHIEU1
SETB DAO_CHIEU2
CALL tre100ms
RET
; = = = = = = = = BAT VACH = = = = = = = = = = = = = =
BAT_VACH1:
MOV MOTOR1,PWM_UP1
MOV MOTOR2,PWM_UP2
BEGIN1:
JNB SENSOR_T,EXIT1
;LAN VACH
THUC_HIEN1:
JB P0.3,TH12
MOV MOTOR1,PWM1
JMP TH14
TH12:
JB P0.4,BAT_VACH1
MOV MOTOR2,PWM1
TH13:
JNB P0.2,TH15
MOV MOTOR2,PWM2
JMP BEGIN1
TH14:
JNB P0.5,TH16
MOV MOTOR1,PWM2
JMP BEGIN1
TH15:
JNB P0.1,TH17
MOV MOTOR2,PWM3
JMP BEGIN1
TH16:
JNB P0.6,th18
MOV MOTOR1,PWM3
JMP BEGIN1
TH17:
JNB P0.0,BEGIN1
MOV MOTOR2,PWM4
JMP BEGIN1
TH18:
JNB P0.7,BEGIN1
MOV MOTOR1,PWM4
JMP BEGIN1
EXIT1:
MOV MOTOR1,#0
MOV MOTOR2,#0
RET
BAT_VACH:
MOV MOTOR1,PWM_UP1
MOV MOTOR2,PWM_UP2
BEGIN:
JNB CTHT_TRUOC,EXIT
;LAN VACH
THUC_HIEN:
JB P0.3,TH2
MOV MOTOR1,PWM1
JMP TH4
TH2:
JB P0.4,BAT_VACH
MOV MOTOR2,PWM1
TH3:
JNB P0.2,TH5
MOV MOTOR2,PWM2
JMP BEGIN
TH4:
JNB P0.5,TH6
MOV MOTOR1,PWM2
JMP BEGIN
TH5:
JNB P0.1,TH7
MOV MOTOR2,PWM3
JMP BEGIN
TH6:
JNB P0.6,th8
MOV MOTOR1,PWM3
JMP BEGIN
TH7:
JNB P0.0,BEGIN
MOV MOTOR2,PWM4
JMP BEGIN
TH8:
JNB P0.7,BEGIN
MOV MOTOR1,PWM4
JMP BEGIN
EXIT:
MOV MOTOR1,#0
MOV MOTOR2,#0
RET
; = = = = = = = = = LAC QUA = = = = = = = = = = = = = =
LAC:
MOV R1,#0
JB P0.0,LAC_P
JB P0.1,LAC_P
JB P0.2,LAC_P
JB P0.5,LAC_T
JB P0.6,LAC_T
JB P0.7,LAC_T
JNB P0.4,LAC_P
JNB P0.3,LAC_T
JMP lac_p
LAC_T:
call tre100ms
CLR DAO_CHIEU1
CALL TRE100MS
MOV MOTOR1,#70
MOV MOTOR2,#70
CALL delay
CALL delay
MOV MOTOR1,#0
MOV MOTOR2,#0
SETB DAO_CHIEU1
call tre100ms
LAC_P:
CLR DAO_CHIEU2
CALL TRE100MS
MOV MOTOR2,#70
MOV MOTOR1,#70
CALL delay
CALL delay
MOV MOTOR1,#0
MOV MOTOR2,#0
SETB DAO_CHIEU2
INC R1
CJNE R1,#2,LAC_T
RET
; = = = = = = = = = = = = = HAM = = = = = = = = = = = =
HAM:
CLR DAO_CHIEU1
CLR DAO_CHIEU2
CALL TRE100MS
MOV MOTOR1,#100
MOV MOTOR2,#100
CALL DELAY
CALL DELAY
MOV MOTOR1,#0
MOV MOTOR2,#0
SETB DAO_CHIEU1
SETB DAO_CHIEU2
RET
HAM1:
CLR DAO_CHIEU1
CLR DAO_CHIEU2
CALL TRE100MS
MOV MOTOR1,#100
MOV MOTOR2,#100
CALL TRE500MS
MOV MOTOR1,#0
MOV MOTOR2,#0
SETB DAO_CHIEU1
SETB DAO_CHIEU2
RET
; = = = = = = = = = = DELAY = = = = = = = = = = = = =
TRE4S:
MOV R6,#16
tre4s_1:
call tre100ms
DJNZ R6,tre4s_1
ret
DELAY:
MOV R6,#8
tre800ms_1:
call tre100ms
DJNZ R6,tre800ms_1
ret
TRE500MS:
MOV R6,#4
tre500ms_1:
call tre100ms
DJNZ R6,tre500ms_1
RET
tre100ms:
MOV R5,#255
tre100ms_1:
mov r4,#100
djnz r4,$
DJNZ R5,tre100ms_1
Ret
4.3. PHƯƠNG ÁN XỬ LÝ NHIỄU
4.3.1. Các nguyên nhân cơ bản gây ra nhiễu
4.3.1.1. Nguyên nhân cơ khí:
Nhiễu do cơ khí gây ra chủ yếu do sự thiếu chính xác và độ cứng vững của robot kém mà dẫn đến rung động trong quá trình chuyển động dẫn đến sự sai lệch của cảm biến dò đường tạo nhiễu loạn khi robot bắt vạch, ngoài ra khi sự sai lệch về trọng tâm robot lớn sẽ dẫn đến tải trọng đặt vào 2 động cơ động lực khác nhau làm robot hoạt động khó khăn hơn trong việc đi lại và cắt góc.
4.3.1.2. Nguyên nhân do điện:
- Lỗi do bo mạch:
Trong quá trình bo mạch thường sự đi dây không ngắn ngọn sẽ dẫn đến sự từ hóa trong mạch gây lên sự nhiễu loạn cho mạch vi điều khiển. Ngoài ra cách chọn đường mạch quá nhỏ sẽ dẫn đến yếu dòng cũng là nguyên nhân gây nhiễu. mặt khác trong quá trình bo khi 2 đường mạch nóng và lạnh gần nhau cũng tạo ra sự nhiễu bởi sự rò điện gây lên sụt áp. Mặt khác cách chọn linh kiện và sự tính toán cũng rất quan trọng. thường phần lớn nhiễu gây ra do sự sụt áp bởi sai số lớn trong quá trình tính toán.
- Lỗi do dùng linh kiện sai mục đích:
khi linh kiện dùng sai mục đính cũng gây ra ảnh hưởng về đường đi, chẳng hạn khi ta dùng tụ lắp vàođộng cơ để tăng sự lệch pha làm động cơ chạy nhanh và khỏe hơn đồng thời chống nhiễu dội ngược dòng của điện áp, nhưng khi robot đang chuyển động
+mà dừng lại hoặc cắt góc thì tụsẽ tích điện làm động cơ vẫn quay khi ta dừng chuyển động gây lên sự thiếu chính xác hi dừng hoặc khi cắt góc.
- Lỗi do môi trường:
Khi robot chuyển động, nếu mặt đường đi của robot nhấp nhô gây nên cảm biến đưa tín hiệu về khác nhau dẫn đến sai lệch, ngoài ra trên mặt sân lớp sơn có màu sắc khác nhau cũng tạo ra điện áp đưa về khác nhau. Khi ánh sáng chiếu vào robot có cường độ lớn và ánh sáng có cường độ cao sẽ tạo ra điện áp cảm biến đưa về robot thay đổi cũng tạo ra nhiễu.
- Lỗi do động cơ:
Tính chất của động cơ là vật vừa tiêu thụ điện và vừa tạo ra điện. khi ta khởi động thì động cơ là vật tiêu thụ điện hút điện áp lớn gấp 1,5-2 lần điện áp bình thường, điều này tùy thuộc vào tải. Nhưng khi ta dừng cấp điện cho động cơ thì quán tính của động cơ vẫn còn duy trì và tạo ra điện áp ngược tại ngõ vào, nếu ta dảo chiều trong thời gian quá ngẵn sẽ dẫn đến: Điện áp tiêu thụ = điện áp khởi động + điện áp tải + điện áp ngược
Điều này cũng dẫn đến sụt áp trong thời gian t rất nhỏ, nhưng cần ấy cũng đủ để tạo ra nhiễu cho vdk và dẫn đến tình trạng reset nguồn.
Khi động cơ khởi động hút lượng điện áp lớn đặc biệt với động cơ 1 chiều điện áp thấp nên sử dụng dòng lớn từ 2-3A nhưng khi khởi động cộng với tải nạng sẽ phải dùng đến 6A. điều này tạo lên sự sụt áp lớn trong mạch động lực nếu ta chọn đường mạch quá nhỏ điều đó khéo theo sự sụt áp do mạch vdk làm gây nhiễu loạn. trong động cơ có hộp số là tạo ra tỷ số truyền khác nhau, nếu momen lớn thì tốc độ chậm và nếu tốc độ nhanh thì momen yếu, nếu động cơ dùng cần momen lớn mà ta dùng động cơ nhanh với dòng áp nhỏ sẽ dẫn đến quá tải và gây ra đoản mạch làm điện áp ngõ vào bằng 0 và dẫn đến sụt áp.
- Lỗi do đi dây:
khi chế tạo robot và hoàn thiện, nếu đi dây không đúng sẽ dẫn đến nhiễu loạn. chẳng hạn khi để dây điện áp động cơ gần dây cảm biến hặc công tắc hành trình sẽ tạo ra nhiễu bởi khi động cơ chạy lượng dòng tiêu thụ rất lớn gây ra từ trường xung quanh lớn, bởi vậy gây lên nhiễu loạn tín hiệu 1 của tín hiệu công tắc hành trình đưa về.
- Lỗi do lập trình:
Người lập trình không hẳn là chỉ viết chương trình cho robot chạy, mà quan trọng nhất trong lập trình là hoàn thiện những gì mà cơ khí và điện chưa làm được, đó là vấn đề về xử lý nhiễu. khi ta lập trình nếu sử dụng đảo chiều hặc sử dụng vòng lặp không đúng sẽ dẫn đến treo vdk và reset nguồn. chẳng hạn trong quá trình làm việc hay khởi động ta cần chay n động cơ. Nhưng nếu ta khởi động cùng một thời điểm thì dòng khởi động của n động cơ sẽ quá lớn là gây nên sụt áp. Thông thường ta khởi động các động cơ cho lệch nhau 1 khoảng thời gian t nào đó (t = 50-100ms).
4.3.2. Các phương án xử lý nhiễu.
4.3.2.1. Xử lý cơ khí:
+ Để xử lý nhiễu do cơ khí cần phải tính toán và chợ lực cho rotbot để dảm bảo sự cứng vững.mở rộng các góc tác dụng lực để tăng ứng lực
+ Xử lý các khâu chuyển động và khớp cho trơn chu. Tra dầu mỡ và kiểm tra độ chính xác các khâu liên kết và xử lý.
+ Lựa chọn bánh xe đúng khích thước để giảm rung động khi chuển động
4.3.2.2. Xử lý về điện :
+ Bo mạch cần mở rộng các đường mạch, thong thường là từ 0.016 inc-0.02inc. đối với mạch động lực thường mở rộng đường mạch lớn hơn .0.2inc, mớ rộng đường mass chung càng lớn càng tốt.
+ Đi dây trên mạch cần ngắn ngọn và tối thiểu về đường đi sao cho càng ngắn ngọn càng tốt.
+ Bố trí linh kiện theo khối và đúng vị trí (vd: thạch anh cần phải để sát 2 chân dao động của vdk để tăng tần số dao động) .
+ Dùng linh kiệm xử lý phải hợp lý. Chẳng hạn dung diode công suất để chống ngược dung cho động cơ.
4.3.2.3. Xử lý do môi trường:
+ Cần che chắn cảm biến dò đường sao cho thật tốt.
+ Dung nguồn nôi cho các cảm biến chuyên dụng lớn khoảng 12v để nâng cao độ nhạy, đồng thời không nên dung chung nguồn cảm biến với VĐK.
-Xử lý động cơ:
+ Dùng ferit từ để chống từ nhiễu và dòng ngược.
+ Dùng tự để tăng tốc độ và độ khỏe của động cớ đồng thời tụ cũng có chức năng chống dòng ngược tốt bởi tính năng phòng nạp của tụ.
+ Dùng diode công suất cũng là biện pháp để chống dòng ngược.
4.3.2.4. Xử lý lập trình:
Khi lập trình đầu tiên cần làm là xử lý nhiễu trong chương trình bám vạch. Xử lý các nhiễu do xung điện và xử lý nhiễu do môi trường và nhiễu do cơ khí thiếu chính xác.
+ Để xử lý nhiễu do mặt sân thi đấu ta nên lựa chọn chương trình xử lý theo bit để kiểm tra các bít trong vòng lặp liên tục. Kiểm tra từ giữa ra ngoài theo từng bít một điều này chánh trường hợp cảm biến ngoài gây nhiễu khi chưa xét đến nếu robot chưa lệch đến cảm biến đó.
+ Tạo trễ để kiểm tra các bít: thông thường nhiễu chỉ xảy ra trong thời gian rất ngắn cỡ vài trục micro s. Chính vì thế ta tạo trế độ trễ để kiểm tra nhiễu, nếu tín hiện kéo dài quá 50us thì thường đó không phải là tín hiệu nhiễu, chính sự phân biệt này nên ta sẽ loại được tối đa các vấn đề nhiễu do môi trường cũng như rung động.
+ Tạo trễ khi đảo chiều động cơ: khi động cơ đảo khiểu trong 1us thì điện áp ngược do quán tính của động cơ sẽ không giải phóng hết, điều này dẫn đến khi ta đảo chiều quá nhanh trong 1us sẽ dẫn đến đoản mạch taij đầu vào và gây sụt áp. Vì vậy khi lập trình cần tạo trễ để giải phóng phần điện áp ngược rồi mới cấp điện thì sẽ giảm thiểu vấn đề sụt áp. Đồng thời khi dảo chiều role sinh ra tia lửa điện do dòng lớn, vì thế tạo trễ cũng là biện pháp để tránh nhiễu do tia lửa điện.
+ Tạo trễ xử lý cảm biến và nhảy chương trình điều khiển: khi cảm biến dừng lại và nằm trong vòng lặp đợi tín hiệu từ cảm biến.Nếu khi cảm biến có tín hiệu mà nhảy luôn đến chương trình điều khiển sẽ gây ra nghẽn tín hiệu xử lý từ ram. Bởi do robot đang trế độ chờ VDK đang hoạt động ngủ nếu ngọi chương trình đột ngột sẽ dẫn đế không xử lý và reset VDK.
+ Khi các nhiễu đã xử lý mà robot vẫn có nhiễu xảy ra nhưng với số lần ít ta cần phải có biện phái để loại bỏ rủi ro do nhiễu gây ra. Đó là cần tạo vòng lặp xen vào vùng khởi tạo( vùng nút chiến thuật) , trước hết ta phải xét xem tín hiệu để nhảy đến chương trình mà gây nhiễu là gì. Thường là tín hiệu cảm biến hoặc encoder hoặc có thể là giá trị đếm trong ô nhớ ram, điều này tùy thuộc vào người viết chương trình. Khi ta xác định được thì ta dung câu lệnh này trong mục chọn chiến thuật, vì vậy khi bị reset nguồn thì vdk khởi động lại và lúc này các tín hiệu đang ở vị trí tác động và trong vòng lặp chiến thuật câu lệnh sẽ giúp nhảy để nhãn để thực hiện tiếp công việc đó.
PHẦN 5: KẾT LUẬN VÀ KIẾN NGHỊ
5.1. KẾT LUẬN
Robot là sự mô phỏng những suy nghĩ và hành động cử con người. những hoạt động của con người. Một robot được cấu thành gồm 3 phần như cơ thể con người:
+ Phần cơ khí đóng vai trò như phần khung xương.
+ Phần điện đóng vai trò như mạch máu.
+ Phần lập trình đóng vai trò là linh hồn.
Cả ba phần trên đều rất quan trọng đối với việc chế tạo robot, nếu thiếu 1 trong 3 phần đều không thể hình thành lên robot. Tuy nhiên trong số đo phần thực hiện ý tưởng cơ khí và thực hiện cơ khí là rất khó khăn nó bao gồm tư duy và sự khéo léo và sự bền bỉ.
Phần điện đóng vai trò như mạch máu nó là sự kết nối giữa các khâu và các khớp góp phần tạo ra chuyển động. là năng lượng để nuôi sống cho robot.
Phần lập trình là phần nhẹ nhàng nhất nhưng đòi hỏi tư duy cao và sự khéo léo về cách giải quyết các bài toán mà về cơ khí và điện tử không là được hặc là làm chưa tốt. Nó là cơ sở để tạo ra bộ não cho robot, một robot thông minh và hoạt động khéo léo hay không phụ thuộc hoàn toàn vào phần lập trình. Tuy nhiên nếu sự đáp ứng về cơ khí và điện không tốt thì dẫu robot có thong minh cũng không thể tạo ra sự chuyển động nhịp nhàng và chơn chu được. điều này phụ thuộc vào sự tương thích trong các khâu. Vì lẽ đó khi chế tạo robot cần phân bổ các nhóm một cách hợp lý. Tất nhiên để làm làm nên những con robot này chúng em cũng không thể thiếu một phần đóng góp của các thầy cô trong bộ môn cơ điện tử. Chúng em xin trân thành cám ơn và xin kết thúc bản tường trình đề tài tốt nghiệp robocon 2010.
5.2. KIẾN NGHỊ.
Sau cuộc thi sáng tạo robocon 2010 chúng em đã nhận được rất nhiều sự giúp đỡ ở nhiều lĩnh vực từ nhà trường. Tuy nhiên còn một phần mong mỏi mà chúng em mong nhà trường quan tâm hơn về thể lệ và sân thi đấu, và các sự quan tâm về lịch thi vòng test trường. Chúng e hy vọng năm 2011 sắp tới sẽ có nhiều sự quan tâm của nhà trường trong những lĩnh vực đó.chúng e xin chân thành cảm ơn!
PHẦN 6: PHỤ LỤC
6.1. DANH MỤC BẢNG BIỂU, HÌNH VẼ
MỤC LỤC HÌNH
Hình 1.1.Robot đi xe đạp 7
Hình 1.2: Robot trong y học. 8
Hình 1.3: Robot asimo. 9
Hình 1.5: Kích thước các khối quà. 10
Hình 2.1: Kích thước phần đế robot tự động mang hai khối cấu kiện. 16
Hình 2.2: Kích thước của nhôm được sử dụng làm đế. 16
Hình 2.3: Hình dạng của thanh nhôm dùng làm đế robot. 17
Hình 2.4: Biểu đồ mômen. 18
Hình 2.5:Kích thước nhôm. 18
Hình 2.6:Kích thước nhôm. 19
Hình 2.7: Phân tích vật thể thành dạng mạng lưới. 20
Hình 2.8: Phân tích các điểm chịu lực tác dụng của vật thể. 20
Hình 2.9: Phân tích các điểm biến dạng. 20
Hình 2.11: Phân tích ứng suất. 22
Hình 2.12: Bản vẽ chi tiết. 22
Hình 2.13: Biểu đồ lực và mômen 23
Hình 2.14: Bản vẽ chi tiết. 24
Hình 2.15: Phân tích ứng suất. 24
Hình 2.16: Biểu đồ lực và momen 24
Hình 2.17: Phân tích ứng suất. 25
Hình 2.18: Chia lưới phân tích chi tiết. 25
Hình 2.19: Phân tích tác động của ứng suất lên chi tiết. 26
Hình 2.20: Phân tích mức độ biến dạng của chi tiết. 26
Hình 2.21: Bản vẽ chi tiết. 26
Hình 2.22: Mặt cắt nguy hiểm. 27
Hình 2.23: Bản vẽ chi tiết. 27
Hình 2.24: Chia lưới phân tích. 28
Hình 2.25: Ảnh hưởng của lực kéo. 28
Hình 2.26: Mức độ biến dạng của chi tiết. 28
Hình 2.27:Kích thước của chi tiết. 29
Hình 2.28:Phân tích lưới chi tiết. 29
Hình 2.29:Ảnh hưởng của lực kéo. 30
Hình 2.30:Mức độ biến dạng của chi tiết. 30
Hình 2.31: Bản vẽ chi tiết. 30
Hình 2.32:Biểu đồ lực và mômen. 31
Hình 2.33: Phân tích ứng suất chi tiết. 32
Hình 2.35:Các loại bánh omni. 33
Hình 2.36:Bánh omni dùng trong robot. 33
Hình 2.37: Bánh xe nhôm đúc. 34
Hình 2.38: Kích thước bánh nhôm. 34
Hình 2.39: cánh tay động học 35
Hình 2.40: Nhôm tấm dùng để bắt động cơ. 39
Hình 2.41: Động cơ dùng di chuyển. 39
Hình 2.42:Động cơ bắt vào ke. 40
Hình 2.43: Lắp ráp động cơ. 40
Hình 2.44: Hình dạng thực tế của bánh omi. 41
Hình 2.45: Thanh sắt dùng bắt bánh omi. 41
Hình 2.46: Đế toàn diện của động cơ. 42
Hình 2.47: Kích thước phần trụ của robot. 42
Hình 2.48: Phần trụ của robot được gắn lên đế. 43
Hình 2.49: Phần thanh trợ lực cho hai trụ. 43
Hình 2.50: Trụ của robot được gắn lên đế có thanh đỡ trợ lực. 44
Hình 2.51: Kích thước của tay đẩy tầng hai. 44
Hình 2.52: Tay đẩy khối cấu kiện tầng hai. 45
Hình 2.53: Kích thước của tay đẩy tầng hai. 45
Hình 2.54: Cơ cấu đẩy khối cấu kiện tầng 3. 45
Hình 2.55: Kết cấu của tay đẩy quà vàng. 46
Hình 2.56: Tấm ốp đầu của thanh dẫn hướng. 46
hình 2.57: Vị trí bắt tấm ốp đầu trên thanh dẫn hướng. 47
Hình 2.58: Kết cấu tổng thể của robot mang khối cấu kiện chop. 47
Hình 3.1: sơ đồ khối mạch điều khiển. 48
Hình 3.2:Nguyên tắc hoạt động của động cơ một chiều. 50
Hình 3.3: Một só động cơ được dùng trong Robot. 50
Hình 3.4: Sơ đồ nguyên lý mạch cầu H 51
Hình 3.5: Hình dạng và sơ đồ chân L293. 52
Hình 3.7:Sơ đồ nguyên lý khối động lực. 53
Hình 3.8:Sơ đồ nguyên lý khối đảo chiều và thay đổi tốc độ động cơ. 54
Hình 3.9:Nguyên lý kết nối mạch động lực và mạch điều khiển. 54
Hình 3.10: Hình dạng, sơ đồ chân, kí hiệu trên mạch điện của IRF540N 56
Hình 3.11: Cấu trúc và hình dạng quang trở. 58
Hình 3.12: Sự phụ thuộc của điện trở vào độ rọi sáng. 58
Hình 3.13: Mạch quang trở điển hình. 59
Hình 3.14: Hình dáng, cấu tạo LED Thu, Phát. 59
Hình 3.15: Nguyên lý thu phát của thu phát hồng ngoại. 60
Hình 3.16: Sự phụ thuộc của dòng điện vào cường độ tia hồng ngoại. 60
Hình 3.17: Sơ đồ nguyên lý của cặp thu phát hồng ngoại. 60
Hình 3.18: Bố trí 6 cảm biến theo hàng ngang. 62
Hình 3.19: Bố trí 8 cảm biến 6 trước 2 sau. 62
Hình 3.20: Bố trí 8 cảm biến theo 1 hàng ngang. 62
Hình 3.21: Nguyên lý mạch tạo xung. 63
Hình 3.22: Bộ lọc cảm biến. 64
Hình 3.23: Nguyên lý mạch so sánh. 64
Hình 3.24: Sơ đồ nguyên lý hoạt động của 1 bộ thu phát. 65
Hình 2.35: Một số loại công tắc hành trình thông dụng. 67
Hình 3.36: Sơ đồ nối công tắc hành trình. 68
Hình 3.37: các loại cảm biến quang thong dụng 69
Hình 3.38: Sơ đồ khối của P89V51RD2. 71
Hình 3.39: Sơ đồ chân của 89V51RD2BN. 71
Hình3.40: Các kết nối của bộ tạo dao động. 74
Hình 3.41: Sơ đồ mạch Reset. 75
Hình 3.42: cấu trúc bộ nhớ chương trình. 76
Hình 3.43: Cấu trúc bộ nhớ dữ liệu nội, ngoại trú. 77
Hình 3.44: timer và counter 78
Hình 3.45: Các thanh ghi. 78
Hình 3.46: Sơ đồ nguyên lý các khối dao động, nạp, Reset. 81
Hình 3.47: Sơ đồ nguyên lý mạch nạp 81
Hình 3.48:Cấu tạo và nguyên lý hoạt động của 74HC151 (MUX 8:1). 82
Hình 3.49: Sơ đồ nguyên lý mạch nút nhấn. 83
Hình 3.50: Hình dạng và sơ đồ chân LM7805. 84
Hình 3.51. Sơ đồ chân của TIP 2955. 85
Hình 3.52:Khối nguồn điều khiển. 86
Hình 3.53: Khối nguồn động lực 86
Hình 3.54: Mạch sơ đồ nguyên lý 88
MỤC LỤC BẢNG:
Bảng 1.1: Yêu câu về động cơ đối vớ robot mang 7 cấu kiện.....................................13
Bảng 1.2: Yêu câu về động cơ đối vớ robot mang 1 cấu kiện.....................................13
Bảng 2.1: Bảng DH. 35
Bảng 3.1. Chức năng cổng P3. 74
Bảng 3.2. Bộ nhớ Flash. 76
Bảng 3.3: Các bit định nghĩa cho thanh ghi CMOD. 79
Bảng 3.4: Quy định cách chọn xung nhịp cho PCA. 79
Bảng 3.5: Các bit định nghĩa của thanh ghi CCON. 80
Bảng 3.6: các bit định nghĩa thanh ghi CCAPMn. 80
Bảng 3.7: Chân lý của IC 74151. 83
Bảng 3.8: bảng thông số của TIP 2955 85
6.2. TÀI LIỆU THAM KHẢO
[1]. Tống Văn Ôn & Hoàng Đức Hải (2001). Họ Vi điều khiển 80C51. Nhà xuất bản Lao động xã hội.
[2]. Phạm Minh Hà (2002). Kỹ thuật mạch điện tử. Nhà xuất bản Khoa học và kỹ thuật.
[3]. PGS. TS. Trịnh Chất & TS. Lê Văn Uyển (2007). 7. Tính toán thiết kế hệ thống dẫn động cơ khí. Nhà xuất bản giáo dục.
[4]. GV. Bạch Hưng Trường. Giáo trình kỹ thuật Vi Điều Khiển. Trường ĐHSPKT Hưng Yên.
[5]. Nguyễn Bính (1995). Điện tử công suất. Nhà xuất bản khoa học và kĩ thuật.
[6]. TS. Phạm đăng phước. Robot công nghiệp.
[7]. Các bài viết trên và một số forum của các trường kỹ thuật.
[8].
[9].
[10].
[11].
[12].
[13].
[14 ]. Datasheet P89V51RD2.
Các file đính kèm theo tài liệu này:
- DO AN.doc